(57)【特許請求の範囲】
【請求項１】
クライアントと前記クライアントにネットワークを介してサービスを提供するサービスサーバとの間で、ウェブサーバがロングポーリング（ｌｏｎｇ  ｐｏｌｌｉｎｇ）を処理する方法であって、
前記ウェブサーバで、前記クライアントからポールリクエスト（ｐｏｌｌ  ｒｅｑｕｅｓｔ）を受信して前記サービスサーバに伝達し、
前記ウェブサーバで、前記サービスサーバから前記クライアントに反映するためのデータを前記ポールリクエストに対するポールリプライ（ｐｏｌｌ  ｒｅｐｌｙ）として受信し、
前記ウェブサーバで、前記受信したデータを基盤としてウェブページデータを生成し、
前記ウェブページデータを前記ポールリプライとして前記クライアントに伝達する、ロングポーリング処理方法。
【請求項２】
前記サービスはゲームサービスを含み、
前記ウェブページデータは、前記クライアントで表示されるゲームサービス画面を構成するためのデータを含む、請求項１に記載のロングポーリング処理方法。
【請求項３】
前記サービスサーバは、前記ウェブサーバから伝達された前記ポールリクエストに対するポールリプライの送信を延期して待機し、前記クライアントからの一般リクエスト（ｎｏｒｍａｌ  ｒｅｑｕｅｓｔ）に対する処理結果を前記クライアントに反映するためのデータまたは前記サービスサーバが前記サービスのために前記クライアントを制御するためのデータを前記クライアントに送信しようとする場合に、前記送信しようとするデータを前記ポールリプライとして前記ウェブサーバに送信する、請求項１に記載のロングポーリング処理方法。
【請求項４】
前記データを前記ポールリクエストに対するポールリプライとして受信するとき、
前記クライアントから一般リクエスト（ｎｏｒｍａｌ  ｒｅｑｕｅｓｔ）を受信して前記サービスサーバに伝達し、
前記サービスサーバから前記一般リクエストの処理による一般リプライ（ｎｏｒｍａｌ  ｒｅｐｌｙ）を受信して前記クライアントに伝達し、
前記サービスサーバから前記一般リクエストに対する前記サービスサーバの処理結果を前記クライアントに反映するためのデータを前記ポールリプライとして受信する、請求項１に記載のロングポーリング処理方法。
【請求項５】
前記データを前記ポールリクエストに対するポールリプライとして受信する段階は、
前記サービスサーバから前記サービスサーバが前記クライアントを制御するためのデータを前記ポールリプライとして受信することを特徴とする、請求項１に記載のロングポーリング処理方法。
【請求項６】
前記クライアントで、前記ポールリプライとして伝達されたウェブページデータを処理してサービス画面が表示され、前記ポールリプライの伝達にしたがって再びポールリクエストが前記ウェブサーバに送信され、
前記ロングポーリング処理方法は、
前記ウェブサーバで、前記クライアントから再び送信されたポールリクエストを受信して前記サービスサーバに伝達する
ことをさらに含む、請求項１に記載のロングポーリング処理方法。
【請求項７】
請求項１〜６のうちのいずれか一項に記載の方法を実行するためのプログラムが記録されていることを特徴とする、コンピュータで読み取り可能な記録媒体。
【請求項８】
クライアントと前記クライアントでネットワークを介してサービスを提供するサービスサーバとの間で、ロングポーリングを処理するウェブサーバのロングポーリング処理システムであって、
コンピュータで読み取り可能な命令を実行するように実現される少なくとも１つのプロセッサ
を含み、
前記少なくとも１つのプロセッサは、
前記クライアントからポールリクエスト（ｐｏｌｌ  ｒｅｑｕｅｓｔ）を受信して前記サービスサーバに伝達し、前記サービスサーバから前記クライアントに反映するためのデータを前記ポールリクエストに対するポールリプライ（ｐｏｌｌ  ｒｅｐｌｙ）として受信するように前記ウェブサーバを制御するポール管理部、および
前記ウェブサーバで前記受信したデータを基盤としてウェブページデータを生成するウェブページデータ生成部
を備え、
前記ポール管理部は、
前記ウェブページデータを前記ポールリプライとして前記クライアントに伝達することを特徴とする、ロングポーリング処理システム。
【請求項９】
前記サービスはゲームサービスを含み、
前記ウェブページデータは、前記クライアントで表示されるゲームサービス画面を構成するためのデータを含むことを特徴とする、請求項８に記載のロングポーリング処理システム。
【請求項１０】
前記サービスサーバは、前記ウェブサーバから伝達された前記ポールリクエストに対するポールリプライの送信を延期して待機し、前記クライアントからの一般リクエスト（ｎｏｒｍａｌ  ｒｅｑｕｅｓｔ）に対する処理結果を前記クライアントに反映するためのデータまたは前記サービスサーバが前記サービスのために前記クライアントを制御するためのデータを前記クライアントに送信しようとする場合に、前記送信しようとするデータを前記ポールリプライとして前記ウェブサーバに送信することを特徴とする、請求項８に記載のロングポーリング処理システム。
【請求項１１】
前記ポール管理部は、
前記クライアントから一般リクエスト（ｎｏｒｍａｌ  ｒｅｑｕｅｓｔ）を受信して前記サービスサーバに伝達し、前記サービスサーバから前記一般リクエストの処理による一般リプライ（ｎｏｒｍａｌ  ｒｅｐｌｙ）を受信して前記クライアントに伝達し、前記サービスサーバから前記一般リクエストに対する前記サービスサーバの処理結果を前記クライアントに反映するためのデータを前記ポールリプライとして受信するように前記ウェブサーバを制御することを特徴とする、請求項８に記載のロングポーリング処理システム。
【請求項１２】
前記ポール管理部は、
前記サービスサーバから前記サービスサーバが前記クライアントを制御するためのデータを前記ポールリプライとして受信するように前記ウェブサーバを制御することを特徴とする、請求項８に記載のロングポーリング処理システム。
【請求項１３】
前記クライアントで、前記ポールリプライとして伝達されたウェブページデータを処理してサービス画面が表示され、前記ポールリプライの伝達にしたがって再びポールリクエストが前記ウェブサーバに送信され、
前記ポール管理部は、
前記ウェブサーバで、前記クライアントから再び送信されたポールリクエストを受信して前記サービスサーバに伝達することを特徴とする、請求項８に記載のロングポーリング処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
下記の説明は、ロングポーリング処理方法およびシステムに関する。
【背景技術】
【０００２】
従来技術に係るサーバ−クライアント環境において、サーバとクライアント間の通信の大部分はソケット構造を活用している。例えば、特許文献１では、「ソケットコネクションを使用したクライアント／サーバシステムおよびソケットコネクション設定方法」について開示している。
【０００３】
ソケット構造を利用した通信に関するより具体的な例として、オンラインゲームを挙げることができる。オンラインゲームにおいてクライアントは、ゲームロジックが含まれたクライアントプログラムを通じてゲームサーバと通信してゲームを行う。しかし、クライアントプログラムに含まれたゲームロジックは、ハッキングの可能性を増加させる上に、ゲーム上の小さな画面の変化にもクライアントプログラムのパッチや、クライアントプログラムの再配布が求められるという問題がある。さらに、ゲームサーバの観点では、クライアントプログラムの変造による問題が常在しており、クライアントと直接接続するため、クライアントとの接続管理に多くの費用が求められる。
【０００４】
このように、既存のソケット構造を利用した通信は、ハッキングイシューにおいて自由がなく、パッチ時やプロトコルの交換時にかかる費用が極めて大きい上に、ランタイム中にサービスを修正することが困難であるという問題を抱えている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】韓国公開特許第１０−２０００−００４２２１７号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
クライアントと、クライアントにネットワークを介してサービスを提供するサービスサーバとの間で、ウェブサーバがロングポーリング（ｌｏｎｇ  ｐｏｌｌｉｎｇ）を処理してサービスを処理することができる、ロングポーリング処理方法およびシステムを提供する。
【課題を解決するための手段】
【０００７】
本発明の一実施形態によれば、クライアントとクライアントでネットワークを介してサービスを提供するサービスサーバとの間で、ウェブサーバがロングポーリング（ｌｏｎｇ  ｐｏｌｌｉｎｇ）を処理する方法であって、ウェブサーバで、クライアントからポールリクエスト（ｐｏｌｌ  ｒｅｑｕｅｓｔ）を受信してサービスサーバに伝達する段階、ウェブサーバで、サービスサーバからクライアントに反映するためのデータをポールリクエストに対するポールリプライ（ｐｏｌｌ  ｒｅｐｌｙ）として受信する段階、ウェブサーバで、受信したデータを基盤としてウェブページデータを生成する段階、およびウェブページデータをポールリプライとしてクライアントに伝達する段階を含むことを特徴とする、ロングポーリング処理方法が提供される。
【０００８】
一実施形態によると、サービスはゲームサービスを含み、ウェブページデータは、クライアントで表示されるゲームサービス画面を構成するためのデータを含むことを特徴としてもよい。
【０００９】
他の実施形態によると、サービスサーバは、ウェブサーバから伝達されたポールリクエストに対するポールリプライの送信を延期して待機し、クライアントからの一般リクエスト（ｎｏｒｍａｌ  ｒｅｑｕｅｓｔ）に対する処理結果をクライアントに反映するためのデータまたはサービスサーバがサービスのためにクライアントを制御するためのデータをクライアントに送信しようとする場合に、送信しようとするデータをポールリプライとしてウェブサーバに送信する。
【００１０】
また他の実施形態によると、データをポールリクエストに対するポールリプライとして受信する段階は、クライアントから一般リクエスト（ｎｏｒｍａｌ  ｒｅｑｕｅｓｔ）を受信してサービスサーバに伝達する段階、サービスサーバから一般リクエストの処理による一般リプライ（ｎｏｒｍａｌ  ｒｅｐｌｙ）を受信してクライアントに伝達する段階、およびサービスサーバから一般リクエストに対するサービスサーバの処理結果をクライアントに反映するためのデータをポールリプライとして受信する段階を含んでいてもよい。
【００１１】
また他の実施形態によると、データをポールリクエストに対するポールリプライとして受信する段階は、サービスサーバからサービスサーバがクライアントを制御するためのデータをポールリプライとして受信してもよい。
【００１２】
さらに他の実施形態によると、クライアントでポールリプライとして伝達されたウェブページデータを処理してサービス画面が表示され、ポールリプライの伝達にしたがって再びポールリクエストがウェブサーバに送信され、ロングポーリング処理方法は、ウェブサーバでクライアントから再び送信されたポールリクエストを受信してサービスサーバに伝達する段階をさらに含んでいてもよい。
【００１３】
クライアントとクライアントでネットワークを介してサービスを提供するサービスサーバとの間で、ロングポーリングを処理するウェブサーバのロングポーリング処理システムであって、コンピュータで読み取り可能な命令を実行するように実現される少なくとも１つのプロセッサを含み、少なくとも１つのプロセッサは、クライアントからポールリクエスト（ｐｏｌｌ  ｒｅｑｕｅｓｔ）を受信してサービスサーバに伝達し、サービスサーバからクライアントに反映するためのデータをポールリクエストに対するポールリプライ（ｐｏｌｌ  ｒｅｐｌｙ）として受信するようにウェブサーバを制御するポール管理部、およびウェブサーバで受信したデータを基盤としてウェブページデータを生成するウェブページデータ生成部を備え、ポール管理部は、ウェブページデータをポールリプライとしてクライアントに伝達することを特徴とする、ロングポーリング処理システムが提供される。
【発明の効果】
【００１４】
クライアントとクライアントでネットワークを介してサービスを提供するサービスサーバとの間で、ウェブサーバがロングポーリング（ｌｏｎｇ  ｐｏｌｌｉｎｇ）を処理してサービス画面の構成のためのウェブページデータを生成してクライアントに提供することにより、クライアント自体に対するハッキングイシューを取り除くことができる上に、リアルタイムパッチとサーバの増設が容易になり、サービスサーバでのプロトコルを自由に変更することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施形態における、ネットワーク環境の例を示した図である。
【図２】本発明の一実施形態における、電子機器およびサーバの内部構成を説明するためのブロック図である。
【図３】本発明の一実施形態における、ウェブサーバが含まれたサーバ−クライアント環境の例を示した図である。
【図４】本発明の一実施形態における、複数のウェブサーバが含まれたサーバ−クライアント環境の例を示した図である。
【図５】本発明の一実施形態における、サーバのプロセッサが含むことのできる構成要素の例を示した図である。
【図６】本発明の一実施形態における、サーバが実行することのできるロングポーリング処理方法の例を示したフローチャートである。
【図７】本発明の一実施形態における、ロングポーリング処理過程の例を示した図である。
【図８】本発明の一実施形態における、ロングポーリング処理過程の他の例を示した図である。
【発明を実施するための形態】
【００１６】
以下、実施形態について、添付の図面を参照しながら詳しく説明する。
【００１７】
図１は、本発明の一実施形態における、ネットワーク環境の例を示した図である。図１のネットワーク環境は、複数の電子機器１１０、１２０、１３０、１４０、複数のサーバ１５０、１６０、およびネットワーク１７０を含む例を示している。このような図１は、発明の説明のための一例に過ぎず、電子機器の数やサーバの数が図１のように限定されることはない。
【００１８】
複数の電子機器１１０、１２０、１３０、１４０は、コンピュータ装置によって実現される固定型端末や移動型端末であってもよい。複数の電子機器１１０、１２０、１３０、１４０の例としては、スマートフォン（ｓｍａｒｔ  ｐｈｏｎｅ）、携帯電話、ナビゲーション、コンピュータ、ノート型パンコン、デジタル放送用端末、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔｓ）、ＰＭＰ（Ｐｏｒｔａｂｌｅ  Ｍｕｌｔｉｍｅｄｉａ  Ｐｌａｙｅｒ）、タブレットＰＣなどがある。一例として、電子機器１（１１０）は、無線または有線通信方式を利用し、ネットワーク１７０を介して他の電子機器１２０、１３０、１４０および／またはサーバ１５０、１６０と通信してもよい。
【００１９】
通信方式が制限されることはなく、ネットワーク１７０が含むことのできる通信網（一例として、移動通信網、有線インターネット、無線インターネット、放送網）を活用する通信方式だけではなく、機器間の近距離無線通信が含まれてもよい。例えば、ネットワーク１７０は、ＰＡＮ（ｐｅｒｓｏｎａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＬＡＮ（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＣＡＮ（ｃａｍｐｕｓ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＭＡＮ（ｍｅｔｒｏｐｏｌｉｔａｎ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＷＡＮ（ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＢＢＮ（ｂｒｏａｄｂａｎｄ  ｎｅｔｗｏｒｋ）、インターネットなどのネットワークのうちの１つ以上の任意のネットワークを含んでもよい。さらに、ネットワーク１７０は、バスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スター−バスネットワーク、ツリーまたは階層的（ｈｉｅｒａｒｃｈｉｃａｌ）ネットワークなどを含むネットワークトポロジのうちの任意の１つ以上を含んでもよいが、これに制限されることはない。
【００２０】
サーバ１５０、１６０それぞれは、複数の電子機器１１０、１２０、１３０、１４０とネットワーク１７０を介して通信して命令、コード、ファイル、コンテンツ、サービスなどを提供するコンピュータ装置または複数のコンピュータ装置によって実現されてもよい。
【００２１】
一例として、サーバ１６０は、ネットワーク１７０を介して接続した電子機器１（１１０）にアプリケーションのインストールのためのファイルを提供してもよい。この場合、電子機器１（１１０）は、サーバ１６０から提供されたファイルを利用してアプリケーションをインストールしてもよい。また、電子機器１（１１０）が含むオペレーティングシステム（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ：ＯＳ）および少なくとも１つのプログラム（一例として、ブラウザや前記インストールされたアプリケーション）の制御にしたがってサーバ１５０に接続し、サーバ１５０が提供するサービスやコンテンツの提供を受けてもよい。例えば、電子機器１（１１０）がアプリケーションの制御にしたがって、ネットワーク１７０を介してサービス要請メッセージをサーバ１５０に送信すると、サーバ１５０はサービス要請メッセージに対応するコードを電子機器１（１１０）に送信してもよく、電子機器１（１１０）はアプリケーションの制御にしたがってコードに基づく画面を構成して表示することによってユーザにコンテンツを提供してもよい。他の例として、サーバ１５０は、メッセージングサービスのための通信セッションを設定し、設定された通信セッションを通じて複数の電子機器１１０、１２０、１３０、１４０間のメッセージ送受信をルーティングしてもよい。
【００２２】
特に、本発明の実施形態において、サーバ１６０は、クライアントである複数の電子機器１１０、１２０、１３０、１４０にサービスを提供するサービスサーバであってもよく、サーバ１５０は、サーバ１６０とクライアントとの間でロングポーリング（ｌｏｎｇ  ｐｏｌｌｉｎｇ）を処理するウェブサーバであってもよい。
【００２３】
図２は、本発明の一実施形態における、電子機器およびサーバの内部構成を説明するためのブロック図である。図２は、１つの電子機器に対する例として電子機器１（１１０）を、１つのサーバに対する例としてサーバ１５０の内部構成を説明する。他の電子機器１２０、１３０、１４０やサーバ１６０も、同一または類似の内部構成を備えてもよい。
【００２４】
電子機器１（１１０）とサーバ１５０は、メモリ２１１、２２１、プロセッサ２１２、２２２、通信モジュール２１３、２２３、および入力／出力インタフェース２１４、２２４を含んでもよい。メモリ２１１、２２１は、コンピュータで読み取り可能な記録媒体であって、ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、ＲＯＭ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）、およびディスクドライブのような永久大容量記憶装置（ｐｅｒｍａｎｅｎｔ  ｍａｓｓ  ｓｔｏｒａｇｅ  ｄｅｖｉｃｅ）を含んでよい。また、メモリ２１１、２２１には、オペレーティングシステムと、少なくとも１つのプログラムコード（一例として、電子機器１（１１０）にインストールされ、駆動するブラウザや上述したアプリケーションなどのためのコード）が格納されてよい。このようなソフトウェア構成要素は、ドライブメカニズム（ｄｒｉｖｅ  ｍｅｃｈａｎｉｓｍ）を利用して、メモリ２１１、２２１とは別のコンピュータで読み取り可能な記録媒体からロードされてもよい。このような別のコンピュータで読み取り可能な記録媒体は、フロッピードライブ、ディスク、テープ、ＤＶＤ／ＣＤ−ＲＯＭドライブ、メモリカードなどのコンピュータで読み取り可能な記録媒体を含んでよい。他の実施形態において、ソフトウェア構成要素は、コンピュータで読み取り可能な記録媒体ではない通信モジュール２１３、２２３を利用してメモリ２１１、２２１にロードされてもよい。例えば、少なくとも１つのプログラムは、開発者またはアプリケーションのインストールファイルを配布するファイル配布システム（一例として、上述したサーバ１６０）が、ネットワーク１７０を介して提供するファイルによってインストールされるプログラム（一例として、上述したアプリケーション）に基づいてメモリ２１１、２２１にロードされてもよい。
【００２５】
プロセッサ２１２、２２２は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ２１１、２２１または通信モジュール２１３、２２３によって、プロセッサ２１２、２２２に提供されてよい。例えば、プロセッサ２１２、２２２は、メモリ２１１、２２１のような記録媒体に格納されたプログラムコードを実行するように構成されてもよい。
【００２６】
通信モジュール２１３、２２３は、ネットワーク１７０を介して電子機器１（１１０）とサーバ１５０とが互いに通信するための機能を提供してもよいし、他の電子機器（一例として、電子機器２（１２０））または他のサーバ（一例として、サーバ１６０）と通信するための機能を提供してもよい。一例として、電子機器１（１１０）のプロセッサ２１２がメモリ２１１のような記録媒体に格納されたプログラムコードにしたがって生成した要請（一例として、コンテンツに対するストリーミングサービス要請）が、通信モジュール２１３の制御にしたがってネットワーク１７０を介してサーバ１５０に伝達されてもよい。これとは逆に、サーバ１５０のプロセッサ２２２の制御にしたがって提供される制御信号や命令、コンテンツ、ファイルなどが、通信モジュール２２３とネットワーク１７０を経て電子機器１（１１０）の通信モジュール２１３を通じて電子機器１（１１０）に受信されてもよい。例えば、通信モジュール２１３を通じて受信されたサーバ１５０の制御信号や命令などは、プロセッサ２１２やメモリ２１１に伝達されてもよく、コンテンツやファイルなどは、電子機器１（１１０）がさらに含むことのできる格納媒体に格納されてもよい。
【００２７】
入力／出力インタフェース２１４、２２４は、入力／出力装置２１５とのインタフェースのための手段であってもよい。例えば、入力装置は、キーボードまたはマウスなどの装置を、また出力装置は、アプリケーションの通信セッションを表示するためのディスプレイやスピーカのような装置を含んでもよい。他の例として、入力／出力インタフェース２１４は、タッチスクリーンのように入力と出力のための機能が１つに統合された装置とのインタフェースのための手段であってもよい。より具体的な例として、電子機器１（１１０）のプロセッサ２１２は、メモリ２１１にロードされたコンピュータプログラムの命令を処理するにあたり、サーバ１５０や電子機器２（１２０）が提供するデータを利用して構成されるサービス画面やコンテンツが、入力／出力インタフェース２１４を通じてディスプレイに表示されてもよい。
【００２８】
また、他の実施形態において、電子機器１（１１０）とサーバ１５０は、図２の構成要素よりもさらに多くの構成要素を含んでもよい。しかし、大部分の従来技術構成要素を明確に図に示す必要はない。例えば、電子機器１（１１０）は、上述した入力／出力装置２１５のうちの少なくとも一部を含むように実現されてもよいし、トランシーバ（ｔｒａｎｓｃｅｉｖｅｒ）、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）モジュール、カメラ、各種センサ、データベースなどのような他の構成要素をさらに含んでもよい。より具体的な例として、電子機器１（１１０）がスマートフォンである場合は、一般的にスマートフォンが備えている加速度センサやジャイロセンサ、カメラ、各種物理的なボタンやタッチパネルを利用したボタン、入力／出力ポートなどの多様な構成要素が電子機器１（１１０）にさらに含まれるように実現されてもよい。
【００２９】
上述したように、本発明の実施形態において、サーバ１６０は、クライアントである複数の電子機器１１０、１２０、１３０、１４０にサービスを提供するサービスサーバであってもよく、サーバ１５０は、サーバ１６０とクライアントとの間でロングポーリング（ｌｏｎｇ  ｐｏｌｌｉｎｇ）を処理するウェブサーバであってもよい。
【００３０】
ここで、ポーリング（ｐｏｌｌｉｎｇ）方式とは、データの受信のためにサーバがクライアントにデータを送信するプッシュ（ｐｕｓｈ）方式ではなく、クライアントがサーバにデータを要請する方式であって、ロングポーリングとは、一定の時間以後には接続を終了して、再び接続をするポーリング方式を意味する。
【００３１】
図３は、本発明の一実施形態における、ウェブサーバが含まれたサーバ−クライアント環境の例を示した図である。図３は、クライアント１（３１０）、クライアント２（３２０）にサービスを提供するサービスサーバであるバックエンドサーバ３３０、そしてクライアント１（３１０）、クライアント２（３２０）とバックエンドサーバ３３０との間でロングポーリングを処理するウェブサーバ３４０を示している。一例として、ゲームサービスを提供しようとするバックエンドサーバ３３０は、ゲームサーバ、ＤＢサーバ、ランキングサーバなどのようにゲームサービスを提供するために構築される実際のサービスサーバまたはサービスサーバの組み合わせを意味してもよい。
【００３２】
このような実施形態において、クライアント３１０、３２０は、ウェブサーバ３４０を通じてバックエンドサーバ３３０のサービスの提供を受けてもよい。このために、クライアント３１０、３２０は、ウェブプロトコルを通じてウェブサーバ３４０にポールリクエスト（ｐｏｌｌ  ｒｅｑｕｅｓｔ）を送信してもよい。ウェブサーバ３４０は、ポールハンドラ３４２を通じて受信したポールリクエストを管理してもよく、バックエンドサーバ３３０にポールリクエストを伝達してもよい。
【００３３】
一般的なウェブサーバは、要請がある場合にだけ応答する受動的な（ｐａｓｓｉｖｅ）特徴をもっている。したがって、ウェブサーバ３４０も、要請に対する応答のみを提供する受動的な特徴をもつようになる。しかし、オンラインゲームなどのようにデータの伝達が頻繁に行われるサービスでは、要請と応答だけでサービスを提供するのが難しい。
【００３４】
したがって、本発明の実施形態では、クライアント３１０、３２０がサービスに関してバックエンドサーバ３３０に要請するための一般リクエスト（ｎｏｒｍａｌ  ｒｅｑｕｅｓｔ）とは区分されるポールリクエスト（ｐｏｌｌ  ｒｅｑｕｅｓｔ）を利用する。ポールリクエストとは、クライアント３１０、３２０がバックエンドサーバ３３０との接続を維持するための目的として利用される要請であって、クライアント３１０、３２０のポールリクエストは、ウェブサーバ３４０を通じてバックエンドサーバ３３０に伝達されてもよく、バックエンドサーバ３３０は、伝達されたポールリクエストに対して直ぐに応答せずに一定の時間を待機してもよい。バックエンドサーバ３３０がクライアント３１０、３２０にデータを送信しようとする場合には、該当のデータをポールリクエストに対するポールリプライ（ｐｏｌｌ  ｒｅｐｌｙ）として、ウェブサーバ３４０を通じてクライアント３１０、３２０に送信してもよい。例えば、クライアント３１０、３２０の一般リクエストを処理することによる処理結果を、クライアント３１０、３２０に反映するために、またはバックエンドサーバ３３０がクライアント３１０、３２０を制御するために、ポールリクエストに対するポールリプライとして必要なデータをウェブサーバ３４０に送信してもよい。このとき、ウェブサーバ３４０は、該当のデータを通じてクライアント３１０、３２０で表示されるサービス画面を構成するためのウェブページデータを生成し、ポールリプライとしてクライアント３１０、３２０に送信してもよい。
【００３５】
クライアント３１０、３２０は、ウェブサーバ３４０を通じて伝達されたフォールリプライを処理し、ウェブサーバ３４０にポールリクエストを再び送信することによってバックエンドサーバ３３０との接続を維持してもよい。
【００３６】
例えば、クライアント１（３１０）が、第１ポールリクエストをウェブサーバ３４０に送信すると、ウェブサーバ３４０のポールハンドラ３４２は、第１ポールリクエストをクライアント１（３１０）と関連して管理してもよく、第１ポールリクエストをバックエンドサーバ３３０に送信してもよい。バックエンドサーバ３３０は、第１ポールリクエストに応答せずに待機してもよい。バックエンドサーバ３３０からクライアント１（３１０）にデータを送信しなければならない場合が発生すると、バックエンドサーバ３３０は、第１ポールリクエストに対する第１ポールリプライを通じて該当のデータをウェブサーバ３４０に送信してもよい。ウェブサーバは、受信したデータを基盤としてサービス画面を構成するためのウェブページデータを生成し、生成されたウェブページデータを、第１ポールリプライを通じてクライアント１（３１０）に送信してもよい。クライアント１（３１０）は、ウェブページデータを利用してサービス画面を構成して画面に表示してもよく、再び第２ポールリクエストをウェブサーバ３４０に送信してもよい。ウェブサーバ３４０のポールハンドラ３４２は、第２ポールリクエストをクライアント１（３１０）と関連して管理してもよく、第２ポールリクエストをバックエンドサーバ３３０に送信することによってクライアント１（３１０）とバックエンドサーバ３３０との間の連結が維持されてもよい。
【００３７】
ウェブサーバ３４０のリクエストハンドラ３４１は、クライアント３１０、３２０の一般リクエストを処理してもよい。例えば、リクエストハンドラ３４１は、クライアント３１０、３２０から受信した一般リクエストをバックエンドサーバ３３０に伝達してもよく、バックエンドサーバ３３０から一般リクエストに対する一般リプライを受信してクライアント３１０、３２０に送信してもよい。このとき、一般リクエストに対するバックエンドサーバ３３０の処理結果をクライアント３１０、３２０に反映するためのデータは、上述したポールリプライを通じてバックエンドサーバ３３０からウェブサーバ３４０に送信されてもよい。
【００３８】
図４は、本発明の一実施形態における、複数のウェブサーバが含まれたサーバ−クライアント環境の例を示した図である。図４は、クライアント３（４１０）およびクライアント４（４２０）が、ウェブサーバ４３０を通じてバックエンドサーバ３３０と通信する例を示している。このように、本発明の実施形態では、新たなクライアント４１０、４２０を、新たなウェブサーバ４３０を通じて接続することが可能であるため、リアルタイムでウェブサーバ４３０を増設することが容易となる。ここで、ウェブサーバ４３０のリクエストハンドラ４３１およびポールハンドラ４４２は、ウェブサーバ３４０のリクエストハンドラ３４１およびポールハンドラ３４２と同じように動作してもよい。
【００３９】
また、上述したように、ウェブサーバ３４０、４３０がバックエンドサーバ３３０のデータを基盤としてサービス画面の構成のためのウェブページデータを生成してクライアントに送信するため、サーバパッチをクライアント３１０、３２０、４１０、４２０のクライアントプログラムにそれぞれ適用したり、ウェブサーバ３４０、４３０を終了したりする必要がなくなり、必要な修正事項をウェブサーバ３４０、４３０にそれぞれ適用することが可能となる。
【００４０】
これだけでなく、バックエンドサーバ３３０がクライアント３１０、３２０、４１０、４２０とソケット構造のような実際のチャンネルを形成しているのではないため、バックエンドサーバ３３０とウェブサーバ３４０、４３０との間のプロトコルも自由に変更することができる。
【００４１】
図５は、本発明の一実施形態における、サーバのプロセッサが含むことのできる構成要素の例を示した図であり、図６は、本発明の一実施形態における、サーバが実行することのできるロングポーリング処理方法の例を示したフローチャートである。
【００４２】
図１および図２を参照しながら説明したサーバ１５０は、図３を参照しながら説明したウェブサーバ３４０に対応してもよい。サーバ１５０は、クライアント（一例として、電子機器１（１１０））とクライアントにネットワークを介してサービスを提供するサービスサーバ（一例として、サーバ１６０）との間で、ロングポーリング（ｌｏｎｇ  ｐｏｌｌｉｎｇ）を処理してもよい。このとき、図５に示すように、サーバ１５０のプロセッサ２２２は、構成要素として、ポール管理部５１０およびウェブページデータ生成部５２０を備えてもよい。このようなプロセッサ２２２およびプロセッサ２２２の構成要素は、図６のロングポーリング処理方法が含む段階６１０〜６５０を実行するようにサーバ１５０を制御してもよい。このとき、プロセッサ２２２およびプロセッサ２２２の構成要素は、メモリ２２１が含むオペレーティングシステムのコードと少なくとも１つのプログラムコードによる命令（ｉｎｓｔｒｕｃｔｉｏｎ）を実行するように実現されてもよい。ここで、プロセッサ２２２の構成要素は、プロセッサ２２２によって実行される互いに異なる機能（ｄｉｆｆｅｒｅｎｔ  ｆｕｎｃｔｉｏｎｓ）の表現であってもよい。例えば、プロセッサ２２２が上述した命令にしたがってポールリクエストを受信するようにサーバ１５０を制御するために動作するなどの機能的表現としてポール管理部５１０が使用されてもよい。
【００４３】
段階６１０で、プロセッサ２２２は、ロングポーリング処理方法のためのプログラムのファイルに格納されたプログラムコードを、メモリ２２１にロードしてもよい。例えば、プログラムは、サービスの提供のために必要なファイルを管理し、該当のファイルに含まれたプログラムコードも、メモリ２２１にロードするためにサーバ１５０に予めインストールされたプログラムであってもよい。サーバ１５０に予めインストールされたプログラムが実行される場合、プロセッサ２２２は、プログラムのファイルからプログラムコードをメモリ２２１にロードしてもよい。
【００４４】
このとき、プロセッサ２２２およびプロセッサ２２２が備えるポール管理部５１０およびウェブページデータ生成部５２０それぞれは、メモリ２２１にロードされたプログラムコードのうちの対応する部分（対応する命令）を実行して、以後の段階６２０および段階６４０を実行してもよい。段階６２０および段階６５０の実行のために、プロセッサ２２２およびプロセッサ２２２の構成要素は、サーバ１５０を制御してもよい。例えば、プロセッサ２２２は、サーバ１５０が含む通信モジュール２２３を制御してサーバ１５０がクライアント（一例として、複数の電子機器１１０、１２０、１３０、１４０やサービスサーバ（一例として、サーバ１６０）と通信するようにサーバ１５０を制御してもよい。
【００４５】
段階６２０で、ポール管理部５１０は、クライアントからポールリクエスト（ｐｏｌｌ  ｒｅｑｕｅｓｔ）を受信して、サービスサーバに伝達するようにサーバ１５０を制御してもよい。上述したように、クライアントは、クライアントプログラムが駆動されたり、以前のポールリクエストに対するポールリプライを受信したりする場合に、ポールリクエストをウェブサーバであるサーバ１５０にウェブプロトコルを利用して送信してもよい。このとき、サーバ１５０のポール管理部５１０は、ポールリクエストを受信してサービスサーバに伝達してもよく、ポールリクエストを該当のクライアントと関連付けて管理してもよい。より具体的な例として、ポール管理部５１０は、ポールリクエストの識別子とクライアントの識別子とを互いに関連付けて格納してもよい。
【００４６】
段階６３０で、ポール管理部５１０は、サービスサーバからクライアントに反映するためのデータを、ポールリクエストに対するポールリプライ（ｐｏｌｌ  ｒｅｐｌｙ）として受信するようにサーバ１５０を制御してもよい。上述したように、サービスサーバは、段階６２０で、サーバ１５０が伝達したポールリクエストに対して応答せずに待機してもよい。サービスサーバからクライアントに伝達するデータが存在する場合、サービスサーバは、ポールリクエストに対するポールリプライとして該当のデータをサーバ１５０に送信してもよく、サーバ１５０は、ポール管理部５１０の制御にしたがって、該当のデータをポールリプライとして受信してもよい。
【００４７】
より具体的な例として、サービスサーバは、サーバ１５０から伝達されたポールリクエストに対するポールリプライの送信を延期して待機し、クライアントからの一般リクエスト（ｎｏｒｍａｌ  ｒｅｑｕｅｓｔ）に対する処理結果を、クライアントに反映するためのデータまたはサービスサーバが、サービスのためにクライアントを制御するためのデータを、クライアントに送信しようとする場合に、送信しようとするデータをポールリプライとしてウェブサーバに送信してもよい。
【００４８】
段階６４０で、ウェブページデータ生成部５２０は、受信したデータを基盤としてウェブページデータを生成してもよい。既存には、クライアントがサービスサーバから受信したデータを基盤としてサービスを実行させてサービス画面を表示していた反面、本発明の実施形態では、サーバ１５０がサービス画面を構成するためのウェブページデータを生成してもよい。
【００４９】
例えば、ポール管理部５１０は、クライアントから一般リクエスト（ｎｏｒｍａｌ  ｒｅｑｕｅｓｔ）を受信してサービスサーバに伝達し、サービスサーバから一般リクエストの処理による一般リプライ（ｎｏｒｍａｌ  ｒｅｐｌｙ）を受信してクライアントに伝達し、サービスサーバから一般リクエストに対するサービスサーバの処理結果をクライアントに反映するためのデータを、ポールリプライとして受信するようにサーバ１５０を制御してもよい。この場合、サーバ１５０は、クライアントの一般リクエストに対する処理結果をクライアントに反映するためのデータを得てもよく、ウェブページデータ生成部５２０は、該当のデータを基盤として一般リクエストに対するサービスサーバの処理結果が反映されたサービス画面を構成するためのウェブページデータを生成してもよい。
【００５０】
他の例として、ポール管理部５１０は、サービスサーバからサービスサーバがクライアントを制御するためのデータをポールリプライとして受信するようにサーバ１５０を制御してもよい。この場合、サーバ１５０は、サービスサーバがクライアントをどのように制御しようとするかに関するデータを得てもよく、ウェブページデータ生成部５２０は、該当のデータを基盤としてサービスサーバの制御によるサービス画面を構成するためのウェブページデータを生成してもよい。
【００５１】
このようなサービスは、ゲームサービスを含んでもよい。この場合、ウェブページデータは、クライアントで表示されるゲームサービス画面を構成するためのデータを含んでもよい。
【００５２】
段階６５０で、ポール管理部５１０は、ウェブページデータをポールリプライとしてクライアントに伝達するようにサーバ１５０を制御してもよい。例えば、サービスサーバが送信するポールリプライは、対応するポールリクエストの識別子を含んでもよい。この場合、ポール管理部５１０は、ポールリクエストの識別子に対応して格納されたクライアントの識別子を検索してもよく、該当の識別子のクライアントにウェブページデータを送信するようにサーバ１５０を制御してもよい。
【００５３】
ポールリプライが伝達されたクライアントは、ポールリプライとして伝達されたウェブページデータを通じてサービス画面を構成して表示することによって、サービスが実行されてもよい。このようなウェブページデータは、ウェブページを構成するためのソースの形態で生成されてもよく、クライアントは、ウェブブラウザを通じてウェブページデータからサービス画面を構成して表示してもよい。他の例として、クライアントは、別の専用アプリケーションを利用してウェブページデータからサービス画面を構成して表示することも可能である。
【００５４】
このように、クライアントは、サービスを実行するために別のロジックを含んだり処理したりする必要がなく、提供されるウェブページデータを通じてサービス画面のみを構成して表示するため、サービスを提供するにあたり、クライアント自体に対するハッキングイシューを取り除くことができる。これだけでなく、クライアントでウェブブラウザや専用のアプリケーションなどのように多様な方式によってサービスの提供を受けることが可能になる。さらに、クライアントがウェブサーバであるサーバ１５０にポールリクエストを送信することによってサービスに接続または再接続することができるため、接続または再接続の整合性に優れ、復旧も容易であるという長所がある。
【００５５】
ウェブサーバであるサーバ１５０の観点では、リアルタイムでサーバパッチを適用するのが容易になるため、アップデート費用を抑えることができ、リアルタイムでサーバを増設することが簡単になる。これだけでなく、ウェブ表現方式を利用するため、クライアントの開発を並列的に行うことが容易となり、相対的に多くのウェブ開発者によってサービスを提供することができるという長所がある。
【００５６】
図７は、本発明の一実施形態における、ロングポーリング処理過程の例を示した図である。図７は、クライアント７１０、ウェブサーバ７２０、およびサービスサーバ７３０間のデータ処理および送信過程の例を示している。
【００５７】
１．ポールリクエスト送信過程は、クライアント７１０がウェブサーバ７２０にウェブプロトコルを通じてポールリクエストを送信する過程であってもよい。クライアント７１０は、クライアントプログラムが駆動されたり、以前のポールリクエストに対するポールリプライを受信したりする場合に、ポールリクエストをウェブサーバ７２０に送信してもよい。
【００５８】
２．ポールリクエスト伝達過程は、ウェブサーバ７２０がサービスサーバ７３０の間に設定された通信プロトコルを利用してポールリクエストを伝達する過程であってもよい。このような通信プロトコルはクライアント７１０の接続とは関係ないため、自由に変更が可能である。
【００５９】
３．待機過程は、サービスサーバ７３０が伝達を受けたポールリクエストに対して応答せずに待機する過程であってもよい。これは、サービスサーバ７３０がクライアント７１０にデータを伝達しなければならない必要が生じてポールリクエストに対するポールリプライを送信するまで待機することを意味してもよく、ポールリクエストによってクライアント７１０とサービスサーバ７３０間の仮想のチャンネルが生成されたことを意味してもよい。
【００６０】
４．一般リクエスト送信過程は、クライアント７１０がサービスサーバ７３０への要請のための一般リクエストをウェブサーバ７２０に送信する過程であってもよい。一般リクエストは、サービスの進行と関連する多様な要請のためのメッセージであってもよく、ポールリクエストの送信に利用されたウェブプロトコルとは異なるウェブプロトコルを利用してウェブサーバ７２０に送信されてもよい。
【００６１】
５．一般リクエスト伝達過程は、ウェブサーバ７２０がサービスサーバ７３０に一般リクエストを伝達する過程であってもよい。サービスサーバ７３０の観点では、一般リクエストの伝達を特定のイベント発生として感知してもよい。
【００６２】
６．一般リクエスト処理過程は、サービスサーバ７３０が一般リクエストを処理する過程であってもよい。
【００６３】
７．一般リプライ送信過程は、サービスサーバ７３０が一般リクエストに対する応答として一般リプライをクライアント７１０に送信するために、先ずウェブサーバ７２０に一般リプライを送信する過程であってもよい。
【００６４】
８．一般リプライ伝達過程は、ウェブサーバ７２０がサービスサーバ７３０から受信した一般リプライをクライアント７１０に伝達する過程であってもよい。
【００６５】
９．ポールリプライ送信過程は、サービスサーバ７３０が伝達を受けたポールリクエストに対するポールリプライをウェブサーバ７２０に送信する過程であってもよい。このとき、ポールリプライは、一般リクエストの処理結果をクライアント７１０に反映するためのデータを含んでもよい。
【００６６】
１０．ウェブページデータ生成過程は、ウェブサーバ７２０がポールリプライとして送信されたデータを基盤として一般リクエストの処理結果が反映されたサービス画面を構成するためのウェブページデータを生成する過程であってもよい。
【００６７】
１１．ポールリプライ伝達過程は、ウェブサーバ７２０が生成されたウェブページデータをポールリプライとしてクライアント７１０に伝達する過程であってもよい。
【００６８】
１２．ウェブページデータ処理過程は、クライアントがウェブページデータを利用してサービス画面を構成および表示する過程であってもよい。
【００６９】
１３．ポールリクエスト送信過程は、１．ポールリクエスト送信過程と同じ過程であってもよい。
【００７０】
図８は、本発明の一実施形態における、ロングポーリング処理過程の他の例を示した図である。
【００７１】
１．ポールリクエスト送信過程は、クライアント７１０がウェブサーバ７２０にウェブプロトコルを利用してポールリクエストを送信する過程であってもよい。クライアント７１０は、クライアントプログラムが駆動されたり、以前のポールリクエストに対するポールリプライを受信したりする場合に、ポールリクエストをウェブサーバ７２０に送信してもよい。
【００７２】
２．ポールリクエスト伝達過程は、ウェブサーバ７２０がサービスサーバ７３０の間に設定された通信プロトコルを利用してポールリクエストを伝達する過程であってもよい。このような通信プロトコルはクライアント７１０の接続とは関係ないため、自由に変更が可能である。
【００７３】
３．待機過程は、サービスサーバ７３０が伝達を受けたポールリクエストに対して応答せずに待機する過程であってもよい。これは、サービスサーバ７３０がクライアント７１０にデータを伝達しなければならない必要が生じてポールリクエストに対するポールリプライを送信するまで待機することを意味してもよく、ポールリクエストによってクライアント７１０とサービスサーバ７３０間の仮想のチャンネルが生成されたことを意味してもよい。
【００７４】
４．イベント発生過程は、サービスサーバ７３０がクライアント７１０を制御するためのデータを送信するためのイベントが発生する過程であってもよく、５．ポールリプライ送信過程は、サービスサーバ７３０がイベントによるデータをポールリプライとしてウェブサーバ７２０に送信する過程であってもよい。言い換えれば、サービスサーバ７３０は、クライアント７１０の要請になくても、ポールリクエストに対するポールリプライを通じてクライアント７１０を制御するためのデータをいつでも送信することができる。
【００７５】
以後の過程６〜９は、図７の過程１０〜１３と同じように処理されてもよい。
【００７６】
このように、本発明の実施形態によると、クライアントと前記クライアントにネットワークを介してサービスを提供するサービスサーバとの間で、ウェブサーバがロングポーリング（ｌｏｎｇ  ｐｏｌｌｉｎｇ）を処理してサービス画面の構成のためのウェブページデータを生成してクライアントに提供することにより、クライアント自体に対するハッキングイシューを取り除くことができる上に、リアルタイムパッチとサーバ増設が容易となり、サービスサーバでのプロトコルを自由に変更することができる。
【００７７】
上述したシステムまたは装置は、ハードウェア構成要素、ソフトウェア構成要素、またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてもよい。例えば、実施形態で説明された装置および構成要素は、例えば、プロセッサ、コントローラ、ＡＬＵ（ａｒｉｔｈｍｅｔｉｃ  ｌｏｇｉｃ  ｕｎｉｔ）、デジタル信号プロセッサ（ｄｉｇｉｔａｌ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｏｒ）、マイクロコンピュータ、ＦＰＧＡ（ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）、ＰＬＵ（ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ｕｎｉｔ）、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、１つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてもよい。処理装置は、オペレーティングシステム（ＯＳ）および前記ＯＳ上で実行される１つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを格納、操作、処理および生成してもよい。理解の便宜のために、１つの処理装置が使用されるとして説明される場合もあるが、当業者は、処理装置が複数個の処理要素（ｐｒｏｃｅｓｓｉｎｇ  ｅｌｅｍｅｎｔ）および／または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは１つのプロセッサおよび１つのコントローラを含んでもよい。また、並列プロセッサ（ｐａｒａｌｌｅｌ  ｐｒｏｃｅｓｓｏｒ）のような、他の処理構成（ｐｒｏｃｅｓｓｉｎｇ  ｃｏｎｆｉｇｕｒａｔｉｏｎ）も可能である。
【００７８】
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの１つ以上の組み合わせを含んでもよく、思うままに動作するように処理装置を構成したり、独立的または集合的に（ｃｏｌｌｅｃｔｉｖｅｌｙ）処理装置を命令したりしてよい。ソフトウェアおよび／またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供するために、いかなる種類の機械、コンポーネント、物理装置、仮想装置（ｖｉｒｔｕａｌ  ｅｑｕｉｐｍｅｎｔ）、コンピュータ格納媒体または装置、または送信される信号波（ｓｉｇｎａｌ  ｗａｖｅ）に永久的または一時的に具現化（ｅｍｂｏｄｙ）されてもよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された方法で格納されても実行されてもよい。ソフトウェアおよびデータは、１つ以上のコンピュータで読み取り可能な記録媒体に格納されてもよい。
【００７９】
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータで読み取り可能な媒体に記録されてもよい。前記コンピュータで読み取り可能な媒体は、プログラム命令、データファイル、データ構造などを単独でまたは組み合わせて含んでもよい。前記媒体に記録されるプログラム命令は、実施形態のために特別に設計されて構成されたものであってもよいし、コンピュータソフトウェア当業者に公知な使用可能なものであってもよい。コンピュータで読み取り可能な記録媒体の例としては、ハードディスク、フロッピディスク、および磁気テープのような磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤのような光媒体、フロプティカルディスク（ｆｌｏｐｔｉｃａｌ  ｄｉｓｋ）のような光磁気媒体、およびＲＯＭ、ＲＡＭ、フラッシュメモリなどのようなプログラム命令を格納して実行するように特別に構成されたハードウェア装置が含まれる。プログラム命令の例は、コンパイラによって生成されるもののような機械語コードだけではなく、インタプリタなどを使用してコンピュータによって実行される高級言語コードを含む。上述したハードウェア装置は、実施形態の動作を実行するために１つ以上のソフトウェアモジュールとして動作するように構成されてもよく、その逆も同じである。
【００８０】
以上のように、実施形態を限定された実施形態と図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能である。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、および／あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置されたり置換されたとしても、適切な結果を達成することができる。
【００８１】
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付される特許請求の範囲に属する。
【符号の説明】
【００８２】
１１０、１２０、１３０、１４０：電子機器
１５０、１６０：サーバ
１７０：ネットワーク
【図１】
0006285579.tif 000002
【図２】
0006285579.tif 000003
【図３】
0006285579.tif 000004
【図４】
0006285579.tif 000005
【図５】
0006285579.tif 000006
【図６】
0006285579.tif 000007
【図７】
0006285579.tif 000008
【図８】
0006285579.tif 000009