(57)【特許請求の範囲】
【請求項１】
互換性を容易化する方法であって、
アプリケーションに対して互換性を備えたライブラリーオペレーティングシステムを選択する選択ステップと、
前記アプリケーションに対して互換性を備えたライブラリーオペレーティングシステムに、ランタイムで前記アプリケーションを結合する結合ステップを含む、方法であって、
前記アプリケーションに対して互換性を備えたライブラリーオペレーティングシステムは、アプリケーションサービスを前記アプリケーションが使用するアドレス空間で実行し、それ以外のハードウェアサービスとユーザーサービスを実行するホストオペレーティングシステムの上で実行されるように構成されていることを特徴とする、方法。
【請求項２】
前記選択ステップが、前記アプリケーションに対して互換性を備えたライブラリーオペレーティングシステムをマニフェストファイルから決定するステップを含む、請求項１に記載の方法。
【請求項３】
前記アプリケーションに対して互換性を備えたライブラリーオペレーティングシステムをマニフェストファイルから決定するステップが、前記アプリケーションに対して互換性を備えたライブラリーオペレーティングシステムをマニフェストファイルから複数決定することを特徴とする、請求項２に記載の方法。
【請求項４】
前記選択ステップが、前記ホストオペレーティングシステムよりも新しいバージョンのライブラリーオペレーティングシステムを選択することを特徴とする、請求項１〜３のいずれか一項に記載の方法。
【請求項５】
前記選択ステップが、前記ホストオペレーティングシステムよりも古いバージョンのライブラリーオペレーティングシステムを選択することを特徴とする、請求項１〜３のいずれか一項に記載の方法。
【請求項６】
前記ホストオペレーティングシステムと１又は複数の前記ライブラリーオペレーティングシステムがパッケージ化されていることを特徴とする、請求項１〜５のいずれか一項に記載の方法。
【請求項７】
前記ライブラリーオペレーティングシステムを前記ホストオペレーティングシステムの更新プロセスの一部分として取得するステップを更に含む、請求項１〜６のいずれか一項に記載の方法。
【請求項８】
前記ライブラリーオペレーティングシステムを前記ホストオペレーティングシステムの更新プロセスの一部分として更新するステップを更に含む、請求項１〜６のいずれか一項に記載の方法。
【請求項９】
前記ホストオペレーティングシステムの第１のバージョンを第２のバージョンと交換するステップと、前記ホストオペレーティングシステムの前記第１のバージョンに結合されていた前記アプリケーションを、前記ホストオペレーティングシステムの前記第１のバージョンに対応するライブラリーオペレーティングシステムに結合するステップと、を更に含む、請求項１〜８のいずれか一項に記載の方法。
【請求項１０】
請求項１〜９のいずれか一項に記載の方法を実行するためのプログラム。
【請求項１１】
請求項１〜９のいずれか一項に記載の方法を実行するためのプログラムを記録した記録媒体。
【請求項１２】
互換性を容易化するシステムであって、
メモリーに接続され、前記メモリーに格納されたコンピューター実行可能コンポーネントを実行するように構成されたプロセッサーを備え、
前記コンピューター実行可能コンポーネントは、
アプリケーションに対して互換性を備えたライブラリーオペレーティングシステムを選択する選択コンポーネントと、
前記アプリケーションに対して互換性を備えたライブラリーオペレーティングシステムに、ランタイムで前記アプリケーションを結合する結合コンポーネントを含み、
前記アプリケーションに対して互換性を備えたライブラリーオペレーティングシステムは、アプリケーションサービスを前記アプリケーションが使用するアドレス空間で実行し、それ以外のハードウェアサービスとユーザーサービスを実行するホストオペレーティングシステムの上で実行されるように構成されていることを特徴とする、システム。
【請求項１３】
前記選択コンポーネントが、前記アプリケーションに対して互換性を備えたライブラリーオペレーティングシステムをマニフェストファイルから決定することを特徴とする、請求項１２に記載のシステム。
【請求項１４】
前記選択コンポーネントが、前記アプリケーションに対して互換性を備えたライブラリーオペレーティングシステムをマニフェストファイルから決定することとは、前記アプリケーションに対して互換性を備えたライブラリーオペレーティングシステムをマニフェストファイルから複数決定することを特徴とする、請求項１３に記載のシステム。
【請求項１５】
前記選択コンポーネントが、前記ホストオペレーティングシステムよりも新しいバージョンのライブラリーオペレーティングシステムを選択することを特徴とする、請求項１２〜１４のいずれか一項に記載のシステム。
【請求項１６】
前記選択コンポーネントが、前記ホストオペレーティングシステムよりも古いバージョンのライブラリーオペレーティングシステムを選択することを特徴とする、請求項１２〜１４のいずれか一項に記載のシステム。
【請求項１７】
前記ホストオペレーティングシステムと１又は複数の前記ライブラリーオペレーティングシステムがパッケージ化されていることを特徴とする、請求項１２〜１６のいずれか一項に記載のシステム。
【請求項１８】
前記ライブラリーオペレーティングシステムを前記ホストオペレーティングシステムの更新プロセスの一部分として取得する取得コンポーネントを更に含む、請求項１２〜１７のいずれか一項に記載のシステム。
【請求項１９】
前記ライブラリーオペレーティングシステムを前記ホストオペレーティングシステムの更新プロセスの一部分として更新する取得コンポーネントを更に含む、請求項１２〜１７のいずれか一項に記載のシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
[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]  更に、ホストとアプリケーションが別々に進化するようにすることによって、ホストオペレーティングシステムにおける変化は、必ずしもアプリケーションを中断する必要がなくなる。例えば、ホストオペレーティングシステムが新しいバージョンにアップグレードされたと想定されたい。アップグレードの時点で、コンピューターにインストールされているアプリケーションは、当該オペレーティングシステムの従前のバージョンに適合するライブラリーオペレーティングシステム上で実行するように、再構成されることが可能である。
【００２３】
[0028]  一実施態様によれば、アプリケーション２３０とライブラリーオペレーティングシステム２２０の組み合わせのそれぞれは、ピコプロセス２４０内で動作することが可能であり、このピコプロセス２４０は、オペレーティングシステムプロセスのアドレス空間からビルドされたコンテナーであって、但しホストオペレーティングシステム２１０のフルサービスに対するアクセス権は有しない、軽量でセキュアな隔離コンテナーである。換言すれば、動作不良のアプリケーションが他のアプリケーションやホストを危険にさらすことができないように、アプリケーションはサンドボックス化されることが可能である。ピコプロセスで動いているコードは、ハードウェア仮想マシンのデザインパターンに従う、図２中の矢印で表されたホストオペレーティングシステム２１０とのインターフェースを利用することが可能である。インターフェースの呼び出しは、ホストオペレーティングシステム２１０のセキュリティー監視コンポーネント（不図示）によって処理されることが可能であり、それは、従来のハードウェア仮想マシンに関するハイパーバイザー又は仮想マシンモニターに機能的に類似したものであり得る。
【００２４】
[0029]  ライブラリーオペレーティングシステムがホストオペレーティングシステムと共にパッケージ化されている場所、例えばライブラリーオペレーティングシステムストア２１２において、メンテナンスが促進される。ホストオペレーティングシステム２１０を更新するのに利用される機構が、当該ホストオペレーティングシステムと共にパッケージ化されているライブラリーオペレーティングシステムを更新するのに活用されることが可能である。例えば、ライブラリーオペレーティングシステムは、ホストオペレーティングシステム２１０の更新機能によって、セキュリティー更新や正確性の修正をパッチされることが可能である。更に、ライブラリーオペレーティングシステムをアプリケーションの何らかの他のバージョンに結合するのではなく、ランタイムでアプリケーションに結合することによって、最新のライブラリーオペレーティングシステムが利用されることが可能である。
【００２５】
[0030]  加えて、ホストオペレーティングシステム２１０を更新するのに利用される機構が、当該ホストオペレーティングシステムが出荷された後、即ち言い換えると、顧客に届けられた後に新しいライブラリーオペレーティングシステムをインストールするのに活用されることが可能である。例えば、ホストオペレーティングシステムのサービスを受けてライブラリーオペレーティングシステムの新しいバージョンが利用可能であると判断されたら、当該新しいライブラリーオペレーティングシステムが取得され保存されることが可能である。
【００２６】
[0031]  図３は、アプリケーションの互換性を容易化するシステム３００を示している。図１のシステム１００と同様、システム３００は、既に説明されたような選択コンポーネント１１０及び結合コンポーネント１２０を含んでいる。簡潔に述べると、選択コンポーネント１１０は、アプリケーションと互換性があるライブラリーオペレーティングシステムを選択又は特定するように構成され、結合コンポーネント１２０は、当該アプリケーションを当該ライブラリーオペレーティングシステムと結合するように構成されている。前の説明では、システム１００は、アプリケーションのための必須ライブラリーオペレーティングシステムのローカルな利用可能性を前提としていた。しかしながら、ある場合においては、それは実情に合っていないかもしれない。取得コンポーネント３２０がこの問題に対処する。より具体的には、取得コンポーネント３２０は、ライブラリーオペレーティングシステムを、例えば広く公衆にアクセス可能又は別のやり方でアクセス可能なウェブサイトから取得するように構成されることが可能である。具体的な一例では、取得コンポーネント３２０は、ホストオペレーティングシステムの更新機構を介してライブラリーオペレーティングシステムのダウンロードを引き起こすように構成されることが可能である。つまり、選択コンポーネント１１０がアプリケーションに対してシステム上に存在しないライブラリーオペレーティングシステムを特定した場合に、結合コンポーネント１２０は、取得コンポーネント３２０を介してそのライブラリーオペレーティングシステムを取得するように構成されている。
【００２７】
[0032]  様々なライブラリーオペレーティングシステムと１つのホストオペレーティングシステムが、コンピューター上に共存することが可能である。一例として、ホストオペレーティングシステムと一緒になったライブラリーオペレーティングシステムのあり得る１つのレイアウトを想定されたい：
C:\Windows\System32
C:\Windows\SysWOW64
C:\Windows\Windows.6.2.8102.Win8BUILD
C:\Windows\Windows.6.1.7601.Win7SP1
C:\Windows\Windows.6.1.7600.Win7RTM
C:\Windows\Windows.6.0.6002.VistaSP2
C:\Windows\Windows.6.0.6001.VistaSP1
C:\Windows\Windows.6.0.6000.VistaRTM
C:\Windows\Windows.5.1.2600.WinXPSP3
この例において、ディレクトリーツリー“System32”は、６４ビットのホストオペレーティングシステムを収容している。ディレクトリーツリー“SysWOW64”は、この６４ビットのホストオペレーティングシステム上で動作する、当該ホストオペレーティングシステムの３２ビットのファイルを収容している。その他のディレクトリーツリーは、初期のオペレーティングシステム（Win7SP1、Win7RTM、VistaSP2、VistaSP1、VistaRTM、WinXPSP3）又はより最近のオペレーティングシステム（Win8BUILD）のいずれからのライブラリーオペレーティングシステムも含んでいる。
【００２８】
[0033]  前述のシステム、アーキテクチャー、環境等は、いくつかのコンポーネント間の相互作用に関して説明されてきた。そのようなシステム及びコンポーネントは、そこで明記されたコンポーネント又はサブコンポーネント、当該明記されたコンポーネント又はサブコンポーネントのうちのいくつか、及び／又は付加的なコンポーネントを含むことが可能である、ということは認識されるべきである。サブコンポーネントは、親のコンポーネントの中に含まれるのではなく、他のコンポーネントに通信可能に接続されたコンポーネントとして実装されることもあり得る。その上更に、１又は複数のコンポーネント及び／又はサブコンポーネントが、集合的機能を提供するように１つのコンポーネントに統合されることができる。システム、コンポーネント、及び／又はサブコンポーネント間の通信は、プッシュ及び／又はプルモデルのいずれに従って実現されることも可能である。コンポーネントはまた、簡略化のため本明細書において具体的に説明されないが当業者に知られている１又は複数の他のコンポーネントと相互作用することもできる。
【００２９】
[0034]  更にまた、開示された上記のシステム及び以下の方法の様々な部分は、人工知能、機械学習、又は知識若しくはルールベースの、コンポーネント、サブコンポーネント、プロセス、手段、方法論、又は機構（例えば、サポートベクトルマシン、ニューラルネットワーク、エキスパートシステム、ベイジアン信念ネットワーク、ファジィ論理、データ融合エンジン、クラシファイア…）を、含むこと又は利用することが可能である。そのようなコンポーネントは、特に、それによって実施されるある機構又はプロセスを自動化して、システム及び方法の一部分をより効率的且つインテリジェントにするだけでなく、より適応的なものとすることが可能である。限定ではなく例として、選択コンポーネント１１０は、互換性を備えたライブラリーオペレーティングシステムを決定するのに、そのような機構を利用することが可能である。
【００３０】
[0035]  上記説明された例示的なシステムを考慮して、開示された主題に従って実施されることができる方法論は、図４のフローチャートを参照して理解する方が適切であろう。説明の簡単化のために、本方法論は一連のブロックとして示され記載されるけれども、特許請求の範囲に記載された主題は、当該ブロックの順序によって限定されることはない、ということは理解され認識されなければならない。何故なら、本明細書に記述及び説明されたものから、いくつかのブロックは、異なる順序で、及び／又は他のブロックと同時に、発生することができるからである。その上、必ずしも説明されたブロックの全てが、以降に記載される方法を実施するのに必要とされなくてもよい。
【００３１】
[0036]  図４を参照すると、互換性を容易化する方法４００が示されている。符号４１０において、アプリケーションに対する互換性を備えたライブラリーオペレーティングシステムが決定される。ここで、ライブラリーオペレーティングシステムは、アプリケーションの互換性を破る可能性が最も高い従来のオペレーティングシステムの一部分をカプセル化する。一例では、ライブラリーオペレーティングシステムは、当該アプリケーションに関連付けられているマニフェストファイルから特定されること、個人（例えば、エンドユーザー、プログラマー、管理者…）から取得されること、又は、別のやり方として当該アプリケーションの分析から決定若しくは推定されることが可能である。符号４２０において、当該決定されたライブラリーオペレーティングシステムが利用可能であるか否かに関する判断が行われる。ライブラリーシステムがコンピューター上でローカルに利用可能でなければ（「ＮＯ」）、４３０において、そのライブラリーオペレーティングシステムが遠隔地から取得される。そうではなく、ライブラリーオペレーティングシステムが利用可能であれば（「ＹＥＳ」）、方法４００は符号４４０へ続き、アプリケーションが当該ライブラリーオペレーティングシステムに結合される。ここには示されていないが、アプリケーションが、ライブラリーオペレーティングシステムをリモートで取得するのではなく、複数のオペレーティングシステムと互換性を有している場合、その他のローカルなライブラリーオペレーティングシステムのうちの１つが利用されることが可能である。アプリケーションの実行を開始すると、結合されたライブラリーシステムがアプリケーションのアドレス空間へロードされることが可能である。
【００３２】
[0037]  図５は、ホストオペレーティングシステムの交換の方法５００のフローチャート図である。符号５１０において、アプリケーションが、ホストオペレーティングシステムから同一バージョンのライブラリーオペレーティングシステムへ再結合される。符号５２０において、ホストオペレーティングシステムが交換される。このようにして、ホストオペレーティングシステムは、アプリケーションを互換性のあるライブラリーオペレーティングシステムへ移動することによって、アプリケーションを中断することなくアップグレード／更新されることが可能である。
【００３３】
[0038]  本明細書で用いられる場合、用語「コンポーネント（component）」、「システム（system）」、「アーキテクチャー」とその様々な変化形（例えば、コンポーネント（components）、システム（systems）、サブシステム…）は、コンピューター関連エンティティー、即ち、ハードウェア、ハードウェアとソフトウェアの組み合わせ、ソフトウェア、又は実行されているソフトウェアのいずれをも意味することを意図されている。例えば、コンポーネントは、限定ではないが、プロセッサー上で動作するプロセス、プロセッサー、オブジェクト、インスタンス、実行可能ファイル、実行スレッド、プログラム、及び／又はコンピューターであり得る。実例として、コンピューター上で動作しているアプリケーションと当該コンピューターの両方が、コンポーネントであり得る。プロセス及び／又は実行スレッド中に１又は複数のコンポーネントが存在することができ、コンポーネントは、１つのコンピューター上にローカルに存在すること、及び／又は２つ以上のコンピューターに分散して存在することができる。
【００３４】
[0039]  単語「例示的」又はその様々な変化形は、本明細書において、例、事例、又は例証として役に立つということを意味すべく用いられている。「例示」として本明細書で説明された任意の側面又は設計は、他の側面又は設計に対して好適である又は有利であるものとして必ずしも解釈されてはならない。更に、例は、明瞭性及び理解の目的のためだけに提供されており、特許請求の範囲に記載された主題又はこの開示の関連部分を、如何なる方法でも限定又は制限することを意味されていない。様々な範囲に及ぶ無数の付加的又は代替的な例が提示可能であったのだが、簡潔性のために省略されたということが認識されなければならない。
【００３５】
[0040]  この説明及び添付された特許請求の範囲において用いられる接続詞「又は」は、そうでないことが指定されるか又は文脈から明らかでない限り、排他的な「又は」ではなく包括的な「又は」を意味することを意図されている。言い換えると、「「Ｘ」又は「Ｙ」」は、「Ｘ」と「Ｙ」の任意の包括的な組み合わせを意味することを意図されている。例えば、「「Ａ」は「Ｘ」を利用する」、「「Ａ」は「Ｙ」を利用する」、又は「「Ａ」は「Ｘ」と「Ｙ」の両方を利用する」とすると、「「Ａ」は「Ｘ」又は「Ｙ」を利用する」ということが前記事例のいずれの下でも満足される。
【００３６】
[0041]  本明細書で用いられる場合、用語「推定」又は「推定する」は、通常、事象及び／又はデータを介して獲得される一群の観測結果からシステム、環境、及び／又はユーザーの状態について推論又は推定するプロセスを表す。推定は、例えば、特定の文脈又は作用を特定するのに利用されることが可能であり、又は、状態に対する確率分布を生成することが可能である。推定は、確率的なもの、即ち、データ及び事象の考慮に基づく関心のある状態に対する確率分布の計算であり得る。推定はまた、一群の事象及び／又はデータからより高レベルの事象を組み立てるために利用される手法を表すことも可能である。そのような推定は、一群の観測された事象及び／又は格納されている事象データから、それらの事象が時間的にすぐ近くに相関していてもしていなくても、またそれらの事象及びデータが１又は複数の事象及びデータソースから生じたかにかかわらず、新たな事象又は作用の構築をもたらす。様々な分類体系及び／又はシステム（例えば、サポートベクトルマシン、ニューラルネットワーク、エキスパートシステム、ベイジアン信念ネットワーク、ファジィ論理、データ融合エンジン…）が、特許請求の範囲に記載された主題に関連して自動的な及び／又は推定された動作を実施することに関して利用されることが可能である。
【００３７】
[0042]  更に、用語「含む（includes）」、「含む（contains）」、「有する（has）」、「有する（having）」又はそれらの形式上の変化形が詳細な説明又は特許請求の範囲のいずれかにでも用いられている限りにおいて、そうした用語は、用語「含む（comprising）」が特許請求の範囲において遷移性の語として用いられる場合に解釈されるように、「含む（comprising）」と同様にして包括的であることを意図されている。
【００３８】
[0043]  特許請求の範囲に記載された主題に文脈を提供するために、図６と以下の議論は、当該主題の様々な側面が実施されることが可能な好適な環境の簡潔で概略的な説明を提供することを意図されている。しかしながら、この好適な環境は、単なる一例にすぎず、効用又は機能性の範囲に関して如何なる限定を示唆することも意図されていない。
【００３９】
[0044]  上記開示されたシステム及び方法は１又は複数のコンピューター上で動作するプログラムのコンピューター実行可能命令の一般的な文脈で説明されることが可能であるけれども、当業者は、他のプログラムモジュール等と共同して側面が実施されることも可能であるということを認識するだろう。概して、プログラムモジュールは、特定のタスクを実施及び／又は特定の抽象データ型を実装する数あるものの中でも、ルーチン、プログラム、コンポーネント、データ構造を含む。その上、上記のシステム及び方法は、シングルプロセッサー、マルチプロセッサー、若しくはマルチコアプロセッサーのコンピューターシステム、ミニコンピューティングデバイス、メインフレームコンピューター、並びにパーソナルコンピューター、携帯型コンピューティングデバイス（例えば、携帯情報端末（ＰＤＡ）、電話機、時計…）、マイクロプロセッサーベース若しくはプログラム可能な消費者又は産業用電子機器等を含む、様々なコンピューターシステム構成によって実現されることが可能である、ということを当業者は認識するだろう。通信ネットワークを通じてリンクされている遠隔の処理デバイスによってタスクが実施される分散コンピューティング環境において、側面が実現されることも可能である。しかしながら、特許請求の範囲に記載された主題の、全てではないとしてもいくつかの側面は、スタンドアローンのコンピューター上で実現されることが可能である。分散コンピューティング環境では、プログラムモジュールは、ローカル及びリモートのメモリーストレージデバイスの一方又は両方に配置されることができる。
【００４０】
[0045]  図６を参照して、例示的な汎用コンピューター６１０あるいはコンピューティングデバイス（例えば、デスクトップ、ラップトップ、サーバー、ハンドヘルド、プログラム可能な消費者又は産業用電子機器、セットトップボックス、ゲームシステム…）が示されている。コンピューター６１０は、１又は複数のプロセッサー６２０、メモリー６３０、システムバス６４０、マスストレージ６５０、及び１又は複数のインターフェースコンポーネント６７０を含んでいる。システムバス６４０は、少なくとも上記のシステムコンポーネントを通信可能に接続している。しかしながら、その最もシンプルな形態において、コンピューター６１０は、メモリー６３０に格納された様々なコンピューター実行可能動作、命令、及び／又はコンポーネントを実行する、メモリー６３０に接続された１又は複数のプロセッサー６２０を含むことが可能である、ということが認識されなければならない。
【００４１】
[0046]  プロセッサー６２０は、汎用プロセッサー、デジタルシグナルプロセッサー（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）若しくは他のプログラム可能なロジックデバイス、個別ゲート若しくはトランジスターロジック、個別ハードウェアコンポーネント、又は、本明細書において説明された機能を実施するように設計されたそれらの任意の組み合わせによって、実装されることが可能である。汎用プロセッサーは、マイクロプロセッサーであり得るが、代替として、プロセッサーは、任意のプロセッサー、コントローラー、マイクロコントローラー、又はステートマシンであり得る。プロセッサー６２０はまた、コンピューティングデバイスの組み合わせ、例えば、ＤＳＰとマイクロプロセッサーの組み合わせ、複数のマイクロプロセッサーの組み合わせ、マルチコアプロセッサーの組み合わせ、ＤＳＰコアと一体になった１又は複数のマイクロプロセッサー、又は任意の他のそのような構成として、実装されることもできる。
【００４２】
[0047]  コンピューター６１０は、特許請求の範囲に記載された主題の１又は複数の側面を実現するようにコンピューター６１０の制御を容易化するための様々なコンピューター読み取り可能媒体を含む、又はさもなければ、コンピューター読み取り可能媒体と相互作用することが可能である。コンピューター読み取り可能媒体は、コンピューター６１０によってアクセスされることが可能である任意の利用可能な媒体とすることができ、揮発性及び不揮発性媒体、並びにリムーバブル及び非リムーバブル媒体を含む。限定ではなく例として、コンピューター読み取り可能媒体は、コンピューター記憶媒体及び通信媒体を含むことができる。
【００４３】
[0048]  コンピューター記憶媒体は、コンピューター読み取り可能命令、データ構造、プログラムモジュール、又は他のデータといったような情報の記憶のための任意の方法又は技術で実装された、揮発性及び不揮発性、リムーバブル及び非リムーバブルの媒体を含む。コンピューター記憶媒体は、メモリーデバイス（例えば、ランダムアクセスメモリー（ＲＡＭ）、リードオンリーメモリー（ＲＯＭ）、電気的に消去可能なプログラマブルリードオンリーメモリー（ＥＥＰＲＯＭ）…）、磁気記憶デバイス（例えば、ハードディスク、フロッピーディスク（登録商標）、カセット、テープ…）、光ディスク（例えば、コンパクトディスク（ＣＤ）、デジタル多用途ディスク（ＤＶＤ）…）、及び固体デバイス（例えば、ソリッドステートドライブ（ＳＳＤ）、フラッシュメモリードライブ（例えば、カード、スティック、キードライブ…）…）、又は、所望の情報を格納するのに使用可能でありコンピューター６１０によってアクセス可能である任意の他の媒体を含むが、それらには限定されない。
【００４４】
[0049]  通信媒体は、一般に、コンピューター読み取り可能命令、データ構造、プログラムモジュール、又は他のデータを、搬送波又は他の伝送メカニズム等の変調データ信号に具現化し、任意の情報配送媒体を含む。用語「変調データ信号」は、その特性のうちの１又は複数を、信号の中に情報をエンコードするような方法で設定又は変化させる信号を意味する。限定ではなく例として、通信媒体は、有線ネットワーク又は直接有線接続等の有線媒体、並びに、音波、ＲＦ、赤外線、及び他の無線媒体等の無線媒体を含む。上記のうち任意のものの組み合わせも、コンピューター読み取り可能媒体の範囲内に含まれるべきである。
【００４５】
[0050]  メモリー６３０とマスストレージ６５０は、コンピューター読み取り可能記憶媒体の例である。コンピューティングデバイスの厳密な構成及びタイプに応じて、メモリー６３０は、揮発性（例えばＲＡＭ）、不揮発性（例えばＲＯＭ、フラッシュメモリー）、又はそれら２つの何らかの組み合わせであり得る。例として、コンピューター６１０内の要素の間で例えばスタートアップ時に情報を転送するための基本ルーチンを含んだ基本入出力システム（ＢＩＯＳ）は、不揮発性メモリーに格納されることが可能であり、一方、揮発性メモリーは、数ある中でも、プロセッサー６２０による処理を促進するための外部キャッシュメモリーとして機能することが可能である。
【００４６】
[0051]  マスストレージ６５０は、メモリー６３０に比較して大量のデータの記憶のための、リムーバブル／非リムーバブル、揮発性／不揮発性のコンピューター記憶媒体を含む。例えば、マスストレージ６５０は、磁気若しくは光ディスクドライブ、フロッピーディスク（登録商標）ドライブ、フラッシュメモリー、ソリッドステートドライブ、又はメモリースティック等の１又は複数のデバイスを含むが、これらには限定されない。
【００４７】
[0052]  メモリー６３０及びマスストレージ６５０は、オペレーティングシステム６６０、１又は複数のアプリケーション６６２、１又は複数のプログラムモジュール６６４、及びデータ６６６を含む、又はその中に格納することが可能である。オペレーティングシステム６６０は、コンピューター６１０のリソースを制御し割り当てるように動作する。ここで、オペレーティングシステム６６０は、数多くのライブラリーオペレーティングシステム２２０をサポートすることのできるホストオペレーティングシステム２１０に対応することが可能である。アプリケーション６６２は、システムソフトウェアとアプリケーションソフトウェアの一方又は両方を含み、メモリー６３０及び／又はマスストレージ６５０に格納されたプログラムモジュール６６４とデータ６６６を通じてオペレーティングシステム６６０によるリソースの管理を活用して、１又は複数の動作を実施することが可能である。したがって、アプリケーション６６２は、それによって提供されるロジックに従って汎用コンピューター６１０を専門的なマシンに変化させることが可能である。
【００４８】
[0053]  特許請求の範囲に記載された主題の全て又は一部分は、開示された機能を実現すべくコンピューターを制御するためのソフトウェア、ファームウェア、ハードウェア、若しくはそれらの任意の組み合わせを作製する標準的なプログラミング及び／又はエンジニアリング手法を用いて、実施されることが可能である。限定ではなく例として、システム１００又はその一部分は、アプリケーション６６２である、又はアプリケーション６６２の一部をなすことが可能であり、また、１又は複数のプロセッサー６２０によって実行された時にその機能が実現可能な、メモリー及び／又はマスストレージ６５０に格納された１又は複数のモジュール６６４及びデータ６６６を含むことが可能である。
【００４９】
[0054]  具体的な一実施態様によれば、プロセッサー６２０は、システムオンチップ（ＳＯＣ）、又は、単一の集積回路基板上にハードウェアとソフトウェアの両方を含んだ、即ち言い換えるとその両方を統合した同様のアーキテクチャーに相当することが可能である。ここで、プロセッサー６２０は、数ある中でも、プロセッサー６２０及びメモリー６３０に少なくとも類似した、１又は複数のプロセッサーとメモリーを含むことが可能である。従来のプロセッサーは、最小限のハードウェアとソフトウェアを含み、外部ハードウェア及びソフトウェアに広く依拠している。対照的に、プロセッサーのＳＯＣ実装は、最小限のハードウェア及びソフトウェアで、即ち外部ハードウェア及びソフトウェアに依拠せず特定の機能を実現するハードウェアとソフトウェアをその中に埋め込んでいるので、よりパワフルである。例えば、システム１００及び／又は関連機能が、ＳＯＣアーキテクチャーによるハードウェアの中に埋め込まれることが可能である。
【００５０】
[0055]  コンピューター６１０はまた、システムバス６４０に通信可能に接続されコンピューター６１０との対話を容易化する１又は複数のインターフェースコンポーネント６７０も含んでいる。例として、インターフェースコンポーネント６７０は、ポート（例えば、シリアル、パラレル、ＰＣＭＣＩＡ、ＵＳＢ、ＦｉｒｅＷｉｒｅ…）、又はインターフェースカード（例えば、サウンド、ビデオ…）等であり得る。例示的な一実装では、インターフェースコンポーネント６７０は、ユーザーが１又は複数の入力デバイス（例えば、マウス、トラックボール、スタイラス、タッチパッド、キーボード、マイク、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナー、カメラ、他のコンピューター…といったようなポインティングデバイス）を通じてコンピューター６１０にコマンドと情報を入力することを可能にするユーザー入出力インターフェースとして実現されることが可能である。別の例示的な実装では、インターフェースコンポーネント６７０は、出力を数ある中でもディスプレイ（例えば、ＣＲＴ、ＬＣＤ、プラズマ…）、スピーカー、プリンター、及び／又は他のコンピューターへ供給する出力周辺機器インターフェースとして実現されることが可能である。更にまた、インターフェースコンポーネント６７０は、他のコンピューティングデバイス（不図示）との有線又は無線通信リンク等を介した通信を可能にするネットワークインターフェースとして実現されることが可能である。
【００５１】
[0056]  上述されてきたことは、特許請求の範囲に記載された主題の側面の例を含んでいる。特許請求の範囲に記載された主題を説明する目的で考えられるあらゆるコンポーネント又は方法論の組み合わせを記述することは、もちろん不可能であるが、当業者は、開示された主題の数多くの更なる組み合わせ及び変更が可能であることを認識するだろう。したがって、開示された主題は、添付された特許請求の範囲の趣旨及び範囲に入る全てのそのような改変、変更、及び変形を包含することを意図されている。
【図１】
0006018590.tif 000002
【図２】
0006018590.tif 000003
【図３】
0006018590.tif 000004
【図４】
0006018590.tif 000005
【図５】
0006018590.tif 000006
【図６】
0006018590.tif 000007