第1章 Oracle VM Webサービスの概要
Oracle VM Webサービス・アプリケーション・プログラミング・インタフェース(API)は、Oracle VMを使用してアプリケーションを構築するためのWebサービス・インタフェースを提供します。 SOAPインタフェースとRESTインタフェースの両方がサポートされています。 どちらも同じ基本機能を提供します。ただし、SOAPインタフェースはリリース3.4.1から推奨されていません。 同じアプリケーションでSOAPとRESTベースの対話を混在させることはサポートされていないため、予期しない結果が生じる可能性があります。
WebサービスAPIを使用すると、Oracle VMをカスタマイズ、制御、および自動化するためのアプリケーションを作成できます。 たとえば、次のことができます。
-
「仮想マシン」を作成、起動、再起動、停止し、異なるOracle VM Servers間で移行を実行します。
-
Oracle VM Serversと記憶域プロバイダをさらに追加して、Oracle VM環境の容量を拡張します。
-
Oracle VMとモニタリング・アプリケーションなどの他のサードパーティ製ツールとの統合
-
テンプレートから頻繁にデプロイされた仮想マシンの新しいインスタンスを作成したり、ポリシーを切り替えたり、曜日や週の時間に応じてオン/オフしたり、ハードウェアや仮想環境のメンテナンスを実行するなど、繰り返しの作業を容易にします。
このマニュアルでは、Oracle VM WebサービスAPIについて説明し、基本的なコンセプトとAPIの例を示します。 完全なAPIドキュメントについては、Oracle VM ManagerインストールISOのSDKに含まれているOracle VM WebサービスAPIドキュメントを参照してください。
Oracle VMへのWebサービスAPIは、任意のプログラミング言語を使用してアクセスできます。 APIとの一般的な対話パターンは、まずオブジェクトを見つけ出し、オブジェクトのクライアント側のインスタンスを取り出し、次に特定の許可された操作を実行することです。
オブジェクトはIDで検索する必要があります。 これらのオブジェクトIDは、他の関連オブジェクトを介して取得することもできますし、特定のタイプのすべてのオブジェクトIDのリストをリクエストすることによっても取得できます。 IDが利用可能になると、オブジェクトに対してさまざまな操作を実行できます。 正確な操作のセットは、オブジェクトのタイプによって異なります。
単純検索ではない操作は非同期で実行されます。 これらのメソッドは、後で操作のステータスを問合せするために使用できるJobオブジェクトを返します。 操作がオブジェクト作成の場合、完了したJobオブジェクトには作成されたオブジェクトのIDも含まれるため、このオブジェクトに対して他の操作を実行できます。
1.1 リリース3.4でのOracle VM WebサービスAPIの変更点
リリース3.4のOracle VM WebサービスAPIの変更点は次のとおりです:
-
SOAP APIはリリース3.4以降で非推奨され、将来のバージョンで削除される予定です。 任意のクライアント・アプリケーションにREST Webサービスを使用することをお薦めします。
-
仮想IPアドレスは非推奨です。 Oracle VM Serverの以前のリリースとの下位互換性を維持するために、仮想IPアドレスを構成することができます。
-
仮想アプライアンスはアセンブリを置き換えます。 以前のリリースのOracle VM Managerでは、仮想アプライアンスはアセンブリという名前でした。 下位互換性を維持するために、Oracle VM WebサービスAPIでは、コード全体でアセンブリという用語が使用されています。 ただし、Oracle VM Manager Web InterfaceおよびOracle VM Managerコマンドライン・インタフェースでは、仮想アプライアンスという用語が使用されます。
-
SOAP APIの
eventGetTypes
コールのレスポンス・クラスのメンバー変数が、Oracle VMリリース3.3.3のreturn
からeventTypes
に変更されました。 WSDLまたはクライアント・ライブラリOvmWsClient.jar
を使用してSOAP API用に作成されたクライアント・コードがある場合、この呼び出しのパーサーは失敗する可能性があります。
Oracle VM WebサービスAPIを使用するためのクライアント・アプリケーションを作成した場合は、リリース3.4の変更を確認して、それらがランタイム機能にどのように影響するかを評価する必要があります。 場合によっては、基盤となるOracle VM実装の変更と改善では、新しいルール例外などの動作の変更を考慮してクライアント・コードを更新し、運用環境に戻る前にアプリケーションを再コンパイルしてデプロイする必要があります。
1.2 Oracle VM WebサービスSDKの使用
Oracle VM Web Services SDKは、zip形式で圧縮されたOracle VM ManagerインストールISOに含まれています。 SDKにアクセスするには、マウントされたISOのzipファイルを作業ディレクトリにコピーし、解凍します。
SDKには、Oracle VM Web Services APIを開発するために必要なすべてのリソースが含まれています:
-
提供されたライブラリとサンプル・ソース・コードによって公開されているWebサービスAPIの完全なドキュメント。
-
Oracle VM Webサービス・クライアント・ライブラリ。
-
独自のクライアント・アプリケーションを構築するためのサンプルJavaソース・コード。
1.3 Oracle VM Webサービス・クライアント・ライブラリおよびサンプル・コードの使用
Oracle VM Managerは一般的なREST APIを提供するため、このドキュメントを使用して、RESTの理解と公開されているAPIでサポートされているメソッドに基づいて、APIと直接対話する独自のコードを開発することができます。 ただし、Oracle VM WebサービスSDKには、Javaクライアント・ライブラリとJavaソース・コードのサンプルが含まれているため、APIを使用するアプリケーションをコーディングするために必要な作業量を大幅に削減できます。 サンプル・コードには、APIを扱う際に役立つAPI自体の一部ではない多くのユーティリティも含まれています。 このため、Oracle VM ManagerとインタフェースするJavaアプリケーションをプログラミングするときは、提供されたコードとライブラリを利用することをお勧めします。
このマニュアルでは、Oracle VM Webサービス・クライアント・ライブラリとそれが一般的にどのように使用されるかを詳しく見ていきます。 ライブラリでサポートされているメソッドについては、SDKに付属のマニュアルを参照してください。
SDKの使用を開始するには、提供されたソース・コードを希望のIDE内の新しいJavaプロジェクトにインポートします。 SDKでは、プロジェクトにOracle JDK 7を使用する必要があります。 JDK 6はサポートされていません。
ソース・コードをコンパイルするには、提供されたクライアント・ライブラリOvmWsClient.jar
をプロジェクトに追加する必要があります。 また、サンプル・ソース・コードでは、Jersey Bundleなどの外部ライブラリを使用してREST APIの呼び出しを処理しています。 独自のアプリケーションを作成するための他のツールは自由に選択できますが、ソース・コード例では、REST APIまたは非推奨のSOAP APIを使用するようにサンプル・コードをコンパイルする必要があります。 Jerseyバンドルのダウンロードおよびインストールに関する情報は、「提供されているJavaサンプルについて」に提供されています。
サンプル・コードには、WsDevClient.properties
というプロパティ・ファイルが含まれています。 このファイルには、コードで定義されているさまざまな変数に使用されるデフォルト値が含まれています。 ほとんどの場合、これらの変数値の多くは、自分の環境でオーバーライドする必要があります。 上書きする値については、WsDevClient_
という名前の同じディレクトリにファイルを作成します。ここで、usernameは、コードをコンパイルする環境にログインするために使用するユーザー名と一致します。 このプロパティ・ファイルはサンプル・クライアントでのみ必要であり、提供されたライブラリを使用して独自のアプリケーションを構築する際には不要です。
username
.properties
プロパティ・ファイルで定義されたwsimpl
変数の値がSOAP
に設定され、debugHttpTraffic
がtrue
に設定されている場合、サンプル・コードからの出力には、HTTPヘッダーとSOAPを含むサンプル・クライアント・アプリケーションが実行するすべてのSOAP対話が含まれます各リクエストの本文内で交換されるメッセージ。 SOAP APIはOracle VM Manager 3.4では非推奨です。
プロパティ・ファイルで定義されたwsimpl
変数の値がREST
に設定され、debugHttpTraffic
がtrue
に設定されている場合、サンプル・コードの出力には、サンプル・クライアント・アプリケーションが実行するすべてのRESTインタラクションが含まれますおよびHTTPヘッダーを使用します。 これにより、クライアントとOracle VM Managerとのやりとりに関係する実際のHTTPリクエストを見ることができ、クライアント内の基礎となるコードを理解するのに役立ちます。
コードをコンパイルしたら、次のコマンドラインを使用して簡単に実行できます:
java -cp wsclient.jar com.oracle.ovm.mgr.ws.sample.WsDevClient