ImageVerifierCode 换一换
格式:DOC , 页数:9 ,大小:225.50KB ,
资源ID:3535788      下载积分:20 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-3535788.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于SOA的工作流管理系统设计.doc)为本站会员(sk****8)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

基于SOA的工作流管理系统设计.doc

1、基于 SOA 的工作流管理系统设计本文设计了基于 SOA 的工作流管理系统。首先,对 SOA 服务与工作流进行了整合,然后,设计了系统工作流引擎,通过工作流管理引擎调度 Web 服务,实现了工作流的最优化。开发的工作流管理系统应用于某电力公司设备管理系统,结果表明,该系统可以改善设备管理的内外部流程,提高了工作效率。0 引言工作流管理技术是一种正在快速发展的技术,正在被越来越多的企业所应用。企业的日常活动中,约有70%是属于流程类活动,如订单出货流程、生产流程、企业内各类申请表单、公文签审、信息传递与签收、公司各类支出与收付等。由于在 Internet 上开展电子商务的廉价与方便性,促进了企业

2、之间的交流,扩大了企业视野,在这种环境下,工作流管理系统就暴露出了很多不足之处:缺乏柔性,不能及时响应变化和相互之间缺乏互操作等,这些显然不能满足现代企业业务流程管理的要求。面向服务体系结构(Service-Oriented Architecture,SOA)的出现,为解决上述难题提供了契机。SOA 是为解决在 Internet 环境下业务集成的需要,通过连接能完成特定任务的独立功能实体实现的一种软件架构。把 SOA 加入到工作流系统中,可以很好地解决现有工作流管理系统的柔性缺乏、不能及时响应变化和相互之间互操作性差等缺点,极大地提高了工作流系统的应用范围,促进工作流管理系统的发展。因此,研究

3、并实现基于 SOA 的工作流管理系统具有重要的现实意义和广阔的应用前景。文中设计开发的工作流管理系统应用于某电力公司设备管理系统,实际应用表明,设计的工作流管理系统改善了电力公司的内外部流程,提高了工作效率,达到了预期的效果。1 基于 SOA 的工作流系统设计1.1 工作流系统结构设计设计的工作流系统结构如图1所示。点击图片查看大图图1 工作流系统结构示意图其中,流程定义存储服务负责提供保存流程定义文件的服务;流程实例存储服务保存流程实例状态数据;工作流引擎服务负责从流程定义存储服务处获得流程定义,解释后执行,并通过流程实例存储服务保存流程实例数据,通过调用其它服务完成流程活动,与其它引擎服务

4、协作可进行流程迁移或并行执行,用户则通过用户界面与工作流引擎进行交互。在基于 SOA 的工作流管理系统中,工作流的使用不再限于它的位置,任务由服务完成。只要为服务定义标准接口,它们就能被任何依据标准的应用访问到。由于一个流程不再限制于工作流引擎的位置,流程能够在任何地方设计、存储和执行。用户能够选择分布在网络环境中的任何可获得的工作流引擎服务来开始执行一个流程。在执行过程中,可以在不同引擎服务间迁移来达到负载平衡,降低不同应用和引擎服务间的通信费用,易于从错误中恢复,甚至一个流程同时在多个引擎服务上执行,以获得更高的效率。可见,基于 SOA的工作流管理系统具有分布、高效、容错、负载平衡等优点,

5、非常适应复杂信息环境的需求。1.2 系统模块及接口设计整个工作流系统由建模工具、客户端、模型分析、工作流引擎、SOA 服务管理模块组成。建模工具用来进行工作流过程建模。模型建立后使用模型分析工具对模型进行完整性、约束、时间可行等方面的检查,检查后在数据库中建立对应记录。工作流引擎将数据库中的记录实例化。客户可以使用状态查询某个实例的状态,并可以控制或修改相应的流程。客户使用浏览器作为客户端,通过工作流引擎提供的功能完成对应的功能。SOA 服务管理可细分为 Web 服务管理和 Web 服务注册。Web 服务管理主要是将已有的 Web 服务组合,形成从工作流活动到 Web 服务的对应关系,供客户使

6、用。Web 服务注册主要是对 Web 服务进行注册,并由 Web 服务管理模块进行管理。工作流联盟(Workflow Management Coalition,WFMC)给出了5类接口,结合本系统的需要,将其5类接口细化为6类接口,如图2所示。点击图片查看大图图2 接口示意图(1)接口1:工作流服务和工作流建模工具。(2)接口2:工作流服务和客户应用之间的接口,客户端使用浏览器,而客户应用使用Web 服务技术,所以,可以使用 Java 提供的标准接口。(3)接口3:工作流引擎和直接调用的应用程序之间的接口,即 Web 服务与工作流引擎之间的接口。(4)接口4:工作流管理系统之间的互操作接口,细

