説明

ユーザインターフェースサービス提供

サービス提供ユーザインターフェースシェル(UIS)(116)と連携する、提示ユーザインターフェースシェル(UIS)(114)を提示する方法を容易にする一組の具現化されたアプリケーションプログラムインターフェース(112)を提供する。この方法は、1つまたは複数のタスクが完了することを示すデータを受信すること、前記1つまたは複数のタスクの完了を調整すること、および前記提示UIS(114)に制御権を返すことを含む。

【発明の詳細な説明】
【技術分野】
【0001】
パーソナルコンピュータ(コンピューティングデバイスのアレイを考察するために本明細書で使用される)は、オフィスはもちろん、それ以上に家庭のリビングルームにふさわしいデバイスへと発展し続けている。例えば、PCの一般的な用途は、PVR(パーソナルビデオレコーダ)として知られるDVR(デジタルビデオレコーダ)として使用することである。このような形で使用されるPCは、興味のあるテレビ番組などのメディア番組を後から再生するために録画したり、または外部デバイスにダウンロードすることができる。用途を広げていく、コンピュータに関連する進化的側面の1つに、そのユーザインターフェース(UI)の進化がある。
【背景技術】
【0002】
従来、コンピュータは、2フィートUI(長さ約61cm)と本明細書で呼ばれるUI、つまり近接UIと情報のやり取りを行ってきた。2フィートUIは、コンピュータ画面から、約2フィート(61cm)離れている、またはほぼ腕の長さ分だけ離れているユーザに関連して使用されるように設計されている。コンピュータ用に設計されたグラフィカルユーザインターフェース(GUI)のほとんどすべては、2フィートUIである。しかし近年、10フィートUI(長さ約3m)というアイデアが具体化した。10フィートUIを使用すると、さらに遠い距離−テレビを見る距離程度−からコンピュータとの情報のやり取りが容易になる。このUIのタイプに対する他の記述的用語として、「遠隔ユーザインターフェース(Distance User Interface)」(DUI)がある。もちろん、「10フィートUI」または「DUI」という用語は、ちょうど10フィート(3m)のところにあるコンピュータと相互にやり取りすることを考慮しておらず、むしろ、ほぼテレビ視聴距離のところからPCを操作するという概念を記述するために本明細書では使用される。
【0003】
このようなDUIの一実施例は、名称「User Interface for Operating a Computer From A Distance」の同時係属出願第10/174,619号において説明されている。他のこのようなシステムの一実施例およびその相互のやり取りは、名称「User Friendly Remote System Interface」の米国特許第6,313,851号および名称「User-Friendly Remote System Interface With Menu Highlighting」の米国特許第6,898,765号において説明されている。これらの参考文献それぞれは、参照により本明細書に明示的に組み込まれている。
【0004】
ユーザインターフェースシェル(UIS)は、ユーザへのデータの提示を制御するために様々なアプリケーション(コンピュータのオペレーティングシステムを含む)と相互にやり取りする環境の一種である。一般に、10フィートUIアプリケーションは、10フィートUIを提示するシステムと互換性があるわけではない。2フィートUIに関連して動作するように構成される必要があるのとまったく同様に、アプリケーションは、10フィートUIに関連して動作するように構成されなければならない。このような構成は、ソフトウェアおよびUI開発者の両方にとって特に問題となる可能性がある。
【発明の開示】
【発明が解決しようとする課題】
【0005】
これが問題である理由の1つは、相互運用性を保証することに関連している。つまり、UIは、所望のアプリケーションとの互換性を有していなければならない。ソフトウェアベンダは、アプリケーションに関連付けられているデータを提示するために使用されることになっているUIとの互換性を自分達のアプリケーションに持たせなければならない。相互にやり取りすべきシェルが多いほど、ソフトウェアベンダが多数の人々により使用できるアプリケーションを開発する際に直面する負担が増大する。
【0006】
この課題に対し可能性のある解決策の1つは、単一のUI、本明細書で規定しているように、単一の10フィートUIのみを備えることである。このシナリオは、独立系ソフトウェアベンダ(ISV)にとっては重要なものとなる。なぜならば、彼らは、単一の10フィートUIのみと相互にやり取りするように自分達のアプリケーションをプログラムする必要があるからである。しかし、このシナリオには、他のソフトウェアベンダ、特に、代替UIシェル(第1シェル、またはデフォルトのシェルの代替)を開発することに従事しているベンダにとって遺憾な点が多い。特定のソフトウェアベンダが、カスタマイズされた10フィートUIを備えることを望む場合がある。しかし、カスタマイズされた10フィートUIを開発することを望むその企業は、本発明がなければ、そのUIが他の様々なソフトウェアベンダにより提供される様々な製品との互換性を有することを保証する厄介な仕事に直面する。
【0007】
さらに、ベンダが、代替10フィートUISなどの代替UISを独立に開発しようとした場合には、機能、ブランドなどでそのシェルをカスタマイズすることができるだろうけれども、UIS(他のアプリケーションおよびハードウェアデバイスなどと通信する)のタスクすべてを実行できる必要がある。このような試みは、資源集約的であるだけでなく、市場によってどれだけ受け入れられ、様々なハードウェアおよびソフトウェア製品とどの程度互換性があるかについて、かなりの不確定性を伴う。現行技術は、とりわけ、完全相互運用性を持つUIを開発することに関連する負担を担うことなく所望のソフトウェアベンダがカスタマイズされた10フィートUIを実現することができる方法およびシステムを提供することによって、改善することが可能であろう。
【課題を解決するための手段】
【0008】
本発明の実施形態は、とりわけ、第1のUISを使用して第2のUISをサービスすることにより、1つまたは複数のコンピューティングデバイスとの相互のやり取りを容易にするシステムおよび方法を提供することで、少なくとも上記の問題点を解決する。本発明は、クライアント/サーバのタイプまたは関係をユーザインターフェースに拡大適用する。本発明は、UIシェルの開発を容易にすること、およびそれにより、動作しているコンピューティングシステムで代替UIシェルを利用できるようにすることに関連する資源を低減することを含む当業のいくつかの実用的応用を有する。
【0009】
第1の例示的な態様において、サービス提供ユーザインターフェースシェル(UIS)と連携する提示UI(presented UI)を提示する方法を容易に実行できるようにするアプリケーションプログラムインターフェース(API)(複数のコンポーネントインターフェースから構成することができる)が備えられる。この方法は、タスクが完了することを示すデータを受信すること、タスクの完了を調整すること、および提示UIに制御権を返却することを含む。
【0010】
第2の例示的な態様において、本発明の一実施形態は、第2のUISで第1のグラフィカルUISをサービスすることを含むコンピュータ実装方法の形態をとる。第1のUISは、クライアントUISとすることができ、第2のUISは、サービス提供UISであり、第1のUISは、第2のUISによるサービスを受ける。
【0011】
第3の例示的な一態様では、本発明の一実施形態は、第2のUI環境で第1のUI環境をサービスすることを含む。
【0012】
第4の例示的な一態様では、本発明の一実施形態は、少なくとも2つのUIシェルを有する1つまたは複数のコンピューティングデバイスとの相互のやり取りを容易にする方法を実行するためのコンピュータプログラム製品である。この方法は、ユーザには提示されない第1のUISを使用して、ユーザに提示される第2のUISをサービスすることを含む。
【0013】
最後の例示的な一態様では、本発明の一実施形態は、非表示UISによるサービスを受ける1つまたは複数のコンピュータ可読媒体上に具現化される表示可能UISである。
【0014】
本発明は、参照により本明細書に組み込まれている、付属の図面を参照しつつ以下で詳しく説明される。
【発明を実施するための最良の形態】
【0015】
すでに述べたように、UI開発者は、様々なオペレーティングシステム、サードパーティ製アプリケーション、ハードウェアデバイスなどと互換性のある独立のUIを作成することに関連する作業を行うことなく、10フィートUIの独自ルック・アンド・フィール(look and feel)をデザインし、そのようなルック・アンド・フィールをユーザに提示することを望む場合がある。本明細書で説明されている解決策では、第1のユーザインターフェースシェル(UIS)に、第2のUIS(代替またはカスタマイズされたUIS)をサービスさせ、その結果、コンピュータユーザにはカスタマイズされたUIが見えるが、カスタマイズされたUIは、独立のUIと関連する従来の「力仕事」を行うサービス提供UIと連携して動作するようになる。UIシェルは、UI環境の一種である。
【0016】
ある意味で、本発明の一実施形態の一態様は、見せかけ(facade)として説明することも可能であろう。クライアントUIは、ユーザに提示される一種の見せかけである。そのため、クライアントシェルが提示されるが、サービス提供シェルは、一実施形態にはない。本発明の様々な実施形態によれば、サービス提供UISは、一端のクライアントUIとのデータ交換、および様々なアプリケーションと他端の他のコンポーネントとの間のデータ交換を容易にするユニバーサルUI(表示されないが、必要とあれば表示可能である)となる。
【0017】
本発明の説明全体を通して、関連するシステムおよびサービスに関係するいくつかの概念を理解しやすくするために複数の頭字語と簡略表記が使用される。これらの頭字語および簡略表記は、本明細書で明らかにされるアイデアを伝達する簡便な方法を提供することのみを目的としており、決して、本発明の範囲を制限することを意図していない。これらの頭字語のリストを以下に掲載する。
API:アプリケーションプログラムインターフェース
サービス提供UIS:クライアントUIシェルと呼ばれる他のユーザインターフェースシェルをサービスするユーザインターフェースシェル。
クライアントUIS:サービス提供UISと呼ばれる他のユーザインターフェースシェルによるサービスを受けるユーザインターフェースシェル。
ISV:独立系ソフトウェアベンダ
10フィートUI/DUI:10フィート(約3m)のユーザインターフェース/遠隔ユーザインターフェース(ほぼテレビ視聴距離のところからコンピュータを操作する)。
2フィートUI/DUI:2フィート(約61cm)のユーザインターフェース(ほぼテレビ視聴距離のところからコンピュータを操作する)。
UI:ユーザインターフェース
UIS:ユーザインターフェースシェル
【0018】
図1に戻ると、本発明の例示的な一実施形態が示されており、全体として番号110で参照される。API 112が参照される。API 112は、方法などで様々な機能的態様を公開する構成要素の集合で構成することができるが、本明細書では、本発明をわかりにくくしないため、また読みやすくするために、単数形で主に参照される。API 112を使用すると、一実施形態においてサービス提供UIS 116によるサービスを受けるクライアントUIS 114間の通信が容易に行える。
【0019】
サービス提供UIS 116は、一種のサーバコンポーネントとして、UIS 116に関して一種のクライアントとして動作するクライアントUIS 114の要求をサービスすることを求める。それぞれのUISは、本発明のいくつかの実施形態により、直接的に、または間接的に他のアプリケーションをホストすることができる。
【0020】
様々なネットワークは、本発明をわかりにくくしないために図1に示されていないが、それは、そのようなネットワークが本発明の範囲内でうまく考えられる場合である。例えば、サービス提供UIS 116およびクライアントUIS 114は、1つまたは複数のネットワークによって互いに結合された異なるPCなどの異なるデバイス上に常駐することができる。上でほのめかされているように、シェルは、ネットワーク上でクライアントサーバ型アレンジにより動作することができる。例えば、クライアントUIS 114は、一種のクライアントとして、比較的多くの資源集約的タスクを遂行するために一種のサーバとして動作するサービス提供UIS 116によるサービスを受ける。用語「クライアント」および「サーバ」(および「サービス提供」などの変更形態)が本明細書で使用されるが、これらは、シェルの様々な機能的態様を説明するために使用される。これらは、その用語の歴史的意味に関して、必ずしもそれ自体「クライアント」または「サーバ」ではない。しかし、これらの用語は、本発明に関連する概念を伝える。
【0021】
要するに、クライアントUIS 114は、他のUIシェルによって履行される要求をサブミットするUIシェルである。サービス提供UIシェルは、他のUIシェルをサービスする(以下で説明されるように、要求を受信する、タスクを完了する、など)シェルである。クライアントUIS 114は、サービス提供UIS 116によるサービスを受ける。しかし、ユーザには、クライアントUIS 114に関連するコンポーネント(UIコンポーネントなど)しか見えないので、ユーザはサービス提供UIS 116が存在していることすら知らない場合がある。同様に、いくつかのアプリケーションでは、クライアントUIS 114が存在することすら知らない場合がある。なぜならば、一実施形態においては、アプリケーションは、サービス提供UIS 116と相互にやり取りし、次いで、サービス提供UIS 116がデータまたはデータの変更形態をクライアントUIS 114にわたすからである。
【0022】
様々な視覚的要素またはデータコンポーネントが、提示領域118における表示デバイスに提示され、これは、コンピュータのモニタ、ハンドヘルドデバイスの形態を取りうる。提示領域118は、ユーザ選択領域120、および、ビデオの再生、画像の表示、または番号124により一般に参照されるアプリケーションの集合と相互にやり取りするサービス提供UIS 116からのフィードの表示のようなものについて使用できる挿入物(インセット:inset)122などの、いくつかの例示的なコンポーネントを示す。前の方で示唆されている参考文献では、例示的なDUIのコンポーネント、ナビゲーションなどを詳細に説明している。
【0023】
アプリケーション124の集合は、例示的であり、メディアプレーヤ124A、ソフトウェアフレームワーク124B、コンピュータまたはソフトウェアアドイン124C、他のアプリケーションまたはさらにはオペレーティングシステム124D、またはオペレーティングシステムそれ自体124Eなどの例示的なアイテムを含む。オペレーティングシステムそれ自体124Eは、第1のAPI 126A、第2のAPI 126B、第3のAPI 126C、および第4のAPI 126Dなどのそれぞれのインターフェースを介して前述のアプリケーション124と通信するのとは反対に、一実施形態においてサービス提供UIS 116によって直接的動作する場合があるものとして示している。
【0024】
データの一部は、番号128A〜Dにより参照されるが、本明細書では番号128として総称され、提示領域118とクライアントUIS 114との間で、またはクライアントUIS 114およびサービス提供116との間でデータが一般的に移動するという概念を伝えることができる。しかし、より具体的には、データ部分128Aは、提示領域118からクライアントUIS 114に届くデータに対応し、参照番号128Bは、API 112からサービス提供UIS 116へ交換されるデータを指しており、データ部分128Cは、サービス提供UIS 116からAPI 112へ伝達されるデータを指しており、データ部分128Dは、クライアントUIS 114から提示領域118へ伝達されるデータを指している。データフローは、例示することを目的としてブロック図形態で示されている。実際のデータフローは、データフローの実際の性質のせいで示されているものと異なる場合があるが、そのようなものは、請求項の範囲内で考えられる。
【0025】
図1で使用される形状および記号は、特定の形状が特定のものを意味する本質的に任意の流れ図に準拠しようとしているものとして解釈すべきではない。むしろ、図は、様々な実用的アプリケーション、および本発明により実現される技術の利点の一部を絵によりわかりやすく示す。例えば、パズルのピースを使用してアプリケーションプログラムインターフェースの概念を絵で例示する方法が用いられる。例えば、図1は、クライアントUIS 114がAPI 112と互換性があることを示している。
【0026】
サービス提供UIS 116は、様々なソフトウェアアプリケーション124と相互にやり取りする一群のAPI 126A〜126Dに関連付けられている。本明細書で使用されているように、「ソフトウェアアプリケーション」という用語は、広い意味で使用され、コンピューティングシステム内で使用される実行可能ファイル、ライブラリ、および他のソフトウェアコンポーネントなどを考慮する。図に示されているように、第1のAPI 126Aは、特定メディアプレーヤ124Aとの相互のやり取りを容易にすることができる。図には示されていないが、異なるAPIが、異なるメディアプレーヤと相互にやり取りするために使用されることができ、または、すべてのメディアプレーヤが第1のAPI 126Aと相互にやり取りする場合もありえる。同様に、フレームワーク124Bは、通信を行うためにAPI 126Bを必要とすることがある。例示的なフレームワークは、Microsoft Corporationによって提供される「.NET Framework」を含む。
【0027】
カスタマイズされたインターフェースがサービス提供UIS 116と通信する必要がある場合の他の例では、第3のAPI 126Cを使用するアドイン124Cのインターフェースを含む。利用可能な多数のソフトウェアアプリケーションと相互にやり取りすることに関連する様々なAPIのすべてを列挙しようとすると、本発明の焦点をぼかすことになる。したがって、図1に示されているものよりも多くのAPIが本明細書で特に考察されていることを示すために、省略記号が示される。最後の例示的なAPI、第4のAPI 126Dは、他のアプリケーションまたはオペレーティングシステム124Dと相互にやり取りするために使用されるものとして示されている。もちろん、サービス提供UIS 116は、オペレーティングシステム124Eと直接的に、または様々な他のソフトウェアプログラムと直接的に相互にやり取りすることができる。
【0028】
しかし、本発明の一実施形態によれば、クライアントUIS 114は、第1のAPI 126A、第2のAPI 126Bなどを認識する必要もなく、またオペレーティングシステム124Eとの直接的リンクも認識することすら必要としないが、それは、API 112を介してサービス提供UIS 116と相互にやり取りする方法を知るだけで、十分に他のコンポーネントと間接的に相互にやり取りすることができるからである。
【0029】
クライアントUIS 114では、カスタマイズされた表示(ディスプレイ)118をユーザに提示することができる。入力データが、カスタマイズされたクライアントUIS 114を介してユーザから受信されると、そのデータは、API 112を介してサービス提供UIS116にわたすことができる。サービス提供UIS116は、クライアントUIS 114により求められた様々なタスクの遂行を調整する。このようにして、開発者は、サービス提供UIS 116などの自社独自の本格的シェルを開発することに関連する互換性問題を取り扱わずに表示をカスタマイズする機会を与えられる。
【0030】
本発明の一実施形態では、サービス提供UIS 116は、提示領域118内に独自コンポーネントをそれ自体表示することはなく、むしろAPI 112を介してクライアントUIS 114によるそのようなコンポーネントの表示を容易にする10フィートUISである。この実施形態では、クライアントUIS 114は、サービス提供UIS 116に関してカスタマイズされた代替10フィートUI(UIS 116の代替)である。API 112は、便宜上、単数形で参照されており、これからもそうするが、すでに述べたように、本発明では、API 112は、複数のアプリケーションプログラムインターフェースで構成できると考えている。本発明では、とりわけ、ソフトウェアベンダが、クライアントUIS 114などの代替シェルを介して提示したいものを提示することができるこれらのAPIを公開する。
【0031】
一実施形態では、サービス提供UIS 116は、データ、タスクなどがクライアントUIS 114により受け取られ、サービス提供UIS 116にわたされ、そうすることでそれらのタスクが容易に遂行され、該当する場合には、データがクライアントUIS 114に返され、提示領域118にデータを提示することを含む用途に使用されることができるようにクライアントUIS 114をサービスする。
【0032】
一実施形態では、サービス提供UIS 116は、ユーザが見ることができるように従来どおりデータそれ自体を提示するUISの修正バージョンとすることができる。修正された状態では、コンポーネントそれ自体を提示するよりもむしろ、サービス提供UIS 116は、グラフィック表示に関連する方策を用いて、クライアントUIS 114によって求められるデータの表示を容易にする。一態様では、サービス提供UIS 116は、不可視モードで動作し、クライアントUIS 114などのサードパーティ製アプリケーションをサービスする。
【0033】
したがって、サービス提供UIS 116がないと、クライアントUIS 114は、ソフトウェアアプリケーション124と直接的に相互にやり取りする方法を知っている必要があるが、本発明の一実施形態を使用すると、クライアントUIS 114は、その必要がない。クライアントUIS 114は、API 112を通じてサービス提供UIS 116と相互にやり取りのみするように構成される必要がある。同様に、ソフトウェアアプリケーション124のメーカーなどのソフトウェア開発者は、API 126A〜126Dのうちの1つなど、単一のAPIと連携して動作する製品を開発し続けることができる。第1のAPI 126Aが、サービス提供UIS 114をメディアプレーヤと連携動作させることができるAPIを表す例示的な実施例を考える。メディアプレーヤ開発者は、そのソフトウェア124Aを何度も繰り返し提供してUIS 116およびクライアントUIS 114の両方との連携動作をする必要はなく、むしろ、サービス提供UIS 116との連携動作をすればよい。
【0034】
図1Aに少しの間戻ると、異なるベンダ140のクライアントUISは、さらに異なるベンダ142のクライアントUISとともに示されている。本発明の一実施形態を使用すれば、メディアプレーヤ124A(または何らかのアプリケーション)は、クライアントUIS 140または142などの様々なクライアント10フィートUIシェルを気にする必要はない。UIS 140および142は、API 112と互換性を有し、相互にやり取りするように設計されたアームを持つことが絵で示されていることに留意されたい。これは、代替UI開発者が気にする必要のある唯一のAPIがAPI 112であるからである。UI開発者が、サービス提供UIS 116に関連するAPI 112を使用するUIを作ることができる場合には、サービス提供UIS 116の性質のおかげで、開発者は、サービス提供UIS 116を自由に使ってアプリケーションの間接的制御を利用する。サービス提供UIS 116は、クライアントUIシェル(114、140、142など)およびアプリケーション124がサービス提供UIS 116と突き合わせて試験のみすればよいように標準実行環境として動作可能である。
【0035】
そこで、図2に戻ると、コンピューティングデバイスとの相互のやり取りを容易にする例示的な方法が示されており、また番号200により総称されている。プロセス200のステップは、図1Aで説明されているコンポーネントに関連して説明される。以下のステップは、ただ1つの実施形態のものであるが、本質的に例示的であることを目的としており、本質的に制限するものとして解釈すべきではなく、むしろ、本発明の一実施形態の様々な機能的態様を例示することを目的としている。
【0036】
一実施形態では、ユーザ入力は、ステップ210でクライアントUIS 114によって受信される。このユーザ入力は、提示領域118内の表現、マウスクリック、無線キーボードから受信したキーボードコマンド、例えば、選択領域120から楽曲またはビデオの再生をするなどのリモートコントロールから受信された刺激などを選択するという性質のものでよい。ユーザ入力は、人間による入力に限られないが、いくつかの実施形態では、他のマシンまたは同じマシンのコンポーネントから受信された入力を考えることができる。
【0037】
ステップ212において、データは、ステップ210で受信されたユーザ入力に基づき、サービス提供UIS 116に伝達される。一実施形態では、伝達されるこのデータは、データコンポーネント128Aであってよい。データ128Aは、ステップ210のユーザ入力を介して受信したそのままのデータであるか、またはその変更形態もしくは追加とすることができる。以下に、この概念を具現化する一実施例を示す。
【0038】
ユーザは、特定のチャネルにナビゲートにしたい場合があり、データ128Aは、所望のチャネルの指定と、さらには所望のテレビ番組を表示する表示領域を提示することに関連付けられている命令セットとの両方を含む。したがって、ステップ214において、サービス提供UISは、ステップ212で受信したデータに関連付けられているタスクの遂行を調整する。これらのタスクは、様々な形態を取りうる。次の複数の段落において、クライアントUIS 114により要求されるか、またはクライアントUIS 114に関連付けられる可能性があり、またサービス提供UIS 116に関連して容易にされる、限定的であり例示的な様々なタスクのリストを提供する。
【0039】
第1の例示的なタスクは、互換性のあるアプリケーションを列挙することを含む。すでに述べたように、10フィートUI上で動作するアプリケーションは、一般に、2フィートUI上で動作する場合と異なる形で構成される。様々な理由から、コンピュータシステム上にインストールされているどのようなソフトウェアアプリケーションが特定のUISと互換性を有するかを知っていると都合がよい。クライアントUIS 114は、サービス提供UIS 116のおかげでアプリケーション124と間接的互換性を有するので、クライアントUIS 114は、相互にやり取りするためにどのようなアプリケーションが利用可能かを知りたい場合がある。このタスクは、様々な互換性のあるソフトウェアアプリケーションの名前、配置される場所、備える機能、メタデータを含むアプリケーションに関連付けられているアイコンおよび他の属性などを挙げることを含むことも可能である。アプリケーションを列挙することは、利用可能で、かつクライアントUIS 114と互換性のあるどのようなアプリケーションとも関連付けられている、いかなる抽出可能な属性を抽出することを含む。
【0040】
他の例示的なタスクは、それぞれの機能および/または属性に基づいてアプリケーションのフィルタリングすることを含む。ここで、クライアントUIS 114は、特定の属性を含むすべてのアプリケーション、例えば、サウンドカードを必要とするアプリケーションを認識または識別したい場合がある(実質的にはどのようなものでもよい)。このタスクは、リソースおよび機能を指定し、次いで、与えられた基準に合致するソフトウェアアプリケーションを利用可能なリソースのプールから問い合わせるか、あるいは別の方法で決定することを伴う。そのため、クライアントUIS 114は、例えば、画像を提示したり、ビデオを再生したり、または記録を録画したりするために使用することができるすべてのアプリケーションを識別することができる。
【0041】
他の例示的なタスクは、データをユーザに提示することを含む。クライアントUIS 114は、カスタマイズされたフォーマットに従って提示領域118内にデータを提示しなければならない。しかし、様々なハードウェアコンポーネントおよび/またはソフトウェアコンポーネントと相互にやり取りするために、サービス提供UIS 116は、このような提示を容易にする。クライアントUIS 114は、提示領域118に示されるようなコンポーネントを提示することに関連する様々な複雑な部分を最終的には制御することができるとしても、サービス提供UIS 116は、クライアントUIS 114と連携して動作し、様々な表示コンポーネントを提示することに関連して使用されるデータを供給する。本発明の一実施形態は、UIまたは他のデータが1つ(または複数)の表示デバイスに提示されるときにクライアントUIS 114がクライアントUISに従うことを含む。そのため、クライアントUIS 114は、サービス提供UIS 116に従って、サービス提供UIS 116がアプリケーション124などのアプリケーションに関連付けられている表示データを提示できるようにすることが可能である。
【0042】
他の例示的なタスクでは、クライアントUIS 114が、ソフトウェアアプリケーション124A〜Eのうちの1つなどのアプリケーションを起動するようサービス提供UIS 116に指令することができる。ここでは、クライアントUIS 114は、起動すべき所望のアプリケーションを指定して識別するか、または方法で参照することができ、サービス提供UIS 116にわたされたデータ128Aなどのデータを使用して、サービス提供UIS 116は、所望のアプリケーションの起動を容易にする。画面サイズ、ウィンドウタイプ、位置などの環境パラメータも、データ128Aとしてわたすことが可能であろう。
【0043】
他のタスクでは、サービス提供UIS 116が他のタスクを実行している間に、サービス提供UIS 116を制御する手段を保持する。例えば、サービス提供UIS 116が第1のタスクを遂行している間に、ユーザは、クライアントUIS 114のおかげで、例えば、アイコンを移動するか、またはウィンドウのサイズを変更する指令をコンピュータに出す。このようなコマンドは、サービス提供UIS 116にわたすことが可能であろうが、これは同時に他のタスクの実行を容易にするとしてもそうである。
【0044】
他のタスクは、サービス提供UIS 116が知るべき特定のイベントを修正すること、または、サービス提供UIS 116が知るべき特定のイベントをクライアントUIS 114に通知することを含む。例えば、サービス提供UIS 116がタスクを完了したときに、クライアントUIS 114に制御権を返すことができる。そのアクティビティを終わらせるこのイベントは、制御を引き継ぐ用意や準備がなされるように、クライアントUIS 114が認識しなければならない何かである。サービス提供UIS 116は、さらに、エラー条件、UIコンポーネント移動、サイズ変更などのフィードバックを送ることも可能であろう。
【0045】
他の例示的なタスクは、代替シェル、つまりクライアントUIS 114に返す追加APIのコールバックを容易にすることを含む。言い換えれば、このタスクは、クライアントUIS 114に、サービス提供UIS 116が認識されるべきとみなしている何かを認識させる。サービス提供UIS 116が、例えば、認識されるべきであると知っていると思われる何らかのイベントまたは出来事が発生した場合には、そのことをクライアントUIS 114に通知する。いくつかの本実施形態では、このタスクは、データをクライアントUIS 114に転送するという形をとる。例えば、特定のテレビ番組を録画したいということをユーザが示す実施例を考える。その入力は、クライアントUIS 114を経由して来て、次いで、クライアントUIS 114は、その要求をサービス提供UIS 116に伝達する。録画する番組の指示を除いて、どのような情報もわたすことができないが、サービス提供UIS 116は、所望の番組の録画を容易にすることに関して遂行されなければならない他の機能も認識している場合がある。したがって、サービス提供UIS 116は、録画情報をクライアントUIS 114に返して、それ独自の録画コンポーネントまたは他の何らかの録画アプリケーションを使用できるようにすることが可能である。多くの場合、サービス提供UIS 116は、ビデオ録画などのイベントを遂行する自身の機能を備えている。しかし、クライアントUIS 114の一部が、ビデオ録画コンポーネント(または画像表示コンポーネント、オーディオ提示コンポーネントなど)を含む場合がある。この場合、クライアントUIS 114は、ビデオ番組を録画および/または再生することに関連するカスタマイズされた表示を提示する。そして、例えば、ビデオキャプチャカードなどのデバイスと相互にやり取りする必要があるけれども、カスタマイズされたUIを提示するように構成されうる。そのようなものとして、サービス提供UIS 116への要求を開始して、番組を録画することに関連する複雑な作業を容易にし、クライアントUIS 114がその録画コンポーネント、または他の録画コンポーネントと整合性のある番組イベントをおそらく録画することを可能にするデータを返すことができる。このタスクは、クライアントUIS 114からの要求に関連するデータを提供する。
【0046】
他の例示的なタスクは、クライアントUIS 114がサービス提供UIS 116に追加機能を加えるための方法を実行することを含む。つまり、サービス提供UIS 116は、クライアントUIS 114によってサービス提供UIS 116に供給されたデータに従って成長または進化するように構成することができる。このタスクは、クライアントUIS 114などの代替シェルに、API 112などのサービス提供UIS 116に関連付けられているAPIセットの拡張を任せることを含む。このようなタスクの例示的な一実施例は、例えば起動時など何らかの時点に提示領域118にある種の表示ボックスを提示することがクライアントUISで望まれている方法に似た何かとすることができる。おそらく、画像が表示されるか、あるいはテキスト、あるいは小さなビデオクリップなどが表示される。クライアントUIS 114で表示したいものをウィンドウに表示できるようにウィンドウと相互にやり取りする追加のAPIを公開することができる。API 112が、そのような相互のやり取りを容易にする命令セットを備えていなかった場合には、このタスクは、そのような相互のやり取りを行う機能をAPI 112に補う機能を備える。
【0047】
他の例示的なタスクは、他の変更が生じている間に、バックグラウンドまたはフォアグラウンドでイベントを持続させることができる機能に関係する。このようなタスクの例示的な実施例は、インセット122を参照しつつ説明される。インセット122は、バックグラウンドで変更が生じている間にイベント(ビデオを表示する、画像を提示する、カメラフィードを示すなど)を持続的に実行することができるUIの一領域である。例えば、ユーザが選択領域120により行われた選択を介して音楽またはビデオまたは画像をナビゲートしている間に、インセット122が特定のビデオ録画を再生する場合がある。このようなインセットのさらなる詳細は、前記の同時係属出願第10/174,619号で説明されている。このパスで、クライアントUIS 114などの代替シェルは、サービス提供UIS 116に、インセット122のイベントに関連する情報をわたすことができ、そのインセット122は、バックグラウンドの例の変更が生じている間に実行していることを実行し続けることができる。クライアントUIS 114がない場合には、サービス提供116が唯一のUISであり、サービス提供UIS 116が様々なハードウェアコンポーネントまたはソフトウェアコンポーネント124にアクセスを有するので、122などのインセットに、イベントを持続的に表示または提示することができる。このタスクでは、クライアントUIS 114は、類似のことを行う、つまり、インセット122に表示されているものを持続的に表示することができる。API 112のおかげで、クライアントUIS 114は、インセット122またはインセットの複数のインスタンス(わかりやすくするため図に示されていない)を提示することができる。
【0048】
他の例示的なタスクは、クライアントUIS 144とサービス提供UIS 116との間の異なるシステムリソースの使用のネゴシエーションを提供することを含む。ユーザが、例えば、クライアントUIS 114によって提示されているビデオを見ている状況を考える。次いで、ユーザは、特定のチャネルに変えるコマンドを起動する。しかし、そのようなアクションが意図的でなかった場合がある、例えば、他の人たちがビデオを見ている間に、子供がリモートコントロールで遊んでいるような場合である。この場合、おそらく、ビデオを停止して、実際に指示されたチャネルに切り替える前に確認が望まれる。この状況において、瞬間的タスクにより、クライアントUIS 114は、所望のチャネルに合わせたいのか、何もしないのかなどについてユーザに尋ねることができる。この実施例では、映画を再生することに関連するリソース、および、番組の特定のチャネルにナビゲートし、かつ/またはチャネルを再生することに関連するリソースなどの2つの異なるシステムリソースの間のネゴシエーションが必要であった。クライアントUIS 114がそのようなネゴシエーションを完了する方法を知らなければならないようにするのではなく、サービス提供UIS 116がそのようなネゴシエーションを容易にすることができる。
【0049】
サービス提供UIS 116が容易にすることができる他の例示的なタスクは、初期化を必要とするデバイスまたはサービスを初期化することに関連付けられる。例えば、ユーザが新しいPCの包装を解き、プラグをコンセントに差し込んだときに、特定の製品提供物を最初に構成する必要がある場合がある。例えば、テレビ番組を視聴するには、PCに、ユーザのコンテンツプロバイダ、地理的位置、時間帯などを認識させる必要がある可能性がある。ユーザは、クライアントUIS 114などの代替シェルがない場合にそのような初期化を実行するよう求められることがあるが、それらの提示は、一実施形態においてサービス提供UIS 116により抑制される。一実施形態では、そのような初期化は、ユーザがそのような初期化を必要とするサービスを要求するまで遅らせることができる。この要求は、クライアントUIS 114を介して受信され、API 112を通じてデータをサービス提供UIS 116に伝達し、次いで、クライアントUIS 114に、そのような初期化を必要とするデータを提示させ、集めさせるための情報をクライアントUIS 114に供給する。このようにして、クライアントUIS 114は、初期構成を必要とするサービスの初期化などをカスタマイズすることさえできる。
【0050】
例示的なタスクの数は多いが、API 112が存在しているおかげで容易にすることが可能なタスクの精神と広い範囲を伝えるために上記の、および最後の例示的タスクを列挙した。API 112が存在しているおかげで実行することが可能な最後の例示的なタスクは、サービス提供UIS 116と連携して動作するように設計された可能性があるレガシーリモートコントロールをクライアントUIS 114とともに使用できるようにすることである。
【0051】
そこで、図2を参照すると、ステップ214で終了した後、本発明の一実施形態の次のステップは、ステップ216でタスクを実際に完了させることである。これらのタスクを実行することに関連する任意のデータは、ステップ218で受信することができる。上述では、要求されたタスクを実行することと関連してアプリケーション124などのアプリケーションまたはハードウェアデバイスからデータを返してもらうことができるいくつかの場合について言及している。次いで、そのデータまたは変更を、ステップ220において、サービス提供UIS 116で受信することができる。このデータがフォーマットされるか、または補われるか、または他の方法で変更される必要がある場合には、ステップ222でUIS 114にわたされるようなことを実行することができ、これは、一実施形態で制御権をクライアントUIS 114に返却することを含むことができる。これにより、次いで、ステップ224において、クライアントUIS 114は、適切な出力をユーザに提示することができる。
【0052】
次に、より低いレベルで、いくつかの例示的な実施例について説明する。追加の実施例および技術的開示を行うために説明する。実施例および例示的なAPI構造は、本発明を制限するものと解釈すべきではない。本発明は、付属の特許請求の範囲により定められる。以下のモジュールは、1つまたは複数の実施形態におけるAPI 112の様々な機能的態様を公開する。さらに、例示的なモジュールおよび構文の以下のリストは、決して網羅されてはおらず、例示することを目的としている。
【0053】
<低レベルの説明>
クライアントUIS 114などの外部または代替シェルは、本明細書では「IExtensibilityApplications::GetFilteredEntryPoints」と呼ばれるコンポーネントを使用して、システムにインストールされているDUIアプリケーションおよびそのエントリポイントのリストを受信することができる。次いで、クライアントUIS 114は、本明細書では「IExtensibilityApplications::LaunchEntryPoint」と呼ばれるコンポーネントを使用することによりインストールされているアプリケーション124を起動するようサービス提供UIS 116に指令することができる。また、クライアントUIS 114は、本明細書では「IExtensibilityApplications::LaunchUrl」と呼ばれるコンポーネントを使用することによりインストールされているアプリケーションに関連付けられていないURLでアプリケーション124を起動することもできる。これら3つのコンポーネントの機能は、特定の実施形態に比べて重要な機能である。しかし、例示的ないくつかの実施形態が、上記の機能を実装する一手段にすぎないものとして以下の表にまとめられている。これらは、本発明を制限するものと解釈してはならず、付属の特許請求の範囲で定められる。ホストされているアプリケーションが起動された後、そのアプリケーションは、本明細書では「IextensibilityHostControl」と呼ばれるコンポーネントを使用して、サービス提供UIS 116を制御し、指令することができる。例示的な機能は、ウィンドウを閉じる、ウィンドウを最大化する、ウィンドウを最小化する、ウィンドウのサイズおよび位置を設定する、またはウィンドウが閉じられるまで実行をブロックする制御を公開することを含む。
【0054】
表1に示されているものは、「IExtensibilityApplications::GetFilteredEntryPoints」の出現をインスタンス化するための構文の例示的な一実施例にすぎない。当業者であれば、同じ機能を異なる構文を使って実行する多くの方法があることを理解し、またそれは付属の特許請求の範囲内で考えられる。
【0055】
【表1】

