(57)【要約】  実施形態は、プロキシミティ接続の起動時にプロキシミティアクションを開始するプロセス、システム、および装置を含む。プロキシミティサービスは、プロキシミティプロバイダからプロキシミティ接続が確立されているという指示を受信し、その後、プロキシミティ接続のジョイント・プロキシミティ・コンテキストを決定する。プロキシミティサービスは、その後、ジョイント・プロキシミティ・コンテキストによって指示されたプロキシミティ機能を実現し易くするためにプロキシミティアクションを開始する。ジョイント・プロキシミティ・コンテキストは、アプリケーションがプロキシミティ装置と共有されるべきコンテンツをキューに入れた、アプリケーションが名前空間上でメッセージを公開するために登録した、アプリケーションが名前空間上のメッセージに参加した、アプリケーションがマルチユーザ協調を有効化するためにプロキシミティ装置上でピアアプリケーションを見つけるために登録した、および、装置が他の装置とペアを組もうとする、という指示を含む。
2014532208.tif 000002
【特許請求の範囲】
【請求項１】
装置のプロキシミティサービスによって、プロキシミティ接続が他の装置との間で確立されているという指示をプロキシミティプロバイダから受信するステップと、
前記指示に応じて、前記プロキシミティ接続のジョイント・プロキシミティ・コンテキストを決定するために、前記プロキシミティ接続を介して、プレステージされたコンテキスト情報を、前記他の装置の他のプロキシミティサービスと交換するステップであって、前記プレステージされたコンテキスト情報は、前記装置のアプリケーションによる前記プロキシミティサービス、または、前記他の装置の他のアプリケーションによる他のプロキシミティサービスのいずれかに登録されたプロキシミティ機能の指示を含む、ステップと、
前記プロキシミティ接続の前記ジョイント・プロキシミティ・コンテキストに基づいて、プレステージされたプロキシミティアクションを開始し、前記プロキシミティ機能を促すステップと
を有する方法。
【請求項２】
当該方法は、前記装置の前記アプリケーションから登録を受信し、プロキシミティ装置におけるピアアプリケーションを発見するステップをさらに有し、前記プレステージされたプロキシミティアクションは、前記ピアアプリケーションとのピア接続を確立するために、前記プロキシミティサービスにより、前記アプリケーションと前記他の装置との間に帯域外接続を確立することを含む、請求項１に記載の方法。
【請求項３】
前記ジョイント・プロキシミティ・コンテキストは、前記他の装置の前記アプリケーションがプロキシミティ装置におけるピアアプリケーションを発見するために登録しているという指示を含み、前記プレステージされたプロキシミティアクションは、前記プロキシミティサービスによって、前記ピアアプリケーションを立ち上げることと、前記他の装置とのピア接続を確立することとを承諾するために選択可能な選択肢を提供するユーザインターフェース要素を提示することを含む、請求項１に記載の方法。
【請求項４】
前記装置の共有サービスから前記共有サービスがプロキシミティ装置との共有のため前記アプリケーションによってキューに入れられたコンテンツを有しているという登録を受信するステップをさらに有し、前記ジョイント・プロキシミティ・コンテキストは、前記登録の指示を含み、前記プレステージされたプロキシミティアクションは、前記プロキシミティサービスによって、前記共有サービスと前記他の装置との間に帯域外接続を確立することを含む、請求項１に記載の方法。
【請求項５】
前記ジョイント・プロキシミティ・コンテキストは、前記他の装置の共有サービスがプロキシミティサービスに送信するために前記他のアプリケーションからのコンテンツをキューに入れているという指示を含み、前記プレステージされたプロキシミティアクションは、前記キューに入れられたコンテンツの受信を承諾するために選択可能な選択肢を提供するユーザインターフェース要素を提示することを含む、請求項１に記載の方法。
【請求項６】
前記アプリケーションの状態からプロキシミティ機能を推論することをさらに備え、前記ジョイント・プロキシミティ・コンテキストは、前記推論されたプロキシミティ機能の指示を含む、請求項１に記載の方法。
【請求項７】
プロキシミティプロバイダと、
ワイヤレス通信無線機と、
１つ以上のプロセッサと、
前記１つ以上のプロセッサによって実行可能であり、前記プロキシミティプロバイダを介してプロキシミティ接続を確立するように構成されているプロキシミティプロバイダモジュールと、
前記１つ以上のプロセッサによって実行可能なプロキシミティサービスモジュールであって、
前記プロキシミティプロバイダモジュールから、プロキシミティ接続がプロキシミティ装置と確立されているという指示を受信する処理と、
前記プロキシミティ接続の確立時に、前記プロキシミティ装置の他のプロキシミティサービスとプロキシミティ情報を交換する処理であって、前記プロキシミティ情報は、プロキシミティサービスまたは前記他のプロキシミティサービスのいずれかへの登録を介して、コンピューティングシステムのアプリケ−ションまたは前記プロキシミティ装置の他のアプリケーションのいずれかから発生する要求されたプロキシミティ機能を含む、処理と、
前記プロキシミティ接続のジョイント・プロキシミティ・コンテキストがピアアプリケーション間にピア接続を確立する要求を示していると判断された場合に、前記ピア接続を可能にするために前記ワイヤレス通信無線機を介して前記アプリケーションと前記他のアプリケーションとの間で通信を確立する処理と
を有する実行するように形成されているプロキシミティサービスモジュールと、
を備えるコンピューティングシステム。
【請求項８】
前記プロキシミティサービスは、前記アプリケーションが前記コンピューティングシステムのユーザインターフェースのフォアグラウンドで動いていないという決定時に、前記アプリケーションを前記フォアグラウンドにすることを承諾するために選択可能な選択肢を提供するユーザインターフェース要素を表示させるようにさらに構成されている、請求項７に記載のコンピューティングシステム。
【請求項９】
前記プロキシミティサービスは、前記アプリケーションが前記コンピューティングシステム上で動いていないという決定時に、前記アプリケーションの実行を承諾するために選択可能な選択肢を提供するユーザインターフェース要素を表示させるようにさらに構成されている、請求項７に記載のコンピューティングシステム。
【請求項１０】
コンピューティング装置の１つ以上のプロセッサにより実行される場合に、前記コンピューティング装置に方法を実行させる複数のプログラミング命令を有するコンピュータ読み取り可能な記憶媒体であって、前記方法は、
前記コンピューティング装置のプロキシミティプロバイダを介する前記コンピューティング装置と接続装置との間のプロキシミティ接続の確立に応じて、前記接続装置とのペアリング接続を確立するためのインバウンド要求を、プロキシミティサービスにより、前記接続装置から受信するステップと、
前記プロキシミティサービスによって、前記ペアリング接続を承諾するために選択可能な選択肢を含むユーザインターフェース要素を表示させるステップと、
前記ペアリング接続を承諾することを指示する入力を受信した場合に、前記プロキシミティプロバイダとは異なる前記装置の通信プロバイダを介して、前記コンピューティング装置のペアリングサービスと他の装置との間で接続を設定するステップと、
を有する、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
開示される実施の形態はプロキシミティサービスのための方法及びコンピューティングシステム等に関連する。
【背景技術】
【０００２】
プロキシミティ技術は、互いに極めて接近して置かれている装置間で通信を可能にする。プロキシミティ技術の一例である近距離通信（ＮＦＣ）は、無線周波数（ＲＦＩＤ）技術から改良された短距離無線技術である。ＮＦＣは、これの接続を形成するために互いに接近して位置している２つのループアンテナの間で磁気誘導を利用する。ＮＦＣは、４インチ（約１０ｃｍ）程度離れた装置間で無線接続を可能にする。ＮＦＣ装置は、能動型または受動型のいずれにもなる可能性がある。能動モードでは、２台の装置は、それぞれの無線機に個別に給電する。受動モードでは、１台の装置は、他の装置から電力を引き込む。ＮＦＣ装置の実施は、内蔵ＮＦＣチップと、ＮＦＣ有効加入者識別モジュール（ＳＩＭ）カードと、（マイクロＳＤカードのような）不揮発性メモリカードと、受動型ＮＦＣ有効タグまたはステッカーを含む。別のプロキシミティ技術は、ＴｒａｎｓｆｅｒＪｅｔ（商標）である。ＴｒａｎｓｆｅｒＪｅｔ（商標）は、ＮＦＣがサポートするより高い速度をサポートする。従って、ＴｒａｎｓｆｅｒＪｅｔ（商標）は、高速無線転送のようなＮＦＣに比べて異なる使用状況で対象とされる。さらに別のプロキシミティ技術は、２つの端点（エンドポイント）が近接していることを決定するために２つの端点からサーバに報告された位置、装置運動、および時間を使用する。
【０００３】
コンテンツ共有および決済システムのような従来のプロキシミティ機能は、アプリケーションレベルで有効化される。アプリケーション開発者は、様々なプロキシミティ機能を有効化するためにプロキシミティ技術と直接通信するアプリケーションを書くことを要求される。基礎となるプロキシミティ技術についての開発者による深い理解が典型的に必要とされる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一観点による課題は、アプリケーションがプロキシミティ技術に直接的に相互作用する必要なしに、アプリケーションが様々なユーザ体験を提供できるようにするプラットフォームベースのプロキシミティサービスを可能にすることである。
【課題を解決するための手段】
【０００５】
この発明の概要の欄は、発明を実施するための形態の欄においてさらに後述するプラットフォーム有効プロキシミティサービスの簡略化された概念を紹介するために設けられている。この発明の概要の欄は、請求項に記載された主題の本質的な特徴を特定することを目的とすることなく、請求項に記載された主題の範囲を決定するのに使用されることも目的としていない。
【０００６】
プラットフォームベースのプロキシミティサービスは、アプリケーションが他の装置とのプロキシミティ接続の確立時に開始されるべきプロキシミティ機能をプレステージすることを可能にする。プラットフォームベースのプロキシミティサービスは、アプリケーションがプロキシミティ技術に直接的に相互作用する必要なしにアプリケーションが様々なユーザ体験を提供することを可能にする。プラットフォームベースのプロキシミティサービスは、複数のプロキシミティアクションがプロキシミティ機能を実現し易くするために、または、プレステージされたプロキシミティ機能間の潜在的な衝突を解消するために開始されることも可能にする。ユーザ視点から、プラットフォームベースのプロキシミティサービスによって有効化された様々なユーザ体験は、ユーザが機能をプレステージし、その後、プレステージされた機能を開始させるために自分の装置を他の装置に近接させることを可能にする。なお、混乱のおそれがなければ、「プレステージされた(pre-staged)」は、予め設定された、事前に登録された等と表現されてもよい。プロキシミティをもたらす１つの共通の様式は、タッピングという物理的ジェスチャーを介する。このような一実施例では、ユーザは、２台の装置間で自動持続ペアリングを起動するために自分の装置（たとえば、スマートフォンまたはキーボードなど）を他のプロキシミティ装置にタップする。別の実施例では、ユーザは、プロキシミティ装置と共有されるべきコンテンツをキューに入れ、その後、キューに入れられたコンテンツを転送するため他の装置と（Ｂｌｕｅｔｏｏｔｈ（登録商標）のような）帯域外接続を確立するように自分の装置をタップする。さらに別の実施例では、ユーザは、アプリケーションをマルチユーザ・モードに置き、その後、アプリケーションが他の装置上で動く互換性のあるアプリケーションとピアになることを可能にするために他の装置との帯域外接続を確立するように自分の装置を他の装置にタップする。
【０００７】
実施形態に係るプラットフォームベースのプロキシミティサービスは、プロキシミティ事象および接続のジョイント・プロキシミティ・コンテキストを決定し、ジョイント・プロキシミティ・コンテキストに基づいて様々なプロキシミティアクションを開始する。これらのプロキシミティアクションは、プレステージされたプロキシミティ機能を承諾するために選択可能な選択肢付きのユーザインターフェースを表示することと、帯域外接続をネゴシエートし、確立することと、コンテンツを装置間で転送させることなどを含む。別の装置とのプロキシミティ接続の確立時に、プラットフォームベースのプロキシミティサービスは、プレステージされたプロキシミティ機能を実現し易くするためにプロキシミティ接続の確立、および／または、プロキシミティアクションの開始にユーザの注意を喚起するように、ユーザインターフェース要素の表示、オーディオサウンドの再生、および／または、装置振動をさらに引き起こす。プラットフォームレベルのプロキシミティサービスを提供することは、プロキシミティ事象および接続を作り出すためにプラットフォームによって使用される１つ以上の基礎となるプロキシミティ技術についての知識を必要とすることなくアプリケーション開発者が人間の相互作用をモデル化するユーザ体験を容易に作成することを可能にする。
【０００８】
発明を実施するための形態の欄は、添付図面に関連して記載されている。図面中、符号の最も左の数字（群）は、この符号が最初に現れる図を特定する。異なる図における同じ符号の使用は、類似する、または、同一の項目を指示する。
【図面の簡単な説明】
【０００９】
【図１】プロキシミティアクションがアプリケーションまたは他のオペレーティングシステム要素の代わりにプロキシミティサービスを通じて開始されることを可能にするために使用できる環境例の概略図である。
【図２】実施形態に係るプロキシミティサービスを提供するために使用できる装置例のブロック図である。
【図３】プレステージされたプロキシミティ機能がプロキシミティ接続の確立に応答してアプリケーションおよび様々なオペレーティングシステム要素に代わって起動されることを可能にするプロセス例を示すフローチャートである。
【図４】プロキシミティ接続を使用してプレステージされたピア接続を開始し確立するプロセス例を示すフローチャートである。
【図５】プロキシミティ装置からのピア接続案内の受信時にプレステージされたピア接続を開始するプロセス例を示すフローチャートである。
【図６】プロキシミティ接続を通じてプレステージされたメッセージ転送を開始するプロセス例を示すフローチャートである。
【図７】プレステージされた装置ペアリング機能を開始するプロセス例を示すフローチャートである。
【図８】プロキシミティ装置とのプレステージされたコンテンツの共有を可能にするために帯域外接続を開始し確立するプロセス例を示すフローチャートである。
【図９】プロキシミティ装置からのコンテンツ共有案内の受信時に帯域外接続を開始し確立するプロセス例を示すフローチャートである。
【図１０】アプリケーション状態からプレステージされたコンテキストを推論するプロセス例１０００を示すフローチャートである。
【発明を実施するための形態】
【００１０】
＜概要＞
前述のとおり、プロキシミティ技術は、互いに極めて接近して置かれている装置間の通信を可能にする。（金融取引またはコンテンツ共有のような）従来のプロキシミティ機能は、アプリケーションレベルで有効化され、アプリケーション開発者がこれらのアプリケーションがサポートすることになるプロキシミティ装置のタイプを識別し、サポートされたプロキシミティ技術に直接的にインターフェースを取るようにこれらのアプリケーションをプログラムすることを要求する。本開示の実施形態は、アプリケーション開発者がプロキシミティ技術に直接的にプログラムすることを要することなくプロキシミティサービスを通じて様々なユーザ体験をもたらすことを可能にするプラットフォームレベルのプロキシミティサービスおよびプロキシミティ・アプリケーション・プログラミング・インターフェース（ＡＰＩ）を含む。
【００１１】
実施形態に係るプロキシミティサービスは、アプリケーションと基礎となるプロキシミティプロバイダとの間の抽象化層を表現する。プロキシミティプロバイダは、いくつもの手段を介してプロキシミティの決定を可能にする技術である。たとえば、１つの共通プロキシミティプロバイダは、対応する電磁場がプロキシミティ情報を交換するように互いに相互作用するときにプロキシミティを有効化するために無線信号の使用を伴う。プロキシミティプロバイダの第２の実施形態は、中間ユーティリティサービスを通じてプロキシミティを決定するために時間および運動と共にＧＰＳのような高精度位置サービスを使用することがある。本書に記載されたプロキシミティサービスは、プロキシミティを決定する共通または完全に異なる方法論を使用して１つ以上のこのようなプロキシミティプロバイダを通じてプロキシミティを決定するためブローカーとしての役割を果たす。
【００１２】
実施形態に係るプロキシミティサービスは、ある種のプロキシミティ機能が要求されていることを指示するために−たとえば、様々なＡＰＩの使用を通して−アプリケーションからの登録を受信するように構成されている。別の装置とのプロキシミティ接続を確立するプロキシミティ事象時に、プロキシミティサービスは、プレステージされたコンテキスト情報を他の装置のプロキシミティサービスと交換する。この交換は、他の装置からのプレステージされたコンテキスト情報の受信と共に、他の装置へのプレステージされたコンテキスト情報の転送とを含む。プレステージされたコンテキスト情報は、（オペレーティングシステム要素を含む）アプリケーションによっていずれかの装置に登録された（もしあるとすれば）プロキシミティ機能の指示を含む。プロキシミティ接続中に、交換された、プレステージされたコンテキスト情報に基づくさらなる計算がどちらか一方または両方の装置上でプロキシミティサービスによってリアルタイムで実行されることがある。
【００１３】
プロキシミティサービスは、接続のジョイント・プロキシミティ・コンテキストを決定する。ジョイント・プロキシミティ・コンテキストは、一方または両方の装置のプレステージされたコンテキスト情報を含む。ジョイント・プロキシミティ・コンテキストに基づいて、プロキシミティサービスは、登録されたプロキシミティ機能を実現し易くするためにプレステージされたプロキシミティアクションを開始する。ジョイント・プロキシミティ・コンテキストが（両方の装置からのプロキシミティ機能のような）複数の登録されたプロキシミティ機能の指示を含む場合、プロキシミティサービスは、登録されたプロキシミティ機能の一部または全部を実現し易くするためにプレステージされたプロキシミティアクションを開始することがある。
【００１４】
プレステージされたプロキシミティアクションは、登録されたプロキシミティ機能を実現し易くする。プロキシミティ機能は、装置ペアリングと、ピアアプリケーション接続と、メッセージ公開および参加と、コンテンツ共有とを含む。
【００１５】
一実施例では、ジョイント・プロキシミティ・コンテキストは、装置ペアリング要求の指示を含む。ユーザ装置（たとえば、パーソナルコンピュータ、ラップトップ、またはタブレットコンピュータなど）とペアリング装置（たとえば、キーボード、マウス、カメラ、またはスマートフォン）との間のプロキシミティ接続の確立時に、プロキシミティサービスは、ペアリングを承諾するために選択可能な選択肢を提供するユーザインターフェース要素を表示させる。ユーザがペアリングを承諾することを指示するユーザ入力装置からの入力の受信時に、プロキシミティサービスは、帯域外接続タイプをネゴシエートし、帯域外接続を確立し、装置のペアリングサービスに帯域外接続に関する情報を提供する。ペアリングサービスは、その後、さらなるユーザ相互作用の有無とは無関係に装置とペアを組む。ペアリングサービスは、その後、（デバイスドライバまたはアプリケーションのような）ペアリングされた装置を使用するため必要である、または、有用であるソフトウェアのインストレーションまたはソフトウェアへのバインディングを開始することがある。
【００１６】
別の実施例では、ジョイント・プロキシミティ・コンテキストは、プロキシミティ装置上のピアアプリケーションの位置を見つけるためにアプリケーションによる登録の指示を含む。この場合、（プロキシミティ接続を確立するプロキシミティ事象時に）開始装置は、複数の帯域外接続タイプの確立を同時に開始し、装置のうち帯域外通信のため用いる１台を決定するために両方の装置に知られているアルゴリズムを使用する。開始装置は、通信ソケットをアプリケーションに送る。受信装置のプロキシミティサービスは、ピア要求に関連する１つ以上のアクションを承諾するために選択可能な選択肢を提供するユーザインターフェース要素の表示を引き起こす。ユーザ承諾を指示するユーザ入力装置からの入力の受信時に、プロキシミティサービスは、限定されることなく、初期装置との帯域外接続を確立すること、ピアアプリケーションを立ち上げること、ピアアプリケーションをフォアグラウンドにすること、コンテキスト情報を（フォアグラウンドアプリケーションのような）実行中のアプリケーションに提供すること、および、装置がピアアプリケーションを取得し、インストールすることを可能にするためにアプリケーション獲得サービスを立ち上げることのような１つ以上の対策を講じることがある。
【００１７】
別の実施例では、ジョイント・プロキシミティ・コンテキストは、アプリケーションが公開されるべきメッセージを１つ以上の名前空間に登録している、および／または、同じまたは異なる名前空間に参加するために登録しているという指示を含む。プロキシミティ接続の確立時に、プロキシミティサービスは、プロキシミティ接続を介して公開されたメッセージを送受信する。
【００１８】
別の実施例では、ジョイント・プロキシミティ・コンテキストは、共有サービスが、キューに入れられ、プロキシミティ装置と共有されるべきコンテンツ（メッセージ、ファイルなど）を登録しているという指示を含む。プロキシミティ接続を確立するプロキシミティ事象時に、開始装置は、帯域外接続をネゴシエートし、セットアップするか、または、代替的に、同時の複数の帯域外接続を開始し、用いるための１つを選択するかのいずれかである。開始装置は、共有サービスに共有コンテンツを転送するソケットを提供する。受信装置は、共有コンテンツの受信を承諾するために選択可能な選択肢付きのユーザインターフェース要素を表示させる。ユーザ承諾を指示するユーザ入力装置からの入力の受信時に、プロキシミティサービスは、帯域外接続の接続を完了し、それ自体の共有サービスに共有コンテンツを受信するソケットを提供する。
【００１９】
別の実施例では、ジョイント・プロキシミティ・コンテキストは、装置のユーザインターフェースのフォアグラウンドで動いているアプリケーションの状態から推論されるプロキシミティ機能の指示を含む。１つの限定されない実施例では、ユーザは、アプリケーションを使用してコンテンツを選択していることがある。プロキシミティ接続が開始されると、プロキシミティサービスは、ユーザがコンテンツを選択したという事実から、ユーザがプロキシミティ装置とコンテンツを共有することを望むことを推論する。このようにして、ジョイント・プロキシミティ・コンテキストは、コンテンツ共有が要求されているという指示を含む。プロキシミティサービスは、共有サービスを立ち上げ、選択されたコンテンツを転送するために帯域外通信チャネルを確立することにより共有を実現し易くする。別の限定されない実施例では、装置は、マルチユーザ機能を有しているアプリケーションを動かすことがあり、プロキシミティサービスは、ユーザがアプリケーション上でマルチユーザ協調を有効化するためにピア接続を形成することを望むことを推論することがある。このように、ジョイント・プロキシミティ・コンテキストは、ピアが要求されているという指示を含む。プロキシミティサービスは、ピア接続を開始するために選択可能な選択肢を含むユーザインターフェース要素を表示することによりピア接続要求を実現し易くする。
【００２０】
実施形態は、プロキシミティ事象時に開始された無許可のアクションから装置を保護する特徴を含む。これらの特徴は、装置のセキュリティおよびプライバシーを保護すると共にユーザ体験を改善するのに役立つ。たとえば、様々な実施形態は、ユーザが、たとえば、コンテンツを受信する、アプリケーションを獲得または立ち上げる、マルチユーザ・モードを有効化するためにピア接続を作成する、または別の装置とペアを組むといったある種のアクションを承諾することを要求する。さらに、プロキシミティサービスは、アプリケーションを獲得するためにユーザを無許可のオンラインまたはオフライン・アプリケーション・ストアに案内し、それによって、獲得されているアプリケーションが悪質ではないという保証の手段をユーザに提供することがある。同様に、ユーザは、ユーザの装置がプロキシミティ接続を確立していることをユーザに知らせる視覚、触覚、および／または聴覚フィードバックを与えられる。そして、実施形態は、ユーザが、プロキシミティプロバイダ自体、プロキシミティ共有機能、プロキシミティペアリング機能、メッセージ参加／公開機能、ピア接続確立機能などのような一部または全部のプロキシミティサービス機能を無効にできるようにすることがある。
【００２１】
本書で使用されるような用語「プロキシミティ」は、いくつかの意味のうちの１つを有することがある。いくつかの実施形態では、プロキシミティは、装置を使ったジェスチャーを通じて決定されるような２台のコンピューティング装置の物理的な近さを意味することがある。１つの限定されない実施形態では、装置は、装置の物理的なタップのような物理的なジェスチャーが実行されたとき、別の装置に近接していると言われる。このようなプロキシミティ接続は、ＮＦＣ、ＴｒａｎｓｆｅｒＪｅｔ（商標）、または何か他の短距離通信技術によって確立されることがある。代替的な実施形態では、プロキシミティは、物理的なジェスチャー以外の環境情報に基づいて確立されることがある。１つの限定されない実施例は、２台の装置が会議室のような近接物理環境の内部にあるか否かを決定するために共通無線アクセスポイントからの計算距離を使用する。プロキシミティは、ある実施形態では、装置の物理的な近さ以外の何か別のものを意味することもある。実施形態では、第１のユーザのためのユーザエージェントとしての役割を果たす装置は、２人のユーザの間に何らかの関係が存在するとき、別のユーザのためのユーザエージェントとしての役割を果たす別の装置に近接している。１つの限定されない実施例では、第１のユーザの装置は、ユーザ同士が家族関係を有しているとき、第２のユーザの装置に近接している。これらは、単なる実施例であり、実施例は、上記実施例に限定されない。
【００２２】
本書に記載されたプロセス、システム、および装置は、ある程度の数の手法で実施されることがある。実施例は、添付図面を参照して後述する。
＜プロキシミティサービスのための環境例＞
【００２３】
図１は、プロキシミティアクションがアプリケーションまたは他のオペレーティングシステム要素の代わりにプロキシミティサービスを通じて開始されることを可能にするために使用できる環境例の概略図である。環境１００は、第１のプロキシミティ装置１０２および第２のプロキシミティ装置１０４を含むことがある。第１のプロキシミティ装置１０２および第２のプロキシミティ装置１０４は、プロキシミティサービスを実施する能力がある様々な適当なコンピューティング装置タイプで実施されることがある。なお「サービス」は、混乱のおそれのない限り、サービスを実行するための処理モジュールとして言及されてもよい。適当なコンピューティング装置または装置群は、１台以上のパーソナルコンピュータ、サーバ、サーバファーム、データセンター、専用コンピュータ、タブレットコンピュータ、ゲーム機、スマートフォン、これらの組み合わせ、または、プロキシミティサービスの全部もしくは一部を記憶し実行する能力がある何らかの他のコンピューティング装置（群）を含むか、または、これらの一部であることがある。
【００２４】
図１の例示的な実施例では、第１のプロキシミティ装置１０２は、プロキシミティサービス１０６と、プロキシミティ有効アプリケーション１０８と、共有有効アプリケーション１１０とを含む。プロキシミティ有効アプリケーション１０８は、プロキシミティサービスを可能にする機能を発揮するアプリケーションであり、プロキシミティイネーブルアプリケーション１０８等と言及されてもよい。プロキシミティ有効アプリケーション１０８は、様々なプロキシミティ機能をプロキシミティサービス１０６に登録するように構成されている。このような登録は、１つ以上のアプリケーション・プログラミング・インターフェース（ＡＰＩ）の使用を介することがある。たとえば、プロキシミティ有効アプリケーション１０８は、ピア検出ＡＰＩ  １１２を呼び出し、プロキシミティ有効アプリケーション１０８が共有ユーザ体験を提供するのに用いるピアアプリケーションを探索することを指示するように構成されることがある。プロキシミティ有効アプリケーション１０８は、マルチ・プレーヤー・ゲーム、コンテンツ交換アプリケーション、または、何らかの他の協調的アプリケーションでもよい。
【００２５】
別の実施例では、プロキシミティ有効アプリケーション１０８は、アプリケーションを公開する１つ以上の名前空間、および／または、参加する１つ以上の名前空間を登録するためにプロキシミティメッセージングＡＰＩ  １１４を呼び出すように構成されている。たとえば、プロキシミティ有効アプリケーション１０８は、Ｖｃａｒｄ名前空間に参加し、そして、Ｖｃａｒｄを同じまたは異なる名前空間にさらに公開する名刺共有アプリケーションでもよい。
【００２６】
共有有効アプリケーション１１０のような共有有効アプリケーションは、共有されるべきコンテンツをキューに入れ、キューに入れられたコンテンツを共有するために共有サービス１１６を呼び出すように構成されている。共有有効アプリケーション１１０は、共有を可能にするアプリケーションであり、共有イネーブルアプリケーション１１０等と言及されてもよい。共有サービス１１６は、ユーザがキューに入れられたコンテンツを共有するために用いるアプリケーションを選択することを可能にする共有ユーザインターフェース要素１１８を提示するように構成されている。共有ユーザインターフェース要素１１８は、ユーザがキューに入れられたコンテンツを他のアプリケーションと共有する代わりに、プロキシミティ有効装置とコンテンツを共有することを可能にようにさらに構成されている。
【００２７】
プロキシミティプロバイダ１２０は、ソフトウェア要素およびプロキシミティ決定機能性を両方共に含む機能モジュールである。プロキシミティプロバイダ１２０は、プロキシミティプロバイダとしてプロキシミティサービス１０６に登録するデバイスドライバを含むことがある。プロキシミティプロバイダ１２０は、近距離通信（ＮＦＣ）プロバイダ、ＴｒａｎｓｆｅｒＪｅｔ（商標）プロバイダ、または他のプロキシミティプロバイダタイプでもよい。プロキシミティ無線機を使用する実施形態では、プロキシミティプロバイダ１２０は、プロキシミティ帯域１２４を通じて第２のプロキシミティ装置１０４のプロキシミティプロバイダ１２２とのプロキシミティ接続を確立するように構成されている。プロキシミティ接続は、たとえば、プロキシミティプロバイダ１２２のアンテナがプロキシミティプロバイダ１２０のアンテナに極めて近接して置かれたときに確立されることがある。このことは、たとえば、ユーザが第１のプロキシミティ装置１０２を第２のプロキシミティ装置１０４の近くに置くことに起因して、または逆も同様に起こることがある。装置は、プロキシミティアンテナが存在する場所を示すためにラベル付けされることがあり、その結果、ユーザは、プロキシミティ接続を簡単に起動させることができる。プロキシミティを決定するために無線機に基づくモデルを利用しないプロキシミティプロバイダの代替的な実施形態が存在する。１つのこのような実施例では、２台の装置は、全地球測位システム（ＧＰＳ）装置と連動するプロキシミティプロバイダによる２台の装置が互いに非常に近接しているという決定時に、相互に近接していることがある。別の実施例では、２台の装置は、プロキシミティプロバイダによる２台の装置のユーザが、同僚、兄弟姉妹、親戚、または何らかの他の人間関係のような予め確立された関係を有しているという決定時に相互に近接していると考えられることがある。
【００２８】
プロキシミティサービス１０６は、プロキシミティプロバイダ１２０からプロキシミティ接続が第２のプロキシミティ装置１０４と確立されているという指示を受信するように構成されている。「指示」は、何らかの内容を示すものであり、通知、表示、印、指標、インジケータ等と言及されてもよい。プロキシミティサービス１０６は、プレステージされたコンテキスト情報を、プロキシミティ接続を介して、第２のプロキシミティ装置１０４と交換するように構成されている。プレステージされたコンテキスト情報の交換は、第２のプロキシミティ装置１０４からのプレステージされたコンテキスト情報の受信と共にプレステージされたコンテキスト情報１２６の送信を含む。プレステージされたコンテキスト情報１２６は、プロキシミティ有効アプリケーション１０８および／または共有サービス１１６によって登録された何らかのプロキシミティ機能を含む。たとえば、プレステージされたコンテキスト情報１２６は、プロキシミティ有効アプリケーション１０８がプロキシミティピア検出用ＡＰＩ  １１２を介してピアを見つけるために登録されているという指示、プロキシミティ有効アプリケーション１０８がプロキシミティメッセージング用ＡＰＩ  １１４を介して名前空間においてメッセージを公開するために、および／または、メッセージに参加するために登録しているという指示、または、共有サービス１１６がプロキシミティ装置と共有されるべきキューに入れられたコンテンツを登録しているという指示を含むことがある。代替的に、プレステージされたコンテキスト情報１２６は、これらのプロキシミティ機能のうちの２つ以上を指示すること、または、これらのプロキシミティ機能を全く指示しないことがある。プロキシミティサービス１０６は、たとえば、装置のユーザインターフェースのフォアグラウンドにおいて現在動いているアプリケーションに関連するプレステージされたコンテキスト情報だけといった、プレステージされたコンテキスト情報１２６の一部だけを送信することがある。
【００２９】
プロキシミティサービス１０６は、受信されたコンテキスト情報をプレステージされたコンテキスト情報１２６と組み合わせることによりプロキシミティ接続のジョイント・プロキシミティ・コンテキストを決定する。プロキシミティ接続のジョイント・プロキシミティ・コンテキストに基づいて、プロキシミティサービス１０６は、ジョイント・プロキシミティ・コンテキストによって指示されたプロキシミティ機能を実現し易くするために１つ以上のプロキシミティアクションを開始するように構成されている。
【００３０】
たとえば、ジョイント・プロキシミティ・コンテキストに、プロキシミティ有効アプリケーション１０８がピア検出ＡＰＩ  １１２を介してピアアプリケーションを見つけるために登録されていることが含まれる場合、プロキシミティサービス１０６は、プロキシミティ接続を介して第２のプロキシミティ装置１０４との帯域外接続タイプをネゴシエートし、その後、接続を開始するように構成されている。第１のプロキシミティ装置１０２および第２のプロキシミティ装置１０４は、それぞれの帯域外接続能力を、プロキシミティ接続を介して、相互に送信するように構成されている。実施形態では、プロキシミティサービス１０６は、他の装置への同時の帯域外接続を開始し、接続に成功したこれらの他の装置の中から用いられる１台を選択するように構成されている。
【００３１】
実施形態では、プロキシミティサービス１０６および第２のプロキシミティ装置１０４上のプロキシミティサービス（図示せず）は、それぞれのプロキシミティ装置上で利用できる帯域外通信タイプを見つけるように構成されている。２つ以上のタイプがネゴシエーション前に確立された場合、プロキシミティサービス１０６は、これらのタイプから選択するように構成されている。第２のプロキシミティ装置１０４上のプロキシミティサービス（図示せず）は、２台の装置上で選択された帯域外通信タイプの不一致が存在しないように、プロキシミティサービス１０６と同じ選択アルゴリズムを動かすように構成されている。別の限定ではない実施形態では、１台の装置は、接続することができたものの中から帯域外通信タイプを選択し、選択されたものを他の装置に通信する。実施形態では、プロキシミティサービス１０６は、最速伝送速度に基づいて帯域外接続を決定し、予め確立された性能目標に基づいて最も迅速に接続するように構成されている。
【００３２】
プロキシミティサービス１０６は、通信プロバイダ１２８を通じて帯域外通信の確立を開始する。通信プロバイダ１２８は、様々な実施形態では、Ｂｌｕｅｔｏｏｔ（登録商標）、Ｗｉ−Ｆｉ（登録商標）、Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔ（商標）、または他の無線プロバイダタイプでもよい。代替的な実施形態は、帯域外通信を行うために有線通信プロバイダを利用することがある。実施形態は、帯域外通信プロバイダのいずれか１つのタイプまたはタイプ群に限定されない。通信プロバイダ１２８は、ソフトウェア要素および無線機ハードウェアを共に含む機能的要素である。通信プロバイダ１２８は、通信媒体１３２を介して第２のプロキシミティ装置１０４の通信プロバイダ１３０と帯域外接続を確立するように構成されている。
【００３３】
帯域外通信接続が確立され、選択されると、プロキシミティサービス１０６は、通信媒体１３２を介する情報の交換を実現し易くする通信情報をプロキシミティ有効アプリケーション１０８に送るように構成されている。一実施形態では、通信情報は、ネットワーキングソケット型インターフェースである。プロキシミティ有効アプリケーション１０８は、第２のプロキシミティ装置１０４上のピアアプリケーションからの通信のためのソケット上で情報を交換するように構成されている。
【００３４】
ジョイント・プロキシミティ・コンテキストに、プロキシミティ有効アプリケーション１０８が１つ以上の名前空間上で公開されるべきメッセージを登録している、および／または、同じまたは異なる名前空間への参加を登録しているという指示が含まれる場合、プロキシミティサービス１０６は、プロキシミティ接続を介して第２のプロキシミティ装置１０４から名前空間情報を受信し、−メッセージが一方の装置上で公開されている名前空間ともう一方の装置上の参加名前空間との間に一致が存在するという決定時に−プロキシミティ接続を介して一致する名前空間上のメッセージを転送および／または受信するように構成されている。
【００３５】
ジョイント・プロキシミティ・コンテキストが、共有サービス１１６はプロキシ接続と共有されるべき、キューに入れられたコンテンツを登録しているという指示を含む場合、プロキシミティサービス１０６は、前述されているように様々な手法のうちの１つで（たとえば、通信プロバイダ１２８および通信媒体１３２を介して）、帯域外接続を確立し、ネゴシエートし、選択するように構成されている。プロキシミティサービス１０６は、共有サービス１１６がキューに入れられたコンテンツを送信するために、通信媒体１３２を介する情報の交換を実現し易くするソケット、または何らかの他の通信情報を共有サービス１１６に送るようにさらに構成されている。
【００３６】
第１のプロキシミティ装置１０２のプレステージされたコンテキスト情報１２６が登録されたプロキシミティ機能の指示を含むだけでなく、第２のプロキシミティ装置１０４からのプレステージされたコンテキスト情報が登録されたプロキシミティ機能の指示を含むことも可能である。たとえば、ジョイント・プロキシミティ・コンテキストは、第２のプロキシミティ装置１０４のアプリケーションがプロキシミティ有効アプリケーション１０８へのピア接続を要求するという指示を含むことがある。この状況では、プロキシミティサービス１０６は、プロキシミティピア用のユーザインターフェース要素１３４を第１のプロキシミティ装置１０２のディスプレイに表示させることがある。プロキシミティピア用のユーザインターフェース要素１３４は、第１のプロキシミティ装置１０２の状態に依存する様々なアクションを含めて、ピアリング要求を承諾するために選択可能な選択肢を含む。
【００３７】
たとえば、プロキシミティ有効アプリケーション１０８は、プロキシミティ接続が確立されるときにその時点で実行されていないことがある。この場合、プロキシミティピア用のユーザインターフェース要素１３４は、ピア接続を確立することに加えて、プロキシミティ有効アプリケーション１０８を立ち上げ、動かし、実行することを承諾するために選択可能な選択肢を提示するように構成されている。別の実施例では、プロキシミティ有効アプリケーション１０８は、この時点で実行されていることがあるが、ユーザインターフェースのフォアグラウンドで動いていないことがある。本実施例では、プロキシミティピア用のユーザインターフェース要素１３４は、プロキシミティ有効アプリケーション１０８をフォアグラウンドにすることを承諾するために選択可能な選択肢を提示するように構成されている。別の実施例では、プロキシミティ有効アプリケーション１０８は、ユーザインターフェースのフォアグラウンドで実行していることがあるが、プロキシミティピア検出ＡＰＩ  １１２を介するピアアプリケーションを見つけるために登録していないことがある。本実施例では、プロキシミティピア用のユーザインターフェース要素１３４は、ピアリング要求を承諾するために選択可能な選択肢を提示するために構成されている。様々な選択可能な承諾選択肢のうちの１つが選択されていることを指示するユーザ装置からの入力の受信時に、プロキシミティサービス１０６は、前述されている手法と同様な手法で、帯域外接続の確立をネゴシエートし、開始し、そして、通信媒体１３２を介する情報の交換を実現し易くするソケット、または何らかの他の通信情報をプロキシミティ有効アプリケーション１０８に送る。
【００３８】
プロキシミティ有効アプリケーション１０８は、第１のプロキシミティ装置１０２にインストールされないことがある。この場合、プロキシミティピア用のユーザインターフェース１３４は、プロキシミティ有効アプリケーション１０８を取得するためアプリケーション獲得サービス１３６を立ち上げるために選択可能な選択肢を提示するように構成されている。アプリケーション獲得サービス１３６は、ユーザがプロキシミティ有効アプリケーション１０８を購入する、または、そうでなければ、取得することを可能にするようにオンラインまたはオフライン・アプリケーション・ストアと相互作用するためにインターフェースを提供することがある。
【００３９】
ジョイント・プロキシミティ・コンテキストは、第２のプロキシミティ装置１０４の共有サービスがコンテンツを第１のプロキシミティ装置１０２に送信するように要求するという指示を含むことがある。この場合、プロキシミティサービス１０６は、プロキシミティ共有用のユーザインターフェース要素１３８を表示させるように構成されている。プロキシミティ共有用のユーザインターフェース要素１３８は、キューに入れられたコンテンツに関する情報と、キューに入れられたコンテンツの受信を承諾するために選択可能な選択肢とを表示するように構成されている。キューに入れられたコンテンツを受信するユーザ承諾を指示するユーザ入力装置からの入力の受信時に、プロキシミティサービス１０６は、第２のプロキシミティ装置１０４への帯域外接続の確立をネゴシエートし、開始するように構成されている。プロキシミティサービス１０６は、キューに入れられたコンテンツの受信を実現し易くするために、通信媒体１３２を介する情報の交換を実現し易くするソケット、または何らかの他の通信情報を共有サービス１１６に送るように構成されている。プロキシミティ共有用のユーザインターフェース要素１３８は、受信されたコンテンツを閲覧するためにアプリケーションを開く選択可能な選択肢を提示するようにさらに構成されている。
【００４０】
プロキシミティサービス１０６は、要求されたプロキシミティ機能を推論することがある。一実施例では、ジョイント・プロキシミティ・コンテキストは、たとえば、装置のユーザインターフェースのフォアグラウンドで動いているアプリケーションとして決定された、プロキシミティフォーカスを有しているとして指示されたアプリケーション（アプリケーション群）の現在状態から推論されたプロキシミティ機能の指示を含むことがある。１つの限定されない実施例では、ユーザは、プロキシミティ接続の確立前にフォアグラウンドアプリケーション上でコンテンツを選択する。しかし、フォアグラウンドアプリケーションは、プロキシミティ装置とコンテンツを共有するために、共有サービスを呼び出していないか、または、選択されていない。プロキシミティサービス１０６は、その代わり−プロキシミティ接続の確立時に−ユーザがプロキシミティ装置とコンテンツを共有することを望んでいることを推論する。このようにして、プロキシミティサービス１０６は、プレステージされたコンテキスト情報１２６がコンテンツを共有する要求を含むことを決定する。プロキシミティサービス１０６は、その結果、プロキシミティ共有用のユーザインターフェース要素１３８を表示させ、選択されたコンテンツをプロキシミティ装置と共有するために選択可能な選択肢を提供する。ユーザ承諾を指示する入力が受信された場合、共有サービス１１６が立ち上げられ、プロキシミティサービス１０６は、発明を実施するための形態の欄に記載されているような様々な手法のうちの１つで、コンテンツを送信するために帯域外通信チャネルを確立し、ネゴシエートし、選択する。
【００４１】
推論されたプロキシミティ機能要求の別の実施例では、フォアグラウンドアプリケーションは、マルチユーザ機能を含むことがあるが、フォアグラウンドアプリケーションは、プロキシミティ装置の中でピアアプリケーションを見つけるためにプロキシミティサービス１０６に登録していない。その代わり、プロキシミティサービス１０６は、（たとえば、マルチユーザ・モードに置かれているフォアグラウンドアプリケーションのような）アプリケーションの状態からピアアプリケーションを見つけるために要求を推論する。プロキシミティサービス１０６は、プロキシミティピア用のユーザインターフェース１３４を第２のプロキシミティ装置１０４とのピア接続の確立を承諾するために選択可能な選択肢と共に表示させる。承諾が取得されると、プロキシミティサービス１０６は、発明を実施するための形態に記載されているようにピア接続を確立するためにアクションを取る。
【００４２】
別の実施例では、ジョイント・プロキシミティ・コンテキストは、第２のプロキシミティ装置１０４が第１のプロキシミティ装置１０２とペアを組むことを要求するという指示を含むことがある。この場合、第２のプロキシミティ装置１０４は、マウス、キーボード、ビデオプロジェクタ、または他の装置のような受動型プロキシミティ装置でもよい。このような場合、プロキシミティプロバイダ１２２は、プロキシミティプロバイダ１２０のアンテナに近接して置かれたときに電力供給される受動型ステッカーまたはタグでもよい。代替的には、第２のプロキシミティ装置１０４は、カメラ、スマートフォン、または他の装置のような能動型プロキシミティ装置でもよい。代替的な実施形態は、プロキシミティを決定し、タグ情報を提供する種々の方法を使用する。たとえば、サービスは、物理的な会議室内にある全ての装置を表現し、プロキシミティプロバイダ層で直接的にタグの概念を導入するためにプロキシミティを決定することがある。いずれの事象でも、プロキシミティ接続を介するペアリング要求の受信時に、プロキシミティサービス１０６は、ペアリング要求を承諾するために選択可能な選択肢を含むプロキシミティペアリング用のユーザインターフェース要素１４０を表示させるように構成されている。第２のプロキシミティ装置１０４によって送信されたペアリング要求は、装置タイプ、モデル番号、製造元などのような装置情報を含むことがある。このようにして、プロキシミティペアリング用のユーザインターフェース要素１４０は、ペアリング要求を承諾するために選択可能な選択肢と共にこの情報を表示するようにさらに構成されている。
【００４３】
プロキシミティサービス１０６は、前述されているように同じまたは類似する手法で、第２のプロキシミティ装置１０４への帯域外通信接続の確立をネゴシエートし、開始する。プロキシミティサービス１０６は、ペアリングサービス１４２が、ペアリング動作を完了すると共にペアを組む装置のコンテンツ転送またはリモート動作、ペアリング装置に関連する付加的なソフトウェアのインストールなどのようなペアリングアクションを可能にするために、第２のプロキシミティ装置１０４と直接通信するため帯域外ペアリング情報をペアリングサービス１４２に送るように構成されている。
【００４４】
最後に、プロキシミティ接続の確立時に、ユーザ・フィードバック・モジュール１４４は、ユーザにプロキシミティ事象および／またはプロキシミティ接続の確立成功を注意喚起するために１つ以上のユーザインターフェース要素を表示させ、オーディオサウンドを再生させ、そして、装置振動を引き起こすように構成されている。
【００４５】
これらの実施例では、２台のプロキシミティ装置のうちの一方のユーザは、いくつかのプロキシミティ機能をプレステージしている（受動型ペアリング装置の場合に、プロキシミティアクションは、受動型ペアリング装置の製造中に、または、プロキシミティプロバイダ１２２の製造中に、または、代替的にプロキシミティプロバイダによって決定された何らかの方法を通じてプレステージされている）。−たとえば、装置を一緒に振ること、装置をタップすること、装置を互いにぴったり接触させて置くこと、共通の物理空間に入れること、または何らかの他のジェスチャーなどによって−装置を物理的に一体として置くとき、または、装置を−インターネット・チャット・ルームのような−仮想空間に置くとき、プロキシミティサービス１０６は、プレステージされたプロキシミティ機能を実現し易くするためにプレステージされたプロキシミティアクションを開始し、それによって、装置が相互に極めて近くに移動したという事実から、ユーザがプレステージされた機能を起動することを意図していたことを推論する。ユーザ・フィードバック・モジュール１４４は、様々な承諾用のユーザインターフェースと共に、プロキシミティ機能を開始するユーザ体験を改善し、ユーザのため付加的なレベルのセキュリティおよびプライバシー保護を提供する。プラットフォームレベルのプロキシミティサービス１０６は、アプリケーションがプロキシミティプロバイダ１２０と直接的に相互作用することなくこれらのユーザ体験をもたらすことを可能にする。このようにして、−プロキシミティ有効アプリケーション１０８および共有有効アプリケーション１１０のような−アプリケーションは、基礎となるプロキシミティ技術にとらわれない可能性がある。
＜プロキシミティ装置例＞
【００４６】
図２は、実施形態に係るプロキシミティサービスを提供するために使用できる装置例のブロック図である。プロキシミティ装置２００は、プロキシミティサービスを実施する能力がある適当なコンピューティング装置として構成されることがある。様々な限定されない実施例によれば、適当なコンピューティング装置は、パーソナルコンピュータ（ＰＣ）、サーバと、サーバファーム、データセンター、専用コンピュータ、タブレットコンピュータ、ゲーム機、スマートフォンと、これらの組み合わせ、または、プロキシミティサービスの全部もしくは一部を記憶し実行する能力がある何らかの他のコンピューティング装置（群）を含むことがある。
【００４７】
１つの構成例では、プロキシミティ装置２００は、１台以上のプロセッサ２０２とメモリ２０４とを備える。プロキシミティ装置２００は、様々な装置との通信を可能にする通信接続（群）２０６をさらに収容することがある。プロキシミティ装置２００は、キーボード、マウス、ペン、音声入力装置、タッチ入力装置などのような１台以上の入力装置２０８と、プロセッサ（群）２０２およびメモリ２０４に通信結合されているディスプレイ、スピーカー、プリンタなどのような１台以上の出力装置２１０とをさらに含むことがある。
【００４８】
メモリ２０４は、プロセッサ（群）２０２上でロード可能かつ実行可能であるプログラム命令と共に、これらのプログラムの実行中に生成された、および／または、これらのプログラムと併せて使用可能であるデータとを記憶することがある。例示された実施例では、メモリ２０４は、プロキシミティ装置２００の基本システム機能性を提供し、何よりもプロキシミティ装置２００の他のプログラムおよびモジュールの動作をもたらすオペレーティングシステム２１２を記憶する。
【００４９】
メモリ２０４は、図１のプロキシミティサービス１０６と同じまたは類似することがあるプロキシミティサービス２１４をさらに含む。メモリ２０４は、プロキシミティプロバイダモジュール２１６を含み、このプロキシミティプロバイダモジュールは、プロキシミティハードウェア２１８と共に、図１のプロキシミティプロバイダ１２０と同じまたは類似することがあるプロキシミティプロバイダを形成する。他の実施形態では、プロキシミティプロバイダモジュール２１６は、別の装置とのプロキシミティ情報を決定するために数多くのハードウェアコンポーネントの機能性を整理統合するソフトウェアを含む。このような実施形態では、プロキシミティハードウェア２１８は、全地球測位システムハードウェアと、オーディオセンサと、ビデオカメラと、他のセンサタイプと、無線機ハードウェアと、加速度計ハードウェアなどとのうちの１つ以上を含むことがある。さらに他の実施形態では、プロキシミティプロバイダは、ソフトウェアのみのプロキシミティプロバイダでもよく、このような実施形態では、プロキシミティプロバイダモジュール２１６は、プロキシミティハードウェア２１８と相互作用しない。プロキシミティプロバイダモジュール２１６によって整理統合されたハードウェアコンポーネントは、通信接続２０６によって表現された１つ以上のネットワーキングコンポーネントを含むことがある。
【００５０】
メモリ２０４は、図１のプロキシミティ有効アプリケーション１０８および共有有効アプリケーション１１０とそれぞれに同一または類似するプロキシミティ有効アプリケーション（群）２２０および共有有効アプリケーション（群）２２２を含む。
【００５１】
メモリ２０４は、図１のペアリングサービス１４２と同一または類似することがあるペアリングサービス２２４を含む。メモリ２０４はまた、図１の共有サービス１１６と同一または類似することがある共有サービス２２６を含む。そして、メモリ２０４は、図１のアプリケーション獲得サービス１３６と同一または類似することがあるアプリケーション獲得サービス２２８を含む。プロキシミティ装置２００は、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｗｉ−Ｆｉ（登録商標）、Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔ（商標）、または他のワイヤレス無線機タイプのようなワイヤレス無線機２３０を含むことがある。
＜プレステージされたプロキシミティアクションを実行するための動作例＞
【００５２】
図３は、プレステージされたプロキシミティ機能がプロキシミティ接続の確立に応答してアプリケーションおよび様々なオペレーティングシステム要素に代わって起動されることを可能にするプロセス例３００を示すフローチャートである。２台のプロキシミティ装置が相互に近接して置かれていることに応答して、プロキシミティ接続がブロック３０２で装置間に確立される。装置は、装置を相互に近くで振ること、装置を互いにぴったり合わせて置くこと、共通の物理的位置に入れること、インターネット・チャット・ルームのような共通の仮想空間に置かれること、または、ユーザ側の何らかの他のジェスチャーによって相互に近接して置かれることがある。
【００５３】
プロキシミティ装置のプロキシミティサービスは、ブロック３０４で、プロキシミティプロバイダからのプロキシミティ接続が確立されているという指示を受信する。プロキシミティプロバイダは、接続確立指示を提供するためにメッセージをプロキシミティサービスに送るように構成されることがある。
【００５４】
装置のプロキシミティサービスは、ブロック３０６で、プレステージされたプロキシミティコンテキスト情報を、プロキシミティ接続を介して、他の装置に送信する。プレステージされたプロキシミティコンテキスト情報は、要求されている、および／または、プロキシミティサービスに登録されているプロキシミティ機能を含むことがある。プレステージされたプロキシミティコンテキストの限定されない実施例は、装置のアプリケーションが別の装置上でピアアプリケーションを見つけるために登録されている、装置のアプリケーションがペアリング関係を作成することを求めて１つ以上の名前空間にメッセージを公開している、および／または、同じまたは異なる名前空間に参加している、および、装置の共有サービスがプロキシミティ装置に送信されるべきコンテンツをキューに入れている、という指示を含む。
【００５５】
プロキシミティサービスは、プロキシミティ接続が確立されていることを指示するために、ブロック３０８で、ユーザフィードバックがユーザに提供されるようにすることがある。ユーザフィードバックは、ユーザインターフェース表示もしくは「トースト」、オーディオクリップもしくはサウンドの再生、装置振動、または何らかの他のユーザフィードバックを含むことがある。フィードバックは、プロキシミティ接続が確立されていることをユーザに注意喚起する。代替的なフィードバックの仕組みが実施形態の範囲から逸脱することなく使用されることがある。
【００５６】
プロキシミティサービスは、ブロック３１０で、他の装置からプロキシミティ接続を介してプレステージされたプロキシミティコンテキスト情報を受信する。受信されたプレステージされたプロキシミティコンテキスト情報は、他の装置のアプリケーションがプロキシミティ装置上でピアアプリケーションを見つけるために登録されている、他の装置のアプリケーションがメッセージを１つ以上の名前空間に公開している、および／または、同じまたは異なる名前空間に加入している、他の装置の共有サービスがプロキシミティ装置に送信されるべきコンテンツをキューに入れている、および、他の装置が装置とのペアリング接続を形成するように要求している、という指示を含むことがある。
【００５７】
プロキシミティ接続のジョイント・プロキシミティ・コンテキストは、ブロック３１２で決定される。ジョイント・プロキシミティ・コンテキストは、送信され、受信された、プレステージされたプロキシミティコンテキスト情報だけでなく、要求されたピアアプリケーションが装置上で動いている、および／または、インストールされているか否か、２台の装置の通信能力、アプリケーションがユーザインターフェースのフォアグラウンドで動いているか否かのようなアプリケーション状態などのような装置状態情報も含む。
【００５８】
プロキシミティ接続の決定されたジョイント・プロキシミティ・コンテキストに基づいて、プロキシミティサービスは、ブロック３１４で、プレステージされたプロキシミティ機能を実現し易くするために１つ以上のプロキシミティアクションを開始する。このようなプレステージされたプロキシミティアクションは、通信プロバイダを通じて他の装置への帯域外接続を確立すること、様々なアクションを承諾するためにユーザインターフェースを表示させること、アプリケーションを立ち上げること、アプリケーションをユーザインターフェースのフォアグラウンドにすること、共有のためキューに入れられたコンテンツを転送すること、他の装置からコンテンツを受信すること、装置のアプリケーションと他の装置上で動いている別のアプリケーションとの間にピア接続を確立すること、ピアアプリケーションを取得するためにアプリケーション獲得サービスを立ち上げることなどを含むことがある。これら、および、他のプレステージされたプロキシミティアクションは、発明を実施するための形態の欄の他の場所により詳しく記載されている。
＜プレステージされたピア接続を実行するための動作例＞
【００５９】
図４は、プロキシミティ接続を使用してプレステージされたピア接続を開始し確立するプロセス例４００を示すフローチャートである。プロキシミティ有効アプリケーションは、ブロック４０２で、プロキシミティ装置上のピアアプリケーションを見つけるために登録する。ブロック４０４で、他の装置とのプロキシミティ接続が確立されると、プロキシミティサービスは、ブロック４０６で、プレステージされたコンテキスト情報を他の装置に送信する。プレステージされたコンテキスト情報は、プロキシミティ有効アプリケーションが、ピアを特定してピアアプリケーションとのピア接続を確立するように登録している、という指示を含む。
【００６０】
プロキシミティ接続のジョイント・プロキシミティ・コンテキストがブロック４０８で決定される。図４に記載された実施形態では、ジョイント・プロキシミティ・コンテキストは、プロキシミティ有効アプリケーションがピアを見つけるために登録されているという指示を含む。実施形態では、プロキシミティサービスは、ブロック４１０で、プロキシミティプロバイダを介して、帯域外通信チャネルを安全にするため使用できるプロキシミティ接続の共有秘密鍵を交換するものである。
【００６１】
装置のプロキシミティサービスは、ブロック４１２で、他の装置への１つ以上の帯域外通信チャネルの確立を開始する。他の装置は、たとえば、他の装置のユーザがピア接続を承諾することを拒む場合、または、他の装置にピアアプリケーションがインストールされていない場合のように、帯域外通信チャネルをセットアップすることに同意しないということが起こりうる。このような場合、帯域外通信チャネルは、確立されないことになる。
【００６２】
装置のプロキシミティサービスは、ブロック４１４で、帯域外チャネルタイプをネゴシエートする。２つ以上の帯域外通信チャネルがブロック４１２でセットアップに成功することがある。この場合、選択アルゴリズムがピア接続を実現し易くするのに用いられる帯域外通信チャネルのうちの１つを選択するために一方または両方の装置上で動かされる。実施形態では、選択アルゴリズムは、最高速度および最も迅速な接続時間に基づいて帯域外通信接続タイプを選択する。Ｂｌｕｅｔｏｏｔｈ（商標）、ＷｉＦｉ、およびＷｉＦｉ  ｄｉｒｅｃｔが両方の装置によってサポートされる１つの限定されない実施例では。開始装置は、３つ全てを使用して通信接続の確立を開始する。一例では、Ｂｌｕｅｔｏｏｔｈ（商標）が非常に迅速に接続することがあり、そして、これは、適切な帯域幅を提供するので、開始装置は、これを選択し、開始途中の他の接続を放棄する。
【００６３】
代替的な実施形態では、プロキシミティサービスは、帯域外通信の確立前に帯域外通信タイプをネゴシエートすることがある。このような実施形態では、プロキシミティサービスは、装置の通信能力に関するデータを送信し、プロキシミティサービスは、他の装置の通信能力に関するデータを受信する。プロキシミティサービスは、適合する通信能力を探索し、両方の装置の能力に適合する通信タイプを選択する。２つ以上の通信タイプが適合する場合、プロキシミティサービスは、所定のプロセスを使用して能力のうちの１つを選択する。他の装置は、選択された通信タイプの間に不適合がないことを保証するために同じプロセスを使用することがあり；代替的に、一方の装置が通信タイプを選択し、どの通信タイプが選択されたかをもう一方の装置に知らせることがある。
【００６４】
プロキシミティサービスは、ブロック４１６で、通信ソケット、または通信インターフェースを介する情報の交換を実現し易くする何らかの他の通信情報をプロキシミティ有効アプリケーションに送る。通信ソケット（または他の通信情報）は、プロキシミティ有効アプリケーションが帯域外チャネルを介してピアアプリケーションと送受信することを可能にする。
【００６５】
図５は、プロキシミティ装置からのピア接続案内の受信時にプレステージされたピア接続を開始するプロセス例５００を示すフローチャートである。装置のプロキシミティサービスは、ブロック５０２で、プロキシミティ装置とのプロキシミティ接続が確立されたという指示を受信する。発明を実施するための形態の欄に記載されているように、ブロック５０４で、プレステージされたコンテキスト情報が装置間で交換され、プロキシミティ接続のジョイントコンテキストが確立される。図５に示された実施形態では、ジョイントコンテキストは、他の装置のアプリケーションがプロキシミティ装置のピアアプリケーションとのピア接続を形成するために登録しているという指示を含む。
【００６６】
プロキシミティサービスは、ブロック５０６で、ピア接続に対応するピアアプリケーションが装置にインストールされているか否かを決定する。ピアアプリケーションがインストールされていないという決定時に、プロキシミティサービスは、ブロック５０８で、アプリケーションの獲得を承諾するために選択可能な選択肢を提供するアプリケーション獲得用のユーザインターフェース要素を表示させる。ユーザに承諾選択肢を与えることは、アプリケーション獲得のプロセスを簡素化することによりユーザ体験を改善し、さらに、無許可のアプリケーションがユーザの装置にダウンロードされる、または、インストールされることを防止するのに役立つ。
【００６７】
ブロック５１０で、アプリケーションを獲得する承諾の受信時に、装置は、ブロック５１２で、アプリケーション獲得サービスを立ち上げる。アプリケーション獲得サービスは、ユーザがピアアプリケーションを購入するか、または、そうでなければ、取得するためにオンラインまたはオフライン・アプリケーション・ストアへのインターフェースを提供することがある。ピアアプリケーションが装置にインストールされると、プロセスは、新しいプロキシミティ接続の確立から再び始まることがある。代替的な実施形態では、プロキシミティサービスは、後述されるように、新たに獲得されたアプリケーションとのピア接続を開始する対策を講じる。
【００６８】
ピアアプリケーションにインストールされたという決定時に、プロキシミティサービスは、ブロック５１４で、プロキシミティプロバイダを介して、帯域外通信チャネルを安全にするために使用できるプロキシミティ接続の共有秘密鍵を交換する。
【００６９】
プロキシミティサービスは、ブロック５１６で、他の装置との１つ以上の帯域外通信チャネルの確立を開始する。−たとえば、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｗｉ−Ｆｉ（登録商標）、Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔ（商標）、または他のプロバイダタイプのような−通信プロバイダは、ピア接続のための通信チャネルを確立するために使用されることがある。
【００７０】
プロキシミティサービスは、ブロック５１８で、帯域外通信チャネルタイプをネゴシエートする。帯域外通信チャネルタイプは、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｗｉ−Ｆｉ（登録商標）、Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔ（商標）、または他のプロバイダタイプでもよい。プロキシミティサービスは、両方の装置で利用できる帯域外通信チャネルタイプを選択し、２つ以上の帯域外通信チャネルタイプが両方の装置で利用できる場合、所定の方法論に従って１つを選択する。
【００７１】
たとえば、２つ以上の帯域外通信チャネルがブロック５１６で確立されることがある。この場合、一方または両方の装置は、それらの中から使用する１つを選択するために選択アルゴリズムを採用する。代替的な実施形態では、帯域外通信チャネルタイプは、何らかの帯域外通信チャネルの確立前にネゴシエートされる。実施形態では、選択アルゴリズムは、最高速度および最も迅速な接続時間に基づいて帯域外接続タイプを選択する。Ｂｌｕｅｔｏｏｔｈ（商標）、ＷｉＦｉ、およびＷｉＦｉ  ｄｉｒｅｃｔが両方の装置によってサポートされる１つの限定されない実施例では、これらの装置のうちの一方が３つ全てを使用して通信接続の確立を開始する。一例では、Ｂｌｕｅｔｏｏｔｈ（商標）が非常に迅速に接続し、そして、これは、適切な帯域幅を提供するので、開始装置は、これを選択し、開始途中の他の接続を放棄する。他の例では、何らかの他の接続タイプが選択されることがある。
【００７２】
プロキシミティサービスは、ブロック５２０で、ピアアプリケーションが装置上で実行中であるか否かを決定する。アプリケーションが動いていないという決定時に、プロキシミティサービスは、ブロック５２２で、アプリケーションの実行を承諾するために選択可能な選択肢を提供し、ピア接続を確立するユーザインターフェース要素を表示させる。
【００７３】
ピアアプリケーションが動いているという決定時に、プロキシミティサービスは、ブロック５２４で、アプリケーションがプロキシミティフォーカスを有しているか否かを決定する（一実施例では、ユーザインターフェースのフォアグラウンドで動いているアプリケーションとして決定される）。アプリケーションがプロキシミティフォーカスを有していない場合（対象として特定されない場合）、プロキシミティサービスは、ブロック５２６で、アプリケーションにプロキシミティフォーカスを当てることを承諾し、そして、ピア接続を承諾するために選択可能な選択肢を提供するユーザインターフェース要素を表示させる。代替的な実施形態は、特有のアプリケーションがプロキシミティ通信を取り扱うことを必要としていることをユーザに指示する種々の様式を使用するように構成されている。そして、代替的な実施形態は、どのアプリケーションにプロキシミティフォーカスが当たっているかを決定するためにユーザインターフェースフォーカス以外の何か他のものを使用することがある。
【００７４】
ピアアプリケーションがプロキシミティフォーカスを有しているという決定時に、プロキシミティサービスは、ブロック５２８で、ピアアプリケーションがプロキシミティ装置上でピアアプリケーションを見つけるために予め登録しているか否かを決定する。図５に示された実施形態では、他の装置上のアプリケーションは、ピアを見つけるために登録している。ブロック５２８は、両方の装置上のアプリケーションがプロキシミティ装置上でピアアプリケーションを見つけるために登録していることを本質的に決定する。
【００７５】
フォアグラウンドで動いているピアアプリケーションがピアアプリケーションを見つけるために登録されていないという決定時に、プロキシミティサービスは、ブロック５３０で、ピア要求を承諾するために選択可能な選択肢をユーザに提供するユーザインターフェース要素を表示させる。ユーザに承諾選択肢を提供することは、ユーザがこれらの装置に対する制御を維持し、それによって、セキュリティおよびユーザのプライバシーを改善することを可能にする。
【００７６】
ブロック５３２で、ユーザがピア接続を形成することを承諾することを指示するユーザ入力装置からの入力の受信時に（または、アプリケーションがピアを見つけるために予め登録している場合）、プロキシミティサービスは、ブロック５３４で、通信ソケット、または通信媒体を介する情報の交換を実現し易くする何らかの他の通信情報をピアアプリケーションに戻し、ピアアプリケーションが他の装置上でこのピアと通信することを可能にする。
【００７７】
プロセス５００は、ユーザがプロキシミティ接続を確立し、他の装置とのピア接続の形成を承諾し、他の装置とのマルチユーザ協調に直接的に参加するために、自分の装置を別の装置と近接させることを可能にする。プラットフォームレベルのプロキシミティサービスは、プロキシミティプロバイダに直接的にプログラムするという要件なしに、かつ、プロキシミティ接続が確立されているときにアプリケーションが動いているという要求なしに、アプリケーションがこの体験をユーザに提供することを可能にする。
＜プレステージされたメッセージ転送を実行するための動作例＞
【００７８】
図６は、プロキシミティ接続を通じてプレステージされたメッセージ転送を開始するプロセス例６００を示すフローチャートである。プロキシミティ有効アプリケーションは、ブロック６０２で、メッセージを１つ以上の名前空間に公開することがある。名前空間は、標準ベースの名前空間でもよく、または、名前空間は、独自の、および／または、任意の名前空間でもよい。プロキシミティ有効アプリケーションは、プロキシミティメッセージングＡＰＩを呼び出すことにより公開されるべきメッセージを登録することがある。
【００７９】
同じまたは異なるプロキシミティ有効アプリケーションは、ブロック６０４で、１つ以上の名前空間に参加することもある。プロキシミティ有効アプリケーションは、プロキシミティ有効アプリケーションが公開する先の同じまたは異なる名前空間に参加することがある。プロキシミティ有効アプリケーションは、プロキシミティメッセージングＡＰＩを呼び出すことにより名前空間参加を登録することがある。
【００８０】
ブロック６０６で、別の装置とのプロキシミティ接続が確立されたと決定されたとき、プロキシミティサービスは、ブロック６０８で、他の装置と名前空間情報を交換する。プロキシミティサービスは、プロキシミティ有効アプリケーションが参加する、および／または、公開先とする名前空間を送信し、他の装置が参加する、および／または、公開先とする名前空間を受信する。プロキシミティサービスは、プロキシミティ有効アプリケーションがメッセージを公開した名前空間を送信し、他の装置が公開した名前空間を受信する。
【００８１】
ジョイント・プロキシミティ・コンテキストは、ブロック６１０で、公開すべきメッセージ、および／または、他の装置から受信すべきメッセージが存在するという指示を組み込むことが決定される。プロキシミティサービスは、たとえば、装置が公開先とする名前空間と他の装置が参加する名前空間とが適合していること、または、装置が参加する名前空間と他の装置が参加先とする名前空間とが適合していることを決定する。
【００８２】
プロキシミティサービスは、ブロック６１２で、プロキシミティ接続を介して、適合する参加先の名前空間についてのメッセージを受信する。受信されると、プロキシミティサービスは、ブロック６１４で、受信されたメッセージを名前空間への参加を登録したプロキシミティ有効アプリケーションに提供する。プロキシミティサービスは、プロキシミティ有効アプリケーションが未だ動いていない場合に、プロキシミティ有効アプリケーションを立ち上げさせる。プロキシミティサービスは、ブロック６１６で、適合する名前空間について公開されたメッセージを、プロキシミティ接続を介して、他の装置に送信する。代替的な実施形態では、メッセージは、最初に適合する名前空間を決定することなく交換される。
【００８３】
１つの限定されない実施例では、プロキシミティ有効アプリケーションは、名刺名前空間に参加するように構成されている名刺アプリケーションでもよい。名刺アプリケーションは、Ｖｃａｒｄを同じ名前空間で公開するように構成されることもある。たとえば、２台の装置を一緒にタップすることにより、別の装置とのプロキシミティ接続が確立されたとき、他の装置によって公開されたＶｃａｒｄが名刺アプリケーションによって受信され、名刺アプリケーションによって公開されたＶｃａｒｄが他の装置に転送される。このようにして、ユーザは、単に自分たちの装置を一体として触れることにより連絡先情報を交換できる。さらに、プラットフォームベースのプロキシミティサービスは、アプリケーション開発者が装置の独自のプロキシミティ技術に直接的にプログラムする必要なしに、このユーザ体験をもたらすことを可能にする。
【００８４】
実施形態では、プロキシミティサービスは、特定の名前空間の受信者として構成されることがある。このような実施形態では、プロキシミティサービスは、プロキシミティサービスを介して交換されたプロキシミティ名前空間メッセージに含まれているアプリケーションを特定するために、プロキシミティサービスの動作環境内で利用可能である他のサービスを活用することがある。一実施形態では、プロキシミティサービスは、データをコンピュータ読み取り可能な記憶媒体に存続させ、その後、データをユーザに提示する目的のため、または、何らかの他の目的のため、存続させられたデータと関係しているアプリケーションを起動させるために既存のプラットフォームサービスを使用する。プロキシミティサービスは、直接的または間接的に、ユーザインターフェースを提示させ、ユーザがアプリケーションの起動を承諾することを可能にする。これは、全体的な体験のセキュリティを保つことがある。１つの限定されない実施例では、プロキシミティサービスは、Ｖｃａｒｄデータを格納しているプロキシミティ名前空間を認識するように構成されている。プロキシミティサービスは、Ｖｃａｒｄデータをコンピュータ読み取り可能な記憶媒体に存続させ、その後、存続されたＶｃａｒｄデータを提示する、または、そうではない場合に処理するように立ち上げられるべきアプリケーションを決定するために既存のシステム設備を利用する。
【００８５】
さらに別の限定されない実施例では、プロキシミティ有効アプリケーションは、基礎となるプロキシミティ技術を認識し、プロキシミティ技術と直接的に通信するために抽象化ＡＰＩを使用できる。１つの限定されない実施例では、プロキシミティ有効アプリケーションは、ＮＦＣデータ交換フォーマット（ＮＤＥＦ）ペイロードを構築し、これらをＮＦＣプロキシミティプロバイダにそのまま公開する。
＜プレステージされた装置ペアリングを実行するための動作例＞
【００８６】
図７は、プレステージされた装置ペアリング機能を開始するプロセス例７００を示すフローチャートである。プロキシミティサービスは、ブロック７０２で、別の装置とのプロキシミティ接続が確立されているという指示を受信する。プロキシミティサービスは、ブロック７０４で、プロキシミティ接続のジョイント・プロキシミティ・コンテキストが他の装置がペアリング接続の確立を要求するという指示を含んでいると決定する。他の装置は、マウス、キーボード、スピーカー、ビデオプロジェクタ、または他の受動型装置のような受動型プロキシミティ装置でもよい。代替的に、他の装置は、カメラ、スマートフォン、パーソナル音楽プレーヤーなどのような能動型プロキシミティ装置でもよい。装置対アプリケーションのペアリングを利用する実施形態のような実施形態では、プロキシミティサービスは、ブロック７０６で、ペアリング装置との通信のための１つ以上の永続的な帯域外通信チャネルの確立を開始する。Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｗｉ−Ｆｉ（登録商標）、Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔ（商標）、または他のプロバイダタイプのような選択された通信プロバイダは、ペアリング装置との接続を確立する。
【００８７】
プロキシミティサービスは、ブロック７０８で、２台の装置のペアリングのため使用されるべき帯域外通信チャネルタイプをネゴシエートする。帯域外通信チャネルタイプは、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｗｉ−Ｆｉ（登録商標）、Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔ（商標）、または他の通信プロバイダタイプでもよい。プロキシミティサービスは、両方の装置で利用できる帯域外通信チャネルタイプを選択し、２つ以上の帯域外通信チャネルタイプが両方の装置で利用できる場合、所定の方法論に従って１つを選択する。
【００８８】
たとえば、２つ以上の帯域外通信チャネルがブロック７０６で確立されることがある。この場合、一方または両方の装置は、それらの中から使用する１つを選択するために選択アルゴリズムを採用する。代替的な実施形態では、帯域外通信チャネルタイプは、何らかの帯域外通信チャネルの確立前にネゴシエートされる。実施形態では、選択アルゴリズムは、最高速度および最も迅速な接続時間に基づいて帯域外接続タイプを選択する。Ｂｌｕｅｔｏｏｔｈ（商標）、ＷｉＦｉ、およびＷｉＦｉ  ｄｉｒｅｃｔが両方の装置によってサポートされる１つの限定されない実施例では、これらの装置のうちの一方が３つ全てを使用して通信接続の確立を開始する。一例では、Ｂｌｕｅｔｏｏｔｈ（商標）が非常に迅速に接続することがあり、そして、これは、適切な帯域幅を提供するので、開始装置は、これを選択し、開始途中の他の接続を放棄する。他の例では、何らかの他の接続タイプが選択されることがある。
【００８９】
（装置対アプリケーションのペアリングではなく）装置対オペレーティングシステムのペアリングを利用する実施形態のような代替的な実施形態では、ブロック７０６および７０８によって表されたプロセスは、省かれることがある。これらの例では、オペレーティングシステムのペアリングサービスは、帯域外通信チャネルがプロキシミティサービスによって開始されるのではなく、帯域外通信チャネルを後の時点で開始および／またはネゴシエートすることがある。このようなペアリングサービス機能は、この発明を実施するための形態の欄の範囲を越えている。
【００９０】
プロキシミティサービスは、ブロック７１０で、ペアリング要求を承諾するために選択可能な選択肢を提供するユーザインターフェース要素を表示させる。ユーザインターフェース要素は、装置タイプ、製造元、モデル番号などのような他の装置に関する情報を含むことがある。この情報は、プロキシミティ接続を介して受信されたペアリング要求に含まれるか、ペアリング要求と共に含まれることがある。
【００９１】
ブロック７１２で、ユーザがペアリング要求を承諾することを指示するユーザ装置からの入力の受信時に、プロキシミティサービスは、ブロック７１４で、ペアリングプロセスを完了し、コンテンツ転送およびペアリング装置のリモート制御のようなペアリング体験を提供するために、帯域外ペアリング情報を装置のペアリングサービスまたは装置のアプリケーションのいずれかに送る。装置対アプリケーションペアリングを利用する実施形態のような実施形態では、通信ソケット、または通信媒体を介する情報の交換を実現し易くする何らかの他の通信情報は、ペアリング装置との帯域外通信接続を確立するためにペアリングアプリケーションに送られる。
【００９２】
実施形態は、ユーザが装置をパーソナルコンピュータにタップすることにより装置を自分のパーソナルコンピュータとペアに組むことを許可する。たとえば、ユーザは、マウスをパーソナルコンピュータにタップし、前述のペアリングアクションを自動的に開始することがある。ユーザがマウスとのペアリングを承諾すると、マウスおよびパーソナルコンピュータは、通信するために、たとえば、Ｂｌｕｅｔｏｏｔｈ（登録商標）接続を使用し、マウスがパーソナルコンピュータのユーザインターフェースの内部でポインタを制御することを可能にすることがある。
＜プレステージされたコンテンツ共有を実行するための動作例＞
【００９３】
図８は、プロキシミティ装置とのプレステージされたコンテンツの共有を可能にするために帯域外接続を開始し確立するプロセス例８００を示すフローチャートである。共有有効アプリケーションは、ブロック８０２で、共有サービス呼び出す。共有サービスは、アプリケーションがコンテンツを互いに共有することを可能にするオペレーティングシステム要素である。共有サービスは、ユーザインターフェース要素を提示することがあり、ユーザは、このユーザインターフェース要素からデータを共有する他のアプリケーションを選択することができる。共有サービスは、データをプロキシミティ装置と共有するために選択肢をユーザにさらに提示することがある。代替的な実施形態は、承諾選択肢をユーザに提示しないことがある。
【００９４】
共有サービスは、ブロック８０４で、プロキシミティ装置とコンテンツを共有するために要求を受信する。共有サービスは、ブロック８０６で、コンテンツをプロキシミティ装置に送信するために要求をプロキシミティサービスに登録する。
【００９５】
プロキシミティサービスは、ブロック８０８で、プロキシミティプロバイダから、プロキシミティ接続が確立されたという指示を受信する。プロキシミティサービスは、ブロック８１０で、キューに入れられたコンテンツがプロキシミティ装置との共有のため登録されているという指示を含むプレステージされたプロキシミティコンテキスト情報を他の装置と交換することになる。
【００９６】
プロキシミティサービスは、ブロック８１２でジョイント・プロキシミティ・コンテキストを決定する。図８に示された実施形態では、ジョイント・プロキシミティ・コンテキストは、共有サービスがプロキシミティ装置に送信するためにコンテンツをキューに入れているという指示を含む。プロキシミティサービスは、ブロック８１４で、プロキシミティプロバイダを介して、帯域外通信チャネルを安全にするために使用できるプロキシミティ接続の共有秘密鍵を交換する。
【００９７】
プロキシミティサービスは、ブロック８１６で、プロキシミティ装置との通信のための帯域外通信チャネルの確立を開始する。Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｗｉ−Ｆｉ（登録商標）、Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔ（商標）、または他の通信プロバイダタイプのような選択された通信プロバイダは、共有装置との接続を確立する。
【００９８】
プロキシミティサービスは、ブロック８１８で、帯域外通信チャネルタイプをネゴシエートする。発明を実施するための形態の欄に記載されているように、ネゴシエーションは、２台の装置の通信能力に関する情報の交換と、帯域外通信チャネルのため使用されるべき通信タイプの選択とを含むことがある。通信タイプを選択するプロセスは、予め定められ、両方の装置で同じであり、両方の装置が同じ通信タイプを選択することを確実にする。実施形態では、複数の帯域外チャネルは、ブロック８１６で、確立に成功していることがあり、一方または両方の装置は、選択アルゴリズムを使用して、これらの帯域外チャネルの中で使用すべきものを決定する。実施形態では、選択アルゴリズムは、最高速度および最も迅速な接続時間に基づいて帯域外接続タイプを選択する。Ｂｌｕｅｔｏｏｔｈ（商標）、ＷｉＦｉ、およびＷｉＦｉ  ｄｉｒｅｃｔが両方の装置によってサポートされる１つの限定されない実施例では。開始装置は、３つ全てを使用して通信接続の確立を開始する。一例では、Ｂｌｕｅｔｏｏｔｈ（商標）が非常に迅速に接続することがあり、そして、これは、適切な帯域幅を提供するので、開始装置は、これを選択し、開始途中の他の接続を放棄する。
プロキシミティサービスは、ブロック８２０で、コンテンツの送信を承諾するために選択可能な選択肢付きのユーザインターフェース要素を表示することにより、転送を実現し易くする。ユーザがコンテンツの共有を承諾することを指示するデータの受信時に（たとえば、ブロック８２２などにおいて）、プロキシミティサービスは、ブロック８２４で、帯域外通信チャネルを介してプロキシミティ装置にコンテンツを送信するために使用できる、通信ソケット、または通信媒体を介する情報の交換を実現し易くするために何らかの他の通信情報を共有サービスに提供する。共有サービスは、その後、ブロック８２６で、帯域外通信チャネルを介して共有コンテンツをプロキシミティサービスに送信する。
【００９９】
共有サービスは、ブロック８２８で、コンテンツ送信の進行を指示するためにユーザインターフェース要素を表示させる。このようにして、プロキシミティ装置とコンテンツを共有するために、ユーザは、選択されたコンテンツをキューに入れるためにアプリケーションを動かし、ユーザインターフェース要素を介して共有サービスを呼び出し、キューに入れられたコンテンツをプロキシミティ装置に送信するために選択する。ユーザは、プロキシミティ接続を開始するために、２台の装置をタップし、２台の装置を一緒に振り、２台の装置を互いにぴったり合わせて置き、または何らかの他のジェスチャーを実行する。その後、転送が開始され、ユーザは、進行用のユーザインターフェースから転送が完了したときを見分けることができる。プロキシミティサービスは、共有サービスと併せて、アプリケーション開発者がプロキシミティプロバイダまたは帯域外通信プロバイダのいずれかに直接的にプログラムする必要なしにこれらのユーザ体験をもたらすことを可能にする。
【０１００】
図９は、プロキシミティ装置からのコンテンツ共有案内の受信時に帯域外接続を開始し確立するプロセス例９００を示すフローチャートである。プロキシミティサービスは、ブロック９０２で、プロキシミティプロバイダからプロキシミティ接続が確立されているという指示を受信する。プロキシミティ接続は、ユーザが２台の装置を一緒にタップすること、これらを一緒に振ること、これらを互いにぴったり合わせて置くこと、共通の物理的または仮想的な位置に入れること、または何らかの他のジェスチャーを実行することによって開始されることがある。
【０１０１】
プロキシミティサービスは、ブロック９０４で、プロキシミティ接続を介してプレステージされたコンテキスト情報を他の装置と交換する。図９に示された実施形態では、プロキシミティサービスが動いている方の装置は、送信すべきプレステージされたコンテキスト情報がない。
【０１０２】
プロキシミティサービスは、ブロック９０６で、プロキシミティ接続のジョイント・プロキシミティ・コンテキストに、他の装置が装置と共有されるべきコンテンツをキューに入れているという指示が含まれていると決定する。他の装置は、図８に関連して前述した手法と同じまたは類似する手法で共有するためこのコンテンツを選択していることがある。
【０１０３】
プロキシミティサービスは、ブロック９０８で、プロキシミティプロバイダを介して、帯域外通信チャネルを安全にするために使用できるプロキシミティ接続の共有秘密鍵を交換する。
【０１０４】
プロキシミティサービスは、ブロック９１０で、プロキシミティ装置との通信のための１つ以上の帯域外通信チャネルの確立を開始する。Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｗｉ−Ｆｉ（登録商標）、Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔ（商標）、または他の通信プロバイダタイプのような選択された通信プロバイダは、ペアリング装置との接続を確立する。
【０１０５】
プロキシミティサービスは、ブロック９１２で、帯域外通信チャネルタイプをネゴシエートする。帯域外通信チャネルタイプは、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｗｉ−Ｆｉ（登録商標）、Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔ（商標）、または他の通信プロバイダタイプでもよい。プロキシミティサービスは、両方の装置で利用できる帯域外通信チャネルタイプを選択し、２つ以上の帯域外通信チャネルタイプが両方の装置で利用できる場合、所定の方法論に従って１つを選択する。たとえば、２つ以上の帯域外通信チャネルは、ブロック９１０で確立されることがある。この場合、一方または両方の装置は、これらの帯域が通信チャネルのうち使用すべき１つを選択するために選択アルゴリズムを採用する。
【０１０６】
実施形態では、選択アルゴリズムは、最高速度および最も迅速な接続時間に基づいて帯域外通信接続タイプを選択する。Ｂｌｕｅｔｏｏｔｈ（商標）、ＷｉＦｉ、およびＷｉＦｉ  ｄｉｒｅｃｔが両方の装置によってサポートされる１つの限定されない実施例では。開始装置は、３つ全てを使用して通信接続の確立を開始する。一例では、Ｂｌｕｅｔｏｏｔｈ（商標）が非常に迅速に接続することがあり、そして、これは、適切な帯域幅を提供するので、開始装置は、これを選択し、開始途中の他の接続を放棄する。代替的な実施形態では、帯域外通信チャネルタイプは、何らかの帯域外通信チャネルの確立前にネゴシエートされる。
【０１０７】
プロキシミティサービスは、ブロック９１４で、他の装置からの共有コンテンツの受信を承諾するために選択可能な選択肢付きのユーザインターフェース要素を表示させることにより共有を実現し易くする。共有コンテンツの受信を承諾するために選択可能な選択肢をユーザに提供することは、ユーザ体験を装置プライバシーおよびセキュリティと共に改善する。ユーザインターフェースは、ファイル名、ファイルタイプ、ファイルサイズなどのような共有コンテンツに関する情報をさらに含むことがある。
【０１０８】
ブロック９１６で、ユーザ承諾を指示するユーザ入力の受信時に、プロキシミティサービスは、ブロック９１８で、装置の共有サービスを立ち上げさせる。共有サービスは、共有コンテンツの受信を取り扱う。
【０１０９】
プロキシミティサービスは、ブロック９２０で、帯域外通信チャネルを介してプロキシミティ装置にコンテンツを送信するために使用できる、通信ソケット、または通信媒体を介する情報の交換を実現し易くするために何らかの他の通信情報を共有サービスに提供する。共有サービスは、ブロック９２２で、帯域外通信チャネルを介してプロキシミティ装置から共有コンテンツを受信する。
【０１１０】
共有サービスは、ブロック９２４で、コンテンツ送信の進行を指示するためにユーザインターフェース要素を表示させる。これは、ユーザが、コンテンツが転送中であることを見ることを可能にさせ、コンテンツ転送が完了したときにユーザに警告する。
【０１１１】
共有サービスは、ブロック９２６で、受信されたコンテンツを閲覧するアプリケーションを立ち上げるために選択可能な選択肢付きのユーザインターフェース要素を表示させる。１つの限定されない実施例では、受信されたコンテンツがビデオファイルである場合、ユーザインターフェース要素は、ビデオファイルを閲覧するのにメディア・プレーヤー・アプリケーションを立ち上げるために選択可能な選択肢を提示することがある。ブロック９２８で、ユーザがアプリケーションを立ち上げることを承諾したことを指示するユーザ装置からの入力の受信時に、共有サービスは、ブロック９３０で、アプリケーションを立ち上げさせる。
【０１１２】
このようにして、プロキシミティ装置から共有コンテンツを受信するために、ユーザは、プロキシミティ接続を開始するために、装置をタップし、装置を一緒に振り、装置をぴったり合わせて置き、装置をインターネット・チャット・ルームのような仮想空間に入れ、または何らかの他のジェスチャーを実行する。ユーザは、コンテンツの受信を承諾し、ユーザは、進行用のユーザインターフェースから転送が完了したときを見分けることができる。ユーザは、その後、コンテンツを閲覧するためにアプリケーションを立ち上げるように促される。プロキシミティサービスは、共有サービスと併せて、アプリケーション開発者がプロキシミティ無線機または帯域外通信無線機に直接的にプログラムする必要なしにこれらのユーザ体験をもたらすことを可能にする。
＜プレステージされたコンテキストをアプリケーション状態から推論すること＞
【０１１３】
図１０は、アプリケーション状態からプレステージされたコンテキストを推論するプロセス例１０００を示すフローチャートである。プロキシミティサービスは、ステップ１００２で、プロキシミティプロバイダからプロキシミティ接続が確立されているという指示を受信する。
【０１１４】
プロキシミティサービスは、ブロック１００４で、アプリケーション状態からプレステージされたプロキシミティ機能を推論する。図１０に示された実施形態では、アプリケーションは、何らかのプロキシミティ機能を実行するために登録されていない。その代わり、アプリケーションは、ある種の状態を設定しているだけであり、プロキシミティサービスがこの状態から所望のプロキシミティ機能を推論する。１つの限定されない実施例では、コンテンツは、プロキシミティ接続が確立されている時点にアプリケーションの内部で選択される。プロキシミティサービスは、アプリケーション状態から、所望のプロキシミティ機能が共有サービスを介してコンテンツを転送することであると推論する。
【０１１５】
別の限定されない実施例では、フォアグラウンドアプリケーションは、プロキシミティ接続が確立される時点に有効化される（コンピュータゲームにおけるマルチプレーヤー特徴のような）マルチユーザ協調特徴を有するアプリケーションでもよい。プロキシミティサービスは、所望のプロキシミティ機能は、ユーザがマルチユーザ協調特徴を適切に活用するためにプロキシミティ接続を介して接続されている装置上のピアアプリケーションとのピア接続を立ち上げることを望むことである、と推論することがある。プロキシミティサービスは、ブロック１００６で、ジョイント・プロキシミティ・コンテキストが推論された、プレステージされた機能を含む、と決定する。
【０１１６】
プロキシミティサービスは、ブロック１００８で、推論されたプロキシミティ特徴を指示するプレステージされたコンテキスト情報を他の装置と交換するので、他の装置は、ジョイント・プロキシミティ・コンテキストを決定し、他の装置の端部でプレステージされた機能を実現し易くするために措置を講じることができる。プロキシミティサービスは、ブロック１０１０で、推論された、プレステージされた機能を実現し易くするためにプロキシミティアクションを承諾するために選択可能な選択肢を含むユーザインターフェース要素を表示させる。
【０１１７】
ブロック１０１２で、ユーザ承諾を指示する入力の受信時に、プロキシミティサービスは、ブロック１０１４で、推論されたプロキシミティ機能を実現し易くするためにプロキシミティアクションを開始する。推論された、プレステージされた機能が、たとえば、選択されたコンテンツの共有である場合、プロキシミティサービスは、発明を実施するための形態の欄に記載されているようにコンテンツを共有するために、共有サービスを立ち上げ、帯域外接続をネゴシエートし、確立することがある。推論された、プレステージされた機能が他の装置とのピア接続を確立することである場合、プロキシミティサービスは、他の装置への帯域外接続をネゴシエートし、確立し、そして、発明を実施するための形態の欄に記載されているように、他の装置上のピアアプリケーションと通信するために使用できる、ソケット、または通信媒体を介する情報の交換を実現し易くするために何らかの他の通信情報をフォアグラウンドアプリケーションに提供することがある。
【０１１８】
図３〜１０は、様々な実施形態に従ってプロセス例を示すフローグラフを表す。これらのプロセスの動作は、個別のブロックに例示され、これらのブロックを参照して要約される。プロセスは、論理フローグラフとして例示され、プロセスの各動作は、ハードウェア、ソフトウェア、またはこれらの組み合わせで実施される可能性がある動作の組を表現することがある。ソフトウェアとの関連で、動作は、１つ以上のコンピュータ記憶媒体に記憶されたコンピュータ実行可能な命令を表現し、これらの命令は、１台以上のプロセッサによって実行されるとき、１台以上のプロセッサが列挙された動作を実行することを可能にする。概して、コンピュータ実行可能な命令は、特定の機能を実行する、または、特定の抽象データタイプを実施するルーチン、プログラム、オブジェクト、モジュール、コンポーネント、データ構造体などを含む。動作が記載される順序は、限定として解釈されることが意図されず、何らかの個数の記載された動作は、プロセスを実施するために、何らかの順序で組み合わされ、副動作に分離され、および／または、並列に実行される可能性がある。本開示の様々な実施形態に係るプロセスは、論理フローグラフに表された動作の一部だけ、または、全部を含むことがある。
＜コンピュータ読み取り可能な媒体＞
【０１１９】
使用されるコンピューティング装置の構成およびタイプに依存して、図２におけるプロキシミティ装置２００のメモリ２０４は、（ランダム・アクセス・メモリ（ＲＡＭ））のような揮発性メモリ、および／または、（リード・オンリー・メモリ（ＲＯＭ）、フラッシュメモリなどのような）不揮発性メモリを含むことがある。メモリ２０４は、限定されることなく、コンピュータ読み取り可能な命令、データ構造体、プログラムモジュール、およびプロキシミティ装置２００のための他のデータの不揮発性記憶装置を提供することがあるフラッシュメモリ、磁気記憶装置、光学記憶装置、および／または、テープ記憶装置を含めて、付加的な着脱可能な記憶装置、および／または、着脱不可能な記憶装置をさらに含むことがある。
【０１２０】
メモリ２０４は、コンピュータ読み取り可能な媒体の実施例である。コンピュータ読み取り可能な媒体は、コンピュータ読み取り可能な媒体の少なくとも２つのタイプ、すなわち、コンピュータ記憶媒体および通信媒体を含む。
【０１２１】
コンピュータ記憶媒体は、コンピュータ読み取り可能な命令、データ構造体、プログラムモジュール、または他のデータのような情報の記憶のための何らかのプロセスまたは技術において実施される揮発性および不揮発性、着脱可能および着脱不可能な媒体を含む。コンピュータ記憶媒体は、限定されることなく、相変化メモリ（ＰＲＡＭ）と、静的ランダム・アクセス・メモリ（ＳＲＡＭ）と、動的ランダム・アクセス・メモリ（ＤＲＡＭ）と、他のタイプのランダム・アクセス・メモリ（ＲＡＭ）と、リード・オンリー・メモリ（ＲＯＭ）と、電気的消去可能プログラマブル・リード・オンリー・メモリ（ＥＥＰＲＯＭ）と、フラッシュメモリもしくは他のメモリ技術と、コンパクト・ディスク・リード・オンリー・メモリ（ＣＤ−ＲＯＭ）と、デジタル多用途ディスク（ＤＶＤ）もしくは他の光学記憶装置と、磁気カセットと、磁気テープと、磁気ディスク記憶装置もしくは他の磁気記憶装置と、または、コンピューティング装置によるアクセスのため情報を記憶するために使用される可能性がある何らかの他の非伝送媒体とを含む。
【０１２２】
その一方、通信媒体は、コンピュータ読み取り可能な命令、データ構造体、プログラムモジュール、または他のデータを搬送波、または他の伝送の仕組みのような変調されたデータ信号の中で具現化することがある。本明細書に定義されているように、コンピュータ記憶媒体は、通信媒体を含まない。
結論
【０１２３】
開示は、構造的な特徴および／または方法論的な行為に固有である言い回しを使用するが、発明は、記載された具体的な特徴または行為に限定されない。それどころか、具体的な特徴および行為は、発明を実施する例示的な形式として開示されている。
【図１】
2014532208.tif 000003
【図２】
2014532208.tif 000004
【図３】
2014532208.tif 000005
【図４】
2014532208.tif 000006
【図５】
2014532208.tif 000007
【図６】
2014532208.tif 000008
【図７】
2014532208.tif 000009
【図８】
2014532208.tif 000010
【図９】
2014532208.tif 000011
【図１０】
2014532208.tif 000012
【国際調査報告】
2014532208.tif 000013
2014532208.tif 000014