リモートサブプロセスは、リモートワークフローサーバ上で実行されるサブプロセスです。リモートワークフローサーバは、たとえば、ほかのInterstage BPMサーバなどです。
Interstage BPM Studio for Systemwalkerでは、ワークフローサーバ間の通信に2つのオープンプロトコル、SWAP (シンプルワークフローアクセスプロトコル、Simple Workflow Access Protocol)およびASAP (非同期サービスアクセスプロトコル、Asynchronous Service Access Protocol)を使用できます。これらのプロトコルでは、ワークフローサーバ間で、HTTPを介してXMLメッセージをやり取りします。
統合されたInterstage BPMサーバ間でプロセスを実行する場合は、ASAPを使用することをお勧めします。
リモートサブプロセスは、親プロセス定義ではRemote Subprocessノードによって表されます。 親プロセスとリモートサブプロセスとの間のやり取りは、以下のステップで行われます。
Remote Subprocessノードに到達すると、ローカルワークフローサーバがStartProcess要求をリモートワークフローサーバに送ります。このときに、リモートサブプロセスインスタンスが処理するUDAも送られます。
リモートワークフローサーバはこの要求を受け取って、プロセスインスタンスを開始します。
リモートプロセスインスタンスが完了すると、それを実行したワークフローサーバがProcessCompletedメッセージを返します。このときに、サブプロセスインスタンスの結果も返されます。
ローカルワークフローサーバはこのメッセージを受け取り、結果を取り込み、Remote Subprocessノードを完了して、プロセスインスタンスが次のノードに進めるようにします。
このやり取りを正常に行うためには、親プロセス定義に以下を設定する必要があります。
リモートプロセス定義のURI
やり取りされるUDAの名前
サブプロセス定義の戻り値
以下の説明では、連結するプロセス定義がInterstage BPMサーバ上で実行されることを前提としています。
リモートサブプロセスをモデル化する方法について説明します。
親プロセス定義を作成し、プロセスフローをモデル化します。
サブプロセス定義を作成し、プロセスフローをモデル化します。
Remote Subprocessノードを親プロセス定義に追加します。
サブプロセスで返される可能性のあるすべての結果について、Remote Subprocessノードに外向き矢印を追加します。
Remote Subprocessノードは、1つまたは複数の外向き矢印を持ちます。親プロセスが再開するときには、1つの矢印だけが選択されます。選択される矢印は、リモートサブプロセスの結果と一致する矢印です。
外向き矢印の名前が、リモートプロセスから返される戻り値と正確に一致するようにします。
戻り値は、リモートサブプロセス定義のExitノードの名前に対応します。
注意
サブプロセス定義のExitノードの名前と外向き矢印の名前が、大文字小文字の違いも含めて同一であることが必要です。
親プロセス定義とリモートサブプロセス定義を連結します。
その手順については、「10.2.1 親プロセス定義とリモートサブプロセス定義の連結」を参照してください。
親プロセス定義とサブプロセス定義の両方で、やり取りするUDAを指定します。
注意
各プロセス定義で、同じ情報を扱うUDAに別の名前を付けることができます。ただし、同じデータ型である必要があります。異なるデータ型の場合、UDAをマッピングできません。
やり取りする必要があるUDAのデータマッピングを定義します。
その手順については、「10.2.2 リモートサブプロセスのデータマッピングの定義」を参照してください。