7、化为对数据库操作的事务。各模块并不直接调用,使用对数据库的事务技术来进行互操作。(5)接口5:工作流服务和工作流管理工具之间的接口,细化为状态查询与数据库的实时读操作。(6)接口6:单个 Web 服务与 Web 服务管理系统之间的接口。其中,接口1为在不同物理或电子介质之间传递过程定义的信息提供了交互的形式和API 调用;接口2定义了通信建立、工作流定义操作等功能;接口3激活应用程序的 API 函数应覆盖的 http:/ API 来实现工作流引擎互操作,例如,2个工作流执行服务之间的直接调用或者通过网关函数;接口5主要实现对工作流的管理和监视;接口6实现工作流活动自身的管理,实现业务重组之类的

8、功能。2 SOA 服务与工作流的整合企业内部所有应用功能都是以 Web 服务的方式提供的,方便用户需求改变时的业务重组。同时,工作流引擎在进行调度的时候,采用(Simple Object Access Protocol,SOAP)协议来实现工作流引擎和 Web 服务之间的交互。在 Web 服务与工作流之间交互时通过 Web服务管理器,做到逻辑上的独立性。为此,发布 Web 服务时使用标准的 Web 服务描述语言(WSDL),同时,采用 SOAP 代理来实现 SOAP 消息的生成和传送。整合的整个系统架构如图3所示。点击图片查看大图图3 SOA 与工作流整合系统架构示意图系统的工作原理及流程可以

9、从3个方面来描述:首先是服务定义阶段,在该阶段,根据功能需求分析对应 Web 服务,使用 WSDL 来定义。WSDL 和 SOAP 一起构成了 Web 服务的核心结构单元。WSDL 基于 XML 格式,用来描述 Web 服务。它描述了 Web 服务可以执行的操作以及 Web 服务可以发送或接收的消息格式。WSDL 文档可以看成是客户端和服务器之间的一个协约。使用 WSDL 工具可以自动处理这个过程,几乎不用手工编写代码就能够让应用程序整合新的服务。因此,WSDL 是 Web 服务体系结构的基础,因为它提供了一个通用语言,用来描述服务和整合这些服务的平台。由于 WSDL 文件能够导入其它的 WS

10、DL 文件,因此,总有可能发生名字冲突的时候。所以,最后注册的WSDL 文件需要在它们的部分里面定义 targetNamespace 和 xml:tns 的属性,在那里targetNamespace 被设成对应于特定的 WSDL(通常是原始的 WSDL 文件的名称)的一个唯一URL。完成此功能的 WSDL 生成器利用 TNS 对不同模块之间的引用做范围界定,防止相同名字冲突。使用标准 WSDL 工具可以指定发布的 Web 服务名、该服务提供的操作名等 Web 服务的属性,工具根据这些设置,自动生成 WSDL 文档。将这些生成的 WSDL 文档放在 WSDL 数据库中,数据库可以使用新型的 XM

11、L 数据库,也可以使用传统的关系数据库。此外,将所有的功能模块放入 SOAP 服务器(具有 SOAP 通信功能的 Web Services 器,如 Apache SOAP 2.0)中,供工作流引擎在执行过程中调用。其次是流程定制阶段,在工作流定制的过程中可使用流程定制工具,它提供了友好、简单的图形化界面,以支持拖放的方式实现工作流定制。一个流程是由许多的活动组成,每个活动表示一个要执行的功能,该功能的执行者就叫做参与者。一个参与者有2个可能的选项:Web 服务和角色。如果是 Web 服务,用户选择企业 WSDL 数据库中的某一 Web 服务;如果是角色,仅仅需要指定角色的名字。或者同时指定服务

12、与角色。一个典型的Participant 元素的定义如下:点击图片查看大图最后是流程执行阶段,当执行到某个活动需要请求 Web 服务时,工作流引擎发送服务请求信息,如 Web 服务的名字,给 Web 服务管理器,管理器通过读取并解析在流程数据库中存储的工作流描述文档(WSDL),可以得到包括 Web 服务名称、操作名称、操作所需的入口参数等信息。将这些信息传给 SOAP 代理,由 SOAP 代理执行 SOAP 调用。3 基于 SOA 的工作流管理系统 EleFlow 的实现3.1 工作流引擎设计工作流引擎作为工作流管理系统的核心部分,提供对系统有决定作用的根据角色、分工和条件的不同决定信息传递

13、路由、内容等级等核心解决方案。如果一个工作流系统缺乏功能强大的引擎,势必变得容易出错。在前面设计的基础上,对系统工作流引擎与系统的具体实现进行了设计。该引擎可以划分为几个模块,这些模块涵盖了引擎的使用、配置、流程定义、查询和运行时等方面内容,通过这些模块可以对整个系统进行调度和资源协调。其中,包括对工作流引擎核心模块、工作流引擎配置模块、工作流引擎定义模块、工作流引擎异常处理模块、工作流引擎的数据库结构进行了设计。WorkflowModule 模块是引擎的核心,用户与工作流系统的大部分交互内容都在这部分模块内实现,它定义了最常用的接口、类和异常。Workflow 接口是一个最基本的接口,通过与

