この章では、カスタム・ポリシー・ステップの作成方法の概要を示し、カスタム・ポリシー・ステップを作成、開発、およびデプロイする方法について説明します。
この章の内容は次のとおりです。
Oracle Web Services Manager(Oracle WSM)では、カスタム・ステップの作成のために次のツールを提供しています。
Oracle WSM SDK
カスタム・ステップの開発に使用するサンプルのステップ・テンプレート
Oracle WSMのステップ・テンプレート・スキーマ
ステップ・テンプレートを定義し、ステップの一意のID、名前、および構成可能なパラメータを指定します。
initメソッド、executeメソッド、およびdestroyメソッドの実装を記述してAbstractStepクラスを拡張し、ステップ・プロパティのsetメソッドとgetメソッドを追加します。
注意: カスタム・ステップの実装では、executeメソッドのみが必須メソッドです。 |
カスタム・ステップをデプロイします。
開発するカスタム・ステップがWebサービスの規格に準拠することを確認します。
カスタム・ステップは、com.cfluent.policysteps.sdk.AbstractStep
クラスを拡張し、executeメソッドを実装します。次に、executeメソッドについて説明します。
executeメソッドの基本的な特性と機能は次のとおりです。
カスタム・ステップのプログラム・エントリ・ポイントを提供します。
com.cfluent.policysteps.sdk型の例外をスローできます。
例外処理時にexecuteメソッドがフォルトをスローした場合、このフォルトはクライアント・アプリケーションにカスケードされます。
IResult型のオブジェクトを返します。
カスタム・ステップでは、createResultメソッドを使用して結果オブジェクトを生成します。createResultメソッドのint引数により、結果の状態が提供されます。これらの状態は、executeメソッドの結果を次のように示します。
IResult.FAILED: executeメソッドが失敗しました。
IResult.SUCCEEDED: executeメソッドが成功しました。
IResult.SUSPENDED: executeメソッドの実行が一時停止されました。
注意: executeメソッドはマルチスレッド化される(つまり、複数のスレッドによる同時実行が可能である)ため、executeメソッドはスレッド・セーフな実装になっている必要があります。 |
デフォルトのinitメソッドをオーバーライドするには、該当するカスタム・ステップに固有の初期化コードを追加します。また、destroyメソッドのコードを追加すると、カスタム・ステップのライフサイクルを確実にクリーンな状態で終了することができます。
AbstractStepインタフェースには、次のデフォルトのメソッドがあります。
public final void setEnabled(boolean); public final boolean getEnabled(); public final void setStepName(java.lang.String); public final java.lang.String getStepName(); public final com.cfluent.policysteps.sdk.AgentContext getAgentContext(); public final void setAgentContext(com.cfluent.policysteps.sdk.AgentContext); public void init() throws java.lang.IllegalStateException; protected void generateFault(com.cfluent.policysteps.sdk.Fault) throws com.cfluent.policysteps.sdk.Fault; protected com.cfluent.policysteps.sdk.IResult createResult(int);
Oracle WSMポリシー・ステップ・フレームワークでは、各Oracle WSMステップがステップ・テンプレートを参照する必要があります。ステップ・テンプレートは、ステップIDとステップ・プロパティを定義し、各プロパティの簡単な説明を提供します。
Oracle WSMフレームワークにステップ・テンプレートを追加するには、整形式のXML文書を作成する必要があります。XMLでサンプルのステップ・テンプレートを作成する場合は、「サンプルのステップ・テンプレート」を参照してください。ステップ・テンプレート・スキーマは、「ステップ・テンプレート・スキーマ」を参照してください。
次の表に、典型的なステップ・テンプレートの一連のタグとその説明を示します。
表1-1 ステップ・テンプレートのタグ
タグ | 説明 |
---|---|
csw:StepTemplate name=Step_Name id=XYZA123 |
ステップ名と一意のIDを定義するXML文書の開始タグ。一意のIDは、OracleWSMシステムによって割り当てられないため、自分で割り当てる必要があります。割り当てたIDがシステム内で重複する場合、Oracle WSMから例外がスローされます。 |
csw:Description |
ステップの簡単な説明を指定します。 |
Csw:Implementation |
ステップの実装を含むクラスを指定します。フレームワークは、このステップの起動時にステップによって定義されるクラスを、実行時にreflectionによってロードします。 |
Csw:Property name=?...? type=?...? |
ステップ・プロパティの名前およびデータ型に使用できるプロパティを定義します。データ型は次のいずれかです。 boolean、string、boolean、int、long、float、short、string[]、boolean[]、int[]、long[]、short[]、string[] |
Property/Csw:Description |
前のタグで定義されるプロパティの簡単な説明を指定します。定義されるプロパティに関連する説明は、ステップ開発者が指定することになっています。 |
Property/csw:Value/Absolute |
定義されるプロパティのデフォルト値を定義します。値は、AbsoluteまたはPropertyRefです。 PropertyRefとは、${<property_key>}によって定義される環境プロパティをフレームワークで引き継ぐことを指します。 |
カスタム・ステップをデプロイするには、次のタスクを完了します。
カスタム・ステップをOracle WSM Policy Managerに追加します。
ステップの実装クラスを含むjarファイルを/libディレクトリに追加します。jarファイルの追加とコピーの詳細は、「jarファイルの追加方法」を参照してください。
必要に応じて、サービスのパイプラインにカスタム・ステップを追加します。
Web Services Manager Controlにログインし、ナビゲーション・バーから「ポリシー・マネージャ」を選択します。
Web Services Manager Controlに、現在定義されているコンポーネントのリストが表示されます。
カスタム・ステップを追加するコンポーネントの行で、「ステップ」をクリックします。
ステップ管理ウィンドウに、既存のステップのリストが表示されます(図1-1)。
「新規ステップの追加」をクリックします。
Web Services Manager Controlに「ステップ管理/ステップの追加」ページが表示されます(図1-2)。
「参照」をクリックし、新規に作成したXMLステップ・テンプレートを選択します。
「アップロード」をクリックします。
「ステップ管理」画面の現在使用できるステップのリストが更新され、新たに追加されたステップがリストに表示されます。
注意: 各カスタム・ステップに削除ボタンが表示されますが、デフォルトのステップは削除できません。 |
ゲートウェイ・コンポーネントまたはエージェント・コンポーネントがインストールされたマシンに、カスタム・ステップの実装クラスを含むJavaアーカイブ(jar)をコピーする必要があります。次の場所にjarファイルをコピーします。
ORACLE_HOME
/owsm/lib/custom
Web Services Manager Controlから「ポリシー・マネージャ」を選択します。
Web Services Manager Controlに、登録されているOracle WSMコンポーネントのリストが表示されます。
ポリシーを変更するコンポーネントを選択し、「ポリシー」をクリックします。
Web Services Manager Controlに、コンポーネントのデフォルトのポリシーが表示されます。
ステップを追加するポリシーの行で、「編集」をクリックします。
ページに、既存のポリシー・パイプラインが表示されます。
ステップを追加する場所のすぐ上のパイプラインのセクションで、「以下にステップを追加」をクリックします。
リストに、新しいカスタム・ステップも含め、選択したコンポーネントで使用できるステップが表示されます。
新しいステップを選択し、「OK」をクリックします。
ステップを構成します。
「次へ」をクリックします。
ステップがサービスのパイプラインに追加されます。
「保存」をクリックします。
「ポリシーのコミット」をクリックしてポリシーへの変更をコミットします。
注意: デフォルトのポーリング頻度を使用する場合、新しいポリシーは10秒で有効になります。ゲートウェイ・コンポーネントとエージェント・コンポーネントは、更新されたポリシーをOracle WSM Policy Managerから自動的に取得します。 |