0

それが正しいかどうか知りたいです。

パターン receive - reply は、同期 Web サービスに使用されます。この場合、wsdl ファイルで単一のポートを定義することができます。

実際、invoke パターンは、非同期 Web サービスを作成するためにも使用されます。この場合、wsdl には 2 つのポートが定義されています。

だから、私の質問は:応答アクティビティのみを使用して非同期呼び出しを作成することは可能ですか?

前もって感謝します。

4

1 に答える 1

2

私はあなたの質問をよく理解していませんが、BPEL の同期と非同期の関係を説明しようとしています。それがあなたの質問にも答えてくれることを願っています。

a) 双方向の要求応答操作 (同期操作のように見える) でさえ、非同期転送プロトコル (SMTP、JMS、XMPP、AMQP など) にバインドできます。

b) 説明しているパターンは、受信サービス呼び出し、つまりクライアントが BPEL プロセス インスタンスを呼び出す場合に適しています。BPEL プロセスの WSDL で操作が要求と応答として定義されている場合、これを BPEL で受信と応答のペアとしてモデル化する必要があります。これは同期呼び出しと見なすことができます (ただし、a) を参照)。何らかの理由でこの操作を非同期トランスポート プロトコルにバインドできず、何らかの理由 (その間の長時間実行処理など) で呼び出しを非同期にする必要がある場合は、操作を 2 つの一方向操作に分割する必要があります。これは、プロセスが元の要求に対して 1 つの操作を提供するようになり、呼び出し元が元の応答に対して 1 つの一方向の操作を提供する必要があることを意味します。これは、BPEL の receive-invoke ペアとしてモデル化されています。どちらもパートナー リンクを介して相互接続されています。

返信アクティビティは常に受信アクティビティに接続されているため、単一の返信では意味がありません。つまり、操作の応答部分のみを担当し、一方向の操作には使用できません。外部サービスを呼び出したい場合は、invoke を使用します。リクエスト/レスポンス操作では、invoke は結果を直接返します。呼び出しを非同期にする必要がある場合は、invoke-receive ペアを使用して、それぞれが一方向の操作を提供/呼び出します。

HTH、タモ

于 2011-04-06T17:13:46.777 に答える