ビジネス・プロセスがサービス・コンポーネント・アーキテクチャー (SCA) サービスを消費したり、ビジネス・プロセスが他の SCA サービスによって消費されたりすることができます。 Web サービス記述言語 (WSDL) メッセージ・データが SCA サービスとプロセスの間で交換される方法は、プロセスがどのようにモデル化されたかによって異なります。
ビジネス・プロセスでのサービスの消費は、プロセス・モデルの Business Process Execution Language (BPEL) invoke アクティビティーを使用してインプリメントされます。 SCA サービスに渡されるデータは、1 つ以上の BPEL 変数から検索されます。 通常、データは値によって受け渡されます。これは、呼び出されたサービスがデータのコピーを処理することを意味します。
特定の環境では、データを参照によって受け渡すことができます。 参照によるデータの受け渡しにより、ビジネス・プロセスのパフォーマンスを改善することができます。
<variable name="inputPart1Var" type="ws:inputPart1Type"> <variable name="inputPart2Var" type="ws:inputPart2Type">
Web サービス・アクティビティーは、パラメーターの拡張を使用して、BPEL 変数を参照します。 SCA 対話では、WSDL は参照によって受け渡されるデータのラッパーとして扱われます。
<invoke ....> <wpc:input> <wpc:parameter name="ws:inputPart1" variable="inputPart1Var"/> <wpc:parameter name="ws:inputPart2" variable="inputPart2Var"/> ... </wpc:input> </invoke ....>
<variable name="inputParm1Var" type="ws:inputParm1ElemType"> <variable name="inputParm2Var" type="ws:inputParm2ElemType">
Web サービス・アクティビティーは、パラメーターの拡張を使用して、BPEL 変数を参照します。 これが、WebSphere Integration Developer で作成されるプロセスのデフォルトの振る舞いです。 SCA 対話では、ラッパーは参照によって受け渡されるパラメーターを保持します。
<invoke ....> <wpc:input> <wpc:parameter name="ws:inputParm1" variable="inputParm1Var"/> <wpc:parameter name="ws:inputParm2" variable="inputParm2Var"/> ... </wpc:input> </invoke ....>
呼び出されたサービスがデータを変更する場合、これらの変更は対応する BPEL 変数に適用されます。ただし、最良実例として、呼び出されたサービスはデータを更新すべきではありません。 その理由は、データに対して行われる変更は永続的ではないからです。 長期間のプロセスの場合、現行のトランザクションがコミットすると変更は破棄され、microflow の場合、プロセスが終了すると変更が破棄されます。 さらに、呼び出されたサービスによって変数が更新されると、イベントは生成されません。
他のサービスによって消費されるビジネス・プロセスでは、プロセス・モデル内に、receive アクティビティー、pick アクティビティー、またはイベント・ハンドラーが含まれています。 プロセスに受け渡されるデータは 1 つ以上の BPEL 変数に書き込まれます。 通常、データは値によって受け渡されます。これは、プロセスがデータのコピーを処理することを意味します。
<variable name="outputPart1Var" type="ws:outputPart1Type"> <variable name="outputPart2Var" type="ws:outputPart2Type">
アクティビティーは、パラメーターの拡張を使用して、BPEL 変数を参照します。 SCA 対話では、WSDL は参照によって受け渡されるデータのラッパーとして扱われます。 receive アクティビティーの場合、対応する BPEL 断片は、以下の例のようになります。
<receive ....> <wpc:output> <wpc:parameter name="ws:outputPart1" variable="outputPart1Var"/> <wpc:parameter name="ws:outputPart2" variable="outputPart2Var"/> ... </wpc:output> </receive ....>
<variable name="outputParm1Var" type="ws:outputParm1ElemType"> <variable name="outputParm2Var" type="ws:outputParm2ElemType">
アクティビティーは、パラメーターの拡張を使用して、BPEL 変数を参照します。 これが、WebSphere Integration Developer で作成されるプロセスのデフォルトの振る舞いです。 SCA 対話では、ラッパーは参照によって受け渡されるパラメーターを保持します。 receive アクティビティーの場合、対応する BPEL 断片は、以下の例のようになります。
<receive ....> <wpc:output> <wpc:parameter name="ws:outputParm1" variable="outputParm1Var"/> <wpc:parameter name="ws:outputParm2" variable="outputParm2Var"/> ... </wpc:output> </receive ....>
起動されたプロセスが BPEL 変数を変更する場合、呼び出しサービスからの入力データも変更されます。
(c) Copyright IBM Corporation 2005, 2006. All rights reserved.
(c) Copyright IBM Japan 2006
このインフォメーション・センターでは、Eclipse テクノロジー (http://www.eclipse.org) が採用されています。