(57)【要約】通信エンドポイント間の代理トランザクションのための技術が説明される。様々な実施形態に従うと、代理トランザクションは、異なる通信エンドポイント間の通信セッションのシミュレーションを表す。少なくともいくつかの実施形態において、代理トランザクションの性能属性が、代理トランザクションの様々な段階中に記録され得る。エラーを軽減させて通信セッション性能を最適化するために、性能属性に基づいて、様々なアクションがとられ得る。
2017523709.tif 000002
【特許請求の範囲】
【請求項１】
通信セッションの性能を最適化するためのシステムであって、
少なくとも１つのプロセッサと、
命令を記憶している１以上のコンピュータ読み取り可能な記憶媒体であって、前記命令は、前記少なくとも１つのプロセッサによる実行に応じて、前記システムに、
シミュレーションシナリオに従って、クライアントデバイスの通信クライアントと通信エンドポイントの通信クライアントとの間で代理トランザクションを開始する命令を受信する動作と、
前記シミュレーションシナリオから、前記代理トランザクションのパラメータを確認する動作であって、前記パラメータは、前記代理トランザクションが実行される対象の１以上の通信エンドポイントと、前記代理トランザクションの一部として適用されるトランザクションパラメータと、を含む、動作と、
前記トランザクションパラメータに従って、前記クライアントデバイスの前記通信クライアントと前記通信エンドポイントの前記通信クライアントとの間で前記代理トランザクションを実行する動作と、
通信セッションの最適化を生じさせるために、前記代理トランザクションの一部として検出された１以上の属性を通信する動作と、
を含む複数の動作を実行させる、１以上のコンピュータ読み取り可能な記憶媒体と、
を備えたシステム。
【請求項２】
前記代理トランザクションを開始する前記命令は、前記クライアントデバイスとの前記通信セッションを含む次回のカレンダイベントを検出したことに応じて受信され、前記トランザクションパラメータは、前記通信セッションの１以上のパラメータをシミュレートする、請求項１記載のシステム。
【請求項３】
前記複数の動作は、
前記クライアントデバイスの前記通信クライアントと前記通信エンドポイントの前記通信クライアントとの間の前記代理トランザクションと並行して、前記クライアントデバイスの前記通信クライアントと少なくとも１つの他の通信エンドポイントの通信クライアントとの間でさらなる代理トランザクションを開始するさらなる命令を受信する動作と、
前記クライアントデバイスの前記通信クライアントと前記通信エンドポイントの前記通信クライアントとの間で前記代理トランザクションを実行することと並行して、前記クライアントデバイスの前記通信クライアントと前記少なくとも１つの他の通信エンドポイントの前記通信クライアントとの間で前記さらなる代理トランザクションを実行する動作と、
をさらに含む、請求項１記載のシステム。
【請求項４】
前記少なくとも１つの他の通信エンドポイントは、複数の異なる通信エンドポイントを含み、前記さらなる代理トランザクションは、前記クライアントデバイスにより開始される、前記複数の異なる通信エンドポイントへのマルチキャスト通信セッションのシミュレーションを含む、請求項３記載のシステム。
【請求項５】
前記複数の動作は、
前記代理トランザクションの性能属性及びメディア品質属性のうちの１以上を含む、前記代理トランザクションの属性を検出する動作と、
前記代理トランザクションの前記属性を記録する動作と、
をさらに含む、請求項１記載のシステム。
【請求項６】
前記シミュレーションシナリオは、音声メディア及びビデオメディアのうちの少なくとも１つを含む通信メディアの１以上のインスタンスを含み、前記代理トランザクションを実行する動作は、前記クライアントデバイスの前記通信クライアントと前記通信エンドポイントの前記通信クライアントとの間で、前記通信メディアの前記１以上のインスタンスを交換する動作を含む、請求項１記載のシステム。
【請求項７】
前記通信エンドポイントは、エンドユーザデバイスの論理的表現である疑似通信エンドポイントを含む、請求項１記載のシステム。
【請求項８】
通信セッションの性能を最適化するための、コンピュータにより実施される方法であって、
クライアントデバイスの通信クライアントと通信エンドポイントの通信クライアントとの間で代理トランザクションを開始するインジケーションを受信するステップと、
前記クライアントデバイス及び前記通信エンドポイントを識別する、前記代理トランザクションについてのシミュレーションシナリオであって、前記代理トランザクションに適用されるパラメータを含む、前記代理トランザクションについてのシミュレーションシナリオを生成するステップと、
前記シミュレーションシナリオに従って、前記クライアントデバイスの前記通信クライアントと前記通信エンドポイントの前記通信クライアントとの間で前記代理トランザクションを開始するように、前記クライアントデバイスに命令するステップと、
通信セッションの最適化を生じさせるために、前記代理トランザクションの１以上の属性を通信するステップと、
を含む方法。
【請求項９】
前記インジケーションは、前記クライアントデバイスの前記通信クライアントと前記通信エンドポイントの前記通信クライアントとの間の周期的にスケジューリングされた代理トランザクションに関して受信される、請求項８記載の方法。
【請求項１０】
前記受信するステップは、
前記通信セッションを含む次回のカレンダイベントを検出するステップと、
前記カレンダイベントのパラメータを確認するステップと、
を含み、
前記生成するステップは、
前記カレンダイベントの前記パラメータに少なくとも部分的に基づいて、前記シミュレーションシナリオを生成するステップ
を含む、請求項８記載の方法。
【請求項１１】
前記命令するステップは、
前記カレンダイベントの前に前記代理トランザクションを開始するように、前記クライアントデバイスに命令するステップ
を含む、請求項１０記載の方法。
【請求項１２】
前記生成するステップは、
以前に記録された通信セッションをシミュレートするように、前記シミュレーションシナリオを生成するステップ
を含む、請求項８記載の方法。
【請求項１３】
前記クライアントデバイスの前記通信クライアントと１以上の他の通信エンドポイントの１以上の通信クライアントとの間でさらなる代理トランザクションを開始するインジケーションを受信するステップと、
前記クライアントデバイス及び前記１以上の他の通信エンドポイントを識別する、前記さらなる代理トランザクションについてのさらなるシミュレーションシナリオであって、前記さらなる代理トランザクションに適用されるパラメータを含む、前記さらなる代理トランザクションについてのさらなるシミュレーションシナリオを生成するステップと、
前記クライアントデバイスの前記通信クライアントと前記通信エンドポイントの前記通信クライアントとの間の前記代理トランザクションと並行して、前記さらなる代理トランザクションを開始するように、前記クライアントデバイスに命令するステップと、
をさらに含む、請求項８記載の方法。
【請求項１４】
前記代理トランザクション及び前記さらなる代理トランザクションは、
前記クライアントデバイスから複数の通信エンドポイントへのマルチキャスト通信セッションのシミュレーションと、
前記クライアントデバイスと複数の通信エンドポイントとの間の会議呼のシミュレーションと、
のうちの少なくとも１つを含む、請求項１３記載の方法。
【請求項１５】
前記代理トランザクションの属性を記録するステップと、
前記代理トランザクションに関与した１以上のエンティティに、前記属性を通信するステップと、
をさらに含む、請求項８記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
現在の通信システムは、異なるサービスとの様々な通信モダリティの統合を含む数々の機能を有する。例えば、インスタントメッセージング、音声／ビデオ通信、データ／アプリケーション共有、ホワイトボーディング、及び他の形態の通信が、サブスクライバについてのプレゼンス情報及び利用可能性情報と組み合わされ得る。そのようなシステムは、様々なステータス分類、緊急連絡先、カレンダ情報、及び比較可能な特徴について発呼側に命令を提供する等の拡張機能を、サブスクライバに提供することができる。さらに、様々なタイプの文書及びコンテンツを作成及び修正することについてユーザが共有及び連携することを可能にする連携システムは、異なる種類の通信機能及び連携機能を提供するマルチモーダル通信システムと統合され得る。そのような統合されたシステムは、時として、統合通信（ＵＣ）システムと呼ばれる。
【０００２】
ＵＣシステムは、通信における増大した柔軟性を与えるが、複数の実装課題も与えている。例えば、ＵＣシステムは、通常、様々な通信をルーティングするために、複数の相互接続されたネットワークを利用する。異なるネットワークは、異なるエンティティにより管理され得るので、独立して管理されるネットワークの間でルーティングされる通信についての通信品質を維持することにおいて問題が生じる。さらに、ＵＣは、通常、例えば、タブレット、スマートフォン、ラップトップ等といったモバイルデバイス上にロードされ得るソフトウェアを介して実施される。したがって、ＵＣ＆Ｃ通信トラフィックを管理するための技術は、通常、変化する接続シナリオに対処するために、流動性を有し動的である必要がある。
【発明の概要】
【０００３】
この発明の概要は、発明を実施するための形態において以下でさらに説明されるコンセプトのうち選択されたコンセプトを簡略化された形で紹介するために提供される。この発明の概要は、特許請求される主題の主要な特徴又は必要不可欠な特徴を特定することを意図するものではないし、特許請求される主題の範囲を決定する際の助けとして使用されることを意図するものでもない。
【０００４】
通信エンドポイント間の代理トランザクション（synthetic  transaction）のための技術が説明される。様々な実施形態に従うと、代理トランザクションは、異なる通信エンドポイント間の通信セッションのシミュレーションを表す。少なくともいくつかの実施形態において、代理トランザクションの性能属性（performance  attribute）が、代理トランザクションの様々な段階中に記録され得る。エラーを軽減させて通信セッション性能を最適化するために、性能属性に基づいて、様々なアクションがとられ得る。
【図面の簡単な説明】
【０００５】
詳細な説明が、添付の図面を参照して記載される。図面において、参照符号の最も左の数字（群）は、その参照符号が最初に現れる図面を識別するものである。説明及び図面における異なる例での同じ参照符号の使用は、類似アイテム又は同一アイテムを示し得る。
【図１】本明細書に記載の技術を使用するよう動作可能な、例示的な実装における環境の図。
【図２】１以上の実施形態に従った、代理トランザクションを実行するための例示的な実施シナリオを示す図。
【図３】１以上の実施形態に従った、複数の異なるデバイス間で代理トランザクションを実施するための例示的な実施シナリオを示す図。
【図４】１以上の実施形態に従った、代理トランザクションの一部として観測された挙動及び性能属性をレポートするための例示的な実施シナリオを示す図。
【図５】１以上の実施形態に従った、代理トランザクションを開始するための方法におけるステップを示すフロー図。
【図６】１以上の実施形態に従った、代理トランザクションを実行するための方法におけるステップを示すフロー図。
【図７】１以上の実施形態に従った、代理トランザクションの属性を記録するための方法におけるステップを示すフロー図。
【図８】１以上の実施形態に従った、代理トランザクションの開始をトリガするための方法におけるステップを示すフロー図。
【図９】１以上の実施形態に従った、シミュレーションシナリオを生成するための方法におけるステップを示すフロー図。
【図１０】本明細書に記載の実施形態を実装するよう構成されている、図１を参照して説明する例示的なシステム及びコンピューティングデバイスを示す図。
【発明を実施するための形態】
【０００６】
概要
通信エンドポイント間の代理トランザクションのための技術が説明される。様々な実施形態に従うと、代理トランザクションは、異なる通信エンドポイント間の通信セッションのシミュレーションを表す。一般に、「通信エンドポイント」とは、音声データ、ビデオデータ、コンテンツ共有、及びこれらの組合せ等の通信メディアの交換を介して通信することができる様々なデバイスを指す。
【０００７】
通信セッションとは、異なる通信エンドポイントのユーザ間のリアルタイム通信セッションの一部として等、通信エンドポイント間の通信メディアの交換を指す。通信セッションの例は、ＶｏＩＰ通話、ビデオ通話、テキストメッセージング、ファイル転送、及び／又はこれらの組合せを含む。少なくともいくつかの実施形態において、通信セッションは、統合通信（ＵＣ）セッションを表す。したがって、代理トランザクションは、通信メディアを入力するユーザが存在することを要することなく、実際の通信セッションの状態をシミュレートする。
【０００８】
様々な実施形態に従うと、代理トランザクションについての様々なトランザクションパラメータを含むシミュレーションシナリオが生成される。そのようなトランザクションパラメータの例は、代理トランザクションの一部として適用及び／又はシミュレートされる、通信エンドポイントについての識別子、メディアタイプ、デバイス設定等を含む。概して、シミュレーションシナリオは、指名呼、会議呼、マルチキャスト呼等といった異なる通信セッションタイプ及び／又は状態をシミュレートすることができる。代理トランザクションは、トランザクションパラメータに基づいて異なる通信エンドポイント間で実行され得る。
【０００９】
様々な実施形態に従うと、代理トランザクションは、様々なトリガイベントに応じて実行され得る。例えば、代理トランザクションは、例えば、異なる通信エンドポイント間の通信品質を判定するために、代理トランザクションを開始させるユーザ入力に応じて実行され得る。
【００１０】
別の例において、代理トランザクションは、次回の（upcoming）カレンダイベントの一部として等の次回のスケジュールされた通信セッションを検出したことに応じてトリガされ得る。例えば、カレンダアプリケーションは、特定の通信エンドポイント間の呼を指定している、カレンダイベントについてのエントリを含み得る。したがって、本明細書に記載の技術を使用して、スケジュールされた通信セッションの様々なパラメータをシミュレートするシミュレーションシナリオを生成することができる。シミュレーションシナリオを使用して、スケジュールされた通信セッションの前に代理トランザクションを実行して、例えば、次回の通信セッション中に経験され得る予想呼品質を確認することができる。代理トランザクション中にセッション問題が検出された場合、次回の通信セッションの品質を向上させるために、是正手段を講じることができる。
【００１１】
さらに別の例において、周期的な代理トランザクションをスケジュールして、異なる通信エンドポイント間の且つ／又は異なる通信パスにわたる通信品質を周期的にテストすることができる。
【００１２】
様々な実施形態に従うと、代理トランザクションの性能属性が、代理トランザクションの様々な段階中に記録され得る。性能属性は、例えば、代理トランザクション中に生じたエラー及び／又は呼品質を示すことができる。エラーを軽減させて通信セッション性能を最適化するために、性能属性に基づいて、様々なアクションがとられ得る。例えば、性能属性は、ネットワークマネージャ、通信サービス、エンドユーザデバイス等といった、代理トランザクションに関与する異なるエンティティに通信され得る。それぞれのエンティティは、性能属性に基づいて、様々な是正プロシージャ及び最適化プロシージャを実施することができる。
【００１３】
以下の説明において、本明細書に記載の技術を使用するよう動作可能な例示的な環境が最初に記載される。次いで、「代理トランザクションパラメータ及び観測」と題されたセクションにおいて、代理トランザクションについてのパラメータ及び代理トランザクションの観測結果を通信するためのいくつかの例示的な態様が説明される。このセクションに続いて、「例示的な実施シナリオ」と題されたセクションにおいて、１以上の実施形態に従ったいくつかの例示的な実施シナリオが説明される。次いで、「例示的なプロシージャ」と題されたセクションにおいて、１以上の実施形態に従ったいくつかの例示的なプロシージャが説明される。最後に、「例示的なシステム及びデバイス」と題されたセクションにおいて、１以上の実施形態に従った、本明細書に記載の技術を使用するよう動作可能な例示的なシステム及びデバイスが説明される。
【００１４】
１以上の実施形態に従った例示的な実装の概要を上記にて提示した。次いで、例示的な実装を用いることができる例示的な環境について検討する。
【００１５】
例示的な環境
図１は、本明細書に記載の通信エンドポイント間の代理トランザクションのための技術を使用するよう動作可能な、例示的な実装における環境１００の図である。概して、環境１００は、多種多様なモダリティを介した通信を可能にする様々なデバイス、サービス、及びネットワークを含む。例えば、環境１００は、ネットワーク１０４に接続されたクライアントデバイス１０２を含む。クライアントデバイス１０２は、従来型コンピュータ（例えば、デスクトップパーソナルコンピュータ、ラップトップコンピュータ等）、移動局、エンターテイメント機器、スマートフォン、ネットブック、ゲームコンソール、ハンドヘルドデバイス（例えば、タブレット）等といった様々な態様で構成され得る。
【００１６】
ネットワーク１０４は、ワイドエリアネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、インターネット等といった様々なタイプの有線ネットワーク、無線ネットワーク、及びこれらの組合せを表す。ネットワーク１０４は、ブロードバンドケーブル、デジタル加入者線（ＤＳＬ）、セルラ、無線データ接続（例えば、ＷｉＦｉ（登録商標））、Ｔ−キャリア（例えば、Ｔ１）、イーサネット（登録商標）等といった多種多様な接続性技術を介して、クライアントデバイス１０２に接続性を提供することができる。
【００１７】
ネットワーク１０４は、ネットワーク１０４のインフラストラクチャ及びアドミニストレーションを提供する異なるエンティティを表すネットワークマネージャ１０６により提供及び／又は管理される。ネットワークマネージャ１０６は、例えば、ネットワーク１０４を実装するためのハードウェア及びロジックを表すネットワークコンポーネント１０８を提供及び保持する。ネットワークコンポーネント１０８の例は、ゲートウェイ、スイッチ、ルータ、ハブ、無線アクセスポイント、ネットワーク要素等を含む。
【００１８】
クライアントデバイス１０２は、クライアントデバイス１０２と通信エンドポイント１１２との間の通信を可能にする機能を表す通信クライアント１１０を含む。概して、通信クライアント１１０は、クライアントデバイス１０２を介した異なる形態の通信を可能にする機能を表す。通信クライアント１１０の例は、音声通信アプリケーション（例えば、ＶｏＩＰクライアント）、ＵＣクライアント、ビデオ通信アプリケーション、メッセージングアプリケーション、コンテンツ共有アプリケーション、及びこれらの組合せを含む。通信クライアント１１０は、例えば、異なる通信モダリティを組み合わせて、多様な通信シナリオを提供することを可能にする。少なくともいくつかの実施形態において、通信クライアント１１０は、クライアントデバイス１０２にインストールされるアプリケーションを表す。追加的又は代替的に、通信クライアント１１０は、例えば、ウェブブラウザ、ウェブアプリケーション等を介してアクセスされる、リモートアプリケーションへのポータルとして実装されてもよい。
【００１９】
環境１００は、クライアントデバイス１０２と通信エンドポイント１１２との間の通信の管理のための様々なタスクを実行するサービスを表す通信サービス１１４をさらに含む。通信サービス１１４は、例えば、通信セッションの開始、調整、及び終了を管理することができる。通信サービス１１４の例は、ＶｏＩＰサービス、オンライン会議サービス、ＵＣサービス等を含む。少なくともいくつかの実施形態において、通信サービス１１４は、クライアントデバイス１０２と通信エンドポイント１１２との間の音声通信を可能にするために、公衆交換電話網（ＰＳＴＮ）と通信するＰＢＸ（private  branch  exchange）として実装され得る、又は、そのようなＰＢＸに接続され得る。
【００２０】
少なくともいくつかの実施形態において、通信クライアント１１０は、通信サービス１１４により管理及び／又はホストされる。例えば、通信クライアント１１０は、通信サービス１１４により提供される通信サービスへのインタフェースを表す。
【００２１】
環境１００は、本明細書に記載の通信エンドポイント間の代理トランザクションのための技術の様々な態様を実行する機能を表すシミュレーションコントローラ１１６をさらに含む。シミュレーションコントローラ１１６は、例えば、クライアントデバイス１０２と通信エンドポイント１１２等の他の通信エンドポイントとの間の様々な通信シナリオをシミュレートする代理通信トランザクション（「代理トランザクション」）を実施することができる。少なくともいくつかの実施形態において、シミュレーションコントローラ１１６は、異なる通信エンドポイント間の様々な態様の通信品質を管理するために、通信サービス１１４により実施される。
【００２２】
シミュレーションコントローラ１１６は、エンドポイントデータベース（ＤＢ）１１８及びシミュレーションシナリオデータベース（ＤＢ）１２０を含む。エンドポイントＤＢ１１８は、クライアントデバイス１０２、通信エンドポイント１１２等といった異なる通信エンドポイントについての情報を記憶する。例えば、エンドポイントＤＢ１１８は、異なるエンドポイントについての識別子を、それらエンドポイントを伴うシミュレートされたトランザクションの結果に関連付ける。シミュレーションシナリオＤＢ１２０は、異なる代理トランザクションを生成するために使用することができるシミュレーションパラメータ及び属性を記憶する。エンドポイントＤＢ１１８及びシミュレーションシナリオＤＢ１２０に関するさらなる詳細は、以下で説明される。
【００２３】
１以上の実施形態に従うと、シミュレーションコントローラ１１６は、様々な代理トランザクションが実施されることを可能にするために、クライアントデバイス１０２上のシミュレータモジュール１２２とインタフェースをとる。例えば、シミュレーションシナリオＤＢ１２０からのシミュレーションシナリオに基づいて、シミュレーションコントローラ１１６は、トランザクションパラメータをシミュレータモジュール１２２に通信する。シミュレータモジュール１２２は、次いで、トランザクションパラメータを使用して、代理トランザクションを実施し、例えば、クライアントデバイス１０２と通信エンドポイント１１２のうちの１つの通信エンドポイント１１２との間の通信セッションをシミュレートすることができる。
【００２４】
クライアントデバイス１０２は、クライアントデバイス１０２についてのイベントスケジューリングタスクを管理する機能を表すカレンダモジュール１２４をさらに含む。例えば、クライアントデバイス１０２のユーザは、カレンダモジュール１２４を利用して、ミーティング、アポイントメント、個人的イベント等といった様々なイベントを作成及び／又は管理することができる。少なくともいくつかの実施形態において、カレンダモジュール１２４は、ユーザが、イベントを作成すること、他のユーザからイベントについての招待を受け取ること、今後のイベントに関するリマインダを受け取ること等を可能にするソフトウェアアプリケーション及び／又はサービスの一部として実装され得る。以下でさらに詳述するように、シミュレータモジュール１２２及び／又はシミュレーションコントローラ１１６は、次回のスケジュールされた通信セッションを検出するために、カレンダモジュール１２４とインタフェースをとることができる。次いで、代理トランザクションが、例えば、通信イベントの考えられる品質属性を検出する等、スケジュールされた通信セッションの様々なパラメータをシミュレートするために実施され得る。
【００２５】
環境１００は、通信エンドポイントをシミュレートする機能を表す疑似エンドポイント（simulated  endpoint）１２６をさらに含む。例えば、疑似エンドポイント１２６は、代理トランザクションが実行され得るエンドユーザデバイスの論理的表現（logical  representation）として実装され得る。シミュレーションコントローラ１１６は、例えば、クライアントデバイス１０２と疑似エンドポイント１２６との間で代理トランザクションを実施して、通信セッションの一部として生じ得る異なる状態をシミュレートすることができる。少なくともいくつかの実施形態において、疑似エンドポイント１２６は、疑似エンドポイント１２６へのユーザ入力とは無関係に、クライアントデバイス１０２及び／又は他の通信エンドポイントとの代理トランザクションに関与するよう構成される。
【００２６】
通信エンドポイント１１２は、クライアントデバイス１０２が通信できるデバイス及び／又は機能を表す。通信エンドポイント１１２は、それぞれの通信クライアント１２８及びシミュレータモジュール１３０を含む。様々な実施形態に従うと、シミュレーションコントローラ１１６は、様々な命令及び／又はシミュレーションパラメータを、クライアントデバイス１０２のシミュレータモジュール１２２及び特定の通信エンドポイント１１２のシミュレータモジュール１３０に、通信することができる。このような命令及びパラメータに基づいて、代理トランザクションが、クライアントデバイス１０２と通信エンドポイント１１２との間で実施され得る。代理トランザクションの性能属性を記録して、クライアントデバイス１０２と通信エンドポイント１１２との間の通信品質を確認することができる。
【００２７】
１以上の実施形態に従うと、シミュレーションコントローラ１１６は、クライアントデバイス１０２と通信エンドポイント１１２との間の通信のためのルーティング情報にアクセスするロジック及び接続を含む。例えば、シミュレーションコントローラ１１６は、例えばネットワークコンポーネント１０８についての、ネットワーク１０４についてのスパニングツリースイッチングトポロジ及び／又はインテリアゲートウェイプロトコル（ＩＧＰ）にアクセスすることができる。これは、シミュレーションコントローラ１１６が、代理トランザクションデータをルーティングすることに関与する異なるネットワークコンポーネント１０８を識別し、代理トランザクションの一部として検出される様々な性能関連現象を生じさせ得る特定のネットワークコンポーネント１０８を識別することを可能にする。様々な実施形態に従うと、シミュレーションコントローラ１１６は、ネットワークデータベース（ＤＢ）１３２の一部として、異なるネットワーク１０４及び／又はネットワークコンポーネント１０８の性能属性を記憶する。
【００２８】
ネットワークＤＢ１３２は、例えば、個々のネットワーク及び／又はコンポーネントにわたるデータフロー品質のインジケーション等の、個々のネットワーク１０４及び／又はネットワークコンポーネント１０８についての性能データを示す。例えば、ネットワーク１０４及び／又はネットワークコンポーネント１０８の各々は、特定のネットワーク１０４を伴う代理トランザクションの一部として検出されたもの等の過去の品質メトリックに基づいて、ネットワークＤＢ１３２において特徴付けられ得る。少なくともいくつかの実施形態において、シミュレーションコントローラ１１６は、ネットワークＤＢ１３２を介し、代理トランザクションの一部として検出された、異なるネットワーク１０４及び／又はネットワークコンポーネント１０８のセッション品質属性に基づいて、ネットワーク１０４のアクティブ状態認識を維持する。少なくともいくつかの実施形態において、特定のネットワークコンポーネント１０８を再構成、修復、又は置換して、ネットワーク１０４の様々な通信パスにわたる通信品質を増大させることを可能にするために、ネットワークＤＢ１３２からのデータが、ネットワークマネージャ１０６に提供され得る。
【００２９】
様々な実施形態に従うと、ネットワークマネージャ１０６は、ネットワーク１０４内で生じた挙動を観測して記録する機能を表す観測モジュール１３４を保持する。例えば、各ネットワークマネージャ１０６は、それぞれのネットワーク１０４にわたって生じた、代理トランザクションについてのデータフローの性能属性を観測して記録する観測モジュール１３４を保持することができる。観測モジュール１３４は、ネットワークＤＢ１３２により記憶されるように、それぞれのネットワーク１０４及び／又はネットワークコンポーネント１０８についての挙動情報を、シミュレーションコントローラ１１６に伝達することができる。少なくともいくつかの実施形態において、観測モジュール１３４は、シミュレーションコントローラ１１６により、それぞれのネットワーク１４０においてデプロイ及び／又はホストされ得る。
【００３０】
環境１００における説明した様々なエンティティ及び機能は、ソフトウェア、ハードウェア、ファームウェア、及び／又はこれらの組合せにより実装され得る。環境１００の様々なエンティティの詳細及び実装に関する詳細が、以下で説明される。
【００３１】
本明細書に記載の技術を動作させることができる例示的な環境を上記にて説明した。次いで、１以上の実施形態に従った、通信システムにおいて通信セッションの様々な属性を伝達する様々な態様を説明する。
【００３２】
代理トランザクションパラメータ及び観測
様々な実施形態に従うと、多種多様なパラメータを含む、代理トランザクションについてのシミュレーションシナリオを生成するための技術が使用され得る。例えば、代理トランザクションの一部として適用される様々なトランザクションパラメータを指定する通知イベントが生成され得る。通知イベントは、本明細書に記載の通信エンドポイント間の代理トランザクションのための技術に従って代理トランザクションを実施するために使用される異なるエンティティに伝達され得る。
【００３３】
少なくともいくつかの実施形態において、通知イベントは、代理トランザクションについてのパラメータを設定して、パラメータを様々なエンティティ（例えば、クライアントデバイス１０２のシミュレータモジュール１２２）に通信するために利用され得るシミュレーションアプリケーションプログラミングインタフェース（ＡＰＩ）を使用して、設定され得る。例えば、通知イベントを介して伝達され得る以下のパラメータについて検討する。
【００３４】
（１）メディアタイプ：このパラメータは、代理トランザクションの一部として送信及び／又はシミュレートされる１以上のメディアタイプを指定するために使用され得る。メディアタイプの例は、音声データ（例えば、オーディオ）、ビデオ、コンテンツ、及びこれらの組合せを含む。
【００３５】
（２）１以上の開始元アドレス：このパラメータは、代理トランザクションを開始するエンドポイントについてのアドレスを指定するために使用され得る。アドレスの例は、媒体アクセス制御（ＭＡＣ）アドレス、インターネットプロトコル（ＩＰ）アドレス、ユーザ名、電話番号等を含む。
【００３６】
（３）１以上の受信側アドレス：このパラメータは、代理トランザクションの一部として「発呼される対象の」エンドポイントについてのアドレスを指定するために使用され得る。少なくともいくつかの実施形態において、例えば、会議呼、マルチキャスト通信イベント等については、複数の受信側アドレスが示され得る。
【００３７】
（４）コーデック：このパラメータは、代理トランザクションを実施するために使用される１以上のコーデックを指定するために使用され得る。
【００３８】
（５）通信クライアント設定：このパラメータは、代理トランザクションの一部として適用及び／又はシミュレートされる様々な通信クライアント設定を指定するために使用され得る。
【００３９】
（６）サービス品質：このパラメータは、代理トランザクションの一部として通信メディアに適用されるサービス品質（ＱｏＳ）を指定するために使用され得る。この属性は、例えば、通信メディアに適用されるＱｏＳマーキングを指定することができる。ＱｏＳマーキングの例は、ベストエフォート（ＢＥ）、緊急転送（ＥＦ）、確認転送（ＡＦ）等を含む。
【００４０】
（７）トランザクションルーティング：このパラメータは、代理トランザクションの一部として使用される特定のルートを指定するために使用され得る。ルートは、例えば、特定のゲートウェイ、サーバ（例えば、ＵＣサーバ）、ＵＣネットワーク等といった、ネットワークコンポーネントの特定のインスタンスの観点で指定され得る。
【００４１】
（８）トランザクションタイプ：このパラメータは、２つのデバイス間の呼、会議呼、呼マルチフォーキング（call  multi-forking）、マルチキャスト呼等といった異なるトランザクションタイプを指定するために使用され得る。
【００４２】
（９）トランザクション挙動：このパラメータは、ユーザにより開始される挙動、通信サービス挙動、デバイス挙動等といった、トランザクション中に且つ／又はトランザクションの一部として生じ得る異なる挙動を指定するために使用され得る。トランザクション挙動の例は、通話の保留、通話ボリュームの調整、通話記録オプションの選択、異なるユーザ及び／又はデバイスへの通話の転送等といった、異なる通信オプションの選択を含む。
【００４３】
（１０）トランザクションタイミング：このパラメータは、代理トランザクションが開始される日付及び／又は時刻、代理トランザクションについての継続時間、代理トランザクション中に生じる特定のイベントについてのタイミング等といった、代理トランザクションの時間的パラメータを指定するために使用され得る。
【００４４】
これらのトランザクションパラメータは、例示の目的のためだけに提示されており、追加的又は代替的に、特許請求される実施形態に応じて、本明細書では明示的に言及していない多種多様なパラメータが使用されてもよいことを理解されたい。
【００４５】
少なくともいくつかの実施形態において、代理トランザクションの一部として観測される挙動を識別する通知イベントが生成され得る。通知イベントは、例えば、観測される代理トランザクション挙動を様々なエンティティに通信するために利用され得る観測ＡＰＩを使用して、設定され得る。例えば、観測ＡＰＩは、代理トランザクションの属性が識別され得るダイアログイベント及びセッションイベントを識別することができる。観測ＡＰＩは、例えば、上記にて詳述したシミュレーションＡＰＩに対する拡張又は代替を表し得る。例えば、通知イベントを介して伝達され得る以下のイベント及び属性について検討する。
【００４６】
ダイアログイベント−これらのイベントは、代理トランザクションの開始、アップデート、及び終了等の、代理トランザクションの様々な部分に適用される。ダイアログイベントは、以下の例示的な属性のうちの１以上の属性を含み得る。
【００４７】
（１）タイムスタンプ：この属性は、代理トランザクションの開始、代理トランザクション中に生じるアップデート、及び代理トランザクションの終了（例えば、終結）についてのタイムスタンプを指定するために使用され得る。
【００４８】
（２）送信元ＩＰアドレス：この属性は、代理トランザクション中のメディアの送信元であるエンドポイント（例えば、代理トランザクションを開始するデバイス）についてのＩＰアドレスを指定するために使用され得る。
【００４９】
（３）送信先ＩＰアドレス：この属性は、代理トランザクションの一部としてメディアを受信するエンドポイントについてのＩＰアドレスを指定するために使用され得る。
【００５０】
（４）トランスポートタイプ：この属性は、代理トランザクションについての１つのトランスポートタイプ又はトランスポートタイプの組合せを指定するために使用され得る。トランスポートタイプの例は、伝送制御プロトコル（ＴＣＰ）、ユーザデータグラムプロトコル（ＵＤＰ）等を含む。
【００５１】
（５）送信元ポート：この属性は、上記にて言及した送信元ＩＰアドレスにより識別される送信元デバイス等の送信元エンドポイントにおけるポートについての識別子を指定するために使用され得る。
【００５２】
（６）送信先ポート：この属性は、上記にて言及した送信先ＩＰアドレスにより識別される送信先デバイス等の送信先エンドポイントにおけるポートについての識別子を指定するために使用され得る。
【００５３】
（７）メディアタイプ：この属性は、代理トランザクションの一部として送信される且つ／又は送信されている１以上のメディアタイプを指定するために使用され得る。本明細書の別の箇所で説明しているように、代理トランザクションは、複数の異なるタイプのメディアを伴い得る。したがって、メディアタイプ属性は、代理トランザクションの一部として交換されるメディアタイプを識別するために使用され得る。
【００５４】
（８）帯域幅推定：この属性は、代理トランザクションの一部として割り当てられる推定帯域幅を指定するために使用され得る。
【００５５】
（９）Ｔｏ：この属性は、代理トランザクションにおいてメディアが送られる先のユーザを識別するために使用され得る。
【００５６】
（１０）Ｆｒｏｍ：この属性は、代理トランザクションにおいてメディアを送る元のユーザを識別するために使用され得る。
【００５７】
（１１）エラーコード：この属性は、代理トランザクションの一部として生じ得るエラーについての様々なエラーコードを指定するために使用され得る。例えば、エラーは、代理トランザクションの開始中に生じるエラー、代理トランザクション中に生じるエラー、代理トランザクションが終了するときに生じるエラー等を含み得る。
【００５８】
トランザクション性能イベント−これらのイベントは、代理トランザクションの一部として観測される様々な挙動及び性能パラメータを指定するために生成及び適用され得る。トランザクション性能イベントは、ダイアログイベントについて上述した属性のうちの１以上の属性を含み得、以下の属性のうちの１以上の属性をさらに含み得る。
【００５９】
（１）平均オピニオン評点（ＭＯＳ）劣化：この属性は、代理トランザクションについてのＭＯＳを指定するために使用され得る。この属性は、例えば、代理トランザクションについての全般的な品質メトリックを示すために使用され得る。
【００６０】
（２）ジッタ到着時間間隔：この属性は、代理トランザクションについてのジッタ値を指定するために使用され得る。
【００６１】
（３）パケット損失率：この属性は、代理トランザクションについてのパケット損失率を指定するために使用され得る。
【００６２】
（４）ラウンドトリップ遅延（ＲＴＤ）：この属性は、代理トランザクションにおけるパケットについてのＲＴＤ値を指定するために使用され得る。
【００６３】
（５）隠匿比率：この属性は、代理トランザクションについて観測される発話時間に対する隠匿時間（concealment  time）の観測される累積比率を示すために使用され得る。
【００６４】
このように、本明細書に記載の様々な通知は、上述した属性のうちの１以上の属性を含み得、そのような属性を様々なエンティティに伝達するために使用され得る。属性のこのリストは、非排他的であり、特許請求される実施形態に応じて、多種多様な他の属性が通信されてもよいことを理解されたい。
【００６５】
代理トランザクションのパラメータ及び観測される挙動を伝達する例示的な態様を上記にて説明した。次いで、１以上の実施形態に従った、通信エンドポイント間の代理トランザクションについてのいくつかの例示的な実施シナリオについて検討する。
【００６６】
例示的な実施シナリオ
このセクションにおいて、１以上の実施形態に従った、通信エンドポイント間の代理トランザクションについての例示的な実施シナリオが説明される。実施シナリオは、上述した環境１００及び／又は任意の他の適切な環境において実施され得る。
【００６７】
図２は、１以上の実施形態に従った、代理トランザクションを実行するための例示的な代理シナリオ２００を示している。シナリオ２００において、シミュレーションコントローラ１１６は、代理トランザクションが生成されて実行されることを示す開始イベント２０２を検出する。開始イベント２０２は、シミュレーションコントローラ１１６へのユーザ入力、自動生成されるイベント、定期のイベント、次回のスケジュールされた通信セッションのインジケーション等といった様々な現象に対応し得る。概して、開始イベント２０２は、シミュレーションシナリオを生成するシミュレーションコントローラ１１６に対するプロンプトに対応する。
【００６８】
開始イベント２０２に応じて、シミュレーションコントローラ１１６は、代理トランザクションの一部として適用及び／又はシミュレートされる様々なパラメータを示すシミュレーションシナリオ２０４を生成する。様々なパラメータの例が上述されている。シミュレーションシナリオ２０４は、例えば、シミュレーションコントローラ１１６へのユーザ入力に基づいて、開始イベント２０２に応じて自動的に等、様々な形で生成され得る。少なくともいくつかの実施形態において、シミュレーションシナリオ２０４は、シミュレーションシナリオＤＢ１２０からの予め設定されたシナリオに対応し得る。代替的又は追加的に、シミュレーションシナリオ２０４は、例えば、検出されたイベント又は状態に基づいて、動的に生成されてもよい。
【００６９】
シナリオ２００を続けると、シミュレーションコントローラ１１６は、シミュレーションシナリオ２０４をクライアントデバイス１０２に通信する。シミュレータモジュール１２２は、シミュレーションシナリオ２０４を解析して、シミュレーションシナリオ２０４において指定されている様々なトランザクションパラメータを識別する。シミュレーションシナリオ２０４は、例えば、通信クライアント１１０が代理トランザクションを開始する対象の通信エンドポイント１１２の１以上の特定のインスタンスを識別する。
【００７０】
様々な実施形態に従うと、シミュレーションコントローラ１１６はまた、代理トランザクションの一部としてデータをルーティングすることに関与し得るとシミュレーションコントローラ１１６が判定した特定のネットワークマネージャ１０６に、トランザクション通知２０６を通信する。トランザクション通知２０６は、例えば、それぞれのネットワーク１０４についての観測モジュール１３４に、代理トランザクションが開始されていること、及び、観測モジュール１３４が、それぞれのネットワークコンポーネント１０８にわたる代理トランザクションについてのデータフロー挙動を観測して記録すべきこと、を通知する。トランザクション通知２０６は、観測モジュール１３４が、代理トランザクションのデータを、他のデータフローと区別することを可能にする様々な情報（例えば、クライアントデバイス１０２及び通信エンドポイント１１２についての識別子、代理トランザクション（例えば、パケット識別子）のデータを識別するストリーム識別子等）を含む。
【００７１】
シナリオ２００を続けると、シミュレーションコントローラ１１６は、代理トランザクションが開始される対象の通信エンドポイント１１２のシミュレータモジュール１３０に、エンドポイントシナリオ２０８を通信する。エンドポイントシナリオ２０８は、例えば、シミュレータモジュール１３０に、代理トランザクションがクライアントデバイス１０２と通信エンドポイント１１２との間で開始されていることを通知する。例えば、エンドポイントシナリオ２０８は、クライアントデバイス１０２を識別し、通信エンドポイント１１２が、クライアントデバイス１０２から、例えば、通信セッションを開始する要求といった通信を受信することになることを示す。
【００７２】
エンドポイントシナリオ２０８は、シミュレーションシナリオ２０４の複製であり得る。例えば、シミュレーションシナリオ２０４は、代理トランザクションの一部として適用される、クライアントデバイス１０２についてのトランザクションパラメータ及び通信エンドポイント１１２についてのトランザクションパラメータを指定することができる。代替的に、エンドポイントシナリオ２０８は、シミュレーションシナリオ２０４と異なってもよく、特に通信エンドポイント１１２に合わせて生成されてもよい。
【００７３】
シナリオ２００を続けると、シミュレータモジュール１２２は、通信クライアント１１０とインタラクトして、通信クライアント１１０と通信エンドポイント１１２の通信クライアント１２８との間で代理トランザクションを開始する。シミュレータモジュール１２２は、例えば、通信クライアント１１０へのユーザ入力をシミュレートして、代理トランザクション２１０を開始する。少なくともいくつかの実施形態において、通信クライアント１１０は、シミュレータモジュール１２２から受信された入力が、クライアントデバイス１０２への実際のユーザ入力をシミュレートするという点で、代理トランザクションが「代理」であることを認識することがない。
【００７４】
概して、代理トランザクション２１０は、クライアントデバイス１０２と通信エンドポイント１１２との間の通信メディアの交換を表す。代理トランザクション２１０は、例えば、通信エンドポイントのユーザ間のリアルタイム通信セッションをシミュレートする通信メディアのリアルタイム交換である。通信メディアは、シミュレーションシナリオ２０４及び／又はエンドポイントシナリオ２０８の一部として含まれ得る。代替的又は追加的に、通信メディアは、クライアントデバイス１０２及び／又は通信エンドポイント１１２により生成されてもよい。シミュレーションシナリオ２０４及びエンドポイントシナリオ２０８により指定される他のパラメータ及び挙動も、代理トランザクション２１０の一部として適用され得る。他のパラメータ及び挙動の例は上述されている。
【００７５】
様々な実施形態に従うと、シナリオ２００を使用して、例えば、通信エンドポイント１１２に加えて又は通信エンドポイント１１２に代えて、クライアントデバイス１０２と疑似エンドポイント１２６との間で代理トランザクションを開始することができる。例えば、シミュレーションシナリオ２０４は、疑似エンドポイント１２６についてのネットワークアドレス及び／又は他の識別子等により、疑似エンドポイント１２６を識別することができる。したがって、クライアントデバイス１０２は、通信エンドポイント１１２との代理トランザクション２１０を開始するのに実行されるのと同様の方法で、疑似エンドポイント１２６との代理トランザクション２１０を開始することができる。少なくともいくつかの実施形態において、シミュレーションコントローラ１１６は、様々なエンドポイント挙動をシミュレートするように疑似エンドポイント１２６を制御することができる。代替的又は追加的に、疑似エンドポイント１２６は、疑似エンドポイント１２６が、実際の通信エンドポイントとのインタラクションをシミュレートするように疑似エンドポイント１２６自身を制御することを可能にする集積ロジックを含んでもよい。したがって、クライアントデバイス１０２は、ユーザにより制御される実際の通信エンドポイント１１２と通信するように、疑似エンドポイント１２６と通信することができる。
【００７６】
実施シナリオ４００を参照して以下で詳述するように、代理トランザクション２１０を取り巻く様々な挙動データが、代理トランザクション２１０に関与するエンティティにより収集される。
【００７７】
２つのエンドポイント間の代理トランザクションに言及しながらシナリオ２００を説明したが、本明細書に記載の技術を使用して、多くの異なるデバイス間で代理トランザクションを開始して実行することができることを理解されたい。例えば、以下の例示的なシナリオについて検討する。
【００７８】
図３は、複数の異なるデバイス間で代理トランザクションを実施するための例示的な実施シナリオ３００を示している。シナリオ３００において、シミュレーションコントローラ１１６は、代理トランザクションが生成されてクライアントデバイス１０２と複数の通信エンドポイントとの間で実行されることを示す開始イベント３０２を検出する。様々なタイプの開始イベントは上述されている。
【００７９】
開始イベント３０２に応じて、シミュレーションコントローラ１１６は、代理トランザクションについての様々なパラメータを示すシミュレーションシナリオ３０４を生成する。様々なパラメータの例は上述されている。シミュレーションシナリオ３０４は、クライアントデバイス１０２と、通信エンドポイント３０６ａ、通信エンドポイント３０６ｂ、及び通信エンドポイント３０６ｎと、の間で代理トランザクションが実施されるべきであることを指定する。通信エンドポイント３０６ａ〜３０６ｎの各々は、上述した通信エンドポイント１１２の実装例を表す。したがって、ここでは明示されないが、通信エンドポイント３０６ａ〜３０６ｎの各々は、通信エンドポイント１２８及びシミュレータモジュール１３０のそれぞれのインスタンスを含む。
【００８０】
シミュレーションシナリオ３０４は、例えば、シミュレーションコントローラ１１６へのユーザ入力に基づいて、開始イベント３０２に応じて自動的に等、様々な形で生成され得る。少なくともいくつかの実施形態において、シミュレーションシナリオ３０４は、シミュレーションシナリオＤＢ１２０からの予め設定されたシナリオに対応し得る。代替的又は追加的に、シミュレーションシナリオ３０４は、例えば、検出されたイベント又は状態に基づいて、動的に生成されてもよい。
【００８１】
シナリオ３００を続けると、シミュレーションコントローラ１１６は、シミュレーションシナリオ３０４をクライアントデバイス１０２に通信する。シミュレータモジュール１２２は、シミュレーションシナリオ３０４を解析して、シミュレーションシナリオ３０４において指定されている様々なトランザクションパラメータを識別する。シミュレーションシナリオ３０４は、例えば、通信エンドポイント３０６ａ〜３０６ｎを識別する。
【００８２】
様々な実施形態に従うと、シミュレーションコントローラ１１６はまた、代理トランザクションの一部としてデータをルーティングすることに関与し得るとシミュレーションコントローラ１１６が判定した特定のネットワークマネージャ１０６に、トランザクション通知３０８を通信する。トランザクション通知３０８は、例えば、それぞれのネットワーク１０４についての観測モジュール１３４に、代理トランザクションが開始されていること、及び、観測モジュール１３４が、それぞれのネットワークコンポーネント１０８にわたる代理トランザクションについてのデータフロー挙動を観測して記録すべきこと、を通知する。トランザクション通知３０８は、観測モジュール１３４が、代理トランザクションのデータを、他のデータフローと区別することを可能にする様々な情報（例えば、クライアントデバイス１０２及び通信エンドポイント３０６ａ〜３０６ｎについての識別子、それぞれの代理トランザクション（例えば、パケット識別子）のデータを識別するストリーム識別子等）を含む。
【００８３】
シミュレーションコントローラ１１６はまた、それぞれの通信エンドポイント３０６ａ〜３０６ｎのシミュレータモジュールに、エンドポイントシナリオ３１０を通信する。概して、エンドポイントシナリオ３１０は、代理トランザクションの一部として通信エンドポイント３０６ａ〜３０６ｎにより適用される様々なパラメータを指定する。エンドポイントシナリオ３１０は、例えば、代理トランザクションの一部として交換されるメディアを含み得る。様々な実施形態に従うと、エンドポイントシナリオ３１０は、複製であり得、例えば、各々は、同じ情報及び属性を含み得る。代替的に、エンドポイントシナリオ３１０のうちの少なくとも一部は、エンドポイントシナリオ３１０のうちの他のエンドポイントシナリオ３１０とは異なる情報及び／又は属性を含んでもよい。したがって、それぞれの通信エンドポイント３０６ａ〜３０６ｎのシミュレータモジュールは、エンドポイントシナリオ３１０を解析して、代理トランザクションについての様々なパラメータを確認する。
【００８４】
シナリオ３００を続けると、シミュレータモジュール１２２は、通信クライアント１１０とインタラクトして、通信クライアント１１０とそれぞれの通信エンドポイント３０６ａ〜３０６ｎの通信クライアントとの間で代理トランザクション３１２ａ、３１２ｂ、３１２ｎを開始する。シミュレータモジュール１２２は、例えば、通信クライアント１１０へのユーザ入力をシミュレートして、代理トランザクション３１２ａ〜３１２ｎを開始する。少なくともいくつかの実施形態において、通信クライアント１１０は、シミュレータモジュール１２２から受信された入力が、クライアントデバイス１０２への実際のユーザ入力をシミュレートするという点で、代理トランザクション３１２ａ〜３１２ｎが「代理」であることを認識することがない。概して、代理トランザクション３１２ａ〜３１２ｎは、並行代理トランザクション及び／又は同時代理トランザクションを表すことができる。
【００８５】
代理トランザクション３１２ａ〜３１２ｎは、例えば、シミュレーションシナリオ３０４及びそれぞれのエンドポイントシナリオ３１０により指定されているメディア及び属性に応じた、クライアントデバイス１０２とそれぞれの通信エンドポイント３０６ａ〜３０６ｎとの間の通信メディアの交換を表す。
【００８６】
４つのエンドポイント（例えば、クライアントデバイス１０２及び通信エンドポイント３０６ａ〜３０６ｎ）間の代理トランザクションに言及しながらシナリオ３００を説明したが、本明細書に記載の技術を使用して、例えば、数百個の通信エンドポイント、数千個の通信エンドポイント等といった多くの通信エンドポイントとの並行代理トランザクションを開始することができることを理解されたい。例えば、シナリオ３００は、複数のパーティ間のエンタープライズミーティングのシミュレーション等の会議呼及び／又はマルチキャスト通信イベントのシミュレーションの一部として実施され得る。少なくともいくつかの実施形態において、シナリオ３００は、例えば、通信エンドポイント３０６ａ〜３０６ｎに加えて、クライアントデバイス１０２と疑似エンドポイント１２６との間の代理トランザクションを含むように実施され得る。
【００８７】
図４は、１以上の実施形態に従った、代理トランザクションの一部として観測された挙動及び性能属性をレポートするための例示的な実施シナリオ４００を示している。少なくともいくつかの実施形態において、シナリオ４００は、上述したシナリオ２００及び／又はシナリオ３００の続きを表す。
【００８８】
シナリオ４００において、クライアントデバイス１０２は、トランザクションレポート４０２をシミュレーションコントローラ１１６に通信する。概して、トランザクションレポート４０２は、代理トランザクションの一部として観測された様々な挙動及び性能属性を含む。トランザクションレポート４０２において指定される挙動及び属性の例は、キューハンドリング、クライアントデバイス１０２の構成、データルーティング、失敗ハンドリング属性、ジッタ属性、パケット待ち時間、パケット損失等を含む。トランザクションレポート４０２には、例えば、上述した通知イベント及び／又は観測ＡＰＩに少なくとも部分的に基づく属性及び値を投入することができる。
【００８９】
様々な実施形態に従うと、トランザクションレポート４０２は、様々な方法で生成及び通信され得る。例えば、シミュレータモジュール１２２は、代理トランザクションの開始中、実行中、及び終了中に、異なる属性及び値をトランザクションレポート４０２に投入することができる。例えば、クライアントデバイス１０２は、代理トランザクションの終了後に、トランザクションレポート４０２をシミュレーションコントローラ１１６に通信することができる。
【００９０】
代替的又は追加的に、トランザクションレポート４０２は、例えば、代理トランザクションの開始中、実行中、及び／又は終了中等といった、代理トランザクションの異なる段階中に、動的にシミュレーションコントローラ１１６に通信されてもよい。例えば、トランザクションレポート４０２の異なるインスタンスが、代理トランザクションの異なる時点において、シミュレーションコントローラ１１６に（例えば、周期的に）通信されてもよく、ここで、個々のトランザクションレポート４０２は、代理トランザクションの直近に観測された挙動及び属性に基づいてアップデートされる。
【００９１】
シナリオ４００を続けると、通信エンドポイント１１２は、エンドポイントレポート４０４をシミュレーションコントローラ１１６に通信する。様々な実施形態に従うと、エンドポイントレポート４０４は、代理トランザクションの一部として通信エンドポイント１１２において観測された様々な属性及び挙動を含む。エンドポイントレポート４０４には、例えば、トランザクションレポート４０２と同様に、通信エンドポイント１１２において観測された値及び属性を投入することができ、且つ／又は、トランザクションレポート４０２と同様に、エンドポイントレポート４０４を通信することができる。
【００９２】
シナリオ４００を続けると、ネットワークマネージャ１０６は、ネットワークレポート４０６をシミュレーションコントローラ１１６に通信する。様々な実施形態に従うと、ネットワークレポート４０６は、代理トランザクションの一部としてネットワークマネージャ１０６により観測された様々な属性及び挙動を含む。ネットワークレポート４０６には、例えば、トランザクションレポート４０２と同様に、ネットワークマネージャ１０６により観測された値及び属性を投入することができ、且つ／又は、トランザクションレポート４０２と同様に、ネットワークレポート４０６を通信することができる。複数のネットワークが代理トランザクションに関与する実施形態において、関与するネットワークについての各ネットワークマネージャ１０６は、それぞれのネットワーク１０４において観測された属性及び挙動が投入された個々のそれぞれのネットワークレポート４０６を通信することができる。
【００９３】
様々な実施形態に従うと、シミュレーションコントローラ１１６は、異なるレポートを受信し、様々な方法でこれらのレポートを処理する。例えば、トランザクションレポート４０２及びエンドポイントレポート４０４からの情報は、エンドポイントＤＢ１１８に伝達され得る。エンドポイントＤＢ１１８における、クライアントデバイス１０２についてのエントリには、トランザクションレポート４０２からの情報を投入することができる。さらに、エンドポイントＤＢ１１８における、通信エンドポイント１１２についてのエントリには、エンドポイントレポート４０４からの情報を投入することができる。したがって、シミュレーションコントローラ１１６は、代理トランザクションの一部として異なるデバイス及び／又はエンドポイントにおいて観測された属性及び挙動をトラッキングすることができる。さらに、エンドポイントＤＢ１１８を使用して、複数の異なる代理トランザクションにわたり時間期間にわたる異なるデバイス及びエンドポイントの過去の性能をトラッキングすることができる。
【００９４】
シミュレーションコントローラ１１６はまた、ネットワークレポート４０６からの情報を、ネットワークＤＢ１３２に伝達する。ネットワークＤＢ１３２における、代理トランザクションに関与した特定のネットワーク１０４についてのエントリには、ネットワークレポート４０６からの情報を投入することができる。したがって、シミュレーションコントローラ１１６は、代理トランザクションの一部として異なるネットワーク１４０において観測された属性及び挙動をトラッキングすることができる。複数のネットワーク１０４が代理トランザクションに関与した場合、シミュレーションコントローラ１１６は、異なるネットワークから受信されたネットワークレポート４０６からの情報を、ネットワークＤＢ１３２における、それぞれのネットワーク１０４についてのエントリに投入することができる。少なくともいくつかの実施形態において、ネットワークＤＢ１３２を使用して、複数の異なる代理トランザクションにわたり時間期間にわたる異なるネットワークの過去の性能をトラッキングすることができる。
【００９５】
１以上の実施形態に従うと、シナリオ４００の一部として生成される異なるレポートは、図２を参照して上述した代理トランザクション２１０といった１つの代理トランザクションに従って生成される。したがって、代理トランザクションの包括的でエンドツーエンドな観点を提供するために、異なるレポートからの情報が集約され得る。
【００９６】
（例えば、図３を参照して説明したように）複数の代理トランザクションが並行して実行される実施形態において、異なる代理トランザクションに基づいて生成されたレポートは、例えば、異なる関連代理トランザクションをリンクするトランザクション識別子に基づいて、リンクされ得る。したがって、関連代理トランザクションの全般的な観点を提供するために、異なるリンクされたレポートからの情報が集約され得る。
【００９７】
シナリオ４００を続けると、異なるレポートからの情報は、異なるエンティティに伝達され得る。例えば、シミュレーションコントローラ１１６は、代理トランザクションについてそれぞれのネットワーク１０４を利用した異なるデバイス及び／又はエンドポイントにおいて観測された挙動及び性能属性を、異なるネットワークマネージャ１０６に通知することができる。さらに、クライアントデバイス１０２には、ネットワーク及び／又はエンドポイントの挙動及び属性を通知することができる。また、通信エンドポイント１１２には、それぞれのネットワーク１０４及びクライアントデバイス１０２において観測された挙動及び属性を通知することができる。したがって、本明細書に記載の技術により可能にされる、代理トランザクションの挙動及び属性のエンドツーエンドな認識が、代理トランザクションに関与するエンティティに伝達され得る。そのような認識は、エンティティそれぞれの役割の範囲において性能問題を軽減させて性能品質を増大させるために、個々のエンティティが、コンポーネント、設定、及び／又はプロセスを修復及び／又は最適化することを可能にする。
【００９８】
いくつかの例示的な実施シナリオを上記にて説明した。次いで、１以上の実施形態に従ったいくつかの例示的なプロシージャについて検討する。
【００９９】
例示的なプロシージャ
以下の説明では、１以上の実施形態に従った、通信エンドポイント間の代理トランザクションのためのいくつかの例示的なプロシージャが記載される。これらの例示的なプロシージャは、図１の環境１００、図１０のシステム１０００、及び／又は任意の他の適切な環境において使用され得る。これらのプロシージャは、例えば、上述した例示的な実施シナリオを実施するためのプロシージャを表す。少なくともいくつかの実施形態において、様々なプロシージャについて説明されるステップは、ユーザインタラクションとは無関係に自動的に実施され得る。
【０１００】
図５は、１以上の実施形態に従った方法におけるステップを示すフロー図である。この方法は、１以上の実施形態に従った、代理トランザクションを開始するための例示的なプロシージャを示している。
【０１０１】
ステップ５００は、クライアントデバイスの通信クライアントと通信エンドポイントの通信クライアントとの間で代理トランザクションを開始するインジケーションを受信する。様々な実施形態に従うと、インジケーションは、生じた様々なイベント及び状態に基づいて受信され得る。インジケーションは、例えば、通信セッションを含む次回のカレンダイベントを検出したことを含み得る。別の例において、ユーザは、代理トランザクションを開始させる入力を提供することができる。少なくともいくつかの実施形態において、代理トランザクションは、例えば、通信回線の挙動及び属性をテストするために、周期的に自動的に実行されるようにスケジュールされ得る。
【０１０２】
ステップ５０２は、クライアントデバイス及び通信エンドポイントを識別する、代理トランザクションについてのシミュレーションシナリオであって、代理トランザクションに適用されるパラメータを含む、代理トランザクションについてのシミュレーションシナリオを生成する。概して、シミュレーションシナリオは、代理トランザクションに関与する様々な通信エンドポイント及びデバイスを指定する。シミュレーションシナリオはまた、適用される設定（例えば、デバイス及び／又は通信クライアントの設定）、交換される通信メディアの１以上のタイプ、シミュレートされる挙動（例えば、ユーザ挙動）、代理トランザクションについてのタイミングパラメータ等といった、代理トランザクションについての様々なパラメータを指定する。少なくともいくつかの実施形態において、シミュレーションシナリオは、音声データ、ビデオデータ、コンテンツ等といった、代理トランザクションの一部として交換される通信メディアを含む。
【０１０３】
ステップ５０４は、シミュレーションシナリオに従って、クライアントデバイスの通信クライアントと通信エンドポイントの通信クライアントとの間で代理トランザクションを開始するように、クライアントデバイスに命令する。シミュレーションシナリオのパラメータは、例えば、クライアントデバイスに通信される。少なくともいくつかの実施形態において、シミュレーションコントローラは、シミュレーションシナリオに従って代理トランザクションを実施させる通知をクライアントデバイスに通信する。
【０１０４】
ステップ５０６は、受信側通信エンドポイントに、代理トランザクションを通知する。例えば、代理トランザクションの様々な属性を含む通知が、代理トランザクションが開始される対象の１以上の通信エンドポイントに通信される。少なくともいくつかの実施形態において、様々なエンドポイント固有の挙動及びトランザクション属性を指定したエンドポイントシナリオが、通信エンドポイントに通信される。エンドポイントシナリオは、例えば、代理トランザクションの一部として受信側通信エンドポイントにより開始元デバイスに通信される通信メディアを含み得る。
【０１０５】
図６は、１以上の実施形態に従った方法におけるステップを示すフロー図である。この方法は、１以上の実施形態に従った、代理トランザクションを実行するための例示的なプロシージャを示している。
【０１０６】
ステップ６００は、シミュレーションシナリオに従って、クライアントデバイスと通信エンドポイントとの間で代理トランザクションを開始する命令を受信する。命令は、例えば、クライアントデバイスの通信クライアントと通信エンドポイントの通信クライアントとの間で代理トランザクションを開始する命令を示す。例えば、クライアントデバイスは、シミュレーションコントローラからこの命令を受信する。代替的又は追加的に、命令は、例えば、代理トランザクションを開始するデバイスといったクライアントデバイスにより生成されてもよい。
【０１０７】
ステップ６０２は、シミュレーションシナリオから、代理トランザクションについてのパラメータを確認する。クライアントデバイスは、例えば、シミュレーションシナリオを解析して、代理トランザクションが開始される対象の１以上の通信エンドポイントを識別する。クライアントデバイスは、さらに、代理トランザクションについて使用される様々なトランザクションパラメータを識別することができる。
【０１０８】
ステップ６０４は、シミュレーションシナリオのトランザクションパラメータに従って、クライアントデバイスと通信エンドポイントとの間で代理トランザクションを実行する。代理トランザクションは、例えば、クライアントデバイスの通信クライアントと通信エンドポイントの通信クライアントとの間で実行される。例えば、クライアントデバイスは、通信セッションを開始する要求を、通信エンドポイントに通信する。少なくともいくつかの実施形態において、この要求は、例えば、クライアントデバイスとのＶｏＩＰ呼及び／又は他の通信セッションに参加することを求める標準的な発呼要求として実装され得る。クライアントデバイスは、次いで、シミュレーションシナリオにより指定されている且つ／又はシミュレーションシナリオに含まれている通信メディアを、通信エンドポイントと交換する。代理トランザクションの一部として実行される挙動及びイベント等の、シミュレーションシナリオにより指定されている様々なトランザクションパラメータも実施される。そのようなトランザクションパラメータの例は上述されている。
【０１０９】
様々な実施形態に従うと、この方法は、クライアントデバイスから複数の異なる通信エンドポイントへのマルチキャスト通信セッションのシミュレーションの一部として等、複数の異なる通信エンドポイントとの複数の並行代理トランザクションを開始するために実行され得る。
【０１１０】
図７は、１以上の実施形態に従った方法におけるステップを示すフロー図である。この方法は、１以上の実施形態に従った、代理トランザクションの属性を記録するための例示的なプロシージャを示している。少なくともいくつかの実施形態において、この方法は、図６を参照して上述した方法の例示的な拡張を示す。この方法は、通信エンドポイント、シミュレーションコントローラ、ネットワークマネージャ等といった、代理トランザクションに関与した且つ／又は代理トランザクションに関連付けられた様々なエンティティにより実行され得る。
【０１１１】
ステップ７００は、代理トランザクションの属性を検出する。概して、属性は、シミュレートされたユーザ入力、マシンにより生成されたイベント等といった、代理トランザクション中に生じた挙動及びイベントを含む。様々な実施形態に従うと、属性はまた、代理トランザクション中に利用された帯域幅、パケット待ち時間、ジッタ、遅延等といった性能属性を含む。属性は、代理トランザクションの開始時、実行時、及び終了時等の、代理トランザクションの様々な時点において検出され得る。
【０１１２】
少なくともいくつかの実施形態において、検出される属性は、通信セッションの一部としてユーザエクスペリエンスに関連する属性等のメディア品質属性を含み得る。メディア品質属性の例は、音質、音声明瞭度、ビデオ品質、メディアタイプ間及び／又は通信エンドポイント間の同期品質等を含む。
【０１１３】
ステップ７０２は、代理トランザクションの属性を記録する。属性は、例えば、当該代理トランザクションを、他の代理トランザクション及び／又は通信セッションと区別するトランザクション識別子とともに記録される。また、属性には、個々の属性が検出された、代理トランザクション中の時刻を示すために、タイムスタンプが付与され得る。属性は、例えば、代理トランザクションの開始時、実行時、又は終了時に検出されたものとしてタグ付けされ得る。
【０１１４】
ステップ７０４は、代理トランザクションの属性を通信する。属性は、例えば、代理トランザクションに関与したエンティティ等の様々なエンティティに通信され得る。少なくともいくつかの実施形態において、属性は、上述した通知イベント及び／又は観測ＡＰＩを介して通信され得る。
【０１１５】
少なくともいくつかの実施形態において、本明細書に記載の技術を使用して、代理トランザクションの検出された属性に応じてなされた変更をテストすることができる。例えば、代理トランザクション中に検出された性能問題に基づいて、通信性能を修復及び／又は最適化するために、デバイス属性及び／又はネットワーク属性が変更され得る。属性が変更された後、通信性能を修復及び／又は最適化するために変更が効果的であったかどうかを確認するために、代理トランザクションが、再度実行され得る。
【０１１６】
図８は、１以上の実施形態に従った方法におけるステップを示すフロー図である。この方法は、１以上の実施形態に従った、代理トランザクションの開始をトリガするための例示的なプロシージャを示している。少なくともいくつかの実施形態において、この方法は、図５を参照して上述したステップ５００の例示的な実施例を示している。
【０１１７】
ステップ８００は、通信セッションを含む次回のカレンダイベントを検出する。カレンダイベントは、例えば、電話会議、ビデオ会議、ＵＣセッション等を含み得る。カレンダイベントは、様々な形で検出され得る。例えば、環境１００を参照すると、シミュレータモジュール１２２は、カレンダモジュール１２４からカレンダイベントを検出することができる。カレンダイベントは、例えば、カレンダイベントを識別するカレンダモジュール１２４へのクエリ及び／又はカレンダイベントを識別するカレンダモジュール１２４からの通知に基づいて検出され得る。
【０１１８】
ステップ８０２は、カレンダイベントのパラメータを確認する。カレンダイベントについてのデータは、例えば、通信セッションに関与する通信エンドポイント、通信セッションについての日付及び時刻パラメータ、通信セッション中に交換されるメディアタイプ等を識別することができる。
【０１１９】
ステップ８０４は、カレンダイベントのパラメータに基づいて、シミュレーションシナリオを生成する。シミュレーションシナリオは、例えば、カレンダイベントに関与する様々な通信エンドポイント（例えば、開始元デバイス、１以上の受信側デバイス等）を識別することができる。トランザクションパラメータの様々な例が上述されている。
【０１２０】
ステップ８０６は、カレンダイベントについてのシミュレーションシナリオに基づいて、代理トランザクションを開始する。代理トランザクションは、例えば、カレンダイベントの前の特定の時刻に開始されるように（例えば、カレンダイベントの１時間前、３０分前等に開始されるように）スケジュールされ得る。したがって、代理トランザクションは、通信エンドポイント、ネットワーク及びネットワークコンポーネント等といった、カレンダイベントに関与するエンティティについての性能属性をテストするために実行され得る。
【０１２１】
少なくともいくつかの実施形態において、代理トランザクションの属性は、例えば、図７を参照して上述したように、様々なエンティティにレポートされ得る。例えば、性能問題（例えば、エラー及び／又は良好でない通信性能）が、代理トランザクション中に検出された場合、性能問題を軽減させて関連する通信セッションの品質を増大させるために、実際のカレンダイベントの前に、様々な是正アクションがとられ得る。
【０１２２】
図９は、１以上の実施形態に従った方法におけるステップを示すフロー図である。この方法は、１以上の実施形態に従った、実際の通信セッションに基づいてシミュレーションシナリオを生成するための例示的なプロシージャを示している。
【０１２３】
ステップ９００は、通信セッションのパラメータを記録する。一般に、通信セッションは、異なるユーザ間のインタラクションの一部としての、異なるエンドポイント間の通信メディアの交換を表す。この通信セッションは、例えば、ユーザにより開始され、代理トランザクションに該当しない。
【０１２４】
ステップ９０２は、通信セッションのパラメータに基づいて、シミュレーションシナリオを生成する。シミュレーションシナリオは、例えば、通信セッションに関与したエンドポイント、通信セッション中に交換されたメディアタイプ、通信セッション中に提供されたユーザ入力、通信セッションに関与したネットワーク及びネットワークコンポーネント、通信セッション中に生じたデバイス挙動及びイベント、通信セッション中の有効な設定等を識別する。シミュレーションシナリオは、例えば、通信セッション中に生じたイベント及び挙動を再作成する。
【０１２５】
様々な実施形態に従うと、この方法は、セッションエラー、良好でない通信性能等といった問題が通信セッション中に生じたことを検出したことに応じて実行され得る。したがって、シミュレーションシナリオを使用して、元々の通信セッションをシミュレートする代理トランザクションを実施することができる。通信セッション中に生じた問題の発生源を特定するために、代理トランザクションの性能属性が検出されて使用され得る。
【０１２６】
いくつかの例示的なプロシージャを上記にて説明した。次いで、１以上の実施形態に従った例示的なシステム及びデバイスについて検討する。
【０１２７】
例示的なシステム及びデバイス
図１０は、本明細書に記載の様々な技術を実装することができる１以上のコンピューティングシステム及び／又はコンピューティングデバイスを表す例示的なコンピューティングデバイス１００２を含む例示的なシステムを、概括的に１０００で示している。例えば、図１を参照して上述したクライアントデバイス１０２及び／又は通信エンドポイント１１２は、コンピューティングデバイス１００２として具現化され得る。コンピューティングデバイス１００２は、例えば、サービスプロバイダのサーバ、クライアントに関連付けられたデバイス（例えば、クライアントデバイス）、オンチップシステム、及び／又は、任意の他の適切なコンピューティングデバイス若しくはコンピューティングシステムであり得る。
【０１２８】
図示される例示的なコンピューティングデバイス１００２は、処理システム１００４、１以上のコンピュータ読み取り可能な媒体１００６、及び１以上の入力／出力（Ｉ／Ｏ）インタフェース１００８を含み、これらは、互いに通信可能に接続される。図示されていないが、コンピューティングデバイス１００２は、様々なコンポーネントを互いと接続するシステムバス又は他のデータ・コマンド転送システムをさらに含み得る。システムバスは、メモリバス若しくはメモリコントローラ、周辺バス、ユニバーサルシリアルバス、及び／又は、様々なバスアーキテクチャのうちのいずれかを利用するプロセッサバス若しくはローカルバス等の様々なバス構造の任意の１つ又は組合せを含み得る。制御ライン及びデータライン等の多様な他の例も意図されている。
【０１２９】
処理システム１００４は、ハードウェアを用いて１以上の動作を実行する機能を表す。したがって、処理システム１００４は、プロセッサ、機能ブロック等として構成され得るハードウェア要素１０１０を含むものとして図示されている。これは、特定用途向け集積回路、又は、１以上の半導体を用いて形成される他のロジックデバイスとしてのハードウェアによる実装物を含み得る。ハードウェア要素１０１０は、ハードウェア要素１０１０が形成される材料又はハードウェア要素１０１０において利用される処理機構により限定されるものではない。例えば、プロセッサは、１以上の半導体及び／又はトランジスタ（例えば、電子集積回路（ＩＣ））から構成され得る。そのようなコンテキストにおいて、プロセッサ実行可能な命令は、電子的に実行可能な命令であり得る。
【０１３０】
コンピュータ読み取り可能な媒体１００６は、メモリ／ストレージ１０１２を含むものとして図示されている。メモリ／ストレージ１０１２は、１以上のコンピュータ読み取り可能な媒体に関連付けられたメモリ／ストレージ能力を表す。メモリ／ストレージ１０１２は、揮発性媒体（ランダムアクセスメモリ（ＲＡＭ）等）及び／又は不揮発性媒体（読み取り専用メモリ（ＲＯＭ）、フラッシュメモリ、光ディスク、磁気ディスク等）を含み得る。メモリ／ストレージ１０１２は、固定媒体（例えば、ＲＡＭ、ＲＯＭ、固定ハードドライブ等）に加えて、着脱可能な媒体（例えば、フラッシュメモリ、着脱可能なハードドライブ、光ディスク等）を含み得る。コンピュータ読み取り可能な媒体１００６は、以下でさらに説明するように、多様な他の態様で構成され得る。
【０１３１】
１以上の入力／出力インタフェース１００８は、様々な入力デバイスを用いてユーザがコマンド及び情報をコンピューティングデバイス１００２に入力できるようにするとともに、様々な出力デバイスを用いて情報をユーザ及び／又は他のコンポーネントに提示できるようにする機能を表す。入力デバイスの例は、キーボード、カーソル制御デバイス（例えば、マウス）、マイクロフォン（例えば、音声認識及び／又は発話入力用）、スキャナ、タッチ機能（例えば、物理的タッチを検出するよう構成される静電容量式センサ又は他のセンサ）、（例えば、ジェスチャとしてのタッチを含まない動きを検出するために、赤外線周波数等の非可視波長又は可視波長を利用することができる）カメラ等を含む。出力デバイスの例は、ディスプレイデバイス（例えば、モニタやプロジェクタ）、スピーカ、プリンタ、ネットワークカード、触覚応答デバイス等を含む。したがって、コンピューティングデバイス１００２は、ユーザインタラクションをサポートするために、以下でさらに説明するように、多様な態様で構成され得る。
【０１３２】
様々な技術が、ソフトウェア、ハードウェア要素、又はプログラムモジュールの一般的コンテキストにおいて本明細書で説明され得る。一般に、そのようなモジュールは、特定のタスクを実行する又は特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、要素、コンポーネント、データ構造等を含む。本明細書で使用される「モジュール」、「機能」、及び「コンポーネント」という用語は、一般に、ソフトウェア、ファームウェア、ハードウェア、又はこれらの組合せを表す。本明細書に記載の技術の特徴は、プラットフォーム非依存であり、これは、そのような技術が、様々なプロセッサを有する様々な商用コンピューティングプラットフォーム上で実装され得ることを意味する。
【０１３３】
説明したモジュール及び技術の実装物は、何らかの形態のコンピュータ読み取り可能な媒体に記憶されてもよいし、そのようなコンピュータ読み取り可能な媒体を介して伝送されてもよい。コンピュータ読み取り可能な媒体は、コンピューティングデバイス１００２がアクセスできる様々な媒体を含み得る。限定ではなく例として、コンピュータ読み取り可能な媒体は、「コンピュータ読み取り可能な記憶媒体」及び「コンピュータ読み取り可能な信号媒体」を含み得る。
【０１３４】
「コンピュータ読み取り可能な記憶媒体」は、単なる信号伝送、搬送波、又は信号自体ではなく、情報の永続的記憶を可能にする媒体及び／若しくはデバイスを指し得る。コンピュータ読み取り可能な記憶媒体は、信号自体を含まない。コンピュータ読み取り可能な記憶媒体は、コンピュータ読み取り可能な命令、データ構造、プログラムモジュール、論理素子／回路、又は他のデータといった情報を記憶するのに適した方法又は技術により実装された、揮発性及び不揮発性の着脱可能及び着脱不可能な媒体及び／又は記憶デバイス等のハードウェアを含む。コンピュータ読み取り可能な記憶媒体の例は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、若しくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、若しくは他の光ストレージ、ハードディスク、磁気カセット、磁気テープ、磁気ディスクストレージ、若しくは他の磁気記憶デバイス、又は、所望の情報を記憶するのに適した、コンピュータがアクセスできる他の記憶デバイス、有体の媒体、若しくは製品を含み得るが、これらに限定されるものではない。
【０１３５】
「コンピュータ読み取り可能な信号媒体」は、ネットワークを介して等、コンピューティングデバイス１００２のハードウェアに命令を伝送するよう構成された信号伝送媒体を指し得る。信号媒体は、通常、コンピュータ読み取り可能な命令、データ構造、プログラムモジュール、又は他のデータを、搬送波、データ信号、又は他の伝送機構等の変調されたデータ信号内に具現化することができる。信号媒体はまた、任意の情報配信媒体を含む。「変調されたデータ信号」という用語は、信号内の情報を符号化するように設定又は変更された特性のうちの１以上を有する信号を意味する。限定ではなく例として、通信媒体は、有線ネットワーク又は直接配線接続等の有線媒体と、音響、無線周波数（ＲＦ）、赤外線、及び他の無線媒体等の無線媒体と、を含む。
【０１３６】
前述したように、ハードウェア要素１０１０及びコンピュータ読み取り可能な媒体１００６は、本明細書に記載の技術の少なくとも一部の態様を実装するためにいくつかの実施形態において使用することができる、ハードウェア形態で実装された命令、モジュール、プログラマブルデバイスロジック、及び／又は固定デバイスロジックを表す。ハードウェア要素は、集積回路又はオンチップシステム、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、コンプレックスプログラマブルロジックデバイス（ＣＰＬＤ）、及び、シリコンによる他の実装物又は他のハードウェアデバイスのコンポーネントを含み得る。このコンテキストにおいて、ハードウェア要素は、そのハードウェア要素により具現化される命令、モジュール、及び／又はロジックにより定められるプログラムタスクを実行する処理デバイスに加えて、例えば前述したコンピュータ読み取り可能な記憶媒体等の、実行される命令を記憶するために利用されるハードウェアデバイスとして動作することができる。
【０１３７】
前述したものの組合せを使用して、本明細書に記載の様々な技術及びモジュールを実装することもできる。したがって、ソフトウェア、ハードウェア、又は、プログラムモジュール及び他のプログラムモジュールは、何らかの形態のコンピュータ読み取り可能な記憶媒体上に具現化される、且つ／又は、１以上のハードウェア要素１０１０により具現化される１以上の命令及び／又はロジックとして実装され得る。コンピューティングデバイス１００２は、ソフトウェアモジュール及び／又はハードウェアモジュールに対応する特定の命令及び／又は機能を実行するよう構成され得る。したがって、ソフトウェアとしてコンピューティングデバイス１００２により実行可能なモジュールとしての実装は、例えば、処理システムのハードウェア要素１０１０及び／又はコンピュータ読み取り可能な記憶媒体を使用することにより、ハードウェアにより少なくとも部分的に実現され得る。命令及び／又は機能は、本明細書に記載の技術、モジュール、及び例を実装する１以上の製品（例えば、１以上のコンピューティングデバイス１００２及び／又は処理システム１００４）により、実行可能／動作可能であり得る。
【０１３８】
図１０にさらに示されるように、例示的なシステム１０００は、パーソナルコンピュータ（ＰＣ）、モバイルデバイス、及び／又はテレビジョンデバイス上でアプリケーションを実行する際のシームレスなユーザエクスペリエンスのためのユビキタス環境を可能にする。サービス及びアプリケーションは、アプリケーションを利用している間、ビデオゲームをプレイしている間、ビデオを見ている間等に１つのデバイスから次のデバイスに移る際の共通のユーザエクスペリエンスのために、３つの全ての環境において実質的に同様に動作する。
【０１３９】
例示的なシステム１０００において、複数のデバイスが、中央コンピューティングデバイスを介して相互接続される。中央コンピューティングデバイスは、複数のデバイスに対してローカルにあってもよいし、複数のデバイスからリモートに位置してもよい。一実施形態において、中央コンピューティングデバイスは、ネットワーク、インターネット、又は他のデータ通信リンクを介して複数のデバイスに接続される１以上のサーバコンピュータのクラウドであり得る。
【０１４０】
一実施形態において、この相互接続アーキテクチャは、複数のデバイスのユーザに共通のシームレスなエクスペリエンスを提供するために、複数のデバイスにわたって機能を配信することを可能にする。複数のデバイスの各々は、異なる物理的要件及び能力を有し得、中央コンピューティングデバイスは、各デバイス向けに合わせられながらも全てのデバイスに共通であるエクスペリエンスを各デバイスに提供することを可能にするプラットフォームを使用する。一実施形態において、ターゲットデバイスのクラスが作成され、エクスペリエンスが、デバイスの一般クラス向けに合わせられる。デバイスのクラスは、デバイスの物理的特徴、使用のタイプ、又は他の共通特性により定められ得る。
【０１４１】
様々な実施形態において、コンピューティングデバイス１００２は、コンピュータ１０１４、モバイル１０１６、及びテレビジョン１０１８等の使用のために、多種多様な構成をとることができる。これらの構成の各々は、一般に異なる構造及び能力を有し得るデバイスを含み、したがって、コンピューティングデバイス１００２は、異なるデバイスクラスのうちの１以上のデバイスクラスに従って構成され得る。例えば、コンピューティングデバイス１００２は、パーソナルコンピュータ、デスクトップコンピュータ、マルチスクリーンコンピュータ、ラップトップコンピュータ、ネットブック等を含むデバイスのコンピュータ１０１４クラスとして実装され得る。
【０１４２】
コンピューティングデバイス１００２はまた、携帯電話機、ポータブル音楽プレーヤ、ポータブルゲームデバイス、タブレットコンピュータ、マルチスクリーンコンピュータ、ウェアラブルデバイス等といったモバイルデバイスを含むデバイスのモバイル１０１６クラスとして実装され得る。コンピューティングデバイス１００２はまた、随時の視環境における一般により大型のスクリーンを有する又はそのようなスクリーンに接続されるデバイスを含むデバイスのテレビジョン１０１８クラスとして実装され得る。これらのデバイスは、テレビジョン、セットトップボックス、ゲームコンソール等を含む。
【０１４３】
本明細書に記載の技術は、コンピューティングデバイス１００２のこれら様々な構成によりサポートされ得るが、本明細書に記載の技術の特定の例に限定されるものではない。例えば、環境１００のエンティティを参照して説明した機能は、以下で説明するように、プラットフォーム１０２２を介し「クラウド」１０２０を介する等、分散システムの使用により全て又は一部が実装されてもよい。
【０１４４】
クラウド１０２０は、リソース１０２４のためのプラットフォーム１０２２を含む、且つ／又は、そのようなプラットフォーム１０２２を表す。プラットフォーム１０２２は、クラウド１０２０のハードウェアリソース（例えば、サーバ）及びソフトウェアリソースの基礎をなす機能を抽象化する。リソース１０２４は、コンピューティングデバイス１００２からリモートにあるサーバ上でコンピュータ処理が実行されている間に利用することができるアプリケーション及び／又はデータを含み得る。リソース１０２４はまた、インターネット、及び／又は、セルラネットワーク若しくはＷｉ−Ｆｉ（登録商標）ネットワーク等の加入者ネットワークを介して提供されるサービスを含み得る。
【０１４５】
プラットフォーム１０２２は、コンピューティングデバイス１００２を他のコンピューティングデバイスに接続するためのリソース及び機能を抽象化することができる。プラットフォーム１０２２はまた、リソースのスケーリングを抽象化して、プラットフォーム１０２２を介して実装されるリソース１０２４を求める受けた要求に対する、対応するレベルのスケールを提供するよう機能することができる。したがって、相互接続されるデバイスの実施形態において、本明細書に記載の機能の実装物は、システム１０００にわたって分散され得る。例えば、本明細書に記載の機能は、コンピューティングデバイス１００２上に一部を実装することができるとともに、クラウド１０２２の機能を抽象化するプラットフォーム１０２２を介して実装することができる。
【０１４６】
本明細書に記載の技術を実行するために実装され得る複数の方法が、本明細書で説明されている。これらの方法の態様は、ハードウェア、ファームウェア、ソフトウェア、又はこれらの組合せにより実装され得る。これらの方法は、１以上のデバイスにより実行される動作を表すステップのセットとして示されているが、必ずしも、それぞれのブロックによる動作を実行するために示された順番に限定されるものではない。さらに、特定の方法に関連して示された動作は、１以上の実施形態に応じて、異なる方法の動作と組み合されてもよいし、且つ／又は入れ替えられてもよい。これらの方法の態様は、環境１００を参照して上述した様々なエンティティ間のインタラクションを介して実施されてもよい。
【０１４７】
結び
通信エンドポイント間の代理トランザクションのための技術が説明された。実施形態が、構造的特徴及び／又は方法的動作に特有の言葉で説明されたが、特許請求の範囲において定められる実施形態は、上述した特定の特徴又は動作に必ずしも限定されるものではない。そうではなく、特定の特徴及び動作は、特許請求される実施形態を実施する例示的な形態として開示されている。
【図１】
2017523709.tif 000003
【図２】
2017523709.tif 000004
【図３】
2017523709.tif 000005
【図４】
2017523709.tif 000006
【図５】
2017523709.tif 000007
【図６】
2017523709.tif 000008
【図７】
2017523709.tif 000009
【図８】
2017523709.tif 000010
【図９】
2017523709.tif 000011
【図１０】
2017523709.tif 000012
【国際調査報告】
2017523709.tif 000013
2017523709.tif 000014
2017523709.tif 000015