【0056】
表2に示されているものは、「IExtensibilityApplications::LaunchEntryPoint」の出現をインスタンス化するための構文の例示的な一実施例にすぎない。当業者であれば、同じ機能を異なる構文を使って実行する多くの方法があることを理解し、またそれは付属の特許請求の範囲内で考えられる。
【0057】
【表2】

【0058】
表3に示されているものは、「IExtensibilityApplications::LaunchUrl」の出現をインスタンス化するための構文の例示的な一実施例にすぎない。当業者であれば、同じ機能を異なる構文を使って実行する多くの方法があることを理解し、またそれは付属の特許請求の範囲内で考えられる。
【0059】
【表3】

【0060】
サービス提供UIS 116に関してAPI 112からなる、またはAPI 112により公開される4つの例示的なインターフェースは、表4に示されている。
【0061】
【表4】

【0062】
次に、表4のメソッドのそれぞれの低レベルの詳細について説明する。一実施形態では、IExtensibilityApplicationsインターフェースは、表5に記載されているようなメソッドを公開する。
【0063】
【表5】

【0064】
表4に示されている第2のメソッドは、本明細書で「IExtensibilityEntryPoint」インターフェースと呼ばれ、クライアントUIS 114などの代替シェルがエントリポイントの属性を発見できるようにAPI 112からなるか、またはAPI 112により公開されるコンポーネントに付けられた名前である。表6は、IExtensibilityEntryPointにより公開されるいくつかの例示的なメソッドを示している。
【0065】
【表6】

