(57)【要約】      （修正有）【課題】クラウド環境において汎用製品を結合するためのシステムおよび方法を提供する。【解決手段】仮想アセンブリビルダーは、参照環境においてインストールされたコンポーネントを仮想化し、次にそれらのコンポーネントを別の宛先環境にデプロイメントする。ユーザは、ソフトウェアコンポーネントの構成およびバイナリをソフトウェアアプライアンスアーティファクトに取り込むことができ、それらはグループ化され、それらの関係はソフトウェアアセンブリアーティファクトとして定義され得る。汎用製品イントロスペクタープラグインは、ユーザが、イントロスペクション時、仮想アセンブリの生成中に、仮想アセンブリのその後のリハイドレーション中にスクリプトによる編集および構成のために公開されるべき１つ以上のメタデータプロパティを特定する。【選択図】図６
2019109922.tif 000002
【特許請求の範囲】
【請求項１】
クラウド環境において仮想アセンブリビルダーを用いて汎用製品を結合するためのシステムであって、
１つ以上のコンピュータを含み、前記コンピュータは当該コンピュータ上で実行されるクラウド環境を含み、前記システムはさらに、
仮想アセンブリアーカイブのリポジトリを維持する仮想アセンブリビルダーコンポーネントを含み、各仮想アセンブリは、アセンブリのインスタンスをインスタンス化するために使用可能な、メタデータおよび１つ以上の仮想マシンテンプレートを含むことができ、前記システムはさらに、
ユーザが、イントロスペクション時、仮想アセンブリの生成中に、仮想アセンブリのその後のリハイドレーション中にスクリプトによる編集および構成のために公開されるべき１つ以上のメタデータプロパティを特定することを可能にする、汎用製品イントロスペクタープラグインを含む、システム。
【請求項２】
スクリプトによる編集および構成のために公開されるプロパティは、アセンブリのインスタンスのインスタンス化中、インスタンスのための１つ以上の入力および出力を規定するために使用される、請求項１に記載のシステム。
【請求項３】
インスタンスのための１つ以上の入力および出力は１つ以上のソケットを含み、スクリプトは、アセンブリのインスタンスのインスタンス化中、１つ以上のソケットのためのホスト、ポート、および他の情報を判断するために使用される、請求項２に記載のシステム。
【請求項４】
スクリプトはリハイドレーションの前に、１つ以上のソケットのためのホスト、ポート、および他の情報を修正するために、仮想アセンブリを修正することなく編集可能である、請求項３に記載のシステム。
【請求項５】
クラウド環境において仮想アセンブリビルダーを用いて汎用製品を結合するための方法であって、
１つ以上のコンピュータ上で実行されるクラウド環境を含む前記１つ以上のコンピュータに、仮想アセンブリアーカイブのリポジトリを維持する仮想アセンブリビルダーコンポーネントを提供するステップを含み、各仮想アセンブリは、アセンブリのインスタンスをインスタンス化するために使用可能な、メタデータおよび１つ以上の仮想マシンテンプレートを含むことができ、前記方法はさらに、
ユーザが、イントロスペクション時、仮想アセンブリの生成中に、仮想アセンブリのその後のリハイドレーション中にスクリプトによる編集および構成のために公開されるべき１つ以上のメタデータプロパティを特定することを可能にする、汎用製品イントロスペクタープラグインを提供するステップを含む、方法。
【請求項６】
スクリプトによる編集および構成のために公開されるプロパティは、アセンブリのインスタンスのインスタンス化中、インスタンスのための１つ以上の入力および出力を規定するために使用される、請求項５に記載の方法。
【請求項７】
インスタンスのための１つ以上の入力および出力は１つ以上のソケットを含み、スクリプトは、アセンブリのインスタンスのインスタンス化中、１つ以上のソケットのためのホスト、ポート、および他の情報を判断するために使用される、請求項６に記載の方法。
【請求項８】
スクリプトはリハイドレーションの前に、１つ以上のソケットのためのホスト、ポート、および他の情報を修正するために、仮想アセンブリを修正することなく編集可能である
、請求項７に記載の方法。
【請求項９】
１つ以上のコンピュータによって読取られて実行されると前記１つ以上のコンピュータに以下のステップを実行させる命令が格納された、非一時的なコンピュータ読取可能な媒体であって、前記ステップは、
１つ以上のコンピュータ上で実行されるクラウド環境を含む前記１つ以上のコンピュータに、仮想アセンブリアーカイブのリポジトリを維持する仮想アセンブリビルダーコンポーネントを提供するステップを含み、各仮想アセンブリは、アセンブリのインスタンスをインスタンス化するために使用可能な、メタデータおよび１つ以上の仮想マシンテンプレートを含むことができ、前記ステップはさらに、
ユーザが、イントロスペクション時、仮想アセンブリの生成中に、仮想アセンブリのその後のリハイドレーション中にスクリプトによる編集および構成のために公開されるべき１つ以上のメタデータプロパティを特定することを可能にする、汎用製品イントロスペクタープラグインを提供するステップを含む、非一時的なコンピュータ読取可能な媒体。
【請求項１０】
スクリプトによる編集および構成のために公開されるプロパティは、アセンブリのインスタンスのインスタンス化中、インスタンスのための１つ以上の入力および出力を規定するために使用される、請求項９に記載の非一時的なコンピュータ読取可能な媒体。
【請求項１１】
インスタンスのための１つ以上の入力および出力は１つ以上のソケットを含み、スクリプトは、アセンブリのインスタンスのインスタンス化中、１つ以上のソケットのためのホスト、ポート、および他の情報を判断するために使用される、請求項１０に記載の非一時的なコンピュータ読取可能な媒体。
【請求項１２】
スクリプトはリハイドレーションの前に、１つ以上のソケットのためのホスト、ポート、および他の情報を修正するために、仮想アセンブリを修正することなく編集可能である、請求項１１に記載の非一時的なコンピュータ読取可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
著作権表示
この特許文献の開示の一部は、著作権保護の対象となる資料を含む。この特許文献または特許開示は特許商標庁の特許ファイルまたは記録に記載されているため、著作権保有者は、何人によるその複写複製に対して異議はないが、その他の場合には如何なるときもすべての著作権を保有する。
【０００２】
優先権主張
本願は、２０１３年３月１５日に出願された、「汎用製品の結合および他の仮想アセンブリビルダー機能のためのシステムおよび方法」（SYSTEMS AND METHODS FOR GENERIC PRODUCT WIRING AND OTHER VIRTUAL ASSEMBLY BUILDER FEATURE）と題された米国仮出願第
６１／７９８，７２０号の優先権の利益を主張する。当該出願はここに引用により援用される。
【０００３】
発明の分野
本発明の実施形態は一般に、クラウドコンピューティング環境での使用のためのシステムおよび方法に関し、特に、仮想アセンブリビルダー環境における汎用製品の結合のためのシステムおよび方法に関する。
【背景技術】
【０００４】
背景
一般に言われるように、仮想化とは、オペレーティングシステムおよびその上で実行されるソフトウェアアプリケーションから、コンピュータハードウェアリソース、たとえばそのプロセッサ、メモリ、ストレージ、およびネットワークインターフェイスなどを抽象化するプロセスである。コンピュータは、ハイパーバイザなどの仮想化コンポーネントを含んでいてもよく、それは複数のオペレーティングシステムのインストールを可能にし、それらは各々、それら自体のセキュアな環境内で同時にかつ独立して実行可能である。仮想化は、完全な処理環境のデプロイメントをより迅速に、より容易に、かつより効率的にすることができる。
【０００５】
たとえば、クラウド環境は、以前は組織自体の情報技術部門によって提供されたかもしれない責務が、組織の内部（すなわちプライベート）または外部（すなわちパブリック）の消費者によって使用されるために、サービス層として供給されることを可能にする。クラウド環境は仮想化機能を利用して、ある特定のサービスをどのように構成し、プロビジョニングし、制御すべきかを迅速にかつ容易に修正することができる。これらは、本発明の実施形態を使用できる環境の種類の数例である。
【発明の概要】
【課題を解決するための手段】
【０００６】
概要
ここに記載されるのは、クラウド環境において汎用製品を結合するためのシステムおよび方法である。一実施形態によれば、仮想アセンブリビルダーは、参照環境においてインストールされたコンポーネントを仮想化し、次にそれらのコンポーネントを別の宛先環境にデプロイメントするために使用可能である。ユーザは、ソフトウェアコンポーネントの構成およびバイナリをソフトウェアアプライアンスアーティファクトに取り込むことができ、それらはグループ化され、それらの関係はソフトウェアアセンブリアーティファクト
として定義され得る。一実施形態によれば、汎用製品イントロスペクター（introspector）プラグインは、ユーザが、イントロスペクション時、仮想アセンブリの生成中に、仮想アセンブリのその後のリハイドレーション（rehydration）中にスクリプトによる編集お
よび構成のために公開される（exposed）べき１つ以上のメタデータプロパティを特定す
ることを可能にする。スクリプトによる編集および構成のために公開されるプロパティは、アセンブリのインスタンスのインスタンス化中、インスタンスのための１つ以上の入力および出力を規定するために使用可能である。
【図面の簡単な説明】
【０００７】
【図１】一実施形態に従った仮想アセンブリビルダー環境を示す図である。
【図２】一実施形態に従った仮想アセンブリビルダー環境をさらに示す図である。
【図３】一実施形態に従った、仮想アセンブリビルダーを利用できる例示的なクラウドコンピューティング環境を示す図である。
【図４】一実施形態に従った、クラウドコンピューティング環境における仮想アセンブリビルダーの使用を示す図である。
【図５】一実施形態に従った、クラウドコンピューティング環境における仮想アセンブリビルダーの例示的な使用を示す図である。
【図６】一実施形態に従った、汎用製品の結合をサポートする汎用製品イントロスペクタープラグインの使用を示す図である。
【図７】一実施形態に従った、仮想アセンブリビルダーでの汎用製品イントロスペクタープラグインの使用をさらに示す図である。
【図８】一実施形態に従った、仮想アセンブリビルダーでの汎用製品イントロスペクタープラグインの使用をさらに示す図である。
【図９】一実施形態に従った、仮想アセンブリビルダー環境における汎用製品の結合のためのプロセスのフローチャートである。
【発明を実施するための形態】
【０００８】
詳細な説明
上述のように、仮想化とは、オペレーティングシステムおよびその上で実行されるソフトウェアアプリケーションから、コンピュータハードウェアリソース、たとえばそのプロセッサ、メモリ、ストレージ、およびネットワークインターフェイスなどを抽象化するプロセスである。たとえば、コンピュータは、ハイパーバイザなどの仮想化コンポーネントを含んでいてもよく、それは複数のオペレーティングシステムのインストールを可能にし、それらは各々、それら自体のセキュアな環境内で同時にかつ独立して実行可能である。
【０００９】
一実施形態によれば、仮想アセンブリビルダーは、参照環境においてインストールされたコンポーネントを仮想化し、次にそれらのコンポーネントを別の宛先環境にデプロイメントするために使用可能である。ユーザは、ソフトウェアコンポーネントの構成およびバイナリをソフトウェアアプライアンスアーティファクトに取り込むことができ、それらはグループ化され、それらの関係はソフトウェアアセンブリアーティファクトとして定義され得る。
【００１０】
一実施形態によれば、汎用製品イントロスペクタープラグインは、ユーザが、イントロスペクション（introspection）時、仮想アセンブリの生成中に、仮想アセンブリのその
後のリハイドレーション中にスクリプトによる編集および構成のために公開されるべき１つ以上のメタデータプロパティを特定することを可能にする。スクリプトによる編集および構成のために公開されるプロパティは、アセンブリのインスタンスのインスタンス化中、インスタンスのための１つ以上の入力および出力を規定するために使用可能である。
【００１１】
仮想アセンブリビルダー（Virtual Assembly Builder：ＶＡＢ）
図１は、一実施形態に従った仮想アセンブリビルダー環境１００を示す。図１に示すように、仮想アセンブリビルダー（ＶＡＢ）１２８（たとえば、オラクル仮想アセンブリビルダー（Oracle Virtual Assembly Builder：ＯＶＡＢ））は、ミドルウェアコンポーネ
ント１２２、仮想マシンコンポーネント１２４、および／またはデータベースコンポーネント１２６といった１つ以上のインストールされたソフトウェアコンポーネントを含む参照環境１２０をイントロスペクションする（introspect）ために使用可能である。仮想アセンブリビルダーは次に、１つ以上の構成１４０、１５０に従った仮想マシンまたはサーバ１４３、１４４、１４９、１５３、１５４、１５９の１つ以上の仮想化されたリソースプール１４１、１５１を有する宛先環境へのデプロイメントのために、アプライアンス１３２および関連付けられたメタデータ１３４を各々含む１つ以上のアセンブリ１３０を準備可能である。
【００１２】
一実施形態によれば、仮想アプライアンス（ここに概してアプライアンスと呼ぶ）とは、ソフトウェアコンポーネントおよびその局所的な実行環境を表わす。たとえば、アプライアンスは、アプリケーション構成、バイナリ、およびオペレーティングシステムを含み得る。
【００１３】
一実施形態によれば、仮想アセンブリ（ここに概してアセンブリと呼ぶ）とは、ハードウェアリソースのプールへのデプロイメント時に連携するように構成された、相関するアプライアンスの集合である。アセンブリはまた、メタデータの形をした、外部配置された（externalized）構成用のサポート、相互依存性を反映するようにアプライアンスの開始順序を規定する手段、および／または、データベース、サーバ、またはセキュリティプロバイダといった外部システムを参照するためのサポートなど、生産環境におけるそれらの有用性を高める能力を提供してもよい。
【００１４】
一実施形態によれば、仮想アセンブリビルダーは、複雑なアプリケーション構造を包含するアセンブリをユーザが構築できるようにする、視覚またはコマンドライン構成環境、もしくは他のツールまたはインターフェイスを含み得る。たとえば、ユーザが、既存のアプライアンスおよびアセンブリのカタログを閲覧し再使用すること、もしくは、ドラッグ・アンド・ドロップまたは編集可能なプロパティを使用してアプライアンス間の接続を修正することを可能にする、インターフェイスが提供可能である。
【００１５】
一実施形態によれば、アセンブリ作成およびデプロイメントは、マルチステッププロセスである。イントロスペクション段階では、ユーザは、個々のまたは複数の分散ソフトウェアコンポーネント用の構成メタデータを取り込むことができる。ターゲットコンポーネントは、物理システムまたは仮想システムであり得るシステム上に、局所的にまたは遠隔に存在していてもよい。
【００１６】
構成段階では、ユーザは１つ以上のインターフェイスを使用して、たとえば、ナビゲート可能なカタログにおいて維持されたアプライアンスをドラッグ・アンド・ドロップすること、アプライアンス間の関係を確立すること、および／または、アプライアンスからデータベース、サーバまたはセキュリティプロバイダといった外部リソースまで接続を作成することにより、アセンブリを構成することができる。
【００１７】
準備段階では、ユーザは、ブート可能な仮想マシンディスク画像を作成することができ、それらは、ソフトウェアコンポーネントのデプロイメント時間のカスタマイゼーションを可能にする、カスタマイズされたオペレーティングシステム（operating system：ＯＳ）分散および構成可能メタデータを含む。
【００１８】
デプロイメント段階では、ユーザは、仮想化された環境において利用可能なターゲット
を発見し、カスタマイズされたデプロイメント構成を作成し、アプライアンスディスク画像をステージし、アセンブリをターゲット上にデプロイメントし、必要であればアプライアンスインスタンスをスケーリングし、デプロイメントされたインスタンスを既存のアセンブリに自動的に結合することができる。
【００１９】
たとえば、一実施形態によれば、仮想アセンブリビルダーは、ソース環境からオラクルフュージョンミドルウェア（Oracle Fusion Middleware：ＦＭＷ）およびオラクルデータベースソフトウェアコンポーネントの組の既存の状態を取り込み、コンポーネントをアセンブリとして表わし、宛先環境へのそれらのデプロイメントを可能にするために、上述のように使用可能である。
【００２０】
図２は、一実施形態に従った仮想アセンブリビルダー環境をさらに示す。図２に示すように、一実施形態によれば、仮想アセンブリビルダー環境は、アプリケーションサーバ１６０でホストされたＶＡＢデプロイヤ１６２を含んでいてもよく、それは、リソースプール１６４と、ＶＡＢリポジトリ１６８と、状態１７０の持続を可能にするストレージコンポーネント（たとえばオラクル・コヒーレンス（Coherence））１６６とを有する１つ以
上の仮想化システムへのアクセスを提供する。ＶＡＢデプロイヤおよびその動作へのアクセスは、１つ以上のＶＡＢインターフェイス１８０、たとえば、ＶＡＢコンポーザコンポーネント１８２、コマンドラインインターフェイス１８４、もしくはウェブサービス１８６または他のインターフェイスによって提供可能である。
【００２１】
一実施形態によれば、ＶＡＢインターフェイスは、ユーザがイントロスペクションを行ない、アセンブリ作成の段階を構成し、準備することを可能にし、また、アセンブリアーカイブおよびインスタンスをアップロードし、登録し、管理するためのサポートを提供する。たとえば、ＶＡＢデプロイヤは、インターフェイスによって作成されたアセンブリアーカイブのリポジトリを維持し、また、仮想化されたシステム（たとえば、オラクルＶＭ、ＯＶＭ）にアセンブリを登録するための動作、およびアーカイブによって規定されたソフトウェアコンポーネントのデプロイメントをオーケストレーションするための動作を提供する。
【００２２】
最小のアプライアンスは概して、元のソフトウェアコンポーネントの状態を記述するメタデータを、その構成がデプロイメント時に再作成されるようにするコンポーネント特有の１組のファイルとともに含む。アセンブリがデプロイメント用に準備されている間、追加の構成情報はメタデータに格納され得る。一実施形態によれば、メタデータは、エンドポイントと総称される、各コンポーネントの論理入力および出力の記述を含む。たとえば、ＨＴＴＰサーバのＨＴＴＰ入力およびmod_wl_ohs出力はそれぞれ、入力および出力エンドポイントの例である。エンドポイントは、プロトコル、ポートおよびＵＲＬなどの情報を含み得る。仮想アセンブリビルダーは、コンポーネントが取り込まれた後、それがデプロイメントされる前に接続が更新されることを可能にするように、各エンドポイントに関する十分な情報を取り込む。これは、アプライアンスが宛先環境内で正確に接続され得ることを確実にするのに役立つ。
【００２３】
一実施形態によれば、イントロスペクションプロセスは、宛先環境においてコンポーネントのインストールを再現するために取り込まれなければならない１つ以上のファイルシステム階層を特定するファイルセット定義を生成する。仮想アセンブリビルダーはまた、ここにファイルセットと呼ぶ、メタデータによって記述される実際のインストールのコピーを取り込んでもよい。一実施形態によれば、仮想アセンブリビルダーはコンポーネントのＸＭＬ記述を作成し、それは、イントロスペクション時にコンポーネントの構成のスナップショットを提供する。
【００２４】
一実施形態によれば、イントロスペクションは、サポートされるコンポーネントタイプごとのプラグインの使用を含む、プラグインベースであってもよい。大抵の場合、コンポーネントをイントロスペクションした結果が、アプライアンスである。しかしながら、場合によっては、たとえば仮想アセンブリビルダーがアプリケーションサーバドメインをイントロスペクションするために使用される場合、関連付けられたイントロスペクタープラグインは、たとえば、ドメインのアドミニストレーションサーバを表わすアプライアンスと、ドメインが管理するサーバを表わす他のアプライアンスとを有するアセンブリを生成できる。
【００２５】
一実施形態によれば、汎用アプライアンスは、「GenericProd」アプライアンスタイプ
を使用して構築可能であり、それは、ユーザがアプリケーション製品をアプライアンスとして作成してデプロイメントすることを可能にし、それについては仮想アセンブリビルダーはビルトインサポートを有していないかもしれない。そのようなアプライアンスは概して、構成または製品位置を取り込むために製品に特有の論理を利用せず、代わりに、比較的単純なアプライアンスが作成され、製品を構築する１組のユーザ供給プロパティ、経路およびスクリプトが追加される。作成時に通された１組のスクリプトはその後、デプロイメント時に、任意の必要な動作を行なうために実行され得る。
【００２６】
一実施形態によれば、アセンブリおよびアプライアンスは、カタログと呼ばれる区域における、ディスクなどの持続性ストレージにおいて表わすことができる。アセンブリおよびアプライアンスアーティファクト、ならびにメタデータは、カタログのルートディレクトリのサブフォルダ内の入れ子式ディレクトリに格納可能である。
【００２７】
一実施形態によれば、アセンブリテンプレートとは、新しい仮想マシンインスタンスを作成し開始するために使用可能な１組の仮想ディスク画像である。ゲストオペレーティングシステムと、アプライアンスファイルセットと、メタデータとを含むテンプレートは、アセンブリにおけるアプライアンスごとに作成可能であり、次に、それらをその環境に登録することによって、仮想化された環境で利用可能となり、その時点で仮想マシンインスタンスはテンプレートに基づいて作成可能である。
【００２８】
一実施形態によれば、アセンブリを規定する場合、そのアセンブリの外部に位置するサーバまたはリソースを参照することが必要かもしれない。たとえば、組織の環境は、多くの無関係な仮想デプロイメントによって共有される、データベース、サーバ、またはセキュリティプロバイダといった外部リソースを含むかもしれない。一実施形態によれば、環境に存在するもののアプライアンスとしてデプロイメントされないであろうリソースを表わすために、外部コンポーネントがテンプレートにおいて規定可能である。これらを外部リソースとして表わすことは、アセンブリ内の参照アプライアンスが、デプロイメント時に正確に構成されることを確実にする。
【００２９】
一実施形態によれば、アセンブリアーカイブにおいて宣言される論理ネットワークごとに使用すべき仮想化環境においてネットワークを特定するために、デプロイメントプランが使用可能である。デフォルトアセンブリおよびアプライアンスプロパティをカスタマイズし、ネットワーク構成などのデプロイメント特有情報を提供するデプロイメントプランを、ユーザは作成可能である。たとえば、一実施形態によれば、ＶＡＢデプロイヤは、１つ以上のハイパーバイザ仮想ネットワーク（Vnet）を作成し、それとやり取りする仮想マシンに取付けることができる。
【００３０】
異なる仮想化システムは、それらのリソースを異なるやり方で編成し、それらのリソースの参照およびアクセスのために異なる情報を必要とする。一実施形態によれば、異なるシステムを越えて共通のユーザ体験を提供するために、ターゲットを使用して、仮想化さ
れたシステムにおいてリソースまたはリソースのプールを参照することができる。ターゲットごとに提供される構成情報は、そのターゲットを含む仮想化システムに特有である。アセンブリインスタンスとは、特定のターゲット仮想環境のためのアセンブリアーカイブのデプロイメント可能インスタンスであり、一方、アプライアンスインスタンスとは、ターゲット仮想環境において実行または作成されるアプライアンスのインスタンスである。
【００３１】
アセンブリインスタンスは、ライフサイクルに関連付けられ得る。たとえば、ユーザは、アセンブリと、デプロイメントプランと、アセンブリがデプロイメントされるべきターゲットとを選択することによって、アセンブリインスタンスを作成可能である。アセンブリインスタンスのデプロイメントは次に、たとえばステージング、デプロイメント、および失敗といったさまざまな段階を通って移行するであろう。各段階の間、動作のサブセットが利用可能であってもよい。たとえば、アセンブリインスタンスがデプロイメントされる場合、ユーザは、アプライアンスインスタンスを開始および停止したり、または、デプロイメントされたアセンブリインスタンスに関連付けられたアプライアンスインスタンスの数を増減させることができる。
【００３２】
クラウド環境での仮想アセンブリビルダー
さまざまな実施形態によれば、仮想アセンブリビルダーは、クラウドコンピューティング環境、たとえば、ソフトウェアアプリケーションを開発しデプロイメントするためのクラウドベースのプラットフォームを可能にするためにハードウェアおよびソフトウェアを利用する環境で使用可能である。
【００３３】
図３は、一実施形態に従った、仮想アセンブリビルダーを利用できる例示的なクラウドコンピューティング環境を示す。図３に示すように、クラウドコンピューティング環境（ここにいくつかの実施形態ではクラウド環境またはクラウドと呼ぶ）２００は、１つ以上のインフラストラクチャ・アズ・ア・サービス（Infrastructure as a Service：Ｉａａ
Ｓ）層２１０、プラットフォーム・アズ・ア・サービス（Platform as a Service：Ｐａ
ａＳ）層２６０、および／またはソフトウェア・アズ・ア・サービス（Software as a Service：ＳａａＳ）層２７０の組合せを含んでいてもよく、それらは、使用中の特定のク
ラウドコンピューティングモデルに依存して、組織に対してプライベートまたはパブリックの消費者によって使用可能である。
【００３４】
一実施形態によれば、クラウド環境は、１つ以上の従来の汎用もしくは専用デジタルコンピュータ、コンピューティングデバイス、マシン、マイクロプロセッサ、メモリ、および／またはコンピュータ読取可能な記録媒体などのコンピュータハードウェアを含むシステムとして実装可能である。たとえば、一実施形態によれば、ＩａａＳ層は、共有データベースハードウェア（たとえば、Exadataマシン）２１２、および／または共有アプリケ
ーションサーバハードウェア（たとえば、Exalogicマシン）２１４を含んでいてもよく、それらはＩａａＳ  ＡＰＩ２１５を介してアクセス可能である。ＰａａＳ層は、データベースサービス２６２、アプリケーションサービス２６４、および／またはウェブセンター（WebCenter）サービス２６６などの１つ以上のＰａａＳサービスを含んでいてもよく、
一方、ＳａａＳ層は、エンタープライズアプリケーション（たとえば、オラクルＦＭＷ  ＳａａＳ）２７２、および／または、ＩＳＶまたはカスタムアプリケーション２７６などのさまざまなＳａａＳサービスを含んでいてもよい。クラウド環境はまた、共有イネーブルメントおよび管理インフラストラクチャ２２０も含んでいてもよく、それは、たとえば、１つ以上のアイデンティティ管理２２２、データインテグレーション２２４、複製（たとえば、オラクル・ゴールデンゲート（GoldenGate））２２６、仮想アセンブリビルダー２２８、システムプロビジョニング２３０、テナント管理２３２、エンタープライズマネージャ２３４、ウィルススキャン２４２、セキュアファイル転送２４４、ＨＴＴＰルーティング２４６、ホワイトリスト２４８、通知２５０、セキュアバックアップ２５２、イン
テグレーションゲートウェイ２５４、使用および課金２５６、または他のコンポーネントといった、さまざまなサービス層をサポートするツールを提供する。
【００３５】
図４は、一実施形態に従った、クラウドコンピューティング環境における仮想アセンブリビルダーの使用を示す。図４に示すように、一実施形態によれば、仮想アセンブリビルダーコンポーネント３００は、アセンブリアーカイブのリポジトリ３２４を維持する。ＯＶＡＢを使用する一実施形態によれば、アセンブリアーカイブは、オラクル仮想アセンブリ（Oracle Virtual Assembly：ＯＶＡ）フォーマットアーカイブであってもよい。
【００３６】
上述のように、一実施形態によれば、アセンブリは、ＶＡＢコンポーザ３２６、コマンドラインインターフェイス３３０、またはＯＶＡＢスタジオ（Studio）などの他の構成製品を使用して作成可能である。ＶＡＢデプロイヤコンポーネント３０４は、たとえばウェブサービス３０８または他のＶＡＢインターフェイス３０７によってアクセス可能であり、また、アセンブリをリポジトリにアップロードするための動作３４４、およびアセンブリをクラウドコンポーネントに登録するための動作を可能にする。
【００３７】
一実施形態によれば、ＶＡＢデプロイヤは、アプリケーションサーバまたはアドミニストレーションサーバ内に、もしくは、管理されたサーバの集合内にデプロイメントされ得る。マルチインスタンスの実施形態は、デプロイヤの実行時間および構成状態の格納のために、たとえばコヒーレンス３４０によって提供されるような共有データベース、ディスク、またはストレージ機能性を利用できる。
【００３８】
一実施形態によれば、ＶＡＢデプロイヤは、リポジトリへのアクセスを可能にするための仮想アセンブリマネージャ３０５と、１つ以上のリソースプールサービスプラグイン３１２、たとえばオラクルＶＭ３（ＯＶＭ３）プラグイン３１６、ＩａａＳプラグイン３１４、および／またはＥＣ２  ３１３プラグインの使用をサポートするリソースプールサービス（resource pool service：ＲＰＳ）３１０へのアクセスを提供する登録マネージャ
３０６とを含み得る。一実施形態によれば、プラグインは、ＶＭメッセージＡＰＩ（ＶＭＡＰＩ）３２０およびテンプレート３２２の使用をサポート可能であり、それらは、リソースプール３３２または仮想マシン（ＶＭ）へのアセンブリの登録３４６、およびそれらのその後のライフサイクル管理３５０を可能にする。
【００３９】
いくつかの仮想化システムは、タグがテンプレートまたはＶＭインスタンスなどのアーティファクトに関連付けられるようにし、それらは次に、たとえばある特定のデプロイメントに関連付けられたアーティファクトを見つけるために、問い合わされてもよい。
【００４０】
仮想アセンブリビルダーのライフサイクルの一環として、アセンブリは、たとえばUploadAssemblyArchive動作を使用して、ＶＡＢデプロイヤのリポジトリにアップロードされ
てもよい。アセンブリは次に、たとえばRegisterAssemblyArchive動作を使用して、１つ
以上のターゲットに登録されてもよい。登録は、アセンブリのテンプレートを、仮想アセンブリビルダー環境内のリソースプールに登録することを含み得る。アセンブリがターゲットに登録された後、その登録のために、１つ以上のデプロイメントが、たとえばCreateAssemblyInstance動作を使用して作成されてもよい。デプロイメントが一旦作成されると、アセンブリのための初期インスタンスが作成され、開始されてもよい。これが行なわれている間、ＶＡＢデプロイヤは、アセンブリをリハイドレートする（rehydrate）ために
、それらのインスタンスの初期化スクリプトに埋込まれたリハイドレーション論理を使用してもよく、それは、そのオペレーティングシステム、ネットワーク、またはディスクボリュームといったアセンブリのさまざまな局面を構成することを含む。
【００４１】
一実施形態によれば、ＶＡＢデプロイヤは、環境内での使用のために仮想マシンアプリ
ケーションスタックを構成可能である。たとえば、アプリケーションの開始時に作成されるべきサービスインスタンス間の接続を構成するために、情報が提供可能である。アセンブリが一旦デプロイメントされると、アセンブリ内のある特定のアプライアンスについての実行中のインスタンスの数を増減させるようにスケーリングするといった追加のライフサイクル動作を、実行中のシステムに適用することができる。
【００４２】
図５は、一実施形態に従った、クラウドコンピューティング環境における仮想アセンブリビルダー環境の例示的な使用を示す。たとえば、オラクルパブリッククラウド（Oracle
Public Cloud ：ＯＰＣ）などのクラウド環境は、Ｊａｖａ（登録商標）クラウドサービスインフラストラクチャを含んでいてもよく、それは、ソフトウェアアプリケーション、ミドルウェア、およびデータベース商品一式が、セルフサービス的に顧客に供給されることを可能にする。
【００４３】
図５に示すように、一実施形態によれば、システムプロビジョニングクラウドサービス４３０は、顧客から、アセンブリインスタンス４５０および／またはサービスインスタンス４６０を含む作成すべきテナント環境４４４について、オーダーを受信できる。システムはまず、複数の匿名アセンブリ（たとえば４５４、４５６、４５８）およびサービスインスタンス（たとえば４６４、４６６、４６８）を作成できる（４４７）。アセンブリおよび／またはサービスインスタンスの各々は次に、オーダー要件を満たすように構成可能である。たとえば、ある特定のアセンブリ４７２および／またはある特定のサービスインスタンス４７４が連携するように構成可能である。Ｊａｖａクラウドサービスのコンテキストでは、結果として生じるプラットフォームインスタンスは、WebLogicまたは他のアプリケーションサーバサービスを提供するために必要とされるリソースおよび関係４７６を、たとえばインスタンスデータベース、アドミニストレーションサーバ、および１つ以上のアプリケーションサーバとともに含むことができる。
【００４４】
汎用製品の結合
上述のように、仮想アセンブリビルダーを使用して、ユーザは、ソフトウェアコンポーネントの構成およびバイナリをソフトウェアアプライアンスアーティファクトに取り込むことができ、それらはグループ化され、それらの関係はソフトウェアアセンブリアーティファクトとして定義され得る。
【００４５】
一実施形態によれば、汎用製品イントロスペクタープラグインは、ユーザが、イントロスペクション時、仮想アセンブリの生成中に、仮想アセンブリのその後のリハイドレーション中にスクリプトによる編集および構成のために公開されるべき１つ以上のメタデータプロパティを特定することを可能にする。
【００４６】
前述のように、汎用アプライアンスは、「GenericProd」アプライアンスタイプを使用
して構築可能であり、それは、ユーザがアプリケーション製品をアプライアンスとして作成してデプロイメントすることを可能にし、それについては仮想アセンブリビルダーはビルトインサポートを有していないかもしれない。しかしながら、以前は、そのような汎用アプライアンスは、アプライアンス入力を含むことができず、アプライアンスに確立された接続を自動的に構成するために使用することができなかった。
【００４７】
一実施形態によれば、汎用製品イントロスペクタープラグインは、アプライアンス上の入力および出力の構成を可能にする。アプライアンスの入力および出力に関連付けられたメタデータを、ユーザ供給リハイドレーションスクリプトにさらすことができ、そのため、アセンブリ編集中にユーザによって供給された詳細、およびアプライアンスが最終的にデプロイメントされる宛先環境に従って、基礎をなす取り込まれた製品のネットワーク接続を構成することができる。
【００４８】
一実施形態によれば、第１のホストは、汎用製品イントロスペクタープラグインを使用して、宛先環境にデプロイメントされるべきソフトウェア製品を準備でき、それは、イントロスペクション中、第１のホストの入力および出力ソケットにメタデータを関連付けることを含む。追加のホストが次に、それら自体のコンポーネントおよびソフトウェア製品のデプロイメント中、第１のホストの入力および出力ソケットに関連付けられたメタデータを消費し、または他のやり方で受信し、第１のホストでのソフトウェア製品の入力および出力と適切に通信するようにそれら自体のコンポーネントおよびソフトウェア製品を構成することができる。
【００４９】
図６は、一実施形態に従った、仮想アセンブリビルダーでの汎用製品イントロスペクタープラグインの使用を示す。
【００５０】
図６に示すように、仮想アセンブリビルダーには汎用製品イントロスペクタープラグイン５００が設けられ、それはアセンブリビルダーと連携して参照環境のイントロスペクション５０４を提供する。一実施形態によれば、仮想アセンブリビルダーは、汎用製品アプライアンス５０２を構築するために使用可能であり、それは、オペレーティングシステム５１０、アプライアンスバイナリ５１２、アプライアンス構成５１４、アプリケーションライブラリ５１６、再構成スクリプト５１８、および遅延バインディングプロパティ５２２、ならびに入力５３０および出力５４０のうちの１つ以上を含む。
【００５１】
一実施形態によれば、アプライアンスの入力および出力はそれぞれ、入力メタデータ５３２および出力メタデータ５４２に関連付けられ得る。
【００５２】
イントロスペクション中、汎用製品イントロスペクタープラグインにはリハイドレーションパラメータ５０６が設けられてもよく、それは、プラグインがそのメタデータ情報を、入力メタデータおよび出力メタデータを含むリハイドレーションスクリプト５５２に発行する（５５１）ようにする。
【００５３】
リハイドレーションスクリプトは次に、宛先環境にデプロイメントされると、基礎をなす取り込まれた製品のネットワーク接続を構成するように、その入力メタデータおよび／または出力メタデータを含め、ユーザによってオプションで構成または編集されてもよい。
【００５４】
アプライアンス入力
一実施形態によれば、アプライアンス入力は、コンポーネントがソケットを開き、接続が確立されるのを待ち、入ってくる要求を扱う、ホストおよびポートの構成を表わす。アプライアンス入力に関連付けられ得るメタデータのタイプの例は、以下のものを含む：
・コンポーネントがソケットを確立するであろうポート
・コンポーネントがソケットを確立するであろう、デプロイメント時に判断されるホスト
・コンポーネントがソケット上で扱うであろうプロトコル
・エンドポイントがどのように構成され、および／または接続されるべきかを記述する詳細を有する１組の構成可能プロパティ
・エンドポイントがどのように構成され、および／または接続されるべきかを記述する詳細を有する１組の静的プロパティ
・取り込み時にコンポーネントによって使用された元のホストおよびポート。
【００５５】
リハイドレーション中、汎用製品イントロスペクタープラグイン、および他のイントロスペクタープラグインは、それらのアプライアンス入力のメタデータを調べ、アプライア
ンス入力情報を使用して、入ってくる要求を扱うためにアプライアンスが開くであろうソケットのそれら自体の構成を修正することができる。
【００５６】
これらのソケットに接続するであろう他のコンポーネントも、それらのクライアント側接続構成を適切に修正するために、リハイドレーション中にメタデータを調べることができる。
【００５７】
一実施形態によれば、アプライアンス入力は*.inputファイルとして提供可能であり、
それらは、<key>=<value>の形を有する、一行ごとのキー／値対として表わされるプロパ
ティを含む。キーは有効シェル変数名であると保証されておらず、そのため、シェル変数を作成するためにエンドポイントファイルを獲得することができない。*.inputファイル
に含まれ得るプロパティのタイプの例は、以下を含む：
・ポート：必要
・プロトコル：必要、空白のないコンマ区切りリスト
・ホスト：内部から導き出される、リハイドレーション時に利用可能
・userprop.<property-name>:オプション、常にtype="STRING"
・sysprop.<property-name>:オプション、常にtype="STRING"
・元ポート：オプション
・元ホスト：オプション。
【００５８】
一実施形態によれば、必要であると示されたプロパティは、イントロスペクション時に供給されたファイルにおいて特定されなければならない。ホストプロパティは、ユーザによって特定されるべきでなく、代わりに、リハイドレーション中に自動的に導き出される。リハイドレーションスクリプトは、ホストプロパティの値を使用して、アプライアンス入力（ApplianceInput）を構成する場合にはリスニングアドレスを設定し、アプライアンス出力（ApplianceOutput）を構成する場合には接続アドレスを設定することができる。
【００５９】
アプライアンス出力
一実施形態によれば、アプライアンス出力は、コンポーネントが接続を確立して要求を送信するホストおよびポートの構成を表わす。アプライアンス出力に関連付けられ得るメタデータのタイプの例は、以下のものを含む：
・コンポーネントが接続で使用するであろうプロトコル
・コンポーネントがどのように接続を確立するかを記述する詳細を有する１組の構成可能プロパティ
・コンポーネントがどのように接続を確立するかを記述する詳細を有する１組の静的プロパティ
・この出力が接続するであろう任意の互換性入力で必要とされる１組のプロパティ
・取り込み時にコンポーネントによって使用された元のホストおよびポート。
【００６０】
一実施形態によれば、アプライアンス出力も同様に*.outputファイルとして提供可能であり、同様に、<key>=<value>の形を有する、一行ごとのキー／値対として表わされるプ
ロパティを含む。ここでも、キーは有効シェル変数名であると保証されておらず、そのため、シェル変数を作成するためにエンドポイントファイルを獲得することができない。*.outputファイルに含まれ得るプロパティのタイプの例は、以下を含む：
・プロトコル：必要
・接続された入力：内部から導き出される、リハイドレーション時に利用可能
・userprop.<property-name>:オプション、常にtype="STRING"
・sysprop.<property-name>:オプション、常にtype="STRING"
・元ポート：オプション
・元ホスト：オプション。
【００６１】
・conn-userprop.<property-name>:オプション、接続された入力に対する要件を特定するため
・conn-sysprop.<property-name>:オプション、接続された入力に対する要件を特定す
るため。
【００６２】
一実施形態によれば、必要であると示されたプロパティは、イントロスペクション時に供給されたファイルにおいて特定されなければならない。接続された入力プロパティは、ユーザによって特定されるべきでなく、代わりに、リハイドレーション中に自動的に導き出される。
【００６３】
リハイドレーションスクリプトは、接続された入力のプロパティの値を使用して、（たとえば、名前に「.input」を付けることにより）*.inputファイルの名前を導き出すこと
ができる。接続された入力のプロパティによって示されたファイル名は、<assembly-path>:<input-name>の形で示すことができ、<assembly-path>の各コンポーネントは「．」（
ピリオド）によって分離され、入力名の衝突を回避するためにファイル名の前にassembly-pathが付けられている。
【００６４】
たとえば、入力「otherInput」を有し、ターゲット汎用製品アプライアンス上の「output1」という名前の出力に接続された、経路「mySite/otherAppliance」でのアプライアンスについては、接続された出力ファイル「output1.output」は、connected-input=mySite.otherAppliance:otherInputというプロパティを含むであろう。一方、「otherInput」を表わす*.inputファイルは、すべての他の*.inputおよび*.outputファイルと並んで、経路$AB_ENDPOINT_DIR/mySite.otherAppliance:otherInput.inputに位置するであろう。
【００６５】
アセンブリ編集中、アプライアンス出力とアプライアンス入力との接続は、アプライアンス出力の所有者が、それが接続すべきアプライアンス入力のメタデータを発見できるように構成可能である。
【００６６】
図７は、一実施形態に従った、仮想アセンブリビルダーでの汎用製品イントロスペクタープラグインの使用をさらに示す。
【００６７】
図７に示すように、宛先コンポーネント５４６を作成するリハイドレーション５５４中、リハイドレーションスクリプト５５３は、その入力メタデータ５５６および／または出力メタデータ５５８を含め、ユーザによってオプションで構成または編集されてもよい。
【００６８】
一実施形態によれば、イントロスペクタープラグインは、それら自体のアプライアンス出力、およびそれらの出力が接続されたアプライアンス入力のメタデータを調べることができる。そのメタデータを含むリハイドレーションスクリプトは、エンドポイントを構成する（５５９）ために、および最終的には、宛先コンポーネントについて、要求を送受信するためにコンポーネントが開くであろうそのソケットの構成を修正するために使用可能であり、そのため、それと関連付けられた他のコンポーネントおよび製品は、宛先環境にデプロイメントされた製品に自動的に結合され得る。
【００６９】
たとえば、一実施形態によれば、第１のホストＡは、汎用製品イントロスペクタープラグインを使用して、宛先環境にデプロイメントされるべきソフトウェア製品を準備でき、それは、イントロスペクション中、ホストＡの入力および出力ソケットにメタデータを関連付けることを含む。追加のホストＢおよびＣが次に、それら自体のコンポーネントおよびソフトウェア製品のデプロイメント中、ホストＡの入力および出力ソケットに関連付けられたメタデータを消費し、または他のやり方で受信し、ホストＡでのソフトウェア製品
の入力および出力と適切に通信するようにそれら自体のコンポーネントおよびソフトウェア製品を構成することができる。
【００７０】
たとえば図７に示すように、リハイドレーション時、アプライアンスは、入力エンドポイント５７２および出力エンドポイント５８２を有する宛先コンポーネントを規定でき、それらのソケット５７４、５８４はそれぞれ、提供された入力メタデータおよび出力メタデータ、およびリハイドレーションスクリプトに従って構成されている。追加のホストは、ソケットに関連付けられた入力メタデータを使用して、それらのソケットにどのように適切に接続するかを発見することができる。たとえば、追加のホストは、第１のホストでリスニングソケットに関連付けられた入力メタデータを使用して、そのリスニングソケットにどのように適切に接続するかを発見することができる。
【００７１】
図８は、一実施形態に従った、仮想アセンブリビルダーでの汎用製品イントロスペクタープラグインの使用をさらに示す。
【００７２】
図８に示すように、リハイドレーション５５４中、汎用製品アプライアンスは、宛先コンポーネントを作成するために使用可能であり、それは、オペレーティングシステム５６１、コンポーネントバイナリ５６２、コンポーネント構成５６３、コンポーネントライブラリ５６４、遅延バインディングされた、または再構成されたプロパティ５６５を、上述のようにソケットがリハイドレーションスクリプトに従って構成されたアプライアンス入力および出力とともに含んでいる。
【００７３】
アプライアンス入力／出力の作成
さまざまな実施形態によれば、アプライアンス入力および出力エンドポイントを作成する際、異なるアプローチが使用可能である。たとえば、エンドポイントはイントロスペクション中に作成可能であり、または、イントロスペクションに続く追加のステップとして作成可能である。一実施形態によれば、エンドポイントはイントロスペクション中に作成され、たとえばデータを含むファイルへのポインタを含むデハイドレーションパラメータを介して、汎用製品イントロスペクタープラグインに供給され、それは、結果として生じる汎用製品アプライアンス上の複数の入力および複数の出力を規定する。
【００７４】
アプライアンス入力／出力をスクリプトにさらすこと
一実施形態によれば、汎用製品イントロスペクタープラグインは、元々イントロスペクション時に供給されたアプライアンスユーザプロパティを、リハイドレーションスクリプトに発行する。一実施形態によれば、これは、プロパティをファイルに書き、その後スクリプトを実行する際に環境変数$AB_USERPROPS_FILEをファイルの経路に設定することによって遂行可能である。
【００７５】
同様のアプローチは、アプライアンスの入力および出力に関連付けられたメタデータを、汎用製品アプライアンスが接続されるであろう他のアプライアンスの入力に加えて、スクリプトに発行するために使用可能である。
【００７６】
汎用製品イントロスペクタープラグインパラメータ
一実施形態によれば、汎用製品イントロスペクタープラグインはENDPOINTDIRパラメー
タを認識する。それは、イントロスペクションの一環としてアプライアンスに追加されるべきアプライアンス入力（ApplianceInput）およびアプライアンス出力（ApplianceOutput）を記述する１つ以上のファイルを含むディレクトリを指しており、$AB_ENDPOINT_DIR
環境変数としてすべてのリハイドレーションスクリプトに渡される。
【００７７】
一実施形態によれば、エンドポイントごとに１つのファイルがあり、ApplianceInputに
ついては<input-name>.inputファイル、ApplianceOutputについては<output-name>.outputファイルを含んでいる。汎用製品アプライアンスのリハイドレーション中、アプライア
ンスのすべてのアプライアンス入力およびアプライアンス出力について、１つ以上のエンドポイントファイルが作成される。汎用製品アプライアンスが接続されるであろう他のアプライアンスのアプライアンス入力についても、エンドポイントファイルが作成される。
【００７８】
代替的な一実施形態によれば、たとえば、キーにエンドポイント名を含むネーミング戦略を使用することにより、エンドポイントメタデータを単一のファイルに格納することができる。
【００７９】
代替的な一実施形態によれば、イントロスペクションの前にエンドポイントを記述するファイルを作成することをユーザに要求する代わりに、その後のアセンブリ編集中にエンドポイントを追加するためにインターフェイスを提供することができる。
【００８０】
デハイドレーションおよびリハイドレーションインターフェイス
一実施形態によれば、ENDPOINTDIRパラメータを認識し、それに応じて作動することに
よって、汎用製品イントロスペクタープラグインのアプライアンス入力および出力の認識をサポートするように、グラフィカル（ＧＵＩ）およびコマンドライン（ＣＬＩ）デハイドレーションインターフェイスを構成することができる。リハイドレーションインターフェイスについては、再作成された*.input/*.outputエンドポイントファイルを位置付けるための$AB_ENDPOINT_DIR環境変数をリハイドレーションスクリプトに渡すことができる。
【００８１】
図９は、一実施形態に従った、仮想アセンブリビルダーで汎用製品イントロスペクタープラグインを使用するためのプロセスのフローチャートである。
【００８２】
図９に示すように、ステップ５９２で、入力および出力を記述する情報、および任意の対応するメタデータが、１組のデータへのポインタ（たとえば、データを含むファイルへの経路）を含むデハイドレーションパラメータを介して、汎用製品（たとえば、GenericProd）イントロスペクタープラグインに提供される。
【００８３】
ステップ５９４で、汎用製品イントロスペクタープラグインは、イントロスペクション時に供給された任意のアプライアンスユーザプロパティを、汎用製品アプライアンスの入力および出力に関連付けられたメタデータとともに、リハイドレーションスクリプトに発行する。
【００８４】
ステップ５９６で、汎用製品イントロスペクタープラグインは、汎用製品出力が接続される他のアプライアンスの入力についてのメタデータを、リハイドレーションスクリプトに発行する。
【００８５】
ステップ５９８で、宛先コンポーネントのリハイドレーション中、システムは、宛先コンポーネントがソケットを確立するであろうポートおよびホスト、コンポーネントがソケット上で扱うであろうプロトコル、ならびに、エンドポイントがどのように構成され、および／または接続されるべきかを記述する１組の構成可能または静的プロパティを判断するために、アプライアンス入力に関連付けられたメタデータとともにリハイドレーションスクリプトを実行し、および、アプライアンス出力に関連付けられたメタデータを実行する。
【００８６】
一実施形態によれば、リハイドレーションスクリプトは、宛先環境にデプロイメントされると、基礎をなす取り込まれた製品のネットワーク接続を構成するように、その入力メタデータおよび／または出力メタデータを含め、ユーザによってオプションで構成または
編集されてもよい。次に、システムはこの情報を使用して、コンポーネントが接続で使用するであろうプロトコル、およびコンポーネントがどのように接続を確立するかを記述する１組の構成可能または静的プロパティを判断することができ、そのため、それと関連付けられた他のコンポーネントおよび製品は、宛先環境にデプロイメントされた製品に自動的に結合され得る。
【００８７】
本発明は、本開示の教示に従ってプログラムされた１つ以上のプロセッサ、メモリ、および／またはコンピュータ読取可能な記録媒体を含む、従来の汎用もしくは専用デジタルコンピュータ、コンピューティングデバイス、マシン、またはマイクロプロセッサを１つ以上用いて、適宜実現され得る。適切なソフトウェアコーディングは、熟練したプログラマが本開示の教示に基づいて容易に準備できるものである。これはソフトウェア技術における当業者には明らかであろう。
【００８８】
いくつかの実施形態では、本発明は、本発明のプロセスのうちのいずれかを行なうようにコンピュータをプログラムするために使用可能な命令が格納された非一時的な記録媒体または（１つまたは複数の）コンピュータ読取可能な媒体であるコンピュータプログラム製品を含む。この記録媒体は、フロッピー（登録商標）ディスク、光ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、マイクロドライブ、および光磁気ディスクを含む任意のタイプのディスク、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＤＲＡＭ、ＶＲＡＭ、フラッシュメモリデバイス、磁気カードまたは光カード、ナノシステム（分子メモリＩＣを含む）、もしくは、命令および／またはデータを格納するのに好適な任意のタイプの媒体またはデバイスを含み得るものの、それらに限定されない。
【００８９】
この発明の前述の説明は、例示および説明のために提供されてきた。それは、包括的であるよう、または、この発明を開示された形態そのものに限定するよう意図されてはいない。当業者には、多くの修正および変形が明らかであろう。実施形態は、この発明の原理およびその実際の応用を最良に説明するために選択され説明されており、それにより、当業者が、考えられる特定の用途に適したさまざまな実施形態に関する、およびさまざまな修正を有するこの発明を理解できるようにする。この発明の範囲は、特許請求の範囲およびその均等物によって定義されることが意図されている。
【図１】
2019109922.tif 000003
【図２】
2019109922.tif 000004
【図３】
2019109922.tif 000005
【図４】
2019109922.tif 000006
【図５】
2019109922.tif 000007
【図６】
2019109922.tif 000008
【図７】
2019109922.tif 000009
【図８】
2019109922.tif 000010
【図９】
2019109922.tif 000011
【手続補正書】
【提出日】平成31年3月28日(2019.3.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
クラウド環境において仮想アセンブリビルダーを用いて汎用製品を結合するためのシステムであって、
１つ以上のコンピュータを含み、前記コンピュータは当該コンピュータ上で実行されるクラウド環境を含み、前記システムはさらに、
仮想アセンブリアーカイブのリポジトリを維持する仮想アセンブリビルダーコンポーネントを含み、各仮想アセンブリは、アセンブリのインスタンスをインスタンス化するために使用可能な、メタデータおよび１つ以上の仮想マシンテンプレートを含むことができ、前記システムはさらに、
ユーザが、イントロスペクション時、仮想アセンブリの生成中に、仮想アセンブリのその後のリハイドレーション中にスクリプトによる編集および構成のために公開されるべき１つ以上のメタデータプロパティを特定することを可能にする、汎用製品イントロスペクタープラグインを含む、システム。
【外国語明細書】
2019109922000001.pdf