基于BPEL描述的移动工作流协同与实现(一)

日期: 2012-05-17 来源:TechTarget中国 英文

  工作流技术是计算机支持的协同工作(CSCW)研究领域内的重要方向之一,是实现业务过程建模、管理与集成,最终实现业务过程自动化的关键技术,在实际中得到了广泛的应用。近些年来,随着移动计算和无线网络技术的发展,移动工作流是在传统工作流的基础上发展而来的一种新型应用模式。通过智能移动设备与无线网络,移动工作流将信息处理同无线移动通信技术相结合,延伸了服务应用环境,突破了时间和地域的双重限制。然而,无线网络环境具有带宽多样性、连接弱可靠性、可伸缩性等特点。为此,基于面向服务架构(service oriented architecture,SOA)技术的不断成熟,成为移动工作流保证流程有序协调运转的关键。本文在SOA框架内研究移动工作流的协同机制,结合开发实验申请应用实例,给出了基于业务流程执行语言(business process execution language,BPEL)的协同描述,并进行了设计实现,取得了良好的应用效果。

  1、移动工作流的结构模型

  工作流对业务处理过程中的常规活动建模,将各种活动分解为任务、角色、规则和过程等基本元素,构成具体的业务流程。为了同传统的信息平台相融合,移动工作流的模型结构往往采用面向服务(SOA)的体系结构,每个应用及其功能以服务的形式来构建和发布,向外部提供标准的调用接口。

  1.1 结构模型

  在传统的工作流的基础上,经过对接入方法服务接口的扩展定义,形成了如图1所示的移动工作流平台的结构模型。其中,工作流引擎是移动工作流信息平台的核心,负责对所定义流程的解析和实例化,完成流程实例的控制,提供工作流实例的运行环境。在工作流引擎的驱动下,服务之间的交互是通过各种移动通信协议交换消息,调用相应的公共接口来执行相应的业务逻辑。流程库保存了各个实例化的流程及其数据,提供了流程的运行环境。从而,该结构模型能够适合于移动应用环境,有利于简化移动信息平台的操作和扩展。

移动工作流信息平台的模型结构.

图1 移动工作流信息平台的模型结构

  1.2 服务接口实现

  在SOA框架内,移动工作流是以Web服务的形式提供业务流程处理(例如日程安排、通知发布、事项审批等),这涉及到通信协议、服务描述和服务发布等方面。采用上述的基于SOA的服务支持优势在于:①有利于适应无线网络接入特性;②有利于移动信息平台与其他信息系统的集成。首先,这需要通过Web服务描述语言(WSDL)定义服务的操作及相关参数等;然后,通过Web服务的业务流程执行语言(BPEL)描述服务合成,即服务之间发生的顺序及其数据流,得到Web服务组合的定义-使用链;进而,采用SOAP(simple object access protocol)及其相关协议完成服务调用。服务之间传递的消息含有XML格式的数据项,通过XPath的相关函数对各个元素和属性进行遍历,有助于提高数据的查询效率。
