この付録では、デプロイメント・ディスクリプタのプリファレンス・プロパティおよびデプロイメント・ディスクリプタの構成プロパティを定義する方法について説明します。
この付録の内容は次のとおりです。
プリファレンスとは、Oracle JDeveloperで定義された単純な名前/値ペアのプロパティで、実行時にBPELプロセスによってアクセスされます。プリファレンスを使用すると、BPELプロセスの設計者はリテラル値をプロセスの外部で管理できます。プリファレンスの値は実行時にOracle BPEL Controlで変更でき、BPELプロセスを再デプロイする必要はありません。
たとえば、1000ドルを超える経費請求を自動的に却下するプロセスを設計したが、その後ビジネス要件が変化して最高額が1500ドルに増加したという場合、通常はプロセス定義を編集して再デプロイする必要があります。設計時にデプロイメント・ディスクリプタのプロパティに最高額を表すプリファレンスを定義すると、プロセスを再デプロイしなくても、必要に応じて実行時に値を変更できます。
プリファレンス値は、Oracle JDeveloperで定義できます。
図C-1に示す「デプロイメント・ディスクリプタのプロパティ」アイコンをクリックします(BPELダイアグラムの左上の領域にあります)。
図C-2に示すように、「デプロイメント・ディスクリプタのプロパティ」ウィンドウで「プリファレンス」タブをクリックします。
「作成」をクリックし、プリファレンス名を入力します。
「プロパティ値」フィールドの値を編集し、「OK」をクリックします。
... <preferences> <property name="MAX_AMOUNT">1000</property> <property name="DEFAULT_COSTCENTER">US23</property> </preferences> ...
プリファレンス値は実行時にOracle BPEL Controlで更新できます。
「BPELプロセス」タブをクリックします。
プロセス名をクリックしてから「ディスクリプタ」タブをクリックします。
図C-3のように、プロセスのデプロイメント・ディスクリプタがプリファレンスを含めて表示されます。
プリファレンス値を更新し、「ディスクリプタの更新」をクリックします。
変更はただちに有効になります。
プリファレンスの値は、XPath拡張関数ora:getPreference(String preferenceName)
を使用してBPELプロセスで読み取ることができます。この関数は、単純なassign
文の一部として、または条件式の中で、あるいはより複雑なXPath式の一部として使用可能です。
プリファレンス・プロパティの内容は暗号化できます。暗号化には、sunJCEセキュリティ・プロバイダとともにDESが使用されます。Oracle JDeveloperでは、内容が暗号化されて表示されることはありません。内容が暗号化されるのはデプロイ時のみです。「暗号化」リスト(図C-2を参照)には、次のオプションが用意されています。
プレーン・テキスト: 内容は平文のままです。
デプロイ時のサーバー上の暗号化: Oracle JDeveloperプロジェクトでは、内容は平文のままです。ただし、Oracle BPEL Serverでは暗号化されます。
ローカル・マシン上の暗号化: 内容は、Oracle JDeveloperプロジェクトでは暗号形式のままで、Oracle BPEL Server上でも暗号化されます。
プロパティは、デプロイメント・ディスクリプタの「構成」タブのパスワード・フィールドとしても表示されます。
次の例は、暗号化を設定しないXMLコード、および暗号化を設定したXMLコードを示しています。
暗号化を設定しない場合、次のようになります。
... <preferences> <property name="secret">mySecretValue</property> </preferences> ...
暗号化を行わないXMLは次のようになることもあります。ただし、プロパティはデフォルトでplaintext
として格納されるため、plaintext
を明示的に指定する必要はありません。
... <preferences> <property name="secret" encryption="plaintext">mySecretValue</property> </preferences> ...
コンパイラおよびOracle BPEL Serverにプロパティを暗号化するよう指示する場合、XMLは次のようになります。
... <preferences> <property name="secret" encryption="encrypt">mySecretValue</property> </preferences> ...
BPELプロジェクトのコンパイル後、コンパイル済JARファイル内のbpel.xml
ファイルのコピー(Oracle JDeveloperプロジェクト内のコピーではない)がコンパイラによって更新されます。したがって、XMLは次のようになります。
... <preferences> <property name="secret" encryption="encrypted">ZAv9lfntAgy=</property> </preferences> ...
他のセクションのプロパティも暗号化する必要がある場合に備えて、暗号化はpreferences
セクションのproperty
タグのみでなく、ディスクリプタのすべてのproperty
タグに対して行われます。
注意: プリファレンスから導出された値を含むインスタンスの監査証跡を調べれば、プリファレンスの値は推測可能です。 |
構成プロパティは、Oracle BPEL ServerまたはOracle BPEL Control、あるいはその両方で使用される特殊なプロパティです。たとえば、Oracle BPEL Controlでは、プロセスの説明およびデフォルト・データをテスト・プロセス・ウィンドウに表示するために構成プロパティが使用されます。
構成プロパティは、Oracle JDeveloperで定義できます。
図C-1に示す「デプロイメント・ディスクリプタのプロパティ」アイコンをクリックします(BPELダイアグラムの左上の領域にあります)。
図C-4に示すように、「デプロイメント・ディスクリプタのプロパティ」ウィンドウで「構成」タブをクリックします。
「作成」をクリックし、構成名を入力します。
「プロパティ値」フィールドの値を編集し、「OK」をクリックします。
変更はただちに有効になり、bpel.xml
に反映されます。
構成プロパティの内容の暗号化については、「プリファレンス値の暗号化」を参照してください。
configurations
デプロイメント・ディスクリプタのプロパティ名を表C-1に示します。
表C-1 configurationsデプロイメント・ディスクリプタの構成プロパティ
partnerLinkBinding
デプロイメント・ディスクリプタのセクションの構成プロパティを表C-2に示します。
表C-2 partnerLinkBindingデプロイメント・ディスクリプタの構成プロパティ