【0066】
表4に示されている第3のメソッドは、本明細書で「IExtensibilityHostControl」と呼ばれ、アプリケーションが起動されたときに開かれるウィンドウを制御するためにAPI 112からなるか、またはAPI 112により公開されるコンポーネントに付けられた名前である。表7は、IExtensibilityHostControlにより公開されるいくつかの例示的なメソッドを示している。
【0067】
【表7】

【0068】
表4に示されている第4の、そして最後の例示的なメソッドは、本明細書で「IExtensibilityHostEvents」と呼ばれ、サービスウィンドウイベントを表すためAPI 112からなるか、またはAPI 112により公開されるコンポーネントに付けられた名前である。表8は、IExtensibilityHostEventsにより公開されるいくつかの例示的なメソッドを示している。
【0069】
【表8】

【0070】
繰り返して言うが、プログラマーが猫に皮を被せるのにたくさんの方法があるように、プログラミングの本質は、多くの場合、個人主義的である。これは、著作権出願ではなく、特許出願である。本開示は、付属の特許請求の範囲を裏付けるものであるが、本発明を定めるのは特許請求の範囲である。
【0071】
<例示的な動作環境>
特に図3を参照すると、本発明を実装するための例示的な動作環境が示されており、一般にコンピューティングデバイス300として指示されている。コンピューティングデバイス300は、好適なコンピューティング環境の一例にすぎず、本発明の用途または機能性の範囲に関する制限を示唆する意図はない。コンピューティング環境300は、例示されている1つのコンポーネントまたはその組合せに関係する何らかの依存関係または要求条件がその環境にあるものと解釈すべきでない。
【0072】
本発明は、パーソナルデータアシスタントまたは他のハンドヘルドデバイスなどのコンピュータまたは他のマシンによって実行される、プログラムモジュールなどのコンピュータ実行可能命令を含む、コンピュータコードまたはマシン使用可能命令の一般的背景状況において説明することができる。一般に、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含むプログラムモジュールは、特定のタスクを実行する、または特定の抽象データ型を実装するコードを意味する。本発明は、ハンドヘルドデバイス、家電製品、汎用コンピュータ、より具体的にはコンピューティングデバイスなどを含む、様々なシステム構成において実施することができる。また、本発明は、通信ネットワークを通じてリンクされているリモート処理デバイスによりタスクが実行される分散コンピューティング環境で実施することもできる。
【0073】
図3を参照すると、コンピューティングデバイス300は、メモリ312、1つまたは複数のプロセッサ314、1つまたは複数の提示コンポーネント316、入出力ポート318、入出力コンポーネント320、および例示的な電源322などのデバイスを直接的または間接的に結合するバス310を備える。バス310は、1つまたは複数のバス(アドレスバス、データバス、またはその組合せなど)となるようなものとしてよい。わかりやすくするために図3の様々なブロックが線で示されているが、実際は、様々なコンポーネントを線引きするのはそれほど明確でなく、これらの線は、暗喩的に、より正確には灰色で曖昧なものとなる。例えば、表示デバイスなどの提示コンポーネントをI/Oコンポーネントとみなすことができる。また、プロセッサはメモリを備える。我々は、このようなことは技術の本質であることを理解しており、繰り返して言うと、図3は、本発明の1つまたは複数の実施形態に関して使用することができる例示的なコンピューティングデバイスを単に例示しているにすぎない。すべて図3の範囲内にあるような「ワークステーション」、「サーバ」、「ラップトップ」、「ハンドヘルドデバイス」などのカテゴリと、「コンピューティングデバイス」の参照との区別はなされない。
【0074】
コンピューティングデバイス300は、典型的には、様々なコンピュータ可読媒体を備える。例えば、限定はしないが、コンピュータ可読媒体は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、電子的消去可能プログラム可能読み取り専用メモリ(EEPROM)、フラッシュメモリまたはその他のメモリ技術、CDROM、デジタル多目的ディスク(DVD)またはその他の光またはホログラフィック媒体、磁気カセット、磁気テープ、磁気ディスク記憶装置またはその他の磁気記憶装置デバイス、搬送波、または所望の情報を符号化し、コンピューティングデバイス300によりアクセスするために使用することができるその他の媒体を含むことができる。
【0075】
メモリ312は、揮発性および/または不揮発性メモリの形態のコンピュータ記憶媒体を含む。メモリは、取り外し可能、取り外し不可能、またはその組合せとすることができる。例示的なハードウェアデバイスは、ソリッドステートメモリ、ハードドライブ、光ディスクドライブなどを含む。コンピューティングデバイス300は、メモリ312またはI/Oコンポーネント320などの様々な要素からデータを読み取る1つまたは複数のプロセッサを含む。(複数の)提示コンポーネント316は、ユーザまたは他のデバイスにデータ指示を送る。例示的な提示コンポーネントは、表示デバイス、スピーカー、印刷コンポーネント、振動コンポーネントなどを含む。I/Oポート318を使用することで、コンピューティングデバイス300は、I/Oコンポーネント320を含む他のデバイスに論理的に結合することができ、一部は組み込みにすることもできる。例示的なコンポーネントは、マイク、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナ、プリンタ、無線デバイスなどを含む。
【0076】
示されている様々なコンポーネント、さらには、図に示されていないコンポーネントの多くの異なる配列は、本発明の精神および範囲から逸脱することなく可能である。本発明の実施形態は、制限するのではなく、例示的であることを意図して説明されている。範囲から逸脱しない他の実施形態も、当業者には明らかであろう。当業者であれば、本発明の範囲から逸脱することなく前述の改善を実装する代替手段を開発することができる。
【0077】
いくつかの特徴および部分的組合せは、有用であり、他の特徴および部分的組合せを参照せずに使用することができ、特許請求の範囲内にあると考えられる。様々な図に示されているすべてのステップが、説明されている特定の順序で実行される必要はない。
【図面の簡単な説明】
【0078】
【図1】本発明の例示的な一実施形態を示すブロック図である。
【図1A】本発明の例示的な一実施形態による例示的な代替クライアントUIシェルを示す図である。
【図2】本発明の例示的な一実施形態のステップを例示する流れ図である。
【図3】本発明の一実施形態を実施するのに好適な例示的な動作環境の図である。

