(57)【特許請求の範囲】
【請求項１】
オペレーティングシステム環境を有するホストと、各々がオペレーティングシステム環境を有する複数のゲストとの間で、ポリシーに基づいて構成要素を選択的に伝播できるようにするための、コンピュータ実装された方法であって、
前記ホストの前記オペレーティングシステム環境においてプレースホルダを稼働させ、前記複数のゲストそれぞれの前記オペレーティングシステム環境においてプレースホルダを稼働させるステップと、
コンピュータにより、前記ホストの構成要素と、前記複数のゲストのうち少なくともいくつかのゲストの構成要素と、を監視するステップと、
前記コンピュータにより、少なくとも１つの監視されている構成要素に対して施された変更を検知するステップと、
前記コンピュータにより、前記ポリシーにより指定される条件下で選択された伝播元と選択された伝播先との間で伝播される構成要素を指示する構成可能なポリシーに基づいて、変更された構成要素をオペレーティングシステム環境間で伝播するかどうかを判断するステップと、
前記コンピュータにより、前記ポリシーに基づいて、伝播元オペレーティングシステム環境を起点とする少なくとも１つの変更された具体的な構成要素を少なくとも１つの伝播先オペレーティングシステム環境に伝播すると判断するステップと、
前記伝播元オペレーティングシステム環境における前記少なくとも１つの変更された具体的な構成要素を、前記伝播先オペレーティングシステム環境における少なくとも１つの対等の構成要素にマッピングするステップであって、ホストの伝播元オペレーティングシステムの種類は、少なくとも１つのゲストの少なくとも１つの伝播先オペレーティングシステムの種類と異なる、ステップと、
前記伝播元オペレーティングシステム環境を起点とする前記少なくとも１つの変更された具体的な構成要素を前記少なくとも１つの伝播先オペレーティングシステム環境に伝播するという判断に応じて、前記コンピュータにより、前記少なくとも１つの変更された具体的な構成要素を、前記伝播元オペレーティングシステム環境において稼働しているプレースホルダによって前記少なくとも１つの変更された具体的な構成要素を前記少なくとも１つの伝播先オペレーティングシステム環境において稼働しているプレースホルダに送信することによって、伝播するステップと、
を含む方法。
【請求項２】
前記コンピュータにより、前記ホストの構成要素と、前記複数のゲストのうち少なくともいくつかのゲストの構成要素と、を監視することが、
前記コンピュータにより、前記ホストの構成要素と、前記複数のゲストのすべての構成要素と、を監視することをさらに含む、請求項１に記載の方法。
【請求項３】
前記コンピュータにより、前記ポリシーに基づいて、前記伝播元オペレーティングシステム環境を起点とする前記少なくとも１つの変更された具体的な構成要素を前記少なくとも１つの伝播先オペレーティングシステム環境に伝播すると判断することが、
前記少なくとも１つの変更された具体的な構成要素の少なくとも伝播元に応じて、前記コンピュータにより、前記ポリシーに基づいて、前記伝播元オペレーティングシステム環境を起点とする前記少なくとも１つの変更された具体的な構成要素を前記少なくとも１つの伝播先オペレーティングシステム環境に伝播すると判断することをさらに含む、請求項１に記載の方法。
【請求項４】
前記コンピュータにより、前記ポリシーに基づいて、前記伝播元オペレーティングシステム環境を起点とする前記少なくとも１つの変更された具体的な構成要素を前記少なくとも１つの伝播先オペレーティングシステム環境に伝播すると判断することが、
前記伝播先オペレーティングシステム環境の少なくとも識別情報に応じて、前記コンピュータにより、前記ポリシーに基づいて、前記伝播元オペレーティングシステム環境を起点とする前記少なくとも１つの変更された具体的な構成要素を前記少なくとも１つの伝播先オペレーティングシステム環境に伝播すると判断することをさらに含む、請求項１に記載の方法。
【請求項５】
前記コンピュータにより、前記ポリシーに基づいて、前記伝播元オペレーティングシステム環境を起点とする前記少なくとも１つの変更された具体的な構成要素を前記少なくとも１つの伝播先オペレーティングシステム環境に伝播すると判断することが、
前記伝播先オペレーティングシステム環境の少なくとも分類に応じて、前記コンピュータにより、前記ポリシーに基づいて、前記伝播元オペレーティングシステム環境を起点とする前記少なくとも１つの変更された具体的な構成要素を前記少なくとも１つの伝播先オペレーティングシステム環境に伝播すると判断することをさらに含む、請求項１に記載の方法。
【請求項６】
前記コンピュータにより、前記ポリシーに基づいて、前記伝播元オペレーティングシステム環境を起点とする前記少なくとも１つの変更された具体的な構成要素を前記少なくとも１つの伝播先オペレーティングシステム環境に伝播すると判断することが、
前記少なくとも１つの変更された具体的な構成要素のうちの少なくとも種類に応じて、前記コンピュータにより、前記ポリシーに基づいて、前記伝播元オペレーティングシステム環境を起点とする前記少なくとも１つの変更された具体的な構成要素を前記少なくとも１つの伝播先オペレーティングシステム環境に伝播すると判断することをさらに含む、請求項１に記載の方法。
【請求項７】
前記コンピュータにより、前記ポリシーに基づいて、前記伝播元オペレーティングシステム環境を起点とする前記少なくとも１つの変更された具体的な構成要素を前記少なくとも１つの伝播先オペレーティングシステム環境に伝播すると判断することが、
前記少なくとも１つの変更された具体的な構成要素のうちの少なくとも１つの属性に応じて、前記コンピュータにより、前記ポリシーに基づいて、前記伝播元オペレーティングシステム環境を起点とする前記少なくとも１つの変更された具体的な構成要素を前記少なくとも１つの伝播先オペレーティングシステム環境に伝播すると判断することをさらに含む、請求項１に記載の方法。
【請求項８】
前記コンピュータにより、前記ポリシーに基づいて、前記伝播元オペレーティングシステム環境を起点とする前記少なくとも１つの変更された具体的な構成要素を前記少なくとも１つの伝播先オペレーティングシステム環境に伝播すると判断することが、
前記少なくとも１つの変更された具体的な構成要素のうちの少なくとも内容に応じて、前記コンピュータにより、前記ポリシーに基づいて、前記伝播元オペレーティングシステム環境を起点とする前記少なくとも１つの変更された具体的な構成要素を前記少なくとも１つの伝播先オペレーティングシステム環境に伝播すると判断することをさらに含む、請求項１に記載の方法。
【請求項９】
前記コンピュータにより、前記ポリシーに基づいて、前記伝播元オペレーティングシステム環境を起点とする前記少なくとも１つの変更された具体的な構成要素を前記少なくとも１つの伝播先オペレーティングシステム環境に伝播すると判断することが、
前記少なくとも１つの変更された具体的な構成要素のうちの少なくとも識別情報に応じて、前記コンピュータにより、前記ポリシーに基づいて、前記伝播元オペレーティングシステム環境を起点とする前記少なくとも１つの変更された具体的な構成要素を前記少なくとも１つの伝播先オペレーティングシステム環境に伝播すると判断することをさらに含む、請求項１に記載の方法。
【請求項１０】
前記コンピュータにより、前記少なくとも１つの変更された具体的な構成要素を前記伝播元オペレーティングシステム環境から前記少なくとも１つの伝播先オペレーティングシステム環境に伝播することが、
前記コンピュータにより、前記少なくとも１つの変更された具体的な構成要素を前記ホストから前記複数のゲストのうちの各々に伝播することをさらに含む、請求項１に記載の方法。
【請求項１１】
前記コンピュータにより、前記少なくとも１つの変更された具体的な構成要素を前記伝播元オペレーティングシステム環境から前記少なくとも１つの伝播先オペレーティングシステム環境に伝播することが、
前記コンピュータにより、前記少なくとも１つの変更された具体的な構成要素を具体的なゲストから前記ホストに伝播することをさらに含む、請求項１に記載の方法。
【請求項１２】
前記コンピュータによって新しいゲストの作成を検知することと、
少なくとも１つの構成要素を、少なくとも１つの伝播元から前記新たに作成されたゲストへと自動的に伝播することと、
をさらに含む、請求項１に記載の方法。
【請求項１３】
第１のオペレーティングシステム環境を有する伝播元から第２の異なるオペレーティングシステム環境を有する伝播先へと構成要素を伝播するステップと、
前記第１のオペレーティングシステム環境から伝播されている構成要素を前記第２の異なるオペレーティングシステム環境における前記対等の構成要素にマッピングするステップと、
をさらに含む、請求項１に記載の方法。
【請求項１４】
オペレーティングシステム環境を有するホストと、各々がオペレーティングシステム環境を有する複数のゲストとの間で、ポリシーに基づいて構成要素を選択的に伝播できるようにするためのコンピュータプログラムを記憶するための少なくとも１つの非一時的なコンピュータ可読記憶媒体であって、前記コンピュータプログラムが、
前記ホストの前記オペレーティングシステム環境においてプレースホルダを稼働させ、前記複数のゲストそれぞれの前記オペレーティングシステム環境においてプレースホルダを稼働させるためのプログラムコードと、
前記ホストの構成要素と、前記複数のゲストのうちの少なくともいくつかのゲストの構成要素を監視するためのプログラムコードと、
少なくとも１つの監視されている構成要素に対して施された変更を検知するためのプログラムコードと、
前記ポリシーにより指定される条件下で選択された伝播元と選択された伝播先との間で伝播される構成要素を指示する構成可能なポリシーに基づいて、変更された構成要素をオペレーティングシステム環境間で伝播するかどうかを判断するためのプログラムコードと、
前記ポリシーに基づいて、伝播元オペレーティングシステム環境を起点とする少なくとも１つの変更された具体的な構成要素を少なくとも１つの伝播先オペレーティングシステム環境に伝播すると判断するためのプログラムコードと、
前記伝播元オペレーティングシステム環境における前記少なくとも１つの変更された具体的な構成要素を、前記伝播先オペレーティングシステム環境における少なくとも１つの対等の構成要素にマッピングするためのプログラムコードであって、ホストの伝播元オペレーティングシステムの種類は、少なくとも１つのゲストの少なくとも１つの伝播先オペレーティングシステムの種類と異なる、プログラムコードと、
前記伝播元オペレーティングシステム環境を起点とする前記少なくとも１つの変更された具体的な構成要素を前記少なくとも１つの伝播先オペレーティングシステム環境に伝播するという判断に応じて、前記少なくとも１つの変更された具体的な構成要素を、前記伝播元オペレーティングシステム環境において稼働しているプレースホルダによって前記少なくとも１つの変更された具体的な構成要素を前記少なくとも１つの伝播先オペレーティングシステム環境において稼働しているプレースホルダに送信することによって、伝播するためのプログラムコードと、
を備えるコンピュータ可読記憶媒体。
【請求項１５】
オペレーティングシステム環境を有するホストと、各々がオペレーティングシステム環境を有する複数のゲストとの間で、ポリシーに基づいて構成要素を選択的に伝播できるようにするためのコンピュータシステムであって、
プロセッサと、
システムメモリと、
前記ホストの前記オペレーティングシステム環境においてプレースホルダを稼働させ、前記複数のゲストそれぞれの前記オペレーティングシステム環境においてプレースホルダを稼働させる手段と、
前記ホストの構成要素と、前記複数のゲストのうちの少なくともいくつかのゲストの構成要素とを監視する手段と、
少なくとも１つの監視されている構成要素に対して施された変更を検知する手段と、
前記ポリシーにより指定される条件下で選択された伝播元と選択された伝播先との間で伝播される構成要素を指示する構成可能なポリシーに基づいて、変更された構成要素をオペレーティングシステム環境間で伝播するかどうかを判断する手段であって、伝播元オペレーティングシステム環境における前記少なくとも１つの変更された具体的な構成要素を伝播先オペレーティングシステム環境における少なくとも１つの対等の構成要素にマッピングし、ホストの伝播元オペレーティングシステムの種類は、少なくとも１つのゲストの少なくとも１つの伝播先オペレーティングシステムの種類と異なる、判断する手段と、
前記伝播元オペレーティングシステム環境を起点とする前記少なくとも１つの変更された具体的な構成要素を前記少なくとも１つの伝播先オペレーティングシステム環境に伝播するという判断に応じて、前記少なくとも１つの変更された具体的な構成要素を、前記伝播元オペレーティングシステム環境において稼働しているプレースホルダによって前記少なくとも１つの変更された具体的な構成要素を前記少なくとも１つの伝播先オペレーティングシステム環境において稼働しているプレースホルダに送信することによって、伝播する手段と、
を備えるコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して仮想マシンと構成要素とに関するものであり、具体的には、ホストと複数のゲストとの間での構成要素の選択的伝播を可能にすることに関するものである。
【背景技術】
【０００２】
仮想コンピューティングの世界では、複数の仮想マシン（ＶＭまたはゲスト）が単一の物理コンピュータ（ホストコンピュータ）にソフトウェアレベルでインスタンス生成を行うことができる。種々の仮想化場面において、ハイパーバイザーと呼ばれることの多いソフトウェアコンポーネントが、ゲストとホスト・オペレーティング・システムとの間で、ゲストの機能の一部もしくは全部を実行するためのインターフェイスの働きをすることができる。他の仮想化実装形態では、物理ホストコンピュータ上で稼働している基底ホスト・オペレーティング・システムが存在しない。このような状況では、ハイパーバイザーが、ゲストとホストコンピュータのハードウェアとの間でインターフェイスの働きをする。ホスト・オペレーティング・システムが存在する場合でも、ハイパーバイザーは、特定サービスのためにハードウェアを直接仲介することがある。仮想化場面によっては、ホスト自体が、別のホスト上で稼働しているゲスト（すなわち仮想ホスト）という形態であることがある。本明細書でハイパーバイザーによって実行されていると説明したサービスは、ある仮想化場面の下では、「スーパーバイザー仮想マシン」、「仮想マシンマネージャ（ＶＭＭ）」、「サービスパーティション」または「ドメイン０（ｄｏｍ０）」など異なる名前を持つコンポーネントによって実行される。具体的な機能を実行しているコンポーネントを意味する目的で使用される名前は重要でない。
【０００３】
ユーザーが単一のホストコンピュータ上で複数の仮想マシンを稼働させることは、ますます一般的になってきている。例えば、仮想化環境では、仮想マシンがホストよりも多様なオペレーティングシステムを稼働させることができる。多くのＭａｃユーザーにとっては、Ｗｉｎｄｏｗｓ（登録商標、以下同じ）に最適な（あるいはＷｉｎｄｏｗｓでのみ使用可能な）プログラムを実行するために、自身のＭａｃホスト上でＷｉｎｄｏｗｓゲストを稼働させるのが便利である。一般的な例が、Ｏｕｔｌｏｏｋを使用してＥｘｃｈａｎｇｅから企業電子メールにアクセスすることである。Ｍａｃネイティブの代替手段もあるが、最新であり、かつ最高の統合性を誇る電子メール機能は、Ｗｉｎｄｏｗｓアプリケーションの方が優れている傾向がある。
【０００４】
加えて、別々のゲストを使用して様々なアプリケーションセットを入れることは、ＭａｃホストでもＷｉｎｄｏｗｓ（あるいは他の）ホストでも有用であり得る。この技法により、アプリケーションセットごとに別々の「仮想機器」を作成することができ、そこでは、性能を最大限に引き出し、そのアプリケーションセットのニーズを満たすために、アプリケーションセットを稼働させているゲスト内のオペレーティングシステム環境が具体的に調整される。単一オペレーティングシステム環境内の複数のアプリケーションセットに対して微調整を行うと、競合が発生することがある。かかる競合は、この仮想機器手法を用いることによって避けることができる。この手法では、各々のアプリケーションセットが自身のゲストで動作し、それによってオペレーティングシステム環境を切り分けておく。これなら、環境間での競合または干渉のリスクが減るだけでなく、極めて便利なレベルの微調整も提供される。
【０００５】
複数の仮想マシンがコンピュータ上で稼働する別の実施例が、ソフトウェア開発環境という状況の範囲内である。開発者は、仮想マシンを使用して、異なる開発環境を互いに切り分けておき、プライマリ・ホスト・オペレーティング・システムからも切り分けておくことが望ましい。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ホスト上で複数の仮想マシンを稼働させることは、有用ではあるが、ユーザーにとってのある種の負担が生じる。例えば、ユーザーは、コンピュータ（物理または仮想）を構成するたびに、様々なオペレーティングシステムとアプリケーションの設定（例えば、お気に入りの設定、メニューの構成、個人設定など）のカスタマイズおよびパーソナライズという複雑な処理をこなすのが典型的である。ユーザーは、ホスト上で新しい仮想マシンをセットアップするたびに、この面倒で反復的な処理を再度行う必要がある。現在は、ユーザーがプライマリ・ホスト・コンピュータを構成するためにすでに行ったカスタマイズ処理全体を、ユーザーがそのホストで稼働させる仮想コンピュータごとに繰り返す必要がある。
【０００７】
これらの問題には対処することが望ましいであろう。
【課題を解決するための手段】
【０００８】
構成伝播管理システムにより、オペレーティングシステム環境を有するホストと、各々がオペレーティングシステム環境を有する複数のゲストとの間で、ポリシーに基づいて構成要素を選択的に伝播できるようになる。前記ポリシーにより指定される種々の状況下で選択された伝播元と選択された伝播先との間で伝播される構成要素を指示する構成可能なポリシーが維持される。ホストの構成要素およびゲストの一部もしくは全部の構成要素が監視され、監視されている構成要素に施された変更が検知される。変更された構成要素をオペレーティングシステム環境間で伝播するかどうかは、ポリシーに基づいて判断される。伝播元オペレーティングシステム環境の識別情報および／または分類、あるいは１つもしくはそれ以上の変更された具体的な構成要素の種類、属性、内容、および／または識別情報などの要因を受けて、伝播元オペレーティングシステム環境を起点とする１つもしくはそれ以上の変更された具体的な構成要素を少なくとも１つの伝播先オペレーティングシステム環境に伝播すると判断することができる。また、前記ホストの前記オペレーティングシステム環境においてプレースホルダを稼働させ、前記複数のゲストそれぞれの前記オペレーティングシステム環境においてプレースホルダを稼働させることができる。また、前記変更された具体的な構成要素を、前記伝播元オペレーティングシステム環境において稼働しているプレースホルダによって前記少なくとも１つの変更された具体的な構成要素を前記少なくとも１つの伝播先オペレーティングシステム環境において稼働しているプレースホルダに送信することによって、伝播することができる。
【０００９】
変更された具体的な構成要素を伝播元オペレーティングシステム環境から１つもしくはそれ以上の伝播先オペレーティングシステム環境に伝播することは、変更された具体的な構成要素を、ホストからゲストの一部もしくは全部に、具体的なゲストからホストに、および／または第１の具体的なゲストから第２の具体的なゲストに伝播することをさらに含み得る。いくつかの実施形態では、新しいゲストの作成が検知され、少なくとも１つの伝播元を起点とする少なくとも１つの構成要素が、新たに作成されたゲストへと自動的に伝播される。いくつかの実施形態では、第１のオペレーティングシステム環境を有する伝播元から第２の異なるオペレーティングシステム環境を有する伝播先へと構成要素が伝播される。この場合、第１のオペレーティングシステム環境から伝播されている構成要素は、第２の異なるオペレーティングシステム環境で、対等の構成要素にマッピングされる。
【００１０】
本概要および以降の詳細な説明に記載されている特徴および利点は、すべてを網羅するものではなく、特に、本明細書の図面、明細書、および請求項を見れば、他にも多くの特徴および利点が当業者に明らかとなるであろう。さらに、本明細書で使用されている言語が、主として読みやすさと説明のために選ばれたものであり、発明の主題を描写または制限する目的で選ばれたものではない可能性があり、かかる発明の主題を判断するには、必要な請求項に頼る必要があるという点に留意されたい。
【図面の簡単な説明】
【００１１】
【図１】いくつかの実施形態にかかる、構成伝播管理システムを実装できる例示的なネットワークアーキテクチャのブロック図である。
【図２】いくつかの実施形態にかかる、構成伝播管理システムを実装するのに適したコンピュータシステムのブロック図である。
【図３】いくつかの実施形態にかかる、構成伝播管理システムの操作のブロック図である。
【図４】いくつかの実施形態にかかる、構成伝播管理システムの操作のフローチャートである。
【発明を実施するための形態】
【００１２】
これらの図は、例示目的でのみ種々の実施形態を描いている。当業者であれば、以降の解説から、本明細書に例示された構造および方法の代替実施形態が、本明細書に記載された原則から逸脱しない範囲で用いられ得るということを容易に認識するであろう。
【００１３】
図１は、構成伝播管理システム１０１を実装できる例示的なネットワークアーキテクチャ１００を表すブロック図である。図示されたネットワークアーキテクチャ１００は、複数のサーバー１０５Ａ、１０５Ｎに加え、複数のクライアント１０３Ａ、１０３Ｂ、１０３Ｎも備える。図１では、構成伝播管理システム１０１が、クライアント１０３Ａに常駐するものとして示されている。ただしこれは単なる例に過ぎず、各種実施形態において、このシステム１０１の各種機能は、クライアント１０３やサーバー１０５上でインスタンス生成したり、複数のクライアント１０３および／またはサーバー１０５間で分散させたりすることができるということを理解すべきである。
【００１４】
クライアント１０３およびサーバー１０５は、図２に示されており、かつ以下に説明されているコンピュータシステム２１０を使用して実装することができる。クライアント１０３およびサーバー１０５は、例えば図２と関連付けて以下に説明されているネットワークインターフェイス２４８またはモデム２４７を介してネットワーク１０７に通信可能に連結されている。クライアント１０３は、例えばウェブブラウザまたは他のクライアントソフトウェア（図示せず）を使用して、サーバー１０５上のアプリケーションおよび／またはデータにアクセスすることができる。
【００１５】
図１は３つのクライアントおよび２つのサーバーを一例として示しているが、実際には、それ以上の（またはそれ以下の）クライアント１０３および／またはサーバー１０５を展開することができる。一実施形態において、ネットワーク１０７はインターネットという形態である。他の実施形態で、他のネットワーク１０７またはネットワークベースの環境を使用してもよい。
【００１６】
図２は、構成伝播管理システム１０１を実装するのに適したコンピュータシステム２１０のブロック図である。クライアント１０３およびサーバー１０５は、かかるコンピュータシステム２１０の形態で実装することができる。図示のとおり、コンピュータシステム２１０の１つのコンポーネントがバス２１２である。バス２１２は、少なくとも１つのプロセッサ２１４、システムメモリ２１７（ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、フラッシュメモリなど）、入出力（Ｉ／Ｏ）コントローラ２１８、スピーカーシステム２２０などの外部オーディオ装置に通信可能に連結された音声出力インターフェイス２２２、ディスプレイスクリーン２２４などの外部映像出力装置に通信可能に連結されたディスプレイアダプタ２２６、シリアルポート２３０など１つもしくはそれ以上のインターフェイス、ユニバーサル・シリアル・バス（ＵＳＢ）レセプタクル２３０、パラレルポート（図示せず）など、キーボード２３２に通信可能に連結されたキーボードコントローラ２３３、少なくとも１つのハードディスク２４４（または他の形態の磁気ディスク）に通信可能に連結された記憶装置インターフェイス２３４、フロッピー（登録商標、以下同じ）ディスク２３８を受容するように構成されたフロッピー・ディスク・ドライブ２３７、ファイバーチャネル（ＦＣ）ネットワーク２９０と接続するように構成されたホスト・バス・アダプタ（ＨＢＡ）インターフェイスカード２３５Ａ、ＳＣＳＩバス２３９と接続するように構成されたＨＢＡインターフェイスカード２３５Ｂ、光学ディスク２４２を受け取るように構成された光学ディスクドライブ２４０、ＵＳＢレセプタクル２２８などを介してバス２１２に連結されたマウス２４６（または他のポインティング装置）、シリアルポート２３０などを介してバス２１２に連結されたモデム２４７、および例えばバス２１２に直接連結されたネットワークインターフェイス２４８など、コンピュータシステム２１０の他のコンポーネントと通信可能に連結する。
【００１７】
他のコンポーネント（図示せず）（ドキュメントスキャナ、デジタルカメラ、プリンタなど）も、同様の方法で接続され得る。逆に、図２に示すコンポーネントの必ずしもすべてが存在する必要はない。コンポーネントは、図２に示すものとは異なる方法で相互接続することもできる。
【００１８】
バス２１２により、プロセッサ２１４とシステムメモリ２１７との間でのデータ通信が可能であり、システムメモリ２１７は、上記のとおり、ＲＡＭだけでなく、ＲＯＭおよび／またはフラッシュメモリも含み得る。ＲＡＭは一般に、オペレーティングシステムおよびアプリケーションプログラムが読み込まれるメインメモリである。ＲＯＭおよび／またはフラッシュメモリは、数あるコードの中で、特定の基本的なハードウェア操作を制御する基本入出力システム（ＢＩＯＳ）を含み得る。アプリケーションプログラムは、ローカルコンピュータ可読媒体（例えばハードディスク２４４や光ディスク２４２）に記憶し、システムメモリ２１７に読み込んでプロセッサ２１４によって実行することができる。アプリケーションプログラムは、例えばネットワークインターフェイス２４８またはモデム２４７を介して、遠隔地（すなわち遠隔地にあるコンピュータシステム２１０）からシステムメモリ２１７に読み込むこともできる。図２では、構成伝播管理システム１０１が、システムメモリ２１７に常駐するものとして示されている。構成伝播管理システム１０１の働きについて、図３と関連付けて以下さらに詳しく説明する。
【００１９】
記憶装置インターフェイス２３４は、１つもしくはそれ以上のハードディスク２４４（および／または他の標準的な記憶媒体）に連結されている。ハードディスク２４４は、コンピュータシステム２１０の一部であってよく、あるいは物理的に別々になっており、他のインターフェイスシステムを通じてアクセスされるようになっていてもよい。
【００２０】
ネットワークインターフェイス２４８および／またはモデム２４７は、インターネットなどのネットワーク１０７に直接または間接的に通信可能に連結することができる。かかる連結は有線であっても無線であってもよい。
【００２１】
図３は、いくつかの実施形態にかかる、コンピュータ２１０のシステムメモリ２１７に常駐する構成伝播管理システム１０１の操作を表している。上述したとおり、構成伝播管理システム１０１の機能は、クライアント１０３あるいはサーバー１０５に存在していてよく、構成伝播管理システム１０１の機能がネットワーク１０７経由のサービスとして提供されるクラウドベースのコンピューティング環境内など、複数のコンピュータシステム２１０間に分散していてもよい。なお、構成伝播管理システム１０１は図３に単一のエンティティとして表されているが、図示されている構成伝播管理システム１０１は、所望に応じて単一または複数のモジュールとしてインスタンス生成を行うことのできる機能の集合を表している（構成伝播管理システム１０１の具体的な複数のモジュールのインスタンス生成が図３に示されている）という点を理解すべきである。構成伝播管理システム１０１のモジュールは、任意のコンピュータシステム２１０のシステムメモリ２１７（例えばＲＡＭ、ＲＯＭ、フラッシュメモリ）内で（例えばオブジェクトコードまたは実行可能イメージとして）インスタンス生成を行うことができ、コンピュータシステム２１０のプロセッサ２１４がモジュールを処理すると、関連付けられた機能をコンピュータシステム２１０が実行するようになっているという点を理解すべきである。本明細書で使用される「コンピュータシステム」、「コンピュータ」、「クライアント」、「クライアントコンピュータ」、「サーバー」、「サーバーコンピュータ」、および「演算装置」という用語は、上記の機能を実行するように構成および／またはプログラムされた１つもしくはそれ以上のコンピュータを意味する。加えて、構成伝播管理システム１０１の機能を実装するためのプログラムコードは、非一時的なコンピュータ可読記憶媒体に記憶することができる。この状況では、磁気媒体または光学式記憶媒体など、任意の形態の有形コンピュータ可読記憶媒体を使用することができる。本明細書で使用されている「コンピュータ可読記憶媒体」という用語は、基底物理媒体から切り離された電気信号を意味するものではない。
【００２２】
図３に示すとおり、構成伝播管理システム１０１は、ホスト３０３と、ホスト３０３で使用するために用意された複数のゲスト３０５との間、および／または任意のゲスト３０５間での構成要素３０１の選択的な双方向伝播を可能にする。以下にさらに詳しく説明するとおり、構成要素３０１は、構成可能なポリシー３０７に従って、起点となるオペレーティングシステム環境から別のオペレーティングシステム環境へと伝播させることができる。ポリシー３０７は、どの構成要素３０１をどのような周辺事情下でどの環境からどの環境へと伝播するかを指定することができる。本明細書で使用されている「オペレーティングシステム環境」は、所与のオペレーティングシステムと構成要素３０１の集合とで構成されたホスト３０５またはゲスト３０３を意味する。
【００２３】
ポリシー３０７は、伝播元、状況、内容および／または伝播先レベルで構成要素３０１伝播を司るルールを指定することができる。構成要素３０１は、ポリシー３０７に従って、ホスト３０５からゲスト３０３に、あるゲスト３０３から別のゲストに、および／またはゲスト３０３からホスト３０５に伝播させることができる。このポリシーは、どの構成要素３０１がどのゲスト３０５および／またはホスト３０３の間で伝播されるか、およびこれらの伝播が行われる方向を指定することができる。ポリシー３０７はまた、どのような周辺事情下で、新たに作成されたゲスト３０５にどの構成要素３０１を伝播すべきかを指定することもできる。
【００２４】
図３に示すとおり、いくつかの実施形態では、構成伝播管理システム１０１がハイパーバイザー３０９レベルで稼働する。図示のとおり、複数のゲスト３０３（仮想マシン）およびハイパーバイザー３０９が、ホスト３０５のコンピュータメモリ２１７で稼働する。ホスト３０５は、例えば図２に示す種類の物理コンピュータ２１０という形態であり得る。図３では、２つのゲスト３０３だけが例示目的で示されているが、実際にはそれ以上を展開することができる。ホスト３０５と各ゲスト３０３は、自身専用の構成要素３０１を有する。本明細書で使用されている「構成要素３０１」という用語は、ユーザーの個人設定をはじめとする設定（Ｗｉｎｄｏｗｓタスクバー／ツールバーのレイアウト、スタートメニューの個人設定、エクスプローラフォルダ表示の詳細レベル設定、ブラウザのブックマーク、ワードプロセッサのメニュー設定、デフォルトのプリンタおよび印刷設定、ネットワーク設定など）など、ユーザーによって構成可能なオペレーティングシステム、コンピュータシステム２１０またはアプリケーションの構成要素を意味するということを理解すべきである。
【００２５】
構成伝播管理システム１０１の構成要素監視モジュール３０８が、ホスト３０５およびゲスト３０３の構成要素３０１を監視する。Ｗｉｎｄｏｗｓ、Ｕｎｉｘ（登録商標、以下同じ）／Ｌｉｎｕｘ（登録商標、以下同じ）バリアント、Ｍａｃ  ＯＳなど定評あるオペレーティングシステムは、構成要素３０１を記憶するための標準化された定義済み構造を有する。例えば、Ｗｉｎｄｏｗｓ下では、ユーザーの個人設定やアプリケーション設定など多くの構成要素３０１が、レジストリおよび／または標準的なフォルダ箇所（＼ｕｓｅｒｓ＼＜ユーザー名＞＼ＡｐｐＤａｔａ＼など）にある特定ファイルに記憶されている。Ｍａｃ  ＯＳの場合には、アプリケーション設定など多くの構成要素３０１が、ユーザーの個人設定ディレクトリ（ユーザーの〜Ｌｉｂｒａｒｙ／Ｐｒｅｆｅｒｅｎｃｅｓやコンピュータの全体設定のＬｉｂｒａｒｙ／Ｐｒｅｆｅｒｅｎｃｅｓなど）の配下にあるファイルに記憶されている。Ｕｎｉｘ／Ｌｉｎｕｘバリアントは、同様の規約（〜／．ｓｏｆｔｗａｒｅ／ｓｅｔｔｉｎｇｓ．ｃｎｆなど）を使用する。Ｊａｖａ（登録商標）および．ＮＥＴなどのランタイムフレームワークも、ユーザーレベルおよびコンピュータレベルの設定を記憶および取得するための書面化されたメカニズムを有する。
【００２６】
構成要素監視モジュール３０８は、構成要素３０１がホスト３０５およびゲスト３０３（レジストリ、適切なファイル／フォルダなど）に記憶される構造を監視する。構成伝播管理システム１０１の構成要素変更検知モジュール３１１は、監視されている構成要素３０１に対して施された変更を検知する。構成要素変更検知モジュール３１１が構成要素３０１に対して施された変更を検知すると、構成伝播管理システム１０１の伝播判断モジュール３１３が、変更された構成要素３０１をその他任意のオペレーティングシステム環境（すなわちゲスト３０３かホスト３０５のいずれか）に伝播するかどうかを判断する。この判断をするために、伝播判断モジュール３１３は、どんな種類の構成要素３０１が、どのような条件下でどの伝播元からどの伝播先に伝播されるかを指定するポリシー３０７を読み出す。伝播判断モジュール３１３は、ポリシー３０７に基づいて、変更された構成要素３０１を伝播するかどうかを判断する。
【００２７】
ポリシー３０７は、構成伝播管理システム１０１のポリシー維持モジュール３１５が維持する。いくつかの実施形態では、構成伝播管理システム１０１にデフォルトのポリシー３０７が備わっている。いくつかの実施形態において、ポリシー３０７は、システム管理者、ＩＴプロフェッショナル、ユーザーおよび／または他の個人によって編集または構成することができる。いくつかの実施形態では、デフォルトのポリシー３０７のアップデートを、例えばサーバー１０５（図示せず）からインターネット経由で分散させることができる。
【００２８】
ポリシー３０７は、任意の所望レベルの細かさで伝播命令を指定することができる。ポリシー３０７は、ホスト３０５と具体的なゲスト３０３との間、および複数の具体的なゲスト３０３間で単方向および／または双方向の構成要素３０１伝播経路を定義することができる。言い換えれば、構成要素３０１は、起点および／または伝播先に従って所望のとおりに伝播させることができる。ポリシーは、起点および／または伝播先の具体的なゲスト３０３を定義することに加えて、あるいは定義する代わりに、ワイルドカード（例えば「Ｄｅｖ−＊」）を使用して任意のゲスト３０３の名前を指定することもできる。
【００２９】
ポリシー３０７は、構成要素３０１が伝播される条件を指定することもできる。ポリシーは構成要素３０１を、例えば、アプリケーション別、アプリケーションが記憶されるフォルダ別、またはアプリケーションの任意名および／またはパス（例えば「＊：＼＊＼Ｍｉｃｒｏｓｏｆｔ  Ｏｆｆｉｃｅ＼＊．ｅｘｅ」）別にフィルタリングするように指定することができる。アプリケーションに加え、ポリシーは、ファイルシステムなど、オペレーティングシステムの特定のサブシステムや、ディスプレイなど特定のハードウェアコンポーネントに関する構成要素３０１を伝播するように指定することができる。
【００３０】
加えて、ポリシー３０７は、構成要素３０１自体の識別情報、属性、および／または内容に従って構成要素３０１を伝播するように指定することもできる。その例として、Ｗｉｎｄｏｗｓのタスクバー／ツールバーのレイアウト、スタートメニューの個人設定、ブラウザのお気に入りなどがある。
【００３１】
ポリシー３０７が出し得る構成要素３０１の伝播命令の具体例をいくつかひと通り見てみることが、構成伝播管理システム１０１によって可能となる場面の種類を理解するのに役立つはずである。上記のとおり、具体的なゲスト３０３が開発環境として使用されることが多い。開発者が開発環境を自身の主要作業環境として取り扱うこと、および開発環境をカスタマイズして開発作業用に最適化することは珍しくない。これらのカスタマイズ設定を他の開発環境（例えば、開発のために使用される他のゲスト３０３）に伝播することはおそらく望ましいことであり、ホスト３０５に伝播することでさえ、望ましいことである可能性が高い。ポリシー３０７は、このように、開発環境として分類されたゲスト３０３間で、すべての（または具体的な）構成要素３０１あるいは特定の種類の構成要素３０１に対して施された任意の（または具体的な）変更あるいは具体的な種類の変更を伝播するように指定することができ得る。
【００３２】
もう１つの実施例は、ポリシーが、（生産環境として分類できる）ホスト３０５に対してだけでなく、生産環境として分類されるゲスト３０３間でも構成要素３０１の変更を伝播するように指定するというものである。なお、個々のゲスト３０３および／またはホスト３０５は、１つもしくはそれ以上の種類の環境（例えば、開発環境、生産環境、テスト環境など）に属しているものとして分類することができる。
【００３３】
ポリシー３０７による構成要素３０１の伝播命令のもう１つの実施例は、構成要素３０１をホスト３０５からすべてのゲスト３０３に伝播するというものである。ただし、上記実施例は例示的なものに過ぎず、各種実施形態において、ポリシー３０７は、具体的な構成要素３０１の起点、伝播先、状況、周辺事情、要素の内容、または他の属性および組み合わせに応じてこれらの要素を伝播するかどうかを判断するための材料となる他の各種要因を指定できるということを理解すべきである。また、ポリシー３０７は、特定のオペレーティングシステム環境間で、特定の構成要素３０１を伝播するように指定できる一方で、特定の周辺事情下で特定の構成要素３０１を伝播しないよう（明示的または暗示的に）指示することもできるということも理解すべきである。
【００３４】
ポリシー３０７に基づき、１つもしくはそれ以上の変更された構成要素３０１をあるオペレーティングシステム環境から少なくとも１つの他のオペレーティングシステム環境に伝播すると伝播判断モジュール３１３が判断した場合、構成伝播管理システム１０１の構成要素伝播モジュール３１７は、その変更された構成要素３０１を伝播元オペレーティングシステム環境から伝播先オペレーティングシステム環境へと伝播する。上記のとおり、構成要素伝播モジュール３１７は、ホスト３０５から１つもしくはそれ以上のゲスト３０３に、あるゲストから１つもしくはそれ以上の他のゲスト３０３に、および／またはゲスト３０３からのホスト３０５に構成要素３０１を伝播することができる。
【００３５】
構成要素伝播モジュール３１７は、ハイパーバイザーレベル３０９で稼働しているので、任意のゲスト３０３からホスト３０５またはその他任意のゲスト３０３へと構成要素３０１を伝播することができる。以下に説明するとおり、構成要素伝播モジュール３１７は構成要素３０１をホスト３０５から任意のゲスト３０３へと伝播することもできる。
【００３６】
一実施形態において、構成要素３０１の伝播は、ホスト３０５および各ゲスト３０３上で稼働しているプレースホルダ３１９を介して実施される。構成要素３０１を伝播する際、伝播元のコンポーネントのプレースホルダ３１９は、伝播先コンポーネントのプレースホルダ３１９と通信することができる。ゲスト３０３（伝播元）からホスト３０５（伝播先）に構成要素３０１を伝播する実施例では、ゲスト３０３で変更された構成要素３０１へのアップデートが、ゲストのプレースホルダ３１９によってホストのプレースホルダ３１９に送信される。ホストのプレースホルダ３１９はその後、適切な更新を実施して、ゲストの構成要素３０１に対する検知された変更をホスト３０５に伝播する。複数のゲスト３０３間での伝播の場合もこれと同じ処理である。ホスト３０５からゲスト３０３への伝播の場合には、上記のプロセスとは逆となる（すなわち、ホストのプレースホルダ３１９が、ホスト３０５で変更された構成要素３０１に対するアップデートをゲストのプレースホルダ３１９に送信し、ゲストのプレースホルダ３１９は、それに応じて構成要素３０１を更新し、変更内容を伝播する）。いくつかの実施形態では、プレースホルダ３１９がハイパーバイザー３０９を介して互いに通信するが、他の実施形態では、プレースホルダ３１９どうしの通信が、従来のＴＣＰ／ＩＰソケット経由など他の方法で行われるということを理解すべきである。本明細書で使用されている「プレースホルダ」３１９という用語は、上記の機能を有するプロセスを意味するに過ぎないということを理解すべきである。
【００３７】
いくつかの実施形態では、新しいゲスト３０３がホスト３０５で作成されるたびに、構成伝播管理システム１０１のゲスト構成モジュール３２３が新しいゲスト３０３の作成を検知する。ゲスト構成モジュール３２３は、新たに作成されたゲスト３０３を、同じオペレーティングシステムおよび／または新たに作成されたゲスト３０３としての分類を有するホスト３０３や別のゲスト３０３の構成要素３０１などに従って自動的に構成する。こうして、具体的なオペレーティングシステムおよび／または分類と関連付けられたカスタマイズおよび設定が新しいゲスト３０３へと自動的に伝播される。ゲスト構成モジュール３２３は、上記構成要素３０１の伝播機能を使用して、伝播元のコンポーネント（例えばホスト３０５）の構成要素３０１設定のすべて（または具体的な一部）を新たに作成されたゲスト３０３に自動的に伝播する。ポリシー３０７は、どの伝播元構成要素３０１が、どのような周辺事情下で、新たに作成されたゲスト３０３に伝播されるかを指定することができる。ポリシー３０７は、新たに作成されたゲスト３０３を任意のレベルの細かさで構成するように指定することができる。
【００３８】
いくつかの実施形態では、あるオペレーティングシステム（例えばあるゲスト３０３で稼働しているＷｉｎｄｏｗｓ  ＸＰ）の構成要素３０１が別のオペレーティングシステム（例えば別のゲスト３０３で稼働しているＷｉｎｄｏｗｓ  ７またはＭａｃ  ＯＳ）に伝播される。かかる場合には、構成伝播管理システム１０１の構成要素マッピングモジュール３２１が、第１のオペレーティングシステムから伝播されている構成要素３０１を第２のオペレーティングシステムにおける同等または対等の構成要素３０１にマッピングする。例えば、種々の設定および選択の名前および記憶箇所がオペレーティングシステム間で違っていても、同等または共通の機能である場合がある。いくつかの実施形態では、構成要素マッピングモジュール３２１が、オペレーティングシステム間で同等および対等の構成要素３０１のマッピングを維持し、維持されているこれらのマッピングを使用して、異なるオペレーティングシステム間での構成要素３０１の伝播中に上記機能を実行する。
【００３９】
図４は、いくつかの実施形態にかかる構成伝播管理システム１０１（図１）の操作のステップを示す。ポリシー維持モジュール３１５（図３）が、構成要素３０１（図３）が条件下で伝播元と伝播先の間で伝播されることを指示するポリシー３０７（図３）を維持する（４０１）。構成要素監視モジュール３０８（図３）が、ホスト３０５（図３）およびゲスト３０３（図３）の構成要素３０１（図３）を監視する（４０３）。構成要素変更検知モジュール３１１（図３）が、監視されている構成要素３０１（図３）に対して施された変更を検知する（４０５）。伝播判断モジュール３１３（図３）が、ポリシー３０７（図３）に基づいて、変更された構成要素３０１（図３）をオペレーティングシステム環境間で伝播するかどうかを判断する（４０７）。伝播判断モジュール３１３（図３）が、伝播元オペレーティングシステム環境を起点とする少なくとも１つの変更された具体的な構成要素３０１（図３）を、少なくとも１つの伝播先オペレーティングシステム環境に伝播すると判断する（４０９）。この判断を受けて、構成要素伝播モジュール３１７（図３）が、変更された具体的な構成要素３０１（図３）を伝播元オペレーティングシステム環境から伝播先オペレーティングシステム環境に伝播する（４１１）。ゲスト構成モジュール３２３（図３）が、新しいゲスト３０３（図３）の作成を検知し（４１３）、１つもしくはそれ以上の構成要素３０１（図３）を、少なくとも１つの伝播元から、新たに作成されたゲスト３０３（図３）へと伝播する（４１５）。
【００４０】
当該技術に精通する者によって理解されるとおり、本発明は、その精神またはその本質的な特徴から逸脱しない限り、他の具体的な形態で具現化され得る。同様に、部分、モジュール、エージェント、マネージャ、コンポーネント、機能、手順、行為、層、特徴、属性、方法論、データ構造、および他の態様の特定の名前および区分は必須でも重要でもなく、本発明またはその特徴を実装するメカニズムは、異なる名前、区分や形式を有し得る。上記記載内容は、具体的な実施形態を参照しながら説明目的で記載したものである。ただし、上記の代表的な解説は、すべてを網羅したり、開示された正確な形態に制限したりすることを意図するものではない。上記教示を鑑みて多くの改変および変形が可能である。上記実施形態は、該当する原理と実践的な応用例を最も良好に説明し、それによって他の当業者が、意図された特定得る各種改変の有無にかかわらず各種実施形態を最良に利用できるようにすることを目的として選択および記載されたものである。
【図１】
0005951002.tif 000002
【図２】
0005951002.tif 000003
【図３】
0005951002.tif 000004
【図４】
0005951002.tif 000005