0

1. イベントをインターセプトし、2. BPEL ランタイム エンジンのイベントを介して動作を制御したいと考えています。これをサポートしている BPEL ランタイム エンジンを教えてください。

1.例えばサービス名「hello」の呼び出し時に、サーバーからイベント「invoke_hello」を受け取りたい。

2. たとえば、サーバーが「invoke_hello1」、「invoke_hello2」、「invoke_hello3」の 3 つのサービスを並行して呼び出している場合、「invoke_hello1」のみの実行を許可すると言って動作を制御できます。

1、2、またはその両方をサポートする BPEL エンジンがあり、これについて大まかに説明しているドキュメント ページがあるかどうかに興味があります (したがって、この機能を利用できます)。

4

1 に答える 1

0

免責事項: 私はこれらのエンジンのイベンティング モジュールを個人的に使用したことがないため、それらが約束どおりに動作することを保証できません。

質問1(イベント告知)について:

Apache ODEは実行イベントをサポートしています。これらのイベントはデータベースに入り、イベントを取得する方法はいくつかあります。あなたはできる:

  1. データベースにクエリを実行してそれらを読み取ります。
  2. エンジン管理 APIを使用して、Web サービス経由でこれを行います
  3. 独自のイベント リスナーの実装をエンジンのクラスパスに追加します。

ODE のイベントは、BPEL のアクティビティのライフサイクルに関係しています。したがって、「invoke_hello」はActivityXXXODE のイベントの 1 つにマップする必要があります。

OpenESB に含まれるSun BPEL Service Engineは、警告をある程度サポートしていますが、その使用方法に関するドキュメントはそれほど詳細ではありません。どうやら、アラートレベルでアクティビティに注釈を付けることができ、アクティビティが実行されるとイベントが生成されます。

質問 2 (行動の制御) に関して:

これは難しく、エンジンが通常の実行モードでこれを本当にサポートしているかどうかはわかりません。これを実現する簡単な方法の 1 つは、エンジンをデバッグ モードで実行し、各ステップを手動で制御することです。したがって、「invoke_hello2」と「invoke_hello3」の続きをスキップして、「invoke_hello1」だけを続けることができます。

私の知る限り、ODE にはデバッガがありません。一方、Sun BPEL Service Engine には非常に優れた機能があります。これは、Netbeans の BPEL エディターに統合されています。これはビジュアル エディター (BPMN 構造を使用して BPEL アクティビティを視覚化する) であり、すべてのアクティビティから、およびすべてのアクティビティにジャンプできます。

もう 1 つのオプションは、メッセージをインターセプトし、選択に応じてこれらをエンジンに転送する独自の Web サービスを手動でコーディングすることです。ただし、あなたの質問を理解しているので、これをそのまま提供するエンジンが必要です。

どうやら Oracle BPELもイベントをサポートしており、このチュートリアルによるとデバッガーも付属していますが、私はこれまでこのエンジンを個人的に使用したことがないため、この回答には含めません。

于 2013-02-06T11:17:21.427 に答える