【特許請求の範囲】
【請求項1】
サービス提供UIS(116)と連携する提示ユーザインターフェースシェル(UIS)(114)のコンポーネントを提示する方法を容易にする1つまたは複数のコンピュータ可読媒体上に具現化される1つまたは複数のアプリケーションプログラムインターフェース(「API」と総称する)(112)の一組のアプリケーションプログラムインターフェースであって、前記方法は、
完了すべき1つまたは複数のタスクを示すデータを受信するステップと、
前記1つまたは複数のタスクの前記完了を調整するステップと、
制御権を前記提示UIS(116)に返却するステップと
を備えることを特徴とするAPI。
【請求項2】
調整するステップは、
前記サービス提供UIS(116)に結合される1つまたは複数のアプリケーション(124)に一組のコマンドを発行するステップと、
前記一組のコマンドを発行することに関連して1つまたは複数のアプリケーション(124)から返却データを受信するステップと
を含むことを特徴とする請求項1に記載のAPI(112)。
【請求項3】
前記1つまたは複数のタスクは、
ソフトウェアアプリケーション(124)から返却された返却データを処理してユーザへ前記返却データに基づいて提示を描写するステップと、
前記提示UIS(114)が前記サービス提供UIS(116)に命令してアプリケーションを起動させることを可能にするステップと、
前記提示UIS(114)がアプリケーションへの参照を指定することを可能にするステップと、
前記提示UIS(114)が環境パラメータを指定することを可能にするステップと、
前記サービス提供UIS(116)の態様を制御するステップと、
前記クライアントUISへの追加API用のコールバックルーチンを容易にするステップと、
前記サービス提供UIS(116)と互換性のあるアプリケーションを列挙するステップと、
前記互換性のあるアプリケーションに関連付けられる1つまたは複数の属性に基づいて前記互換性のあるアプリケーションをフィルタリングするステップと、
前記提示UIS(114)が前記サービス提供UIS(116)の機能的態様を補う方法を提供するステップと、
前記サービス提供UIS(116)と前記提示UIS(114)との間の1つまたは複数のシステムリソースの使用をネゴシエートするステップと、
前記提示UIS(114)の提示変更が生じるときにメディア・エクスペリエンスの持続的提示を提供するステップと、
アプリケーション起動ルーティングに関連付けられている初回実行エクスペリエンス(first−run experience)を容易にするステップ、
からの少なくとも1つのセクションを含むことを特徴とする請求項2に記載のAPI(112)。
【請求項4】
前記提示UIS(114)がアプリケーションへの参照を指定することを可能にするステップは、前記アプリケーションのロケーションを指定することを含み、
前記環境パラメータは、ウィンドウを最小化するか、最大化するか、モーダルか、サイズ変更可能か、または与えられたサイズにするかどうかを含むウィンドウモード属性、オブジェクトを提示する画面ロケーション、のうちの1つまたは複数を含むことを特徴とする請求項3に記載のAPI(112)。
【請求項5】
前記サービス提供UIS(116)の態様を制御するステップは、アイテムをサイズ変更すること、アイテムの視覚的属性を変更すること、および/またはURLを含む代替参照を指定することを含むことを特徴とする請求項3に記載のAPI(112)。
【請求項6】
1つまたは複数の属性に基づいて前記互換性のあるアプリケーションをフィルタリングするステップは、他のリソースに対する依存関係に基づいて前記アプリケーションをフィルタリングすることを含み、前記他のリソースは周辺機器デバイスまたは他のアプリケーションの1つまたは複数を有することを特徴とする請求項3に記載のAPI(112)。
【請求項7】
メディア・エクスペリエンスの持続的提示を提供するステップは、
スライドショーの提示と、
カメラフィードの提示を含むビデオの提示と、
オーディオの提示と、
データの提示と
のうちの1つまたは複数の持続を提供することを含むことを特徴とする請求項3に記載のAPI(112)。
【請求項8】
初回実行エクスペリエンスを容易にするステップは、
メディア・プログラミング・ガイドを初期化すること、
リソースデバイスを構成すること、
のうちの1つまたは複数を含むことを特徴とする請求項3に記載のAPI(112)。
【請求項9】
コンピュータネットワーク上のデスティネーションと請求項1のAPI(112)との間の電子的通信を容易にするように構成されることを特徴とするコンピュータコンポーネント。
【請求項10】
前記電子的通信は、ダウンロードを含み、前記ネットワークは、インターネットの少なくとも一部を含むことを特徴とする請求項9に記載のコンピュータコンポーネント。
【請求項11】
第2のユーザインターフェースシェル(UIS)(116)で第1のグラフィカルユーザインターフェースシェル(UIS)(114)をサービスするステップを含む方法を実行するコンピュータ使用可能命令を有することを特徴とする1つまたは複数のコンピュータ可読媒体。
【請求項12】
前記第1のグラフィカルUIS(114)は、クライアントUISであり、
前記第2のUISは、サービス提供UIS(116)であり、
前記第1のUIS(114)は、前記第2のUIS(116)によるサービスを受け、
サービスするステップは、
(1)前記クライアントUISの提示を容易にするステップと、
(2)前記クライアントUISに従って入力を受信し、前記入力は1つまたは複数の所望のタスクが完了されるべきであることを示すステップと、
(3)前記サービス提供UIS(116)と相互にやり取りすることにより前記1つまたは複数の所望のタスクを完了するステップと
を含むことを特徴とする請求項11に記載の媒体。
【請求項13】
完了するステップは、前記受信した入力に基づいて1つまたは複数のコマンドを前記サービス提供UIS(116)に伝達するステップを含むことを特徴とする請求項12に記載の媒体。
【請求項14】
前記伝達するステップは、前記受信した入力に基づくデータを前記サービス提供UIS(116)に渡すステップを含むことを特徴とする請求項13に記載の媒体。
【請求項15】
さらに、
前記サービス提供UIS(116)から返されるデータを受信するステップと、
前記受信したデータに基づいて情報を提示するステップと
を含むことを特徴とする請求項12に記載の媒体。
【請求項16】
請求項11のコンピュータ使用可能命令のコピーを第1のロケーションから第2のロケーションへ伝達することを容易にすることを特徴とするシステム。
【請求項17】
1つまたは複数のコンピューティングデバイスとの相互のやり取りを容易にする方法を実行するように具現化されたコンピュータ使用可能命令を有する1つまたは複数のコンピュータ使用可能媒体であって、前記方法はサービス提供UIS(116)に関連してクライアントユーザインターフェースシェル(UIS)(114)の提示を提供するステップを備えることを特徴とするコンピュータ使用可能媒体。
【請求項18】
サービスするステップは、
前記クライアントUIS(114)を前記コンピューティングデバイス(118)のうちの少なくとも1つに提示するステップと、
前記クライアントUIS(114)に従って入力を受信するステップと、
前記クライアントUIS(114)が前記サービス提供UIS(116)と相互にやり取りすることにより1つまたは複数のタスクを完了するステップと
を含むことを特徴とする請求項17に記載の媒体。
【請求項19】
1つまたは複数のタスクを完了するステップは、データを前記クライアントUIS(114)から前記サービス提供UIS(116)に伝達するステップを含み、前記クライアントUIS(114)は前記データを参照し、前記サービス提供UIS(116)に結合された一組のリソースと通信して前記1つまたは複数のタスクを完了することを特徴とする請求項18に記載の媒体。
【請求項20】
前記クライアントUIS(114)は、第1のデバイス上に常駐し、前記第2のデバイス上に常駐する前記サービス提供UIS(116)によるサービスを受け、前記第1のデバイスは、ネットワークにより前記第2のデバイスに結合されることを特徴とする請求項18に記載の媒体。

【図1】
image rotate

【図1A】
image rotate

【図2】
image rotate

【図3】
image rotate


【公表番号】特表2009−505235(P2009−505235A)
【公表日】平成21年2月5日(2009.2.5)
【国際特許分類】
【出願番号】特願2008−526213(P2008−526213)
【出願日】平成18年8月9日(2006.8.9)
【国際出願番号】PCT/US2006/031292
【国際公開番号】WO2007/021884
【国際公開日】平成19年2月22日(2007.2.22)
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】