-
2工作流引擎
本文所讲的工作流引擎是工作流管理系统的一个组成部分,它一般定义为:为工作流实例提供运行时期的执行环境的软件服务器或引擎。工作流管理系统是定义、建、行工作流的系创执统,它是一个复杂的整体,包括许多部分。其中,工作流引擎是工作流管理系统的核心软件组元。它的功能
《现场总线技术应用200例》
28-360元/年邮局订阅号:82-946
您的论文得到两院院士关注
嵌入式系统应用
工作现在必须在二次开发时做了。同时,业务应用逻辑分散在多个应用(用户的应用和工作流引擎)中并且某些业务应用逻辑(上传到引擎的
Java类)反过来要依赖厂家的接口,这些都是良好的架构
设计要避免的情况。一旦系统后期要做一些变动就会带来很大麻烦。
包括:解释过程定义;创建过程实例并控制其执行;调度各项活动;为用户工作表添加工作项;通过应用
程序接口(API)调用应用程序;提供监督和管理功能等。也就是说工作流引擎是整个系统的核心,负责驱动整个工作流管理系统的运转。
3嵌入式工作流引擎
按照工作流引擎的运行形态,可以将工作流引擎分成独立运行工作流引擎和嵌入式工作流引擎两大类。在介绍嵌入式工作流引擎之前,先来看一下独立运行工作流引擎的运行原理。独立运行工作流引擎本身就是一个单独的应用,作为服务应用如果又没有基于某个中间件技术的话,独立运行工作流引擎必须自己实现多线程同步、网路通讯处理、资源池等服务端技术,因此实现的成本高、技术复杂。
图2没提供远程回调接口的独立运行的工作流引擎
相对于独立运行工作流引擎,嵌入式工作流引擎是以一个软件组件(或者说构件)的形式运行在使用它的业务应用中,它不能独立运行,但是业务应用又依赖于工作流引擎,它们是一个有机的整体,互不可分。图3是工作流引擎与业务应用的关系模型。
图1独立运行的工作流引擎与业务应用的关系
技术创新
如图1所示,在与业务应用的交互方式上,独立运行工作流引擎会以远过程调用的方式提供WAPI(WorkflowAPI)。对于使用Java技术的独立运行工作流引擎,远过程调用方式可以是RMI、,或者能够JMS跨越异构系统的WebService。另外,独立运行工作流引擎也必须为反过来如何调用业务应用提供解决办法。一般情况下,独立运行工作流引擎应该能够直接调用外部业务应用提供的远程接口(如基于RMI、JMS或者WebService的业务接口),另一方面,业务应用也必须为独立运行工作流引擎提供远过程调用业务方法。当然也有省事而走捷径的方法,比如国内市场占有率比较高的一款Java独立运行工作流产品,虽然提供了基于RMI/JMS的WAPI,却没有提供工作流引擎直接调用外部业务远程接口的方法。如果要让工作流引擎调用外部业务逻辑,用户必须编写一个实现厂商特有接口的Java类,然后将它上传并
注册到工作流引擎中。图2这种方式是可以解决实际业务
问题(用户自己编写的java类可以做任何事情,比如远程调用或者访问数据库)。但很明显,本来很多不该二次开发做的
图3嵌入式工作流引擎工作模型
按照一般分层法,业务应用均可以分为三层模业务层和数据访问层。展现层负责对业型,即展现层、务应用的前端展现,也就是业务应用与用户交互的部分。业务层处理各种复杂的业务逻辑,它可以非常复杂,是整个业务应用的核心部分。而数据访问层提供了对整个业务应用的底层数据支持,它是业务应用的一个基石。工作流技术主要是解决复杂业务流程灵活定制和方便更改的问题,因此它属于应用逻辑层次,在上图中我们把嵌入式工作流引擎看作是业务逻辑层的一部分。在与业务应用的交互方式上,嵌入式工作流引擎通过提供WAPI(WorkflowAPI)为展现层或业务逻辑层的其他部分提供服务(如启动指定工作流程、询查工作任务、设置流程运行业务数据等)。另一方面,工作流引擎经常需要业务相关的数据或逻辑来决定流程流转,或者需要在不同任务之间传递业务数据,这
邮局订阅号:82-946360元/年-
《PLC技术应用200例》
29-
嵌入式系统应用
中文核心期刊《微计算机信息》(嵌入式与SOC)2006年第22卷第7-2期
时候,流程引擎会调用业务应用中业务逻辑或数据访问模块提供的API接口来完成相应操作。下面我们就部署、二次开发的难易程度、性能、是否支持分布或EAI(企业应用集成),对这两类工作流引擎做一个简单对比。
4下一代嵌入式工作流引擎发展方向