在系统实现上,应用所需的各种服务的合成构成了移动工作流的服务器的核心功能。该服务器通过工作流引擎完成服务之间的调用,按照通信协议完成用户之间的信息交换。从而,在移动信息平台应用中,工作流服务器集成了应用所需的各种服务的集成。

  1.3 流程驱动机制

  在移动工作流信息平台中,可将每个用户看作是一个独立的移动对象,移动对象和外部对象之间的通信机制是必不可少的。在移动工作的模型结构中,除了支持传统的HTTP和SMTP通信协议外,更多地需要依赖SMS和MMS协议,发起同外部进行通信和服务调用。当用户发起某一事项的流程申请时,工作流引擎按照定义数据,实例化该流程,并通过每一个活动中协同规则调用服务来完成该活动的任务。

  1)当一个活动完成后,将完成信息返回到引擎中,工作流引擎将根据转发规则将任务流转到下一个活动中。如果这个活动需要用户参与活动,那么工作流引擎挂起等待,并将活动中下一个角色需要完成的任务附加到任务列表中,并以SMS/MMS消息SOAP封装形式的数据发送到该角色所对应的用户的移动终端上。

  2)当移动终端接收到SMS/MMS消息时,消息托管服务经过对接收到的短信息进行解析,而后主动地激活所请求的服务。从而利用移动消息通知机制可以有效地实现工作流的自动流转。当工作流引擎接受到消息后,激活相应的流程活动,这样反复处理直到完成该实例流程。在实现上,SMS/MMS消息服务器作为Web服务的客户端,调用相应的服务接口。这里不对消息托管服务展开讨论,本文侧重于分析移动工作流的协同机制。

  2、协同规则及其BPEL描述

  工作流引擎在处理流程时,按照定义的协同规则,通过消息服务器产生相应的消息并且发送到移动对象上,以主动的方式激活相应的应用,通知用户处理相应的活动。这意味着,在移动工作流系统中,规则是流程定义的基本构成元素,按照消息传递的方式实现协同规则。下面对流程节点之间的协同规则进行分析,同时结合BPEL给出描述方法。

  2.1 协同规则

  通常情况下,在流程节点中包含大量的业务逻辑,比如:流程节点的执行者是谁?在执行者启动流程节点任务之前哪些前提条件必须要满足?这些业务逻辑的协同规则,决定了流程节点之间的流转关系。除此以外,在移动工作流中流程节点之间的流转关系更多地体现在逻辑规则与时间规则。

  逻辑规则表示为一种逻辑表达式,可利用与(AND)、或(OR)以及异或(XOR)等逻辑关系进行组合。当满足一定的逻辑条件时,一个流程节点才能开始或者结束,这分别称为前置规则或者后置规则。同时,在移动工作流中,由于所有的操作是在移动环境中,逻辑规则包含了指定执行人规则,即流程节点由相应的角色或者特定人员来执行。例如,对于一个审批任务,需要同时发给5个部门经理作审批(即会签),至少有3个部门经理同意,流程才能流转到下一步操作(即同意后的操作),否则,流程就执行下一步操作(即否决后的操作)。

  时间规则表示为一个流程节点什么时候开始或者在一定期限内完成。移动环境中,流程节点的时间控制的需求更加突出。例如,在流程发起后等待1h开始执行流程;如果超过8h任务依然没有被执行,则执行一定的操作(如强制任务过期),并且将流程流转到某一个流程节点。

  2.2 BPEL描述

  Web服务业务流程执行语言(WS-BPEL)是诸多、Web服务标准中的一项事实标准,作为Web服务的一种设计规约语言,侧重于描述Web服务的行为和组合。下面结合BPEL的活动来描述移动工作流中业务流程之间的协作行为。

  在流程执行过程中,流向的确定是按照协同规则的定义完成的。BPEL中的基本元素用来定义一组顺序的活动序列,指明一组并行执行的活动序列。在逻辑规则上,BPEL提供了在、以及等元素定义流程执行活动的判定。在时间规则上,通过用来暂停流程的执行,结合或者表示等待一段给定的时间或者等到某一时刻流程继续运行。
在顺序和并发流程控制元素的基础上,将这些协同规则同结构化活动元素相结合,可灵活地控制流程模式。结构化元素结合逻辑规则来定义流程的分支和聚合;结合时间规则来定义流程的限时操作。

  流程节点之间的消息驱动着流程的流转,即执行活动状态转移以及调用web服务。在移动工作流的流程中,伙伴服务(Panner)之间通过主动消息实现数据的传递。在或者中,利用完成逻辑规则的检查,进而完成服务调用;利用触发响应的被动消息,执行时间规则,相应的操作根据设定的时钟完成响应的操作。下一节将分析基于BPEL描述流程设计的应用设计。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐

  • 事件驱动框架和SOA在空军的应用

    空军正在利用SOA来改善数据共享,并实时跟踪战机,美国空军机动司令部的Michael Marek解释了企业可从中学习的经验。

  • 揭秘New Relic APM技术细节

    New Relic应性能管理(APM)套件主要用于Web软件开发。它允许用户在面向服务的架构(SOA)上跟踪关键事务性能,并且支持代码级别的可见性来评估特定代码段和SQL语句对性能的影响

  • 仅凭SOA和云无法解决业务数据管理风险问题

    SOA和云可以是某些恼人问题高效的解决方案;这一点我们已经知道了。但是也要记住它们并不是所有事情的直接答案,特别是当你的问题是业务数据管理风险,而不是技术问题时。

  • 购买应用集成工具可以采取平衡做法

    购买应用程序集成工具需要好好看看你的公司需求,知道从供应商里面要寻找哪些关键功能。