質問
jBPMについて質問があります。私たちのプロジェクトの 1 つで、他のシステム (jBPM、Delphi など) がデータを受信するエンタープライズ サービス (.Net) を開発しました。このために、SOAP インターフェイスを提供しています。
jBPM システムがサービスに接続するときに、システムが必要とするデータを返す前に、いくつかの手動作業を実行する必要がある場合があります。この場合、SOAP サービスは「ManualWorkTicketId」を返します。この ID は、たとえば 1 分間隔で SOAP インターフェイスをポーリングするために使用できます。手動作業が完了すると、SOAP サービスは必要なデータを jBPM システムに返すことができます。エンタープライズ サービスはシステムについて何も認識せず、通信用の SOAP インターフェイスを提供するだけであるため、これは非同期部分を処理するための優れたソリューションであると考えられます。
しかし、jBPM 開発者は、これは良いアプローチではないと言いました。代わりに、ActiveMQ キューに情報を書き込むことを提案し、それを私が聞く必要があります。手動作業が完了したら、jBPM システムが提供した別のキューに書き戻す必要があり、そこでメッセージが jBPM プロセスによって消費されます。
- 質問:私は jbpm 開発者ではないので、jBPM 内で Web サービスのポーリング部分を処理する標準パターンがないのではないかと疑問に思っていました。
- 質問:このような場合、エンタープライズ サービスは疎結合である必要があることを念頭に置いて、どのアプローチを提案しますか?
解決
、その後、私はDelphiの開発者が文句を言うだろうと仮定します。 SOAPは、良い解決策です。
こののを見て、そしてそれを与えますjBPMの開発者。 (ところで、あなたはjBPMの3または4を使用していますか?)
完璧なタイミングが重要でない場合は、、彼はX分ごとにSOAPサービスをポーリングし、その結果を見ることができます。