您的位置:首页 > 大数据 > 人工智能

TIBCO企业应用解决方案 之EAI解决方案:Business Works + Adapters 3

2009-01-11 23:15 309 查看
自动流程的实现

上文中提到Business Works流程编排的语法类似简化版的过程式解释型计算机语言的语法,编排出的流程和程序一样都会由引擎来解释运行,和语言的区别在于其使用图形化的编排方式。Business Works的流程编排,采用XML描述。支持分支选择,循环,子流程调用等语法,语法比较简单。




以上的示例流程开始是接收JMS消息的组件。当接收成功后进入一个分支,先给在流程范围内的一个全局变量计数赋值为0,然后进入循环。在循环内部,调用一个子流程,计数加1,当计数大于5时退出循环;接收JMS消息失败后进入另一个分支,将错误信息写入文件。流程的XML 语法描述如下(删除和图形相关的语法,只保留流程逻辑的语法)。

流程整体的描述:


主流程中赋值和写文件组件的描述:









流程开始时选择分支的描述:



流程结束的两个分支的描述:





循环是个大的组件,包含内部的组件。调用子流程和赋值组件的描述:





循环整体的描述:




循环内部连接的描述:




从以上的流程语法描述可以看到, Business Works流程使用<pd:activity name="">,<pd:group name="">节点描述流程中的组件,
<pd:transition>节点描述组件之间的连接。
对应图的概念,组件即是顶点,连接即是弧。起始组件是只有出度的顶点,结束组件是只有入度的组件。

看到以上的语法描述,可以很自然地想到一种流程引擎的执行方式:根据读入的流程描述构造一个[/b]AOV(Activity on vertex network)[/b]图, [/b]这个图是有序无环图。流程由事件触发执行,从起始顶点出发,广度优先遍历整个图,每到达一个顶点就执行该顶点所对应的组件操作函数,直到结束顶点。[/b]不了解Business Works流程引擎的具体实现方式,在此不做多的描述。大家解决问题的思路大同小异,估计这类图形化流程引擎的实现都类似,可以参考一些开源的应用集成产品。

在Business Works中,流程是要被执行的任务,由引擎的工作线程来执行。每一个工作线程轮询触发事件队列,取到一个触发事件实例后,就找到对应的流程执行之。执行完毕后再轮询事件队列,等待下一个事件的到来。引擎实例的工作线程数都是可以配置的。

补充一点,图形化流程的分支是可以并发的,这一点和程序流程不同。如下:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