论文部分内容阅读
工作流引擎是企业用于将其分散的应用连接并整合成一个完整流程应用的调度工具。随着云技术的快速发展,越来越多的企业倾向于发布和使用部署在云端的WebService应用,而用于调度此类应用的工作流引擎也从传统的,单核心的,本地化的工作流引擎向着便于集成远端应用的,服务化的工作流引擎转变。ROA(Resource-Oriented Architecture)(简称面向资源的架构)为云端的工作流引擎提供了新的思路。REST(Representational State Transfer)(简称表述性状态转移)服务框架采用通用的HTTP访问协议,无需在协议之上附加其他结构,能够很好简化工作流引擎的访问;REST服务采用资源化的结构和URI的定位方式,使得工作流引擎中的要素能够灵活的创建和使用;资源状态转移的机制可以让引擎中的资源具有更好的操作性。本文利用面向资源的框架以及RESTful风格框架,设计了基于REST的资源化工作流引擎。通过将引擎REST服务化,能够以通用的标准接口在远端发布服务,并为客户提供调用方式;通过将工作流要素资源化,使得封装为资源的每一个流程要素都能够独立的进行发布、创建、修改、复用等操作,客户可以灵活的操作和管理每个流程要素,且不用担心流程细节不能复用。本文的主要研究工作有以下几点:(1)设计了基于REST风格的工作流引擎框架。搭建REST风格的工作流引擎,使得引擎本身也作为服务提供给用户远程访问。框架分为三个层次,资源模型层是资源化工作流引擎的基础,对工作流要素进行建模并抽象为资源,建立了一套资源元模型体系架构;REST引擎调度层设计了具有面向资源框架特点的流程管理器、任务执行器等工作流引擎中间件;外界服务交互层设计了一套异构信息转换工具,解决了工作流引擎与不同结构Web服务的交互问题。(2)设计了用于描述工作流要素的资源体系。搭建了一套以继承形式构建的资源元模型体系架构,首先构建一个父结点元模型,然后根据资源的不同特点将不同工作流要素搭建为资源元模型,这些元模型继承于父结点,使得工作流中的资源具有统一的架构便于进行匹配和管理,同时能够拥有各自的特性。设计了实体资源和数据资源,通过两者之间的关系可以计算出从资源库中选出的任意两个活动结点是否能够相连,这是工作流要素复用的基础。(3)设计了用于调度资源的中间件。资源调度中间件分为三个层次,首先是资源元模型解析器,负责解析资源元模型,同时将对于资源的访问解析成具体的操作命令;其次是流程管理器,负责根据具体的命令进行流程资源的调度和管理;最后是资源执行器,负责分派工作任务,同时链接SAAS应用开发商提供的Web服务。最后,根据本文所提方法,设计并实现了一个基于REST的资源化工作流引擎,并使用引擎将不同平台的Web服务集成为一个订单派送流程。初步结果证明,系统可以有效地集成不同平台的Web服务,能够很好的复用存放在资源库中的工作流要素,能够有效控制资源化流程的运行。本文设计的基于REST的资源化工作流引擎,为工作流引擎提供了一种新的架构,为工作流提供了一种新的复用方式,具有一定的理论参考价值和应用前景。