2

ポリシーを特定のプロセス インスタンスのアクティビティに添付するために、WS-policy 添付ファイルを作成しようとしています。エンドポイント参照 (EPR) をAppliesTo要素に含める必要があることを読みましたが、問題はプロセス インスタンスを指定する方法がわからないことです。次のコードは、プロセスMyProcessのすべてのインスタンスの呼び出しアクティビティにポリシーをアタッチします。

<wsp:PolicyAttachment>
  xmlns:wsp="http://schemas.xmlsoap.org/ws/2002/12/policy"
  xmlns:q4b="http://www.example.com/q4b"
  xmlns:ns="http://www.example.com/processes"
<wsp:AppliesTo>
   <q4b:process name="ns:myProcess" expressionLanguage="xpath1.0">
     /process/inovoke[2]
   </q4b:process>
</wsp:AppliesTo>
<wsp:PolicyReference>
  URI="http://www.example.com/policies/myPolicy"/>
</wsp:PolicyAttachment>

ApplyTo要素は、ポリシーの対象を定義しますこれには、プロセスの名前を指定するq4b:processという新しい定義済み XML タイプが含まれ、そのプロセスの 2 番目の呼び出しアクティビティーを選択するための XPath 式が含まれます。PolicyReference要素は、添付するポリシーへの参照です。

WS-Policy Attachement 仕様には、エンドポイント参照を使用する例がありますが、説明では、エンドポイントとのすべての対話にポリシーが適用されると述べています。ポリシーをプロセスの指定されたインスタンスと指定されたアクティビティにのみ適用したいので、これは私が望むものではありません。ワークフロー エンジンとして Apache ODE を使用しています。

次の例は、Web Services Addressing [WS-Addressing Core] で定義されているように、デプロイされたエンドポイントの EndpointReference ドメイン式でこのメカニズムを使用する方法を示しています。

(01) <wsp:PolicyAttachment>
(02)   <wsp:AppliesTo>
(03)     <wsa:EndpointReference>
(04)       <wsa:Address>http://www.example.com/acct</wsa:Address>
(05)     </wsa:EndpointReference>
(06)   </wsp:AppliesTo>
(07)   <wsp:PolicyReference
(08)      URI="http://www.example.com/policies#RmPolicy" />
(09) </wsp:PolicyAttachment>

この例では、ポリシー式 at がエンドポイントとのすべての対話に適用されます。

WS-Policy アタッチメントの仕様

WS-Addressing 仕様

お時間とご尽力いただきありがとうございます。

4

1 に答える 1