ローカル ディレクトリでファイルの到着を監視し、そのファイルで特定のことを行う BPEL プロセスを作成しようとしています。Jboss EAP 6.4 をサーバーとして、Switchyard を BPEL ランタイムとして、Jboss Developer Studio を IDE として使用しています。私は、BPEL および Web サービス全般について非常に初心者です。ここ数週間、自分が何をする必要があるかを理解しようとしましたが、役に立ちませんでした。私が最初に考えたのは、Java Web サービスを作成してディレクトリを監視し、BPEL プロセスを呼び出してファイルに対して特定の処理を実行することでした。それを行うためのサービスが必要なのか、それとも BPEL 内でそれを行うことができるのか疑問に思っています。BPEL を使用して、ファイルを利用するサービスを呼び出します。どんな助けでも大歓迎です。
1 に答える
BPEL には、特定の処理をトリガーするイベントの概念があります。タイマー、アラーム、着信メッセージがあります。着信メッセージは、通常のプログラミング言語の switch ステートメントのように機能します。
そのため、BPEL プロセスでファイル システムを直接リッスンすることはできません。あなたがしなければならないことは、(任意の言語で) リスナーを作成し、新しいファイルが表示されたときに BPEL プロセスを呼び出すことです。BPEL は、呼び出しを Web サービスにチェーンすることのみを目的としています。または、必要に応じて、BPEL は、他の Web サービス間の接着剤を作成する Web サービスを実装する方法にすぎません。BPEL プロセスの背後にあるロジックは、メッセージを作成、変換、および適切な「受信者」にルーティングすることだけです。ファイル (名前、参照、コンテンツなど) を他の Web サービスに渡すことを除けば、BPEL プロセスはそれ以上のことはできません。ファイルの内容が XML の場合、その内容に対して何らかの操作を実行できます (XPath のおかげです) が、それがあなたのユースケースであるかどうかはわかりません。
Switchyard を見ると、Apache Camel を使用していることがわかります。だから、あなたが望むものを達成するために Camel コンポーネントを設定できなければならないと思います。彼らが提供するエディターは、Eclipse.org の SCA エディターのように見えます。この解決策はわかりませんが、このエディターでコンポーネントを作成し、「ファイル」バインディングを使用して参照 (呼び出しエントリポイント) を取得し、この呼び出しで何ができるかを確認します。Switchyard は、新しいファイルが表示されたときに呼び出されるリスナーとプロセスの両方を「生成」できると思われます。しかし、この場合、実際にはもう BPEL を行っていません。それは超えています。