(57)【特許請求の範囲】
【請求項１】
ネットワーク上で動作するよう構成されたサーバにおける方法であって、
ユーザ入力間隔の測定時間を含むクライアントレイテンシデータを含むクライアントデバイス情報を前記サーバでネットワーク接続を介してクライアントデバイスから受信し、
前記ユーザ入力間隔の測定時間を利用して、前記クライアントデバイスで前記ユーザ入力がなされたのと同じ時間差を使って前記サーバで前記ユーザ入力を実施し、
前記クライアントレイテンシデータを考慮したアシスタント出力を選択し、
前記アシスタント出力を前記サーバから前記クライアントデバイスに送信することを含み、
前記アシスタント出力は、ユーザがレイテンシの影響を克服することを支援するよう構成された、方法。
【請求項２】
前記アシスタント出力は、既に前記クライアントデバイスにロードされているアシスタント命令の実行をトリガする信号を含む、請求項１に記載の方法。
【請求項３】
前記アシスタント出力は、前記クライアントデバイス上で実行される命令を含む、請求項１に記載の方法。
【請求項４】
前記命令はスクリプトである、請求項２に記載の方法。
【請求項５】
前記アシスタント出力は、前記ユーザによるタスクの完了を補助するよう構成された、請求項３に記載の方法。
【請求項６】
前記クライアントデバイス情報または前記アシスタント出力は、暗号化データパケットストリームを含む、請求項１に記載の方法。
【請求項７】
前記暗号化データパケットストリームの各データパケットは、前記パケットの復号化順での位置を示すヘッダを含む、請求項６に記載の方法。
【請求項８】
順序がずれて前記パケットが受信されると、さらに、前記暗号化パケットの前記復号化順を使って、前記サーバで前記データストリームを再構成する、請求項７に記載の方法。
【請求項９】
前記データパケットストリームは、信頼性の低いプロトコルで送信される、請求項６に記載の方法。
【請求項１０】
前記信頼性の低いプロトコルは、ユーザデータグラムプロトコル（ＵＤＰ）である、請求項９に記載の方法。
【請求項１１】
システムであって、
プロセッサ、及び
前記プロセッサに接続されたメモリを備え、
前記プロセッサは方法を実施するよう構成され、前記方法は、
ユーザ入力間隔の測定時間を含むクライアントレイテンシデータを含むクライアントデバイス情報をクライアントデバイスからサーバでネットワーク接続を介して受信し、
前記ユーザ入力間隔の測定時間を利用して、前記クライアントデバイスで前記ユーザ入力がなされたのと同じ時間差を使って前記サーバで前記ユーザ入力を実施し、
前記クライアントレイテンシデータを考慮したアシスタント出力を選択し、
前記アシスタント出力を前記サーバから前記クライアントデバイスに送信することを含み、
前記アシスタント出力は、ユーザがレイテンシの影響を克服することを支援するよう構成された、システム。
【請求項１２】
前記クライアントデバイス情報または前記アシスタント出力は、暗号化データパケットストリームを含む、請求項１１に記載のシステム。
【請求項１３】
具現化されたプロセッサ実行可能命令を内包する非一時的コンピュータ可読媒体であって、前記命令はプロセッサにより実行されると前記プロセッサに方法を実施させ、前記方法は、
ユーザ入力間隔の測定時間を含むクライアントレイテンシデータを含むクライアントデバイス情報をクライアントデバイスからサーバでネットワーク接続を介して受信し、
前記ユーザ入力間隔の測定時間を利用して、前記クライアントデバイスで前記ユーザ入力がなされたのと同じ時間差を使って前記サーバで前記ユーザ入力を実施し、
前記クライアントレイテンシデータを考慮したアシスタント出力を選択し、
前記アシスタント出力を前記サーバから前記クライアントデバイスに送信することを含み、
前記アシスタント出力は、ユーザがレイテンシの影響を克服することを支援するよう構成された、非一時的コンピュータ可読媒体。
【請求項１４】
前記クライアントデバイス情報または前記アシスタント出力は、暗号化データパケットストリームを含む、請求項１３に記載の非一時的コンピュータ可読媒体。
【請求項１５】
方法であって、
ユーザ入力間隔の測定時間を含むクライアントレイテンシデータを含むクライアントデバイス情報をクライアントデバイスからサーバにネットワーク接続を介して送信し、
前記ユーザ入力間隔の測定時間を利用して、前記クライアントデバイスで前記ユーザ入力がなされたのと同じ時間差を使って前記サーバで前記ユーザ入力が実施され、前記クライアントレイテンシデータを考慮して選択されたアシスタント出力を前記サーバから受信し、
前記アシスタント出力に対応する補助を前記クライアントデバイスで実施することを含み、
前記アシスタント出力は、ユーザがレイテンシの影響を克服することを支援するよう構成された、方法。
【請求項１６】
前記アシスタント出力は、既に前記クライアントデバイスにロードされているアシスタント命令の実行をトリガする信号を含む、請求項１５に記載の方法。
【請求項１７】
前記アシスタント出力は、前記クライアントデバイス上で実行される命令を含む、請求項１５に記載の方法。
【請求項１８】
前記命令はスクリプトである、請求項１６に記載の方法。
【請求項１９】
前記アシスタント出力は、前記ユーザによるタスクの完了を補助するよう構成された、請求項１７に記載の方法。
【請求項２０】
前記クライアントデバイス情報または前記アシスタント出力は、暗号化データパケットストリームを含む、請求項１５に記載の方法。
【請求項２１】
前記暗号化データパケットストリームの各データパケットは、前記パケットの復号化順での位置を示すヘッダを含む、請求項２０に記載の方法。
【請求項２２】
順序がずれて前記パケットが受信されると、さらに、前記暗号化パケットの前記復号化順を使って、前記サーバで前記データストリームを再構成する、請求項２１に記載の方法。
【請求項２３】
前記データパケットストリームは、信頼性の低いプロトコルで送信される、請求項２０に記載の方法。
【請求項２４】
前記信頼性の低いプロトコルは、ユーザデータグラムプロトコル（ＵＤＰ）である、請求項２３に記載の方法。
【請求項２５】
システムであって、
プロセッサ、及び
前記プロセッサに接続されたメモリを備え、
前記プロセッサは方法を実施するよう構成され、前記方法は、
ユーザ入力間隔の測定時間を含むクライアントレイテンシデータを含むクライアントデバイス情報をクライアントデバイスからサーバにネットワーク接続を介して送信し、
前記ユーザ入力間隔の測定時間を利用して、前記クライアントデバイスで前記ユーザ入力がなされたのと同じ時間差を使って前記サーバで前記ユーザ入力が実施され、前記クライアントレイテンシデータを考慮して選択されたアシスタント出力を前記サーバから受信し、
前記アシスタント出力に対応する補助を前記クライアントデバイスで実施することを含み、
前記アシスタント出力は、ユーザがレイテンシの影響を克服することを支援するよう構成された、システム。
【請求項２６】
具現化されたプロセッサ実行可能命令を内包する非一時的コンピュータ可読媒体であって、前記命令はプロセッサにより実行されると前記プロセッサに方法を実施させ、前記方法は、
ユーザ入力間隔の測定時間を含むクライアントレイテンシデータを含むクライアントデバイス情報をクライアントデバイスからサーバにネットワーク接続を介して送信し、
前記ユーザ入力間隔の測定時間を利用して、前記クライアントデバイスで前記ユーザ入力がなされたのと同じ時間差を使って前記サーバで前記ユーザ入力が実施され、前記クライアントレイテンシデータを考慮して選択されたアシスタント出力を前記サーバから受信し、
前記アシスタント出力に対応する補助を前記クライアントデバイスで実施することを含み、
前記アシスタント出力は、ユーザがレイテンシの影響を克服することを支援するよう構成された、非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ネットワークを介するデータ伝送に関する。特に、本開示の態様は、ネットワーク上で動作するよう構成されたサーバとクライアントデバイスとの間で起こるレイテンシの影響低減システム及び方法に関する。
【背景技術】
【０００２】
デジタルストリーミングサービスや多様なクラウドベースコンピューティングソリューションが普及し、離れたデバイス間で大量のデータを迅速かつ正確に伝送する能力が重要な課題とされる。インタネット、ワイドエリアネットワーク（ＷＡＮ）、またはローカルエリアネットワーク（ＬＡＮ）などのネットワークの共有リソースを介して送信先システムにデジタルデータを送信する場合、一般的に、パケットと呼ばれるフォーマットされたブロックにデータを配置し、パケットは固定長または可変長であってもよい。各データパケットは、一般的に、宛先に配信される基本クライアントデータを有するペイロードまたは本体、さらに、少なくとも部分的にデータパケットのヘッダ内に一般的に含まれるルーティング及び制御用の所定の補足情報を含む。概して、ネットワーク、送信システム及び受信システムは、この補足情報を用い意図する宛先にペイロードを正確かつ確実にルーティング及び配信を行ってもよい。
【０００３】
しかしながら、デジタルストリーミングサービスやクラウドベースコンピューティングソリューションでは、ビデオゲームなどレイテンシに影響されやすいアプリケーションを利用する際、離れたデバイス間でのデータ伝送時に確立または使用するネットワークの品質及び帯域幅に限界が生じ得る。こういった限界は、データ伝送の遅延につながり、そのため一般的にアプリケーションの使用中にムラを生じさせるレイテンシを引き起こす可能性がある。クライアントデバイスは当然多様な方法でレイテンシの低減を図るが、伝送データのデコード速度、レンダリングレート、入力ポーリング、またはクライアントのネットワーク接続などが様々であるため、各クライアントデバイスのレイテンシ量は様々である。
【０００４】
さらに、パケット交換ネットワークを介してデータ伝送する際、パケットロスが避けられない場合が多く、パケットロスとは１以上のデータパケットが宛先に正しく到達しない場合に発生するものである。パケットロスの要因は多様にあり、チャネルの輻輳及び信号の劣化などがある。ネットワークチャネル内の可用帯域幅を効率的に使用しながらも、パケットロスを引き起こす所定のネットワーク状態を防ぐために、多様な輻輳制御技術が開発されている。さらに、パケットロスに対処するツールを組み込み得るトランスポートプロトコルは多様にあり、パケットロスの発生時にパケットロスの対処に使用する方法の特定は、データ伝送中に使用するトランスポートプロトコルの特定次第である。一般的には、こういったトランスポートプロトコルは、信頼性の高いプロトコルと信頼性の低いプロトコルの２種類に分類することができ、どちらにも所定のトレードオフがあり、いずれの場合でも、使用するプロトコルの特定の選択はデータ伝送の特性次第としてもよい。
【０００５】
信頼性の高いプロトコルには、各データパケットが宛先に順に配信され、かつ、パケットロスが起きた時には消失したパケットを再送する、という保証が組み込まれている。信頼性の高いプロトコルは、全てではないが接続指向のプロトコルである場合が多く、通常、特定の通信セッションでは受信側から送信側へのバックチャネルを確立することで、配信保証を行い、受信側は、バックチャネルを使用して何らかの受信確認を送信し、当該パケットが適切に配信されたことを証明してもよい。送信側は、当該データパケットが宛先に適切に届かなかったことが示された場合、こういった確認を用いて再送プロセスを進めてもよい。信頼性の高いプロトコルの普及・周知されている実施例に伝送制御プロトコル（ＴＣＰ）があり、これも接続指向型である。ＴＣＰなど信頼性の高いプロトコルは、正確なデータ伝送が重要であるタスクに適しており、例えば、テキストベースの電子メール送信、デジタルコンテンツのダウンロード、及び、配信先システムでのオーディオ／ビデオのバッファが可能なメディアストリーミングサービスなどの正確なデータパケット配信の証明のためには、ある程度の遅延は許容可能とされる。しかしながら、データ検証プロパティ及びデータ再送ではオーバヘッドが比較的大きくなり、信頼性の高いプロトコルの多くは、オーディオ及び／またはビデオライブストリーミング、オンラインビデオゲーム、及びインタネット電話などのリアルタイムデータ伝送を含む、時間重視のアプリケーションには、望ましくない。
【０００６】
反対に、信頼性の低いプロトコルには一般的に、上記のように特定パケットについてデータ配信証明を行う種類が無く、各パケットが宛先に達することを保証せず、正しい順でのパケット配信を確保しないことを特徴とする。信頼性の低いプロトコルは、全てではないがコネクションレス型であることが多く、通常、特定の通信セッションでは固定チャネルを確立しない。その代わり、各データパケットは、各データパケットに含まれる補足情報に基づいて単独でルーティングされてもよい。信頼性の低いプロトコルの普及・周知されている実施例にユーザデータグラムプロトコル（ＵＤＰ）があり、これもコネクションレス型である。ＵＤＰなどの信頼性の低いプロトコルは、上記の信頼性特性が無いことでオーバヘッドが比較的少なくなっており、上記のリアルタイムアプリケーションなど、レイテンシを最小限にすることが重要であるタイムセンシティブ型アプリケーションにより適している。
【０００７】
重要なことに、ネットワーク状態は時間の経過とともに変化することが多く、ネットワークチャネルを介して送信側が利用できる最大ビットレートは、チャネルの現在負荷に基づき変化する。送信側システムが、チャネルの現可用帯域幅を超えるビットレートでのデータパケット送信を図れば、輻輳状態が発生しそれに伴い重大なパケットロスが起こる可能性がある。ＴＣＰなど、信頼性の高いデータ伝送を伴いタイムセンシティブ性が低いアプリケーションでは、消失データの再送が保証されるため許容され得る。しかしながら、リアルタイムアプリケーションの多く、及び、信頼性の低い伝送を伴う他のアプリケーションでは、受信側が損失データを再構成することができずに信号のドロップアウトといった望ましくない結果を引き起こしかねないため、パケットロスが許容されなくてもよい。一方、使用可能な最大ビットレートが送信側により提供されるビットレートをはるかに超える場合も、ネットワークチャネルの全伝送能力の利用が非効率で、受信側での信号品質が結果として低すぎるため、望ましくない。
【０００８】
許容できないようなパケットロスを招く輻輳状態を起こすことなくネットワークチャネルの可用帯域幅を効率的に利用する方法で、信頼性の低いプロトコルを使用しデータを伝送することが、重要な課題として残る。従来の輻輳制御技術は、送信側へのフィードバックがトランスポート層に組み込まれた、ＴＣＰなどの信頼性の高いプロトコルには、適している場合が多い。しかしながら、ＵＤＰなどの信頼性の低いプロトコルの多くは、クライアントによりトランスポート層に単独で追加されない限り、必要なフィードバックは一般的には行われず、従来の輻輳制御技術の効果は無い。さらに、ＴＣＰまたは他の信頼性の高いプロトコル用に設計された輻輳制御アルゴリズムまたは輻輳回避アルゴリズムは、一般的に高速リアルタイムストリーミングアプリケーションではなく、輻輳となればビットレートが急激に低下し、その結果リアルタイム信号の品質を悪化させる可能性があるため、信頼性の低いプロトコルを含むデータ伝送アプリケーションの多くには適するものでもない。さらに、データ再送にＴＣＰまたは他の信頼性の高いプロトコルを使用する、タイムセンシティブ性の低いアプリケーションでは、ビットレートを輻輳点まで上げたために起こるパケットロスは、許容可能であってもよいが、リアルタイムアプリケーションの多くでは、受信側がデータを再構成できなくなるため、許容できなくてもよい。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
従って、伝送されるデータを暗号化する場合、ＵＤＰ及び他の信頼性の低いトランスポートプロトコルでの使用にも適した、クライアント固有のレイテンシ制約を低減する代替法を講じる技術が必要とされている。本開示の態様は、本範囲内である。
【課題を解決するための手段】
【００１０】
本開示の所定の実施態様によれば、ネットワーク上で動作するよう構成されたサーバ上で実行される方法では、クライアントデバイス情報をクライアントデバイスからサーバでネットワーク接続を介して受信することを含んでもよい。クライアントデバイス情報は、レイテンシデータを含んでもよい。当該方法では、クライアントデバイスレイテンシ情報を考慮したアシスタント出力を判断することを含んでもよい。また、当該方法では、アシスタント出力をサーバからクライアントデバイスに送信することを含んでもよい。クライアントデバイス情報またはアシスタント出力は、暗号化データパケットストリームを含んでもよい。
【００１１】
本開示の所定の実施態様によれば、送信側コンピューティングシステムは、少なくとも１つのプロセッサユニット、及び、少なくとも１つのプロセッサユニットに接続された少なくとも１つのメモリユニットを備えてもよい。少なくとも１つのプロセッサユニット及び少なくとも１つのメモリユニットは、方法を実施するよう構成されてもよい。当該方法では、クライアントデバイス情報をクライアントデバイスからサーバでネットワーク接続を介して受信することを含んでもよい。クライアントデバイス情報は、レイテンシデータを含んでもよい。当該方法では、クライアントデバイスレイテンシ情報を考慮したアシスタント出力を判断することを含んでもよい。また、当該方法では、アシスタント出力をサーバからクライアントデバイスに送信することを含んでもよい。クライアントデバイス情報またはアシスタント出力は、暗号化データパケットストリームを含んでもよい。
【００１２】
本開示の所定の実施態様によれば、非一時的コンピュータ可読媒体は、具現化されたコンピュータ可読命令を内包してもよい。コンピュータ可読命令は、実行されると方法を実施するよう構成されてもよい。当該方法では、クライアントデバイス情報をクライアントデバイスからサーバでネットワーク接続を介して受信してもよい。クライアントデバイス情報は、レイテンシデータを含んでもよい。当該方法では、クライアントデバイスレイテンシ情報を考慮したアシスタント出力を判断することを含んでもよい。また、当該方法では、アシスタント出力をサーバからクライアントデバイスに送信することを含んでもよい。クライアントデバイス情報またはアシスタント出力は、暗号化データパケットストリームを含んでもよい。
【００１３】
本開示の教示は、添付の図面と併せて以下の詳細な説明を検討し容易に理解し得る。
【図面の簡単な説明】
【００１４】
【図１】本開示の所定の態様による、クライアントデバイス側からの例示的なアシスタント出力技術のフロー図である。
【図２】本開示の所定の態様による、例示的なシステムのブロック図である。
【図３】本開示の所定の態様による、クライアント側からの例示的なアシスタント出力技術のフロー図である。
【図４】本開示の所定の態様による、サーバ側からの例示的なアシスタント出力技術のフロー図である。
【発明を実施するための形態】
【００１５】
以下の詳細な説明は、例示のために特定内容を多数含むが、当業者であれば以下の内容に対し多数ある変形及び変更は本発明の範囲内であることを理解するであろう。従って、以下で説明する本開示の例示的な実施態様は、請求する本発明に対し一般性を失うこともなく、また限定するものでもない。
【００１６】
［前書き］
本開示の態様は、ネットワーク上で動作するよう構成されたサーバとクライアントデバイスとの間で起こるレイテンシの影響の低減システム及び方法に関する。
【００１７】
所定の態様によれば、ネットワーク上で動作するよう構成された１以上のサーバは、クライアントデバイス情報を、１以上のクライアントデバイスからサーバでネットワーク接続を介して受信してもよい。クライアントデバイス情報は、レイテンシデータを含んでもよい。１以上のサーバは、クライアントデバイスレイテンシ情報を考慮したアシスタント出力を判断してもよい。また、サーバは、アシスタント出力をサーバからクライアントデバイスに送信してもよい。クライアントデバイス情報またはアシスタント出力は、暗号化データパケットストリームを含んでもよい。
【００１８】
［詳細］
まず図１は、本開示の所定の態様による、受信したクライアントデバイスレイテンシデータに応答した、アシスタント出力のクライアントデバイスへの提供方法の例示的な実施例を示している。具体的には、図１は、本開示の所定の実施態様による、受信したクライアントデバイスレイテンシデータに応答し、アシスタント出力をクライアントデバイスに提供する例示的なプロセスフローを示している。図１での例示的なアシスタント出力提供方法には、図２及び図３に示す方法と共通する１以上の態様があってもよいことに留意する。また、図１の実施例が、本開示に従ったアシスタント出力提供方法の所定の態様のみを示すために単純化した単なる実施例であることに留意することも重要である。
【００１９】
まず、本実施例では、レイテンシが起きているクライアントデバイスにアシスタント出力を提供することに留意することが重要である。しかしながら、別の実施態様では、他の状況下において、アシスタント出力が送信されるか、トリガされてもよい。図１に示すように、１以上のクライアントデバイスからサーバが受信したクライアントデバイス情報１３２に応答してアシスタント出力１４８が提供される方法は通常、１４６で示すように、レイテンシが起きていることをクライアントデバイス情報１３２が示しているか否か次第であってもよい。
【００２０】
所定の態様によれば、クライアントデバイスにレイテンシ１４６が起きているとクライアントデバイス情報１３２が示している場合、サーバは、ユーザがレイテンシの影響を克服するのを支援するために、アシスタント出力１４４をクライアントデバイスに提供すべきであると判断してもよい。これを以下の実施例で示すことができる。ジッタが発生しているネットワークを介して、データがデバイスとサーバとの間で伝送されているとする（例えば、ネットワークを介したパケットレイテンシの経時変動が測定されるレイテンシ変動）。こういったジッタをクライアントデバイスが検出すると、クライアントデバイスは、レイテンシ１４６が発生していることをサーバに報告してもよい。サーバは、この情報を受信すると、レイテンシ度が高く、クライアントデバイス１４４へのアシスタント出力の提供、または、クライアントデバイス１４４によるアシスタント出力の実行が必要であると判断してもよい。アシスタント出力のタイプは、レイテンシ度の高さ次第であってもよい。よって、アシスタント出力１４８として可能性のある一実施例では、サーバは、アシスタント命令をクライアントデバイスに提供してもよい。あるいは、命令をクライアントデバイスにプリロードするか他に保存し、サーバはトリガ信号を送信してもよく、当該トリガ信号は、クライアントデバイスに、プリロード命令を実行させるか他から命令を取得して実行させる。そういった命令は、スクリプト形式であってもよい。本明細書で使用されるように、また、当業者であれば通常理解するように、「スクリプト」は、オペレータにより代替的に順次実行可能な実行タスクを解釈でき（コンパイルする代わりに）自動化が可能な特定のランタイム環境用に記述されたプログラムを指す。アシスタント命令が既にクライアントデバイスにロードされている実施例では、アシスタント出力１４８は、クライアントデバイスに、プリロードされたアシスタント命令の実施をトリガする信号であってもよい。当該信号がレイテンシ量を示す情報を含み、クライアントデバイスがレイテンシ度に応じて実行に適した補助を選択するようにしてもよい。
【００２１】
クライアントデバイスにプリロードされているか、サーバからクライアントに送信されるか、または他からクライアントにより取得されるかにより、アシスタント命令の形式は多様であってもよい。限定ではなく実施例として、ボタンが複数回押下され、各ボタン押下の間隔は１６ｍｓ以内でなければならないといった、クライアントデバイスからの入力が組み合わされる場合を見る。入力スクリプトを補助する場合、この組み合わされたボタン押下を一度のボタン押下に割り付けることも可能である。
【００２２】
アシスタント出力１４８の別の実施例として、サーバは、ユーザによる入力間隔の時間差（ΔＴ）をクライアントデバイスが記録するようアシスタント命令を出すかトリガしてもよい。ユーザによる次の３度の入力が四角、四角、丸の順での３度のボタン押下であり、各入力間隔は１６ｍｓであると仮定する。しかしながら、ネットワークジッタがあるために、サーバはこれらの入力を、四角、四角、丸で、第１及び第２の入力間隔の時間差が１６ｍｓ、第２及び第３の入力間隔の時間差が３３ｍｓであるとして受信する。しかしながら、アシスタント出力命令（例えば、スクリプト）を実行し、クライアントデバイスは、実行された入力間隔のΔＴを記録しサーバに送信してもよい。このため、サーバは、入力だけでなく、クライアントデバイスにおけるΔＴでの入力に関するデータも受信する。よって、サーバは、最初にサーバが受信した入力タイミングではなく、各入力間における適切なΔＴが１６ｍｓであるとしてユーザコマンドを入力する。
【００２３】
いくつかの実施態様では、クライアントデバイスは、実行された入力間隔のΔＴを自動的に記録し、クライアントデバイス情報１３２の一部としてサーバに送信してもよい。その後、サーバは、クライアントデバイスから受信したΔＴ値を、（例えば、差をとることによって）サーバにおける入力の到着時間差と比較でき、レイテンシを判断することができる。その後、サーバは、判断したレイテンシを使用して適切なアシスタント出力１４８を選択してもよい。
【００２４】
所定の態様によれば、クライアントデバイス情報は、暗号化データパケット１３４で送信されてもよい。図１に示すように、サーバは、安全なまたは安全でないネットワーク（例えば、ＵＤＰ）を介して、暗号化データストリーム１３４を受信してもよい。暗号化データストリームの順序がずれて受信される場合、データストリームを正確に解読するためには前方誤り訂正（ＦＥＣ）などの従来方法を実施する必要があろう。しかしながら、本開示の所定の態様によれば、サーバが、伝送順がずれているためにデータストリームの再構成１４０が必要であると判断すれば、サーバは、適切な復号順を保持するために各パケットに含まれるヘッダ情報を使用し、１４２に示すように、復号化の前にデータストリームを再構成してもよい。
【００２５】
図１に示す例示技術は、本開示の所定の態様を強調するために、例示を目的としてのみ提供されていることを強調しておく。実際には、本開示の実施態様について、図１の実施例では示されていない追加検討または代替検討を考慮してもよく、図１に示す簡略化スキームに比べより複雑であってもよい。
【００２６】
図１の実施例から、本開示の所定の態様が、クライアントデバイスに提供され得るアシスタント出力の多様な方法を含むことは理解されよう。クライアントデバイスでユーザ体験のモダリティが変更されてもよい。また、クライアントデバイスに多様なスクリプトが提供されてもよい。いずれの場合でも、ユーザは、アシスタント出力によりレイテンシの影響を克服できる。図１の実施例から、本開示の所定の態様が、パケットヘッダ情報を使って暗号化及び復号化されるデータストリームを多様に含むことは理解されよう。よって、サーバからクライアントデバイスに送信されるデータは暗号化されてもよく、クライアントデバイスは、暗号化されたパケットヘッダ情報を使用し、受信したデータストリームに適した復号化順を形成してもよい。
【００２７】
本開示の態様の所定の実施態様は、アシスタント出力するよう構成されたシステムを含む。限定ではなく実施例として、図２は、少なくとも１つのサーバコンピューティングシステム２０２、及び少なくとも１つのクライアントデバイスコンピューティングシステム２０４を備えた分散コンピューティングシステムを示し、コンピューティングシステム２０２及び２０４は、本開示の所定の態様に従いネットワークを介してデータを伝送するよう構成される。所定の実施態様において、サーバ２０２は、図１及び／または図４について説明する態様と共通する１以上の態様を有するよう指示する命令を実行するよう構成されてもよい。所定の実施態様において、クライアントデバイス２０４は、図１について上記で説明した態様、または図３について以下で説明する態様のうち１以上と共通する１以上の態様を有するよう指示する命令を実行するよう構成されてもよい。サーバ２０２及びクライアントデバイス２０４のいずれかまたは両方は、本明細書に記載の方法の多様な態様の実施に適したソフトウェア及び／またはハードウェアを備え構成されてもよい。サーバ２０２及びクライアントデバイス２０４のいずれかまたは両方は、サーバ、組み込みシステム、携帯電話、パーソナルコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ポータブルゲーム機、ワークステーション、ゲームコンソール、スマートウォッチなどのウェアラブル装置などであってもよい。
【００２８】
所定の実施態様によれば、サーバ２０２はクラウドコンピューティングサーバであってもよく、クライアントデバイス２０４はサーバ２０２のクラウドコンピューティングクライアントであってもよく、クライアントサーバ２０２は、クライアントデバイスにデータストリームを信頼性の低いプロトコルを使用しネットワーク２９９を介して提供するよう構成されてもよい。限定ではなく実施例として、サーバ２０２またはクライアントデバイス２０４のいずれかは、リアルタイムオーディオストリーム、リアルタイムビデオストリーム、リアルタイムオーディオ／ビデオストリームなどのリアルタイムデータストリームを、少なくとも１つのサーバ２０２または少なくとも１つのクライアントデバイス２０４に、インタネットなどのワイドエリアネットワーク（ＷＡＮ）であってもよいネットワーク２９９を介して提供するよう構成されたコンピューティングシステムであってもよい。コンピューティングシステム（サーバ２０２またはクライアントデバイス２０４のいずれか）は、受信側システムに配信されるデータを含んだ暗号化データパケット形式のデータを、ネットワークを介して送信するよう構成されてもよい。例えば、クライアントデバイス２０４は、本開示の多様な態様によれば、これらの暗号化パケットを受信側デバイス２０２に同時に送信してもよい。受信側システム２０２は、暗号化データパケットを復号化してもよく、暗号化データパケットは、パケットの復号順の位置を示すヘッダを含んでもよい。
【００２９】
システム２０２及び２０４のいずれか（すなわち、サーバ２０２、クライアントデバイス２０４、または両方）は、例えばシングルコア、デュアルコア、クワッドコア、マルチコア、プロセッサ−コプロセッサ、セルプロセッサなど周知のアーキテクチャに従って構成され得る、１以上のプロセッサユニット２７０を備えてもよい。また、システム２０２及び２０４のいずれかは、１以上のメモリユニット２７２（例えば、ＲＡＭ、ＤＲＡＭ、ＲＯＭなど）を備えてもよい。プロセッサユニット２７０は、メモリ２７２に保存され得る１以上のプログラム２７４を実行してもよく、プロセッサ２７０は、メモリ２７２に動作可能に接続されてもよく、例えば、データバス２７６を介してメモリにアクセスなどする。メモリユニット２７２はデータ２７７を含んでもよく、プロセッサユニット２７０はプログラム２７４を実行する際、データ２７７を利用してもよい。システム２０２及び２０４のいずれかのデータ２７７は、例えば、サーバ２０２からクライアントデバイス２０４に伝送されたアシスタント出力データ２５６、及び、本開示の多様な態様に従い、クライアントデバイス２０４からサーバ２０２へまたはその逆へのクライアントデバイスレイテンシデータ２５４を任意に含むクライアントデバイス情報２５２を含んでもよい。プログラム２７４は命令を任意に含んでもよく、当該命令は、プロセッサにより実行されると、例えば、図１、図３、及び／または図４の方法と共通した１以上の特徴を有する方法など、安全でないネットワークを介したパケットの復号、またはアシスタント出力２５６の配信に関連する１以上の動作を実施する。例えば、サーバ２０２のプログラム２７４は命令を含んでもよく、図１に示す方法のサーバ側、及び／またはクライアントデバイスレイテンシデータの送信の態様によれば、当該命令は、プロセッサ２７０により実行されると、サーバに、少なくとも１つの受信側デバイス２０４にデータを送信させ、及び／または、クライアントデバイス２０４からのレイテンシデータ２５４に応答してアシスタント出力２５６を提供させる。クライアントデバイス２０４のプログラム２７４は命令を含んでもよく、当該命令は、プロセッサ２７０により実行されると、クライアントデバイスに、プレロードされているかサーバ２０２により提供されるアシスタント出力命令２５６を実行させる。
【００３０】
また、システム２０２及び２０４のいずれかは、例えば、バス２７６を介してシステムの他の構成要素と通信し得る、入出力（Ｉ／Ｏ）回路２７９、電源（Ｐ／Ｓ）２８０、クロック（ＣＬＫ）２８１及びキャッシュ２８２など、周知のサポート回路２７８を備えてもよい。システム２０２及び２０４のいずれかは、任意に、ディスクドライブ、ＣＤ−ＲＯＭドライブ、テープドライブ、フラッシュメモリなどの大容量記憶装置２８４を備えてもよく、大容量記憶装置２８４は、プログラム及び／またはデータを保存してもよい。また、システム２０２及び２０４のいずれかは任意に、ディスプレイユニット２８６を備えてもよい。ディスプレイユニット２８６は、陰極線管（ＣＲＴ）、フラットパネルスクリーン、タッチスクリーン、または、テキスト、数字、図形記号または他の視覚的オブジェクトを表示する他のデバイスの形態であってもよい。また、システム２０２及び２０４のいずれかは、システム２０２／２０４とユーザとの間の対話を容易にするユーザインタフェース２８８を備えてもよい。ユーザインタフェース２８８は、キーボード、マウス、ライトペン、ゲーム制御パッド、タッチインタフェース、または他のデバイスを備えてもよい。また、ユーザインタフェースは、スピーカ及び／またはマイクなどのオーディオＩ／Ｏデバイスを備えてもよい。
【００３１】
ユーザは、ユーザインタフェース２８８を介していずれかのコンピュータシステムと対話してもよい。実施例として、サーバ２０２は、クラウドゲームサーバであってもよく、クライアントデバイス２０４は、クラウドゲームクライアントであってもよく、ビデオゲームのユーザはビデオゲームと対話してもよく、当該ビデオゲームは、サーバ２０２により実行され、ユーザインタフェース２８８を介してクライアント２０４にストリーミングされる。データがサーバからクライアントに伝送される速度は、本開示の態様に従い最適化されて、ユーザ体験を向上させクライアント側で受信する信号の品質を維持してもよい。ユーザインタフェース２８８の一部は、ユーザがシステム２０２／２０４と対話しやすくなるよう、ディスプレイユニット２８６上に表示可能なグラフィカルユーザインタフェース（ＧＵＩ）を備えてもよい。システム２０２／２０４は、Ｗｉ−Ｆｉ、イーサネット（登録商標）ポート、または他の通信方法を使用可能にするよう構成されたネットワークインタフェース２９０を備えてもよい。ネットワークインタフェース２９０は、通信ネットワークを介した通信に適したハードウェア、ソフトウェア、ファームウェアまたはそれらの組み合わせを組み入れてもよく、本開示の所定の態様により信頼性の低いプロトコルを使用するデータ伝送をサポートしてもよい。ネットワークインタフェース２９０は、ローカルエリアネットワーク、及びインタネットなどのワイドエリアネットワークを介した有線または無線通信を実施するよう構成されてもよい。システム２０２及び２０４のいずれかは、ネットワークを介し１以上のデータパケット２９９でデータ及び／またはファイル要求を送受信してもよい。
【００３２】
図３に示すように、１組のクライアントデバイスプラットフォーム命令３７１は、例えば、クライアントデバイスプラットフォーム２０４により実行されてもよい。クライアントデバイスプラットフォーム命令３７１は、メモリ２７２または大容量記憶装置２８４など、非一時的コンピュータ可読媒体上に形成されてもよい。また、クライアントデバイスプラットフォーム命令３７１は、プロセス制御プログラム２７４の一部であってもよい。３７３に示すように、クライアントデバイスプラットフォーム命令３７１は、サーバ２０２に送信されるクライアントデバイス情報２５２にレイテンシデータ２５４を含めるべきとの判断を指示する命令を含んでもよい。命令３７１は、クライアントデバイス情報２５２のサーバ２０２への配信を指示する命令３７４を含んでもよい。クライアントデバイス情報２５２が暗号化パケット形式で送信される場合、後のこれらの命令は任意に、順序がずれてパケットが受信されてもサーバ２０２がパケットを復号化できるようパケット暗号化順情報をパケットヘッダに挿入させる命令を含んでもよい。その後、３７６において、命令はアシスタント出力３５６の受信を指示する命令を含んでもよく、また、受信したアシスタント出力２５６によってトリガされるか、受信したアシスタント出力２５６に含まれるアシスタント命令を実行するよう指示する命令を含んでもよい。アシスタント出力２５６が暗号化パケット形式で受信される場合、後のこれらの命令は任意に、順序がずれてパケットが受信されてもクライアントデバイス２０４がパケットを復号化できるようパケット暗号化順情報をパケットヘッダから抽出する命令を含んでもよい。
【００３３】
図４に示すように、一組のサーバ命令４８１は、例えばサーバ２０２により実施されてもよい。サーバ命令４８１は、メモリ２７２または大容量記憶装置２８４など、非一時的コンピュータ可読媒体上に形成されてもよい。また、サーバ命令４８１は、プロセス制御プログラム２７４の一部であってもよい。４８３で示すように、命令４８１は、クライアントデバイス２０４からクライアントデバイス情報２５２を受信するよう指示する命令を含んでもよい。クライアントデバイス情報２５２が暗号化パケット形式で受信される場合、後のこれらの命令は任意に、順序がずれてパケットが受信されてもサーバ２０２がパケットを復号化できるよう、パケット暗号化順情報をパケットヘッダから検索するよう指示する命令を含んでもよい。その後、４８４において、命令は、クライアントデバイス情報２５２がレイテンシデータ２５４を含んでいるかどうかを判断するよう指示する命令を含んでもよい。さらに、４８６に示すように、レイテンシデータ２５４をクライアントデバイス情報２５２と併せて受信すれば、命令４８１は、クライアントデバイス２０４に配信するアシスタント出力２５６を作成するよう指示する命令を含んでもよい。その後、４８７で、命令は、アシスタント出力２５６をクライアントデバイス２０４に送信するよう指示する命令を含んでもよい。アシスタント出力２５６が暗号化パケット形式で送信される場合、後のこれらの命令は任意に、順序がずれてパケットが受信されてもクライアントデバイス２０４がパケットを復号化できるよう、パケット暗号化順情報をパケットヘッダに挿入するよう指示する命令を含んでもよい。
【００３４】
上記の構成要素は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組み合わせで実施されてもよい。
【００３５】
上記は、本開示の多様な例示的実施態様をまとめて説明しているが、多様な代替物、変形、及び均等物の使用が可能である。したがって、本発明の範囲は、上記の説明により限定されると解釈すべきではなく、添付の特許請求の範囲を参照し均等物の全範囲を併せて判断すべきである。好適であるか否かにかかわらず本明細書に記載した特徴は全て、好適であるか否かにかかわらず本明細書に記載した他のいずれの特徴と組み合わせてもよい。以下の特許請求の範囲において、不定冠詞「ａ」または「ａｎ」は、別段に明示的に記載されている場合を除いて、当該不定冠詞に続く項目の数量が１以上であることを指す。添付の特許請求の範囲は、所与の請求項に「の手段（ｍｅａｎｓ  ｆｏｒ）」または「のステップ（ｓｔｅｐ  ｆｏｒ）」といった言い回しで限定が明記されていない限り、ミーンズ・オア・ステップ・プラス・ファンクションの限定があるとして解釈すべきではない。
【図１】
0006547001.tif 000002
【図２】
0006547001.tif 000003
【図３】
0006547001.tif 000004
【図４】
0006547001.tif 000005