- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
开源工作流管理系统jpbm的应用研究
开源工作流管理系统jpbm的应用研究
(北京理工大学 计算机学院 )
摘 要:工作流管理系统是支持企业经营过程高效执行并监控其执行过程的计算机软件系统。结合工作流和软件项目开发经验介绍了工作流及其相关概念、jbpm基本知识和运作原理,使读者对jbpm有一个清楚的了解。
关键字:工作流;jbpm;工作流管理系统;工作流引擎
1简 介
工作流概念起源于生产组织和办公自动化领域。针对日常工作中具有固定程序的活动提出的一个概念。其目的是通过将工作分解成定义良好的任务、角色,按照一定的规则和过程来执行这些任务并对它们进行监控,达到提高办事效率、降低生产成本、提高企业生产经营管理水平和企业竞争力的目标[1]。
工作流技术是在上世纪九十年代发展起来的一个新兴研究方向,是近年来计算机应用技术与信息技术领域最具发展潜力的方向之一。工作流管理联盟(WfMC)给出的工作流定义是:工作流是一类能够完全或者部分自动执行的经营过程,它根据一系列过程规则、文档、信息或任务能够在不同的执行者之间进行传递与执行。WfMC还给出了工作流管理系统的定义:工作流管理系统是一个软件系统,它完成工作流的定义和管理,并按照在计算机中预先
定义好的工作流逻辑推进工作流实例的执行[5]。
JBPM,全称是Java Business Process Management(业务流程管理),它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。JBPM商务逻辑采用了它自己定义的JBoss jBPM Process definition language (jPdl)。jPdl认为一个商务流程可以被看作是一个UML状态图。jPdl就是详细定义了这个状态图的每个部分,如起始、结束状态,状态之间的转换,过图型化的流程定义,直观地描述业务流程。另外它使用Hibernate来管理它的数据库。Hibernate是目前Java领域最好的一种数据存储层解决方案,只要是 Hibernate 支持的数据库, jBPM 也就支持。通过Hibernate,jBPM将数据的管理职能分离出去,自己专注于商务逻辑的处理[2]。
2 系统架构
JBPM作为java程序完全符合javaEE标准;处理流程定义和运行时的流程实例执行。可以用在任何java环境(web 应用程序,Swing应用程序,EJB等等)。采用典型的三层结构,即客户端,应用服务器和数据库。客户端使用的的web浏览器。应用服务器一般采用开源代码的JBoss,tomcat等,jBpm的持久化层用Hibernate实现,可以同任何数据库配置可以部署在任何应用服务器上,只要是Hibernate支持的数据库管理系统都可以用来访问。JBMP的整体系统结构可细分为五层,分别是浏览器层:通过友好的web接口,分级别地给用户提供不同的业务功能,并提供图形化的显示来描述整个工作流以及工作流的当前执行位置,这里按级别指的是权限级别,例如管理员,普通用户等。Web容器:对客户端的请求进行处理和响应,包括servlet或者Strutsaction的触发,jsp页面的编译等。Session Bean层:使用的是facade模式,向上以会话EJB的形式提供服务,封装了对数据库的具体操作。数据库映层:Hibernate 提供了对底层数据库的访问和操作。数据库:存储了工作流管理系统的所有相关信息,如节点,活动,事件的信息等等。各层界限清楚,分离明确,只有相邻层产生相互联系和作用[2]。系统结构图如下图 图-2
图-1
3 工作流引擎
3.1 工作流引擎运作过程
所谓工作流引擎就是工作流作为应用系统的一部分,并为之提供对各应用系统有决定作用的根据角色、分工和条件的不同决定信息传递路由、内容等级等核心解决方案。运作过程如下图 图-1所示。工作流引擎是工作流执行服务的核心,主要完成:
1、对过程定义进行解释
2、控制过程实例的创建,激活,挂起,终止等
3、控制实例跳转,包括串行、并行操作,工作流相关数据的解释
4、提供支持用户操作的接口
5、维护工作流控制数据和相关数据,在应用和用户之间传递工作流相关数据
6、提供激活外部应用程序和访问工作流相关数据的接口
7、提供控制、管理和监督工作流实例执行情况的功能
图-2
3.2 过程定义
通过运作流程可以看出,工作流的开始、停止等都受过程的控制,所以工作流过程的定义至关重要,在很大的程度上决定了工作流运转模型的解释、流程控制以及执行等。过程定义模型是用来描述工作流模型内在联系的模型。如下图所示。图-3
图-3
对于以上过程定义模型,WfMC采用了一种基于XML的规范来描述该过程的。工作流引擎所使用的过程定义语言的规范具体如下:
1.在XML中,使用workflow作为顶层元素,定
文档评论(0)