监控目录的 BPEL 流程

BPEL Process to Monitor a directory

我正在尝试编写一个 BPEL 流程来监视本地目录中是否有文件到达,并对该文件执行某些操作。我使用 Jboss EAP 6.4 作为我的服务器,Switchyard 作为我的 BPEL 运行时,Jboss Developer Studio 作为我的 IDE。总的来说,我对 BPEL 和 Web 服务非常陌生。在过去的几周里,我一直在努力了解我需要做什么,但无济于事。我最初的想法是创建一个 java Web 服务来监视目录,然后让它调用 BPEL 流程来对文件执行某些操作。我想知道我是否需要服务来完成它,或者您是否可以在 BPEL 本身中完成它。我将使用 BPEL 来调用将利用该文件的服务。任何帮助将非常感激。

BPEL 具有触发给定处理的事件概念。有计时器、警报和传入消息。传入消息就像常用编程语言中的 switch 语句。

因此,您无法在 BPEL 流程中直接侦听文件系统。您需要做的是创建一个侦听器(使用您想要的任何语言)并在出现新文件时调用您的 BPEL 流程。 BPEL 只是关于将调用链接到 Web 服务。或者,如果您愿意,BPEL 只是一种实现 Web 服务的方式,它在其他 Web 服务之间形成粘合剂。 BPEL 流程背后的逻辑只是关于创建、转换和路由消息到正确的 "recipients"。除了将文件(名称、引用、内容...)传递给其他 Web 服务之外,您的 BPEL 流程将无法执行更多操作。如果文件内容是XML,你可能会对其内容进行一些操作(感谢XPath),但我不知道这是否是你的用例。

看看 Switchyard,我看到他们使用 Apache Camel。 所以,我猜你必须能够配置 Camel 组件来实现你想要的。他们提供的编辑器看起来像 Eclipse.org 的 SCA 编辑器。我不知道这个解决方案,但我会尝试在此编辑器中创建一个组件,使用 "file" 绑定进行引用(调用 entry-point),然后看看我们可以对此调用做什么。我怀疑 Switchyard 能够 "generate" 侦听器和出现新文件时调用的进程。但在这种情况下,我们实际上不再使用 BPEL。它超越了。