(57)【特許請求の範囲】
【請求項１】
コンピューティング環境における方法であって、
ホストアプリケーションにおいて他のプラグインをインスタンス化する分離の境界を表す前記ホストアプリケーションに対応するデータ構造にタグエレメントを設けるステップと、
前記ホストアプリケーションをブラウザにロードするステップであって、前記ホストアプリケーションはプラグインを含む、ステップと、
前記ブラウザにおいて実行されている前記ホストアプリケーションにおいて、被ホストアプリケーションをホストするステップであって、プログラムにより分離する方法で前記ブラウザから発見できないようにされた前記他のプラグインをインスタンス化して、前記被ホストアプリケーションを前記他のプラグインにロードすることを含む、ステップと、
前記被ホストアプリケーションが前記ブラウザのデータ、他の被ホストアプリケーションのデータ、及び前記ホストアプリケーションからのデータにアクセスするのを防ぐステップと
を含むことを特徴とする方法。
【請求項２】
前記タグエレメントは、前記ホストアプリケーションが前記被ホストアプリケーションと通信できるようにする一以上のアプリケーションプログラミングインタフェースを有する、請求項１に記載の方法。
【請求項３】
前記被ホストアプリケーションがデータにアクセスすることを防ぐステップは、
前記被ホストアプリケーションが前記タグエレメントを介して前記ホストアプリケーションにアウトプットを提供するよう限定するステップと、
前記被ホストアプリケーションの、前記ホストアプリケーションのデータ構造及び前記ブラウザのドメインオブジェクトモデルへのアクセスを無効にするステップと
を含む、請求項１に記載の方法。
【請求項４】
前記ホストアプリケーションに対応するユーザーインターフェースの一部がもはやレンダリングされないことを前記タグエレメントが示すことに応じて、前記被ホストアプリケーションを破壊するステップをさらに含む、請求項１に記載の方法。
【請求項５】
前記タグエレメントは前記被ホストアプリケーションのアウトプットを処理する、請求項１に記載の方法。
【請求項６】
前記ホストアプリケーションからのアウトプットを前記被ホストアプリケーションからのアウトプットと合成するステップをさらに含む、請求項１に記載の方法。
【請求項７】
前記ホストアプリケーションから前記被ホストアプリケーションへ変数を前記タグエレメントを介して通信するステップ、または前記被ホストアプリケーションが電力の消費を制御することを試みる行為を制御するステップ、または前記ホストアプリケーションから前記被ホストアプリケーションへ変数を前記タグエレメントを介して通信するステップおよび前記被ホストアプリケーションが電力の消費を制御することを試みる行為を制御するステップの双方をさらに含む、請求項１に記載の方法。
【請求項８】
前記ホストアプリケーションから前記被ホストアプリケーションへ前記変数を通信するステップは、前記被ホストアプリケーションが少なくとも１の関係する広告を選択できる情報を提供するステップを含む、請求項７に記載の方法。
【請求項９】
前記被ホストアプリケーションが少なくとも１の特権とされた操作を実行することを許可するステップをさらに含む、請求項１に記載の方法。
【請求項１０】
コンピューティング環境におけるシステムであって、
少なくとも１のプロセッサと、
前記少なくとも１のプロセッサに通信可能に接続されたメモリと、
前記少なくとも１のプロセッサにより実行されブラウザにおいて実行される第１のプラグインと、
前記第１のプラグインに関連するデータ構造であって、前記データ構造はエレメントのツリーを含み、前記エレメントのツリーは前記第１のプラグインのユーザーインターフェースのエレメントを含むデータ構造と、
プログラムにより分離する方法で前記ブラウザから発見できないようにされた前記第１のプラグインによりインスタンスが作成された第２のプラグインであって、ブラウザのエレメント、他のブラウザ被ホストアプリケーションエレメント、及び前記第１のプラグインのエレメントへのアクセスが無効にされ、前記第２のプラグインはエレメントのツリーにおけるホストエレメントに対応し、前記ホストエレメントは前記分離の境界を画定し、前記第２のプラグインにロードされた被ホストアプリケーションに関連する、第２のプラグインと
を備えるシステム。
【請求項１１】
前記第１のプラグインはｅｘｔｅｎｓｉｂｌｅ  ａｐｐｌｉｃａｔｉｏｎ  ｍａｒｋｕｐ  ｌａｕｇｕａｇｅ（ＸＡＭＬ）コードであり、前記第２のプラグインは、ＸＡＭＬコードを構文解析している間に前記第２のプラグインに対応する前記ホストエレメントが検出されるときに、インスタンスが作成される、請求項１０に記載のシステム。
【請求項１２】
前記第１のプラグインに関連する１またはそれより多くの非公開のａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｇｒａｍｉｎｇ  ｉｎｔｅｒｆａｃｅ（ＡＰＩｓ）をさらに備え、前記第２のプラグインは前記第１のプラグインによりインスタンスを作成され、前記非公開のＡＰＩを介して前記第１のプラグインと通信する、請求項１０に記載のシステム。
【請求項１３】
コンピュータにより実行されると、前記コンピュータに、
ブラウザにおいて、第１のアプリケーションを第１のプラグインとして実行するステップであって、前記第１のアプリケーションのエレメントを示すエレメントツリーを作成するステップを含むステップと、
前記第１のプラグイン内に第２のアプリケーションをホストするステップであって、前記エレメントツリー内の前記第１のプラグインのためのホストエレメントを含むステップと、プログラムにより分離する方法で前記ブラウザから発見できないようにされた、前記ブラウザのデータ、前記第１のプラグインのデータ、及び他のブラウザ被ホストアプリケーションエレメントのデータへのアクセスが無効とされた第２のプラグインのインスタンスを作成するステップと、前記第２のプラグインにおいて実行するための第２のアプリケーションをロードするステップであって、前記第２のアプリケーションは前記第１のアプリケーションに前記ホストエレメントを介してユーザーインターフェースエレメントを提供するステップとを含む、ステップと、
前記第１のアプリケーションのユーザーインターフェースエレメントと前記第２のアプリケーションのユーザーインターフェースエレメントとを処理することにより目に見えるアウトプットをレンダリングするステップと
を実行させるコンピュータプログラム。
【請求項１４】
前記第２のアプリケーションは、広告に対応しており、前記コンピュータにより実行されると、前記コンピュータに、前記ホストエレメントを介して前記第２のアプリケーションの前記ブラウザのページコンテンツに対応する１または複数のキーワードを提供するステップをさらに実行させる、請求項１３に記載のコンピュータプログラム。
【請求項１５】
前記コンピュータにより実行されると、前記コンピュータに、前記第２のアプリケーションがウェブサイトのコンテンツを表示するためのブラウザのウィンドウを開くことを許可するステップをさらに実行させる、請求項１３に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ブラウザにおいて実行しているアプリケーションが他のアプリケーションをホストするための技術に関する。
【背景技術】
【０００２】
現代のブラウザはプラグインを許可し、何らかの要求された機能を提供するためにホスティングブラウザ／アプリケーションと相互作用するホストされたソフトウェアコードを一般的に含んでいる。このようなプラグインのひとつは、本件出願人の発売するシルバーライト（商標）で、アニメーション、ベクターグラフィックおよび／または再生装置で使用できる媒体（例えばビデオ・オーディオ）を含むことが多い高価なウェブアプリケーションの開発およびホスティングを許可するプラットフォームを、提供するものである。プラグインは、第三者のアプリケーションをホストできる。
【０００３】
一般的に、これは現代のアプリケーションの開発の重要な機能、すなわちコンポーネント化と結び付けられる。コンポーネント化の原因となっている一般的な考えは、大きなアプリケーションを分割して、より大きなタスクのより小さい部分を実行し、再利用可能であり、周知のインターフェースを有する、より小さなコンポーネントにすることである。外部関係者（例えば、第二者または第三者）が既存のアプリケーションのためのコンポーネントを作成する能力は、コンポーネント化により生じ、例えば現代のウェブに基づいたこの概念の具体物はウェブマッシュアップである。
【０００４】
しかしプラグインによりホストされたアプリケーション等のアプリケーションにおいて、当事者以外のコンポーネントが使用されたとき、コンポーネントとアプリケーションの間の信頼の限度が重要になってくる。ホスティングアプリケーションが特別にこのために設計され期待された場合は別として、コンポーネントは、ユーザーのインターフェース（ＵＩ）コードの外観および機能を変更し、またはアプリケーションデータを監視する等を可能とすべきでない。
【発明の概要】
【０００５】
この概要は、「発明を実施するための形態」においてさらに詳細に説明された簡潔な様式に代表される概念の選択を紹介するために提供される。この概要は、「特許請求の範囲」に記載の主題の重要な特徴または本質的な特徴を識別することを意図するものではなく、「特許請求の範囲」に記載の主題の範囲を限定する任意の方法において使用されることを意図するものでもない。
【０００６】
簡潔にいうと、本明細書で説明されたこの主題の様々な態様は、ブラウザにおいて実行されている１のアプリケーションがホストされたアプリケーションがホストアプリケーションデータまたは他のホストされたアプリケーションのデータにアクセスするのを防ぐ方法により、他のアプリケーションをホストできる技術へと向けられている。一態様において、ホストアプリケーションは、ブラウザに隠された他方のプラグインのインスタンスを作成するブラウザのプラグイン（例えば、本件出願人の発売するシルバーライト（商標））アプリケーションであり、ブラウザ／ホストされたアプリケーションデータ（例えば、エレメント）または他のアプリケーションデータへのアクセスが無効にされた状態で他のプラグインのインスタンスを作成することによりホストされたアプリケーションが、データにアクセスするのを防ぐ。
【０００７】
一態様において、タグエレメント（tag element）は、ホストアプリケーションに関連するコード（例えばＸＡＭＬ）内においてホストされたアプリケーションを識別する。ホストエレメント（host element）は、ホストされたアプリケーションを示すためのホストアプリケーションのエレメントツリー（element tree）を追加する。タグエレメントは、ホストされたアプリケーションへのレンダリングの範囲を特定することができる。ホストされたアプリケーションのコンテンツは、ホストアプリケーションからのコンテンツと連動して（例えば、合成されて）、レンダリングされる。
【０００８】
１の態様において、ホストされたアプリケーションは、広告となりうる。ホストアプリケーションはページコンテンツに対応しているもの等のキーワードをホストされたアプリケーションに提供し、これによりホストされたアプリケーションは関連する広告を選択することが可能となる。ホストされたアプリケーションは、ホストされたアプリケーションがブラウザのウィンドウを開いてディスプレイのウェブサイトのコンテンツ上に表示することを許可する等のいくつかの特権を与えられた操作（例えば、ホストされたアプリケーションのレンダリングの範囲内でユーザーが広告をクリックするとウェブサイトを提示する）を実行することを許可されうる。
【０００９】
他の利点は、図面と連動して、以下の詳細な説明から表されるようになる。
【図面の簡単な説明】
【００１０】
本発明は、例として図示され、同様の参照する番号が類似のエレメントを示すような添付する図面に限定されない。
【図１】ホスト（ブラウザプラグイン）アプリケーションによりホストされたアプリケーションを分離するコンポーネントの例を示すブロック図である。
【図２】ホストされたアプリケーションの分離を行うステップの例を示すフロー図である。
【図３】ホストアプリケーションと分離されたプラグインアプリケーションとの間の追加の通信のコンポーネントの例を示すブロック図である。
【図４】本発明の様々な態様が合併されるコンピューティング環境の例を示す図である。
【発明を実施するための形態】
【００１１】
本明細書で説明される技術のさまざまな態様は、一般的に、分離された方法において第１のアプリケーション（例として、ブラウザのプラグイン等）が第２の（典型的に信頼性がない、第三者の）アプリケーションをホストする分離のモデルへ向けられている。一般的にこれは、メモリ内の個別のプラグインインスタンスをインスタンス化して第２のアプリケーションを分割することにより達成され、プラグインインスタンスはウェブブラウザにとって未知である。同時に、例えば、目に見えるアウトプットがホストするアプリケーションの目に見えるアウトプットに沿ってレンダリングされるため、第２のアプリケーション（例えば、広告）は、コンピュータユーザーにとってホストされたアプリケーションの一部として実行されるようにみえる。しかし、理解されるように、ホスティングアプリケーションが何らかの情報を提供することを要求しない限り、ホストされたアプリケーションはホスティングアプリケーションまたはウェブブラウザに関連する情報へのアクセスを有さない。
【００１２】
本件出願人の発売するシルバーライト（商標）（クロスプラットフォーム、クロスブラウザのプラグイン）は、ホストするアプリケーションの例として使用されるが、ここで説明されるいかなる例も制限されないものである。そういうわけで、本発明は、どのような特定の実施例、態様、概念、構造、機能またはここに示された例にも限定されない。むしろ実施例、態様、概念、構成、機能またはここに説明された例のいずれも限定的なものでなく、本発明は、一般的にコンピューティングおよびホスティングアプリケーションの利益および利点を提供する様々な方法を使用できる。
【００１３】
図１は、ここに説明されるものとしてアプリケーションの分離に関連した様々な態様を示すものである。一般的に、ブラウザ１０２は、本件出願人の発売するシルバーライト（商標）のプラグイン等のホストアプリケーション１０４とともにロードされる。一実装において、ホストアプリケーション１０４は、ＸＡＭＬ（拡張可能なアプリケーションのマークアップ言語）に書き込まれたもの等の、ユーザーインターフェースのアプリケーションコード１０６に対応し、アプリケーションコード１０６はパーサ１０８によりツリー１１０に対応する様々なエレメントへ構文解析される。周知のように、これらのエレメントはブラウザのページの目に見えるアウトプットへのレンダリングへと進む。
【００１４】
一実装において、第三者の広告等のアプリケーション１１１は、隠された（分割され、ブラウザにおいて発見できない）プラグイン１１２の一部として、ブラウザ１０２およびホストするアプリケーションデータから隠されたプラグイン１１２をプログラムにより分離する方法で、ホストアプリケーション１０４によりホストされるが、それにもかかわらず、ホストされたアプリケーション１１１が、ホストアプリケーションのレンダリング、インプットおよびレイアウトに参加することを許可する。レンダリング、インプットおよびレイアウトは、隠されたプラグイン１１２により管理されるため、例えば、目に見えるアウトプットは、ホストされたアプリケーションのアウトプットに確保されるユーザーインターフェースの範囲に限定される。隠されたプラグイン１１２が他方のシルバーライト（商標）のプラグイン、すなわちホストシルバーライトのプラグインにより（ブラウザに知られることなく）非公式で生成された他方のインスタンスとなりうることに注意されたい。さらに、他のプラグインのタイプは、ＨＴＭＬブラウザとのいかなる直接通信も行わないようにインスタンス化または他の方法で構成するために使用することができ、例えばプラグインは、ブラウザのＤＯＭ（ドキュメントオブジェクトモデル）にアクセスしないようにインスタンス化されることに注意されたい。
【００１５】
この目的を達成するために、実装の一例において、ホストされたアプリケーションのソースを識別し、ホストされた（分離された）アプリケーション１１１をロードする隠されたプラグイン１１２をインスタンス化する分離の境界を表示するタグエレメントが（例えばＸＡＭＬアプリケーションコード１０６において）提供される。
＜Canvas＞＜!−part  of  the  host  application--＞
＜XapHost  Source＝”http://www.advertisements.com/ad.xap”Height＝”300”
Width＝”350”/＞＜!−the  isolation  boundary--＞
＜/Canvas＞
【００１６】
タグエレメントは、ＸａｐＨｏｓｔのエレメント１１４により図１において表される。数ある操作の中で、ＸａｐＨｏｓｔのエレメント１１４はメモリ内、つまりブラウザ１０２から発見できない記憶場所において、隠されたプラグイン１１２のインスタンス化および初期化を担う。これはＡＰＩまたはそれと同様のものを通して達成されることが可能である。ホストされたアプリケーション１１１は、隠されたプラグイン１１２を分離するプロキシとして動作するＸａｐＨｏｓｔのエレメント１１４を介さなければホストアプリケーション１０４のツリー１１０に参加しない。たとえばホストアプリケーション１１１は、そのアプリケーションのルートノードに対応しているツリーを自身の最上位のノード以外、走査することができない。それはＸａｐＨｏｓｔのエレメントへのアクセスを有しておらず、ＸａｐＨｏｓｔのエレメントはホスティングアプリケーションのツリーの中に存在することに注意されたい。代わりに、ホストされたアプリケーション１１１はＸａｐＨｏｓｔのエレメント１１４を介してレンダリングするためのアウトプット１１６を提供することにのみ限定される。（一方で、ＸａｐＨｏｓｔのエレメント１１４は初期化変数等の追加のデータを提供する、および／または図３を参照して以下に説明されるようないくつかの特権をホストされたアプリケーション１１１に許可する。）これおよびＸａｐＨｏｓｔのエレメント１１４から隠されたプラグイン１１２／ホストされたアプリケーション１１１に通信された他の任意のデータは、インプット１１７として図１において表現される。
【００１７】
図２の例となるステップを使用して概略的に示すように、ＸＡＭＬのアプリケーションコード１０６が構文解析されたときまたはＸａｐＨｏｓｔのエレメント１１４がプログラムでツリー１１０に追加されたとき（ステップ２０２）、ステップ２０４および２０６においてＸａｐＨｏｓｔのエレメント１１４は隠されたプラグイン１１２を初期化し「ソース」属性により特定された対応するホストされたアプリケーション１１１（例えば、ＸＡＰ）をロードする（上述したＸＡＭＬの言語の例において、アプリケーション１１１はｈｔｔｐ:／／ａｄｖｅｒｔｉｓｅｍｅｎｔｓ.ｃｏｍ／ａｄ.ｘａｐとして特定される）。ホストされたアプリケーション１１１は、ブラウザのＨＴＭＬドメインオブジェクトモデルへのアクセスを有しておらず（例えば、EnableHtmlAccessプロパティが偽に設定される）、例えば（共通の言語ランタイム、またはＣＬＲ AppDomein）グローバルの静的な変数等へのそれ自身のアクセスにより、それ自身のアプリケーションのドメインにロードされる。シルバーライト（商標）が、それ自身のミニＣＬＲ１１８を含んでいることに注意されたい。ドメインオブジェクトモデル（DomBridge）のアクセスなしに、ホストされたアプリケーション１１１はページそれ自体または他のプラグインを含む、ページ上の他の任意のコンテンツへのアクセスを有さない。
【００１８】
ステップ２０８および２１０によって図２にさらに示すように、を介して、隠されたプラグイン１１２のインスタンス化および初期化、およびアプリケーション１１１のロードに加えて、ＸａｐＨｏｓｔのエレメント１１４は、ホストするアプリケーションからホストされたアプリケーションへのインプットおよびレイアウトの通知を指示する。さらに、ＸａｐＨｏｓｔのエレメント１１４は、ホストされたアプリケーション１１１のアウトプットを処理し、その結果ホスティングアプリケーションのプラグインによりそのアウトプットを構成できるようにする（音声および／または触覚等の他の任意のアウトプットが同様に混合されることに注意されたい）。ステップ２１２は、適切な時間、例えばシャットダウンにおいて、またはＸａｐＨｏｓｔのエレメント１１４における対応する参照カウントが０になったとき（例えば、ユーザーのインターフェースの部分がもはやレンダリングされなくなったとき）に、ホストされたアプリケーションの破壊を表現する。
【００１９】
一態様において、一般的に図３で示されるようにＸａｐＨｏｓｔのエレメント１１４は、ホストアプリケーション１０４に、例えば初期化変数３３２を渡す等、ホストされたアプリケーション１１１との通信を許可する１または複数のインターフェース（例えば、上述の他の非公開のＡＰＩの中のＡＰＩ３３０）を含むことができる。例えば広告のシナリオにおいて、初期化変数は、ホストしているページに存在するキーワードの集合体を含んでおり、ホストするページに、広告のアプリケーションが１または複数のキーワードに対応する関連の広告を供給できる。
【００２０】
また一般的に図３において示される他方の態様においても、ＡＰＩ３３０を介して、ＸａｐＨｏｓｔのエレメント１１４はホストされたアプリケーションがある特権を与えられた操作を実行すること（または、適切な呼３３４において、その代わりに操作を実行すること）を許可する。ひとつの例は、クリックされた広告に対するウェブサイトを提示する等、ユーザーの起動する行為に応答して新しいブラウザのウィンドウを開くことである。
【００２１】
他方の利点は電力の消費を制御する能力である。例えば、広告は現代のコンピュータ使用において電力消費の大きな源となりうる。プラグインのホスティングモデル（例えば、ＸａｐＨｏｓｔ）により、省電力モードは、アニメーションや他の電力を消費する動作を無効にすること等により、電力を消費しないようにできる。
【００２２】
操作環境の例
図４は、図１から３の例を実装することができる適切なコンピューティングおよびネットワーク環境４００の例を示している。コンピューティングシステム環境４００は適切なコンピューティング環境の一例に過ぎず、本発明の使用および機能の範囲についてのいかなる限界をも提案することを意図していない。コンピューティング環境４００は、操作環境４００の一例において示されたコンポーネントの一つまたは組み合わせに関連するいかなる従属および要求を有しているとしても解釈されるべきでない。
【００２３】
本発明は、多くの他の一般的な目的または特定の目的のコンピューティングシステム環境または構成おいて操作可能である。本発明と共に使用するために適した周知のコンピューティングシステム、環境、および／または構成の例は、パーソナルコンピュータ、サーバーコンピュータ、携帯またはラップトップ機器、タブレット機器、マルチプロセッサシステム、マイクロプロセッサに基づくシステム、セットトップボックス、プログラム可能な家庭用電化機器、ネットワークＰＣ、マイクロコンピュータ、メインフレームコンピュータ、上記システムまたはデバイスの任意のものを含む分散コンピューティング環境、またはそれと同様のものを含むが、それに限定されない。
【００２４】
本発明は、コンピュータにより実施されるプログラムモジュール等のコンピュータ実行可能命令の一般的なコンテキストにおいて説明されうる。一般的に、プログラムモジュールは、特定のタスクを実行するか、特定の理論上のデータタイプを実装するルーティン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。本発明はまた、コミュニケーションネットワークを介してリンクされた遠隔処理装置によりタスクが実行される分離されたコンピューティング環境においても実現されうる。分配されたコンピューティング環境において、プログラムモジュールは、ローカルおよび／またはメモリ記録装置を含むリモートコンピュータの記録媒体に配置されうる。
【００２５】
図４を参照して、本発明の様々な態様を実装するための例示のシステムは、コンピュータ４１０の形式における一般的な目的のコンピューティングデバイスを含むことができる。コンピュータ４１０のコンポーネントは、処理ユニット４２０、システムメモリ４３０およびシステムメモリを含む様々なシステムコンポーネントと処理ユニット４２０を結合するシステムバス４２１を含むことができるがそれに限定されない。システムバス４２１は、メモリバスまたは様々なバスアーキテクチャーの任意のものを使用するメモリコントローラ、周辺機器バスおよびローカルバスを含むバス構造のいくつかのタイプの任意のものである。例として、そのようなアーキテクチャーはＩＳＡ（Industry Standard Architecture）バス、ＭＣＡ（Micro Channel Architecture）バス、ＥＩＳＡ（Enhanced ＩＳＡ）バス、ＶＥＳＡ（Video Electronics Standards Association）ローカルバスおよびメザニンバスとしても知られているＰＣＩ（Peripheral Component Interconnect）バスを含むがそれに限定されない。
【００２６】
コンピュータ４１０は典型的に様々なコンピュータ可読媒体を含んでいる。コンピュータ可読媒体は、コンピュータ４１０によりアクセスされることができる任意の利用可能な媒体とすることができ、揮発性および不揮発性の媒体双方、および固定式および取り外し可能な媒体双方を含む。例として、コンピュータ可読媒体は、コンピュータ記録媒体および通信媒体を含むがそれに限定されない。コンピュータ記録媒体は、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータ等の情報の記録の方法および技術において実装される揮発性および不揮発性、取り外し可能または固定式の媒体を含む。コンピュータ記録媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（digital versatile disks）または他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気ストレージデバイス、または要求される情報を記録するのに使用しコンピュータ４１０によりアクセスできる他の媒体を含むがそれに限定されない。通信媒体は、典型的に搬送波や他の伝達機構等の変調されたデータ信号におけるコンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータにより具体化され、任意の配信媒体の情報を含む。「変調されたデータ信号」という用語は、１またはそれ以上の特徴の組を有し、信号内に情報をエンコードするような方法により変更された信号を意味する。例として、通信媒体は、有線ネットワークまたは直接の配線等の有線媒体、および音響、ＲＦ、赤外線または他の無線媒体等の無線媒体を含むがそれに限定されない。上記の任意の組み合わせはまたコンピュータ可読媒体の範囲内に含まれる。
【００２７】
システムメモリ４３０は、ＲＯＭ４３１またはＲＡＭ４３２等の揮発性および／または不揮発性メモリの形式においてコンピュータ記録媒体を含む。ＢＩＯＳ（基本入出力システム）４３３は、起動中等のコンピュータ４１０内のエレメントの間の情報の転送を助ける基本のルーティンを含んでおり、典型的にＲＯＭ４３１に記録される。ＲＡＭ４３２は、典型的に処理ユニット４２０によりすぐにアクセス可能なおよび／または現在操作さていれるデータおよび／またはプログラムモジュールを含んでいる。例として、図４はオペレーティングシステム４３４、アプリケーションプログラム４３５、他のプログラムモジュール４３６およびプログラムデータ４３７を図示しているが、これらに限定されない。
【００２８】
コンピュータ４１０はまた、他の取り外し可能／固定式の、揮発性／不揮発性のコンピュータ記録媒体を含んでいる。単なる例として、図４は、固定式、不揮発性の磁気媒体から読み込む、または書き込むハードディスクドライブ４４１、取り外し可能、不揮発性の磁気ディスク４５２から読み込む、または書き込む磁気ディスクドライブ４５１、およびＣＤ−ＲＯＭまたは他の光媒体等の取り外し可能、不揮発性の光ディスク４５６から読み込む、または書き込む光ディスクドライブ４５５のみ図示している。他の例示の操作環境において使用されることができる取り外し可能／固定式の、揮発性／不揮発性のコンピュータ記録媒体は、磁気テープカセット、フラッシュメモリカード、ＤＶＤ、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭ等を含むがそれに限定されない。ハードディスクドライブ４４１は、インターフェース４４０等の固定式メモリのインターフェースを通して典型的にシステムバス４２１に接続され、磁気ディスクドライブ４５１および光ディスクドライブ４５５は、インターフェース４５０等の取り外し可能なメモリのインターフェースによりシステムバス４２１に典型的に接続される。
【００２９】
ドライブおよびそれらに関連するコンピュータ記録媒体は、上述され図４で説明されており、コンピュータ可読命令、データ構造、プログラムモジュールおよびコンピュータ４１０の他のデータのストレージを提供する。例えば図４において、ハードディスクドライブ４４１はオペレーティングシステム４４４、アプリケーションプログラム４４５、他のプログラムモジュール４４６およびプログラムデータ４４７の記録として図示されている。これらのコンポーネントはオペレーティングシステム４３４、アプリケーションプログラム４３５、他のプログラムモジュール４３６およびプログラムデータ４３７と同一または異なるものにできることに注意されたい。オペレーティングシステム４４４、アプリケーションプログラム４４５、他のプログラムモジュール４４６、プログラムデータ４４７は、少なくとも異なるコピーであることを示すため、ここでは異なる番号が与えられる。ユーザーは、タブレットまたは電子デジタイザー４６４、マイクロホン４６３、キーボード４６２およびポインティングデバイス４４６等の一般的にマウス、トラックボールまたはタッチパッドと称されるインプットデバイスを通してコンピュータ４１０にコマンドおよび情報を入力できる。図４に示されていない他のインプットデバイスはジョイスティック、ゲームパッド、衛星アンテナ、スキャナ、またはそれと同様のものを含んでもよい。これらおよび他のインプットデバイスはシステムバスと接続されたユーザーインプットインターフェース４６０を通してしばしば処理ユニット４２０に接続されるが、パラレルポート、ゲームポート、またはＵＳＢ等の他のインターフェースおよびバス構造によっても接続される。モニター４９１または他のタイプのディスプレイ装置はまた、ビデオインターフェース４９０等のインターフェースを通して、システムバス４２１と接続される。モニター４９１は、タッチスクリーンパネルまたはそれと同様のものと統合してもよい。モニターおよび／またはタッチスクリーンパネルはタブレット型パーソナルコンピュータのようにコンピューティングデバイス４１０を組み込んだ、筐体に物理的に結合することができることに注意されたい。加えて、コンピューティングデバイス４１０等のコンピュータはまた、周辺のアウトプットインターフェース４９４等を通して接続されうるスピーカー４９５およびプリンター４９６等の他の周辺のアウトプット機器を含むことができる。
【００３０】
コンピュータ４１０はネットワーク化された環境においてリモートコンピュータ４８０等の１または複数のリモートコンピュータへの理論接続を使用して動作しうる。リモートコンピュータ４８０はパーソナルコンピュータ、サーバー、ルータ、ネットワークＰＣ、ピアデバイスまたは他の一般的なネットワークノードとすることができ、典型的にコンピュータ４１０に関連して上述された多くのまたはすべてのエレメントを含むが、メモリ記録装置４８１だけが図４において図示されている。図４に描かれている理論接続は、１または複数のＬＡＮ（Local area network）４７１および１または複数のＷＡＮ（Wide area network）４７３を含むが、また、他のネットワークも含むことができる。そのようなネットワーク化環境はオフィス、企業規模のネットワーク、イントラネットおよびインターネットにおいて一般的である。
【００３１】
ＬＡＮのネットワーク化環境において使用する場合、コンピュータ４１０はネットワークインターフェースやアダプター４７０を通してＬＡＮ４７１に接続される。ＷＡＮのネットワーク化環境において使用する場合、コンピュータ４１０は典型的にモデム４７２またはインターネット等のＷＡＮ４７３を通した通信を構築するための他の手段を含む。モデム４７２は、内臓または外付けとすることができ、インプットインターフェース４６０または他の適切な機構を介してシステムバス４２１に接続できる。インターフェースやアンテナを含んでいるような無線ネットワークコンポーネント４７４は、アクセスポイントまたはピアコンピュータ等の適切な装置を通してＷＡＮまたはＬＡＮに結合されうる。ネットワーク化された環境において、コンピュータ４１０に関して描かれたプログラムモジュール、またはその一部は、リモートのメモリ記録装置に記録される。例として、図４は、リモートアプリケーションプログラム４８５をメモリデバイス４８１内に存在するものとして図示しているが、これに限定されない。示されているネットワーク接続は例示のものであり、コンピュータの間の通信リンクを確立する他の手段が使用されうることが理解できよう。
【００３２】
補助のサブシステム４９９（例えばコンテンツの補助ディスプレイ）は、コンピュータの主要部分が省電力状態にある場合でさえ、プログラムコンテンツ、システム状態および事象通知等のデータをユーザーに提供するよう許可するためにユーザーインターフェース４６０を介して接続される。補助のサブシステム４９９は、主処理装置４２０が省電力状態にある間にこれらのシステム間で通信することを許可するため、モデム４７２および／またはネットワークインターフェース４７０に接続される。
【００３３】
結論
本発明は様々な修正や構成の変更が可能であるが、本発明の特定の例示の実施形態が、図に示され、詳細に上述されてきた。しかし、本発明を開示された特定の形式へ限定することを意図しておらず、反対に、本発明の趣旨および範囲内に収まるすべての修正、構成の変更および等価物に及ぶように意図していることが理解できよう。
【図１】
0006026108.tif 000002
【図２】
0006026108.tif 000003
【図３】
0006026108.tif 000004
【図４】
0006026108.tif 000005