JP5922846B2 - ネットワークアプリケーションでのデータ同期のためのシステムおよび方法 - Google Patents

ネットワークアプリケーションでのデータ同期のためのシステムおよび方法 Download PDF

Info

Publication number
JP5922846B2
JP5922846B2 JP2015527774A JP2015527774A JP5922846B2 JP 5922846 B2 JP5922846 B2 JP 5922846B2 JP 2015527774 A JP2015527774 A JP 2015527774A JP 2015527774 A JP2015527774 A JP 2015527774A JP 5922846 B2 JP5922846 B2 JP 5922846B2
Authority
JP
Japan
Prior art keywords
user input
data
input event
synchronization data
response data
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
JP2015527774A
Other languages
English (en)
Other versions
JP2015534147A (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 JP2015534147A publication Critical patent/JP2015534147A/ja
Application granted granted Critical
Publication of JP5922846B2 publication Critical patent/JP5922846B2/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
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • 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/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes

Description

本発明は、概して、インターネット技術に関し、詳細には、データ同期のためのネットワークアプリケーションの方法および装置に関する。
本出願は、参照によりその全体が本明細書に組み込まれている、2012年8月21に出願した、中国特許出願第201210297918.8号、「Systems and Methods for Data Synchronization in a Network Application」の優先権を主張するものである。
インターネットの発展に伴い、ネットワークアプリケーションも、インターネット上で急増しており、ユーザは、異なるネットワーク上で実行されている様々なネットワークアプリケーションを介してデータ交換を達成することができる。具体的には、同じネットワークアプリケーションを実行している複数のユーザの間で、各ユーザは、様々な動作命令をトリガするために、ネットワークアプリケーションによって提供されるネットワークインターフェースを使用することができる。ネットワークアプリケーションサーバは、受信した動作命令を処理し、適切なデータを生成することになる。次いで、生成された動作データに基づいて、ネットワークアプリケーションサーバは、ユーザがトリガした動作を、フィードバックとして、アプリケーションの異なるユーザインターフェースに返す。例えば、ネットワークアプリケーションがゲームアプリケーションである場合、2人のユーザは、ゲームアプリケーションをプレイし、インターネットを使用して情報を交換する。一方のユーザが、任意のアプリケーションインターフェースを介してゲームアプリケーション内のキャラクタの移動をトリガすると、ゲームキャラクタは、それに応じて移動することになる。ゲームアプリケーションサーバは、次いで、キャラクタ移動コマンドを、別のユーザによって使用される他のネットワークアプリケーションに転送することになり、それによって、ユーザインターフェース上の対応するキャラクタの移動を可能にする。しかしながら、異なるネットワークアプリケーションは、異なるネットワーク環境を有するので、ネットワークアプリケーションのネットワーク環境がよくない場合、または、ネットワーク環境の変動が大きい場合、それらは、異なるネットワークアプリケーションの適切なデータ同期を妨げる可能性がある。
ネットワーク環境の変動に関連する上記の不具合および他の問題は、以下に開示する本発明によって低減または排除される。いくつかの実施形態では、本発明は、1つまたは複数のプロセッサと、メモリと、複数の機能を実行するためのメモリに記憶された1つまたは複数のモジュール、プログラム、または命令のセットとを有するコンピュータシステムで実施される。これらの機能を実行するための命令は、1つまたは複数のプロセッサによる実行のために構成されたコンピュータプログラム製品に含まれ得る。
本発明の一態様は、コンピュータシステムによって実行されるコンピュータ実施方法を含む。コンピュータシステムは、ネットワークアプリケーションに関連するユーザ入力イベントを受信する。各ユーザ入力イベントは、ネットワークアプリケーションの個々の画像フレームに対応し、ユーザ入力イベントは、リモートソースからの少なくとも1つのリモートユーザ入力イベントを含む。コンピュータは、ユーザ入力イベントに関連する個々の画像フレームからネットワークアプリケーションの現在の画像フレームへの応答データを生成し、更新する。いくつかの実施形態では、ユーザ入力イベントは、すべてコンピュータのローカルユーザからである。コンピュータは、また、少なくとも1つのリモートユーザ入力イベントに関連する個々の画像フレームからネットワークアプリケーションの現在の画像フレームへの同期データを生成し、更新する。最後に、コンピュータは、応答データを同期データと入れ替える。
本発明の別の態様は、コンピュータシステムを含む。コンピュータシステムは、1つまたは複数のプロセッサと、メモリと、メモリに記憶され、1つまたは複数のプロセッサによる実行のために構成された1つまたは複数のプログラムモジュールとを含む。1つまたは複数のプログラムモジュールは、ネットワークアプリケーションに関連するユーザ入力イベントを受信するように構成されたユーザ入力イベント受信モジュールであって、各ユーザ入力イベントがネットワークアプリケーションの個々の画像フレームに対応し、ユーザ入力イベントがリモートソースからの少なくとも1つのリモートユーザ入力イベントを含む、ユーザ入力イベント受信モジュールと、ユーザ入力イベントに関連する個々の画像フレームからネットワークアプリケーションの現在の画像フレームへの応答データを生成し、更新するように構成されたローカル応答データ更新モジュールと、少なくとも1つのリモートユーザ入力イベントに関連する個々の画像フレームからネットワークアプリケーションの現在の画像フレームへの同期データを生成し、更新するように構成されたリモートデータ同期モジュールと、応答データを同期データと入れ替えるように構成されたデータ交換モジュールとを含む。
本発明の別の態様は、1つまたは複数の命令が記憶されている非一時的コンピュータ可読記憶媒体を含み、1つまたは複数の命令は、コンピュータシステムによって実行されると、ネットワークアプリケーションに関連するユーザ入力イベントを受信することであって、各ユーザ入力イベントがネットワークアプリケーションの個々の画像フレームに対応し、ユーザ入力イベントがリモートソースからの少なくとも1つのリモートユーザ入力イベントを含む、受信することと、ユーザ入力イベントに関連する個々の画像フレームからネットワークアプリケーションの現在の画像フレームへの応答データを生成し、更新することと、少なくとも1つのリモートユーザ入力イベントに関連する個々の画像フレームからネットワークアプリケーションの現在の画像フレームへの同期データを生成し、更新することと、応答データを同期データと入れ替えることとを、コンピュータシステムに行わせる。
いくつかの実施形態は、クライアント-サーバネットワーク環境のクライアント側またはサーバ側のどちらでも実施され得る。
本発明の上記の特徴および利点、ならびに、その追加の特徴および利点は、図面と併せて好ましい実施形態の詳細な説明の結果として、以下でより明確に理解されるであろう。
いくつかの実施形態による、ネットワークアプリケーションが異なるタイプのユーザ入力イベントを処理する方法を説明するフローチャートである。 いくつかの実施形態による、ネットワークアプリケーションがリモートコンピュータからのリモートユーザ入力イベントを処理する方法を説明するフローチャートである。 いくつかの実施形態による、ネットワークアプリケーションが応答データに基づいて同期データを更新する方法を説明するフローチャートである。 いくつかの実施形態による、異なるタイプのユーザ入力イベントを処理するためのネットワークアプリケーション内のモジュールを説明するブロック図である。 いくつかの実施形態による、ネットワークアプリケーション内のリモートデータ同期モジュールを説明するブロック図である。 いくつかの実施形態による、ネットワークアプリケーション内のデータ処理モジュールを説明するブロック図である。 いくつかの実施形態による、ネットワークアプリケーションの2人のユーザに関連するコンピュータがユーザ入力イベントを互いに同期する方法を説明するブロック図である。 いくつかの実施形態によるネットワーク環境のブロック図である。 いくつかの実施形態による例示的なクライアントコンピュータのブロック図である。 いくつかの実施形態によるサーバのブロック図である。
同様の参照番号は、図面のいくつかの図を通して対応する部分を指す。
ここで、その例が添付図面に示されている実施形態を詳細に参照する。以下の詳細な説明では、本明細書に提示される主題の完全な理解を提供するために、多数の特定の詳細が述べられる。しかし、主題は、これらの特定の詳細なしに実施され得ることが、当業者には明らかであろう。他の例では、周知の方法、手順、構成要素、および回路は、実施形態の態様を不必要に曖昧にしないようにするために、詳細には説明されない。
図8は、いくつかの実施形態によるネットワーク環境のブロック図である。ネットワーク環境800は、1つまたは複数のクライアントコンピュータ(830-1、830-3)と、1つまたは複数のサーバ810とを含む。クライアントコンピュータは、ネットワーク820(例えば、インターネット)を介してサーバに接続される。一方、異なるクライアントコンピュータは、ネットワーク820を介して互いに通信することもできる。例えば、以下に説明するように、クライアントコンピュータ830-1で生成されたユーザ入力イベントは、サーバ810および/またはクライアントコンピュータ830-3に送信され得る。ネットワーク810を介して、ネットワーク環境800内の異なるエンティティは、情報を交換することができる。いくつかの実施形態では、ネットワーク環境800は、オンラインゲームアプリケーションをサポートする。異なるユーザは、異なるクライアントコンピュータからオンラインゲームアプリケーションに参加する。サーバ810は、限定はしないが、ユーザ識別子、パスワード、ユーザ口座残高、現在のユーザステータス(例えば、ユーザによる最後の入力)、などを含む、ユーザの情報を記憶するためのユーザ情報データベース812を含む。
図1は、いくつかの実施形態による、ネットワークアプリケーションが異なるタイプのユーザ入力イベントを処理する方法を説明するフローチャートである。例示の目的のため、ネットワークアプリケーションは、図8に示すクライアントコンピュータで実行されているオンラインゲームアプリケーションである。ステップS10では、コンピュータは、ネットワークアプリケーションに関連するユーザ入力イベントを受信する。ユーザ入力イベントは、コンピュータからのローカルユーザ入力イベント、ならびに、リモートコンピュータからのリモートユーザ入力イベントの両方を含む。ローカルユーザ入力イベントは、コンピュータのユーザによって生成され、または、ユーザの行動によってトリガされる。例えば、ユーザがマウスを移動するか、キー入力を行ったとき、ローカルユーザ入力イベントは、それに応じて生成され得る。同様に、現在同じネットワークアプリケーションを実行している第2のクライアントコンピュータでの第2のユーザによるマウスの移動は、最初に、第2のクライアントコンピュータでローカルユーザ入力イベントを生成し、ローカルユーザ入力イベントは、次いで、ネットワーク810を介してクライアントコンピュータに送信され、これは、リモートユーザ入力イベントであるとみなされ得る。そのようなユーザ入力イベントは、ネットワークアプリケーションのグラフィカルユーザインターフェース上のオブジェクトの移動を引き起こすことができる。理想的には、異なるコンピュータにおける異なるグラフィカルユーザインターフェース上の同じオブジェクトの移動は、ほぼ同時に起こるべきである。しかし、現実には、潜在的なネットワーク輻輳に起因して、同じユーザ入力イベントが異なるクライアントコンピュータに到達するために、異なる時間がかかる可能性があり、これは、ユーザ体験の低下をもたらす可能性がある。したがって、本発明の1つの機能は、異なるグラフィカルユーザインターフェース上の異なるユーザによって制御されるオブジェクトの移動の間の同期を改善することである。いくつかの実施形態では、コンピュータによって受信される各ユーザ入力イベントは、イベントがネットワークアプリケーションによって取り込まれたときを示すネットワークアプリケーションの個々の画像フレームに対応し、ユーザ入力イベントは、リモートソースからの少なくとも1つのリモートユーザ入力イベントを含む。
ステップS30では、コンピュータは、ユーザ入力イベントに関連する画像フレームからネットワークアプリケーションの現在の画像フレームへの応答データを生成し、更新する。いくつかの実施形態では、ローカルユーザ入力イベント(または、ほとんど遅延がない近くのコンピュータからのユーザ入力イベント)の受信に際して、コンピュータは、ユーザ入力イベントに関連する最初の画像フレームを決定し、次いで、最初の画像フレームに関連する応答データを生成する。例えば、応答データは、特定のオブジェクトが異なる画像フレームにわたってグラフィカルユーザインターフェース上で移動する方法についての情報を含むことができる。最初の画像フレームが現在の画像フレームと異なる場合、コンピュータは、次いで、それに応じて応答データを更新する。以下に説明するように、応答データは、グラフィカルユーザインターフェース上に現在の画像フレームを描画するために使用される。いくつかの実施形態では、コンピュータは、第1のフレームレート、例えば、通常、ネットワークアプリケーションのデフォルトのフレームレートである毎秒60フレームで、ユーザ入力イベントに関連する個々の画像フレームに対応する応答データを更新する。グラフィカルユーザインターフェースは、フレームごとに描画されるので、応答データへの更新も、フレーム単位で実行される。応答データへの更新があるたびに、対応する画像フレームは、また、コンピュータがユーザ入力にほとんど瞬間的に応答することができるように、更新された応答データを使用して再描画される。このプロセスは、新しいユーザ入力イベント(例えば、ローカルユーザ入力イベント)があるときはいつでも、ネットワークアプリケーションがユーザの命令と常に同期するように、コンピュータが応答データを更新することになるように、連続的に繰り返し実行される。
上述したように、1つのコンピュータでのローカルユーザ入力イベントは、別のコンピュータでのリモートユーザ入力イベントになり得る。同様に、コンピュータに到達するユーザ入力イベントは、コンピュータでのネットワークアプリケーションのローカルの現在のステータスと同期しない可能性があるリモートユーザ入力イベントを含むこともできる。したがって、ステップS50で、コンピュータは、また、少なくとも1つのリモートユーザ入力イベントに関連する画像フレームからネットワークアプリケーションの現在の画像フレームへの同期データを生成し、更新する。応答データへの更新と同様に、同期データへの更新も、応答データへの更新の数が同期データへの更新の数と同じになるまで、フレーム単位で実行される。いくつかの実施形態では、同期データは、現在の画像フレームを描画するために使用され得ない。代わりに、ステップS70で、コンピュータは、最初に、例えば、応答データを記憶するためのデータ構造に同期データを記憶することによって、現在のグラフィカルユーザインターフェースを描画するためにすでに使用されている応答データを、同期データと入れ替える。いくつかの実施形態では、コンピュータは、次いで、ネットワークアプリケーションのグラフィカルユーザインターフェースを描画するために、同期データを使用する。異なるクライアントコンピュータにおけるユーザが同期した方式で互いに同じゲームをプレイすることができるように、同期データをネットワークアプリケーションに適用することによって、コンピュータで実行されているネットワークアプリケーションのインスタンスは、他のコンピュータで実行されている同じネットワークアプリケーションの他のインスタンスと同期され続ける。
いくつかの実施形態では、応答データは、ネットワーク環境からの影響(例えば、ネットワーク輻輳)を受けないとみなされる。コンピュータに到達するユーザ入力イベントがローカルまたはリモートでのいずれであるかにかかわらず、コンピュータは、応答データを更新することによって、迅速に動作することができ、現在の画像フレームを描画するために、更新された応答データを使用することができる。しかし、大きな遅延があるクライアントコンピュータから来るリモートユーザ入力イベントについて、ソースクライアントコンピュータは、リモートユーザ入力イベントの到着前に、それ自体の応答データをすでに更新している可能性があるので、コンピュータは、リモートユーザ入力イベントに基づいて応答データを更新することができない。代わりに、コンピュータは、リモートユーザ入力イベントに関連する画像フレームとネットワークアプリケーションの現在の画像フレームとの間のギャップを事実上測定するその同期データを更新するために、リモートユーザ入力イベントを使用する。同期データは、次いで、応答データと同じ画像フレームに対応するまで、繰り返し(例えば、フレームごとに)更新される。最後に、異なるユーザが同じネットワークアプリケーションを同期して使用してデータを交換することができるように、コンピュータは、画像フレームを描画するために、更新された同期データを使用する。
図2は、いくつかの実施形態による、ネットワークアプリケーションがリモートコンピュータからのリモートユーザ入力イベントを処理する方法を説明するフローチャートである。ステップS500では、コンピュータは、リモートコンピュータからリモートユーザ入力イベントを受信する。リモートユーザ入力イベントは、コンピュータと同期しないものとし、したがって、直接応答データを更新するために使用され得ないことに留意されたい。これに応じて、ステップS510では、コンピュータは、リモートユーザ入力イベントに関連する個々の画像フレームのための最初の同期データを生成する。例えば、これが、コンピュータがそのリモートコンピュータからリモートユーザ入力イベントを受信した最初のときである場合、コンピュータは、リモートユーザ入力イベントに関連する画像フレームに対応する最初の同期データを生成する必要がある可能性がある。次に、ステップS530では、コンピュータは、同期データへの更新の数が応答データへの更新の数と同じになるまで、最初の同期データへのフレームごとの更新を実行し、次いで、応答データを同期データと入れ替える。
例えば、コンピュータが、リモートユーザ入力イベントを受信し、リモートユーザ入力イベントが、ネットワークアプリケーションのN番目の画像フレームに対応し、応答データが、(N+M)番目の画像フレーム(M≧0)に対応するものとする。すなわち、2つのコンピュータは、現在同期していない。したがって、コンピュータは、2つのコンピュータを再び同期させるために、(N+M)番目の画像フレームへの同期データを迅速に更新する必要がある。
図3は、いくつかの実施形態による、ネットワークアプリケーションが応答データと同期するように同期データを更新する方法を説明するフローチャートである。ステップS531では、コンピュータは、通常、応答データを更新するためにコンピュータによって使用される第1のフレームレートよりも大きい第2のフレームレート(例えば、毎秒90または120フレーム)で、リモートユーザ入力イベントに関連する画像フレームに対応する同期データを更新する。そうでない場合、同期データは、応答データと再び同期することは決してできない。ステップS533では、コンピュータは、同期データへの更新の数、および応答データへの更新の数を決定する。ステップS535では、コンピュータは、同期データへの更新の数が応答データへの更新の数と同じであるかどうかを判断する。そうである(イエスの)場合、ステップS537では、コンピュータは、次いで、応答データを更新された同期データと入れ替える、そうではない(ノーの)場合、コンピュータは、次いで、ステップS531で同期データを更新するために戻る。
上記で説明した手法では、応答データの生成および更新、ならびに同期データの生成および更新は、それらが同じネットワークアプリケーションを使用する異なるコンピュータで異なるユーザによって生成されるので、互いに独立であることに留意されたい。しかしながら、同期データへの更新が定義済みの条件を満たすとき、同期データは、応答データと再び同期され得、したがって、ネットワークアプリケーションのユーザ体験を改善することができる。
図4は、いくつかの実施形態による、異なるタイプのユーザ入力イベントを処理するためのネットワークアプリケーション内のモジュールを説明するブロック図である。具体的には、ユーザ入力イベント受信モジュール10は、ネットワークアプリケーションに関連するユーザ入力イベントを受信するように構成される。ユーザ入力イベントは、コンピュータからのローカルユーザ入力イベント、ならびに、リモートコンピュータからのリモートユーザ入力イベントの両方を含む。ローカルユーザ入力イベントは、コンピュータのユーザによって生成され、または、ユーザの行動によってトリガされる。例えば、ユーザがマウスを移動するか、キー入力を行ったとき、ローカルユーザ入力イベントは、それに応じて生成され得る。同様に、現在同じネットワークアプリケーションを実行している第2のクライアントコンピュータでの第2のユーザによるマウスの移動は、最初に、第2のクライアントコンピュータでローカルユーザ入力イベントを生成し、ローカルユーザ入力イベントは、次いで、ネットワーク810を介してクライアントコンピュータに送信され、これは、リモートユーザ入力イベントであるとみなされ得る。そのようなユーザ入力イベントは、ネットワークアプリケーションのグラフィカルユーザインターフェース上のオブジェクトの移動を引き起こすことができる。理想的には、異なるコンピュータにおける異なるグラフィカルユーザインターフェース上の同じオブジェクトの移動は、ほぼ同時に起こるべきである。しかし、現実には、潜在的なネットワーク輻輳に起因して、同じユーザ入力イベントが異なるクライアントコンピュータに到達するために、異なる時間がかかる可能性があり、これは、ユーザ体験の低下をもたらす可能性がある。したがって、本発明の1つの機能は、異なるグラフィカルユーザインターフェース上の異なるユーザによって制御されるオブジェクトの移動の間の同期を改善することである。いくつかの実施形態では、ユーザ入力イベント受信モジュール10によって受信される各ユーザ入力イベントは、イベントがネットワークアプリケーションによって取り込まれたときを示すネットワークアプリケーションの個々の画像フレームに対応し、ユーザ入力イベントは、リモートソースからの少なくとも1つのリモートユーザ入力イベントを含む。
ローカル応答データ更新モジュール30は、ユーザ入力イベントに関連する画像フレームからネットワークアプリケーションの現在の画像フレームへの応答データを生成し、更新するように構成される。いくつかの実施形態では、ローカルユーザ入力イベント(または、ほとんど遅延がない近くのコンピュータからのユーザ入力イベント)の受信に際して、ローカル応答データ更新モジュール30は、ユーザ入力イベントに関連する最初の画像フレームを決定し、次いで、最初の画像フレームに関連する応答データを生成する。例えば、応答データは、特定のオブジェクトが異なる画像フレームにわたってグラフィカルユーザインターフェース上で移動する方法についての情報を含むことができる。最初の画像フレームが現在の画像フレームと異なる場合、ローカル応答データ更新モジュール30は、次いで、それに応じて応答データを更新する。以下に説明するように、応答データは、グラフィカルユーザインターフェース上に現在の画像フレームを描画するために使用される。いくつかの実施形態では、ローカル応答データ更新モジュール30は、第1のフレームレート、例えば、通常、ネットワークアプリケーションのデフォルトのフレームレートである毎秒60フレームで、ユーザ入力イベントに関連する個々の画像フレームに対応する応答データを更新する。グラフィカルユーザインターフェースは、フレームごとに描画されるので、応答データへの更新も、フレーム単位で実行される。応答データへの更新があるたびに、対応する画像フレームは、また、コンピュータがユーザ入力にほとんど瞬間的に応答することができるように、更新された応答データを使用して再描画される。このプロセスは、新しいユーザ入力イベント(例えば、ローカルユーザ入力イベント)があるときはいつでも、ネットワークアプリケーションがユーザの命令と常に同期するように、コンピュータが応答データを更新することになるように、連続的に繰り返し実行される。
リモートデータ同期モジュール50は、少なくとも1つのリモートユーザ入力イベントに関連する画像フレームからネットワークアプリケーションの現在の画像フレームへの同期データを生成し、更新するように構成される。応答データへの更新と同様に、同期データへの更新も、応答データへの更新の数が同期データへの更新の数と同じになるまで、リモートデータ同期モジュール50によってフレーム単位で実行される。いくつかの実施形態では、同期データは、現在の画像フレームを描画するために使用され得ない。代わりに、リモートデータ同期モジュール50は、データ交換モジュール70に更新同期データを提供し、データ交換モジュール70は、最初に、例えば、応答データを記憶するためのデータ構造に同期データを記憶することによって、応答データを同期データと入れ替えるように構成される。いくつかの実施形態では、画像描画モジュール(図4には示さず)は、ネットワークアプリケーションのグラフィカルユーザインターフェースを描画するために、同期データを使用する。異なるクライアントコンピュータにおけるユーザが同期した方式で互いに同じゲームをプレイすることができるように、同期データをネットワークアプリケーションに適用することによって、コンピュータで実行されているネットワークアプリケーションのインスタンスは、他のコンピュータで実行されている同じネットワークアプリケーションの他のインスタンスと同期し続ける。
いくつかの実施形態では、応答データは、ネットワーク環境からの影響(例えば、ネットワーク輻輳)を受けないとみなされる。コンピュータに到達するユーザ入力イベントがローカルまたはリモートでのいずれであるかにかかわらず、コンピュータは、応答データを更新することによって、迅速に動作することができ、現在の画像フレームを描画するために、更新された応答データを使用することができる。しかし、大きな遅延があるクライアントコンピュータから来るリモートユーザ入力イベントについて、ソースクライアントコンピュータは、リモートユーザ入力イベントの到着前に、それ自体の応答データをすでに更新している可能性があるので、コンピュータは、リモートユーザ入力イベントに基づいて応答データを更新することができない。代わりに、コンピュータは、リモートユーザ入力イベントに関連する画像フレームとネットワークアプリケーションの現在の画像フレームとの間のギャップを事実上測定するその同期データを更新するために、リモートユーザ入力イベントを使用する。同期データは、次いで、応答データと同じ画像フレームに対応するまで、繰り返し(例えば、フレームごとに)更新される。最後に、異なるユーザが同じネットワークアプリケーションを同期して使用してデータを交換することができるように、コンピュータは、画像フレームを描画するために、更新された同期データを使用する。
図5は、いくつかの実施形態による、ネットワークアプリケーション内のリモートデータ同期モジュールを説明するブロック図である。この例では、リモートデータ同期モジュール50は、入力イベント応答モジュール510およびデータ処理モジュール530をさらに含む。例えば、入力イベント応答モジュール510は、リモートコンピュータからリモートユーザ入力イベントを受信し、リモートユーザ入力イベントに関連する個々の画像フレームのための最初の同期データを生成するように構成される。例えば、リモートユーザ入力イベントは、コンピュータと同期していないものとし、したがって、直接応答データを更新するために使用され得ない。これが、コンピュータがそのリモートコンピュータからリモートユーザ入力イベントを受信した最初のときである場合、コンピュータは、リモートユーザ入力イベントに関連する画像フレームに対応する最初の同期データを生成する必要がある可能性がある。データ処理モジュール530は、同期データへの更新の数が応答データへの更新の数と同じになるまで、最初の同期データへのフレームごとの更新を実行し、次いで、応答データを同期データと入れ替えるように構成される。
例えば、コンピュータが、リモートユーザ入力イベントを受信し、リモートユーザ入力イベントが、ネットワークアプリケーションのN番目の画像フレームに対応し、応答データが、(N+M)番目の画像フレーム(M≧0)に対応するものとする。すなわち、2つのコンピュータは、現在同期していない。したがって、コンピュータは、2つのコンピュータを再び同期させるために、(N+M)番目の画像フレームへの同期データを迅速に更新する必要がある。
図6は、いくつかの実施形態による、ネットワークアプリケーション内のデータ処理モジュールを説明するブロック図である。この例では、データ処理モジュール530は、同期データ更新モジュール531と、データ更新頻度決定モジュール533と、応答データ更新モジュール535とをさらに含む。例えば、同期データ更新モジュール531は、通常、応答データを更新するためにコンピュータによって使用される第1のフレームレートよりも大きい第2のフレームレート(例えば、毎秒90または120フレーム)で、リモートユーザ入力イベントに関連する画像フレームに対応する同期データを更新するように構成される。データ更新頻度決定モジュール533は、同期データへの更新の数、および応答データへの更新の数を決定するように構成される。応答データ更新モジュール535は、同期データへの更新の数が応答データへの更新の数と同じであるかどうかを判断するように構成される。そうである場合、応答データ更新モジュール535は、次いで、応答データを更新された同期データと入れ替える。そうではない場合、応答データ更新モジュール535は、次いで、同期データ更新モジュール531に、同期データを更新するように通知する。
上記で説明した手法では、ローカル応答データ更新モジュール30およびリモートデータ同期モジュール50は、それらが同じネットワークアプリケーションを使用する異なるコンピュータで異なるユーザによって生成されるので、互いに独立して動作することに留意されたい。しかしながら、同期データへの更新が定義済みの条件を満たすとき、同期データは、応答データと再び同期され得、したがって、ネットワークアプリケーションのユーザ体験を改善することができる。いくつかの実施形態では、応答データ更新モジュール30は、クライアントコンピュータに位置し、リモートデータ同期モジュール50は、サーバ810に位置する。いくつかの他の実施形態では、応答データ更新モジュール30とリモートデータ同期モジュール50の両方は、サーバ810に位置することができる。
図7は、いくつかの実施形態による、ネットワークアプリケーションの2人のユーザに関連するコンピュータがユーザ入力イベントを互いに同期する方法を説明するブロック図である。この例では、ユーザ1(700-1)は、別のコンピュータを使用するユーザ2(700-2)と情報を交換するために、ローカルコンピュータを使用することができる。例えば、2人のユーザは、オンラインゲームアプリケーションをプレイすることができる。例えば、ユーザ1に関連するコンピュータは、異なるタイプのユーザ入力イベントを受信するためのユーザ入力イベント受信モジュール10を含むことができる。受信したユーザ入力イベントに対して、ローカル応答データ更新モジュール30は、ユーザ1からのローカルユーザ入力イベントを処理する(例えば、ローカルユーザ入力イベントに関連する応答データを生成し、更新する)役割を果たす。リモートデータ同期モジュール50内では、入力イベント応答モジュール510およびデータ処理モジュール530は、(ローカルユーザ入力イベントと同期していない可能性がある)リモートユーザ入力イベントを処理し、同じネットワークアプリケーションを実行している異なるコンピュータを互いに同期させ続ける役割を果たす。
この例では、ユーザ1に関連するコンピュータは、ネットワークアプリケーションの3つの異なる画像フレームにそれぞれ関連する、ユーザ1によってトリガされた3つのローカル入力イベントである、ローカルユーザ入力イベント1、ローカルユーザ入力イベント2、およびローカルユーザ入力イベント3を受信する。上述したように、各ユーザ入力イベントに対して、ローカル応答データ更新モジュール30は、応答データを生成および更新し、個々の画像フレームを描画するために応答データを使用するようにトリガされる。ネットワークアプリケーションが第4の画像フレームを描画するとき、ユーザ2に関連するコンピュータからのリモートユーザ入力イベントがコンピュータに到着する。このイベントは、ローカルユーザ入力イベント1およびリモートユーザ入力イベント1に基づいて同期データを生成するようにコンピュータの入力イベント応答モジュール510をトリガする。データ処理モジュール530は、次いで、同期データが応答データのように同じ数更新されるように、第1の画像フレームから第2、第3、および第4の画像フレームへの同期化データを更新する。最後に、同期データは、応答データを記憶するためのデータ構造に記憶され、次いで、ユーザ1に関連するコンピュータでの第4の画像フレームがユーザ2に関連するコンピュータでの対応する画像フレームと同期するように、それに応じて第4の画像フレームを描画するために使用される。ユーザ2に関連するコンピュータは、3つのローカルユーザ入力イベントを、それらが応答データを更新するために使用され得ないようにそれらが実質的な遅延を有してコンピュータに到着する場合、実質的に同じ方法で処理することに留意されたい。
図9は、いくつかの実施形態による例示的なクライアントコンピュータのブロック図である。例示的なクライアントコンピュータ830は、典型的には、1つまたは複数の処理ユニット(CPU)902と、1つまたは複数のネットワークまたは他の通信インターフェース904と、メモリ910と、これらの構成要素を相互接続するための1つまたは複数の通信バス909とを含む。通信バス909は、システム構成要素間を相互接続し、これらの間の通信を制御する回路網(時には、チップセットと呼ばれる)を含むことができる。クライアントコンピュータ830は、ユーザインターフェース905、例えば、ディスプレイ906およびキーボード908を含むことができる。メモリ910は、高速ランダムアクセスメモリを含むことができ、1つまたは複数の磁気ディスク記憶デバイスなどの不揮発性メモリを含むこともできる。メモリ910は、CPU 902から遠隔地に配置された大容量記憶装置を含むことができる。いくつかの実施形態では、メモリ910は、以下のプログラム、モジュール、およびデータ構造、または、これらのサブセットもしくはスーパセットを記憶する。
・様々な基本システムサービスを処理し、ハードウェア依存タスクを実行するための手順を含むオペレーティングシステム912。
・インターネット、他のワイドエリアネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワーク、などの、1つまたは複数の通信ネットワーク(ワイヤードまたはワイヤレス)を介して、クライアントコンピュータ830をサーバ810または他のコンピュータに接続するために使用されるネットワーク通信モジュール914。
・ユーザインターフェース905を介してユーザ入力を受信するように構成されたユーザインターフェースモジュール916。
・1つまたは複数のクライアント側ネットワークアプリケーション918であって、各ネットワークアプリケーションは、図4に関連して上記で説明したような、ユーザ入力イベント受信モジュール10と、ローカル応答データ更新モジュール30と、リモートデータ同期モジュール50と、データ交換モジュール70とをさらに含む。
図10は、いくつかの実施形態によるサーバのブロック図である。例示的なサーバ810は、典型的には、1つまたは複数の処理ユニット(CPU)1002と、1つまたは複数のネットワークまたは他の通信インターフェース1004と、メモリ1010と、これらの構成要素を相互接続するための1つまたは複数の通信バス1009とを含む。通信バス1009は、システム構成要素間を相互接続し、これらの間の通信を制御する回路網(時には、チップセットと呼ばれる)を含むことができる。サーバ810は、オプションで、ユーザインターフェース1005、例えば、ディスプレイ1006およびキーボード1008を含むことができる。メモリ1010は、高速ランダムアクセスメモリを含むことができ、1つまたは複数の磁気ディスク記憶デバイスなどの不揮発性メモリを含むこともできる。メモリ1010は、CPU1002から遠隔地に配置された大容量記憶装置を含むことができる。いくつかの実施形態では、メモリ1010は、以下のプログラム、モジュール、およびデータ構造、または、これらのサブセットもしくはスーパセットを記憶する。
・様々な基本システムサービスを処理し、ハードウェア依存タスクを実行するための手順を含むオペレーティングシステム1012。
・インターネット、他のワイドエリアネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワーク、などの、1つまたは複数の通信ネットワーク(ワイヤードまたはワイヤレス)を介して、サーバ810を他のサーバまたはクライアントコンピュータ830に接続するために使用されるネットワーク通信モジュール1014。
・他のモジュール、および、サーバ810の適切な動作のために必要なメモリ1012に記憶されたデータ構造を初期化するシステム初期化モジュール1016。
・ユーザインターフェース1005を介してユーザ入力を受信するように構成されたオプションのユーザインターフェースモジュール1018。
・1つまたは複数のサーバ側ネットワークアプリケーション1020であって、各ネットワークアプリケーションは、ユーザ情報データ1022(例えば、ユーザ識別子、パスワード、ユーザ口座残高、現在のユーザステータス)をさらに含む。
特定の実施形態が上記で説明されているが、本発明をこれらの特定の実施形態に限定することは、意図されていないことが理解されるであろう。それとは逆に、本発明は、添付の特許請求の範囲の要旨および範囲内にある代替形態、変更形態、および等価形態を含む。本明細書に提示される主題の完全な理解を提供するために、多数の特定の詳細が述べられる。しかし、主題は、これらの特定の詳細なしに実施され得ることが、当業者には明らかであろう。他の例では、周知の方法、手順、構成要素、および回路は、実施形態の態様を不必要に曖昧にしないようにするために、詳細には説明されない。
本明細書で本発明の説明で使用される用語は、特定の実施形態を説明する目的のためのものであり、本発明を限定することを意図するものではない。本発明の説明および添付の特許請求の範囲で使用されるとき、単数形「a」、「an」、および「the」は、文脈が別途明らかに指示しない限り、複数形も含むことを意図している。本明細書で使用される「および/または」という用語は、1つまたは複数の関連する列挙された項目の任意のおよびすべての可能な組み合わせを指し、これらを含むことも理解されるであろう。さらに、「含む」、「含んでいる」、「備える」、および/または「備えている」という用語は、本明細書で使用されるとき、述べられた特徴、動作、要素、および/または構成要素の存在を特定するが、1つまたは複数の他の特徴、動作、要素、構成要素、および/またはこれらのグループの存在または追加を排除しないことが理解されるであろう。
本明細書で使用されるとき、「場合」という用語は、文脈に応じて、述べられた先行条件が真である「とき」、または「のに際し」、または「という判断に応答して」、または「ことの検出に応答して」を意味すると解釈され得る。同様に、「「述べられた先行条件が真である」と判断された場合」、または「「述べられた先行条件が真である」場合」、または「「述べられた先行条件が真である」とき」というフレーズは、文脈に応じて、述べられた先行条件が真である「と判断すると」、または「という判断に際して」、または「という判断に応答して」、または「という判断にしたがって」、または「ことの検出に応答して」を意味すると解釈され得る。
様々な図面のいくつかは、いくつかの論理的段階を特定の順序で示しているが、順序に依存しない段階は、並べ替えられてよく、他の段階は、組み合わされてよく、または分解されてよい。いくつかの並べ替えまたは他のグループ化が具体的に述べられているが、他のものは、当業者には明らかであるので、代替物の網羅的なリストを提示しない。さらに、段階は、ハードウェア、ファームウェア、ソフトウェア、またはこれらの任意の組み合わせで実施され得ることを認識すべきである。
前述の説明は、説明の目的のため、特定の実施形態に関して説明してきた。しかしながら、上記の例示的な考察は、網羅的であることを意図せず、または、本発明を、開示された正確な形態に限定することを意図していない。多くの変更および変形が、上記の教示に鑑みて可能である。実施形態は、本発明の原理およびその実地応用を最良に説明し、それによって、当業者が本発明、および、考えられる特定の用途に適するように様々な変更を加えた様々な実施形態を最良に利用することを可能にするために、選択および説明された。
10 ユーザ入力イベント受信モジュール
30 ローカル応答データ更新モジュール
50 リモートデータ同期モジュール
70 データ交換モジュール
510 入力イベント応答モジュール
530 データ処理モジュール
531 同期データ更新モジュール
533 データ更新頻度決定モジュール
535 応答データ更新モジュール
700-1 ユーザ1
700-2 ユーザ2
800 ネットワーク環境
810 サーバ
812 ユーザ情報データベース
820 ネットワーク
830 クライアントコンピュータ
830-1 クライアントコンピュータ
830-3 クライアントコンピュータ
832-1 ネットワークアプリケーション
832-3 ネットワークアプリケーション
902 CPU
904 通信インターフェース
905 ユーザインターフェース
906 ディスプレイ
908 キーボード
909 通信バス
910 メモリ
912 オペレーティングシステム
914 ネットワーク通信モジュール
916 ユーザインターフェースモジュール
918 クライアント側ネットワークアプリケーション
1002 CPU
1004 通信インターフェース
1005 ユーザインターフェース
1006 ディスプレイ
1008 キーボード
1009 通信バス
1010 メモリ
1012 オペレーティングシステム
1014 ネットワーク通信モジュール
1016 システム初期化モジュール
1018 ユーザインターフェースモジュール
1020 サーバ側ネットワークアプリケーション
1022 ユーザ情報データ

Claims (12)

1つまたは複数のプロセッサと、前記1つまたは複数のプロセッサによって実行されるプログラムを記憶するメモリとを有するコンピュータで、
ネットワークアプリケーションに関連するユーザ入力イベントを受信するステップであって、各ユーザ入力イベントが前記ネットワークアプリケーションの個々の画像フレームに対応し、前記ユーザ入力イベントがリモートソースからの少なくとも1つのリモートユーザ入力イベントを含む、ステップと、
前記ユーザ入力イベントに関連する前記個々の画像フレームから前記ネットワークアプリケーションの現在の画像フレームへの応答データを生成し、更新するステップと、
前記少なくとも1つのリモートユーザ入力イベントに関連する前記個々の画像フレームから前記ネットワークアプリケーションの前記現在の画像フレームへの同期データを生成し、更新するステップと、
前記応答データを前記同期データと入れ替えるステップと、
を含み、
前記ユーザ入力イベントに関連する前記個々の画像フレームから前記ネットワークアプリケーションの前記現在の前記画像フレームへの応答データを生成し、更新するステップが、さらに、
第1のフレームレートで、前記ユーザ入力イベントに関連する前記個々の画像フレームに対応する前記応答データを更新するステップと、
前記応答データを使用して、前記ネットワークアプリケーションの前記現在の画像フレームを描画するステップと、
を含み、
前記少なくとも1つのリモートユーザ入力イベントに関連する前記個々の画像フレームから前記ネットワークアプリケーションの前記現在の画像フレームへの同期データを生成し、更新するステップが、さらに、
前記少なくとも1つのリモートユーザ入力イベントに関連する前記個々の画像フレームのための最初の同期データを生成するステップと、
前記同期データへの更新の数が前記応答データへの更新の数と同じになるまで、前記最初の同期データへのフレームごとの更新を実行するステップと、
を含む、データ同期のためのコンピュータ実施方法。
前記同期データへの更新の数が前記応答データへの更新の数と同じになるまで、前記最初の同期データへの前記フレームごとの更新を実行するステップが、
第2のフレームレートで、前記少なくとも1つのリモートユーザに関連する前記個々の画像フレームに対応する前記同期データを更新するステップと、
前記同期データへの更新の数、および前記応答データへの更新の数を、それぞれ決定するステップと、
前記同期データへの更新の数が前記応答データへの更新の数と同じである場合、前記応答データを前記同期データと入れ替えるステップと、
そうでない場合、前記同期データの更新を繰り返すステップと、
を含む、請求項1に記載の方法。
前記第2のフレームレートが前記第1のフレームレートよりも大きい、請求項2に記載の方法。
前記同期データを使用して、前記ネットワークアプリケーションの前記現在の画像フレームを描画するステップをさらに含む、請求項1に記載の方法。
1つまたは複数のプロセッサと、
メモリと、
前記メモリに記憶され、前記1つまたは複数のプロセッサによる実行のために構成された1つまたは複数のプログラムモジュールと、
を備え、前記1つまたは複数のプログラムモジュールが、
ネットワークアプリケーションに関連するユーザ入力イベントを受信するように構成されたユーザ入力イベント受信モジュールであって、各ユーザ入力イベントが前記ネットワークアプリケーションの個々の画像フレームに対応し、前記ユーザ入力イベントがリモートソースからの少なくとも1つのリモートユーザ入力イベントを含む、ユーザ入力イベント受信モジュールと、
前記ユーザ入力イベントに関連する前記個々の画像フレームから前記ネットワークアプリケーションの現在の画像フレームへの応答データを生成し、更新するように構成されたローカル応答データ更新モジュールと、
前記少なくとも1つのリモートユーザ入力イベントに関連する前記個々の画像フレームから前記ネットワークアプリケーションの前記現在の画像フレームへの同期データを生成し、更新するように構成されたリモートデータ同期モジュールと、
前記応答データを前記同期データと入れ替えるように構成されたデータ交換モジュールと、
を備え
前記ローカル応答データ更新モジュールが、さらに、
第1のフレームレートで、前記ユーザ入力イベントに関連する前記個々の画像フレームに対応する前記応答データを更新し、
前記応答データを使用して、前記ネットワークアプリケーションの前記現在の画像フレームを描画するように構成され、
前記リモートデータ同期モジュールが、さらに、
前記少なくとも1つのリモートユーザ入力イベントに関連する前記個々の画像フレームのための最初の同期データを生成し、
前記同期データへの更新の数が前記応答データへの更新の数と同じになるまで、前記最初の同期データへのフレームごとの更新を実行するように構成された、コンピュータシステム。
前記同期データへの更新の数が前記応答データへの更新の数と同じになるまで、前記最初の同期データへの前記フレームごとの更新を実行するための命令が、さらに、
第2のフレームレートで、前記少なくとも1つのリモートユーザに関連する前記個々の画像フレームに対応する前記同期データを更新するための命令と、
前記同期データへの更新の数、および前記応答データへの更新の数を、それぞれ決定するための命令と、
前記同期データへの更新の数が前記応答データへの更新の数と同じである場合、前記応答データを前記同期データと入れ替えるための命令と、
そうでない場合、前記同期データの更新を繰り返すための命令と、
を含む、請求項5に記載のコンピュータシステム。
前記第2のフレームレートが前記第1のフレームレートよりも大きい、請求項6に記載のコンピュータシステム。
前記データ交換モジュールが、さらに、
前記同期データを使用して、前記ネットワークアプリケーションの前記現在の画像フレームを描画するように構成された、請求項5に記載のコンピュータシステム。
1つまたは複数の命令が記憶されている非一時的コンピュータ可読記憶媒体であって、前記1つまたは複数の命令が、コンピュータシステムによって実行されると、
ネットワークアプリケーションに関連するユーザ入力イベントを受信することであって、各ユーザ入力イベントが前記ネットワークアプリケーションの個々の画像フレームに対応し、前記ユーザ入力イベントがリモートソースからの少なくとも1つのリモートユーザ入力イベントを含む、受信することと、
前記ユーザ入力イベントに関連する前記個々の画像フレームから前記ネットワークアプリケーションの現在の画像フレームへの応答データを生成し、更新することと、
前記少なくとも1つのリモートユーザ入力イベントに関連する前記個々の画像フレームから前記ネットワークアプリケーションの前記現在の画像フレームへの同期データを生成し、更新することと、
前記応答データを前記同期データと入れ替えることと、
を、前記コンピュータシステムに行わせ
前記ユーザ入力イベントに関連する前記個々の画像フレームから前記ネットワークアプリケーションの前記現在の前記画像フレームへの応答データを生成し、更新するための前記命令が、さらに、
第1のフレームレートで、前記ユーザ入力イベントに関連する前記個々の画像フレームに対応する前記応答データを更新するための命令と、
前記応答データを使用して、前記ネットワークアプリケーションの前記現在の画像フレームを描画するための命令と、
を含み、
前記少なくとも1つのリモートユーザ入力イベントに関連する前記個々の画像フレームから前記ネットワークアプリケーションの前記現在の画像フレームへの同期データを生成し、更新するための前記命令が、さらに、
前記少なくとも1つのリモートユーザ入力イベントに関連する前記個々の画像フレームのための最初の同期データを生成するための命令と、
前記同期データへの更新の数が前記応答データへの更新の数と同じになるまで、前記最初の同期データへのフレームごとの更新を実行するための命令と、
を含む、非一時的コンピュータ可読記憶媒体。
前記同期データへの更新の数が前記応答データへの更新の数と同じになるまで、前記最初の同期データへの前記フレームごとの更新を実行するための前記命令が、
第2のフレームレートで、前記少なくとも1つのリモートユーザに関連する前記個々の画像フレームに対応する前記同期データを更新するための命令と、
前記同期データへの更新の数、および前記応答データへの更新の数を、それぞれ決定するための命令と、
前記同期データへの更新の数が前記応答データへの更新の数と同じである場合、前記応答データを前記同期データと入れ替えるための命令と、
そうでない場合、前記同期データの更新を繰り返すための命令と、
を含む、請求項9に記載の非一時的コンピュータ可読記憶媒体。
前記第2のフレームレートが前記第1のフレームレートよりも大きい、請求項10に記載の非一時的コンピュータ可読記憶媒体。
1つまたは複数の命令が、前記同期データを使用して、前記ネットワークアプリケーションの前記現在の画像フレームを描画するための命令をさらに含む、請求項9に記載の非一時的コンピュータ可読記憶媒体。
JP2015527774A 2012-08-21 2013-08-19 ネットワークアプリケーションでのデータ同期のためのシステムおよび方法 Active JP5922846B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201210297918.8 2012-08-21
CN201210297918.8A CN103634333B (zh) 2012-08-21 2012-08-21 网络应用的数据同步方法和装置
PCT/CN2013/081791 WO2014029312A1 (en) 2012-08-21 2013-08-19 Systems and methods for data synchronization in a network application

Publications (2)

Publication Number Publication Date
JP2015534147A JP2015534147A (ja) 2015-11-26
JP5922846B2 true JP5922846B2 (ja) 2016-05-24

Family

ID=50149438

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015527774A Active JP5922846B2 (ja) 2012-08-21 2013-08-19 ネットワークアプリケーションでのデータ同期のためのシステムおよび方法

Country Status (9)

Country Link
US (1) US9444867B2 (ja)
EP (1) EP2888660B1 (ja)
JP (1) JP5922846B2 (ja)
KR (1) KR101576107B1 (ja)
CN (1) CN103634333B (ja)
CA (1) CA2881513C (ja)
HK (1) HK1190534A1 (ja)
SG (1) SG11201501081QA (ja)
WO (1) WO2014029312A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107222510B (zh) * 2017-07-21 2018-10-09 腾讯科技(深圳)有限公司 一种游戏同步方法、系统及相关设备
CN110898425B (zh) * 2019-11-27 2021-05-11 腾讯科技(深圳)有限公司 信息同步方法和装置、存储介质及电子装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1431819A (zh) * 2002-01-09 2003-07-23 英华达(上海)电子有限公司 可令移动电话进行无线网络对打游戏的方法
CN1567822A (zh) * 2003-06-23 2005-01-19 英华达(上海)电子有限公司 令多个电子装置同时进行网络游戏的方法
CN100589499C (zh) * 2005-09-26 2010-02-10 腾讯科技(深圳)有限公司 一种联网游戏中角色的移动方法
US20070198744A1 (en) * 2005-11-30 2007-08-23 Ava Mobile, Inc. System, method, and computer program product for concurrent collaboration of media
US20080133736A1 (en) * 2006-11-30 2008-06-05 Ava Mobile, Inc. System, method, and computer program product for tracking digital media in collaborative environments
US20080133551A1 (en) * 2006-11-30 2008-06-05 Ava Mobile, Inc. System, method, and computer program product for managing rights of media in collaborative environments
US8506404B2 (en) * 2007-05-07 2013-08-13 Samsung Electronics Co., Ltd. Wireless gaming method and wireless gaming-enabled mobile terminal
US20090193345A1 (en) * 2008-01-28 2009-07-30 Apeer Inc. Collaborative interface
CN101420347B (zh) * 2008-03-18 2011-11-09 王睿斌 一种将Flash单机双人游戏在双主机上同步运行的方法
CN101330418A (zh) * 2008-07-21 2008-12-24 中国民航大学 一种机场航班信息实时跟踪装置及其处理方法
JP2010172732A (ja) * 2010-04-01 2010-08-12 Keizo Watanabe ネットワークゲームシステム及びプログラム
CN102158633B (zh) * 2011-01-24 2012-12-26 广东威创视讯科技股份有限公司 一种图像信号同步处理方法

Also Published As

Publication number Publication date
EP2888660A4 (en) 2015-07-08
KR101576107B1 (ko) 2015-12-09
CN103634333A (zh) 2014-03-12
US9444867B2 (en) 2016-09-13
KR20150036829A (ko) 2015-04-07
HK1190534A1 (en) 2014-07-04
CA2881513A1 (en) 2014-02-27
JP2015534147A (ja) 2015-11-26
WO2014029312A1 (en) 2014-02-27
SG11201501081QA (en) 2015-04-29
EP2888660A1 (en) 2015-07-01
CN103634333B (zh) 2015-04-08
EP2888660B1 (en) 2021-10-06
US20140067928A1 (en) 2014-03-06
CA2881513C (en) 2017-09-26

Similar Documents

Publication Publication Date Title
EP3809706B1 (en) Method and apparatus for transmitting scene image of virtual scene, computer device and computer readable storage medium
US10276131B2 (en) Systems and methods for remote mouse pointer management
US20240007516A1 (en) Ultra-low latency remote application access
CN104954349B (zh) 一种2d游戏中客户端的同步方法、装置和系统
US10848597B1 (en) System and method for managing virtual reality session technical field
US20140032699A1 (en) Remote user interface in a terminal server environment
CN111602118B (zh) 实现虚拟机的音频,视频和控制系统
US20150046520A1 (en) Image display method and apparatus
US11350030B2 (en) Flicker detector
CN111669438A (zh) 直播消息传输方法、装置、电子设备及介质
KR20210064239A (ko) 멀티 플레이어 프로그램에서 높은 입력 레이턴시를 유도하는 기법
US20230236687A1 (en) Systems and methods for control of a virtual world
US9549006B2 (en) Self-adaptive sample period for content sharing in communication sessions
JP5922846B2 (ja) ネットワークアプリケーションでのデータ同期のためのシステムおよび方法
JP2008289030A (ja) 画面描画転送システム
CN114697755A (zh) 虚拟场景信息交互方法、装置、设备以及存储介质
CN111865720B (zh) 用于处理请求的方法、装置、设备以及存储介质
CN112435313A (zh) 播放帧动画的方法、装置、电子设备及可读存储介质
US11677833B2 (en) Methods for visualizing and interacting with a three dimensional object in a collaborative augmented reality environment and apparatuses thereof
KR102547987B1 (ko) 멀티캐스트 기반 데이터 전송 방법
CN113676746B (zh) 用于检测直播抖动的方法、装置、设备和介质
CN115713582B (zh) 虚拟形象生成方法、装置、电子设备和介质
CN115297340A (zh) 虚拟空间互动方法、装置、电子设备、服务器及存储介质
Hung et al. A procedure to achieve cost and performance optimization for recovery in cloud computing
CN114969583A (zh) 数据同步方法、装置、设备以及存储介质

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151006

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160106

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: 20160315

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160414

R150 Certificate of patent or registration of utility model

Ref document number: 5922846

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250