14、它交互,用户几乎可以完全使用 EleFlow 的功能,包括工作流调度和查询、工作流定义管理和设置工作流配置信息等。ConfigModule 模块是工作流引擎配置模块,与 EleFlow的配置相关,定义了一个类 DefaultConfiguration,这个类实现了 Configuration 接口。LoaderModule 模块是工作流引擎定义模块,与工作流定义密切相关,包含了与工作流定义中对应元素的实现类,如果在工作流引擎运行时需要了解指定的动作、步骤的状态、名字等信息时,这些元素的描述会起到很大作用。ExceptionModule 模块负责处理工作流引擎的异常。工作流的错误包含两种错误:一

15、是流程错误,如活动的执行者不存在,活动的应用程序定义错误等;二是系统的错误,如网络不通,数据库系统异常。对于工作流引擎控制器来说,前类异常属于无法处理的错误,只能通知错误的存在;后者是工作流引擎控制器可以处理的错误,工作流引擎控制器可以进行容错处理,例如:在数据库恢复后自动重新建立连接。执行机对可能出现的错误进行编码,并附有对应的描述信息。工作流引擎所使用的数据表主要是用来存储引擎调用时所需的数据,包括当前步骤数据和历史步骤数据。3.2 系统与外部应用交互的实现在 EleFlow 中,函数 function 是用来定义(引用)并执行外部的商业逻辑和服务,实现 EleFlow 与外部具体的应用之

16、间交互。当系统有额外的需求和功能,例如处理“角色” 、“任务分配” 、 “提交任务”等诸如此类的操作,就扩展 function 接口。点击图片查看大图所有的 function 实现类都必须实现这个 FunctionProvider 接口中 execute 方法,而且能够处理的信息也全部来自这个方法中的3个参数:(1)transientVars:最为核心的参数,记录非常重要的一些对象,比如WorkflowContext,WorkflowEntry,输入参数等。(2)args:存储了流程定义里的参数,如00l。(3)ps:PropertySet 对象,记录了流程实例所需要保存的数据,可以理解成 E

17、leFlow所描述的流程相关数据。3.3 系统的访问控制实现工作流管理系统对安全性要求较高,为了达到要求,必须做到充分的安全控制。访问控制的目的是保护信息资源不被未授权用户浏览或修改,从而实现数据的保密性和完整性。因此,访问控制技术对解决工作流系统安全问题起着非常重要的作用。为了实现这一目标,工作流 系统访问控制机制应当能够满足两方面的需求:一是用户选择,即能够在一个活动实例被激活后选择合适的用户来完成;二是实现活动实例与用户权限的同步,当一个用户试图完成工作列表中的某项工作时,能够判断该用户是否为合法用户,为合法用户分配必要的权限,并在工作完成后收回分配的权限。3.4 实际应用下面是基于以

18、上方法设计的某电力公司设备管理系统,具体设计与实现如下。3.4.1 任务数据录入数据录入界面如图4所示。点击图片查看大图图4 设备申请录入界面该页面主要录入设备申请的相关信息,后台程序操作如下:(1)创建一个 Workflow 对象。BasicWorkflow workflow=new BasicWorkflow(caller);(2)准备工作流相关参数。Map args=new HashMap();args.put(owner,caller);(3)实例化一个工作流。long id=workflow.initialize(applyequipment,0,args);(4)处理业务数据(sp

19、ring 实现) 。点击图片查看大图点击图片查看大图(5)工作流状态改变。workflow.doAction(id,001,args);3.4.2 获取工作流列表设备审批过程应根据登录用户的角色不同而显示不同的数据,如图5所示。点击图片查看大图图5 流程审批界面当部门管理用产登录的时候无法看到设备管理用户的数据。在后台程序中,通过 WorkflowExpressionQuery 进行符合条件的查询,代码如下(片段):(1)符合当前条件的步骤。点击图片查看大图(2)属于哪个工作流流程(本系统有两处用到工作流,还有设备报修流程,所以有两个流程配置文件,需要区分当前工作流实例属于哪个流程) 。点击图片查看大图(3)实例是否存在。点击图片查看大图(4)进行复合查询,上述条件为 and 关系。点击图片查看大图4 结语设计实现了基于 SOA 的工作流管理系统,并在长春某电力公司设备管理中得到了成功应用。结果表明,该系统的应用基本消除了企业的“信息孤岛” ,提高了工作效率,为企业全面信息化打下良好的技术基础。

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。