JP6120971B2 - データサーバとネットワークソケットを確立する方法 - Google Patents

データサーバとネットワークソケットを確立する方法 Download PDF

Info

Publication number
JP6120971B2
JP6120971B2 JP2015531454A JP2015531454A JP6120971B2 JP 6120971 B2 JP6120971 B2 JP 6120971B2 JP 2015531454 A JP2015531454 A JP 2015531454A JP 2015531454 A JP2015531454 A JP 2015531454A JP 6120971 B2 JP6120971 B2 JP 6120971B2
Authority
JP
Japan
Prior art keywords
server
socket
client machine
data
servers
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015531454A
Other languages
English (en)
Other versions
JP2015529924A (ja
Inventor
イ・ジャオ
ジアジョン・シェン
Original Assignee
テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド filed Critical テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド
Publication of JP2015529924A publication Critical patent/JP2015529924A/ja
Application granted granted Critical
Publication of JP6120971B2 publication Critical patent/JP6120971B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/567Integrating service provisioning from a plurality of service providers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Between Computers (AREA)

Description

本出願は、参照によりその全体が組み込まれている、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 データサーバモジュール

Claims (20)

  1. クライアントマシンとデータサーバの間の通信を確立する方法であって、
    クライアントマシンで
    ディレクトリサーバに第1の通信要求を送信するステップであって、前記ディレクトリサーバが、前記クライアントマシンに特定のデータを提供する、使用可能なデータサーバに関する情報を有する、ステップと、
    第1の所定の期間内に前記ディレクトリサーバとの通信を可能にするように第1のソケットが確立されるかどうかを判定するステップであって、前記第1の所定の期間は、前記ディレクトリサーバがネットワークソケットの確立の失敗を示す警告メッセージを送信するデフォルトの延長された期間より短い、ステップと、
    前記第1のソケットが確立されるという判定に従って、前記第1のソケットを介して前記ディレクトリサーバから前記使用可能なデータサーバに関する前記情報を受信し、前記特定のデータを受信するための前記使用可能なデータサーバから選択されたデータサーバと目標ソケットを確立するステップと、
    前記第1のソケットが確立されないという判定に従って、前記クライアントマシンが前記使用可能なデータサーバに関する前記情報または前記特定のデータを受信するまで、所定の順序に従って複数のセカンダリサーバに複数の通信要求を送信するステップと
    を含む、方法。
  2. 前記複数のセカンダリサーバの第1のサブセットが、少なくとも2つのバックアップディレクトリサーバを備え、前記所定の順序に従って、前記複数の通信要求の第1のサブセットが、前記少なくとも2つのバックアップディレクトリサーバに同時に送信される少なくとも2つの第2の通信要求を含む、請求項1に記載の方法。
  3. 第2の所定の期間内に前記少なくとも2つのバックアップディレクトリサーバのうちの1つとの通信を可能にするように第2のソケットが確立されるかどうかを判定するステップ
    をさらに含み、前記第2のソケットが確立されるという判定に従って、前記方法が、
    前記第2のソケットを介して前記少なくとも2つのバックアップディレクトリサーバのうちの前記1つから前記使用可能なデータサーバに関する前記情報を受信するステップと、
    前記特定のデータを受信するための前記使用可能なデータサーバから選択されたデータサーバと前記目標ソケットを確立するステップと
    をさらに含む、請求項2に記載の方法。
  4. 前記第2のソケットが確立されないという判定に従って、前記クライアントマシンが、セカンダリサーバの第2のサブセット内のバックアップデータサーバから前記特定のデータを受信するまで、セカンダリサーバの前記第2のサブセットに第2のサブセットの複数の通信要求を送信するステップであって、セカンダリサーバの前記第2のサブセットが、前バックアップデータサーバを含む少なくとも2つのバックアップデータサーバを備えるステップ
    をさらに含む、請求項3に記載の方法。
  5. 前記複数のセカンダリサーバが少なくとも2つのバックアップデータサーバを備え、前記所定の順序に従って、前記複数の通信要求が、前記少なくとも2つのバックアップデータサーバに同時に送信される少なくとも2つの第3の通信要求を含む、請求項1に記載の方法。
  6. 第3の所定の期間内に前記少なくとも2つのバックアップデータサーバのうちの1つとの通信を可能にするように前記目標ソケットが確立されるかどうかを判定するステップと、
    前記目標ソケットが確立されるという判定に従って、前記少なくとも2つのバックアップデータサーバのうちの前記1つから前記特定のデータを受信するステップと
    をさらに含む、請求項5に記載の方法。
  7. 前記クライアントマシンが、前記クライアントマシンでローカルにゲームプログラムを動作させるために、使用可能なデータサーバまたはバックアップデータサーバから前記特定のデータを受信するゲーム端末である、請求項1に記載の方法。
  8. 前記クライアントマシンが前記第1の通信要求を前記ディレクトリサーバに送信するときに、前記クライアントマシンが、前記特定のデータに基づいて動作するソースプログラムをダウンロードする、請求項1に記載の方法。
  9. 前記第1の所定の期間が、1秒から10秒の間で選択された時間にわたり持続する、請求項1に記載の方法。
  10. 前記第1の所定の期間が、前記特定のデータを使用するアプリケーションによって判定される、請求項1に記載の方法。
  11. クライアントマシンであって、
    1つまたは複数のプロセッサと、
    メモリであって、
    前記1つまたは複数のプロセッサによって実行されるときに、前記プロセッサに、
    前記クライアントマシンで、
    記クライアントマシンに特定のデータを提供する使用可能なデータサーバに関する情報を有するディレクトリサーバに第1の通信要求を送信するステップ、
    第1の所定の期間内に前記ディレクトリサーバとの通信を可能にするように第1のソケットが確立されるかどうかを判定するステップであって、前記第1の所定の期間は、前記ディレクトリサーバがネットワークソケットの確立の失敗を示す警告メッセージを送信するデフォルトの延長された期間より短い、ステップ
    前記第1のソケットが確立されるという判定に従って、前記第1のソケットを介して前記ディレクトリサーバから前記使用可能なデータサーバに関する前記情報を受信し、前記特定のデータを受信するための前記使用可能なデータサーバから選択されたデータサーバと目標ソケットを確立するステップ、
    前記第1のソケットが確立されないという判定に従って、前記クライアントマシンが前記使用可能なデータサーバに関する前記情報または前記特定のデータを受信するまで、所定の順序に従って複数のセカンダリサーバに複数の通信要求を送信するステップ
    を含む動作を実行させる、命令を記憶するメモリと
    を備える、クライアントマシン。
  12. 前記複数のセカンダリサーバが少なくとも2つのバックアップデータサーバを備え、前記所定の順序に従って、前記複数の通信要求が、前記少なくとも2つのバックアップデータサーバに同時に送信される少なくとも2つの第3の通信要求を含む、請求項11に記載のクライアントマシン。
  13. 第3の所定の期間内に前記少なくとも2つのバックアップデータサーバのうちの1つとの通信を可能にするように前記目標ソケットが確立されるかどうかを判定するステップと、
    前記目標ソケットが確立されるという判定に従って、前記少なくとも2つのバックアップデータサーバのうちの前記1つから前記特定のデータを受信するステップと
    をさらに備える、請求項12に記載のクライアントマシン。
  14. 前記クライアントマシンが、前記クライアントマシンでローカルにゲームプログラムを動作させるために、使用可能なデータサーバまたはバックアップデータサーバから前記特定のデータを受信するゲーム端末である、請求項11に記載のクライアントマシン。
  15. 前記クライアントマシンが前記第1の通信要求を前記ディレクトリサーバに送信するときに、前記クライアントマシンが、前記特定のデータに基づいて動作するソースプログラムをダウンロードする、請求項11に記載のクライアントマシン。
  16. 前記第1の所定の期間が、前記特定のデータを使用するアプリケーションによって判定される、請求項11に記載のクライアントマシン。
  17. 非一時的コンピュータ可読記録媒体であって、
    1つまたは複数のプロセッサによって実行されるときに前記プロセッサに、
    クライアントマシンで、
    記クライアントマシンに特定のデータを提供する使用可能なデータサーバに関する情報を有するディレクトリサーバに第1の通信要求を送信するステップ、
    第1の所定の期間内に前記ディレクトリサーバとの通信を可能にするように第1のソケットが確立されるかどうかを判定するステップであって、前記第1の所定の期間は、前記ディレクトリサーバがネットワークソケットの確立の失敗を示す警告メッセージを送信するデフォルトの延長された期間より短い、ステップ
    前記第1のソケットが確立されるという判定に従って、前記第1のソケットを介して前記ディレクトリサーバから前記使用可能なデータサーバに関する前記情報を受信し、前記特定のデータを受信するための前記使用可能なデータサーバから選択されたデータサーバと目標ソケットを確立するステップ、
    前記第1のソケットが確立されないという判定に従って、前記クライアントマシンが前記使用可能なデータサーバに関する前記情報または前記特定のデータを受信するまで、所定の順序に従って複数のセカンダリサーバに複数の通信要求を送信するステップ
    を含む動作を行わせる、命令を記憶する、非一時的コンピュータ可読記録媒体。
  18. 前記複数のセカンダリサーバの第1のサブセットが、少なくとも2つのバックアップディレクトリサーバを備え、前記所定の順序に従って、前記複数の通信要求の第1のサブセットが、前記少なくとも2つのバックアップディレクトリサーバに同時に送信される少なくとも2つの第2の通信要求を含む、請求項17に記載の非一時的コンピュータ可読記録媒体。
  19. 第2の所定の期間内に前記少なくとも2つのバックアップディレクトリサーバのうちの1つとの通信を可能にするように第2のソケットが確立されるかどうかを判定するステップ をさらに備え、
    前記第2のソケットが確立されるという判定に従って
    前記第2のソケットを介して前記少なくとも2つのバックアップディレクトリサーバのうちの前記の1つから前記使用可能なデータサーバに関する前記情報を受信するステップと、
    前記特定のデータを受信するための前記使用可能なデータサーバから選択されたデータサーバと前記目標ソケットを確立するステップと
    をさらに含む、請求項18に記載の非一時的コンピュータ可読記録媒体。
  20. 前記第2のソケットが確立されないという判定に従って、前記クライアントマシンがセカンダリサーバの第2のサブセット内のバックアップデータサーバから前記特定のデータを受信するまで、セカンダリサーバの前記第2のサブセットに第2のサブセットの前記複数の通信要求を送信するステップであって、セカンダリサーバの前記第2のサブセットが、前バックアップデータサーバを含む少なくとも2つのバックアップデータサーバを備える、ステップ
    をさらに備える、請求項19に記載の非一時的コンピュータ可読記録媒体。
JP2015531454A 2012-09-17 2013-09-16 データサーバとネットワークソケットを確立する方法 Active JP6120971B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201210344201.4A CN103685398B (zh) 2012-09-17 2012-09-17 通信连接建立方法及通信系统
CN201210344201.4 2012-09-17
PCT/CN2013/083561 WO2014040566A1 (en) 2012-09-17 2013-09-16 Method of establishing a network socket with a data server

Publications (2)

Publication Number Publication Date
JP2015529924A JP2015529924A (ja) 2015-10-08
JP6120971B2 true JP6120971B2 (ja) 2017-04-26

Family

ID=50277647

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015531454A Active JP6120971B2 (ja) 2012-09-17 2013-09-16 データサーバとネットワークソケットを確立する方法

Country Status (7)

Country Link
EP (1) EP2896188A4 (ja)
JP (1) JP6120971B2 (ja)
KR (1) KR20150059173A (ja)
CN (1) CN103685398B (ja)
CA (1) CA2884396C (ja)
HK (1) HK1190535A1 (ja)
WO (1) WO2014040566A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104283974A (zh) * 2014-10-31 2015-01-14 腾讯科技(深圳)有限公司 数据拉取方法和相关设备及通信系统
CN105721450B (zh) * 2016-01-27 2020-01-21 网易(杭州)网络有限公司 登录网络游戏的方法、装置和系统
CN107948243B (zh) * 2017-10-25 2020-10-16 广州迅领科技有限公司 一种物联网通信方法、终端及系统
CN107979876B (zh) * 2017-11-16 2022-01-07 广州市百果园网络科技有限公司 数据传输方法及终端
CN111615694B (zh) * 2018-08-28 2024-04-09 花瓣云科技有限公司 一种服务器节点的选择方法和终端设备
CN116319809B (zh) * 2022-12-27 2023-12-29 昆仑数智科技有限责任公司 数据操作的方法和系统

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6078960A (en) * 1998-07-03 2000-06-20 Acceleration Software International Corporation Client-side load-balancing in client server network
US6732175B1 (en) * 2000-04-13 2004-05-04 Intel Corporation Network apparatus for switching based on content of application data
JP3676714B2 (ja) * 2001-10-02 2005-07-27 日本電信電話株式会社 優先選択ネームサーバシステム及びクライアント端末
EP2051169A1 (en) * 2007-10-19 2009-04-22 Nokia Siemens Networks Oy Tracing of individual directory access operations
US7971099B2 (en) * 2008-04-02 2011-06-28 International Business Machines Corporation Method for enabling faster recovery of client applications in the event of server failure
US8676760B2 (en) * 2008-08-05 2014-03-18 International Business Machines Corporation Maintaining data integrity in data servers across data centers
US20120084369A1 (en) * 2010-09-30 2012-04-05 Microsoft Corporation Unified Reconnection To Multiple Remote Servers
CN102289508B (zh) * 2011-08-31 2015-02-04 上海西本网络科技有限公司 分布式缓存阵列及其数据查询方法
CN102340554B (zh) * 2011-09-29 2014-04-02 奇智软件(北京)有限公司 一种域名系统dns 的最优应用服务器选取方法和装置
CN202309766U (zh) * 2011-10-26 2012-07-04 上海讯首软件有限公司 一种基于活动目录验证的在线服务系统

Also Published As

Publication number Publication date
KR20150059173A (ko) 2015-05-29
CA2884396A1 (en) 2014-03-20
HK1190535A1 (en) 2014-07-04
CN103685398B (zh) 2015-08-19
EP2896188A4 (en) 2015-08-19
CN103685398A (zh) 2014-03-26
JP2015529924A (ja) 2015-10-08
WO2014040566A1 (en) 2014-03-20
EP2896188A1 (en) 2015-07-22
CA2884396C (en) 2018-05-08

Similar Documents

Publication Publication Date Title
JP6120971B2 (ja) データサーバとネットワークソケットを確立する方法
TWI736657B (zh) 虛擬互聯網協定位址的切換方法及裝置
CN111615066B (zh) 一种基于广播的分布式微服务注册及调用方法
CN109391655B (zh) 服务灰度发布方法、装置、系统及存储介质
CN107357571B (zh) 设备组件程序的维护方法及系统
CN107547661B (zh) 一种容器负载均衡实现方法
CN107135279B (zh) 一种处理长连接建立请求的方法和装置
US20180375927A1 (en) Information processing apparatus and memory control method
US10050832B2 (en) Server clustering in mobile computing environment
US9582386B2 (en) System and method for maintaining a copy of a cloud-based computing environment and restoration thereof
CN106549789B (zh) 一种实现服务器安装的方法及系统
CN112039710B (zh) 服务故障处理方法、终端设备及可读存储介质
JP6167736B2 (ja) 情報処理装置、サーバ装置、情報処理方法及びプログラム
US20130204926A1 (en) Information processing system, information processing device, client terminal, and computer readable medium
CN102468992A (zh) Pxe测试系统及方法
US9344363B2 (en) Information processing system, relay device, information processing device, and information processing method
JP5686204B2 (ja) サーバ装置、情報処理システム、サーバ装置のアドレス管理方法、及びサーバ装置のアドレス管理プログラム
CN106850747B (zh) 一种分布式实时转码系统的转码节点管理系统及方法
US9591080B2 (en) Method of establishing a network socket with a data server
US10698642B2 (en) Remote management system and information processing method
CN101917458B (zh) 一种向客户机发送网络引导程序的方法及装置
JP2013003768A (ja) 状態管理方法、処理装置、および状態管理プログラム
US7693166B2 (en) Method and apparatus for transmitting data to network and method and apparatus for receiving data from network
US20230146880A1 (en) Management system and management method
CN113094074A (zh) 一种服务集群的更新方法及装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160530

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160621

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160921

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170228

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170328

R150 Certificate of patent or registration of utility model

Ref document number: 6120971

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250