(57)【要約】  コンピュータ実装された方法がクライアントマシンによって実行されて、データサーバとの通信を確立する。本クライアントマシンは、本クライアントマシンに特定のデータを提供する使用可能なデータサーバに関する情報を有するディレクトリサーバに第1の通信要求を送信する。さらに、第1の所定の期間内にディレクトリサーバとの通信を可能にするように第1のソケットが確立されるかどうかを判定する。第1のソケットが確立されるとき、ディレクトリサーバから使用可能なデータサーバに関する情報を受信し、特定のデータを受信するための使用可能なデータサーバから選択されたデータサーバと目標ソケットを確立する。第1のソケットが確立されないとき、クライアントマシンがその使用可能なデータサーバに関する情報またはその特定のデータを受信するまで、所定の順序に従ってセカンダリサーバにより多くの通信要求を送信する。
2015529924.tif 000002
【特許請求の範囲】
【請求項１】
クライアントマシンとデータサーバの間の通信を確立する方法であって、
クライアントマシンで
ディレクトリサーバに第1の要求を送信するステップであって、前記ディレクトリサーバが、前記クライアントマシンに特定のデータを提供する、使用可能なデータサーバに関する情報を有する、ステップと、
第1の所定の期間内に前記ディレクトリサーバとの通信を可能にするように第1のソケットが確立されるかどうかを判定するステップと、
前記第1のソケットが確立されるという判定に従って、前記第1のソケットを介して前記ディレクトリサーバから前記使用可能なデータサーバに関する前記情報を受信し、前記特定のデータを受信するための前記使用可能なデータサーバから選択されたデータサーバと目標ソケットを確立するステップと、
前記第1のソケットが確立されないという判定に従って、前記クライアントマシンが前記使用可能なデータサーバに関する前記情報または前記特定のデータを受信するまで、所定の順序に従って複数のセカンダリサーバに複数の通信要求を送信するステップと
を含む、方法。
【請求項２】
前記複数のセカンダリサーバの第1のサブセットが、少なくとも2つのバックアップディレクトリサーバを備え、前記所定の順序に従って、前記複数の通信要求の第1のサブセットが、前記少なくとも2つのバックアップディレクトリサーバに同時に送信される少なくとも2つの第2の通信要求を含む、請求項1に記載の方法。
【請求項３】
第2の所定の期間内に前記少なくとも2つのバックアップディレクトリサーバのうちの1つとの通信を可能にするように第2のソケットが確立されるかどうかを判定するステップ
をさらに含み、前記第2のソケットが確立されるという判定に従って、前記方法が、
前記第2のソケットを介して前記少なくとも2つのバックアップディレクトリサーバのうちの前記1つから前記使用可能なデータサーバに関する前記情報を受信するステップと、
前記特定のデータを受信するための前記使用可能なデータサーバから選択されたデータサーバと前記目標ソケットを確立するステップと
をさらに含む、請求項2に記載の方法。
【請求項４】
前記第2のソケットが確立されないという判定に従って、前記クライアントマシンが、セカンダリサーバの第2のサブセット内のバックアップデータサーバから前記特定のデータを受信するまで、セカンダリサーバの前記第2のサブセットに第2のサブセットの複数の通信要求を送信するステップであって、セカンダリサーバの前記第2のサブセットが、前述のバックアップデータサーバを含む少なくとも2つのバックアップデータサーバを備えるステップ
をさらに含む、請求項3に記載の方法。
【請求項５】
前記複数のセカンダリサーバが少なくとも2つのバックアップデータサーバを備え、前記所定の順序に従って、前記複数の通信要求が、前記少なくとも2つのバックアップデータサーバに同時に送信される少なくとも2つの第3の通信要求を含む、請求項1に記載の方法。
【請求項６】
第3の所定の期間内に前記少なくとも2つのバックアップデータサーバのうちの1つとの通信を可能にするように前記目標ソケットが確立されるかどうかを判定するステップと、
前記目標ソケットが確立されるという判定に従って、前記少なくとも2つのバックアップデータサーバのうちの前記1つから前記特定のデータを受信するステップと
をさらに含む、請求項5に記載の方法。
【請求項７】
前記クライアントマシンが、前記クライアントマシンでローカルにゲームプログラムを動作させるために、使用可能なデータサーバまたはバックアップデータサーバから前記特定のデータを受信するゲーム端末である、請求項1に記載の方法。
【請求項８】
前記クライアントマシンが第1の通信要求を前記ディレクトリサーバに送信するときに、前記クライアントマシンが、前記特定のデータに基づいて動作するソースプログラムをダウンロードする、請求項1に記載の方法。
【請求項９】
前記第1の所定の期間が、1秒から10秒の間で選択された時間にわたり持続する、請求項1に記載の方法。
【請求項１０】
前記第1の所定の期間が、前記特定のデータを使用するアプリケーションによって判定される、請求項1に記載の方法。
【請求項１１】
クライアントマシンであって、
1つまたは複数のプロセッサと、
メモリであって、
前記1つまたは複数のプロセッサによって実行されるときに、前記プロセッサに、
前記クライアントマシンで、
ディレクトリサーバ、前記クライアントマシンに特定のデータを提供する使用可能なデータサーバに関する情報を有する前記ディレクトリサーバ、に第1の通信要求を送信するステップ、
第1の所定の期間内に前記ディレクトリサーバとの通信を可能にするように第1のソケットが確立されるかどうかを判定するステップ、
前記第1のソケットが確立されるという判定に従って、前記第1のソケットを介して前記ディレクトリサーバから前記使用可能なデータサーバに関する前記情報を受信し、前記特定のデータを受信するための前記使用可能なデータサーバから選択されたデータサーバと目標ソケットを確立するステップ、
前記第1のソケットが確立されないという判定に従って、前記クライアントマシンが前記使用可能なデータサーバに関する前記情報または前記特定のデータを受信するまで、所定の順序に従って複数のセカンダリサーバに複数の通信要求を送信するステップ
を含む動作を実行させる、命令を記憶するメモリと
を備える、クライアントマシン。
【請求項１２】
前記複数のセカンダリサーバが少なくとも2つのバックアップデータサーバを備え、前記所定の順序に従って、前記複数の通信要求が、前記少なくとも2つのバックアップデータサーバに同時に送信される少なくとも2つの第3の通信要求を含む、請求項11に記載のクライアントマシン。
【請求項１３】
第3の所定の期間内に前記少なくとも2つのバックアップデータサーバのうちの1つとの通信を可能にするように前記目標ソケットが確立されるかどうかを判定するステップと、
前記目標ソケットが確立されるという判定に従って、前記少なくとも2つのバックアップデータサーバのうちの前記1つのバックアップデータサーバから前記特定のデータを受信するステップと
をさらに備える、請求項12に記載のクライアントマシン。
【請求項１４】
前記クライアントマシンが、前記クライアントマシンでローカルにゲームプログラムを動作させるために、使用可能なデータサーバまたはバックアップデータサーバから前記特定のデータを受信するゲーム端末である、請求項11に記載のクライアントマシン。
【請求項１５】
前記クライアントマシンが前記第1の通信要求を前記ディレクトリサーバに送信するときに、前記クライアントマシンが、前記特定のデータに基づいて動作するソースプログラムをダウンロードする、請求項11に記載のクライアントマシン。
【請求項１６】
前記第1の所定の期間が、前記特定のデータを使用するアプリケーションによって判定される、請求項11に記載のクライアントマシン。
【請求項１７】
非一時的コンピュータ可読記録媒体であって、
1つまたは複数のプロセッサによって実行されるときに前記プロセッサに、
クライアントマシンで、
ディレクトリサーバ、前記クライアントマシンに特定のデータを提供する使用可能なデータサーバに関する情報を有する前記ディレクトリサーバ、に第1の通信要求を送信するステップ、
第1の所定の期間内に前記ディレクトリサーバとの通信を可能にするように第1のソケットが確立されるかどうかを判定するステップ、
前記第1のソケットが確立されるという判定に従って、前記第1のソケットを介して前記ディレクトリサーバから前記使用可能なデータサーバに関する前記情報を受信し、前記特定のデータを受信するための前記使用可能なデータサーバから選択されたデータサーバと目標ソケットを確立するステップ、
前記第1のソケットが確立されないという判定に従って、前記クライアントマシンが前記使用可能なデータサーバに関する前記情報または前記特定のデータを受信するまで、所定の順序に従って複数のセカンダリサーバに複数の通信要求を送信するステップ
を含む動作を行わせる、命令を記憶する、非一時的コンピュータ可読記録媒体。
【請求項１８】
前記複数のセカンダリサーバの第1のサブセットが、少なくとも2つのバックアップディレクトリサーバを備え、前記所定の順序に従って、前記複数の通信要求の第1のサブセットが、前記少なくとも2つのバックアップディレクトリサーバに同時に送信される少なくとも2つの第2の通信要求を含む、請求項17に記載の非一時的コンピュータ可読記録媒体。
【請求項１９】
第2の所定の期間内に前記少なくとも2つのバックアップディレクトリサーバのうちの1つとの通信を可能にするように第2のソケットが確立されるかどうかを判定するステップ
をさらに備え、
前記第2のソケットが確立されるという判定に従って、前記方法がさらに、
前記第2のソケットを介して前記少なくとも2つのバックアップディレクトリサーバのうちの前記の1つから前記使用可能なデータサーバに関する前記情報を受信するステップと、
前記特定のデータを受信するための前記使用可能なデータサーバから選択されたデータサーバと前記目標ソケットを確立するステップと
をさらに含む、請求項18に記載の非一時的コンピュータ可読記録媒体。
【請求項２０】
前記第2のソケットが確立されないという判定に従って、前記クライアントマシンがセカンダリサーバの第2のサブセット内のバックアップデータサーバから前記特定のデータを受信するまで、セカンダリサーバの前記第2のサブセットに第2のサブセットの前記複数の通信要求を送信するステップであって、セカンダリサーバの前記第2のサブセットが、前述のバックアップデータサーバを含む少なくとも2つのバックアップデータサーバを備える、ステップ
をさらに備える、請求項19に記載の非一時的コンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、参照によりその全体が組み込まれている、2012年9月17日に出願した中国特許出願第201210344201.4号、表題「Method of Establishing a Network Socket」の優先権を主張するものである。
【０００２】
本発明は、概して通信システムに関し、詳細には、クライアントマシンとそのクライアントマシンでアプリケーションを実行するために使用されるアプリケーションデータを提供するデータサーバとの間にネットワークソケットを確立するコンピュータ実装された方法に関する。
【背景技術】
【０００３】
多数のインターネットゲームアプリケーションでは、ゲーム環境に関するデータが、ネットワーク内のいくつかのデータサーバからこれらのデータサーバのそれぞれの負荷状態に従って選択された特定のデータサーバによって、各クライアントマシンに提供される。図1は、オンラインゲームアプリケーションをサポートするように構成された既存の通信システム100を示す。クライアントマシン11は、先ず、リソースサーバ12からソースプログラムをダウンロードする。そのソースプログラムのダウンロードを完了したとき、クライアントマシン11は、ディレクトリサーバ14にデータサーバとネットワークソケットを確立するための要求を送信する。ディレクトリサーバ14は、ネットワーク内のデータサーバ13の負荷状態を監視し、使用可能なデータサーバ13のリストの記録をつける。したがって、ディレクトリサーバ14は、クライアントマシン11に使用可能なデータサーバ13のリストを返し、クライアントマシン11は、それによって、使用可能なデータサーバ13のうちの1つとネットワークソケットを確立する。
【０００４】
それの許容可能な性能にかかわらず、通信システム100は、インターネットゲームにおけるユーザ体験に重大な影響を及ぼすいくつかの問題に悩まされる。ディレクトリサーバ14によって追跡される使用可能なデータサーバ(たとえば、サーバ131または132)が、複数のサービスプロバイダによって主催されるとき、ディレクトリサーバ14は、あるサービスプロバイダに登録されたクライアントマシン11に別のサービスプロバイダに属するデータサーバのIPアドレスを誤って提供することがある。これは、主として、ディレクトリサーバ14が、異なるサービスプロバイダに対応するデータサーバ13の誤ったドメイン名にIPアドレスをマップするため、生じる。
【０００５】
いくつかの状況で、クライアントマシン11は、ディレクトリサーバ14が所定の期間、たとえば20秒、内に使用可能なデータサーバのIPアドレスを返すのを待つ。この期間は延長された長さを既に有するが、ディレクトリサーバ14はさらに、使用可能なデータサーバ13のうちの1つのIPアドレスを返すためにより長い時間を必要とすることがある。他方では、ディレクトリサーバ14が所定の期間の最後にIPアドレスを返しても、対応するデータサーバの実際のIPアドレスは、ディレクトリサーバ14によって使用された時間の延長された長さのため、既に変更されてある場合がある。結果として、有効なIPアドレスは、所定の期間内にクライアントマシン11に返されず、延長された長さの時間にわたる待機にもかかわらず、クライアントマシン11は、ネットワークソケットを確立して使用可能なデータサーバからゲーム環境に関するデータを受信することにやはり失敗する。
【０００６】
したがって、使用可能なデータサーバの情報が速やかに返されて、そのような通信システムに基づくオンラインゲームアプリケーションにおけるユーザ経験を向上させるように、通信システムにおいてリソースを効率的に利用する必要性がある。
【発明の概要】
【課題を解決するための手段】
【０００７】
前述の欠陥および通信システムに関する他の問題は、以下に開示される本発明によって軽減または解消される。いくつかの実施形態で、本発明は、1つまたは複数のプロセッサ、メモリおよび1つまたは複数のモジュール、プログラム、あるいは、多くの機能を実行するためのメモリ内に記憶された命令集合を有するコンピュータシステム内で実装される。これらの機能を実行するための命令は、1つまたは複数のプロセッサによる実行のために構成されたコンピュータプログラム製品内に含まれ得る。
【０００８】
本発明の一態様は、クライアントマシンとデータサーバの間の通信を確立するために、クライアントマシンによって実行されるコンピュータ実装された方法を含む。クライアントマシンは、ディレクトリサーバに第1の通信要求を送信し、ディレクトリサーバは、特定のデータをクライアントマシンに提供する使用可能なデータサーバに関する情報を有する。クライアントマシンは、第1の所定の期間内にディレクトリサーバとの通信を可能にするように第1のソケットが確立されるかどうかを判定する。第1のソケットがそのように確立されるという判定に従って、クライアントマシンは、第1のソケットを介してディレクトリサーバから使用可能なデータサーバに関する情報を受信し、その特定のデータを受信するための使用可能なデータサーバから選択されたデータサーバと目標ソケットを確立する。しかし、第1のソケットが確立されないという判定に従って、クライアントマシンは、そのクライアントマシンがその使用可能なデータサーバに関する情報またはその特定のデータを受信するまで、所定の順序に従って複数のセカンダリサーバに複数の通信要求を送信する。
【０００９】
本発明のもう1つの態様は、クライアントマシンなどのコンピュータシステムを含む。クライアントマシンは、1つまたは複数のプロセッサと、その1つまたは複数のプロセッサによって実行されるときに、そのプロセッサに、クライアントマシンに特定のデータを提供する使用可能なデータサーバに関する情報を有するディレクトリサーバへ第1の通信要求を送信させる、第1の所定の期間内にディレクトリサーバとの通信を可能にするように第1のソケットが確立されるかどうかを判定させる、第1のソケットが確立されるという判定に従って、第1のソケットを介してディレクトリサーバからその使用可能なデータサーバに関する情報を受信させ、その特定のデータを受信するための使用可能なデータサーバから選択されたデータサーバと目標ソケットを確立させ、第1のソケットが確立されないという判定に従って、クライアントマシンがその使用可能なデータサーバに関する情報またはその特定のデータを受信するまで、所定の順序に従って複数のセカンダリサーバに複数の通信要求を送信させる、そこに記憶された命令を有するメモリとを含む。
【００１０】
本発明のもう1つの態様は、コンピュータシステム(たとえば、クライアントマシン)によって実行されるときに、そのコンピュータシステムに、そのクライアントマシンに特定のデータを提供する使用可能なデータサーバに関する情報を有するディレクトリサーバに第1の通信要求を送信させる、第1の所定の期間内にディレクトリサーバとの通信を可能にするように第1のソケットが確立されるかどうかを判定させる、第1のソケットが確立されるという判定に従って、第1のソケットを介してディレクトリサーバからその使用可能なデータサーバに関する情報を受信させ、その特定のデータを受信するための使用可能なデータサーバから選択されたデータサーバと目標ソケットを確立させ、第1のソケットが確立されないという判定に従って、クライアントマシンがその使用可能なデータサーバに関する情報またはその特定のデータを受信するまで、所定の順序に従って複数のセカンダリサーバに複数の通信要求を送信させる、そこに記憶された命令を有する非一時的コンピュータ可読記憶媒体を含む。
【００１１】
他の実施形態および利点が、本明細書の説明および図面に照らして当業者には明らかとなり得る。
【００１２】
本発明の前述の特徴および利点ならびにその追加の特徴および利点は、図面と併用されるときに好ましい実施形態の詳細な説明の結果として以下でより明確に理解されよう。
【図面の簡単な説明】
【００１３】
【図１】ゲームアプリケーションをサポートするように構成された既存の通信システムを示す図である。
【図２】本発明のいくつかの実施形態による通信システムのブロック図である。
【図３】本発明のいくつかの実施形態によるディレクトリサーバに基づく使用可能なデータサーバを識別するための方法の流れ図である。
【図４】本発明のいくつかの実施形態による、バックアップディレクトリサーバを含む、複数のセカンダリサーバに基づく使用可能なデータサーバを識別する方法の流れ図である。
【図５】本発明のいくつかの実施形態による、バックアップデータサーバを含む、複数のセカンダリサーバに基づく使用可能なデータサーバを識別する方法の流れ図である。
【図６】本発明のいくつかの実施形態による所定の順序に基づく複数のデータサーバの間から使用可能なデータサーバを識別する方法の流れ図である。
【図７Ａ】本発明のいくつかの実施形態による、クライアントマシンなど、コンピュータシステムのブロック図である。
【図７Ｂ】本発明のいくつかの実施形態によるサーバ(リソースサーバ、ディレクトリサーバ、バックアップディレクトリサーバ、バックアップデータサーバおよびデータサーバなど)のブロック図である。
【発明を実施するための形態】
【００１４】
同様の参照番号は、図面のいくつかの表示をとおして対応する部分を指す。
【００１５】
実施形態がここで詳細に参照され、その例が添付の図面に示される。以下の詳細な説明で、多くの特定の詳細が、本明細書で提示される対象の完全な理解を実現するために、記載される。しかし、その対象はこれらの特定の詳細なしに実施され得ることが、当業者には明らかであろう。他の例では、よく知られている方法、手順、構成要素、および回路は、実施形態の態様を不必要に分かりにくくしないように、詳細に説明されていない。
【００１６】
図2は、本発明のいくつかの実施形態による通信システム200のブロック図である。通信システム200は、クライアントマシン21と、リソースサーバ22と、ディレクトリサーバ23と、複数のデータサーバ50と、バックアップディレクトリサーバ30およびバックアップデータサーバ40をさらに含む複数のセカンダリサーバとを含む。通信システム200は、ソースプログラムと、クライアントマシン21でアプリケーションを実行するために使用されるアプリケーションデータとを提供するように構成される。いくつかの実施形態で、そのアプリケーションは、コンピュータネットワークを介してプレーする必要がある、大規模複数参加型オンラインロールプレイングゲームなどのオンラインゲームアプリケーションである。この場合、クライアントマシン21は、ゲームアプリケーションのソースプログラムとゲーム環境に関するリアルタイムデータとの両方をこれらのサーバ22〜50から受信する。
【００１７】
多数の実装形態で、クライアントマシン21によって実行されるアプリケーションは、複数のサービスプロバイダによって後援することが可能であり、例示的サービスプロバイダは、China Telecom、China NetcomおよびChina Tietongを含む。各サービスプロバイダは、それ自体のバックアップディレクトリサーバ30、バックアップデータサーバ40およびデータサーバ50を管理する。通常は、クライアントマシン21は、1つの特定のサービスプロバイダに登録され、それが登録された特定のサービスプロバイダによって後援されるサーバと通信を確立しなければならない。いくつかの実装形態で、バックアップディレクトリサーバ30は、2つの別個のサービスプロバイダに関連する少なくとも2つのバックアップディレクトリサーバを含む。同様に、いくつかの実装形態で、バックアップデータサーバ40は、2つの相異なるサービスプロバイダに関連する少なくとも2つのバックアップデータサーバを含み、データサーバ50もそうである。
【００１８】
クライアントマシン21は、リソースサーバ22からソースプログラムをダウンロードまたは更新する。いくつかの実装形態で、クライアントマシンは、ダウンロードまたは更新動作が完了するのを待たず、ダウンロード動作がまだ実行されている間にディレクトリサーバ23に通信要求を送信する。そのような同時配列は、アプリケーションのユーザによる待機時間を減らし、特にオンラインゲームアプリケーションにおいてユーザ体験を向上させる。
【００１９】
それが通信要求を送信した後、クライアントマシン21は、第1の所定の期間が終了するまで、ディレクトリサーバ23と、通信リンクとも呼ばれる、ネットワークソケットを確立するのを待つ。いくつかの実施形態で、第1の所定の期間は、ディレクトリサーバ23とネットワークソケットを確立するために通常必要とされる処理時間に従って、経験的に判定される。多くの状況で、それが第1の所定の期間内にセットアップされない場合、ディレクトリサーバ23と通信するためのネットワークソケットは、クライアントマシン21によってその後はほとんど確立されない。
【００２０】
第1の所定の期間は、短縮されて、背景技術の項に記載されたデフォルトの延長された期間より短くなる。先行技術では、このデフォルトの延長された期間は、クライアントマシン11およびディレクトリサーバ13がネットワークソケットを確立するための多くの時間を有するように、比較的長い長さで設定される。一例で、デフォルトの延長された期間は20秒持続し、この延長された期間の最後に、ディレクトリサーバ23は、ネットワークソケットの確立の失敗を示す警告メッセージをクライアントマシン21に返す。本発明のいくつかの実装形態で、第1の所定の期間は、デフォルトの延長された期間が終わる、たとえば10秒で、よりも早くに終了するように設定される。
【００２１】
ネットワークソケットが第1の所定の期間内にディレクトリサーバ23と確立されるという判定に従って、クライアントマシン21は、IPアドレスのリストなど、使用可能なデータサーバ50に関する情報を受信する。いくつかの実装形態で、使用可能なデータサーバ50は、異なるサービスプロバイダによって後援される、サーバ51およびサーバ52を含む、複数のサーバを含む。クライアントマシン21は、使用可能なデータサーバ50のうちの1つを選択し、目標ソケットを確立して、選択されたデータサーバから特定のデータを受信する。いくつかの実施形態で、クライアントマシン21は、目標ソケットが使用可能なデータサーバ50のうちの1つと無事に確立されるまで、使用可能なデータサーバに関する情報に基づいて、使用可能なデータサーバ50の各々と目標ソケットを確立するように連続的に要求する。
【００２２】
ネットワークソケットが第1の所定の期間内にディレクトリサーバ23と確立されないという判定に従って、クライアントマシン21はさらに、所定の順序に従って所定のセカンダリサーバのリストに通信要求を送信する。いくつかの実施形態で、所定の順序に従って、クライアントマシン21は、クライアントマシン23が使用可能なデータサーバ50に関する情報または特定のデータを受信するまで、バックアップディレクトリサーバ30およびバックアップデータサーバ40との通信を連続的に要求する。別法として、いくつかの実施形態で、クライアントマシン21は、クライアントマシン23がこれらのサーバのうちの1つから使用可能なデータサーバ50に関する情報または特定のデータを受信するまで、連続的にではなく、同時に、バックアップディレクトリサーバ30およびバックアップデータサーバ40と通信することを要求する。
【００２３】
いくつかの実施形態で、クライアントマシン21は、バックアップディレクトリサーバ30と通信することを要求し、ソケットが確立されるまたは第2の所定の期間が終了するまで、バックアップディレクトリサーバ30のうちの1つとソケットを確立するのを待つ。このソケットが確立された場合、目標ソケットが、クライアントマシン21の対応するアプリケーションを動作させるために必要とされる特定のデータを転送するために、クライアントマシン21と使用可能なデータサーバ50のうちの1つの間でやはり確立され得るように、バックアップディレクトリサーバ30のうちの1つが、使用可能なデータサーバ50のうちの、全部ではなくても、いくつかに関する同様の情報を提供する。
【００２４】
いくつかの実施形態で、クライアントマシン21は、目標ソケットが確立されるまたは第3の所定の期間が終了するまで、バックアップデータサーバ40と通信することを要求し、バックアップデータサーバ40のうちの1つと目標ソケットを確立するのを待つ。目標ソケットが確立された場合、バックアップデータサーバ40のうちの1つは、クライアントマシン21の対応するアプリケーションを動作させるために必要とされる特定のデータをクライアントマシン21に提供する。
【００２５】
いくつかの実施形態で、第2のおよび第3の所定の期間は、前述のデフォルトの延長された期間より短い。ソケットが、バックアップディレクトリサーバ30およびバックアップデータサーバ40のいずれかと確立されることに失敗したとき、クライアントマシン21は、特定のデータを受信するおよび適切にアプリケーションを起動するための目標ソケットの確立の失敗を示す警告メッセージを生成する。
【００２６】
本発明の様々な実施形態によれば、ディレクトリサーバ23に完全に依存するのではなく、通信システム200は、複数のサーバおよび特に複数のタイプのサーバと交信して、短縮されない場合には、同じ期間内に使用可能なデータサーバに関する情報を取得しようと試みる。複数のタイプのサーバについて設定された所定の順序に基づいて、使用可能なデータサーバに関する情報を識別する確率は、通信システム200について高められ、アプリケーションを使用するユーザの待機時間の短縮をもたらす。それにより、そのアプリケーションでのユーザ体験は、同様に大きく改善され得る。
【００２７】
図3は、本発明のいくつかの実施形態によるディレクトリサーバに基づく使用可能なデータサーバの識別のための方法300の流れ図である。方法300は、クライアントマシン21の視点から説明される。クライアントマシン21は、リソースサーバ22からソースプログラムをダウンロード(301)または更新し、ディレクトリサーバ23に第1の通信要求を送信する(301)。いくつかの実装形態では、第1の通信要求は、ダウンロード/更新動作の開始と同時に送信されるが、いくつかの実装形態では、第1の通信要求は、ダウンロード/更新動作の開始後であるがそのダウンロード/更新動作の終結より前に送信される。
【００２８】
第1の通信要求を送信した後、クライアントマシン21は、第1のソケットが第1の所定の期間内にディレクトリサーバ23と確立されるかどうかを判定する(302)。一方では、第1のソケットが無事に確立されるとき、クライアントマシン21は、第1のソケットを介して使用可能なデータサーバに関する情報を受信し(303)、目標データサーバから特定のデータを受信するために目標ソケットを確立する。目標データサーバが、使用可能なデータサーバから選択され、使用可能なデータサーバに関する情報に従って識別される。いくつかの実装形態で、使用可能なデータサーバに関する情報は、使用可能なデータサーバのIPアドレスのリストを含む。クライアントマシン21はさらに、目標データサーバにデータ通信要求を送信し、アプリケーションを実行するために使用されるアプリケーションデータの受信を目的とする使用可能なデータサーバに関する情報に基づいて目標ソケットを確立する。
【００２９】
他方では、第1のソケットが第1の所定の期間内にクライアントマシン21とディレクトリサーバ23の間で確立されないとき、クライアントマシン21は、目標ソケットの確立を目的とする所定の順序に従って複数のセカンダリサーバに複数の通信要求を送信する(304)。多数の実施形態で、セカンダリサーバは、バックアップディレクトリサーバ30およびバックアップデータサーバ40を含み、各々が複数のサービスプロバイダによって後援されるサーバを含む。ステップ304(すなわち、複数のセカンダリサーバに通信要求を送信するステップ)に関するさらなる詳細が、図4〜図6に関する以下の説明で提供される。
【００３０】
いくつかの実施形態で、所定の順序に従って、バックアップディレクトリサーバ30およびバックアップデータサーバ40は、連続的に、第1のソケットが第1の所定の期間内にクライアントマシン21とディレクトリサーバ23の間で確立されないという判定の後にクライアントマシン21によって送信される通信要求を受信する。いくつかの実施形態で、所定の順序に従って、バックアップデータサーバ40、バックアップディレクトリサーバ30およびデータサーバ50のうちの1つが、連続的に、第1のソケットが確立されないという判定の後にクライアントマシン21によって送信される通信要求を受信する。いくつかの実施形態では、所定の順序に従って、バックアップデータサーバ40は、第1のソケットが確立されないという判定の後にクライアントマシン21によって送信される通信要求を受信する。いくつかの実施形態で、バックアップデータサーバ40、バックアップディレクトリサーバ30およびデータサーバ50のうちの1つは、連続的に、第1のソケットが確立されないという同判定の後にクライアントマシン21によって送信される通信要求を受信する。
【００３１】
図4は、本発明でのいくつかの実施形態による、バックアップディレクトリサーバ30を含む、複数のセカンダリサーバに基づく使用可能なデータサーバを識別する例示的方法304の流れ図である。所定の順序に従って、第1の判定された期間内のディレクトリサーバ23との通信に失敗した後、クライアントマシン21は次いで、少なくとも2つのバックアップディレクトリサーバ30に第2の通信要求を送信する(401)。いくつかの実施形態で、バックアップディレクトリサーバ30は、China Telecom、China NetcomおよびChina Tietongなどの異なるサービスプロバイダによってそれぞれ管理され、各バックアップディレクトリサーバ30は、それぞれのサービスプロバイダによって後援される使用可能なデータサーバに関する情報を保持する。
【００３２】
いくつかの状況では、第2の通信要求が、異なるバックアップディレクトリサーバ30に同時に送信される。しかし、他の状況では、第2の通信要求は、所定の順序の一部に従って配列され、バックアップディレクトリサーバ30に連続的に送信される。
【００３３】
第2の通信要求の送信の後、クライアントマシン21は、第2のソケットが、バックアップディレクトリサーバ30のうちの1つと通信するために第2の所定の期間内に確立されるかどうかを判定する(402)。第2のソケットが確立されるという判定に従って、クライアントマシン21は、バックアップディレクトリサーバ30内のその他のサーバに送信される第2の通信要求のうちのいくつかを終了させる(403)。クライアントマシン21は、次いで、第2のソケットを介して、IPアドレスのリストなどの使用可能なデータサーバに関する情報を受信し(404)、それによって、使用可能なデータサーバのうちの1つと目標ソケットを確立して特定のデータを受信する。
【００３４】
しかし、第2の通信要求のいずれも第2の所定の期間内に第2のソケットをもたらさなかったという判定に従って、クライアントマシン21はさらに、ある特定の使用可能なデータサーバとの目標ソケットの確立を目的として、追加のセカンダリサーバ、たとえばバックアップデータサーバ40、に第3の通信要求を送信する(405)。
【００３５】
図5は、本発明でのいくつかの実施形態による、バックアップデータサーバ40を含む、複数のセカンダリサーバに基づく使用可能なデータサーバを識別する例示的方法500の流れ図である。
【００３６】
いくつかの実装形態で、方法500は、方法400に従って少なくとも2つのバックアップディレクトリサーバ30に第2のデータ通信要求を送信する前に適用される。任意選択で、目標ソケットが方法500の結果としてバックアップデータサーバ40のうちの1つと確立された場合、方法400は実装されず、対応する第2の通信要求は、バックアップディレクトリサーバ30に送信されない。所定の順序に従って、ディレクトリサーバ23と第1のソケットを確立するのに失敗した後に、クライアントマシン21は、次いで、少なくとも2つのバックアップデータサーバ40に第3の通信要求を送信する(501)。したがって、所定の順序に従って、ディレクトリサーバ23、バックアップデータサーバ40および任意選択でバックアップディレクトリサーバ30は、連続的に、クライアントマシン21とクライアントマシン21に対応するアプリケーションデータを提供するために使用可能なデータサーバとの間の目標ソケットの確立を目的としてクライアントマシン21によって送信される通信要求を受信する。
【００３７】
別法として、いくつかの実施形態で、方法500は、第2のソケットが動作402で第2の所定の期間内にクライアントマシン21とバックアップディレクトリサーバ30の間で確立されないという判定の後に、方法400で動作405として実装される。やはり、所定の順序に従って、ディレクトリサーバ23との第1のソケットおよびバックアップディレクトリサーバ30のうちの少なくとも1つとの第2のソケットの両方を確立することに失敗した後に、クライアントマシン21は、少なくとも2つのバックアップデータサーバ40に第3の通信要求を送信する(501)。したがって、所定の順序に従って、ディレクトリサーバ23、バックアップディレクトリサーバ30およびバックアップデータサーバ40は、連続的に、目標ソケットの確立を目的とするクライアントマシン21によって送信される通信要求を受信して、ある特定のデータサーバからアプリケーションデータを受信する。
【００３８】
いくつかの実施形態で、バックアップデータサーバ40は、China Telecom、China NetcomおよびChina Tietongなどの異なるサービスプロバイダによってそれぞれ管理され、それぞれのサービスプロバイダによって後援される各バックアップデータサーバ40は、アプリケーションを実行するために使用されるアプリケーションデータのそれのバージョンを提供する。
【００３９】
いくつかの状況で、第3の通信要求は、異なるバックアップデータサーバ40に同時に送信される。しかし、他の状況で、第2の通信要求が所定の順序の一部に従って配列され、連続的に、バックアップデータサーバ40に送信される。
【００４０】
第3の通信要求の送信の後、クライアントマシン21は、バックアップデータサーバ40のうちの1つと通信するように目標ソケットが第3の所定の期間内に確立されるかどうかを判定する(502)。目標ソケットが確立されるという判定に従って、クライアントマシン21は、少なくとも2つのバックアップデータサーバ40内のその他のバックアップデータサーバに送信される第3の通信要求のうちのいくつかを終了させる(503)。クライアントマシン21は、次いで、目標ソケットを介して少なくとも2つのバックアップデータサーバ40のうちの1つから、アプリケーションを実行するために使用されるアプリケーションデータなどの特定のデータを受信する(504)。
【００４１】
いくつかの実施形態で、第3の通信要求のいずれも第3の所定の期間内に目標ソケットをもたらさなかったという判定に従って、クライアントマシン21は、データサーバ50およびバックアップデータサーバ40を含む、データサーバとの目標ソケットの確立の失敗を示す警告メッセージを送信する(505)。
【００４２】
対照的に、いくつかの実施形態で、第3の通信要求のいずれも目標ソケットをもたらさなかったという判定に従って、クライアントマシン21はさらに、追加のセカンダリサーバにより多くの通信要求を送信する(506)。いくつかの状況で、追加のセカンダリサーバは、クライアントマシン21がまだバックアップディレクトリサーバ30に通信要求を送信しなかったため、バックアップディレクトリサーバ30を含む。
【００４３】
さらに、いくつかの実施形態で、方法400および500は、第1のソケットが第1の所定の期間内にクライアントマシン21とディレクトリマシン23の間に確立されなかった後に並行して実装される。
【００４４】
図6は、本発明のいくつかの実施形態による所定の順序に基づく複数のデータサーバ間で使用可能なデータサーバを識別する方法600の流れ図である。クライアントマシン21は、ディレクトリサーバ23と第1のソケットを確立するために、第1の通信要求を送信する(602)。いくつかの実施形態で、クライアントマシン21およびディレクトリサーバ23は、ドメイン名システム(DNS)内のそれらのそれぞれのIPアドレスに従って識別される。第1の通信要求の送信の後、クライアントマシン21は、第1のソケットが第1の所定の期間内に確立されるかどうかを判定する(604)。
【００４５】
第1のソケットがそのように確立されないという判定により、クライアントマシン21は、少なくとも2つのバックアップディレクトリサーバ30に第2の通信要求を送信する(606)。いくつかの実施形態で、第2の通信要求は同時に送信され、いくつかの実施形態で、それらは、所定の順序の一部と見なされるある特定の順序に従って送信される。第2の通信要求の送信の後、クライアントマシン21はさらに、第2のソケットが少なくとも2つのバックアップディレクトリサーバ30のうちの1つと通信するために確立されるかどうかを判定する(608)。いくつかの状況で、その判定は、第2の所定の期間内に行われる。
【００４６】
第2のソケットが確立されるという判定に従って、クライアントマシン21は、第2のソケットを保持し(610)、他の対応する通信要求を終了させる(610)。さらに、第2のソケットが確立されるという判定に従って、クライアントマシン21は、第2のソケットを介して少なくとも2つのバックアップディレクトリサーバ30のうちの1つと通信する(612)。同様に、第1のソケットが確立されるという別の判定に従って、クライアントマシン21は、第1のソケットを介してディレクトリサーバ23と通信する(612)。
【００４７】
クライアントマシン21は、使用可能なデータサーバ50に関する情報、たとえば使用可能なデータサーバ50のIPアドレスのリスト、を受信し(614)、次いで、使用可能なデータサーバ50に関する情報が有効であるかどうかを判定する(616)。使用可能なデータサーバ50に関する情報が有効ではないという判定に従って、クライアントマシン21は、対応するデータサーバと目標ソケットを確立することに失敗したことを示す警告メッセージを送信する(630)。他方では、使用可能なデータサーバ50に関する情報が有効であるという判定に従って、クライアントマシン21は、使用可能なデータサーバ50に関する情報に基づいてデータサーバを選択し(618)、選択されたデータサーバにデータ通信要求を送信する(618)。一例で、目標データサーバは、使用可能なデータサーバ50のIPアドレスのリスト内の第1のIPアドレスに従って選択される。
【００４８】
データ通信要求の送信の後、クライアントマシン21は、目標ソケットがクライアントマシン21と選択されたデータサーバの間と確立されるかどうかを判定する(620)。目標ソケットが確立されるという判定に従って、クライアントマシン21は、特定のデータを要求するために、目標ソケットを介してデータ要求を送信し(622)、ある特定のプログラムを起動するための特定のデータ(すなわち、オンラインゲームアプリケーションなどのアプリケーションを起動するためのアプリケーションデータ)を受信する(622)。目標ソケットが確立されないという判定に従って、選択されたデータサーバが、使用可能なデータサーバ50に関する情報から削除される(624)。次いで、クライアントマシン21は、目標ソケットが使用可能なデータサーバ50のうちの1つと確立されるまで、動作616、618および620を連続的に繰り返す。
【００４９】
いくつかの状況で、第2のソケットが確立されないと動作608で判定した後、クライアントマシン21は、少なくとも2つのバックアップデータサーバ40に第3の通信要求を送信する(626)。いくつかの実施形態で、第3の通信要求は、バックアップデータサーバ40に同時に送信され、いくつかの実施形態で、それらは、所定の順序の一部と見なされるある特定の順序に従って送信される。
【００５０】
クライアントマシンはさらに、目標ソケットが特定のデータを受信するための少なくとも2つのバックアップデータサーバ40のうちの1つと確立されるかどうかを判定する(628)。いくつかの状況で、その判定は第3の所定の期間内に行われる。第3のソケットがそのように確立されないという判定に従って、クライアントマシン21は、対応するデータサーバとの目標ソケットの確立の失敗を示す警告メッセージを送信する(630)。他方では、第3のソケットが確立されるという判定に従って、クライアントマシン21は、目標ソケットを保持し(632)、他の対応する通信要求を終了させる(632)。さらに、目標ソケットが確立されるというこの判定に従って、クライアントマシン21は、目標ソケットを介してデータ要求を送信し(622)、前述のように、ある特定のプログラムを起動するための特定のデータ(すなわち、オンラインゲームアプリケーションなどのアプリケーションを起動するためのアプリケーションデータ)を受信する(622)。
【００５１】
多数の実装形態で、第1の、第2のおよび第3の所定の期間は、使用可能なデータサーバから受信される特定のデータを使用するアプリケーションによって判定される。たとえば、これらの所定の期間は、クライアントマシン21で実行する特定のオンラインゲームアプリケーションによって判定される。第1の、第2のおよび第3の所定の期間を判定する方法のさらなる詳細および例は、図2の記載を参照して前述で説明された。
【００５２】
図7Aは、本発明のいくつかの実施形態による、クライアントマシン21などのコンピュータシステムのブロック図である。クライアントマシン21は、通常は、プログラム(たとえば、メモリ710aで記憶されたプログラム)を実行するための1つまたは複数の処理装置702a(CPUまたはプロセッサとときに呼ばれる)、1つまたは複数の通信インターフェース704a、メモリ710a、入力/出力(I/O)インターフェース706a(たとえば、タッチスクリーン、キーパッド、カメラ、表示画面)、ならびに、これらの構成要素を相互接続するための1つまたは複数の通信バス708aを含む。メモリ710aは、DRAM、SRAM、DDR RAMまたは他のランダムアクセスソリッドステートメモリデバイスなどの高速ランダムアクセスメモリを含み、通常は、1つまたは複数の磁気ディスク記憶装置、光ディスク記憶装置、フラッシュメモリデバイス、あるいは他の不揮発性ソリッドステート記憶装置などの不揮発性メモリを含む。メモリ710aは、任意選択で、CPU702aから遠隔に置かれた1つまたは複数の記憶装置を含む。メモリ710a、あるいはメモリ710a内の不揮発性メモリデバイスは、非一時的コンピュータ可読記憶媒体を含む。いくつかの実施形態で、メモリ710aまたはメモリ710aのコンピュータ可読記憶媒体は、以下のプログラム、モジュールおよびデータ構造体、またはそのサブセットを記憶する:
【００５３】
・  様々な基本システムサービスを処理するためのおよびハードウェア依存タスクを実行するための手順を含む、オペレーティングシステム712aと、
【００５４】
・  1つまたは複数の通信インターフェース704a(ワイヤードまたはワイヤレス)と、インターネット、他のワイドエリアネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワークなどの1つまたは複数の通信ネットワークとを介して、クライアントマシン21を他のデバイスに結合させるために使用される、通信モジュール714aと、
【００５５】
・  入力デバイスを介してユーザからコマンドを受信し、表示装置内のユーザインターフェースオブジェクトを生成する任意選択のI/Oインターフェースモジュール716aと、
【００５６】
・  本明細書に記載のような、クライアントマシン21で特定のアプリケーションを実行するアプリケーションモジュール718a。
【００５７】
アプリケーションモジュール718aはさらに、プログラムモジュール720およびデータサーバモジュール722を含む。プログラムモジュール720は、クライアントマシン21とリソースサーバ22の間のネットワークソケットの確立を制御する。そのようなネットワークソケットが確立されるとき、プログラムモジュール720は、クライアントマシン21で特定のアプリケーションを実行するために使用されるソースプログラムのダウンロードおよび更新を管理する。1つの具体的な例として、クライアントマシン21は、インターネットゲームにおけるゲーム端末として使用され、任意選択で、フラッシュベースのゲームインターフェースを維持する。プログラムモジュール720は、クライアントマシン21とリソースサーバ22の間のネットワークソケットの確立を管理する。ネットワークソケットを介して、プログラムモジュール720は、クライアントマシン21を制御してソースプログラムまたはパッチをダウンロードする、あるいは、対応するゲームアプリケーションを実行するために使用されるソースプログラムまたはパッチを更新する。
【００５８】
加えて、データサーバモジュール722は、クライアントマシン21と目標データサーバの間のネットワークソケットの確立を制御し、特定のアプリケーションの実行の過程でその特定のアプリケーションのアプリケーションデータを受信する。多数の実施形態によれば、データサーバモジュール722は、ディレクトリサーバ23と通信することによって、目標データサーバを識別する。ディレクトリサーバ23との通信が失敗するとき、データサーバモジュール722はさらに、目標データサーバが識別されるまで、所定の順序に従ってバックアップディレクトリサーバ30およびバックアップデータサーバ40のうちのいくつかと通信する。その所定の順序の対応する例は、図3〜図6およびこれらの図の前述の説明を参照のこと。
【００５９】
1つの具体的な例として、クライアントマシン21は、インターネットゲームにおいてゲーム端末として使用される。データサーバモジュール722は、クライアントマシン21とゲーム環境をセットアップするために使用されるデータを記憶するデータサーバとの間で、別のネットワークソケット、たとえば図2〜図6に記載されるような目標ソケット、を何とかして確立する。ソケットを介して、データサーバモジュール722は、クライアントマシン21を制御して、対応するゲームアプリケーションをサポートするためにさらに使用されるゲーム環境のデータをダウンロードする。
【００６０】
いくつかの実装形態で、アプリケーションモジュール718aは、通信モジュール716aとともに機能して、リソースサーバ22、ディレクトリサーバ23、バックアップディレクトリサーバ30、バックアップデータサーバ40およびデータサーバ50で対応するネットワークソケットを確立する。
【００６１】
図7Bは、本発明のいくつかの実施形態によるサーバ70(リソースサーバ22、ディレクトリサーバ23、バックアップディレクトリサーバ30、バックアップデータサーバ40およびデータサーバ50などの)のブロック図である。サーバ70は、通常は、プログラム(たとえば、メモリ710bで記憶されたプログラム)を実行するための1つまたは複数の処理装置702b(ときにCPUまたはプロセッサと呼ばれる)、1つまたは複数の通信インターフェース704b、メモリ710b、入力/出力(I/O)インターフェース706b(たとえば、タッチスクリーン、キーパッド、カメラ、表示画面)、および、これらの構成要素を相互接続するための1つまたは複数の通信バス708bを含む。メモリ710bは、DRAM、SRAM、DDR RAMまたは他のランダムアクセスソリッドステートメモリデバイスなどの高速ランダムアクセスメモリを含み、通常は、1つまたは複数の磁気ディスク記憶装置、光ディスク記憶装置、フラッシュメモリデバイス、あるいは他の不揮発性ソリッドステート記憶装置などの不揮発性メモリを含む。メモリ710bは、任意選択で、CPU702bから遠隔に置かれた1つまたは複数の記憶装置を含む。メモリ710b、あるいはメモリ710b内の不揮発性メモリデバイスは、非一時的コンピュータ可読記憶媒体を含む。いくつかの実施形態で、メモリ710bまたはメモリ710bのコンピュータ可読記憶媒体は、以下のプログラム、モジュールおよびデータ構造体、またはそのサブセットを記憶する:
【００６２】
・  様々な基本システムサービスを処理するためのおよびハードウェア依存タスクを実行するための手順を含むオペレーティングシステム712bと、
【００６３】
・  1つまたは複数の通信インターフェース704a(ワイヤードまたはワイヤレス)と、インターネット、他のワイドエリアネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワークなどの1つまたは複数の通信ネットワークとを介してクライアントマシン21を他のデバイスに結合させるために使用される通信モジュール714bと、
【００６４】
・  入力デバイスを介してユーザからコマンドを受信し、表示装置においてユーザインターフェースオブジェクトを生成する任意選択のI/Oインターフェースモジュール716aと、
【００６５】
・  ネットワークソケットがクライアントマシン21とサーバ70の間に確立されるときにサーバ側で特定のアプリケーションに関する動作を管理するアプリケーションモジュール718a。
【００６６】
サーバ70がリソースサーバ22として実行するいくつかの状況で、アプリケーションモジュール718aは、クライアントマシン21へのソースプログラムまたはパッチの提供を管理する。サーバ70がディレクトリサーバ23またはバックアップディレクトリサーバ30として実行するいくつかの状況で、アプリケーションモジュール718aは、使用可能なデータサーバ50に関する情報を生成し、クライアントマシン21に提供する。サーバ70がバックアップデータサーバ40およびデータサーバ50として実行するいくつかの状況で、アプリケーションモジュール718aは、特定のプログラムを実行するために使用されるアプリケーションデータを生成し、クライアントマシン21に提供する。
【００６７】
いくつかの実施形態で、リソースサーバ22、ディレクトリサーバ23、バックアップディレクトリサーバ30、バックアップデータサーバ40およびデータサーバ50は、クライアントマシン21を含む多数のクライアントマシンでインターネットゲームの動作をサポートするように構成される。
【００６８】
いくつかの実装形態で、アプリケーションモジュール718bは、通信モジュール716bとともに機能して、クライアントマシン21で対応するネットワークソケットを確立する。
【００６９】
特定の実施形態が前述されたが、これらの特定の実施形態に本発明を限定することは意図されていないことが理解されよう。逆に、本発明は、添付の特許請求の範囲の趣旨および範囲内の代替、修正形態および均等物を含む。多数の特定の詳細が、本明細書で提示される対象の完全な理解を実現するために記載される。しかし、その対象はこれらの特定の詳細なしに実施され得ることが、当業者には明らかであろう。他の例では、よく知られている方法、手順、構成要素、および回路は、実施形態の態様を不必要に分かりにくくしないために、詳細には説明されていない。
【００７０】
本明細書における発明の説明に使用される用語は、特定の実施形態を説明することのみを目的とし、本発明の限定を意図されていない。本発明の説明および添付の特許請求の範囲で使用されるとき、単数形「1つの(a、an)」および「その(the)」は、文脈が明確に他を指示しない限り、複数形もまた含むものとする。本明細書で使用されるとき、用語「および/または」は、関連する記載された項目のうちの1つまたは複数の任意のおよびあらゆる起こり得る組合せを示し、包含することもまた理解されよう。用語「含む」、「含んだ」、「備える」、および/または「備えた」は、本明細書で使用されるとき、記載された特徴、動作、要素、および/または構成要素の存在を明確に述べるが、1つまたは複数の他の特徴、動作、要素、構成要素、および/または、そのグループの存在または追加を排除しないことがさらに理解されよう。
【００７１】
本明細書で使用されるとき、「場合(if)」という用語は、文脈に応じて、「するときに」もしくは「したときに」あるいは、記載された先行条件が真であるという「判定に応答して」もしくは「判定に従って」または「検出に応答して」を意味すると解釈され得る。同様に、「(記載された先行条件が真である)と判定された場合」、または、「(記載された先行条件が真である)場合」、あるいは、「(記載された先行条件が真である)とき」という語句は、文脈に応じて、記載された先行条件が真である「と判定したとき」もしくは「という判定に応答して」または「という判定に従って」あるいは「と検出したときに」または「という検出に応答して」を意味すると解釈することができる。
【００７２】
様々な図のうちのいくつかは、特定の順序でいくつかの論理的段階を示すが、順序に依存しない段階は、再順序付けができ、他の段階が結合され得るまたは切り離され得る。いくつかの再順序付けまたは他のグループ化が具体的に言及されたが、他もまた当業者には明らかであり、したがって、代替の包括的リストを示さない。さらに、それらの段階は、ハードウェア、ファームウェア、ソフトウェア、またはその任意の組合せで実装され得ることを理解されたい。
【００７３】
説明を目的とした、前述の記載は、特定の実施形態を参照して記載された。しかし、前述の例示的論考は、包括的なものまたは開示された正確な形に本発明を限定するものではない。多数の修正形態および変形形態が、前述の教示を考慮して起こり得る。それらの実施形態は、本発明の原理およびその実際の適用例を最もよく説明して、それによって、当業者が企図された特定の使用に適するように様々な修正を用いて本発明および様々な実施形態を最もよく活用することができるようにするために、選択され、記載された。
【符号の説明】
【００７４】
11  クライアントマシン
12  リソースサーバ
13  データサーバ
14  ディレクトリサーバ
21  クライアントマシン
22  リソースサーバ
23  ディレクトリサーバ
30  バックアップディレクトリサーバ
40  バックアップデータサーバ
50  データサーバ
51  サーバ
52  サーバ
70  サーバ
100  通信システム
131  サーバ
132  サーバ
200  通信システム
300  方法
304  方法
500  方法
600  方法
702  処理装置
704  通信インターフェース
706  入力/出力インターフェース
708  通信バス
710  メモリ
712  オペレーティングシステム
714  通信モジュール
716  入力/出力インターフェースモジュール
718  アプリケーションモジュール
720  プログラムモジュール
722  データサーバモジュール
【図１】
2015529924.tif 000003
【図２】
2015529924.tif 000004
【図３】
2015529924.tif 000005
【図４】
2015529924.tif 000006
【図５】
2015529924.tif 000007
【図６】
2015529924.tif 000008
【図７Ａ】
2015529924.tif 000009
【図７Ｂ】
2015529924.tif 000010
【国際調査報告】
2015529924.tif 000011
2015529924.tif 000012