程炜面向Web服务的业务流程管理系统的研究和实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程炜面向W e b服务的业务流程管理系统的研
究和实现
Standardization of sany group #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#
分类号_______ 密级_______ U D C _______
硕士学位论文
面向Web服务的业务流程管理系统
的研究和实现
学位申请人:程炜
学科专业:通信与信息系统
指导教师:杨宗凯教授
论文答辩日期 2003年5月10日学位授予日期
答辩委员会主席刘文予评阅人刘文予谭运猛
A Thesis Submitted in Partial Fulfillment of the Requirements
for the Degree of Master of Engineering
Research and Implementation of Web Service-Oriented Business
Process Management System
Candidate: Cheng Wei
Major: Communication & Information System
Supervisor : Prof. Yang Zongkai
Huanghzong University of Science & technology
May 2003
摘要
近几年,随着电子商务的深入发展,对企业信息化程度提出了更高的要求,如何利用现代网络技术来帮助企业管理各类业务流程,实现业务流程自动化已成为企业关注的热点。
所谓业务流程(Business Process,BP),是指为了在一定时期内达到特定的商业目标,而按照各种商业规则连接起来的业务功能的集合。
这些业务功能是抽象定义的:业务功能的具体实现受限于业务功能运行所需的可用资源。
业务功能的构成由商业目标决定。
业务流程中商业规则的目的是为了业务管理决策的实现。
而业务流程管理(Business Process Management,BPM)是理解、系统化、自动化以及改进公司业务运作方式的一门艺术,它可以看作是文档工作流和企业应用集成的紧密结合。
BPM的技术实现被称为业务流程管理系统(Business Process Management System,BPMS)。
BPMS能够为管理者提供定义、变更、实施业务流程的方法,并保证灵活性和一致性,从而不必考虑业务流程实现的细节问题。
本文通过对企业应用系统集成框架、企业业务流程管理及自动化方面关键技术的研究,将BPM技术与Web服务技术相结合,提出了一种面向Web服务的应用集成框架,并在此基础上提出了一套基于J2EE的BizPro业务流程管理系统的实现方案,同时详细论述了BizPro系统中的核心组件流程引擎的具体实现方法,并以论
文审批流程为例,介绍了业务流程在实际中部署实施的完整过程。
BizPro系统可以为企业提供一个面向业务流程的应用集成平台,帮助企业在多个应用系统之间实现业务流程的定制、管理、执行、监控和优化,缩短实施或变更业务流程的开发周期,并通过对应用系统的无缝集成实现业务流程处理的自动化。
关键词:业务流程管理系统 Web服务企业应用集成流程引擎业务流程建模语言简单对象访问协议可扩展标识语言
Abstract
Recently, with the rapid development of E-Business, the issues that how to help the enterprises manage their various business processes and implement the business process automation with modern network technologies have become the focus of attention.
By a business process (BP), we mean an interconnected set of business functions, constrained by various business rules in order to achieve a specific set of business goals pertaining to a specific enterprise over time. The business functions are defined abstractly: The specific implementation of a business function depends on the resources available at the time it must be executed. What constitutes a business function is determined by objectives of the enterprise. The assertion of business rules in a BP are nothing more than the implementation of business management decisions. Business Process Management (BPM) is the art of understanding, codifying, automating, and improving the way a company does business. BPM can also be seen as a marriage between document workflow and Enterprise Application Integration (EAI). The technological implementation of BPM is called a Business Process Management System (BPMS). A BPMS provides managers with the means for defining, changing, and impl ementing (via integration services) a business’s processes with agility and consistency, irrespective of the details of their implementation.
Based on the research on the EAI architecture and the key technologies for BP Management and Automation , this paper, combining
the BPM and Web Services, provide a new Web-Service-Oriented EAI architecture, and a solution for a J2EE-based BPMS, BizPro. Furthermore, it also discussed the implementation of the Process Engine, the core component in BizPro, and introduced the implementation and deployment of a BP in practice by a sample. The BPMS provide an BP-Oriented
application integration platform for enterprises and help them define,
manage, execute, monitor and improve the BP crossing various application systems. Using this BPMS, enterprises can reduce the time and cost of implementing or changing the BP, and automate the BP by the seamless integration among application systems.
Keyword:BPMS;Web Service;EAI;Process Engine;BPML;SOAP;XML
缩略语
BP - Business Process 业务流程
BPEL4WS - Business Process Execution Language for Web Services
Web服务的业务流程执行语言BPM - Business Process Management 业务流程管理BPML - Business Process Modeling Language 业务流程建模语言BPMS - Business Process Management System 业务流程管理系统CORBA - Common Object Request Broker Architecture
公共对象请求代理架构
DCOM - Distributed Component Object Model 分布式组件对象模型EAI - Enterprise Application Integration 企业应用集成EJB - Enterprise JavaBean 企业JavaBean
ERP - Enterprise Resource Planning 企业资源计划J2EE - Java 2 Platform,Enterprise Edition Java 2企业平台
JMS - Java Message Service Java消息服务
JSP - Java Server Pages Java服务器页面
MOM - Message Oriented Middleware 消息中间件
RMI - Remote Method Invocation 远程方法调用
SOAP - Simple Object Access Protocol 简单对象访问协议
UDDI - Universal Discovery, Description, Integration 服务发布与发现机制WSCI - Web Service Choreography Interface Web服务协作接口WSFL - Web Service Flow Language Web服务流程语言
WSDL - Web Service Description Language Web服务描述言语XML - eXtensible Markup Language 可扩展置标语言
XPDL - XML Process Definition Language XML流程定义语言
目录
1 绪论
)
)
)
)
2 BizPro业务流程管理系统的分析与设计)
)
)
)
)
)
3 基于J2EE的流程引擎的设计与实现
)
)
)
)
4 BizPro业务流程管理系统的应用)
)
)
)
)
5 结束语
)
)
)
)
)
)
1 绪论
企业内部流程整合和B2B电子商务是目前电子商务领域两大热点。
近年来,业务流程管理系统(Business Process Management System,BPMS),作为企业业务流程整合及B2B商务自动化处理的重要组成部分,正得到企业界越来越高的重视。
另一方面,Web服务作为一种基于Internet的面向电子商务的分布式计算体系结构,结合了面向组件方法和Web技术的优势,目前已经得到了IT领域的普遍认可和支持,并正在成为B2B(Business to Business)电子商务的重要途径。
本章从总体上介绍了BPMS的相关概念及其与Web服务技术相互融合的发展趋势,说明了本课题的背景、来源及研究意义。
1.1课题背景
本课题来源于国家十五科技攻关“电子商务与现代物流技术研究开发及示范工程”项目中的“基于行业中间件的电子商务系统集成技术研究与应用”课题。
该课题在中间件技术、三层结构技术、XML(eXtensible Markup Language)技术及相关工业标准的基础上,从电子商务系统集成框架、底层支撑服务、商务流程集成与企业间商务协同、电子商务应用平台等多个角度出发,对电子商务系统集成中涉及到的关键核心技术,进行系统深入的研究,开发一组符合我国国情、具有自主知识版权、支持主流电子商务标准、面向企业业务流程的电子商务系统集成平台,并在具有电信、流通领域特点的区域、省市推广应用,实施电子商务系统集成的示范工程。
电子商务要想健康发展,除了外部环境的诸多因素外,最关键的还是企业自身所要解决的许多问题,这些问题包括:
随着企业的发展,企业内部数据和信息不断积累,但与此同时,存储和维
护这些资源的应用系统之间却相互隔离,形成“信息孤岛”。
有许多企业的内部系统根本无法集成,即使可以集成,也往往是采取硬编
码方式,将整合的业务流程固化到集成应用系统中,因此,一个简单业务
流程的实现也可能会消耗大量的人力、物力,同时也会为系统本身带来许
多潜在的不稳定因素,这种硬编码的集成方式往往是系统刚刚部署完成,
企业的业务需求就已经发生变化。
每个应用系统的数据描述格式均不相同,很难在企业间甚至是在企业内进
行便捷的信息交换,所以如今的企业往往是依靠大量的人工操作来完成不
同应用系统间的连接与协作。
企业如果要适应如今瞬息万变的市场变化,就必须能够灵活调整自己的业
务流程和商业规则,但是在集成的系统环境中,没有强大技术支持是不可
能达到这个目标的,一个简单业务的变更,需要技术人员和商务人员一次
又一次的交流和沟通,浪费了大量的资源和宝贵的时间。
企业如今拥有庞大规模的用户群及合作伙伴,如何能够让任何人在任何时
间、任何地方使用任何设备都能够获得他满意的服务将是企业最关心的问
题。
因此电子商务系统集成方案首先要解决的是企业内应用集成的问题,只有企业内应用系统具有良好的互操作性和统一的流程管理模式,才能为企业的用户和商业伙伴提供高效的服务;但是如前所述,由于企业内各应用系统间的数据格式差别很大,所以解决应用集成首先就要解决传统数据转换的问题;其次是实现企业应用系统间的互操作,然后要解决的问题就是建立统一的流程管理模式,使业务分析人员可以直接通过设计业务流程来协调各应用系统的协作关系,从而构造出新的、完整的服务。
在此基础之上,如果企业具备向外提供服务的能力,就使企业间B2B的信息交换成为可能,那么围绕着企业如何注册、发布、检索、发现服务并成功实现企业B2B信息交换的问题,将是企业间应用集成的核心环节。
在本课题中,我们主要是针对BPMS的体系结构和其中涉及的主要技术问题进行系统深入的研究,包括基于Web服务的应用集成、业务流程建模及其实现、业务流程自动化、XML数据转换等电子商务领域的共性技术,自主开发一套面向Web服务的业务流程管理系统,为企业提供一个面向业务流程的应用集成平台,帮助企业在多个应用系统之间实现业务流程的定制、管理、执行、监控和优化,缩短实施或变更业务流程的开发周期,并通过对应用系统的无缝集成实现业务流程处理的自动化。
1.2业务流程管理系统概述
在讨论或定义什么是业务流程管理或业务流程管理系统之前,我们先来讨论一下“业务流程(Business Process,BP)”这一术语。
所谓的业务流程,是指为了在一定时期内达到特定的商业目标,而按照各种商业规则连接起来的业务功能集合[1]。
这些业务功能是抽象定义的:业务功能的具体实现受限于业务功能运行所必须的可用资源。
业务功能的构成由目标决定,其中的任何操作、活动、任务都是为实现目标而设。
而设置商业规则的目的是为了业务管理决策的实现。
在业务流程中,商业规则或者表现为限制,或者表现为条件分支,或者表现为实施并行、串行等流程中的节点。
这些商业规则对于某一企业来说是独特的,而且在某一确定的时间点上也是如此。
因此,正如行业观察家所定义的那样,业务流程的管理是理解、系统化、自动化,以及改进公司业务运作方式的一门艺术[2, 3]。
业务流程管理可以被看作是文档工作流和企业应用集成的紧密结合。
传统的工作流应用是以人为导向,即每个人都得面对他或她必须完成、批准或执行的电子文档。
而在一个企业应用集成环境中,应用程序彼此连接并在无人干涉的情况下进行合作。
例如,应用程序利用消息系统来交换信息。
业务流程管理是如下两种技术的结合:以人为导向的工作流和应用集成的结合。
业务流程管理并不是什么新事物,但管理和改进业务流程执行技术的使用却是最近的事情。
业务流程管理的技术实现被称为业务流程管理系统。
理想的BPMS技术可以向那些希望管理业务流程和业务活动的企业提供如下帮助[1]:
能够迅速使业务调整通过业务概念和业务目标等形式付诸实施,并且这些
实施几乎可以是实时进行。
(商业灵活性和完整性)
能够从业务角度对这些调整进行分析和评价。
(商业度量和分析)
能够按照商业目标,保证具体业务的顺利实施,进而通过优化,降低成
本,提高效率。
(保证业务运营)
将商业目标与资源管理分离,只不过知识和流程的引用是按照目标来统筹
安排的。
(流程和数据分离)
与DBMS能够帮助企业管理业务数据一样,BPMS能够有效地帮助企业管理业务流程。
尽管DBMS和BPMS技术都需要专业人员来帮助企业设计组织结构等信息,并给予管理和维护,但是能够降低对用户技术上的要求。
用户仅仅需要知道这些工具如何使用,各种元素的含义以及各种元素之间的关系即可。
如果没有DBMS,尤其是关系型DBMS,用户需要了解大量管理如何存储、访问和数据的管理知识,因而不能集中精力于查询、更新等,也就无法有效地管理业务信息。
如果没有BPMS,用户则需要深入了解实施业务流程所需要的工具和设备,因而无法集中于商业目标的实现以及业务流程管理本身。
如果是这样,那么网络时代对业务灵活性的要求是无法满足的,也是用户无法接受的。
从业务的角度来看,使用商业目标、业务功能、限制等来代替流程所需资源信息对业务流程进行描述是非常重要的。
在业务流程设计过程中,需要业务经理与实施业务流程管理所需资源的管理人员之间经常进行交流,以保证业务流程管理的顺利实施。
综上,BPMS提供了一种方法来获得并有效实施企业管理者所做出的决策。
管理决策的实现依赖于业务流程。
BPMS技术能够为管理者提供定义、变更、实施业务流程的方法,并保证灵活性和一致性,从而不必考虑更多的细节问题,如管理者责任范围、客户、产品、服务、提供产品和服务所需的资源等。
不管是对于B2B、B2C 企业,还是集成类企业,这就是BPMS所体现出的核心价值。
1.3业务流程管理技术发展概况
在20世纪60年代到70年代期间,企业应用大多是用来替代重复性劳动的一些简单设计。
当时并没有考虑到企业数据的集成,惟一的目标就是用计算机代替一些孤立的、体力性质的工作环节。
到了20世纪80年代,有些公司开始意识到应用集成的价值和必要性。
这是一个巨大挑战,很多公司的技术人员都试图在企业系统整体概念的指导下对已经存在的应用进行重新设计,以便让它们集成在一起。
然而这种努力收效甚微。
传统的企业由于缺少不同系统相互集成的技术,导致很多关键的信息被封闭在相互独立的系统中,部门间重复着冗余的工作,这直接导致了企业工作效率的降低和运营成本的上升。
20世纪90年代,ERP(Enterprise Resource Planning)应用开始流行的时候,同时也要求它们能够支持已经存在的应用和数据,这就必须实现企业应用集成(Enterprise Application Integration,EAI)。
企业迫切需要一种方法,让它们少写程序,无须花巨大的费用,就可以将各种已有的应用系统和新的系统集成起来。
推动EAI市场的因素包括基于流程的业务处理、Web应用集成以及供应链管理等等。
随着企业各种应用的迅速增加以及更多地把自己的业务转向电子商务,EAI方案对企业的重要性也日益显现。
越来越多的企业开始采用EAI解决方案将企业内部的应用软件与外部客户和供应商的应用软件进行链接,实现数据流和业务运作的自动化,从而达到业务的实时与快速。
EAI与电子商务的结合为企业快速实现业务的自动化提供了可靠的保证,呈现在我们面前的将是一个同时具有数据自动化和业务流程高度可塑的企业管理框架,从而进一步加快了端到端的电子商务应用集成。
从集成的深度上来说,EAI可以分为三个层次:(1)数据的集成,(2)应用系统的集成,(3)业务流程的集成[4~6],因此一个完整的EAI集成框架是在全面的集成平台基础上实现业务流程的分析和管理,可见BPM已经成为下一代企业整合平台软件的基础。
目前许多EAI的解决方案利用消息中间件(Message Oriented MiddleWare,MOM)技术实现应用系统的整合,MOM利用消息通信服务提供了可扩展的整合能力,适合用于管理大业务量以及地理分布广泛的基础设施。
但这一功能是需要一定代价的,MOM的实施和维护非常昂贵,同时各种MOM的实现技术(例如通信协议、数据格式)各不兼容,又为企业带来了新的集成问题,更重要的是MOM本身缺少面向业务流程的整合能力。
因此随着90年代后期XML语言和Web服务的出现,将Web服务与BPM技术相结合,构建一个面向业务流程的应用集成平台已经成为EAI发展的趋势,得到了IT界的共识。
此外,最近几年,在新应用系统的开发中广泛运用了三层体系架构,三层结构的重要性已被认可。
在三层环境中,划分了三个逻辑层次:表示逻辑层、业务逻辑层和数据访问逻辑层。
该划分就每个层在不同设备上运行来说是完整的。
例如基于浏览器应用的实例,由HTML 驱动的浏览器负责表示层,业务逻辑封装在应用服务器中,从应用服务器上访问的数据可以由远程机器上的数据库服务器来管理。
在三层环境基础上,下一步就是面向业务流程管理。
现在,从业务逻辑层中提取封装在业务逻辑层中的业务逻辑和商业规则,并且在基于工作流的环境中被表示,形象地阐述业务流程不同步骤。
在每个节点,商业规则用于选择下一个节点和执行的业务逻辑。
结果,商业规则也就变得更加明确、可见和快速可变了。
这使得公司对市场的变化能够做出更加迅速的反应。
因此,如图1-1所示,企业内的应用系统也由原来一个个彼此孤立的系统发展为构筑在基于面向流程的框架平台上的应用系统[7, 8]:
1.4本文内容与组织
本文通过对企业应用系统集成框架、企业商务流程管理及自动化方面关键技术的研究,将BPM技术与Web服务技术相结合,提出了一种面向Web服务、面向业务流程的应用集成框架,并在此基础上提出了一套基于J2EE的BizPro业务流程管理系统的实现方案,同时详细论述了BizPro系统中的核心组件流程引擎的具体实现,并以论文审批流程为例,介绍了业务流程在实际中部署实施的完整过程。
本文共分五章,内容安排如下:
第一章,首先简要概述了本课题的项目背景,然后介绍了业务流程管理系统的基本概念和业务流程管理技术的发展概况。
第二章,首先分析了业务流程管理系统的需求,简要介绍了BizPro系统中业务流程模型的主要组成部分,然后对整个系统的设计思想、总体框架,以及系统模块的划分做了详细的阐述,最后对我们BizPro系统的特点进行了简要的总结。
第三章,主要阐述了BizPro系统中业务流程引擎的设计、实现,从引擎的功能定义、设计思想、系统结构到流程实例和活动生命周期的分析、事务管理和异常控制机制、XML数据映射的实现、引擎数据库的设计、一直到引擎的部署情况都一一做了详细的介绍。
第四章,以一个论文审批流程为例,介绍了业务流程管理系统在实际应用中的实施步骤,并给出了流程描述文档的样例,以及流程测试样例的运行结果。
第五章,总结了本文的研究成果与贡献,并简要论述了BizPro系统需要继续改进和完善的方面。
2 BizPro业务流程管理系统的分析与设计
2.1系统概述
BPMS旨在帮助企业从战略上,管理和提高动态业务流程效率。
这正是“业务管理”的本质所在。
因此,一个BPMS系统需要达到以下目标[1, 2, 9]:
??规范企业业务流程;
?迅速实现商业规则和商业目标的改变,BPMS必须提供实现改变的必要技术
并确保业务经理能够对正在改变的业务状况作出迅速的反应;
在流程执行过程中的每一个步骤中,合理调度业务功能以及完成这些功能所需要的资源;
按照商业度量,定时管理和监控某些业务流程
给予商业度量,动态调整业务流程和流程实例以进行优化;
测量流程改变的影响的能力,能够做出迅速改变固然是重要的,但BPMS 必须提供现在比改变以前更好的业务流程信息,该信息可能包括更迅速的执行或更便捷的操作;
以前后一致的方式定义、改变和实现业务流程,有能力近于实时地改变业务流程的实现是有价值的,但没有什么比企业的完整性更重要;
这些目标决定了一个BPMS系统需要完成以下核心任务[10~12]:
流程设计
允许业务分析师在没有任何编程技术的条件下设计流程是BPM 解决方案许诺的主要功能之一,因此需要提供一个界面友好、操作简单的业务流程定制工具,例如采用鼠标拖拉(drag-and-drop)技术的图形用户界面(GUIs),使得业务使用者可以随心所欲的设计、修改流程。
全面的流程设计模型将支持所有的流程资源(包括信息、应用系统、业务人员)、子流程、并行流程、创建业务规则以及异常处理、事务控制等。
流程执行
对于已经定义好的业务流程,BMPS需要提供一个流程执行的环境,也就是流程引擎。
流程引擎是BPMS的核心部件,没有了流程引擎,BPMS最多就是一个计划工具。
引擎的目的是解析、执行业务流程,并按照逻辑的流程定义来实时地管理业务功能的启动和终止。
它不对流程的形式和业务功能的细节作出规定,也不对业务活动的实现施加影响,但是建议它们使用通用的标准和良好的设计。
流程监控
BPM的主要目标之一就是实现流程的不断完善、优化,因此流程监控的重要性显而易见,因此BMPS需要提供一个管理控制工具来监控流程实例的执行情况,跟踪业务活动的执行状态,以及在什么时间,由什么角色或什么系统,使
用什么资源完成,因此管理控制工具提供的信息是理解业务流程并找到改进方法的依据,同时还可以通过该工具来干预流程引擎中流程实例的执行。
从以上的分析,我们可以看出这些核心任务决定了BPMS系统应当具有以下特
征[1, 13]:
业务流程定义和具体实施可能非常复杂,不易理解并且经常改变;
业务功能的实现可以是人工的、自动的或者两者兼有的,时间限制跨度很
大;
流程实例的执行路径往往取决于业务功能的内部逻辑和其最终状态,数据流
和控制流的分离更利于优化。
监控重点是按照战略目标对业务流程效率做出分析和评价(需要关于时间、
方法、效果、成本等方面的数据信息);
管理重点是对于出现的商业机会,在业务流程上进行战略优化。
(这需要流
程实例的调整、风险分析和管理);
业务流程的运行以及有效地为业务流程配置资源只是一个战术意义上的事
情;
业务功能的质量和成本(包括时间和资源)比该功能是否完成对于流程决策
有更大的影响;
考察业务流程是否完整通常不包括实施过程,因为前向业务功能序列和异常
过程处理本身就能保证完整和确定的商业智能特性;
2.2业务流程的建模
业务流程的基本结构是一些相关的活动的集合,它们之间有着逻辑的和数据的依赖关系,同时还包括与活动相关的数据以及活动参与者等[14]。
目前许多组织和企业都提出自己的基于XML的业务流程描述语言,例如BPMI组织提出的BPML (Business Process Modeling Language);WFMC提出的XPDL(XML Process Definition Language);IBM与Microsoft联合提出的BPEL4WS(Business Process Execution Language for Web Services),它是由IBM公司的WSFL(Web Service Flow Language)与Microsoft公司的XLANG的合并而成;以及BEA、Intalio、SAP和Sun四家公司联合推出的WSCI(Web Service Choreography Interface)等等。
但是对于这些流程描述语言的功能和局限性目前还缺少系统的
分析与评价[15~17],它们各自都有支持的组织和企业,尚未形成统一的规范。
考虑到BPMI组织是由众多IT企业组成的非盈利性国际组织,它的成员包括Action、BEA、HP、IBM、SAP、Sun、Sybase等等,因而BPML语言也得到了众多企业的支持,因此我们在BPML语言的基础上定义了描述业务流程模型的基本对象以及基于XML的业务流程描述语言,该流程描述语言在运行时由BizPro系统解释成为一组内部对象模型来管理流程的运行。
由于篇幅所限,下面只给出了业务流程模型中基本对象的简要介绍[18]:。