(57)【要約】  多くのコンピューティングシナリオでは、主デバイスのユーザが、アプリケーションの提示に補助デバイスを組み込みたい場合がある。そのような組み込みは、主デバイスのコンピューティング環境を補助デバイスに投影する端末サービスセッション、主デバイスのコンピューティング環境の補助デバイスを通じたミラーリング、および／または第２のデバイスで実行されているクライアントアプリケーションと相互運用するアプリケーションの利用を含む可能性がある。しかし、そのような技法は、各デバイスの属性を完全に反映せず、ならびに／または特定のアプリケーションおよび／もしくは構成にしか当てはまらない可能性がある。代わりに、主デバイスが補助デバイスのデバイス属性に応じて主コンピューティング環境を補助コンピューティング環境に改変し、アプリケーションを主コンピューティング環境内で提示される主アプリケーション部分と補助コンピューティング環境内で提示される補助アプリケーション部分とに分割し、補助コンピューティング環境を補助デバイスに送信することができる。
2017538178.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションのユーザインターフェイスを、補助デバイスと、プロセッサおよび主コンピューティング環境を具備する主デバイスとを通じて、ユーザに提示する方法であって、
前記主デバイスに、
前記アプリケーションを前記主デバイスの前記プロセッサで実行することと、
前記アプリケーションの前記ユーザインターフェイスを主アプリケーション部分と補助アプリケーション部分とに分割することと、
前記アプリケーションの前記ユーザインターフェイスの前記主アプリケーション部分を、前記主デバイスの前記主コンピューティング環境内で提示することと、
前記アプリケーションの前記ユーザインターフェイスの前記補助アプリケーション部分を、前記補助デバイスのデバイス属性に応じて前記主コンピューティング環境から改変された補助コンピューティング環境に挿入することと、
前記アプリケーションの前記ユーザインターフェイスの前記補助アプリケーション部分を含む前記補助コンピューティング環境を、前記ユーザに提示するために前記補助デバイスに送信することと
を実行させる命令を前記プロセッサで実行することを含む方法。
【請求項２】
前記命令を前記プロセッサで実行することが、前記主デバイスに、前記補助デバイスの利用可能性の検出に応じて、
前記補助デバイスとの接続を確立することと、
前記補助デバイスの前記デバイス属性を検出することと、
前記補助デバイスの前記デバイス属性に応じて前記主コンピューティング環境から改変された前記補助コンピューティング環境を生成することと、
前記補助デバイスに前記補助コンピューティング環境を送信することを開始することと
をさらに実行させる、請求項１に記載の方法。
【請求項３】
前記主デバイスが、物理的近接しきい値内の補助デバイスの物理的近接を検出する近接検出器をさらに備え、
前記補助デバイスの前記利用可能性を検出することが、前記物理的近接しきい値内の前記補助デバイスの物理的近接を検出することをさらに含む、請求項１に記載の方法。
【請求項４】
前記アプリケーションが、コンテンツ項目の提示を含み、
前記アプリケーションを分割することが、前記アプリケーションを、
前記コンテンツ項目の提示を前記補助デバイスの前記補助コンピューティング環境内に提供する補助アプリケーション部分と、
前記コンテンツ項目の前記提示を制御する提示コントローラを前記主コンピューティング環境内に提供する主アプリケーション部分と
に分割することをさらに含む、請求項１に記載の方法。
【請求項５】
前記アプリケーションを分割することが、前記アプリケーションを、
前記補助デバイスを通じて前記アプリケーションを閲覧している第２のユーザに提示される補助アプリケーション部分と、
前記主デバイスを通じて前記アプリケーションを閲覧している第１のユーザに提示される主アプリケーション部分と
に分割することをさらに含む、請求項１に記載の方法。
【請求項６】
前記主デバイスが、第１の入力コンポーネントをさらに備え、
前記アプリケーションを前記プロセッサで実行することが、
前記第１の入力コンポーネントからの第１のユーザ入力の受け取りに応じて、前記第１のユーザ入力を前記アプリケーションに適用することと、
前記補助デバイスの第２の入力コンポーネントを通じて提供された第２のユーザ入力の前記補助デバイスからの受け取りに応じて、前記第２のユーザ入力を前記アプリケーションに適用することと
をさらに含む、請求項１に記載の方法。
【請求項７】
前記命令を前記プロセッサで実行することが、前記主デバイスに、前記主コンピューティング環境内で第２のアプリケーションを提示する要求の受け取りに応じて、前記アプリケーションの前記主アプリケーション部分の代わりに前記第２のアプリケーションを前記主コンピューティング環境内で提示することをさらに実行させる、請求項１に記載の方法。
【請求項８】
前記命令を前記プロセッサで実行することが、前記主デバイスに、前記主アプリケーション部分の代わりに前記第２のアプリケーションを前記主コンピューティング環境で提示している間、前記補助デバイスの前記補助コンピューティング環境内で提示されている前記補助アプリケーション部分に前記主アプリケーション部分を統合することをさらに実行させる、請求項７に記載の方法。
【請求項９】
主デバイスのプロセッサで実行されたときに、前記主デバイスに、補助デバイスを通じてアプリケーションをユーザに提示することを、
前記主デバイスの前記プロセッサで前記アプリケーションを実行することと、
前記アプリケーションを前記アプリケーションのユーザインターフェイスの主アプリケーション部分と前記アプリケーションの前記ユーザインターフェイスの補助アプリケーション部分とに分割することと、
前記アプリケーションの前記ユーザインターフェイスの前記主アプリケーション部分を、前記主デバイスのディスプレイの主コンピューティング環境内で提示することと、
前記アプリケーションの前記ユーザインターフェイスの前記補助アプリケーション部分を、前記補助デバイスのデバイス属性に応じて前記主コンピューティング環境から改変された補助コンピューティング環境に挿入することと、
前記アプリケーションの前記ユーザインターフェイスの前記補助アプリケーション部分を含む前記補助コンピューティング環境を、前記ユーザに提示するために前記補助デバイスに送信することと
により実行させる命令を格納しているメモリデバイス。
【請求項１０】
前記主デバイスが、ポインタとコンテンツ項目とを提示するディスプレイをさらに備え、
前記命令を前記プロセッサで実行することが、前記主デバイスに、
前記コンテンツ項目の前記ディスプレイの縁部からのプル動作と、
前記ディスプレイの前記縁部へのフリック動作と
を含むポインタジェスチャの検出に応じて、前記コンテンツ項目の提示を前記補助デバイスによる提示のために前記補助コンピューティング環境に挿入することをさらに実行させる、請求項９に記載のメモリデバイス。
【請求項１１】
前記主デバイスが、タッチ感応入力デバイスをさらに備え、
前記命令を実行することが、前記主デバイスに、前記タッチ感応入力デバイスが前記補助コンピューティング環境のスクロール可能要素に関連付けられた２本指ドラッグジェスチャを検出したことに応じて、前記補助コンピューティング環境の前記スクロール可能要素にスクロール操作を適用することをさらに実行させる、請求項９に記載のメモリデバイス。
【請求項１２】
前記主デバイスが、ポインタ感応入力デバイスをさらに備え、
前記命令を実行することが、前記主デバイスに、前記ポインタ感応入力デバイスが前記補助コンピューティング環境のスクロール可能要素に関連付けられた円形ポインタジェスチャを検出したことに応じて、前記補助コンピューティング環境の前記スクロール可能要素にスクロール操作を適用することをさらに実行させる、請求項９に記載のメモリデバイス。
【請求項１３】
前記主デバイスが、ポインタをさらに備え、
前記命令を実行することが、前記主デバイスに、少なくとも２つのユーザインターフェイス要素のシーケンスが補助コンピューティング環境に提示されている間に円形ポインタジェスチャを検出したことに応じて、前記シーケンスで選択されたユーザインターフェイス要素を前記シーケンスの第１のユーザインターフェイス要素から隣接するユーザ要素に移行させることをさらに実行させる、請求項９に記載のメモリデバイス。
【請求項１４】
前記主デバイスが、ポインタ感応入力デバイスをさらに備え、
前記命令を実行することが、前記主デバイスに、前記ポインタ感応入力デバイスが前記ポインタ感応入力デバイスの縁部から内側方向への縁部スワイプジェスチャを検出したことに応じて、前記補助コンピューティング環境を現在のアプリケーションの提示から以前に提示されていたアプリケーションの提示に移行させることをさらに実行させる、請求項９に記載のメモリデバイス。
【請求項１５】
前記主デバイスが、タッチ感応入力デバイスをさらに備え、
前記命令を実行することが、前記主デバイスに、前記補助コンピューティング環境が前記アプリケーションの全画面表示を提示している間に前記タッチ感応入力デバイスが前記ユーザにより少なくとも３本の指を使用して実行されたピンチジェスチャを検出したことに応じて、前記アプリケーションの前記全画面表示を前記補助コンピューティング環境内の部分画面表示に低減させることをさらに実行させる、請求項９に記載のメモリデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]  関連出願
本願は、２０１４年９月２４日に提出された米国特許出願第１４／４９５，２２８号「ＰＡＲＴＩＴＩＯＮＥＤ  ＡＰＰＬＩＣＡＴＩＯＮ  ＰＲＥＳＥＮＴＡＴＩＯＮ  ＡＣＲＯＳＳ  ＤＥＶＩＣＥＳ」の優先権を主張するものであり、当該米国特許出願を本明細書で引用により援用する。
【背景技術】
【０００２】
[0002]  コンピューティングの分野では、多くのシナリオで、ユーザがコンピューティング環境を提示するデバイス（たとえば、ワークステーション、ラップトップ、携帯電話、タブレット、およびメディアサーバ）と対話し、当該コンピューティング環境内でアプリケーション（たとえば、ドキュメントエディタ、メディアプレーヤ、電子メールクライアント、ウェブブラウザ、またはゲーム）をインスタンス化して利用できるようにすることを伴う。ユーザは、それぞれに異なるコンピューティング環境を提示するそうした多様なデバイスを利用して、それらのアプリケーションと対話することができる。またユーザは、付加的なディスプレイおよびディスプレイアダプタを追加することにより、コンピューティング環境の論理的なサイズを拡張することができ、それによって１つのアプリケーションの大きな表示と対話したり、現在表示されている複数のアプリケーションの表示と対話したりすることが可能となる。
【発明の概要】
【０００３】
[0003]  本概要は、以下の発明を実施するための形態でさらに詳しく説明する概念から選出したものを、簡単な形式で紹介するために設けられている。本概要は、請求項に記載された主題の主要な要素または必須の特徴を特定することを意図しておらず、請求項に記載された主題の範囲を限定するために使用されることも意図していない。
【０００４】
[0004]  デバイスのユーザは、コンピューティング環境の提示で、第２のデバイスのリソースを利用することに関心がある可能性がある。そのような技法の多くは、ユーザがコンピューティング環境の表示を主デバイスから補助デバイスに展開する端末サービスセッションを開始したり、主デバイスから補助デバイスへのディスプレイミラーリングセッションを開始したり、相互運用する能力を備える主デバイスおよび副デバイスにアプリケーションをインストールしたりすることを可能にし得る。しかし、そうした各技法は、いくつかの欠点を呈する可能性がある。第１のそのような例として、端末サービスセッションは、ユーザがコンピューティング環境をリモートに閲覧することを可能にし得るが、端末サービスサーバとターゲットサービスクライアントは、典型的には、両デバイスのリソースを利用してコンピューティング環境の統合された表示を提供するわけではない。むしろ、同じコンピューティング環境の副次的な表示がリモートに提示されるだけである。加えて、主コンピューティング環境のリモート提示は、第２のデバイスのデバイス属性を反映しない可能性がある。第２のそのような例として、ディスプレイミラーリングセッションは、ユーザがコンピューティング環境の表示をプロジェクタなどの第２のディスプレイで複製することを可能にし得る。しかし、このシナリオでは、プロジェクタのリソースがコンピューティング環境と統合されるわけではなく、同じ画面を２つのデバイスで再ブロードキャストするだけである。第３のそのような例として、複数のデバイスにインストールされたアプリケーションのいくつかは、各デバイスがアプリケーションに共同で参加することを可能にし得るが、そのような技法は、膨大な量の構成を伴う可能性があり、選択されたアプリケーションについてしかデバイスの統合が実現されない可能性がある。加えて、第２のデバイスは、大幅に異なるコンピューティング環境を提示する可能性があり、主デバイスの主コンピューティング環境と第２のデバイスのコンピューティング環境との不一致により、利用可能な機能、互換性、およびユーザインターフェイス動作の点で、著しい矛盾が生じる可能性がある。
【０００５】
[0005]  本明細書では、ユーザの主デバイスが主コンピューティング環境内でのアプリケーションの提示で補助デバイスのリソースを利用することを可能にする技法を提示する。そのような技法によると、主デバイスは、アプリケーションをプロセッサでローカルに実行しつつ、当該アプリケーションを主アプリケーション部分と補助アプリケーション部分とに分割することができる。主デバイスは、主アプリケーション部分を主デバイスの主コンピューティング環境内に提示しつつ、補助アプリケーション部分を補助デバイスのデバイス属性に応じて主コンピューティング環境から改変された補助コンピューティング環境に挿入し、補助アプリケーション部分を含む補助コンピューティング環境をユーザに提示するために補助デバイスに送信することができる。主コンピューティング環境（主デバイスにより提示される）と、主コンピューティング環境から改変された（および補助デバイスにより提示される）補助コンピューティング環境との間でアプリケーションを分割することで、補助デバイスの特定のデバイス属性を利用し、かつアプリケーションの一貫した実行および提示を可能にするユーザ体験を実現することができる。一部の実施形態では、両デバイス間で提示されるアプリケーションと対話するために、ユーザ入力が一方または両方のデバイスを通じて提供され得る。また、一部の実施形態では、主デバイスが、ユーザの要求により、同じアプリケーションの一部または異なるアプリケーションを可変的に表示することができる。一部の実施形態では、特定のジェスチャが、ユーザにより主デバイスで（たとえば、主デバイスのタッチ感応ディスプレイで）実行されたときに補助デバイスでさまざまな操作を引き起こす態様で、認識され得る。これらの特徴の多くは、本明細書で提示される技法に応じた主デバイスおよび／または補助デバイスの構成を通じて実現され得る。
【０００６】
[0006]  上述および関連する結果を達成するために、以下の説明および添付の図面は、いくつかの例示的な側面および実装を提示する。これらは、１つまたは複数の側面が利用され得るさまざまな方法のごく一部を示している。本開示の他の側面、利点、および新規の特徴は、以下の発明を実施するための形態を添付の図面と組み合わせて検討することで明らかとなる。
【図面の簡単な説明】
【０００７】
【図１】[0007]２つのデバイスの相互運用を可能にするさまざまな技法を示す例示的シナリオを示す図である。
【図２】[0008]本明細書で提示される技法に応じて、主デバイスと副デバイスとの間で分割されたアプリケーションの提示を示す例示的シナリオを示す図である。
【図３】[0009]本明細書で提示される技法に応じて、アプリケーションを主デバイス上および補助デバイス経由で提示する例示的方法の流れ図である。
【図４】[0010]本明細書で提示される技法に応じて、主デバイスと補助デバイスとがそれらのデバイス間で分割されたアプリケーションを提示できるようにするために提供される例示的システムのコンポーネントブロック図である。
【図５】[0011]本明細書で示される規定の１つまたは複数を実施するように構成されたプロセッサ実行可能命令を含む例示的コンピュータ可読メディアを示す図である。
【図６】[0012]本明細書で提示される技法に応じて、主デバイスと副デバイスとの間でアプリケーションのユーザインターフェイスを分割するためのさまざまな技法を示す例示的シナリオを示す図である。
【図７】[0013]本明細書で提示される技法に応じて、主デバイスによる補助デバイスの制御を示す例示的シナリオを示す図である。
【図８】[0014]本明細書で提示される技法に応じて、補助デバイスの制御を可能にするために主デバイスで実行され得る第１群の例示的ジェスチャを示す例示的シナリオを示す図である。
【図９】[0015]本明細書で提示される技法に応じて、補助デバイスの制御を可能にするために主デバイスで実行され得る第２群の例示的ジェスチャを示す例示的シナリオを示す図である。
【図１０】[0016]本明細書で示される１つまたは複数の規定が実装され得る例示的コンピューティング環境を示す図である。
【発明を実施するための形態】
【０００８】
[0017]  請求項に記載された主題について、図面を参照しながら以下に説明する。全体を通じて、同様の要素を示すために同様の参照番号を使用する。以下の説明では、請求項に記載された主題の完全な理解を促すために、説明の都合上、多数の具体的な詳細事項を示す。ただし、これらの具体的な詳細事項を伴わずに、請求項に記載された主題が実践される可能性があることは明らかであり得る。その他の部分では、請求項に記載された主題についての説明を簡素化するために、構造およびデバイスがブロック図の形式で示される。
【０００９】
[0018]  Ａ．序論
【００１０】
[0019]  図１は、ホストデバイス１０４のユーザ１０２がターゲットデバイス１０８のリソースをホストデバイス１０４のホストコンピューティング環境１０６で利用することを試みる、一群の例示的シナリオを示す。たとえば、ユーザ１０２は、携帯可能であり、さまざまな場所および状況で利用することが可能であり得る、ラップトップコンピュータや携帯電話などのホストデバイス１０４を入手している可能性がある。しかし、このような携帯性により、縮小されたディスプレイサイズ、低忠実性および／または低出力のスピーカ、小型および／または凝縮されたキーボード、タッチパッド等の固定されたポインティングデバイスなど、ホストデバイスの一部のリソースの限定を伴う可能性がある。ユーザ１０２が第２のデバイスの近傍にいるとき、ユーザ１０２は、ホストコンピューティング環境１０６の提示を、第２のデバイスのさまざまなリソースを組み込むように拡張することに関心がある可能性がある。これらのリソースとして、テレビのより大きな画面、高忠実性および／または高出力のスピーカセット、フルサイズのキーボード、高性能なマウス、ならびにカメラ、プリンタ、スキャナ等の堅牢な周辺コンポーネント群がある。
【００１１】
[0020]  そのような関心に鑑み、ユーザ１０２は、さまざまな技法を利用して、ホストデバイス１０４のホストコンピューティング環境１０６を、ターゲットデバイス１０８の一部のリソースを利用するように拡張することができる。図１に示す第１の例示的シナリオ１００は、端末サービスセッション１１４を含む。ここで、端末サービスサーバとして機能するホストデバイス１０４は、ホストコンピューティング環境１０６のリモート表示を、ターゲットデバイス１０８のターゲットコンピューティング環境１１０内に展開することができる。よってホストデバイス１０４は、オペレーティングシステム設定を提供する単一のユーザアカウント、アプリケーション２１２およびアプリケーション構成の単一セット、およびホストデバイス１０４にアクセス可能なファイル１１４およびハードウェアコンポーネントの単一セット等の端末コンピューティング環境を生成し得る。ユーザ１０２は、ターゲットデバイス１０８から端末サービス要求１１２を開始することができ、ホストデバイス１０４は、端末サービスセッション１１４を開始することにより端末サービス要求１１２を満たすことができる。ここで、端末サーバは、ホストコンピューティング環境１０６のリモート表示１１８をターゲットデバイス１０８に送信する（たとえば、ホストコンピューティング環境１０６のビデオをターゲットデバイス１０８に送信し、ターゲットデバイス１０８にリモートに提示された表示に向けられホストコンピューティング環境１０６内のアプリケーションに適用可能なユーザ入力を受け取る）。この態様で、ユーザ１０２は、ターゲットデバイス１０８のターゲットコンピューティング環境１１６内で、ホストコンピューティング環境１０６のリモート表示１１８と対話することができる。
【００１２】
[0021]  しかし、そのような端末サービス技法は、さらなる限定を呈する可能性がある。たとえば、端末サービスセッション１１４のターゲットデバイス１０８での提示は、リモート表示１１８がターゲットデバイス１０８のデバイス属性を考慮せずに提示される場合、準最適な体験にとどまる可能性がある。第１のそのような例として、リモート表示１１８は、カラースキーム、アイコンおよびフォントのサイズとスタイル、デスクトップ解像度など、ホストデバイス１０４には適しているがターゲットデバイス１０８には適していないホストコンピューティング環境１０６の多様な視覚的設定を呈する可能性がある。第２のそのような例として、ターゲットデバイス１０８は、カメラ等の一群のデバイス属性を備える可能性があるが、ホストコンピューティング環境１１８のリモート表示１１８は、ターゲットデバイス１０８のデバイス属性を組み込まず、公開しない可能性がある（たとえば、ターゲットデバイス１０８で実行される端末サービスクライアントがそのような情報を要求および／もしくは利用しないか、またはホストコンピューティング環境１０６がそのようなコンポーネントのための十分なサポートを備えていないことが原因）。
【００１３】
[0022]  図１に示された第２の例示的シナリオ１２０は、ユーザ１０２が、ホストデバイス１０４からプロジェクタ等のターゲットデバイス１０８へのホストコンピューティング環境１０６のミラーリングセッションを開始することを含む。ホストデバイス１０４は、ディスプレイミラーリング提示１２２をターゲットデバイス１０８に送信し、受領１２４の受け取りに応じて、ホストコンピューティング環境１０６のターゲットデバイス１０８への送信１２６を開始することができる。ターゲットデバイス１０８は、ホストコンピューティング環境１０６を表示することができる。そのような技法により、ターゲットデバイス１０８を使用してホストコンピューティング環境１０６を表示することが可能になるが、ターゲットデバイス１０８は、ホストコンピューティング環境１０６と特に統合されるわけではない。たとえば、ホストコンピューティング環境１０６は、ターゲットデバイス１０８を利用可能なリソースとして表さない可能性があり、属性の構成または設定を可能にしない可能性がある。加えて、ホストコンピューティング環境１０６の提示は、ターゲットデバイス１０８に適応していない可能性がある。ホストデバイス１０４が小さなディスプレイを備えた携帯デバイスであり、ターゲットデバイス１０８が大きなテレビデバイスである場合、ホストコンピューティング環境１０６のオブジェクトは、ミラーリングされた提示で過剰に大きく表示される可能性がある。なぜなら、そのような要素は、ターゲットデバイス１０８での提示には適用することができないタッチインタラクションに適応している可能性があるからである。逆に、ホストデバイス１０４が大きなディスプレイであり、ターゲットデバイス１０８が小さなディスプレイである場合、ホストコンピューティング環境１０６で提示されるアイコンおよびフォントは、ターゲットデバイス１０８では読み取り不可能な程度まで凝縮される可能性がある。さらに、ターゲットデバイス１０８は、ホストコンピューティング環境１０６と統合されず、よってホストコンピューティング環境１０６では表示も使用もできないコンポーネントを備えている可能性がある。
【００１４】
[0023]  図１に示す第３の例示的シナリオ１２８は、個別のデバイスで実行されたときに、それらのデバイスが相互運用１３４を行って複合型の体験を提示することを可能にする分散アプリケーションの選択を含む。たとえば、ユーザ１０２は、アプリケーションサーバ１３０を備えるホストデバイス１０４と、アプリケーションクライアント１３２を備えるターゲットデバイス１０８とを、アプリケーションのそれぞれのコンポーネントが各デバイスで実行されたときにアプリケーションがデバイスを統一して複合型の体験を提供するように、構成することができる。たとえば、ホストデバイスで実行されるデータベースサーバ１３０が、ホストデバイス１０４で実行される第１のアプリケーションクライアントと、ターゲットデバイス１０８で実行される第２のアプリケーションクライアントとにより同時にアクセスされ、両デバイスが同じデータの表示を提供し、一方のデバイスを通じて行われたデータベースの更新が他方のデバイスで反映されるようになされ得る。そのような分散アプリケーションは両デバイスのリソースを利用してアプリケーションを提示するというユーザ１０２の意図を促進し得るが、このシナリオは、各デバイスの広範な構成を伴い、そうした機能を備えるアプリケーションのみに利用可能である。さらに、アプリケーションと対話する体験は、利用可能なハードウェアの違い（たとえば、タッチ感応ディスプレイか、ポインタ入力用マウスか）、および／またはデバイスの動作の違い（たとえば、デバイスが異なる操作環境を利用する場合、アプリケーションは異なるキーボードショートカットに反応する可能性があり、異なる外観を呈する可能性がある）により、デバイスごとに異なる可能性があり、互換性等の問題がユーザ体験を制限する可能性がある。そうした制限の多くは、一群のデバイス間でアプリケーションを共有するためのさまざまな構造的技術で生じる可能性がある。
【００１５】
[0024]  Ｂ．提示される技法
【００１６】
[0025]  本明細書では、たとえばユーザ１０２の主デバイスと、ユーザ１０２が主デバイスとの統合を望む補助デバイスとの、少なくとも２つのデバイス間で、アプリケーションを共有するための技法を提示する。補助デバイスは、たとえば、ユーザ１０２が一時的（たとえば、アプリケーションの短時間の提示のみ）または永続的に統合することを望むユーザ１０２の第２のデバイス、別の個人のデバイス、または主デバイスと統合することができるリソースを提示する公的にアクセス可能なデバイスを含み得る。
【００１７】
[0026]  本明細書で提示される技法によると、ローカルに実行されるアプリケーションについて、主デバイスは、そのアプリケーションを主アプリケーション部分と補助アプリケーション部分とに分割することができる。主デバイスは、主アプリケーション部分を（たとえば、主デバイスのディスプレイおよび／またはスピーカを使用して）ローカルに提示し、補助アプリケーション部分を補助デバイスのデバイス属性に応じて主コンピューティング環境から改変された補助コンピューティング環境に挿入することができる。次に、主デバイスは、アプリケーションの補助アプリケーション部分を含む補助コンピューティング環境を、ユーザ１０２に提示するために補助デバイスに送信することができる。
【００１８】
[0027]  図２は、本明細書で提示される技法に応じて、主デバイス２０２と補助デバイス２０６との間でアプリケーション２１２を分割する例示的シナリオ２００を示す。この例示的シナリオ２００では、主デバイス２０２が主コンピューティング環境２０４を備える。主デバイス２０２および補助デバイス２０６は、プロセッサ容量およびアーキテクチャ、電源および電源能力（バッテリか、ユーティリティラインか）、入力デバイス（たとえば、タッチジェスチャか、キーボードおよびマウスか）、出力デバイス（たとえば、低容量スピーカか、高出力かつ高忠実度のスピーカセットか）、通信機能（たとえば、容量の限られたセルラーデータ接続、パーソナルエリアネットワーク（PAN）アダプタ、WiFi（登録商標）アダプタおよび接続、または有線イーサネット（登録商標）接続）、さまざまな周辺デバイス（たとえば、ネットワーク接続型ストレージ（NAS）、プリンタ、およびスキャナ）へのアクセスなど、さまざまなデバイス属性２１０を呈する。
【００１９】
[0028]  この例示的シナリオ２００では、アプリケーション２１２をローカルに実行している主デバイス２０２のユーザ１０２は、主デバイス２０２の主コンピューティング環境２０４と補助デバイス２０６との間でアプリケーション２１２を提示することを望む可能性がある。よって、主デバイス２０２は、アプリケーション２１２を、主デバイス２０２に提示される主アプリケーション部分２１４と、補助デバイス２０６に提示される補助アプリケーション部分２１６とに分割２１８することができる。より詳細には、補助アプリケーション部分２１６は、補助デバイス２０６に展開され、補助デバイス２０６の１つまたは複数のデバイス属性２１０に応じて主コンピューティング環境２０４から改変された、補助コンピューティング環境２０８内で提示され得る。たとえば、主コンピューティング環境２０４は、カラースキーム、アイコンおよびフォントサイズ、ならびに主デバイス２０２の入力機能に合わせてサイズ設定および構成されたユーザインターフェイスコントロールを備えるが、補助コンピューティング環境２０８は、異なるカラースキーム、異なるアイコンおよびフォントサイズを備え、補助デバイス２０６での提示に適したユーザインターフェイスコントロールを異なって構成するように改変２２０され得る。加えて、主デバイス２０２は、たとえば、アプリケーション２１２のユーザインターフェイスの異なる部分を各コンピューティング環境に割り当てることにより、アプリケーション２１２を主アプリケーション部分２１４と補助アプリケーション部分２１６とに分割２１８することができる。主デバイス２０２は、主アプリケーション部分２１４を主コンピューティング環境２０４内で提示し、補助アプリケーション部分２１６を含む補助コンピューティング環境２０８を、ユーザ１０２に提示するために補助デバイス２０６に送信２２２することができる。たとえば、送信２２２は、オーディオおよびビデオストリームを補助デバイス２０６に送信することを含む可能性があり、補助デバイス２０６が入力機能を備えている場合、その入力機能を通じて受け取られたユーザ入力を主デバイス２０２に返送して、主デバイス２０２によりアプリケーション２１２に適用することを含む可能性がある。この態様で、ユーザ１０２は、本明細書で提示される技法に応じて、主デバイス２０２と補助デバイス２０６との間でアプリケーションの協調的な提示を実現することができる。
【００２０】
[0029]  Ｃ．技術的効果
【００２１】
[0030]  本明細書で提示される技法を使用してアプリケーションを主デバイス２０２と補助デバイス２０６との間で提示すると、さまざまな技術的効果を得ることができる。
【００２２】
[0031]  本明細書で提示される技法により実現され得る技術的効果の第１の例として、アプリケーション２１２を補助デバイス２０６に展開することで、アプリケーション２１２を提示しながら、補助デバイス２０６のリソースを主デバイス２０２のリソースと統合することが可能になり得る。たとえば、アプリケーション２１２へのユーザ入力は、主デバイス２０２および／または補助デバイス２０６の入力コンポーネントを通じて受け取られ得、出力は、主デバイス２０２と補助デバイス２０６の組み合わされた出力機能を通じて提示され得る。
【００２３】
[0032]  本明細書で提示され得る技法により実現される技術的効果の第２の例として、アプリケーション２１２を主デバイス２０２により実行しながら補助アプリケーション部分２１６を補助デバイス２０６に分散させることにより、補助デバイス２０６のアーキテクチャに依存せず、または不必要に影響されない態様で、アプリケーション２１２を分散させることが可能になり得る。たとえば、補助デバイス２０６が補助コンピューティング環境２０８の送信２２２を受け取ることができ、補助アプリケーション部分２１６を含む補助コンピューティング環境２０８を提示できる限り、アプリケーション２１２の補助デバイス２０６との互換性は、アプリケーションの実行に影響を与えることはない（たとえば、アプリケーション２１２は、補助デバイス２０６の命令セットアーキテクチャと互換性がない可能性があるが、アプリケーション２１２の実行が主デバイス２０２によって実現されるため、依然として補助デバイス２０６で提示され得る）。さらに、補助アプリケーション部分２１６を補助デバイス２０６間で提示する間に、補助コンピューティング環境２０８の一貫性が維持され得る。アプリケーション２１２の実行、および主デバイス２０２による主コンピューティング環境２０４からの補助コンピューティング環境２０８の改変では、主デバイス２０２のファイルおよびリソースの共有セットを利用することができ、よって提示は、異なる命令セットアーキテクチャ、オペレーティングシステム、またはソフトウェアプラットフォームもしくはリソースをネイティブに利用する補助デバイス２０６間で一貫性を保ち得る。つまり、補助デバイス２０６のデバイス属性２１０に対する補助コンピューティング環境２０８の改変２２０に応じて選択される差異を除いて、補助アプリケーション２１６のユーザ体験は、補助デバイス２０６間で一貫性を保ち得る。
【００２４】
[0033]  本明細書で提示される技法により実現され得る技術的効果の第３の例として、補助デバイス２０６のデバイス属性２１０に対して改変された補助コンピューティング環境２０８内でアプリケーション２１２を提示することにより、アプリケーション２１２をデバイス属性に依存しない態様で表示する場合よりも、ユーザインターフェイスをより適切に提示することが可能になり得る。第１のそのような例として、補助デバイス２０６のディスプレイ属性に応じてアイコンおよびフォントのサイズおよび解像度を改変することにより、適切な視覚的体験を提供することができる。一方、そのような改変なしで補助アプリケーション部分２１６を提示すると、補助デバイス２０６による提示の際に、視覚的要素が不必要に過大になりまたは過小になる可能性がある。第２のそのような例として、補助デバイス２０６のネットワーク容量および／またはプロセッサ容量がデータ速度の高いストリームを提示することができる場合、補助アプリケーション部分２１６は、高品質なアニメーションや、視覚的に動的なユーザインターフェイスを備えることができる。しかし、補助デバイス２０６のネットワーク容量および／またはプロセッサ容量がより限られている場合、補助アプリケーション部分２１６は、より静的または保守的な態様でレンダリングされる可能性がある。第３のそのような例として、補助コンピューティング環境２０８の改変により、補助デバイス２０６のリソースが、アプリケーション２１２を提示するために主デバイス２０２のリソースと統合され得る。たとえば、補助デバイス２０６により提供されるカメラは、キャプチャされたビデオを補助コンピューティング環境２０８経由で主デバイスに送信することができ、主デバイスは、キャプチャされたビデオをアプリケーション２１２で利用することができる。
【００２５】
[0034]  本明細書で提示される技法により実現され得る技術的効果の第４の例として、主デバイス２０２により実行される分割２１８を通じたアプリケーション２１２の分散は、そのような分散および／または分割２１８をサポートするようには特に構成されていないアプリケーションを含む幅広いアプリケーション２１２で利用することができる。たとえば、主デバイス２０２のユーザインターフェイスプラットフォームを利用するアプリケーション２１２は、ユーザインターフェイスプラットフォームの再構成を通じて、アプリケーション２１２からのサポートを利用することなく、主デバイス２０２と補助デバイス２０６との間で分割２１８および分散され得る。さらに、そのような分散は、補助デバイス２０６へのアプリケーションの展開を含まない可能性がある。たとえば、アプリケーション２１２を補助デバイス２０６の補助コンピューティング環境２０８内に展開したり、補助デバイス２０６により提示したりするために、アプリケーション２１２を補助デバイス２０６にインストールする必要はない。よって、本明細書で提示される技法によりアプリケーション２１２を提示することで、そのような分割を実現するためにユーザ１０２により実行される構成およびメンテナンスの量が軽減され得る。加えて、本明細書で提示される技法により、アプリケーション２１２の集中的な管理が可能になり得る。たとえば、ユーザ１０２は、いくつかの補助デバイス２０６を使用してアプリケーション２１２を多様に分割することができ、アプリケーション２１２の再構成は、それらの各補助デバイス２０６のローカルなアプリケーション構成との対話を伴わない可能性がある。むしろ、主デバイス２０２でアプリケーション２１２の構成を更新することで、アプリケーション構成のさらなる管理を伴わずに、アプリケーション２１２の更新された構成を補助デバイス２０６で提示することが可能となる。
【００２６】
[0035]  本明細書で提示される技法により実現され得る技術的効果の第５の例として、アプリケーション２１２の主アプリケーション部分２１４と補助アプリケーション部分２１６の対話は、主デバイス２０２と補助デバイス２０６との間のデバイスおよび／またはネットワークの相互接続を利用するのではなく、主デバイス２０２の同じプロセス内で、および／または主デバイス２０２内のプロセス間通信もしくはファイル共有機構を通じて、容易に実現され得る。たとえば、図１の第３の例示的シナリオ１２８では、アプリケーションサーバ１３０とアプリケーションクライアント１３２との相互運用１３４は、一方または両方のデバイスでの接続の問題、ネットワーク遅延、ファイアウォール、プライバシーの懸念などのネットワーキングの問題により妨害される可能性がある。しかし、アプリケーション２１２を主デバイス２０２により実行することで、主アプリケーション部分２１４と補助アプリケーション部分２１６とが主デバイス２０２内で迅速かつ効率的に通信することが可能となる。
【００２７】
[0036]  本明細書で提示される技法により実現され得る技術的効果の第６の例として、比較的低出力の補助デバイス２０６で高品質なコンピューティング体験が提示され得る。たとえば、補助コンピューティング環境２０８のレンダリングおよびアプリケーション２１２の実行の計算負担を主デバイス２０２に割り当てることで、本明細書で提示される方法により、高品質な補助コンピューティング環境２０８をローカルコンテキストで高品質にレンダリングするための十分な計算リソースを持っていない可能性がある補助デバイス２０６で、そのような補助コンピューティング環境２０８を同じ品質レベルで提示することが可能になり得る。よって、旧式のハードウェアを利用して、主デバイス２０２により実行されるアプリケーション２１２の補助アプリケーション部分２１６を提示することができる。つまり、補助デバイス２０６は、計算量の多いアプリケーション２１２を実行するための適切な計算リソースを備えていなくてもよく、補助アプリケーション部分２１６を補助デバイス２０６に分散させてアプリケーション２１２を主デバイス２０２により実行することにより、補助デバイス２０６がネイティブに生成することができない補助アプリケーション部分２１６を、補助デバイス２０６で提示することが可能になり得る。加えて、主デバイス２０２のリソースを拡大することにより、補助デバイス２０６も併せて拡大することなく、アプリケーション２１２の性能を拡大することができる。
【００２８】
[0037]  本明細書で提示される技法により実現され得る技術的効果の第７の例として、本明細書で提示される技法を使用することで、ユーザ１０２が、必ずしもユーザ１０２により所有されておらず、および／または主デバイス２０２により定期的にアクセスされない補助デバイス２０６を含むように、アプリケーション２１２を分散させることが可能になり得る。たとえば、公的にアクセス可能なコンピューティングワークスペースは、ディスプレイ、キーボード、スピーカ、およびプリンタ等の周辺機器などの補助デバイス２０６のコレクションを含む可能性があり、それらがユーザ１０２の主デバイス２０２とやり取りすることで、補助コンピューティング環境２０８およびアプリケーション２１２の補助アプリケーション部分２１６を提示することが可能となる。これらおよび他の技術的効果は、本明細書で提示される技法のさまざまな実施形態を通じて実現され得る。
【００２９】
[0038]  Ｄ．例示的実施形態
【００３０】
[0039]  図３は、補助デバイス２０６を利用してアプリケーション２１２を提示するように主デバイス２０２を構成する例示的方法３００として図示された、本明細書で提示される技法の第１の例示的実施形態を示す。例示的方法３００は、たとえば、メモリ回路、ハードディスクドライブのプラター、ソリッドステートストレージデバイス、磁気または光学ディスクなどの主デバイス２０２のメモリコンポーネントに格納され、デバイスのプロセッサで実行されたときにデバイス１０４を本明細書で提示された技法に応じて動作させるように編成された、一群の命令として実装され得る。
【００３１】
[0040]  例示的方法３００は、３０２から始まり、命令を主デバイス２０２のプロセッサで実行すること３０４を含む。具体的には、命令をプロセッサで実行すること３０４により、主デバイス２０２がアプリケーション２１２を主デバイス２０２のプロセッサで実行する３０６。また、命令を実行すると、主デバイス２０２が、アプリケーション２１２を主アプリケーション部分２１４と補助アプリケーション部分２１６とに分割する３０８。また、命令を実行すると、主デバイス２０２が、主アプリケーション部分２１４を主デバイス２０２の主コンピューティング環境２０４内で提示する３１０。また、命令を実行すると、主デバイス２０２が、補助デバイス２０６のデバイス属性２１０に応じて主コンピューティング環境２０４から改変された補助コンピューティング環境２０８に補助アプリケーション部分２１６を挿入する３１２。また、命令を実行すると、主デバイス２０２が、補助アプリケーション部分２１６を含む補助コンピューティング環境２０８を、ユーザ１０２に提示するために補助デバイス２０６に送信する３１４。この態様で、命令は、主デバイス２０２が本明細書で提示される技法に応じて補助デバイス２０６を含むアプリケーション２１２を提示することを可能にし、３１６で終了する。
【００３２】
[0041]  図４は、アプリケーション２１２の分割提示を実現するために例示的主デバイス４０２と例示的補助デバイス４０４とにより利用され得る例示的システムとして図示された、本明細書で提示される技法の第２の例示的実施形態を示す。この例示的シナリオ４００では、例示的主デバイス４０２と例示的補助デバイス４０４のそれぞれが、プロセッサ４０６と、ディスプレイ４０８と、各デバイスのプロセッサ４０６で実行されたときに本明細書で提示される技法の少なくとも一部を利用するシステムを提供する命令を含むメモリ４１０とを備える。
【００３３】
[0042]  例示的主デバイス４０２は、アプリケーション２１２をプロセッサ４０６で実行しながら、第１の例示的システム４１２を利用して、補助デバイス４０４を含むようにアプリケーション２１２の分割および分散を実現する。第１の例示的システム４１２は、アプリケーション２１２を主アプリケーション部分２１４と補助アプリケーション部分２１６とに分割するアプリケーション分割器を備え、補助デバイス４０４のデバイス属性２１０に応じて主コンピューティング環境２０４から改変された補助コンピューティング環境２０８に、補助アプリケーション部分２１６を挿入する。第１の例示的システム４１２は、補助アプリケーション部分２１６を含む補助コンピューティング環境２０８をユーザ１０２への提示のために補助デバイス４０４に（たとえば、オーディオおよび／またはビデオストリーム２１４として）送信する補助コンピューティング環境送信器４１６をさらに備える。第１の例示的システム４１２は、主アプリケーション部分２１４を主コンピューティング環境のディスプレイ４０８で提示する主アプリケーション部分提示器４１４をさらに備える。
【００３４】
[0043]  例示的補助デバイス４０４は、例示的補助デバイス４０４の１つまたは複数のデバイス属性２１０を例示的主デバイス４０２に送信するデバイス属性送信器４２２を含む第２の例示的システム４２０を備える。第２の例示的システム４２０は、例示的補助デバイス４０４の少なくとも１つのデバイス属性２１０に応じて主コンピューティング環境２０４から改変された補助コンピューティング環境２０８を例示的主デバイス４０２から受け取るコンピューティング環境提示器４２４をさらに備え、補助コンピューティング環境２０８は、アプリケーション２１２の補助アプリケーション部分２１６を含む。よってコンピューティング環境提示器４２４は、補助コンピューティング環境２０８を例示的補助デバイス４０４のディスプレイ４０８で提示する。この態様で、例示的主デバイス４０２および例示的補助デバイス４０４は、本明細書で提示される技法に応じて、アプリケーション２１２の分散提示を相互運用的に実現する。
【００３５】
[0044]  さらに別の実施形態は、本明細書で提示される技法を適用するように構成されたプロセッサ実行可能命令を含むコンピュータ可読メディアを備える。そのようなコンピュータ可読メディアは、さまざまな物理的現象（たとえば、電磁信号、音波信号、または光学信号）を通じて、さまざまなワイヤードシナリオ（たとえば、イーサネット（登録商標）または光ファイバケーブル経由）および／またはワイヤレスシナリオ（たとえば、WiFi等のワイヤレスローカルエリアネットワーク（WLAN）、Bluetooth（登録商標）等のパーソナルエリアネットワーク（PAN）、またはセルラーもしくは無線ネットワーク）で伝搬され得、デバイスのプロセッサにより実行されたときに本明細書で提示される技法をデバイスに実装させる一群のコンピュータ可読命令をエンコードする信号等の、さまざまな種類の通信メディアを含み得る。そのようなコンピュータ可読メディアは、（通信メディアを除く部類の技術として）メモリ半導体（たとえば、静的ランダムアクセスメモリ（SRAM）、動的ランダムアクセスメモリ（DRAM）、および／または同期式動的ランダムアクセスメモリ（SDRAM）技術を利用する半導体）、ハードディスクドライブのプラター、フラッシュメモリデバイス、磁気または光学ディスク（CD-R、DVD-R、フロッピーディスク等）等のコンピュータ可読メモリデバイスをさらに備え得、デバイスのプロセッサにより実行されたときに本明細書で提示される技法をデバイスに実装させる一群のコンピュータ可読命令をエンコードする。
【００３６】
[0045]  これらの方法で考案され得る例示的コンピュータ可読メディアを図５に示す。ここで、実装５００は、エンコードされたコンピュータ可読データ５０４が存在するコンピュータ可読メモリデバイス５０２（たとえば、CD-R、DVD-R、またはハードディスクドライブのプラター）を含む。このコンピュータ可読データ５０４は、デバイス５１０のプロセッサ４０６で実行されたときにデバイス５１０を本明細書で示された原則に応じて動作させる一群のコンピュータ命令５０６を含む。第１のそのような実施形態では、プロセッサ実行可能命令５０６は、図３の例示的方法３００のように、主デバイス２０２に補助デバイス２０６を使用してアプリケーション２１２を提示させる方法をデバイス５１０に実行させ得る。第２のそのような実施形態では、プロセッサ実行可能命令５０６は、図４の例示的シナリオ４００で提示される例示的システムのように、主デバイス２０２に補助デバイス２０６を使用してアプリケーション２１２を提示させるシステム、および／または補助デバイス２０６に主デバイス２０２により送信されたアプリケーション２１２を提示させるシステムをデバイス５１０に提供させ得る。そのようなコンピュータ可読メディアの多くは、当業者により、本明細書で提示される技法に応じて動作するように構成されたものとして考案され得る。
【００３７】
[0046]  Ｅ．変形
【００３８】
[0047]  本明細書で説明する技法は、多くの側面について変形して考案され得、一部の変形は、これらおよび他の技法の他の変形に比べて、追加の利点を提示し、および／または欠点を低減し得る。さらに、一部の変形は組み合わせで実装され得、一部の組み合わせは、相乗的連携を通じて追加の利点を備え、および／または欠点を低減し得る。これらの変形をさまざまな実施形態（たとえば、図３の例示的方法３００、図４の例示的システム、および図５の例示的メモリデバイス５０２）に組み込んで、それらの実施形態に個別および／または相乗的な利点を与えることができる。
【００３９】
[0048]  Ｅ１．シナリオ
【００４０】
[0049]  これらの技法の実施形態間で変形する可能性がある第１の側面は、それらの技法が利用されるシナリオに関する。
【００４１】
[0050]  この第１の側面の第１の変形として、本明細書で提示される技術は、ワークステーション、ラップトップ、タブレット、携帯電話、ゲーム機、携帯型ゲームデバイス、携帯型または非携帯型のメディアプレーヤ、テレビ等のメディア表示装置、アプライアンス、ホームオートメーションデバイス、接眼レンズや腕時計を統合するウェアラブルデバイスに統合されたコンピューティングコンポーネント、監視制御およびデータ収集（SCADA）デバイスなど、さまざまなデバイスの構成を実現するために利用され得る。
【００４２】
[0051]  この第１の側面の第２の変形として、本明細書で提示される技法は、補助デバイス２０６の補助コンピューティング環境２０８内で提示されるさまざまなアプリケーション２１２で利用され得る。これらのアプリケーションには、オフィス生産性アプリケーション、オーディオプレーヤやビデオプレーヤなどのメディア提示アプリケーション、ウェブブラウザや電子メールクライアント、チャットクライアント、ボイスオーバーＩＰ（VoIP）クライアントなどの通信アプリケーション、地理位置アプリケーションや地図アプリケーション、ルート選択アプリケーションなどのナビゲーションアプリケーション、ユーザ１０２にアラートを提示する天気監視アプリケーションやニュース監視アプリケーションなどのユーティリティ、ゲームなどがある。さらに、補助コンピューティング環境２０８のアプリケーション２１２は、テキスト、画像、ライブビデオおよび／または録画済みビデオ、音響効果、音楽、スピーチ、触覚フィードバック、三次元レンダリング、対話型および／または非対話型のユーザインターフェイスなどの１つまたは複数の提示様式を通じたコンテンツの提示と、テキスト入力、ポインティング入力、触覚入力、ジェスチャ入力、口頭入力、視線追跡入力などのユーザ１０２からユーザ入力を受け取るためのさまざまな技法とを含み得る。
【００４３】
[0052]  この第１の側面の第３の変形として、本明細書で提示される技法は、さまざまなアーキテクチャで利用され得る。第１のそのような例として、主デバイス２０２および／または補助デバイス２０６は、ワイヤードディスプレイ、スピーカ、ヘッドフォンなど、それらの各デバイスに直接および物理的に接続されたコンポーネントを利用することができる。第２のそのような例として、主デバイス２０２および／または補助デバイス２０６は、無線周波などのワイヤレス接続を通じてアクセスすることができる１つまたは複数のコンポーネントを利用することができる。第３のそのような例として、主デバイス２０２および／または補助デバイス２０６は、本明細書で提示される技法に応じて相互運用するために、パーソナルエリアネットワーク、ローカルエリアネットワーク、および／またはワイドエリアネットワーク上で通信することができる。第４のそのような例として、主デバイス２０２および／または補助デバイス２０６は、クライアント／サーバアーキテクチャやピアツーピアアーキテクチャなどで、デバイスコレクションの別のデバイスを通じてアクセス可能な１つまたは複数のコンポーネントを利用することができる。さらに、主デバイス２０２および／または補助デバイス２０６は、１人のユーザ１０２もしくはユーザ１０２のグループにより利用される可能性があり、および／または少なくとも１人の第２のユーザ１０２の代わりに少なくとも１人の第１のユーザ１０２により制御される可能性がある。これらおよび他のシナリオは、本明細書で提示される技法に応じた主デバイス２０２と補助デバイス２０６との相互運用を通じたコンピューティング環境の提示に適している可能性がある。
【００４４】
[0053]  Ｅ２．補助コンピューティング環境の生成および送信
【００４５】
[0054]  本明細書で提示される技法の実施形態間で変形する可能性がある第２の側面は、主デバイス２０２が補助コンピューティング環境２０８を補助デバイス２０６に送信し、補助デバイス２０６が補助コンピューティング環境２０８をユーザ１０２に提示する態様に関する。
【００４６】
[0055]  この第２の側面の第１の変形として、補助デバイス２０６の多数の種類のデバイス属性２１０は、補助コンピューティング環境２０８および／または補助コンピューティング環境２０８で実行されるアプリケーション２１２を補助デバイス２０６に対して生成および改変するために特定および使用され得る。第１のそのような例として、補助デバイス２０６のデバイス属性２１０は、さまざまなプロセッサおよびコプロセッサの計算スループット、並行処理のサポート、および命令セットアーキテクチャ、メモリおよびストレージの容量、速度、および揮発性、キーボード、マウス、タッチ感応ディスプレイ、マイク、カメラ等のさまざまな入力デバイスの様式、感度、および認識機能、さまざまな視覚出力デバイスのサイズ、解像度、および応答性、さまざまなオーディオ出力デバイスの音量および品質、さまざまな通信デバイスのスループット、遅延、およびバッファ容量、プリンタ、スキャナ、生体センサ等のさまざまな他の周辺デバイスの属性など、さまざまなハードウェアコンポーネントの存在および機能を含み得る。第２のそのような例として、補助デバイス２０６のデバイス属性２１０は、さまざまな形式のメディアのエンコーディングおよび／またはデコーディング、さまざまな種類のデータの暗号化、圧縮、解凍、復号、および／または検証、ハードウェアおよび／またはソフトウェアエミュレーションまたはさまざまな種類の言語解析または変換リソースのアクセス可能性を通じたさまざまな命令セットおよび仮想デバイスの利用、三次元グラフィックレンダリング等のさまざまな種類のグラフィック要求の処理、ユーザ認証等のさまざまなセキュリティ手法の適用など、ソフトウェアを通じて部分的または全体的に実現可能な計算能力を含み得る。第３のそのような例として、補助デバイス２０６のデバイス属性２１０は、電力の利用可能性（たとえば、ユーティリティライン、バッテリ、および無停電電源（UPS）の存在および動作状態）など、補助デバイス２０６が使用される状況を含み得る。第４のそのような例として、補助デバイス２０６のデバイス属性２１０は、ネットワーク接続型ストレージ（NAS）のアクセス可能性や、他のデバイスとのピアツーピア関係、クライアント／サーバ関係、主従関係等のネットワークにおける補助デバイス２０６の役割など、補助デバイス２０６と他のデバイスとの間の相互関係を含み得る。第５のそのような例として、補助デバイス２０６のデバイス属性２１０は、補助デバイス２０６のパブリック、プライベート、および／またはセキュアな性質、特定のユーザ１０２が補助デバイス２０６と典型的に関わり合って実行するタスクなど、１人または複数のユーザ１０２が補助デバイス２０６と対話するコンテキストを含み得る。
【００４７】
[0056]  この第２の側面の第２の変形として、主デバイス２０２は、補助デバイス２０６のデバイス属性２１０をさまざまな方法で判断することができる。第１のそのような例として、補助デバイス２０６は、たとえば補助デバイス２０６の各ハードウェアコンポーネントを問い合わせて特定することにより、補助デバイス２０６のさまざまなデバイス属性を検出し、その情報を主デバイス２０２に送信することができる。第２のそのような例として、補助デバイス２０６は、補助デバイス識別子（たとえば、製品番号、モデル番号、および／またはシリアル番号）を含み得、主デバイス２０２および／または補助デバイス２０６は、補助デバイス２０６のデバイス属性２１０をデバイスカタログで参照して、補助デバイス識別子に関連付けられたそのような補助デバイス２０６のデバイス属性２１０を識別し得る。第３のそのような例として、補助デバイス２０６および／または主デバイス２０２は、補助デバイス２０６の特定の動作条件下での動作を測定することができる（たとえば、テスト条件の下、または通常の使用時における、補助デバイス２０６の処理容量および／またはネットワーク容量を評価する）。第４のそのような例として、補助デバイス２０６および／または主デバイス２０２は、補助デバイス２０６のデバイス属性２１０を予測および／または推定することができる。たとえば、ユーザ１０２が補助デバイス２０６と対話するコンテキストは、補助デバイス２０６でしばしば実行されるタスクを監視することにより実現される推定により判断され得る。第５のそのような例として、補助デバイス２０６および／または主デバイス２０２は、補助デバイス２０６のデバイス属性２１０に関する情報を、１人または複数のユーザ１０２から受け取ることができる。第６のそのような例として、主デバイス２０２は、（たとえば、補助デバイス２０６のためにアプリケーション２１２をインスタンス化する要求の受信時に）そのような情報のために補助デバイス２０６をポーリングすることができ、および／または補助デバイス２０６は、その情報を（たとえば、ユーザ１０２のデバイスコレクションに参加する要求の一部として）主デバイス２０２にプッシュすることができる。
【００４８】
[0057]  この第２の側面の第３の変形として、主デバイス４０２は、複数の方法で、主コンピューティング環境２０４から改変された補助コンピューティング環境２０８を生成することができる。第１のそのような例として、主デバイス２０２は、主コンピューティング環境２０４をテンプレートイメージとして格納し、補助コンピューティング環境２０８を、補助デバイス２０６のデバイス属性２１０を考慮して適用された調整を含む主コンピューティング環境２０４のクローンとして生成することができる。第２のそのような例として、主デバイス２０２は、主コンピューティング環境２０４を能動的に利用し、ｄｉｆｆファイルなどの変換を生成、格納、および適用して特定の補助デバイス２０６向けに改変された補助コンピューティング環境２０８を生成することができる。第３のそのような例として、主コンピューティング環境２０４は、すべての補助デバイス２０６で利用可能な機能のスーパーセット（たとえば、オペレーティングシステムおよびコンピューティング環境の設定、アプリケーション２１２、アプリケーション構成、アプリケーション状態、およびユーザアカウントの完全なセット）を含み得、主デバイス２０２は、主コンピューティング環境２０４の機能のサブセットを特定の補助デバイス２０６の補助コンピューティング環境２０８として選択することができる。たとえば、特定のアプリケーション２１２が、さまざまな種類の補助デバイス２０６用に改変された一群のアプリケーション変種（たとえば、ワークステーションフォームファクタユーザインターフェイス、大型ディスプレイユーザインターフェイス、およびさまざまな携帯デバイス用の小型ディスプレイユーザインターフェイス）として、主コンピューティング環境２０４内に格納され得、主デバイス２０２は、特定の補助デバイス２０６の補助コンピューティング環境２０８内の提示に適したアプリケーション変種を選択することができる。そのような技法により、主デバイス２０２のリソースを再使用する（たとえば、多数の補助デバイス２０６の代わりに、特定のアプリケーションまたはアプリケーションライブラリの単一のコピーを格納および使用する）ことが可能になり得る。
【００４９】
[0058]  この第２の側面の第４の変形として、主デバイス２０２は、複数の方法で、補助コンピューティング環境２０８のストリーム２１４を補助デバイス２０６にレンダリングおよび／または送信することができる。第１のそのような例として、主デバイス２０２は、補助デバイス２０６から入力ストリームを受け取ることができ、ならびに／またはビデオおよび／もしくはオーディオ出力を補助デバイス２０６にストリーミングすることができる。第２のそのような例として、主デバイス２０２は、補助デバイス２０６に、ストリーム２１４において次のビデオフレームを作成するための現在提示されているビデオフレームの差分更新などの、グラフィックプリミティブ命令のストリームを送信することができる。第３のそのような例として、主デバイス２０２は、補助デバイス２０６で実行されて補助デバイス２０６の補助コンピューティング環境２０８の一部またはすべてをレンダリングすることができる従属アプリケーションを、補助デバイス２０６に送信することができる。第４のそのような例として、主デバイス２０２は、補助コンピューティング環境２０８の一部または全体についてのストリーム２１４を、２つ以上の補助コンピューティングデバイス２０６で提示するためにそれらの補助コンピューティング環境２０６にマルチキャストすることができる。第５のそのような例として、主デバイス２０２は、補助コンピューティング環境２０８の一部を第１の補助デバイス２０６に送信して、補助コンピューティング環境２０８をユーザ１０２に提示する第２の補助デバイス２０６に再送信させることができる。
【００５０】
[0059]  この第２の側面の第５の変形として、主デバイス２０２は、補助デバイス２０６で適切なユーザ体験を提供するために、補助コンピューティング環境２０８の提供を改変することができる。たとえば、主デバイス２０２は、適切な応答性を有するユーザ体験を特定の補助デバイス２０６に提供するための十分な計算リソースを有し得るが、多くのアプリケーション２１２により過剰な負荷がかかっている場合、主デバイス２０２は、補助コンピューティング環境２０８のストリーム２１４の補助デバイス２０６への送信が遅延および／または中断するなど、性能が低下および不足する可能性がある。サービス品質の低下および不足を緩和するために、さまざまな技法を利用することができる。第１のそのような例として、主デバイス２０２は、主デバイス２０２が提示の品質（たとえば、最大視覚品質および／または計算速度）を損なわずに駆動することができるアプリケーション２１２の最大品質を推定し、主デバイス２０２および補助デバイス２０６でのアプリケーション２１２の提示品質を維持するリソース限度にアプリケーション２１２を制限することができる。そのような推定は、たとえば、さまざまな状況で実現されたアプリケーション２１２の品質を測定することにより通知され得、変化する状況を反映するようにアプリケーション２１２の実行を改変することができる（たとえば、十分な処理容量および／もしくはネットワーク容量が提供される場合はアプリケーション２１２の品質を拡張し、ならびに／または利用可能な処理容量および／もしくはネットワーク容量が制約された場合はアプリケーション２１２の品質を低下させる）。補助デバイス２０６に対する補助コンピューティング環境２０８の生成、提示、および送信におけるそうした構成の多くは、本明細書で提示される技法に応じて利用され得る。
【００５１】
[0060]  Ｅ２．アプリケーションの分割および分散
【００５２】
[0061]  本明細書で提示される技法の実施形態間で変形する可能性がある第３の側面は、アプリケーション２１２を主アプリケーション部分２１４と補助アプリケーション部分２１６とに分割し、補助アプリケーション部分２１６を補助デバイス２０６に分散させる態様を含む。
【００５３】
[0062]  この第３の側面の第１の変形として、補助デバイス２０６の利用可能性の検出に応じて、主デバイス２０２は、補助デバイス２０６との接続を確立し、補助デバイス２０６の１つまたは複数のデバイス属性２１０を検出することができる。次に、主デバイス２０２は、補助デバイス２０６のデバイス属性２１０に応じて主コンピューティング環境２０４から改変された補助コンピューティング環境２０８を生成し、補助コンピューティング環境２０８の補助デバイス２０６への送信を開始することができる。代替で、主デバイス２０２は、補助コンピューティング環境２０８を既に生成している可能性がある（たとえば、補助デバイス２０６との以前の対話時に生成された補助コンピューティング環境２０８を格納し、および／またはさまざまな種類の補助デバイス２０６用のそのような環境のライブラリから予め作成された補助コンピューティング環境２０８を取得する）。さらなるそのような変形として、主デバイス２０２は、物理的近接しきい値内の補助デバイス２０６の物理的近接を検出する近接検出器（たとえば、近距離無線通信（NFC）通信コンポーネント）をさらに備え得、主デバイス２０２は、補助デバイス２０６の利用可能性を物理的近接しきい値内の補助デバイス２０６の物理的近接として検出することができる。つまり、ユーザ１０２は、デバイスを近接して配置するだけで、主デバイス２０２と補助デバイス２０６との間の接続を確立することができる。
【００５４】
[0063]  図６は、この第３の側面の第２の変更を含む一群の例示的シナリオを示す。ここで、アプリケーション２１２の主アプリケーション部分２１４および補助アプリケーション部分２１６への分割は、さまざまな方法で実現され得る。第１の例示的シナリオ６００で、アプリケーション２１２は、ビデオシリーズなどのコンテンツ項目の提示を含み、アプリケーション２１２は、コンテンツ項目の提示を補助デバイス２０６の補助コンピューティング環境２０８内で提供する補助アプリケーション部分２１６と、コンテンツ項目の提示を制御する提示コントローラを主コンピューティング環境２０４内に提供する主アプリケーション部分２１４とに分割される。つまり、主デバイス２０２は、補助デバイス２０６におけるメディア提示のコントローラとして利用され得、その逆もまた然りである。
【００５５】
[0064]  第２の例示的シナリオ６０２では、１つのデバイスで提示されるときにまとめて提示されるユーザインターフェイスの要素が、主デバイス２０２で提示される主アプリケーション部分２１４と、補助デバイス２０６で提示される補助アプリケーション部分２１６とに分散され得る。たとえば、ユーザインターフェイス要素は、主デバイス２０２で提示される第１のユーザインターフェイス要素コレクションと、補助デバイス２０６で提示される第２のユーザインターフェイス要素コレクションとに再編され得、それぞれのユーザインターフェイス要素は、各デバイスのサイズ、解像度、およびその他のデバイス属性２１０に合うようにサイズ変更され得る。１つのそのような例として、タッチ感応ディスプレイを備えるデバイスで提示されるユーザインターフェイス要素は、タッチ指向の外観および動作を提示し、非タッチ感応ディスプレイを備えるデバイスで提示されるユーザインターフェイス要素は、ポインタ指向の外観および動作を呈し得る。代替で、ユーザ１０２は、主デバイス２０２でタッチ入力を使用して補助デバイス２０６のユーザインターフェイス要素を利用することができる。たとえば、主デバイス２０２のタッチ感応ディスプレイでユーザの指により制御されるポインタを、補助デバイス２０６の補助コンピューティング環境２０８に移動することができる。そのため、補助デバイス２０６で提示される視覚要素は、補助デバイス２０６がタッチ機能を備えていなくても、タッチ互換動作を呈することができる。
【００５６】
[0065]  第３の例示的シナリオ６０４では、アプリケーション２１２が、主デバイス２０２を通じて主コンピューティング環境２０４内でアプリケーション２１２を閲覧しているユーザ１０２に提示される主アプリケーション部分２１４と、補助デバイス２０６を通じてアプリケーション２１２を閲覧している第２のユーザに提示される補助アプリケーション部分２１６とに分割され得る。たとえば、ゲームアプリケーションは、カードゲームにおける第１のユーザの持ち札などの何らかの秘密情報を第１のユーザ１０２に提示し、カードゲームにおける第２のユーザの持ち札などの何らかの秘密情報を第２のユーザ１０２に提示する補助アプリケーション部分２１６を補助デバイス２０６に送信することができる。
【００５７】
[0066]  この第３の側面の第２の変形として、主デバイス２０２はさらに、補助デバイス２０６のさまざまなリソースを、主コンピューティング環境２０４および／またはアプリケーション２１２と統合することができる。たとえば、主デバイス２０２は、第１の入力コンポーネントをさらに備え得、補助デバイス２０６は、第２の入力コンポーネントをさらに備え得る。第１の入力コンポーネントからの第１のユーザ入力の受け取りに応じて、主デバイス２０２は、第１のユーザ入力をアプリケーション２１２に適用することができ、補助デバイス２０６の第２の入力コンポーネントを通じて提供された、補助デバイス２０６からの第２のユーザ入力の受け取りに応じて、主デバイス２０２は、第２のユーザ入力もアプリケーション２１２に適用することができる。
【００５８】
[0067]  この第３の側面の第３の変形として、アプリケーション２１２の主アプリケーション部分２１４を提示することに加えて、主デバイス２０２は、補助アプリケーション部分２１６を含む補助コンピューティング環境２０８を補助デバイス２０６に送信しながら他の機能を提供することができる。たとえば、第２のアプリケーション２１２を主コンピューティング環境２０４内で提示する要求の受け取りに応じて、主デバイス２０２は、アプリケーション２１２の主アプリケーション部分２１４と共に、および／またはその代わりに、第２のアプリケーション２１２を主コンピューティング環境２０４内で提示することができる。そのような提示の際、補助デバイス２０６が補助アプリケーション部分２１６のみの提示を継続するか、または、たとえば補助デバイス２０６の補助コンピューティング環境２０８内で提示されている補助アプリケーション部分２１６に主アプリケーション部分２１４を統合することにより、アプリケーション２１２の分割を元に戻すことができる。
【００５９】
[0068]  図７は、ユーザ１０２が主デバイス２０２と対話してアプリケーション２１２（メディアプレーヤ等）を主デバイス２０２と補助デバイス２０６との間で分割および分散させるシーケンスを含む例示的シナリオ７００を示す。この例示的シナリオで、アプリケーション２１２は、最初は主デバイス２０２のみに提示され、アプリケーション２１２を分散させるための補助デバイス２０６の利用可能性の検出が、オプションとして検出されてユーザに提示され得る。このオプションの選択を含むユーザ入力７０２は、主デバイス２０２と補助デバイス２０６とを接続させ、アプリケーション２１２を主デバイス２０２に提示される主アプリケーション部分２１４と、補助デバイス２０６によって送信されて提示される補助アプリケーション部分２１６とに分割させ得る。また主デバイス２０２は、主デバイス２０２で他のアプリケーション２１２を実行するオプションを提示することができ、そのオプションの選択を含む追加のユーザ入力７０２は、利用可能なアプリケーション２１２を含むメニュー７０４を主デバイス２０２に提示させることができる。このメニューには、各アプリケーションを主デバイス２０２、補助デバイス２０６、および／または両デバイス間で提示するオプションが含まれる。第２のアプリケーション２１２（たとえば、ウェブブラウザ）の選択を含むユーザ入力７０２により、主デバイス２０２に第２のアプリケーション２１２のみを主デバイス２０２で提示させることができる。このとき、補助デバイス２０６は、補助アプリケーション部分２１６のみの提示を継続するか、または、図７に示すように、主アプリケーション部分２１４を含む統合されたアプリケーション２１２を提示することができる。ユーザ１０２が第２のアプリケーションを終了すると、主デバイス２０２は、第１のアプリケーション２１２の主アプリケーション部分２１４の表示に戻ることができ、補助デバイスでのアプリケーション２１２の統合は元に戻され得る。
【００６０】
[0069]  この第３の側面の第５の変形として、アプリケーション分割の終了を、ユーザ１０２からのユーザ要求に応じて実現することができる。別の例として、主デバイス２０２からの補助デバイス２０６の接続解除の検出に応じて、主デバイス２０２は、アプリケーション２１２の全体を主デバイス２０２で提示するためにアプリケーション２１２の補助アプリケーション部分２１６を主コンピューティング環境２１４に統合することができ、または、補助アプリケーション部分２１６を移動させることができる第２の補助デバイス２０６を特定することができる。さらに別の例として、補助アプリケーション部分２１６がコンテンツ項目の提示をさらに含む場合、主デバイス２０２は、コンテンツ項目の提示の完了（たとえば、補助デバイス２０６で提示されるオーディオまたはビデオシーケンスの末尾への到達）を検出したことに応じて、補助デバイス２０６への補助コンピューティング環境２０８の送信を終了することができる。そのような変形の多くは、本明細書で提示される技法に応じた主デバイス２０２と補助デバイス２０６との間でのアプリケーション２１２の分割および分散で利用することができる。
【００６１】
[0070]  Ｅ４．ユーザ入力ジェスチャ
【００６２】
[0071]  本明細書で提示される技法の実施形態間で変形する可能性がある第４の側面は、主デバイス２０２と補助デバイス２０６との間で分割および分散されたアプリケーション２１２を制御するためにユーザ１０２により実行され得る一群のユーザインターフェイスジェスチャを含む。そのようなジェスチャについて、アプリケーション２１２と対話するためにデバイスで実行されるジェスチャの視覚的な例を示す図８および図９を参照しながら説明する。一部のそのようなジェスチャは、ポインティングデバイス（たとえば、マウス、タッチパッド、またはトラックボール）で実行されるか、タッチ感応ディスプレイ（たとえば、指またはスタイラスを使用）で実行されるか、または入力デバイスに接触しない非接触ジェスチャ（たとえば、カメラにより検出される手または目の動きのジェスチャ）として実行され得る。加えて、そのような例は主デバイス２０２で実行されて補助デバイス２０６で効果を生み出すジェスチャとして説明されているが、それらのジェスチャは、状況によっては、補助デバイス２０６で実行して主デバイス２０２で効果を生み出すこともできる。
【００６３】
[0072]  この第４の側面の第１の変形として、図８は、ポインタ８０８とコンテンツ項目８０６とを提示するディスプレイをさらに備える主デバイス２０２によるジェスチャ検出の第１の例示的シナリオ８００を示す。主デバイス２０２は、コンテンツ項目８０６のディスプレイの縁部からのプル動作８０４と、ディスプレイの縁部へのフリック動作８１０とを含む「プルとフリック」ポインタジェスチャ８０２を検出することができる。主デバイス２０２は、このジェスチャを、コンテンツ項目８０６を補助デバイス２０６で提示する要求として解釈することができ、よってコンテンツ項目８０６の提示を補助デバイス２０６による提示のために補助コンピューティング環境２０８に挿入することができる。さらなる変形として、主デバイス２０２は、ディスプレイの選択された縁部を補助デバイス２０６に物理的または論理的に位置合わせされたものとして特定して、ディスプレイの選択された縁部に向けて実行されたフリック動作８１０によりコンテンツ項目８０６を補助デバイス２０６で提示させ、ディスプレイの他の縁部に向けて実行されたフリック動作８１０ではコンテンツ項目８０６を補助デバイス２０６で提示させないようにすることができる。
【００６４】
[0073]  この第４の側面の第２の変形として、図８は、タッチパッド等のタッチ感応入力デバイス８１６をさらに備える主デバイス２０２を含む第２のジェスチャを示す第２の例示的シナリオ８１２を示す。主デバイス２０２は、補助デバイス２０６の補助コンピューティング環境のスクロール可能要素８２２に関連付けられた２本指ドラッグジェスチャ８１４を検出することができる。たとえば、ユーザ１０２は、２本の指８２０で主デバイス２０２のディスプレイに触り、ディスプレイ上の特定の方向でドラッグ動作８１８を実行することができる。主デバイス２０２は、２本指ドラッグジェスチャ８１４に応じて、スクロール可能要素８２２のスクロール８２４を生じさせることができる（たとえば、２本指ドラッグジェスチャ８１４が上方向で実行された場合は、スクロール可能要素８２２のスクロール８２４を上方に実行し、２本指ドラッグジェスチャ８１４が下方向で実行された場合は、スクロール可能要素８２２のスクロール８２４を下方に実行する。逆も然り）。さらなる変形として、スクロール８２４の速度は、タッチ感応デバイス８１６でのドラッグ動作８１８の速度に比例し得る。
【００６５】
[0074]  この第４の側面の第３の変形として、図８は、第３のジェスチャを示す第３の例示的シナリオ８２６を示す。ここで、主デバイス２０２は、タッチ感応入力デバイス８１６のユーザ１０２がタッチ感応入力デバイス８１６の縁部８３０から内側方向８３２への縁部スワイプジェスチャ８２８（たとえば、ディスプレイまたはタッチパッドのベゼル縁部から中心に向かうスワイプ）を実行したことを検出する。主デバイス２０２は、この縁部スワイプジェスチャ８２８を、補助コンピューティング環境２０８を現在のアプリケーションの提示から以前に提示されていたアプリケーションの提示に移行させる要求として解釈することができ、よって補助コンピューティング環境２０８の現在のアプリケーションから異なるアプリケーションへの移行８３４を開始することができる。
【００６６】
[0075]  この第４の側面の第４の変形として、図９は、第４のジェスチャを示す第４の例示的シナリオ９００を示す。ここで、主デバイス２０２は、補助デバイス２０６がボタンの列などのユーザインターフェイス要素のシーケンス９０８を選択されたユーザインターフェイス要素にユーザ入力の現在のフォーカスが設定された状態で提示する間に、ポインタ８０８のユーザ１０２が、ポインタ８０８を円形動作９０４で動かすことを含む円形ポインタジェスチャ９０２を実行したことを検出する。主デバイス２０２は、この円形ポインタジェスチャ９０２を、シーケンス９０８で選択されたユーザインターフェイス要素をシーケンス９０８の第１のユーザインターフェイス要素から隣接するユーザ要素に移行させる要求として解釈することができ、隣接するユーザ要素を補助デバイス２０６におけるアクティブなユーザ要素として選択することで移行９０６を実装することができる。
【００６７】
[0076]  この第４の側面の第５の変形として、図９は、第５のジェスチャを示す第５の例示的シナリオ９１０を示す。ここで、主デバイス２０２は、補助デバイス２０６がスクロール可能ユーザインターフェイス要素９１４を提示している間に、ユーザ１０２がポインタ８０８を円形動作９０４で動かすことを含む円形ポインタジェスチャ９１２を実行したことを検出する。主デバイス２０２は、円形ポインタジェスチャ９１２を、スクロール可能ユーザインターフェイス要素９１４をスクロールする要求として解釈することができ、よってスクロール可能ユーザインターフェイス要素９１４のスクロール９１６を開始することができる。
【００６８】
[0077]  この第４の側面の第６の変形として、図９は、第６のジェスチャを示す第６の例示的シナリオ８２６を示す。ここで、主デバイス２０２は、補助デバイス２０６がコンテンツ項目８０６を全画面モードで提示している間に、ユーザ１０２が少なくとも３本の指８２０を使用してピンチジェスチャ９２０を実行したこと（たとえば、少なくとも３本の指８２０でオープン構成のタッチ感応ディスプレイ９２２の表面に触れる、指８２２をクローズ構成に縮小する９２４）を検出する。主デバイス２０２は、ピンチジェスチャ９２０を、コンテンツ項目８０６の提示を全画面モードから部分画面モードに移行する要求として解釈することができ、補助デバイス２０６でのコンテンツ項目８０６の提示を小さい表示サイズにサイズ変更することができる。
【００６９】
[0078]  そのようなジェスチャベース制御の検出および提示には、さらに多くの変形があり得る。この第４の側面の第７の変形として、補助コンピューティング環境２０８に関連付けられたジェスチャの開始を検出したことに応じて、主デバイス２０２は、主コンピューティング環境２０４の代わりにポインタジェスチャユーザインターフェイスをディスプレイに提示することができる。たとえば、ユーザ１０２が「スクロール」ジェスチャを実行している間に、主デバイス２０２は、主コンピューティング環境２０４ではなく、全画面スクロールバーを提示して、ユーザのジェスチャの動作を支援することができる。ジェスチャの完了を検出したことに応じて、主デバイス２０２は、ポインタジェスチャユーザインターフェイスの代わりに、ディスプレイに提示された主コンピューティング環境２０４を復元することができる。さらなるそのような変形において、ジェスチャが補助コンピューティング環境２０８内でユーザインターフェイスコンテンツを提示するユーザインターフェイス要素に関連付けられている場合、主デバイス２０２は、ユーザインターフェイス要素のユーザインターフェイスコンテンツを反映するポインタジェスチャユーザインターフェイスを提示することができる。たとえば、ユーザ１０２が補助デバイス２０６に提示されたリストをスクロールさせるジェスチャを主デバイス２０２で実行する際に、主デバイス２０２は、ユーザ１０２がスクロールを完了するまでは主コンピューティング環境２０４ではなくリストのコンテンツを（たとえば、拡大表示で）表示し、その後は主コンピューティング環境２０４の提示を主デバイス２０２で復元することができる。そのような変形の多くは、本明細書で提示される技法のさまざまな実施形態において、主デバイス２０２で実行されるジェスチャで補助デバイス２０６での補助コンピューティング環境２０８の提示に影響を与えられるようにする（またはその逆を実現する）ために含まれ得る。
【００７０】
[0079]  Ｆ．コンピューティング環境
【００７１】
[0080]  図１０および以下の説明は、本明細書で示される１つまたは複数の規定の実施形態を実装するのに適したコンピューティング環境を簡潔かつ全体的に示す。図１０の動作環境は、適切な動作環境の一例に過ぎず、動作環境の使用または機能の範囲について何らかの限定を示唆することを意図したものではない。例示的コンピューティングデバイスは、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、携帯デバイス（たとえば、携帯電話、個人用デジタル補助装置（PDA）、メディアプレーヤ等）、マルチプロセッサシステム、家電製品、ミニコンピュータ、メインフレームコンピュータ、これらのシステムまたはデバイスのいずれかを含む分散コンピューティング環境などを含むが、それらに限定されない。
【００７２】
[0081]  必須ではないが、実施形態は、１つまたは複数のコンピューティングデバイスにより実行される「コンピュータ可読命令」の一般的なコンテキストで説明される。コンピュータ可読命令は、コンピュータ可読メディア（以下で説明）を通じて配布され得る。コンピュータ可読命令は、関数、オブジェクト、アプリケーションプログラミングインターフェイス（API）、データ構造などの、特定のタスクを実行するかまたは特定の抽象データ型を実装するプログラムモジュールとして実装され得る。典型的には、コンピュータ可読命令の機能は、さまざまな環境で必要に応じて結合または分散され得る。
【００７３】
[0082]  図１０は、本明細書で提示される１つまたは複数の実施形態を実装するように構成されたコンピューティングデバイス１００２を備えるシステム１０００の例を示す。一構成では、コンピューティングデバイス１００２は、少なくとも１つの処理装置１００６と、メモリ１００８とを備える。実際の構成およびコンピューティングデバイスの種類に応じて、メモリ１００８は、揮発性（たとえば、RAM等）、不揮発性（たとえば、ROM、フラッシュメモリ等）、またはそれら２つの何らかの組み合わせであり得る。この構成は、図１０で破線１００４により示されている。
【００７４】
[0083]  他の実施形態では、デバイス１００２は、追加の特徴および／または機能を備え得る。たとえば、デバイス１００２は、磁気ストレージ、光学ストレージ等を含むがそれらに限定されない追加のストレージ（たとえば、リムーバブルおよび／または非リムーバブル）をさらに備える可能性がある。そのような追加のストレージは、図１０でストレージ１０１０により示されている。一実施形態では、本明細書で提示される１つまたは複数の実施形態を実装するコンピュータ可読命令は、ストレージ１０１０に含まれる可能性がある。ストレージ１０１０は、オペレーティングシステムやアプリケーションプログラムなどを実装する他のコンピュータ可読命令をさらに格納する可能性がある。コンピュータ可読命令は、たとえば、処理装置１００６による実行のために、メモリ１００８に読み込まれ得る。
【００７５】
[0084]  本明細書で使用される「コンピュータ可読メディア」という用語は、信号等の通信メディアを含む他の形式のコンピュータ可読メディアを除く、コンピュータ可読メモリデバイスを含む。そのようなコンピュータ可読メモリデバイスは、揮発性および／または不揮発性であり得、リムーバブルおよび／または非リムーバブルであり得、コンピュータ可読命令または他のデータを格納するさまざまな種類の物理デバイスを含み得る。メモリ１００８およびストレージ１０１０は、コンピュータストレージメディアの例である。コンピュータストレージデバイスは、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（DVD）または他の光学ストレージ、磁気カセット、磁気テープ、および磁気ディスクストレージまたは他の磁気ストレージデバイスを含むが、それらに限定されない。
【００７６】
[0085]  デバイス１００２は、デバイス１００２が他のデバイスと通信することを可能にする通信接続１０１６をさらに備える。通信接続１０１６は、モデム、ネットワークインターフェイスカード（NIC）、統合型ネットワークインターフェイス、無線周波送信器／受信器、赤外線ポート、ＵＳＢ接続、またはコンピューティングデバイス１００２を他のコンピューティングデバイスに接続する他のインターフェイスを含み得るが、それらに限定されない。通信接続１０１６は、ワイヤード接続またはワイヤレス接続を含み得る。通信接続１０１６は、通信メディアを送信および／または受信することができる。
【００７７】
[0086]  「コンピュータ可読メディア」という用語は、通信メディアを含み得る。通信メディアは、典型的には、コンピュータ可読命令または他のデータを搬送波や他の搬送機構などの「変調データ信号」で具体化し、任意の情報配信メディアを含む。「変調データ信号」という用語は、その特性の１つまたは複数が当該信号で情報をエンコードする態様で設定または変更された信号を含み得る。
【００７８】
[0087]  デバイス１００２は、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイス、赤外線カメラ、ビデオ入力デバイス、および／または他の入力デバイスなどの入力デバイス１０１４を含み得る。１つまたは複数のディスプレイ、スピーカ、プリンタ、および／または任意の他の出力デバイスなどの出力デバイス１０１２も、デバイス１００２に含まれる可能性がある。入力デバイス１０１４および出力デバイス１０１２は、ワイヤード接続、ワイヤレス接続、またはそれらの任意の組み合わせを通じて、デバイス１００２に接続され得る。一実施形態では、別のコンピューティングデバイスの入力デバイスまたは出力デバイスが、コンピューティングデバイス１００２の入力デバイス１０１４または出力デバイス１０１２として使用される可能性がある。
【００７９】
[0088]  コンピューティングデバイス１００２のコンポーネントは、バスなどのさまざまな相互接続により接続され得る。そのような相互接続は、ＰＣＩエクスプレス等の周辺コンポーネント相互接続（PCI）、ユニバーサルシリアルバス（USB）、Ｆｉｒｅｗｉｒｅ（IEEE 1394）、光学バス構造などを含み得る。別の実施形態では、コンピューティングデバイス１００２のコンポーネントは、ネットワークにより相互接続される。たとえば、メモリ１００８は、ネットワークにより相互接続された異なる物理位置に配置された複数の物理メモリユニットで構成され得る。
【００８０】
[0089]  当業者は、コンピュータ可読命令を格納するために利用されるストレージデバイスをネットワークに分散させることができることを認識する。たとえば、ネットワーク１０１８を介してアクセス可能なコンピューティングデバイス１０２０は、本明細書で提示される１つまたは複数の実施形態を実装するコンピュータ可読命令を格納することができる。コンピューティングデバイス１００２は、コンピューティングデバイス１０２０にアクセスし、コンピュータ可読命令の一部またはすべてを実行のためにダウンロードすることができる。代替で、コンピューティングデバイス１００２は、必要に応じて、コンピュータ可読命令の断片をダウンロードすることができ、または、一部の命令をコンピューティングデバイス１００２で実行して一部の命令をコンピューティングデバイス１０２０で実行することができる。
【００８１】
[0090]  Ｇ．用語の使用
【００８２】
[0091]  主題について構造的特徴および／または方法論的行為に固有の言語で説明してきたが、添付の請求項で定義される主題は上述した特定の機能または行為に必ずしも限定されないことが理解される。むしろ、上述した特定の特徴および行為は、請求項を実装する例示的形式として開示されている。
【００８３】
[0092]  本願で使用されている、「コンポーネント」、「モジュール」、「システム」、「インターフェイス」等の用語は、ハードウェア、ハードウェアとソフトウェアの組み合わせ、ソフトウェア、または実行中のソフトウェアのいずれかであるコンピュータ関連エンティティを示すものとして一般的に意図されている。たとえば、コンポーネントは、プロセッサで実行中のプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行のスレッド、プログラム、および／またはコンピュータであり得るが、それらに限定されない。例として、コントローラで実行中のアプリケーションと、コントローラとは、いずれもコンポーネントであり得る。１つまたは複数のコンポーネントがプロセスおよび／または実行のスレッド内に存在する可能性があり、コンポーネントは、１つのコンピュータに局地化され、および／または２つ以上のコンピュータ間に分散される可能性がある。
【００８４】
[0093]  さらに、請求項に記載された主題は、開示された主題を実装するコンピュータを制御するためのソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組み合わせを作成する標準のプログラミングおよび／またはエンジニアリング技法を使用して、方法、装置、または製造品として実装され得る。本明細書で使用される「製造品」という用語は、任意のコンピュータ可読デバイス、キャリア、またはメディアからアクセス可能なコンピュータプログラムを包含するものとして意図されている。もちろん、当業者は、請求項に記載された主題の範囲または趣旨から逸脱することなく、この構成に多数の変更を加えることができることを認識する。
【００８５】
[0094]  本明細書では、実施形態のさまざまな動作が提供される。一実施形態では、説明される１つまたは複数の動作は、１つまたは複数のコンピュータ可読メディアに格納され、コンピューティングデバイスにより実行された場合に当該コンピューティングデバイスに説明される動作を実行させるコンピュータ可読命令を構成し得る。一部またはすべての動作が説明される順序は、それらの動作が必然的に順序に依存することを暗示するものとして理解されるべきではない。この説明の利点を踏まえて、当業者により、代替の順序が認識される。さらに、すべての動作が本明細書で提示される各実施形態に必ずしも存在するわけではないことが理解される。
【００８６】
[0095]  本明細書で「例」として説明される任意の側面または設計は、必ずしも他の側面または設計よりも有利なものとして解釈されない。むしろ、「例」という単語の使用は、本明細書で提示される技法に関連し得る１つの考えられる側面および／または実装を提示することを意図している。そのような例は、そうした技法にとって必須でなく、限定を意図するものでもない。そうした技法のさまざまな実施形態は、そうした例を単独または他の特徴との組み合わせで含み得、ならびに／または図示された例を変形および／もしくは除外し得る。
【００８７】
[0096]  本願で使用される「または」という用語は、排他的な「または」ではなく、包含的な「または」を意味することを意図している。つまり、別途明記されない限り、またはコンテキストから明確でない限り、「ＸはＡまたはＢを用いる」は、自然な包含的置き換えのすべてを意味することを意図している。つまり、ＸがＡを用いるか、ＸがＢを用いるか、またはＸがＡとＢの両方を用いる場合、「ＸはＡまたはＢを用いる」は、これらの事例のいずれでも満たされる。加えて、本願および添付の請求項で使用される冠詞「ａ」および「ａｎ」は、単数であることが別途明記されるかまたはコンテキストから明確である場合を除き、「１つまたは複数の」を意味するものとして一般的に解釈され得る。
【００８８】
[0097]  また、本開示は１つまたは複数の実装に関して提示および説明されているが、本明細書および添付の図面の読み込みおよび理解に基づき、等価の代替物および変形が当業者に思い浮かぶ。本開示は、そのような変形および代替物のすべてを含み、添付の請求項の範囲によってのみ限定される。上述したコンポーネント（たとえば、要素、リソース等）により実行されるさまざまな機能に特に関連して、そのようなコンポーネントを説明するために使用される用語は、別途明記されない限り、たとえ本開示の本明細書において図示された例示的実施形態の機能を実行する開示された構造と構造的に等価でなくても、説明されるコンポーネントの指定された機能を実行する任意のコンポーネント（たとえば、機能的に等価であるもの）に対応することが意図されている。加えて、本開示の特定の特徴は、複数の実装のうちの１つのみに関連して開示されている可能性があるが、そのような特徴は、任意の所与のまたは特定のアプリケーションにとって要望されかつ有利であり得るために、他の実装の１つまたは複数の他の特徴と組み合わされることがある。さらに、「具備する」、「含む」、「有する」、「伴う」、またはそれらの用語の変形が発明を実施するための形態または請求項で使用されていることに関し、そのような用語は、「備える」という用語と同様の態様で包含的であることを意図したものである。
【図１】
2017538178.tif 000003
【図２】
2017538178.tif 000004
【図３】
2017538178.tif 000005
【図４】
2017538178.tif 000006
【図５】
2017538178.tif 000007
【図６】
2017538178.tif 000008
【図７】
2017538178.tif 000009
【図８】
2017538178.tif 000010
【図９】
2017538178.tif 000011
【図１０】
2017538178.tif 000012
【国際調査報告】
2017538178.tif 000013
2017538178.tif 000014