JP6550372B2 - 仮想アセンブリビルダー環境における汎用製品の結合のためのシステムおよび方法 - Google Patents

仮想アセンブリビルダー環境における汎用製品の結合のためのシステムおよび方法 Download PDF

Info

Publication number
JP6550372B2
JP6550372B2 JP2016503096A JP2016503096A JP6550372B2 JP 6550372 B2 JP6550372 B2 JP 6550372B2 JP 2016503096 A JP2016503096 A JP 2016503096A JP 2016503096 A JP2016503096 A JP 2016503096A JP 6550372 B2 JP6550372 B2 JP 6550372B2
Authority
JP
Japan
Prior art keywords
assembly
appliance
instance
software appliance
host
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016503096A
Other languages
English (en)
Other versions
JP2016516248A (ja
JP2016516248A5 (ja
Inventor
リチャーズ,ジョン
シュルツ,トロイ
ジャクソン,サム
Original Assignee
オラクル・インターナショナル・コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by オラクル・インターナショナル・コーポレイション filed Critical オラクル・インターナショナル・コーポレイション
Publication of JP2016516248A publication Critical patent/JP2016516248A/ja
Publication of JP2016516248A5 publication Critical patent/JP2016516248A5/ja
Application granted granted Critical
Publication of JP6550372B2 publication Critical patent/JP6550372B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)

Description

著作権表示
この特許文献の開示の一部は、著作権保護の対象となる資料を含む。この特許文献または特許開示は特許商標庁の特許ファイルまたは記録に記載されているため、著作権保有者は、何人によるその複写複製に対して異議はないが、その他の場合には如何なるときもすべての著作権を保有する。
優先権主張
本願は、2013年3月15日に出願された、「汎用製品の結合および他の仮想アセンブリビルダー機能のためのシステムおよび方法」(SYSTEMS AND METHODS FOR GENERIC PRODUCT WIRING AND OTHER VIRTUAL ASSEMBLY BUILDER FEATURE)と題された米国仮出願第61/798,720号の優先権の利益を主張する。当該出願はここに引用により援用される。
発明の分野
本発明の実施形態は一般に、クラウドコンピューティング環境での使用のためのシステムおよび方法に関し、特に、仮想アセンブリビルダー環境における汎用製品の結合のためのシステムおよび方法に関する。
背景
一般に言われるように、仮想化とは、オペレーティングシステムおよびその上で実行されるソフトウェアアプリケーションから、コンピュータハードウェアリソース、たとえばそのプロセッサ、メモリ、ストレージ、およびネットワークインターフェイスなどを抽象化するプロセスである。コンピュータは、ハイパーバイザなどの仮想化コンポーネントを含んでいてもよく、それは複数のオペレーティングシステムのインストールを可能にし、それらは各々、それら自体のセキュアな環境内で同時にかつ独立して実行可能である。仮想化は、完全な処理環境のデプロイメントをより迅速に、より容易に、かつより効率的にすることができる。
たとえば、クラウド環境は、以前は組織自体の情報技術部門によって提供されたかもしれない責務が、組織の内部(すなわちプライベート)または外部(すなわちパブリック)の消費者によって使用されるために、サービス層として供給されることを可能にする。クラウド環境は仮想化機能を利用して、ある特定のサービスをどのように構成し、プロビジョニングし、制御すべきかを迅速にかつ容易に修正することができる。これらは、本発明の実施形態を使用できる環境の種類の数例である。
概要
ここに記載されるのは、クラウド環境において汎用製品を結合するためのシステムおよび方法である。一実施形態によれば、仮想アセンブリビルダーは、参照環境においてインストールされたコンポーネントを仮想化し、次にそれらのコンポーネントを別の宛先環境にデプロイメントするために使用可能である。ユーザは、ソフトウェアコンポーネントの構成およびバイナリをソフトウェアアプライアンスアーティファクトに取り込むことができ、それらはグループ化され、それらの関係はソフトウェアアセンブリアーティファクトとして定義され得る。一実施形態によれば、汎用製品イントロスペクター(introspector)プラグインは、ユーザが、イントロスペクション時、仮想アセンブリの生成中に、仮想アセンブリのその後のリハイドレーション(rehydration)中にスクリプトによる編集および構成のために公開される(exposed)べき1つ以上のメタデータプロパティを特定することを可能にする。スクリプトによる編集および構成のために公開されるプロパティは、アセンブリのインスタンスのインスタンス化中、インスタンスのための1つ以上の入力および出力を規定するために使用可能である。
一実施形態に従った仮想アセンブリビルダー環境を示す図である。 一実施形態に従った仮想アセンブリビルダー環境をさらに示す図である。 一実施形態に従った、仮想アセンブリビルダーを利用できる例示的なクラウドコンピューティング環境を示す図である。 一実施形態に従った、クラウドコンピューティング環境における仮想アセンブリビルダーの使用を示す図である。 一実施形態に従った、クラウドコンピューティング環境における仮想アセンブリビルダーの例示的な使用を示す図である。 一実施形態に従った、汎用製品の結合をサポートする汎用製品イントロスペクタープラグインの使用を示す図である。 一実施形態に従った、仮想アセンブリビルダーでの汎用製品イントロスペクタープラグインの使用をさらに示す図である。 一実施形態に従った、仮想アセンブリビルダーでの汎用製品イントロスペクタープラグインの使用をさらに示す図である。 一実施形態に従った、仮想アセンブリビルダー環境における汎用製品の結合のためのプロセスのフローチャートである。
詳細な説明
上述のように、仮想化とは、オペレーティングシステムおよびその上で実行されるソフトウェアアプリケーションから、コンピュータハードウェアリソース、たとえばそのプロセッサ、メモリ、ストレージ、およびネットワークインターフェイスなどを抽象化するプロセスである。たとえば、コンピュータは、ハイパーバイザなどの仮想化コンポーネントを含んでいてもよく、それは複数のオペレーティングシステムのインストールを可能にし、それらは各々、それら自体のセキュアな環境内で同時にかつ独立して実行可能である。
一実施形態によれば、仮想アセンブリビルダーは、参照環境においてインストールされたコンポーネントを仮想化し、次にそれらのコンポーネントを別の宛先環境にデプロイメントするために使用可能である。ユーザは、ソフトウェアコンポーネントの構成およびバイナリをソフトウェアアプライアンスアーティファクトに取り込むことができ、それらはグループ化され、それらの関係はソフトウェアアセンブリアーティファクトとして定義され得る。
一実施形態によれば、汎用製品イントロスペクタープラグインは、ユーザが、イントロスペクション(introspection)時、仮想アセンブリの生成中に、仮想アセンブリのその後のリハイドレーション中にスクリプトによる編集および構成のために公開されるべき1つ以上のメタデータプロパティを特定することを可能にする。スクリプトによる編集および構成のために公開されるプロパティは、アセンブリのインスタンスのインスタンス化中、インスタンスのための1つ以上の入力および出力を規定するために使用可能である。
仮想アセンブリビルダー(Virtual Assembly Builder:VAB)
図1は、一実施形態に従った仮想アセンブリビルダー環境100を示す。図1に示すように、仮想アセンブリビルダー(VAB)128(たとえば、オラクル仮想アセンブリビルダー(Oracle Virtual Assembly Builder:OVAB))は、ミドルウェアコンポーネント122、仮想マシンコンポーネント124、および/またはデータベースコンポーネント126といった1つ以上のインストールされたソフトウェアコンポーネントを含む参照環境120をイントロスペクションする(introspect)ために使用可能である。仮想アセンブリビルダーは次に、1つ以上の構成140、150に従った仮想マシンまたはサーバ143、144、149、153、154、159の1つ以上の仮想化されたリソースプール141、151を有する宛先環境へのデプロイメントのために、アプライアンス132および関連付けられたメタデータ134を各々含む1つ以上のアセンブリ130を準備可能である。
一実施形態によれば、仮想アプライアンス(ここに概してアプライアンスと呼ぶ)とは、ソフトウェアコンポーネントおよびその局所的な実行環境を表わす。たとえば、アプライアンスは、アプリケーション構成、バイナリ、およびオペレーティングシステムを含み得る。
一実施形態によれば、仮想アセンブリ(ここに概してアセンブリと呼ぶ)とは、ハードウェアリソースのプールへのデプロイメント時に連携するように構成された、相関するアプライアンスの集合である。アセンブリはまた、メタデータの形をした、外部配置された(externalized)構成用のサポート、相互依存性を反映するようにアプライアンスの開始順序を規定する手段、および/または、データベース、サーバ、またはセキュリティプロバイダといった外部システムを参照するためのサポートなど、生産環境におけるそれらの有用性を高める能力を提供してもよい。
一実施形態によれば、仮想アセンブリビルダーは、複雑なアプリケーション構造を包含するアセンブリをユーザが構築できるようにする、視覚またはコマンドライン構成環境、もしくは他のツールまたはインターフェイスを含み得る。たとえば、ユーザが、既存のアプライアンスおよびアセンブリのカタログを閲覧し再使用すること、もしくは、ドラッグ・アンド・ドロップまたは編集可能なプロパティを使用してアプライアンス間の接続を修正することを可能にする、インターフェイスが提供可能である。
一実施形態によれば、アセンブリ作成およびデプロイメントは、マルチステッププロセスである。イントロスペクション段階では、ユーザは、個々のまたは複数の分散ソフトウェアコンポーネント用の構成メタデータを取り込むことができる。ターゲットコンポーネントは、物理システムまたは仮想システムであり得るシステム上に、局所的にまたは遠隔に存在していてもよい。
構成段階では、ユーザは1つ以上のインターフェイスを使用して、たとえば、ナビゲート可能なカタログにおいて維持されたアプライアンスをドラッグ・アンド・ドロップすること、アプライアンス間の関係を確立すること、および/または、アプライアンスからデータベース、サーバまたはセキュリティプロバイダといった外部リソースまで接続を作成することにより、アセンブリを構成することができる。
準備段階では、ユーザは、ブート可能な仮想マシンディスク画像を作成することができ、それらは、ソフトウェアコンポーネントのデプロイメント時間のカスタマイゼーションを可能にする、カスタマイズされたオペレーティングシステム(operating system:OS)分散および構成可能メタデータを含む。
デプロイメント段階では、ユーザは、仮想化された環境において利用可能なターゲットを発見し、カスタマイズされたデプロイメント構成を作成し、アプライアンスディスク画像をステージし、アセンブリをターゲット上にデプロイメントし、必要であればアプライアンスインスタンスをスケーリングし、デプロイメントされたインスタンスを既存のアセンブリに自動的に結合することができる。
たとえば、一実施形態によれば、仮想アセンブリビルダーは、ソース環境からオラクルフュージョンミドルウェア(Oracle Fusion Middleware:FMW)およびオラクルデータベースソフトウェアコンポーネントの組の既存の状態を取り込み、コンポーネントをアセンブリとして表わし、宛先環境へのそれらのデプロイメントを可能にするために、上述のように使用可能である。
図2は、一実施形態に従った仮想アセンブリビルダー環境をさらに示す。図2に示すように、一実施形態によれば、仮想アセンブリビルダー環境は、アプリケーションサーバ160でホストされたVABデプロイヤ162を含んでいてもよく、それは、リソースプール164と、VABリポジトリ168と、状態170の持続を可能にするストレージコンポーネント(たとえばオラクル・コヒーレンス(Coherence))166とを有する1つ以上の仮想化システムへのアクセスを提供する。VABデプロイヤおよびその動作へのアクセスは、1つ以上のVABインターフェイス180、たとえば、VABコンポーザコンポーネント182、コマンドラインインターフェイス184、もしくはウェブサービス186または他のインターフェイスによって提供可能である。
一実施形態によれば、VABインターフェイスは、ユーザがイントロスペクションを行ない、アセンブリ作成の段階を構成し、準備することを可能にし、また、アセンブリアーカイブおよびインスタンスをアップロードし、登録し、管理するためのサポートを提供する。たとえば、VABデプロイヤは、インターフェイスによって作成されたアセンブリアーカイブのリポジトリを維持し、また、仮想化されたシステム(たとえば、オラクルVM、OVM)にアセンブリを登録するための動作、およびアーカイブによって規定されたソフトウェアコンポーネントのデプロイメントをオーケストレーションするための動作を提供する。
最小のアプライアンスは概して、元のソフトウェアコンポーネントの状態を記述するメタデータを、その構成がデプロイメント時に再作成されるようにするコンポーネント特有の1組のファイルとともに含む。アセンブリがデプロイメント用に準備されている間、追加の構成情報はメタデータに格納され得る。一実施形態によれば、メタデータは、エンドポイントと総称される、各コンポーネントの論理入力および出力の記述を含む。たとえば、HTTPサーバのHTTP入力およびmod_wl_ohs出力はそれぞれ、入力および出力エンドポイントの例である。エンドポイントは、プロトコル、ポートおよびURLなどの情報を含み得る。仮想アセンブリビルダーは、コンポーネントが取り込まれた後、それがデプロイメントされる前に接続が更新されることを可能にするように、各エンドポイントに関する十分な情報を取り込む。これは、アプライアンスが宛先環境内で正確に接続され得ることを確実にするのに役立つ。
一実施形態によれば、イントロスペクションプロセスは、宛先環境においてコンポーネントのインストールを再現するために取り込まれなければならない1つ以上のファイルシステム階層を特定するファイルセット定義を生成する。仮想アセンブリビルダーはまた、ここにファイルセットと呼ぶ、メタデータによって記述される実際のインストールのコピーを取り込んでもよい。一実施形態によれば、仮想アセンブリビルダーはコンポーネントのXML記述を作成し、それは、イントロスペクション時にコンポーネントの構成のスナップショットを提供する。
一実施形態によれば、イントロスペクションは、サポートされるコンポーネントタイプごとのプラグインの使用を含む、プラグインベースであってもよい。大抵の場合、コンポーネントをイントロスペクションした結果が、アプライアンスである。しかしながら、場合によっては、たとえば仮想アセンブリビルダーがアプリケーションサーバドメインをイントロスペクションするために使用される場合、関連付けられたイントロスペクタープラグインは、たとえば、ドメインのアドミニストレーションサーバを表わすアプライアンスと、ドメインが管理するサーバを表わす他のアプライアンスとを有するアセンブリを生成できる。
一実施形態によれば、汎用アプライアンスは、「GenericProd」アプライアンスタイプを使用して構築可能であり、それは、ユーザがアプリケーション製品をアプライアンスとして作成してデプロイメントすることを可能にし、それについては仮想アセンブリビルダーはビルトインサポートを有していないかもしれない。そのようなアプライアンスは概して、構成または製品位置を取り込むために製品に特有の論理を利用せず、代わりに、比較的単純なアプライアンスが作成され、製品を構築する1組のユーザ供給プロパティ、経路およびスクリプトが追加される。作成時に通された1組のスクリプトはその後、デプロイメント時に、任意の必要な動作を行なうために実行され得る。
一実施形態によれば、アセンブリおよびアプライアンスは、カタログと呼ばれる区域における、ディスクなどの持続性ストレージにおいて表わすことができる。アセンブリおよびアプライアンスアーティファクト、ならびにメタデータは、カタログのルートディレクトリのサブフォルダ内の入れ子式ディレクトリに格納可能である。
一実施形態によれば、アセンブリテンプレートとは、新しい仮想マシンインスタンスを作成し開始するために使用可能な1組の仮想ディスク画像である。ゲストオペレーティングシステムと、アプライアンスファイルセットと、メタデータとを含むテンプレートは、アセンブリにおけるアプライアンスごとに作成可能であり、次に、それらをその環境に登録することによって、仮想化された環境で利用可能となり、その時点で仮想マシンインスタンスはテンプレートに基づいて作成可能である。
一実施形態によれば、アセンブリを規定する場合、そのアセンブリの外部に位置するサーバまたはリソースを参照することが必要かもしれない。たとえば、組織の環境は、多くの無関係な仮想デプロイメントによって共有される、データベース、サーバ、またはセキュリティプロバイダといった外部リソースを含むかもしれない。一実施形態によれば、環境に存在するもののアプライアンスとしてデプロイメントされないであろうリソースを表わすために、外部コンポーネントがテンプレートにおいて規定可能である。これらを外部リソースとして表わすことは、アセンブリ内の参照アプライアンスが、デプロイメント時に正確に構成されることを確実にする。
一実施形態によれば、アセンブリアーカイブにおいて宣言される論理ネットワークごとに使用すべき仮想化環境においてネットワークを特定するために、デプロイメントプランが使用可能である。デフォルトアセンブリおよびアプライアンスプロパティをカスタマイズし、ネットワーク構成などのデプロイメント特有情報を提供するデプロイメントプランを、ユーザは作成可能である。たとえば、一実施形態によれば、VABデプロイヤは、1つ以上のハイパーバイザ仮想ネットワーク(Vnet)を作成し、それとやり取りする仮想マシンに取付けることができる。
異なる仮想化システムは、それらのリソースを異なるやり方で編成し、それらのリソースの参照およびアクセスのために異なる情報を必要とする。一実施形態によれば、異なるシステムを越えて共通のユーザ体験を提供するために、ターゲットを使用して、仮想化されたシステムにおいてリソースまたはリソースのプールを参照することができる。ターゲットごとに提供される構成情報は、そのターゲットを含む仮想化システムに特有である。アセンブリインスタンスとは、特定のターゲット仮想環境のためのアセンブリアーカイブのデプロイメント可能インスタンスであり、一方、アプライアンスインスタンスとは、ターゲット仮想環境において実行または作成されるアプライアンスのインスタンスである。
アセンブリインスタンスは、ライフサイクルに関連付けられ得る。たとえば、ユーザは、アセンブリと、デプロイメントプランと、アセンブリがデプロイメントされるべきターゲットとを選択することによって、アセンブリインスタンスを作成可能である。アセンブリインスタンスのデプロイメントは次に、たとえばステージング、デプロイメント、および失敗といったさまざまな段階を通って移行するであろう。各段階の間、動作のサブセットが利用可能であってもよい。たとえば、アセンブリインスタンスがデプロイメントされる場合、ユーザは、アプライアンスインスタンスを開始および停止したり、または、デプロイメントされたアセンブリインスタンスに関連付けられたアプライアンスインスタンスの数を増減させることができる。
クラウド環境での仮想アセンブリビルダー
さまざまな実施形態によれば、仮想アセンブリビルダーは、クラウドコンピューティング環境、たとえば、ソフトウェアアプリケーションを開発しデプロイメントするためのクラウドベースのプラットフォームを可能にするためにハードウェアおよびソフトウェアを利用する環境で使用可能である。
図3は、一実施形態に従った、仮想アセンブリビルダーを利用できる例示的なクラウドコンピューティング環境を示す。図3に示すように、クラウドコンピューティング環境(ここにいくつかの実施形態ではクラウド環境またはクラウドと呼ぶ)200は、1つ以上のインフラストラクチャ・アズ・ア・サービス(Infrastructure as a Service:IaaS)層210、プラットフォーム・アズ・ア・サービス(Platform as a Service:PaaS)層260、および/またはソフトウェア・アズ・ア・サービス(Software as a Service:SaaS)層270の組合せを含んでいてもよく、それらは、使用中の特定のクラウドコンピューティングモデルに依存して、組織に対してプライベートまたはパブリックの消費者によって使用可能である。
一実施形態によれば、クラウド環境は、1つ以上の従来の汎用もしくは専用デジタルコンピュータ、コンピューティングデバイス、マシン、マイクロプロセッサ、メモリ、および/またはコンピュータ読取可能な記録媒体などのコンピュータハードウェアを含むシステムとして実装可能である。たとえば、一実施形態によれば、IaaS層は、共有データベースハードウェア(たとえば、Exadataマシン)212、および/または共有アプリケーションサーバハードウェア(たとえば、Exalogicマシン)214を含んでいてもよく、それらはIaaS API215を介してアクセス可能である。PaaS層は、データベースサービス262、アプリケーションサービス264、および/またはウェブセンター(WebCenter)サービス266などの1つ以上のPaaSサービスを含んでいてもよく、一方、SaaS層は、エンタープライズアプリケーション(たとえば、オラクルFMW SaaS)272、および/または、ISVまたはカスタムアプリケーション276などのさまざまなSaaSサービスを含んでいてもよい。クラウド環境はまた、共有イネーブルメントおよび管理インフラストラクチャ220も含んでいてもよく、それは、たとえば、1つ以上のアイデンティティ管理222、データインテグレーション224、複製(たとえば、オラクル・ゴールデンゲート(GoldenGate))226、仮想アセンブリビルダー228、システムプロビジョニング230、テナント管理232、エンタープライズマネージャ234、ウィルススキャン242、セキュアファイル転送244、HTTPルーティング246、ホワイトリスト248、通知250、セキュアバックアップ252、インテグレーションゲートウェイ254、使用および課金256、または他のコンポーネントといった、さまざまなサービス層をサポートするツールを提供する。
図4は、一実施形態に従った、クラウドコンピューティング環境における仮想アセンブリビルダーの使用を示す。図4に示すように、一実施形態によれば、仮想アセンブリビルダーコンポーネント300は、アセンブリアーカイブのリポジトリ324を維持する。OVABを使用する一実施形態によれば、アセンブリアーカイブは、オラクル仮想アセンブリ(Oracle Virtual Assembly:OVA)フォーマットアーカイブであってもよい。
上述のように、一実施形態によれば、アセンブリは、VABコンポーザ326、コマンドラインインターフェイス330、またはOVABスタジオ(Studio)などの他の構成製品を使用して作成可能である。VABデプロイヤコンポーネント304は、たとえばウェブサービス308または他のVABインターフェイス307によってアクセス可能であり、また、アセンブリをリポジトリにアップロードするための動作344、およびアセンブリをクラウドコンポーネントに登録するための動作を可能にする。
一実施形態によれば、VABデプロイヤは、アプリケーションサーバまたはアドミニストレーションサーバ内に、もしくは、管理されたサーバの集合内にデプロイメントされ得る。マルチインスタンスの実施形態は、デプロイヤの実行時間および構成状態の格納のために、たとえばコヒーレンス340によって提供されるような共有データベース、ディスク、またはストレージ機能性を利用できる。
一実施形態によれば、VABデプロイヤは、リポジトリへのアクセスを可能にするための仮想アセンブリマネージャ305と、1つ以上のリソースプールサービスプラグイン312、たとえばオラクルVM3(OVM3)プラグイン316、IaaSプラグイン314、および/またはEC2 313プラグインの使用をサポートするリソースプールサービス(resource pool service:RPS)310へのアクセスを提供する登録マネージャ306とを含み得る。一実施形態によれば、プラグインは、VMメッセージAPI(VMAPI)320およびテンプレート322の使用をサポート可能であり、それらは、リソースプール332または仮想マシン(VM)へのアセンブリの登録346、およびそれらのその後のライフサイクル管理350を可能にする。
いくつかの仮想化システムは、タグがテンプレートまたはVMインスタンスなどのアーティファクトに関連付けられるようにし、それらは次に、たとえばある特定のデプロイメントに関連付けられたアーティファクトを見つけるために、問い合わされてもよい。
仮想アセンブリビルダーのライフサイクルの一環として、アセンブリは、たとえばUploadAssemblyArchive動作を使用して、VABデプロイヤのリポジトリにアップロードされてもよい。アセンブリは次に、たとえばRegisterAssemblyArchive動作を使用して、1つ以上のターゲットに登録されてもよい。登録は、アセンブリのテンプレートを、仮想アセンブリビルダー環境内のリソースプールに登録することを含み得る。アセンブリがターゲットに登録された後、その登録のために、1つ以上のデプロイメントが、たとえばCreateAssemblyInstance動作を使用して作成されてもよい。デプロイメントが一旦作成されると、アセンブリのための初期インスタンスが作成され、開始されてもよい。これが行なわれている間、VABデプロイヤは、アセンブリをリハイドレートする(rehydrate)ために、それらのインスタンスの初期化スクリプトに埋込まれたリハイドレーション論理を使用してもよく、それは、そのオペレーティングシステム、ネットワーク、またはディスクボリュームといったアセンブリのさまざまな局面を構成することを含む。
一実施形態によれば、VABデプロイヤは、環境内での使用のために仮想マシンアプリケーションスタックを構成可能である。たとえば、アプリケーションの開始時に作成されるべきサービスインスタンス間の接続を構成するために、情報が提供可能である。アセンブリが一旦デプロイメントされると、アセンブリ内のある特定のアプライアンスについての実行中のインスタンスの数を増減させるようにスケーリングするといった追加のライフサイクル動作を、実行中のシステムに適用することができる。
図5は、一実施形態に従った、クラウドコンピューティング環境における仮想アセンブリビルダー環境の例示的な使用を示す。たとえば、オラクルパブリッククラウド(Oracle Public Cloud :OPC)などのクラウド環境は、Java(登録商標)クラウドサービスインフラストラクチャを含んでいてもよく、それは、ソフトウェアアプリケーション、ミドルウェア、およびデータベース商品一式が、セルフサービス的に顧客に供給されることを可能にする。
図5に示すように、一実施形態によれば、システムプロビジョニングクラウドサービス430は、顧客から、アセンブリインスタンス450および/またはサービスインスタンス460を含む作成すべきテナント環境444について、オーダーを受信できる。システムはまず、複数の匿名アセンブリ(たとえば454、456、458)およびサービスインスタンス(たとえば464、466、468)を作成できる(447)。アセンブリおよび/またはサービスインスタンスの各々は次に、オーダー要件を満たすように構成可能である。たとえば、ある特定のアセンブリ472および/またはある特定のサービスインスタンス474が連携するように構成可能である。Javaクラウドサービスのコンテキストでは、結果として生じるプラットフォームインスタンスは、WebLogicまたは他のアプリケーションサーバサービスを提供するために必要とされるリソースおよび関係476を、たとえばインスタンスデータベース、アドミニストレーションサーバ、および1つ以上のアプリケーションサーバとともに含むことができる。
汎用製品の結合
上述のように、仮想アセンブリビルダーを使用して、ユーザは、ソフトウェアコンポーネントの構成およびバイナリをソフトウェアアプライアンスアーティファクトに取り込むことができ、それらはグループ化され、それらの関係はソフトウェアアセンブリアーティファクトとして定義され得る。
一実施形態によれば、汎用製品イントロスペクタープラグインは、ユーザが、イントロスペクション時、仮想アセンブリの生成中に、仮想アセンブリのその後のリハイドレーション中にスクリプトによる編集および構成のために公開されるべき1つ以上のメタデータプロパティを特定することを可能にする。
前述のように、汎用アプライアンスは、「GenericProd」アプライアンスタイプを使用して構築可能であり、それは、ユーザがアプリケーション製品をアプライアンスとして作成してデプロイメントすることを可能にし、それについては仮想アセンブリビルダーはビルトインサポートを有していないかもしれない。しかしながら、以前は、そのような汎用アプライアンスは、アプライアンス入力を含むことができず、アプライアンスに確立された接続を自動的に構成するために使用することができなかった。
一実施形態によれば、汎用製品イントロスペクタープラグインは、アプライアンス上の入力および出力の構成を可能にする。アプライアンスの入力および出力に関連付けられたメタデータを、ユーザ供給リハイドレーションスクリプトにさらすことができ、そのため、アセンブリ編集中にユーザによって供給された詳細、およびアプライアンスが最終的にデプロイメントされる宛先環境に従って、基礎をなす取り込まれた製品のネットワーク接続を構成することができる。
一実施形態によれば、第1のホストは、汎用製品イントロスペクタープラグインを使用して、宛先環境にデプロイメントされるべきソフトウェア製品を準備でき、それは、イントロスペクション中、第1のホストの入力および出力ソケットにメタデータを関連付けることを含む。追加のホストが次に、それら自体のコンポーネントおよびソフトウェア製品のデプロイメント中、第1のホストの入力および出力ソケットに関連付けられたメタデータを消費し、または他のやり方で受信し、第1のホストでのソフトウェア製品の入力および出力と適切に通信するようにそれら自体のコンポーネントおよびソフトウェア製品を構成することができる。
図6は、一実施形態に従った、仮想アセンブリビルダーでの汎用製品イントロスペクタープラグインの使用を示す。
図6に示すように、仮想アセンブリビルダーには汎用製品イントロスペクタープラグイン500が設けられ、それはアセンブリビルダーと連携して参照環境のイントロスペクション504を提供する。一実施形態によれば、仮想アセンブリビルダーは、汎用製品アプライアンス502を構築するために使用可能であり、それは、オペレーティングシステム510、アプライアンスバイナリ512、アプライアンス構成514、アプリケーションライブラリ516、再構成スクリプト518、および遅延バインディングプロパティ522、ならびに入力530および出力540のうちの1つ以上を含む。
一実施形態によれば、アプライアンスの入力および出力はそれぞれ、入力メタデータ532および出力メタデータ542に関連付けられ得る。
イントロスペクション中、汎用製品イントロスペクタープラグインにはリハイドレーションパラメータ506が設けられてもよく、それは、プラグインがそのメタデータ情報を、入力メタデータおよび出力メタデータを含むリハイドレーションスクリプト552に発行する(551)ようにする。
リハイドレーションスクリプトは次に、宛先環境にデプロイメントされると、基礎をなす取り込まれた製品のネットワーク接続を構成するように、その入力メタデータおよび/または出力メタデータを含め、ユーザによってオプションで構成または編集されてもよい。
アプライアンス入力
一実施形態によれば、アプライアンス入力は、コンポーネントがソケットを開き、接続が確立されるのを待ち、入ってくる要求を扱う、ホストおよびポートの構成を表わす。アプライアンス入力に関連付けられ得るメタデータのタイプの例は、以下のものを含む:
・コンポーネントがソケットを確立するであろうポート
・コンポーネントがソケットを確立するであろう、デプロイメント時に判断されるホスト
・コンポーネントがソケット上で扱うであろうプロトコル
・エンドポイントがどのように構成され、および/または接続されるべきかを記述する詳細を有する1組の構成可能プロパティ
・エンドポイントがどのように構成され、および/または接続されるべきかを記述する詳細を有する1組の静的プロパティ
・取り込み時にコンポーネントによって使用された元のホストおよびポート。
リハイドレーション中、汎用製品イントロスペクタープラグイン、および他のイントロスペクタープラグインは、それらのアプライアンス入力のメタデータを調べ、アプライアンス入力情報を使用して、入ってくる要求を扱うためにアプライアンスが開くであろうソケットのそれら自体の構成を修正することができる。
これらのソケットに接続するであろう他のコンポーネントも、それらのクライアント側接続構成を適切に修正するために、リハイドレーション中にメタデータを調べることができる。
一実施形態によれば、アプライアンス入力は*.inputファイルとして提供可能であり、それらは、<key>=<value>の形を有する、一行ごとのキー/値対として表わされるプロパティを含む。キーは有効シェル変数名であると保証されておらず、そのため、シェル変数を作成するためにエンドポイントファイルを獲得することができない。*.inputファイルに含まれ得るプロパティのタイプの例は、以下を含む:
・ポート:必要
・プロトコル:必要、空白のないコンマ区切りリスト
・ホスト:内部から導き出される、リハイドレーション時に利用可能
・userprop.<property-name>:オプション、常にtype="STRING"
・sysprop.<property-name>:オプション、常にtype="STRING"
・元ポート:オプション
・元ホスト:オプション。
一実施形態によれば、必要であると示されたプロパティは、イントロスペクション時に供給されたファイルにおいて特定されなければならない。ホストプロパティは、ユーザによって特定されるべきでなく、代わりに、リハイドレーション中に自動的に導き出される。リハイドレーションスクリプトは、ホストプロパティの値を使用して、アプライアンス入力(ApplianceInput)を構成する場合にはリスニングアドレスを設定し、アプライアンス出力(ApplianceOutput)を構成する場合には接続アドレスを設定することができる。
アプライアンス出力
一実施形態によれば、アプライアンス出力は、コンポーネントが接続を確立して要求を送信するホストおよびポートの構成を表わす。アプライアンス出力に関連付けられ得るメタデータのタイプの例は、以下のものを含む:
・コンポーネントが接続で使用するであろうプロトコル
・コンポーネントがどのように接続を確立するかを記述する詳細を有する1組の構成可能プロパティ
・コンポーネントがどのように接続を確立するかを記述する詳細を有する1組の静的プロパティ
・この出力が接続するであろう任意の互換性入力で必要とされる1組のプロパティ
・取り込み時にコンポーネントによって使用された元のホストおよびポート。
一実施形態によれば、アプライアンス出力も同様に*.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に位置するであろう。
アセンブリ編集中、アプライアンス出力とアプライアンス入力との接続は、アプライアンス出力の所有者が、それが接続すべきアプライアンス入力のメタデータを発見できるように構成可能である。
図7は、一実施形態に従った、仮想アセンブリビルダーでの汎用製品イントロスペクタープラグインの使用をさらに示す。
図7に示すように、宛先コンポーネント546を作成するリハイドレーション554中、リハイドレーションスクリプト553は、その入力メタデータ556および/または出力メタデータ558を含め、ユーザによってオプションで構成または編集されてもよい。
一実施形態によれば、イントロスペクタープラグインは、それら自体のアプライアンス出力、およびそれらの出力が接続されたアプライアンス入力のメタデータを調べることができる。そのメタデータを含むリハイドレーションスクリプトは、エンドポイントを構成する(559)ために、および最終的には、宛先コンポーネントについて、要求を送受信するためにコンポーネントが開くであろうそのソケットの構成を修正するために使用可能であり、そのため、それと関連付けられた他のコンポーネントおよび製品は、宛先環境にデプロイメントされた製品に自動的に結合され得る。
たとえば、一実施形態によれば、第1のホストAは、汎用製品イントロスペクタープラグインを使用して、宛先環境にデプロイメントされるべきソフトウェア製品を準備でき、それは、イントロスペクション中、ホストAの入力および出力ソケットにメタデータを関連付けることを含む。追加のホストBおよびCが次に、それら自体のコンポーネントおよびソフトウェア製品のデプロイメント中、ホストAの入力および出力ソケットに関連付けられたメタデータを消費し、または他のやり方で受信し、ホストAでのソフトウェア製品の入力および出力と適切に通信するようにそれら自体のコンポーネントおよびソフトウェア製品を構成することができる。
たとえば図7に示すように、リハイドレーション時、アプライアンスは、入力エンドポイント572および出力エンドポイント582を有する宛先コンポーネントを規定でき、それらのソケット574、584はそれぞれ、提供された入力メタデータおよび出力メタデータ、およびリハイドレーションスクリプトに従って構成されている。追加のホストは、ソケットに関連付けられた入力メタデータを使用して、それらのソケットにどのように適切に接続するかを発見することができる。たとえば、追加のホストは、第1のホストでリスニングソケットに関連付けられた入力メタデータを使用して、そのリスニングソケットにどのように適切に接続するかを発見することができる。
図8は、一実施形態に従った、仮想アセンブリビルダーでの汎用製品イントロスペクタープラグインの使用をさらに示す。
図8に示すように、リハイドレーション554中、汎用製品アプライアンスは、宛先コンポーネントを作成するために使用可能であり、それは、オペレーティングシステム561、コンポーネントバイナリ562、コンポーネント構成563、コンポーネントライブラリ564、遅延バインディングされた、または再構成されたプロパティ565を、上述のようにソケットがリハイドレーションスクリプトに従って構成されたアプライアンス入力および出力とともに含んでいる。
アプライアンス入力/出力の作成
さまざまな実施形態によれば、アプライアンス入力および出力エンドポイントを作成する際、異なるアプローチが使用可能である。たとえば、エンドポイントはイントロスペクション中に作成可能であり、または、イントロスペクションに続く追加のステップとして作成可能である。一実施形態によれば、エンドポイントはイントロスペクション中に作成され、たとえばデータを含むファイルへのポインタを含むデハイドレーションパラメータを介して、汎用製品イントロスペクタープラグインに供給され、それは、結果として生じる汎用製品アプライアンス上の複数の入力および複数の出力を規定する。
アプライアンス入力/出力をスクリプトにさらすこと
一実施形態によれば、汎用製品イントロスペクタープラグインは、元々イントロスペクション時に供給されたアプライアンスユーザプロパティを、リハイドレーションスクリプトに発行する。一実施形態によれば、これは、プロパティをファイルに書き、その後スクリプトを実行する際に環境変数$AB_USERPROPS_FILEをファイルの経路に設定することによって遂行可能である。
同様のアプローチは、アプライアンスの入力および出力に関連付けられたメタデータを、汎用製品アプライアンスが接続されるであろう他のアプライアンスの入力に加えて、スクリプトに発行するために使用可能である。
汎用製品イントロスペクタープラグインパラメータ
一実施形態によれば、汎用製品イントロスペクタープラグインはENDPOINTDIRパラメータを認識する。それは、イントロスペクションの一環としてアプライアンスに追加されるべきアプライアンス入力(ApplianceInput)およびアプライアンス出力(ApplianceOutput)を記述する1つ以上のファイルを含むディレクトリを指しており、$AB_ENDPOINT_DIR環境変数としてすべてのリハイドレーションスクリプトに渡される。
一実施形態によれば、エンドポイントごとに1つのファイルがあり、ApplianceInputについては<input-name>.inputファイル、ApplianceOutputについては<output-name>.outputファイルを含んでいる。汎用製品アプライアンスのリハイドレーション中、アプライアンスのすべてのアプライアンス入力およびアプライアンス出力について、1つ以上のエンドポイントファイルが作成される。汎用製品アプライアンスが接続されるであろう他のアプライアンスのアプライアンス入力についても、エンドポイントファイルが作成される。
代替的な一実施形態によれば、たとえば、キーにエンドポイント名を含むネーミング戦略を使用することにより、エンドポイントメタデータを単一のファイルに格納することができる。
代替的な一実施形態によれば、イントロスペクションの前にエンドポイントを記述するファイルを作成することをユーザに要求する代わりに、その後のアセンブリ編集中にエンドポイントを追加するためにインターフェイスを提供することができる。
デハイドレーションおよびリハイドレーションインターフェイス
一実施形態によれば、ENDPOINTDIRパラメータを認識し、それに応じて作動することによって、汎用製品イントロスペクタープラグインのアプライアンス入力および出力の認識をサポートするように、グラフィカル(GUI)およびコマンドライン(CLI)デハイドレーションインターフェイスを構成することができる。リハイドレーションインターフェイスについては、再作成された*.input/*.outputエンドポイントファイルを位置付けるための$AB_ENDPOINT_DIR環境変数をリハイドレーションスクリプトに渡すことができる。
図9は、一実施形態に従った、仮想アセンブリビルダーで汎用製品イントロスペクタープラグインを使用するためのプロセスのフローチャートである。
図9に示すように、ステップ592で、入力および出力を記述する情報、および任意の対応するメタデータが、1組のデータへのポインタ(たとえば、データを含むファイルへの経路)を含むデハイドレーションパラメータを介して、汎用製品(たとえば、GenericProd)イントロスペクタープラグインに提供される。
ステップ594で、汎用製品イントロスペクタープラグインは、イントロスペクション時に供給された任意のアプライアンスユーザプロパティを、汎用製品アプライアンスの入力および出力に関連付けられたメタデータとともに、リハイドレーションスクリプトに発行する。
ステップ596で、汎用製品イントロスペクタープラグインは、汎用製品出力が接続される他のアプライアンスの入力についてのメタデータを、リハイドレーションスクリプトに発行する。
ステップ598で、宛先コンポーネントのリハイドレーション中、システムは、宛先コンポーネントがソケットを確立するであろうポートおよびホスト、コンポーネントがソケット上で扱うであろうプロトコル、ならびに、エンドポイントがどのように構成され、および/または接続されるべきかを記述する1組の構成可能または静的プロパティを判断するために、アプライアンス入力に関連付けられたメタデータとともにリハイドレーションスクリプトを実行し、および、アプライアンス出力に関連付けられたメタデータを実行する。
一実施形態によれば、リハイドレーションスクリプトは、宛先環境にデプロイメントされると、基礎をなす取り込まれた製品のネットワーク接続を構成するように、その入力メタデータおよび/または出力メタデータを含め、ユーザによってオプションで構成または編集されてもよい。次に、システムはこの情報を使用して、コンポーネントが接続で使用するであろうプロトコル、およびコンポーネントがどのように接続を確立するかを記述する1組の構成可能または静的プロパティを判断することができ、そのため、それと関連付けられた他のコンポーネントおよび製品は、宛先環境にデプロイメントされた製品に自動的に結合され得る。
本発明は、本開示の教示に従ってプログラムされた1つ以上のプロセッサ、メモリ、および/またはコンピュータ読取可能な記録媒体を含む、従来の汎用もしくは専用デジタルコンピュータ、コンピューティングデバイス、マシン、またはマイクロプロセッサを1つ以上用いて、適宜実現され得る。適切なソフトウェアコーディングは、熟練したプログラマが本開示の教示に基づいて容易に準備できるものである。これはソフトウェア技術における当業者には明らかであろう。
いくつかの実施形態では、本発明は、本発明のプロセスのうちのいずれかを行なうようにコンピュータをプログラムするために使用可能な命令が格納された非一時的な記録媒体または(1つまたは複数の)コンピュータ読取可能な媒体であるコンピュータプログラム製品を含む。この記録媒体は、フロッピー(登録商標)ディスク、光ディスク、DVD、CD−ROM、マイクロドライブ、および光磁気ディスクを含む任意のタイプのディスク、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、フラッシュメモリデバイス、磁気カードまたは光カード、ナノシステム(分子メモリICを含む)、もしくは、命令および/またはデータを格納するのに好適な任意のタイプの媒体またはデバイスを含み得るものの、それらに限定されない。
この発明の前述の説明は、例示および説明のために提供されてきた。それは、包括的であるよう、または、この発明を開示された形態そのものに限定するよう意図されてはいない。当業者には、多くの修正および変形が明らかであろう。実施形態は、この発明の原理およびその実際の応用を最良に説明するために選択され説明されており、それにより、当業者が、考えられる特定の用途に適したさまざまな実施形態に関する、およびさまざまな修正を有するこの発明を理解できるようにする。この発明の範囲は、特許請求の範囲およびその均等物によって定義されることが意図されている。

Claims (12)

  1. クラウド環境において仮想アセンブリビルダーを用いて汎用製品を結合するためのシステムであって、
    1つ以上のコンピュータを備え、前記コンピュータは当該コンピュータ上で実行されるクラウド環境を含み、
    アセンブリアーカイブのリポジトリを維持する仮想アセンブリビルダーコンポーネントを備え、
    各アセンブリアーカイブは、関連付けられたアセンブリのインスタンスを生成するために使用可能な1つ以上のアセンブリテンプレートを含み
    前記アセンブリのインスタンスは、関連付けられたアセンブリアーカイブのデプロイメント可能インスタンスであり、
    各アセンブリアーカイブは、デプロイメントされたときに、共に動作するように構成された1つ以上のソフトウェアアプライアンスの集合としてアセンブリを規定し、
    各ソフトウェアアプライアンスは、当該ソフトウェアアプライアンスの構成に必要な入力および出力エンドポイントを記述するメタデータプロパティが規定されており、
    製品イントロスペクタープラグインを備え、前記製品イントロスペクタープラグインは、
    基準となるホストの環境イントロスペクションにおいて、前記アセンブリを用いて特定のソフトウェアアプライアンスの生成中に、当該基準となるホスト環境において使用される前記ソフトウェアアプライアンスの入力および出力エンドポイントを規定する、1つ以上のメタデータプロパティの構成情報を取得し、
    1つ以上の他のホスト環境において使用するための、その後の前記特定のソフトウェアアプライアンスのリハイドレーション中に、前記ソフトウェアアプライアンスの入力および出力エンドポイントを規定するメタデータプロパティを、当該メタデータプロパティに対する1つ以上のスクリプトによる編集および構成のためにユーザに提供する、システム。
  2. 前記1つ以上のスクリプトは、前記アセンブリのインスタンスの生成中、前記アセンブリのインスタンスにおける前記特定のソフトウェアアプライアンスについての1つ以上の入力および出力を規定するために使用される、請求項1に記載のシステム。
  3. 前記アセンブリのインスタンスについての前記1つ以上の入力および出力は、1つ以上のソケットを含み、
    前記1つ以上のスクリプトは、前記アセンブリのインスタンスの生成中、前記1つ以上のソケットについての、ホスト、ポート、および他の情報を決定するために使用される、請求項2に記載のシステム。
  4. 前記1つ以上のスクリプトは、リハイドレーションの前に、前記アセンブリを変更することなく、前記1つ以上のソケットについての、ホスト、ポート、および他の情報を変更するために編集可能である、請求項3に記載のシステム。
  5. クラウド環境において仮想アセンブリビルダーを用いて汎用製品を結合するための方法であって、
    1つ以上のコンピュータ上で実行されるクラウド環境を含む前記1つ以上のコンピュータに、アセンブリアーカイブのリポジトリを維持する仮想アセンブリビルダーコンポーネントを提供するステップを含み、各アセンブリアーカイブは、関連付けられたアセンブリのインスタンスを生成するために使用可能な1つ以上のアセンブリテンプレートを含み
    各アセンブリアーカイブは、デプロイメントされたときに、共に動作するように構成された1つ以上のソフトウェアアプライアンスの集合としてアセンブリを規定し、
    各ソフトウェアアプライアンスは、当該ソフトウェアアプライアンスの構成に必要な入力および出力エンドポイントを記述するメタデータプロパティが規定されており、前記方法はさらに、
    製品イントロスペクタープラグインを提供するステップを備え、前記製品イントロスペクタープラグインは、
    基準となるホストの環境イントロスペクションにおいて、前記アセンブリを用いて特定のソフトウェアアプライアンスの生成中に、当該基準となるホスト環境において使用される前記ソフトウェアアプライアンスの入力および出力エンドポイントを規定する、1つ以上のメタデータプロパティの構成情報を取得し、
    1つ以上の他のホスト環境において使用するための、その後の前記特定のソフトウェアアプライアンスのリハイドレーション中に、前記ソフトウェアアプライアンスの入力および出力エンドポイントを規定するメタデータプロパティを、当該メタデータプロパティに対する1つ以上のスクリプトによる編集および構成のためにユーザに提供する、方法。
  6. 前記1つ以上のスクリプトは、前記アセンブリのインスタンスの生成中、前記アセンブリのインスタンスにおける前記特定のソフトウェアアプライアンスについての1つ以上の入力および出力を規定するために使用される、請求項5に記載の方法。
  7. 前記アセンブリのインスタンスについての前記1つ以上の入力および出力は、1つ以上のソケットを含み、
    前記1つ以上のスクリプトは、前記アセンブリのインスタンスの生成中、前記1つ以上のソケットについての、ホスト、ポート、および他の情報を決定するために使用される、請求項6に記載の方法。
  8. 前記1つ以上のスクリプトは、リハイドレーションの前に、前記アセンブリを変更することなく、前記1つ以上のソケットについての、ホスト、ポート、および他の情報を変更するために編集可能である、請求項7に記載の方法。
  9. 1つ以上のコンピュータによって読取られて実行されると前記1つ以上のコンピュータに以下のステップを実行させる命令を含む、コンピュータ読取可能プログラムであって、前記ステップは、
    1つ以上のコンピュータ上で実行されるクラウド環境を含む前記1つ以上のコンピュータに、アセンブリアーカイブのリポジトリを維持する仮想アセンブリビルダーコンポーネントを提供するステップを含み、各アセンブリアーカイブは、関連付けられたアセンブリのインスタンスを生成するために使用可能な1つ以上のアセンブリテンプレートを含み
    各アセンブリアーカイブは、デプロイメントされたときに、共に動作するように構成された1つ以上のソフトウェアアプライアンスの集合としてアセンブリを規定し、
    各ソフトウェアアプライアンスは、当該ソフトウェアアプライアンスの構成に必要な入力および出力エンドポイントを記述するメタデータプロパティが規定されており、前記ステップはさらに、
    製品イントロスペクタープラグインを提供するステップを含み、前記製品イントロスペクタープラグインは、
    基準となるホストの環境イントロスペクションにおいて、前記アセンブリを用いて特定のソフトウェアアプライアンスの生成中に、当該基準となるホスト環境において使用される前記ソフトウェアアプライアンスの入力および出力エンドポイントを規定する、1つ以上のメタデータプロパティの構成情報を取得し、
    1つ以上の他のホスト環境において使用するための、その後の前記特定のソフトウェアアプライアンスのリハイドレーション中に、前記ソフトウェアアプライアンスの入力および出力エンドポイントを規定するメタデータプロパティを、当該メタデータプロパティに対する1つ以上のスクリプトによる編集および構成のためにユーザに提供する、コンピュータ読取可能プログラム。
  10. 前記1つ以上のスクリプトは、前記アセンブリのインスタンスの生成中、前記アセンブリのインスタンスにおける前記特定のソフトウェアアプライアンスについての1つ以上の入力および出力を規定するために使用される、請求項9に記載のコンピュータ読取可能プログラム。
  11. 前記アセンブリのインスタンスについての前記1つ以上の入力および出力は、1つ以上のソケットを含み、
    前記1つ以上のスクリプトは、前記アセンブリのインスタンスの生成中、前記1つ以上のソケットについての、ホスト、ポート、および他の情報を決定するために使用される、請求項10に記載のコンピュータ読取可能プログラム。
  12. 前記1つ以上のスクリプトは、リハイドレーションの前に、前記アセンブリを変更することなく、前記1つ以上のソケットについての、ホスト、ポート、および他の情報を変更するために編集可能である、請求項11に記載のコンピュータ読取可能プログラム。
JP2016503096A 2013-03-15 2014-03-14 仮想アセンブリビルダー環境における汎用製品の結合のためのシステムおよび方法 Active JP6550372B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361798720P 2013-03-15 2013-03-15
US61/798,720 2013-03-15
PCT/US2014/029441 WO2014144854A1 (en) 2013-03-15 2014-03-14 System and method for generic product wiring in a virtual assembly builder environment

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2019032495A Division JP2019109922A (ja) 2013-03-15 2019-02-26 仮想アセンブリビルダー環境における汎用製品の結合のためのシステムおよび方法

Publications (3)

Publication Number Publication Date
JP2016516248A JP2016516248A (ja) 2016-06-02
JP2016516248A5 JP2016516248A5 (ja) 2017-03-30
JP6550372B2 true JP6550372B2 (ja) 2019-07-24

Family

ID=50478979

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2016503096A Active JP6550372B2 (ja) 2013-03-15 2014-03-14 仮想アセンブリビルダー環境における汎用製品の結合のためのシステムおよび方法
JP2019032495A Withdrawn JP2019109922A (ja) 2013-03-15 2019-02-26 仮想アセンブリビルダー環境における汎用製品の結合のためのシステムおよび方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2019032495A Withdrawn JP2019109922A (ja) 2013-03-15 2019-02-26 仮想アセンブリビルダー環境における汎用製品の結合のためのシステムおよび方法

Country Status (5)

Country Link
US (1) US9690607B2 (ja)
EP (1) EP2972856B1 (ja)
JP (2) JP6550372B2 (ja)
CN (1) CN104885058B (ja)
WO (1) WO2014144854A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10225164B2 (en) * 2012-09-07 2019-03-05 Oracle International Corporation System and method for providing a cloud computing environment
US9569139B1 (en) * 2013-09-26 2017-02-14 EMC IP Holding Company LLC Methods and apparatus for shared service provisioning
US11455181B1 (en) * 2014-09-19 2022-09-27 Amazon Technologies, Inc. Cross-network connector appliances
CN108460276B (zh) * 2016-12-09 2022-01-25 北京奇虎科技有限公司 一种安卓安装包的动态链接库so文件的处理方法和装置
US10915312B2 (en) * 2019-07-02 2021-02-09 Vmware, Inc. Lifecycle management of virtual compute templates
US20220308929A1 (en) * 2021-03-24 2022-09-29 International Business Machines Corporation System and method for provisioning cloud computing resources

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1442372B1 (en) * 2001-11-07 2015-03-04 Sap Se Providing isolation through process attachable virtual machines
US7136868B2 (en) * 2003-06-06 2006-11-14 Microsoft Corporation Database object script generation method and system
EP1934782A4 (en) * 2005-09-15 2009-01-07 Invixa Llc APPARATUS, METHOD AND SYSTEM FOR CONSTRUCTING SOFTWARE BY THE COMPOSITION
US8291374B2 (en) * 2007-11-05 2012-10-16 Cullum Owen H G System and method for generating modified source code based on change-models
US8181174B2 (en) * 2007-12-28 2012-05-15 Accenture Global Services Limited Virtual machine configuration system
US8473594B2 (en) * 2008-05-02 2013-06-25 Skytap Multitenant hosted virtual machine infrastructure
US8776038B2 (en) * 2008-08-07 2014-07-08 Code Systems Corporation Method and system for configuration of virtualized software applications
US8984503B2 (en) * 2009-12-31 2015-03-17 International Business Machines Corporation Porting virtual images between platforms
US20110289425A1 (en) * 2010-05-20 2011-11-24 Salesforce.Com, Inc. Methods and systems for providing a user interface in a multi-tenant database environment
US20120102480A1 (en) * 2010-10-20 2012-04-26 Microsoft Corporation High availability of machines during patching
US8635607B2 (en) * 2011-08-30 2014-01-21 Microsoft Corporation Cloud-based build service
US8434080B2 (en) * 2011-12-22 2013-04-30 Software Ag Usa, Inc. Distributed cloud application deployment systems and/or associated methods
US9071587B2 (en) * 2012-08-27 2015-06-30 International Business Machines Corporation Optimizing deployment of virtual machines by pre-generating a virtual machine's first-boot metadata by cloud controller
US9170834B2 (en) * 2012-10-31 2015-10-27 Google Inc. Metadata-based virtual machine configuration

Also Published As

Publication number Publication date
JP2016516248A (ja) 2016-06-02
EP2972856B1 (en) 2017-05-10
US9690607B2 (en) 2017-06-27
EP2972856A1 (en) 2016-01-20
CN104885058A (zh) 2015-09-02
JP2019109922A (ja) 2019-07-04
WO2014144854A1 (en) 2014-09-18
US20140282545A1 (en) 2014-09-18
CN104885058B (zh) 2018-06-26

Similar Documents

Publication Publication Date Title
US11368519B2 (en) Architecture for managing I/O and storage for a virtualization environment using executable containers and virtual machines
JP2019109922A (ja) 仮想アセンブリビルダー環境における汎用製品の結合のためのシステムおよび方法
US9405529B2 (en) Designing and cross-configuring software
US11138030B2 (en) Executing code referenced from a microservice registry
US9690566B2 (en) System and method for virtual assembly patching in a cloud environment
US10445122B2 (en) Effective and efficient virtual machine template management for cloud environments
US9170831B2 (en) Cloning virtual machines
CA2781496C (en) Porting virtual machine images between platforms
US9280335B2 (en) Semantically rich composable software image bundles
US9298482B2 (en) Plug-in based templatization framework for automating the creation of open virtualization format virtual appliances
US20190340003A1 (en) Live migration of virtual machines across heterogeneous virtual machine management domains
US10031762B2 (en) Pluggable cloud enablement boot device and method
US20180260241A1 (en) Method and system of migrating applications to a cloud-computing environment
US9361120B2 (en) Pluggable cloud enablement boot device and method that determines hardware resources via firmware
US20170168813A1 (en) Resource Provider SDK
US9747091B1 (en) Isolated software installation
US20130042239A1 (en) System and method for use of a virtual assembly builder
US20150106612A1 (en) Automatically reflecting changes to a computing solution into an image for the computing solution
Nguyen et al. A generic development and deployment framework for cloud computing and distributed applications
Nguyen et al. A novel approach for developing interoperable services in cloud environment
US20220164211A1 (en) Data protection management of application instance executing in accordance with virtual volume-based storage system
Nguyen et al. Abstraction approach for developing and delivering cloud-based services
Das Distributed File Systems Implementation on an Edge Router using GlusterFS for Cloud Applications

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170224

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170224

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180109

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20180409

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180507

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20181030

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190226

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20190226

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20190319

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190604

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190701

R150 Certificate of patent or registration of utility model

Ref document number: 6550372

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250