(58)【調査した分野】(Int.Cl.,DB名)
前記命令を実行することが、前記ホストデバイスに、前記ターゲットデバイスを通じた前記ターゲットデバイスリソースの前記利用可能性の検出に応じて、前記ホストコンピューティング環境との統合のために前記ターゲットデバイスリソースの前記利用可能性を前記ホストデバイスユーザに通知することをさらに実行させる、請求項1に記載の方法。
【発明を実施するための形態】
【0009】
[0019] 請求項に記載された主題について、図面を参照しながら以下に説明する。全体を通じて、同様の要素を示すために同様の参照番号を使用する。以下の説明では、請求項に記載された主題の完全な理解を促すために、説明の都合上、多数の具体的な詳細事項を示す。ただし、これらの具体的な詳細事項を伴わずに、請求項に記載された主題が実践される可能性があることは明らかであり得る。その他の部分では、請求項に記載された主題についての説明を簡素化するために、構造およびデバイスがブロック図の形式で示される。
【0010】
A.序論
[0020] コンピューティングの分野内では、さまざまな技法が、ビデオ、サウンド、キーボード、マウス入力、ストレージ、ネットワーク接続、およびプリンタ等の周辺コンポーネントを提示するというような、第1のデバイスによる第2のデバイスとのリソース共有を実現するために利用され得る。さまざまなモデルにより、複雑さ、承諾、セキュリティ、構成可能性、使いやすさなど、そのようなリソース共有を求めるユーザの多様な関心事を満足させることができる。
【0011】
[0021]
図1は、デバイス間でのリソース共有を実現する3つのそのようなモデルを示す例示的シナリオの図である。
【0012】
[0022]
図1の第1の例示的シナリオ100は、ホストデバイス104のホストコンピューティング環境106と対話することを望むユーザ102がターゲットデバイス108を通じて端末サービスセッションを確立することができる、端末サービス共有技法を示す。たとえば、ユーザ102は、ターゲットデバイス108のターゲットコンピューティング環境110を通じて、ホストデバイス104のユーザ102のアカウントにログイン資格情報を提供すること等により、ホストデバイス104との接続を確立し、端末サービス要求112を開始することができる。ホストコンピューティング環境106のユーザ102のローカルアカウントでログイン資格情報を検証した後、ホストデバイス104は、端末サービスセッション114を開始することができる。これにより、ターゲットデバイス108のターゲットコンピューティング環境表示116内でホストコンピューティング環境表示が提示される(たとえば、ホストコンピューティング環境106のデスクトップ環境が、ターゲットコンピューティング環境110で提示されるウィンドウ内に現れる)。ユーザ102は、たとえば、ターゲットデバイス108の入力デバイスを使用して、ホストコンピューティング環境106およびホストコンピューティング環境内で提供されるアプリケーションに適用する入力をホストデバイス104に送ることにより、あたかもユーザ102がホストデバイス104に物理的にアクセスしているかのようにホストコンピューティング環境表示118と対話することができる。同様のモデルが、テルネットおよび/またはセキュアシェル(SSH)セッションによって提供される。この場合、ホストコンピューティング環境106内のユーザ102のユーザアカウントが、ターゲットデバイス108のコンソール表示内で提示され得る。
【0013】
[0023]
図1の第2の例示的シナリオ120は、ホストデバイス104のユーザ102がプロジェクタ等のターゲットデバイス108のディスプレイでホストコンピューティング環境106のディスプレイをミラーリングすることを要求する、ワイヤレスディスプレイ(Wi-Di)モデル等のディスプレイミラーリングモデルを示す。ホストデバイス104は、ディスプレイをターゲットデバイス108にミラーリングする提案122を開始することができ、提案122の受諾124に応じて、ホストデバイス104は、ホストコンピューティング環境106のディスプレイをターゲットデバイス108でミラーリングする126ことができる。
【0014】
[0024]
図1の第3の例示的シナリオ128は、2つのデバイスのユーザ102がデバイス間で共有される入力および/または出力を構成することができる、入力共有モデルを示す。たとえば、ユーザ102は、一部のユーザ入力134(たとえば、キーボードを介したテキスト入力136や、マウスを介したポインティング入力138)を第1のコンピューティング環境132内で利用するように第1のデバイス130を構成することができるが、ユーザ入力134を第2のコンピューティング環境144内で処理するために第2のデバイス142に送信する140ように第1のデバイス130を切り替えることもできる。ユーザ102は、第1のデバイス130からユーザ入力134を受け取り、第2のデバイス142の第2のコンピューティング環境144内でユーザ入力を適用するように、第2のデバイス142を構成することもできる。そのように第1のデバイス130および第2のデバイス142を構成し、それらの間の接続を確立することで、ユーザ102は、デバイス間でのユーザ入力134の共有を実現することができる。
【0015】
[0025]
図1の例示的シナリオで提示される各技法は、デバイス間でのリソース共有のためのさまざまなモデルを可能にする。これらのモデルのいくつかは、一部のシナリオでは、他のモデルに比べて高機能であり、使いやすく、および/または満足度が高い。しかし、各モデルは、それらのモデルの特定のシナリオに対する適用性および適合性を損なう何らかの欠点を呈し得る。
【0016】
[0026] 第1の例として、リソース共有のための多数のモデルは、そのようなリソース共有を実現するためのユーザ102によるデバイスの事前構成に依存する。たとえば、ホストデバイス104は、任意のユーザ102がホストデバイス104との端末サービスセッション114を確立することを一般的には許可せず、ホストコンピューティング環境106内にユーザアカウントを持っているユーザ102のみがそのようなセッションを開始することを許可する。なぜなら、任意のユーザ102が端末サービスセッション114を開始することを許可すると、セキュリティ上の脆弱性が生じる可能性があるからである。同様に、入力共有128の構成は、第1のデバイス130がユーザ入力134を送信することを許可し、第2のデバイス142がユーザ入力134を受け取って受諾することを許可するための、ユーザ102による構成を一般的に含む。なぜなら、不明なユーザ102が各デバイス130のコンピューティング環境に入力を送信および/または受信することを許可すると、セキュリティ上のリスクが生じる可能性があるからである。逆に、プロジェクタシナリオ等では、デバイスは任意のユーザによる要求に応じてリソースを提供し得るが、リソース共有デバイスのユーザは、不明および/または未認証の個人がデバイスのリソースに任意にアクセスすることを望まない場合がある。なぜなら、それによって受け入れ難いセキュリティ上のリスクおよび/またはリソース共有デバイスのリソースの枯渇が生じる可能性があるからである。
【0017】
[0027] 第2の例として、リソースを共有するための多くのモデルは、特定の種類のリソースの共有に制約される。第1のそのような例として、端末サービスモデルは、一般的にはホストデバイス104のユーザ102が利用できる完全なリソースセットをターゲットデバイス108に拡張する端末サービスセッション114の共有を可能にする。しかし、ユーザ102がホストデバイス104のホストコンピューティング環境106の選択されたホストデバイスリソースのみを利用することを望んでいるのに、端末サービスセッション114を特定のホストデバイスリソースに限定することができない場合がある。同様に、ワイヤレスディスプレイはディスプレイのミラーリングを可能にし、入力共有はユーザ入力134の共有を可能にするが、そのような共有モデルをサウンド、ネットワーク接続やスキャン機器やファックス機器などの周辺機器、通信セッションといった他の種類のリソースを含むように拡張するのは難しい場合がある。むしろ、各モデルは特定の種類のリソース共有のために提供され得、そのような共有のみに限定され得る。
【0018】
[0028] 第3の例として、第1のデバイスのリソースの第2のデバイスとの共有は、第2のデバイスのコンピューティング環境とうまく統合されないことが多く、アドホックな態様で受け取られて適用される可能性がある。たとえば、端末サービスモデルでは、ホストデバイス104のリソースはホストコンピューティング環境106のホストコンピューティング環境表示118内に包含され、ターゲットデバイス108のターゲットリソースとは異なる態様でターゲットデバイス108によって扱われる。同様に、ワイヤレスディスプレイモデルでは、ユーザ102は、ディスプレイの写しをプロジェクタで表示することができるが、プロジェクタのリソースを利用してホストコンピューティング環境106と対話することはできない場合がある。たとえば、プロジェクタは、仮に当該プロジェクタが1つまたは複数の入力デバイスを備えるターゲットデバイス108であっても、ホストデバイス104により送信されたホストコンピューティング環境106の非対話的な態様でのミラーリングに限定される場合がある。第3のそのような例として、第1のデバイス130によるユーザ入力134の共有は、第2のデバイス142に送信されるユーザ入力命令のストリームとして実装され得るが、第2のデバイス142は、第1のデバイス130のユーザ入力デバイスを第2のコンピューティング環境114内の独立したリソース(たとえば、ユーザ入力デバイス)として表さない場合がある。たとえば、第2のデバイス142は、第1のデバイス130のユーザ入力デバイスと対話する(たとえば、それらのデバイスに、キーボードの大文字ロックまたは数値ロックなどの入力デバイス属性を問い合わせ、および/または第1のデバイス130のマウスをポインタアクセラレーション等の特徴を調整するように構成する)ことができない場合がある。むしろ、第2のデバイス142の入力共有サーバは、第1のデバイス130から受け取られたユーザ入力134をアドホックな態様で適用するだけであり得、第1のデバイス130で提供されるユーザ入力デバイスの種類(たとえば、ポインティング入力がマウス、スタイラス、トラックボール、タッチ感応デバイス、ジェスチャデバイス、視線追跡デバイスのいずれを通じて受け取られているか)も通知されない場合がある。実際、第2のデバイス142のユーザ102にとっては、ユーザ入力134のソースを判断することも難しい場合がある。たとえば、第2のデバイス142に登録された入力デバイスのいずれもが、第2のデバイス142により受け取られて処理されているユーザ入力134を呈さない場合がある。これらおよび他の欠点は、
図1の例示的シナリオで示したものを含む、多くのリソース共有モデルで生じる可能性があり、それらの技法の多様なシナリオおよび関心事に対する適用性および使いやすさを低下させる。
【0019】
[0029] B.提示される技法
[0030] 本明細書では、ターゲットデバイス108の特定のリソースをホストデバイス104のホストコンピューティング環境106と統合することができる態様で、デバイス間でリソースを借用および貸与する技法を提示する。そのような技法に応じて、ターゲットデバイス108は、ターゲットデバイスのターゲットデバイスリソースの利用可能性を、ホストデバイス104のホストコンピューティング環境106との統合のために告知することができる。ホストデバイス104は、そのような利用可能性を検出することができ、ホストデバイスユーザ102からの、ターゲットデバイスリソースをホストコンピューティング環境106と統合する要求の受け取りに応じて、ターゲットデバイス108に、ターゲットデバイスリソースをホストコンピューティング環境106で使用するために借用する要求を送信することができる。ターゲットデバイス108は、提案を受諾し、ターゲットデバイスリソースをホストコンピューティング環境106用に予約することができる(たとえば、入力コンポーネントをホストコンピューティング環境106に排他的または非排他的に結び付け、および/またはホストデバイス104のホストコンピューティング環境106の少なくとも一部をレンダリングするために提示デバイスの一部またはすべてを予約する)。ターゲットデバイス108からの要求の受諾の受け取りに応じて、ホストデバイス104は、ターゲットデバイスリソースをホストデバイスリソースと並行してホストコンピューティング環境106に統合し(たとえば、ターゲットデバイス108のユーザ入力デバイスを、ホストデバイス104に物理的および/またはワイヤレスで直接に接続された他のユーザ入力デバイスと同等に、最上級の入力デバイスとして表す)、ターゲットデバイスリソースをホストコンピューティング環境106内でホストデバイスユーザ102に提示することができる。これでユーザ102は、ホストデバイス104と対話しながら、ターゲットデバイス108のリソースを利用することができる。たとえば、ホストデバイス104のホストコンピューティング環境106内で入力を提供するために、ターゲットデバイス108に物理的に接続されたマウスを「借用する」ことができる。
【0020】
[0031]
図2は、本明細書で提示される技法に応じた、ホストデバイス104によるターゲットデバイス108のターゲットデバイスリソース210の借用を示す例示的シナリオ200の図である。この例示的シナリオ200では、第1の時刻202で、ホストデバイス104のユーザ102が、ターゲットデバイス108のディスプレイやマウスなど、ターゲットデバイス108の特定のターゲットデバイスリソース210をホストデバイス104で使用するために借用する要求を開始することができる。ホストデバイス104は、ターゲットデバイス108のユーザ102に提示され得るリソース要求204をターゲットデバイス108に送信することができる(ただし、他のシナリオでは、リソース要求204はターゲットデバイス108により自律的に評価され得る)。ターゲットデバイス108のユーザ102は、リソース要求204を受け取って検討し、ホストデバイス104で使用するためのターゲットデバイスリソース210の借用を許可することができる。よって、ターゲットデバイス108は、リソース要求204の受諾206をホストデバイス104に送信することができる。
【0021】
[0032] 第2の時刻208で、ホストデバイス104およびターゲットデバイス108は、ターゲットデバイスリソース210のホストデバイス104での使用のための借用を実現させることができる。ターゲットデバイス108は、ターゲットデバイスリソース210をホストデバイス104による使用のために予約することができ(たとえば、ターゲットコンピューティング環境110とホストデバイス104との間でのターゲットデバイスリソース210の借用を開始し、および/またはターゲットデバイスリソース210をホストデバイス104に貸与している間にターゲットコンピューティング環境110から引き離す)。ホストデバイス104は、ターゲットデバイスリソース210をホストコンピューティング環境リソースセット212に統合することもできる。たとえば、ホストデバイス104に直接取り付けられたホストデバイスリソース214と並行して、ターゲットデバイスリソース210をホストコンピューティング環境106内に最上級のデバイスとして追加する216。たとえば、ターゲットデバイス108がホストデバイス104に貸与されたターゲットデバイスリソース210を通じてターゲットユーザ入力134を受け取る場合、ターゲットデバイス108は、ターゲットユーザ入力134をホストデバイス104に送信することができ、ホストデバイス104は、ホストデバイス104に直接接続されたキーボード等のホストデバイス入力リソースを通じて受け取られるホストユーザ入力218と並行して、ターゲットユーザ入力134をホストコンピューティング環境106に適用することができる。また、ホストコンピューティング環境106は、ホストデバイス104のホストデバイスディスプレイと、ホストデバイス104に貸与されたターゲットデバイス108のターゲットデバイスディスプレイとの両方で提示され得る。加えて、ターゲットコンピューティング環境110は、たとえば、ターゲットデバイスリソース210が貸与されホストコンピューティング環境106と統合されている間にターゲットコンピューティング環境110をロックし220、および/または一時停止することにより、ホストコンピューティング環境106から保護され得る。この態様で、ホストデバイス104およびターゲットデバイス108は相互運用して、本明細書で提示される技法に応じてターゲットデバイスリソース210をホストデバイス104で使用するための借用を実現することができる。
【0022】
[0033] C.技術的効果
[0034] 本明細書で提示される技法を使用してターゲットデバイス108のターゲットデバイスリソース210をホストデバイス104で使用するために借用することにより、ホストデバイス104および/またはターゲットデバイス108のためのさまざまな技術的効果が得られ得る。
【0023】
[0035] 本明細書で提示される技法により実現され得る技術的効果の第1の例として、ホストデバイス104およびターゲットデバイス108は、端末サービス等の他の共有技法よりも簡単かつ略式な態様で、ターゲットデバイスリソース210を共有することができる。端末サービスセッション(たとえば、
図1の第1の例示的シナリオ100に示されているもの)は、複数の条件に依存する。第1に、ユーザ102は、端末サービスが有効化されたホストデバイス104でユーザアカウントを所有していなければならない。第2に、ユーザ102は、ターゲットデバイス108のターゲットコンピューティング環境110にアクセスして端末サービス要求112を開始することができなければならない。第3に、ターゲットデバイス108は、ホストデバイス104を発見し、接触を開始することができなければならない。第4に、ユーザ102は、たとえばログイン資格情報を提供することにより、ホストデバイス104に対して自らを認証しなければならない。これらの条件のいずれかが失敗すると、端末サービスセッション114を開始することができない可能性がある。たとえば、ユーザ102がホストデバイス104のアドレスを覚えていないか、またはターゲットデバイス108がファイアウォール等によりホストデバイス104に接触できない場合、端末サービスセッション114を実現することはできない。一方、
図2の例示的シナリオ200に示す技法では、ホストデバイス104のユーザ102は、ターゲットデバイス108でユーザアカウントを所有している必要はなく、ターゲットデバイス108にアクセスする必要はない。ターゲットデバイス108は、借用要求の自律的受諾206および/またはターゲットデバイス108のユーザ102による受諾を通じて、リソース要求204を実現させることができる。よって、ターゲットデバイスリソースのそのような借用および貸与204は、比較的容易かつ略式な態様で実現され得る。
【0024】
[0036] 本明細書で提示される技法により実現され得る技術的効果の第2の例として、ターゲットデバイスリソース210の略式の借用および貸与により、他のモデルでは実現できないリソース共有シナリオを実現することが可能になり得る。第1のそのような例として、ターゲットデバイス108は、他の方法ではターゲットデバイス108を利用することが許可されないユーザ102および/またはホストデバイス104によるターゲットデバイスリソースの借用204を許可することができる。たとえば、ターゲットデバイス108は、ユーザ102がターゲットデバイス108にログインすること、またはターゲットコンピューティング環境110と対話することを禁止することができ、ターゲットコンピューティング環境110をユーザ102から能動的に分離することができる(たとえば、ターゲットデバイス108をターゲットデバイス108のユーザ102以外のユーザに対してロックする)が、にもかかわらず、マウスまたはディスプレイをホストコンピューティング環境106と統合するためにホストデバイス104が借用することを許可することができる。第2のそのような例として、ホストデバイス104のホストデバイスリソース214と並行してターゲットデバイスリソース210を統合することにより、ホストデバイス104のユーザ102と、ターゲットデバイス108のユーザ102とが、共にホストコンピューティング環境106と対話することが可能になり得る。たとえば、ホストデバイスユーザ102は、ホストデバイス104に直接接続された入力デバイスおよびディスプレイを通じてホストユーザ入力218を提供することができ、ターゲットデバイスユーザ102は、ホストコンピューティング環境106に貸与されたターゲットデバイス108の入力デバイスおよびディスプレイを通じてターゲットユーザ入力134を提供することができ、ホストコンピューティング環境106は、両方の入力ソースおよび両方のディスプレイを同時に反映することができる。そのような同時利用は、他のリソース共有モデルを通じて実現することはできない。たとえば、ユーザ102がターゲットデバイス108から端末サービスセッション114を開始する場合、ホストデバイス104は、端末サービスセッション114の継続中に、ホストデバイス104および/または同じユーザアカウントへのローカルアクセスをしばしばロックアウトする。
【0025】
[0037] 本明細書で提示される技法により実現され得る技術的効果の第3の例として、本明細書で提供されるターゲットデバイスリソース210の共有により、他のリソース共有モデルを通じて実現されるよりも詳細な借用および貸与を実現することが可能になり得る。たとえば、ホストデバイス104のユーザ102が端末サービスセッション114を開始する場合、ホストコンピューティング環境106の全体がターゲットデバイス108にさらされる可能性がある。しかし、これはユーザ102が意図していることではない可能性がある。むしろユーザ102は、ホストコンピューティング環境106のコンテンツをターゲットデバイス108に表示することなくターゲットデバイス108のマウスのみをホストデバイス104で利用したいか、または、ユーザ入力をターゲットデバイス108からホストデバイス104にリダイレクトさせることなくホストデバイス104の一部のコンテンツのみをターゲットデバイス108で表示したい可能性がある。同様に、ターゲットデバイス108のユーザ102は、マウスなど、特定のターゲットデバイスリソースのみをホストデバイス104に貸与したいが、そのような選択的なリソース共有は端末サービスセッション114のコンテキストでは実現できない可能性がある。
図2の例示的シナリオ200は、本明細書で提示される技法に応じて実現可能なターゲットデバイスリソースの選択的な貸与および借用を示している。
【0026】
[0038] 本明細書で提示される技法の使用を通じて実現され得る技術的効果の第4の例として、ターゲットデバイスリソース210のホストコンピューティング環境106との統合は、そのようなターゲットデバイスリソース210のアドホックなリソース共有モデルよりも堅牢な表現を提示することができる。たとえば、
図1の第3の例示的シナリオ128では、ユーザ入力共有アーキテクチャにより、第1のデバイス130がユーザ入力134を第2のデバイス142にプッシュすることが可能になる。たとえば、第1のデバイス130は、第1のデバイス130を通じて受け取られたユーザ入力134の入力デバイスの種類を示すことなく、テキスト入力やポインタ移動などの抽象的なユーザ入力命令を第2のデバイス142に単純に提示することができる。しかし、第2のデバイス142は、(たとえば、マウスデバイスのマウスアクセラレーションもしくはボタンクリック効果またはタッチ感応ディスプレイもしくはタッチパッドのタッチ感応性もしくは被認識ジェスチャを調節するために)第1のデバイス130の入力コンポーネントと対話する機能を持っていない可能性がある。第1のデバイス130の入力デバイスは第2のコンピューティング環境144に現れず、第2のデバイス142上のアプリケーションがユーザ入力のソースを判断するのも難しい場合がある。これらのユーザ入力は、第2のコンピューティング環境114で表される入力デバイスのいずれからも生じていない可能性がある。一方、本明細書で提示される技法では、借用されたターゲットデバイスリソース210をホストコンピューティング環境106と統合することで、より一貫性のある堅牢なリソース共有モデルが実現される。
【0027】
[0039] 本明細書で提示される技法により実現され得る技術的効果の第5の例として、ターゲットデバイスリソース210の借用および貸与により、ホストデバイス104がターゲットデバイス108を通じて堅牢なコンピューティング環境体験を駆動することが可能になり得る。たとえば、ホストデバイス104が、ターゲットデバイス108のビデオおよびサウンド出力に加えて、ターゲットデバイス108のキーボードおよびマウス入力を借用する場合、ホストデバイス104は、ターゲットデバイス108上でホストコンピューティング環境106の完全な体験を提示することができる。またターゲットデバイス108は、ターゲットデバイス108のターゲットコンピューティング環境110を一時停止しながら、ホストコンピューティング環境106を提示することができる。これにより、ターゲットデバイス108は、他の方法ではコンピューティング環境間で分割される可能性がある計算リソースを、ホストコンピューティング環境106の提示に割り当てることができる(たとえば、プロセッサ、メモリ、入力、ネットワーク接続、およびターゲットデバイス108のその他のリソースが端末サービスセッション114とターゲットコンピューティング環境110との間でしばしば分割される端末サービスモデルの場合とは対照的である)。よってターゲットデバイス108は、計算リソースの大半をホストコンピューティング環境106の提示に割り当てることにより、比較的高品質な体験をホストデバイス104から提示することができる。一部のシナリオでは、グラフィックプロセッサを備えていない汎用タブレットなど、計算ハードウェアが比較的制限されているかおよび/または旧式であるターゲットデバイス108は、比較的洗練されたハードウェアを備えるホストデバイス104によりレンダリングされたホストコンピューティング環境106を提示することができる。この場合、ホストコンピューティング環境106の提示は、ターゲットデバイス108のネイティブなターゲットコンピューティング環境110の堅牢性、グラフィック品質、および/または応答性を超えるものとなり得る。よって、本明細書で提示される技法は、比較的旧式なハードウェアデバイスの再利用を促進することができる(たとえば、ターゲットデバイス108のユーザ102は、ターゲットデバイス108のネイティブなターゲットコンピューティング環境110を十分に使用できない可能性があるが、ターゲットデバイス108をホストコンピューティング環境106のポータルとして使用することで、機能を再利用できる場合がある)。
【0028】
[0040] 本明細書で提示される技法の使用を通じて実現され得る技術的効果の第6の例として、ターゲットデバイスリソース210の借用により、ホストデバイス104で、ターゲットデバイス108がネイティブに使用することができないリソースおよびコンテンツをターゲットデバイス108に提示することが可能になり得る。第1のそのような例として、ユーザ102は、ターゲットコンピューティング環境110と互換性がないアプリケーションをターゲットデバイス108で提示したい場合がある(たとえば、アプリケーションは、ターゲットコンピューティング環境110がサポートしない命令セットおよび/またはアーキテクチャに対してコンパイルされている可能性がある)。代わりに、ユーザ102は、アプリケーションをホストデバイス104で実行し、ターゲットデバイス108のターゲットデバイスリソース210を使用してホストコンピューティング環境106を提示することができる。第2のそのような例として、ホストデバイス104は、ホストデバイス104は使用するためのライセンスを有しているが、ターゲットデバイス108は使用するためのライセンスを有していないアプリケーションまたはコンテンツを保持している場合がある。そのようなターゲットデバイス108で使用できないリソースをターゲットデバイス108に送信する代わりに、ホストデバイス104は、ローカルにアプリケーションを実行するかまたはコンテンツをレンダリングし、ターゲットデバイス108のターゲットデバイスリソース210を借用してアプリケーションまたはコンテンツの一部またはすべてをターゲットデバイス108経由で提示することができる。これらおよび他の技術的効果は、本明細書で提示される技法のさまざまな実装を通じて実現され得る。
【0029】
[0041] D.例示的実施形態
[0042]
図3は、ターゲットデバイス108のターゲットデバイスリソース210をホストデバイス104のホストコンピューティング環境106と統合するようにホストデバイス104を構成する例示的方法300として示された、本明細書で提示される技法の第1の例示的実施形態を示す。例示的方法300は、たとえば、メモリ回路、ハードディスクドライブのプラター、ソリッドステートストレージデバイス、磁気または光学ディスクなどのホストデバイス104のメモリコンポーネントに格納され、デバイスのプロセッサで実行されたときにホストデバイス104を本明細書で提示された技法に応じて動作させるように編成された、一群の命令として実装され得る。
【0030】
[0043] 例示的方法300は、302から始まり、命令をホストデバイス104のプロセッサで実行すること304を含む。具体的には、命令をプロセッサで実行すること304により、ホストデバイス104がターゲットデバイス108を通じてターゲットデバイスリソース210の利用可能性を検出する306。命令をプロセッサで実行すること304により、ホストデバイス104は、ホストデバイスユーザ102からの、ターゲットデバイスリソース210をホストコンピューティング環境106で使用するために借用する要求の受け取りに応じて308、ターゲットデバイス108に、ターゲットデバイスリソース210をホストコンピューティング環境106で使用するために借用する要求204を送信する310。命令をプロセッサで実行すること304により、ホストデバイス104は、ターゲットデバイス108からの要求204の受諾206の受け取りに応じて312、ターゲットデバイスリソース210をホストコンピューティング環境106のホストデバイスリソース214と統合し314、ターゲットデバイスリソース210をホストコンピューティング環境106内でホストデバイスユーザ102に提示する316。この態様で、命令は、本明細書で提示される技法に応じてホストデバイス104にターゲットデバイス108のターゲットデバイスリソース210をホストコンピューティング環境106と統合させ、よって例示的方法が318で終了する。
【0031】
[0044] 本明細書で提示される技法の第2の例示的実施形態(図示せず)は、ターゲットデバイスリソース210をホストデバイス104のホストコンピューティング環境106で使用するためにターゲットコンピューティング環境110から貸与するようにターゲットデバイス108を構成する例示的方法を含む。そのような例示的方法は、たとえば、ターゲットデバイス108のプロセッサで、ターゲットデバイス108にターゲットデバイスリソース210の利用可能性を告知させる命令を実行することと、ターゲットデバイスリソースをホストコンピューティング環境で使用するために借用する要求204の受け取りに応じて、ターゲットデバイスリソース210をホストコンピューティング環境106用に予約することと、要求204の受諾をホストデバイス104に送信すること206とを含み得る。この態様で、命令は、本明細書で提示される技法に応じて、ターゲットデバイス108にターゲットデバイスリソース210をホストコンピューティング環境106で使用するためにターゲットコンピューティング環境110から貸与させ、よって例示的方法が終了する。
【0032】
[0045]
図4は、本明細書で提示される技法の少なくとも一部をそれぞれ実装する例示的ホストデバイス402および例示的ターゲットデバイス404でそれぞれ実装される例示的システムとして図示された、本明細書で提示される技法のさらなる例示的実施形態を示す。例示的ホストデバイス402は、例示的ホストデバイス402に直接接続されたデバイス(たとえば、ユーザインターフェイス、アプリケーション、フォントやカラースキームなどの視覚的特徴、データ、アプリケーション構成、連絡先リスト、およびユーザアカウントと資格情報)の表現等の1つまたは複数のホストデバイスリソース214を備えるホストコンピューティング環境106をホストおよび/または管理し、例示的ターゲットデバイス404は、ターゲットデバイスリソース210を備えるターゲットコンピューティング環境110をホストする。この例示的シナリオ400では、例示的ホストデバイス402および例示的ターゲットデバイス404のそれぞれが、プロセッサ406と、本明細書で提示される技法の少なくとも一部を実装する例示的システムを各デバイスで実装するプロセッサ実行可能命令を格納するメモリ408とを備える。各例示的システムは、たとえば、それぞれが各例示的デバイスのメモリ408に格納された一群の命令を含む一群のコンポーネントとして実装され得、各コンポーネントの命令は、プロセッサ406で実行されたときに、例示的デバイスを本明細書で提示される技法に応じて動作させる。代替で、各コンポーネントは、本明細書で提示される技法に応じて動作する独立した回路もしくはハードウェアデバイス、またはそれらの組合せとして実装され得る。
【0033】
[0046] 例示的ホストデバイス402は、例示的ターゲットデバイス404を通じてターゲットデバイスリソース210の利用可能性422を検出するターゲットデバイスリソース要求器412を備える第1の例示的システム410を含み、ホストデバイスユーザ102からの、ターゲットデバイスリソース210をホストコンピューティング環境106と統合する要求202の受け取りに応じて、例示的ターゲットデバイス404に、ターゲットデバイスリソース210をホストコンピューティング環境106で使用するために借用する要求202を送信する。第1の例示的システム410は、例示的ターゲットデバイス404から要求202の受諾204を受け取ったことに応じて、ターゲットデバイスリソース210をホストコンピューティング環境106のホストデバイスリソース214と統合し、ターゲットデバイスリソース210をホストコンピューティング環境106内でホストデバイスユーザ102に提示する、ターゲットデバイスリソース統合器414をさらに備える。
【0034】
[0047] 例示的ターゲットデバイス404は、ターゲットデバイスリソース210の利用可能性422の告知を(たとえば、ブロードキャストで、マルチキャストで、またはクエリに応じて)送信するターゲットデバイスリソースアドバタイザ418を備える第2の例示的システム416を含む。例示的ターゲットデバイス404は、ターゲットデバイスリソース210をホストコンピューティング環境106で使用するために借用する要求202の受け取りに応じて、ターゲットデバイスリソース210をホストコンピューティング環境106用に予約し424、要求202の受諾204をホストデバイス402に送信する、デバイスリソース貸与器420をさらに備える。そのような例示的システムを利用する例示的ホストデバイス402と例示的ターゲットデバイス404の相互運用により、 本明細書で提示される技法に応じて、例示的ターゲットデバイス404のターゲットデバイスリソース210を、例示的ホストデバイス402のホストコンピューティング環境106内で協同的に統合することが可能になり得る。
【0035】
[0048] さらに別の実施形態は、本明細書で提示される技法を適用するように構成されたプロセッサ実行可能命令を含むコンピュータ可読メディアを備える。そのようなコンピュータ可読メディアは、さまざまな物理的現象(たとえば、電磁信号、音波信号、または光学信号)を通じて、さまざまなワイヤードシナリオ(たとえば、イーサネット(登録商標)または光ファイバケーブル経由)および/またはワイヤレスシナリオ(たとえば、WiFi(登録商標)等のワイヤレスローカルエリアネットワーク(WLAN)、Bluetooth(登録商標)等のパーソナルエリアネットワーク(PAN)、またはセルラーもしくは無線ネットワーク)で伝搬され得、デバイスのプロセッサにより実行されたときに本明細書で提示される技法をデバイスに実装させる一群のコンピュータ可読命令をエンコードする信号等の、さまざまな種類の通信メディアを含み得る。そのようなコンピュータ可読メディアは、(通信メディアを除く部類の技術として)メモリ半導体(たとえば、静的ランダムアクセスメモリ(SRAM)、動的ランダムアクセスメモリ(DRAM)、および/または同期式動的ランダムアクセスメモリ(SDRAM)技術を利用する半導体)、ハードディスクドライブのプラター、フラッシュメモリデバイス、磁気または光学ディスク(CD-R、DVD-R、フロッピーディスク等)等のコンピュータ可読メモリデバイスをさらに備え得、デバイスのプロセッサにより実行されたときに本明細書で提示される技法をデバイスに実装させる一群のコンピュータ可読命令をエンコードする。
【0036】
[0049] これらの方法で考案され得る例示的コンピュータ可読メディアを
図5に示す。ここで、実装500は、エンコードされたコンピュータ可読データ504が存在するコンピュータ可読メモリデバイス502(たとえば、CD-R、DVD-R、またはハードディスクドライブのプラター)を含む。このコンピュータ可読データ504は、デバイス510のプロセッサ406で実行されたときにデバイス510を本明細書で示された原則に応じて動作させる一群のコンピュータ命令506を含む。第1のそのような実施形態では、プロセッサ実行可能命令506は、
図3の例示的方法300のように、ホストデバイス104にターゲットデバイス108のターゲットデバイスリソース210をホストデバイス104のホストコンピューティング環境106と統合させることができる。第2のそのような実施形態では、プロセッサ実行可能命令506は、
図4の例示的シナリオ400で提示される例示的システムのように、ホストデバイス104および/またはターゲットデバイス108にターゲットデバイスリソース210をホストデバイス104のホストコンピューティング環境106と統合させるシステムを実装させることができる。そのようなコンピュータ可読メディアの多くは、当業者により、本明細書で提示される技法に応じて動作するように構成されたものとして考案され得る。
【0037】
[0050] E.変形
[0051] 本明細書で説明する技法は、多くの側面について変形して考案され得、一部の変形は、これらおよび他の技法の他の変形に比べて、追加の利点を提示し、および/または欠点を低減し得る。さらに、一部の変形は組合せで実装され得、一部の組合せは、相乗的連携を通じて追加の利点を備え、および/または欠点を低減し得る。これらの変形をさまざまな実施形態(たとえば、
図3の例示的方法300、
図4の例示的システム、および
図5の例示的メモリデバイス502)に組み込んで、それらの実施形態に個別および/または相乗的な利点を与えることができる。
【0038】
[0052] E1.シナリオ
[0053] これらの技法の実施形態間で変形する可能性がある第1の側面は、それらの技法が利用されるシナリオに関する。
【0039】
[0054] この第1の側面の第1の変形として、本明細書で提示される技術は、ワークステーション、ラップトップ、タブレット、携帯電話、ゲーム機、携帯型ゲームデバイス、携帯型または非携帯型のメディアプレーヤ、テレビ等のメディア表示装置、アプライアンス、ホームオートメーションデバイス、接眼レンズや腕時計などのウェアラブルデバイスに統合されたコンピューティングコンポーネント、監視制御およびデータ収集(SCADA)デバイスなど、さまざまなホストデバイス104および/またはターゲットデバイス108の構成を実現するために利用され得る。
【0040】
[0055] この第1の側面の第2の変形として、ターゲットデバイスリソース210およびホストデバイスリソース214は、出力デバイス(たとえば、ディスプレイ、スピーカ、および振動機構等の触覚出力デバイス)、入力デバイス(たとえば、キーボード、マウス、スタイラス、タッチ感応ディスプレイおよびタッチパッド、ジェスチャおよび視線追跡デバイス、ならびに生体入力デバイス)、周辺機器(たとえば、プリンタ、スキャナ、カメラ、およびロボットコンポーネント)、通信リソース(たとえば、ネットワーク接続、インターフェイス、およびデバイス)、基本計算リソース(たとえば、処理容量およびストレージ容量)など、さまざまなリソースタイプを含み得る。
【0041】
[0056] この第1の側面の第3の変形として、本明細書で提示される技法は、さまざまなアーキテクチャおよび/またはホストデバイス104とターゲットデバイス108との関係で利用され得る。第1のそのような例として、各デバイスは、ワイヤードディスプレイ、スピーカ、ヘッドフォンなど、デバイスに直接および物理的に接続されたコンポーネントを利用することができる。第2のそのような例として、各デバイスは、無線周波などのワイヤレス接続を通じてアクセスすることができる1つまたは複数のコンポーネントを利用することができる。第3のそのような例として、各デバイスは、本明細書で提示される技法に応じて相互運用するために、パーソナルエリアネットワーク、ローカルエリアネットワーク、および/またはワイドエリアネットワーク上で通信することができる。第4のそのような例として、各デバイスは、クライアント/サーバアーキテクチャやピアツーピアアーキテクチャなどで、デバイスコレクションの第3のデバイスを通じてアクセス可能な1つまたは複数のコンポーネントを利用することができる。さらに、ホストデバイス104およびターゲットデバイス108のそれぞれは、1人のユーザ102もしくはユーザ102のグループにより利用される可能性があり、ならびに/または少なくとも1人の第2のユーザ102の代わりに少なくとも1人の第1のユーザ102により制御される可能性がある。これらおよび他のシナリオは、本明細書で提示される技法に応じてターゲットデバイス108のターゲットデバイスリソース210をホストデバイス104のホストコンピューティング環境106と統合するのに適している可能性がある。
【0042】
[0057] E2.ターゲットデバイスリソース貸与の確立
[0058] 本明細書で提示される技法の実施形態間で変化する可能性がある第2の側面は、ターゲットデバイス108からホストデバイス104へのターゲットデバイスリソース210の貸与を確立する態様を含む。
【0043】
[0059] この第2の側面の第1の変形として、ホストデバイス104は、ターゲットデバイスリソース210の利用可能性422をさまざまな方法で発見することができる。第1のそのような例として、ターゲットデバイス108は、たとえば、利用可能なリソースを短距離ネットワーク、ローカルエリアネットワーク、またはワイドエリアネットワークでブロードキャストすることにより、または、さまざまなターゲットデバイス108を通じて利用可能なターゲットデバイスリソースの利用可能性カタログでターゲットデバイスリソース210をリストすることにより、ターゲットデバイスリソース210の利用可能性422を告知することができる。次にホストデバイス104は、(たとえば、そのようなブロードキャストを受け取るか、または利用可能性カタログでターゲットデバイスリソース210を見つけることにより)ターゲットデバイスリソース210のそのような利用可能性422の告知を受け取ることができる。第2のそのような例として、ホストデバイス104は、利用可能なターゲットデバイスリソース210についての問い合わせをブロードキャストすることができる。この問い合わせでは、任意選択により、ホストデバイス104がホストコンピューティング環境106内で提示することを望む特定の種類のターゲットデバイスリソース210を指定することができる。ターゲットデバイス108は、ターゲットデバイス108を通じて少なくとも1つのターゲットデバイスリソース210の利用可能性422をホストデバイス104に通知することにより、応答することができる。第3のそのような例として、ホストデバイス104およびターゲットデバイス108は、ターゲットデバイスリソース210の利用可能性422をホストデバイス104に告知するための基盤を提供する特定の接続を開始することができる。たとえば、ホストデバイス104およびターゲットデバイス108の物理的近接が物理的近接しきい値内であることを検出することで(たとえば、ユーザ102は、携帯型のホストデバイス104を、ユーザ102がターゲットデバイスリソース210の借用を望むターゲットデバイス108の上または1メートル以内に置く可能性がある)、ターゲットデバイスリソース210の利用可能性422のホストデバイス104への告知を開始することができる。
【0044】
[0060] この第2の側面の第2の変形として、ホストデバイス104およびターゲットデバイス108はホストデバイス104に対するターゲットデバイスリソース210の利用可能性422についてネゴシエートすることができる。第1のそのような例として、ホストデバイス104およびターゲットデバイス108は、スケジューリングに参加する(たとえば、ホストデバイス104に対してターゲットデバイスリソース210を予約する一定の時間を特定する)ことができる。第2のそのような例として、ホストデバイス104およびターゲットデバイス108は、負荷分散を利用する(たとえば、利用可能な一群のターゲットデバイス108およびターゲットデバイスリソース210の中で、アイドル状態であるか、またはホストデバイス104の状況に適している、選択されたターゲットデバイス108およびターゲットデバイスリソース210を特定する)ことができる。第3のそのような例として、ホストデバイス104およびターゲットデバイス108は、交渉に参加する(たとえば、ターゲットデバイスリソース210をホストデバイス104用に予約するためのコストについてネゴシエートし、合意する)ことができる。第4のそのような例として、ターゲットデバイス108は、特定のホストデバイス104のみとのリソース貸与に参加することができる。第1のそのような例として、ホストデバイス104に対するターゲットデバイスリソース210の利用可能性422は、アクセス資格情報(たとえば、パスワードまたは証明書)により制約され得る。ホストデバイス104は、アクセス資格情報を要求と共に提出することができ、ターゲットデバイス108は、アクセス資格情報が検証された場合に限り、ターゲットデバイスリソース210をホストデバイス104用に予約することができる。代替または追加で、ターゲットデバイス108およびホストデバイス104が信頼関係にある場合、ターゲットデバイス108は、ホストデバイス104の接続および承認後に、ターゲットデバイスリソース210の貸与を自動的に許可または開始することもできる。
【0045】
[0061] この第2の側面の第3の変形として、ホストデバイス104および/またはターゲットデバイス108は、ターゲットデバイスリソース210の借用および貸与に自律的に参加することができる(たとえば、ターゲットデバイス108は、ターゲットデバイス108がアイドル状態であるか、ロックされているか、一時停止しているか、電源が切れているか、またはその他の理由でユーザ102により使用されていない場合でも、ターゲットデバイスリソース210を貸与することに自律的に同意することができる)。代替で、ホストデバイス104および/またはターゲットデバイス108は、ユーザ102の認証に基づいて、そのような対話を調整することができる。第1のそのような例として、ターゲットデバイス108を通じてターゲットデバイスリソース210の利用可能性422を検出した後、ホストデバイス104は、ホストコンピューティング環境106との統合のためのターゲットデバイスリソース210の利用可能性422をホストデバイスユーザ102に通知し、ユーザ102からの要求202を待機してからリソース貸与を開始することができる。第2のそのような例として、ターゲットデバイスユーザ102により操作されるターゲットデバイス108 は、ターゲットデバイスリソース210をホストデバイス104で使用するために借用する要求202の受け取りに応じて、要求202をターゲットデバイスユーザ102に提示し、要求202の受諾をターゲットデバイスユーザ102から受け取った場合に限り受諾204を送信することができる。
【0046】
[0062] この第2の側面の第4の変形として、ターゲットデバイスリソース210の借用および貸与を、ターゲットデバイスリソースセット210の特定のターゲットデバイスリソース210に限定することができる。第1のそのような例として、ターゲットデバイス108は、選択されたターゲットデバイスリソース210のみの利用可能性422を告知し(たとえば、ディスプレイの利用可能性422を、そのディスプレイがターゲットデバイスユーザ102により使用されていないときに限り告知する)、他のターゲットデバイスリソース210を利用不可にすることを検討することができる。第2のそのような例として、ターゲットデバイス108が少なくとも2つのターゲットデバイスリソース210の利用可能性422を告知する一方、ホストデバイス104は、選択されたターゲットデバイスリソースのみの借用を要求する(たとえば、マウスの借用を要求し、キーボードの借用を要求しない)ことができる。よって、ホストデバイスユーザ102からの要求202で、ホストコンピューティング環境106と統合される選択されたターゲットデバイスリソース210を指定することができ、ホストデバイス104は、選択されたターゲットデバイスリソース210のみをホストコンピューティング環境106で使用するために借用する要求202をターゲットデバイス108に送信することができる。ターゲットデバイス108は、ユーザの選択を簡素化するために、ホストデバイス104が要求した選択されたターゲットデバイスリソース210をターゲットデバイスユーザ102に通知することができる。
【0047】
[0063] この第2の側面の第5の変形として、ターゲットデバイスリソース210を借用するホストデバイス104の要求202は、ターゲットデバイスリソース210の意図された用途をターゲットデバイス108に通知することもできる。たとえば、ターゲットデバイスリソース210は、ターゲット提示コンポーネント(たとえば、ディスプレイまたはスピーカ)をさらに含み、ホストデバイスユーザ102からの要求202は、ターゲットデバイス108のターゲット提示コンポーネントを通じて提示される特定のコンテンツ項目(たとえば、ユーザ102がターゲットデバイス108を通じて提示することを望む特定の画像、ビデオ、録音、文書、またはウェブページ)を指定することができる。よって要求202は、ターゲットデバイス108の提示コンポーネントを通じて提示されるコンテンツ項目の記述(たとえば、テキスト記述、サマリ、または画像のサムネイルなどのプレビュー)を含むことができ、ターゲットデバイス108は、この記述をターゲットデバイスユーザ102に提示してユーザの選択を支援することができる。さらなる変形として、ターゲットデバイス108は、指定されたコンテンツ項目の提示期間に限りターゲットデバイスリソース210の貸与に参加し、その後ホストデバイス104に対するターゲットデバイスリソース210の貸与を自動的に終了し、予約を自動的に終了して解除する(たとえば、貸与が許可されたビデオが終了したときに、ディスプレイの貸与を終了する)ことができる。
【0048】
[0064]
図6は、ターゲットデバイス108のターゲットデバイスリソース210をホストデバイス104に貸与するためのホストデバイス104およびターゲットデバイス108の対話を示す例示的シナリオ600を示す。この例示的シナリオ600で、ホストデバイス104のホストデバイスユーザ102は、コンテンツ項目602(具体的には、録音された歌)を再生することを望んでいるが、ホストデバイス104に適切な機器が存在しない可能性がある(たとえば、携帯電話は、低出力かつ低品質なスピーカしか備えていない可能性がある)。ターゲットデバイス108は、ディスプレイ、マウス、スピーカなどのさまざまなターゲットデバイスリソース210の利用可能性422を告知することができる。ホストデバイス104は、そのような利用可能性422をホストデバイスユーザ102に通知することができ、ユーザ102は、コンテンツ項目602をターゲットデバイス108のスピーカで提示する要求を開始することができる。ホストデバイス104は、ホストデバイス104で使用するために、詳細にはコンテンツ項目602をレンダリングするタスクのために、ターゲットデバイスリソース210を借用する要求202をターゲットデバイス108に送ることができる。ターゲットデバイス108は、要求202をターゲットデバイスユーザ102に提示し、ターゲットデバイスユーザ102は、要求202の受諾204により応答することができる。よって、ターゲットデバイス108は、ターゲットデバイスリソース210をホストデバイス104用に予約し(たとえば、ターゲットコンピューティング環境110のスピーカを通じたサウンド再生をフェードアウトまたは停止する)、受諾204をホストデバイス104に送信することができる。ホストデバイス104は、ホストコンピューティング環境106にスピーカを統合し、ホストコンピューティング環境106内でコンテンツ項目602のレンダリングを開始することができる(たとえば、ホストコンピューティング環境106内で全体的に制御および利用されるレンダリングストリームを開始するが、オーディオストリームもまたはスピーカを通じた提示のためにターゲットデバイス108に送信される)。よってターゲットデバイス108は、要求202を実現させ、コンテンツ項目602をレンダリングする。レンダリングの完了時に、ターゲットデバイス108はターゲットデバイスリソース210の貸与を自動的に終了し、ターゲットデバイスリソース210をターゲットコンピューティング環境110に解放し(たとえば、ターゲットコンピューティング環境110を通じたサウンド再生をフェードインする)、「貸与完了」通知604をホストデバイス104に送信することができる。ホストデバイス104は、ターゲットデバイスリソース210のホストコンピューティング環境106との統合を元に戻すことができる。
【0049】
[0065]
図7は、ホストデバイス104によるターゲットデバイス108のリソースの借用の別の変形を示す例示的シナリオ700を示す。ここで、ターゲットデバイス108のリソースのホストデバイス104による使用のための借用は、第2のユーザ102によるホストデバイス104の借用を増進する。この例示的シナリオ700では、ホストコンピューティング環境702にアクセスしている第1のユーザ102が、第1のユーザのホストコンピューティング環境702との対話を中断することなく、第2のユーザ102によるホストデバイス104の借用およびアクセスを許可したいと考えている。よって、第1のユーザ102は、ターゲットデバイス108のリソースを借用し、ホストコンピューティング環境をターゲットデバイス108に送信することができる。加えて、ホストデバイス104は、第2のユーザ102に、キュレートされたコンピューティング環境704(たとえば、分離されたウェブブラウザ、特定のコンテンツ項目のみの提示、またはホストデバイス104での特定のアプリケーションのみの実行など、第2のユーザ102がホストデバイス104の使用を要求した用途に限定されたコンピューティング環境)を提示することができる。よって第2のユーザ102は、第1のユーザ102がターゲットデバイス108を通じたホストコンピューティング環境106へのアクセスを継続する一方で、ホストデバイス104上のキュレートされたコンピューティング環境704と対話することができる。ホストデバイス104およびターゲットデバイス108は、本明細書で提示される技法に応じてターゲットデバイスリソース210をホストデバイス104に貸与する際に、これらの多数の変形を利用することができる。
【0050】
[0066] E3.ターゲットデバイスリソースのホストコンピューティング環境との統合
[0067] 本明細書で提示される技法の実施形態間で変化する可能性がある第3の側面は、ターゲットデバイスリソース210をホストデバイス104のホストコンピューティング環境106と統合する態様を含む。
【0051】
[0068] この第3の側面の第1の変形として、ターゲットデバイス108は、ターゲットデバイスリソース210をホストデバイス104用に排他的に予約することができ、ターゲットデバイスリソース210をターゲットコンピューティング環境110から除去するか、またはターゲットデバイスリソース210をターゲットコンピューティング環境110内で利用不可としてマークすることができる。代替で、ターゲットデバイス108は、たとえばターゲットデバイスリソース210をホストデバイス104とターゲットデバイス108との間で共有することにより、ターゲットデバイスリソース210を非排他的に予約することができる。1つのそのような例として、ターゲットデバイス108は、ターゲットデバイスリソース210をホストデバイス104と共有するための共有条件を確立することができる。たとえば、ある状況ではターゲットユーザ入力134をターゲットコンピューティング環境110に送り、別の状況ではホストコンピューティング環境106に送ることができる。さらに別の代替として、ターゲットコンピューティング環境110は、ターゲットデバイスリソース210をホストデバイス104およびターゲットコンピューティング環境110に同一に公開することができる。たとえば、両コンピューティング環境で入力および/出力をミラーリングすることができる。
【0052】
[0069]
図8は、この第3の側面の第2の変形を示す。ここで、ターゲットデバイスリソース210は、ターゲット提示コンポーネントをさらに含み、ホストデバイス104は、提示コンポーネントレイアウト内でターゲット提示コンポーネントを1つまたは複数のホスト提示コンポーネントに対して相対的に配置することにより、ターゲットデバイスリソース210をホストコンピューティング環境106と統合する。この例示的シナリオ800では、ターゲットデバイス108がターゲットディスプレイ806およびターゲットユーザ入力134をホストデバイス104に貸与し、ホストデバイス104がターゲットディスプレイ806およびターゲットユーザ入力134の両方をホストコンピューティング環境106と統合する。具体的には、ホストコンピューティング環境106は、拡張デスクトップ等のディスプレイレイアウト802内で、ホストデバイス104に直接接続されたホストディスプレイ804に対して相対的にターゲットディスプレイ806を配置する。ターゲットデバイス108により提供されるターゲットユーザ入力134は、ディスプレイレイアウト802の表示にも及び得る。たとえば、ターゲットデバイス108がターゲットユーザ入力134をホストデバイス104に送信し、ホストデバイス104がホストコンピューティング環境106内でターゲットユーザ入力134を適用することができる。その後、ホストデバイス104がディスプレイコンテンツ808をターゲットデバイス108に送信し、ターゲットデバイス108がディスプレイコンテンツ808をターゲットディスプレイ806に表示することができる。この態様で、ターゲットディスプレイ806をホストコンピューティング環境106のディスプレイレイアウト802内でホストデバイス104のホストディスプレイ804と統合することができる。別のそのような例として、スピーカレイアウトは、オーディオ環境内でスピーカに割り当てられた配置および/または役割(たとえば、左チャネルスピーカ、右チャネルスピーカ、および中央チャネルスピーカ)を含む可能性があり、ホストコンピューティング環境106は、オーディオ環境内でターゲットデバイス108のスピーカをホストデバイス104の他のスピーカに対して相対的に配置することができる。
【0053】
[0070] この第3の側面の第3の変形として、ホストデバイス104は、ターゲットデバイス108のターゲットデバイスリソース210をホストデバイス104のホストコンピューティング環境106と統合するコンテキストで、一部のホストデバイスリソースをターゲットデバイス108と本質的に共有することができる。第1のそのような例として、ターゲットデバイスリソース210は、ホストデバイス104がネットワークを介してアクセス可能なコンテンツ項目のレンダリングを試みるターゲット提示コンポーネントをさらに含み得る。一部のそのようなシナリオでは、ホストデバイス104は、提示用のコンテンツ項目をネットワークから取得することをターゲットデバイス108に要求することができるが、この要求は、ターゲットデバイス108のターゲットネットワークリソースを利用する可能性がある。本明細書で提示される技法では、ホストデバイス104は、代わりに、ホストネットワークリソースを介してコンテンツ項目を取得し、それをターゲット提示コンポーネントを通じた提示のためにターゲットデバイス108に送信することができる。この例は、ホストデバイス104がターゲットデバイス108のターゲットネットワークリソースの使用を要求する代わりにホストネットワークリソースを利用してターゲットデバイス108との対話を簡素化する、「リバースインターネット接続共有」に類似し得る。
【0054】
[0071] この第3の側面の第4の変形として、ターゲットデバイスリソース210はターゲット提示コンポーネントをさらに含み、ホストデバイス104は、ホストコンピューティング環境106の少なくとも一部をターゲット提示コンポーネントを通じた提示のためにターゲットデバイス108に送信することにより、ターゲット提示コンポーネントを統合することができる。たとえば、ホストデバイス104は、ホストコンピューティング環境106の完全なレンダリングを送信するか、またはその一部、たとえばコンテンツ項目が表示されている特定のアプリケーションのウィンドウまたはホストディスプレイの領域を送信することができる。ターゲットデバイス108のシステムは、ホスト環境提示器をさらに含み得る。ホスト環境提示器は、ホストデバイス104からのホストコンピューティング環境106の少なくとも一部の受け取りに応じて、ターゲット提示コンポーネントを通じてホストコンピューティング環境106を提供する。
【0055】
[0072] この第3の側面のさらなる変形は、ターゲットデバイス108がホストコンピューティング環境106の少なくとも一部を提示しながらターゲットコンピューティング環境110を改変する態様を含む。
【0056】
[0073]
図9は、この第3の側面の第5の変形を示す例示的シナリオ900を示す。ここで、ターゲットデバイス108は、ホストコンピューティング環境106を提示する間に、ターゲットデバイス108でのターゲットコンピューティング環境110の提示を一時停止する。この例示的シナリオ900では、第1の時刻908で、ターゲットデバイス108はターゲット提示コンポーネントを通じて実行状態902のターゲットコンピューティング環境110を提示している。第2の時刻910で、ターゲットデバイス108は、ホストデバイス104から、ホストコンピューティング環境106を提示するためにターゲット提示コンポーネントをホストデバイス104による使用のために借用する要求202を受け取る可能性がある。よってターゲットデバイス108は、ターゲット提示コンポーネントでのターゲットコンピューティング環境110の一時停止106を開始し、ターゲット提示コンポーネントをホストコンピューティング環境106の提示用に予約することができる。第3の時刻912で、ホストコンピューティング環境106での提示の完了(たとえば、ホストデバイス104のターゲットデバイス108からの接続解除)を検出した後、ターゲットデバイス108は、ターゲット提示コンポーネントでのターゲットコンピューティング環境110の再開906を実行することができる。このようにホストコンピューティング環境106を提示している間にターゲットコンピューティング環境110を一時停止することは、たとえば、セキュリティ機能としてターゲットコンピューティング環境110をホストコンピューティング環境106から分離するために有利であり得、ターゲットデバイス108でのホストコンピューティング環境106の提示のパフォーマンスも促進する。1つのそのような例として、ターゲットデバイス108が、低出力のモバイル向けプロセッサや限られた容量のメモリなど、限られた計算リソースを備えている場合、ターゲットコンピューティング環境110を一時停止することで、ターゲットデバイス108がホストコンピューティング環境106を提示するための計算リソースの割り当てを最大化して、応答性に優れた低遅延のユーザ体験を提供することが可能になり得る。
【0057】
[0074]
図10は、この第3の側面の第6の変形を示す例示的シナリオ1000を示す。ここで、ターゲットデバイス108は、ターゲットコンピューティング環境110を一時停止せず、ターゲットコンピューティング環境110の提示をホストコンピューティング環境106と同時に継続する。この例示的シナリオ1000では、ホストデバイス104は、ターゲットディスプレイ806をホストコンピューティング環境106の提示のために借用すること、およびターゲットデバイス108の入力コンポーネントを通じて提供されたターゲットユーザ入力134を送信することを、ターゲットデバイス108に要求する。よって、ターゲットデバイス108は、第1のターゲットディスプレイ806および入力コンポーネントをターゲットユーザ入力134用に予約し、ターゲットユーザ入力134をホストデバイス104に送信することができる。ホストデバイス104は、ターゲットユーザ入力134をホストユーザ入力218と共にホストコンピューティング環境106に適用することができる。次に、ホストデバイス104は、第1のターゲットディスプレイ806用のディスプレイコンテンツ1002をターゲットデバイス108に送信することができ、ターゲットデバイス108は、ディスプレイコンテンツ1002をターゲットディスプレイ806で提示することができる。この態様で、ホストデバイス104は、ターゲットユーザ入力134および第1のターゲットディスプレイ806のホストコンピューティング環境106での統合を実現し、ターゲットデバイスユーザおよびホストデバイスユーザが異なるデバイスを通じてユーザ入力を提供することによりホストコンピューティング環境106を共に使用することを可能にする。ただし、ターゲットデバイス108は、第1のターゲットディスプレイ806でのホストコンピューティング環境106の提示と共に第2のターゲットディスプレイ806でのターゲットコンピューティング環境110の提示を継続し、ターゲットデバイス入力134の一部がターゲットコンピューティング環境110に適用されて第2のターゲットディスプレイ806に表示されるようにし、ターゲットデバイスリソース210をホストコンピューティング環境106とターゲットコンピューティング環境110との間で共有することを可能にする。この例示的シナリオ1000では、ホストデバイス104がホストユーザ入力218をホストコンピューティング環境106のディスプレイコンテンツ1002内で表されるものとしてターゲットデバイス108に暗黙的に返送する一方、モデルにより、ホストユーザ入力218の適用がターゲットコンピューティング環境110に組み込まれることが制限される1006。この態様で、モデルは、ホストユーザ入力218からのターゲットコンピューティング環境110の分離1004を強制しながら、第1のターゲットディスプレイ806でのターゲットコンピューティング環境110およびホストコンピューティング環境106の提示の同時実行を実現する。多くのそのようなシナリオにより、本明細書で提示される技法に応じてターゲットデバイス108のターゲットデバイスリソース210をホストコンピューティング環境106と統合することが可能になり得る。
【0058】
[0075] F.コンピューティング環境
[0076]
図11および以下の説明は、本明細書で示される1つまたは複数の規定の実施形態を実装するのに適したコンピューティング環境を簡潔かつ全体的に示す。
図11の動作環境は、適切な動作環境の一例に過ぎず、動作環境の使用または機能の範囲について何らかの限定を示唆することを意図したものではない。例示的コンピューティングデバイスは、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、携帯デバイス(たとえば、携帯電話、個人用デジタル補助装置(PDA)、メディアプレーヤ等)、マルチプロセッサシステム、家電製品、ミニコンピュータ、メインフレームコンピュータ、これらのシステムまたはデバイスのいずれかを含む分散コンピューティング環境などを含むが、それらに限定されない。
【0059】
[0077] 必須ではないが、実施形態は、1つまたは複数のコンピューティングデバイスにより実行される「コンピュータ可読命令」の一般的なコンテキストで説明される。コンピュータ可読命令は、コンピュータ可読メディア(以下で説明)を通じて配布され得る。コンピュータ可読命令は、関数、オブジェクト、アプリケーションプログラミングインターフェイス(API)、データ構造などの、特定のタスクを実行するかまたは特定の抽象データ型を実装するプログラムモジュールとして実装され得る。一般的には、コンピュータ可読命令の機能は、さまざまな環境で必要に応じて結合または分散され得る。
【0060】
[0078]
図11は、本明細書で提示される1つまたは複数の実施形態を実装するように構成されたコンピューティングデバイス1102を備えるシステム1100の例を示す。一構成では、コンピューティングデバイス1102は、少なくとも1つの処理装置1106と、メモリ1108とを備える。実際の構成およびコンピューティングデバイスの種類に応じて、メモリ1108は、揮発性(たとえば、RAM等)、不揮発性(たとえば、ROM、フラッシュメモリ等)、またはそれら2つの何らかの組合せであり得る。この構成は、
図11で破線1104により示されている。
【0061】
[0079] 他の実施形態では、デバイス1102は、追加の特徴および/または機能を備え得る。たとえば、デバイス1102は、磁気ストレージ、光学ストレージ等を含むがそれらに限定されない追加のストレージ(たとえば、リムーバブルおよび/または非リムーバブル)をさらに備える可能性がある。そのような追加のストレージは、
図11でストレージ1110により示されている。一実施形態では、本明細書で提示される1つまたは複数の実施形態を実装するコンピュータ可読命令は、ストレージ1110に含まれる可能性がある。ストレージ1110は、オペレーティングシステムやアプリケーションプログラムなどを実装する他のコンピュータ可読命令をさらに格納する可能性がある。コンピュータ可読命令は、たとえば、処理装置1106による実行のために、メモリ1108に読み込まれ得る。
【0062】
[0080] 本明細書で使用される「コンピュータ可読メディア」という用語は、信号等の通信メディアを含む他の形式のコンピュータ可読メディアを除く、コンピュータ可読メモリデバイスを含む。そのようなコンピュータ可読メモリデバイスは、揮発性および/または不揮発性であり得、リムーバブルおよび/または非リムーバブルであり得、コンピュータ可読命令または他のデータを格納するさまざまな種類の物理デバイスを含み得る。メモリ1108およびストレージ1110は、コンピュータストレージメディアの例である。コンピュータストレージデバイスは、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CDーROM、デジタル多用途ディスク(DVD)または他の光学ストレージ、磁気カセット、磁気テープ、および磁気ディスクストレージまたは他の磁気ストレージデバイスを含むが、それらに限定されない。
【0063】
[0081] デバイス1102は、デバイス1102が他のデバイスと通信することを可能にする通信接続1116をさらに備える。通信接続1116は、モデム、ネットワークインターフェイスカード(NIC)、統合型ネットワークインターフェイス、無線周波送信器/受信器、赤外線ポート、USB接続、またはコンピューティングデバイス1102を他のコンピューティングデバイスに接続する他のインターフェイスを含み得るが、それらに限定されない。通信接続1116は、ワイヤード接続またはワイヤレス接続を含み得る。通信接続1116は、通信メディアを送信および/または受信することができる。
【0064】
[0082] 「コンピュータ可読メディア」という用語は、通信メディアを含み得る。通信メディアは、一般的には、コンピュータ可読命令または他のデータを搬送波や他の搬送機構などの「変調データ信号」で具体化し、任意の情報配信メディアを含む。「変調データ信号」という用語は、その特性の1つまたは複数が当該信号で情報をエンコードする態様で設定または変更された信号を含み得る。
【0065】
[0083] デバイス1102は、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイス、赤外線カメラ、ビデオ入力デバイス、および/または他の入力デバイスなどの入力デバイス1114を含み得る。1つまたは複数のディスプレイ、スピーカ、プリンタ、および/または任意の他の出力デバイスなどの出力デバイス1112も、デバイス1102に含まれる可能性がある。入力デバイス1114および出力デバイス1112は、ワイヤード接続、ワイヤレス接続、またはそれらの任意の組合せを通じて、デバイス1102に接続され得る。一実施形態では、別のコンピューティングデバイスの入力デバイスまたは出力デバイスが、コンピューティングデバイス1102の入力デバイス1114または出力デバイス1112として使用される可能性がある。
【0066】
[0084] コンピューティングデバイス1102のコンポーネントは、バスなどのさまざまな相互接続により接続され得る。そのような相互接続は、PCIエクスプレス等の周辺コンポーネント相互接続(PCI)、ユニバーサルシリアルバス(USB)、Firewire(IEEE 1394)、光学バス構造などを含み得る。別の実施形態では、コンピューティングデバイス1102のコンポーネントは、ネットワークにより相互接続される。たとえば、メモリ1108は、異なる物理位置に配置されネットワークにより相互接続された複数の物理メモリユニットで構成され得る。
【0067】
[0085] 当業者は、コンピュータ可読命令を格納するために利用されるストレージデバイスをネットワークに分散させることができることを認識する。たとえば、ネットワーク1118を介してアクセス可能なコンピューティングデバイス1120は、本明細書で提示される1つまたは複数の実施形態を実装するコンピュータ可読命令を格納することができる。コンピューティングデバイス1102は、コンピューティングデバイス1120にアクセスし、コンピュータ可読命令の一部またはすべてを実行のためにダウンロードすることができる。代替で、コンピューティングデバイス1102は、必要に応じて、コンピュータ可読命令の断片をダウンロードすることができ、または、一部の命令をコンピューティングデバイス1102で実行して一部の命令をコンピューティングデバイス1120で実行することができる。
【0068】
[0086] G.用語の使用
[0087] 主題について構造的特徴および/または方法論的行為に固有の言語で説明してきたが、添付の請求項で定義される主題は上述した特定の機能または行為に必ずしも限定されないことが理解される。むしろ、上述した特定の特徴および行為は、請求項を実装する例示的形式として開示されている。
【0069】
[0088] 本願で使用されている、「コンポーネント」、「モジュール」、「システム」、「インターフェイス」等の用語は、ハードウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかであるコンピュータ関連エンティティを示すものとして一般的に意図されている。たとえば、コンポーネントは、プロセッサで実行中のプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行のスレッド、プログラム、および/またはコンピュータであり得るが、それらに限定されない。例として、コントローラで実行中のアプリケーションと、コントローラとは、いずれもコンポーネントであり得る。1つまたは複数のコンポーネントがプロセスおよび/または実行のスレッド内に存在する可能性があり、コンポーネントは、1つのコンピュータに局地化され、および/または2つ以上のコンピュータ間に分散される可能性がある。
【0070】
[0089] さらに、請求項に記載された主題は、開示された主題を実装するコンピュータを制御するためのソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組合せを作成する標準のプログラミングおよび/またはエンジニアリング技法を使用して、方法、装置、または製造品として実装され得る。本明細書で使用される「製造品」という用語は、任意のコンピュータ可読デバイス、キャリア、またはメディアからアクセス可能なコンピュータプログラムを包含するものとして意図されている。もちろん、当業者は、請求項に記載された主題の範囲または精神から逸脱することなく、この構成に多数の変更を加えることができることを認識する。
【0071】
[0090] 本明細書では、実施形態のさまざまな動作が提供される。一実施形態では、説明される1つまたは複数の動作は、1つまたは複数のコンピュータ可読メディアに格納され、コンピューティングデバイスにより実行された場合に当該コンピューティングデバイスに説明される動作を実行させるコンピュータ可読命令を構成し得る。一部またはすべての動作が説明される順序は、それらの動作が必然的に順序に依存することを暗示するものとして理解されるべきではない。この説明の利点を踏まえて、当業者により、代替の順序が認識される。さらに、すべての動作が本明細書で提示される各実施形態に必ずしも存在するわけではないことが理解される。
【0072】
[0091] 本明細書で「例」として説明される任意の側面または設計は、必ずしも他の側面または設計よりも有利なものとして解釈されない。むしろ、「例」という単語の使用は、本明細書で提示される技法に関連し得る1つの考えられる側面および/または実装を提示することを意図している。そのような例は、そうした技法を必ずしも限定するものではなく、限定を意図するものでもない。そうした技法のさまざまな実施形態は、そうした例を単独または他の特徴との組合せで含み得、ならびに/または図示された例を変形および/もしくは除外し得る。
【0073】
[0092] 本願で使用される「または」という用語は、排他的な「または」ではなく、包含的な「または」を意味することを意図している。つまり、別途明記されない限り、またはコンテキストから明確でない限り、「XはAまたはBを用いる」は、自然な包含的置き換えのすべてを意味することを意図している。つまり、XがAを用いるか、XがBを用いるか、またはXがAとBの両方を用いる場合、「XはAまたはBを用いる」は、これらの事例のいずれでも満たされる。加えて、本願および添付の請求項で使用される冠詞「a」および「an」は、単数であることが別途明記されるかまたはコンテキストから明確である場合を除き、「1つまたは複数の」を意味するものとして一般的に解釈され得る。
【0074】
[0093] また、本開示は1つまたは複数の実装に関して提示および説明されているが、本明細書および添付の図面の読み込みおよび理解に基づき、等価の代替物および変形が当業者に思い浮かぶ。本開示は、そのような変形および代替物のすべてを含み、添付の請求項の範囲によってのみ限定される。上述したコンポーネント(たとえば、要素、リソース等)により実行されるさまざまな機能に特に関連して、そのようなコンポーネントを説明するために使用される用語は、別途明記されない限り、たとえ本開示の図示された例示的実施形態の機能を実行する開示された構造と構造的に等価でなくても、説明されるコンポーネントの指定された機能を実行する任意のコンポーネント(たとえば、機能的に等価であるもの)に対応することが意図されている。加えて、本開示の特定の特徴は、複数の実装のうちの1つのみに関連して開示されている可能性があるが、そのような特徴は、任意の特定のアプリケーションにとって要望されかつ有利であり得るために、他の実装の1つまたは複数の他の特徴と組み合わされることがある。さらに、「具備する」、「含む」、「有する」、「伴う」、またはそれらの用語の変形が詳細な説明または請求項で使用されていることに関し、そのような用語は、「備える」という用語と同様の態様で包含的であることを意図したものである。