基于BPM的企业应用集成框架及其实现.doc_第1页
基于BPM的企业应用集成框架及其实现.doc_第2页
基于BPM的企业应用集成框架及其实现.doc_第3页
基于BPM的企业应用集成框架及其实现.doc_第4页
基于BPM的企业应用集成框架及其实现.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于BPM的企业应用集成框架及其实现摘要:基于Web Service技术构建企业应用集成系统是目前研究的热点之一。但是, Web Service只是解决了企业应用的功能调用和数据集成问题。业务流程管理技术(BPM)的引入,使代表各个具体功能实现的Web Service能协调起来,形成应用服务流程,直接支持企业的各个具体业务过程。本文提出了基于业务流程管理的企业应用集成框架,利用业务流程管理语言(BPEL)来定义业务服务的协调模式,最终形成面向企业业务集成的应用系统。文章最后以企业数字化工厂应用集成为例给出了基于Oracle BPEL流程管理器的实现方案。关键词:企业应用集成, 业务流程管理(BPM),业务流程执行语言(BPEL)An Enterprise Applications Integration Framework based on BPM and its RealizationAbstracts: Web service is a hot technology in the area of Enterprise Applications Integration (EAI). But the Web Service technology only solves the data integration and the function call outside the application. Business Process Manager(BPM) can orchestrates the web services, makes it become the service flowes and accomplish the enterprise business tasks. This paper put forwards an integration framework base on the BPM, using Business Process Execution Language (BPEL) define the service flow and orchestrate the different web services to realize an EAI system. In the last part of this paper an application base on the Oracle BPEL processes manager is given to show how to realize this framework.KeyWords: Enterprise Applications Integration, Business Process Manage, Business Process Executing Language(BPEL)1 引言企业应用集成(EAI)是企业在实施各类信息系统后必然的需求。EAI的目的是集中企业的信息系统资源,包括数据资源和功能资源,减少重复投入,降低数据和功能冗余带来的数据冲突和功能冲突。同时,利用EAI技术可以实现企业间的业务集成和B2B商务集成。例如,供应链管理、敏捷制造等领域的应用。根据应用系统的各不相同,EAI的实现方法分以下几个层次:1、基于数据的集成。如果应用系统没有公开应用接口的开发方法,或者没有提供服务组件,则通过访问数据库的方法来实现系统间的数据集成。这种方案对应用资源的重复使用率低,对同一组数据的类似处理方法会在不同的应用系统中重复开发,引起了系统内的功能冗余。2、基于功能的集成。如果需要集成的应用系统提供基于组件技术或中间件技术的接口模块,则新系统可以通过操作这些组件来完成对原有系统的功能和数据访问。这类方法实现了应用层的集成。但是,调用应用的接口开发是一对一的,如果集成的系统数量比较多,则接口的开发工作量将呈指数增长。同时,功能调用的逻辑顺序,即业务的流程是被固定在相应的应用系统中的,如果需要更改这些流程,必需更改相应的系统程序。3、基于代理的集成。通过中间件等技术建立企业的服务代理,通过统一的代理来实现应用功能的集成。跨系统的调用首先向代理发送消息,由代理来传递给相应的系统进行处理。这种方案下服务代理对不同应用的功能调用进行管理,但是不会对整个业务的执行流程进行管理1。同时,代理层的开发对技术的要求比较高,不同的中间件技术,例如DCOM、.NET、CORBA等又不能相互调用,在技术上受到限制。4、面向服务的架构(SOA)。基于SOA的集成是最近EAI研究的热点。SOA的好处是能把各个应用的功能抽象成服务,通过请求/服务的方式来获取跨应用的功能调用和数据获取2。SOA的一个核心技术就是Web服务。在Web服务中,利用XML技术能把服务的描述、数据的表示等统一起来,方便了系统间的调用。同时,通过诸如SOAP等协议来实现远程调用,能够真正实现跨平台的开发和相互调用。但是,目前基于Web服务的方案基本上实现了功能和数据的互相集成,而没有涉及到对整个业务流程的支持。如果不引入业务流程管理(BPM)的技术来管理企业内部的不同应用,就象没有乐谱和指挥的交响乐团,是不能协同演奏出动听的音乐的。本文的主要工作是结合了SOA技术和BPM技术,研究其在企业EAI中的应用和实现方法。论文下面的组织如下,第二节对BPM技术以及该领域的一个事实标准BPEL语言进行简单介绍,第三节分析了企业服务的不同实现粒度,提出了基于BPEL的企业应用集成框架。第四节在第三节的基础上,针对制造企业数字化工厂领域的相关集成应用,提出基于Oracle BPM服务管理器的系统的实现方法。第五节是全文的总结,对实现方法进行评价。2 业务流程管理(BPM)和业务流程执行语言(BPEL)业务过程管理(Business Process Management, BPM)是基于计算机网络技术、工作流技术、企业应用集成和XML技术等,从业务过程的角度对企业进行全方位的管理,并支持业务过程的持续改进,其核心思想是为企业内及企业间的各种业务过程提供一个统一的建模、执行和监控的环境4。和传统的应用系统不同,BPM以超越功能模块的方式来保证业务跨部门、用户和组织的边界运行。BPM建立在我们已经从个人用户和部门生产力所获得的价值上,并把它们扩展到一个组织范围。业务流程的基本结构是一些相关的活动的集合,它们之间有着逻辑的和数据的依赖关系,同时还包括与活动相关的数据以及活动参与者等。许多组织和企业都提出自己的基于XML的业务流程描述语言。工作流管理联盟(WFMC)提出了基于XML的流程定义语言(XPDL)规范,BPMI组织提出的BPML( Business Process Modeling Language以及BEAIntalio、SAP和Sun四家公司联合推出的WSCI (Web Service Choreography Interface)等等。业务流程执行语言( Business ProcessExecution Language for Web Services,BPEL4WS或BPEL)最初是由IBM与Microsoft联合提出的,它是由IBM公司的WSFL (Web Service FlowLanguage)与Microsoft公司的XLANG的合并而成,并继承了BPML规范的许多特性。如其名字所示,BPEL是一个基于Web Service的流程规范,它可以将以Web Service方式提供的业务功能组装成一个业务流程。BPEL是目前业界最为推崇的一个流程语言规范,一个方面是因为它有强大的公司支撑(MicroSoft、IBM、BEA、SAP等),并且是OASIS(Organization for the Advancement of Structured Information Standards)支持的一个标准;另一个方面是它本身的一些优良特性。BPEL完全基于Web Service而且能组装Web Service,很好地契合了代表未来发展方向的面向服务的架构(Service oriented Archetecure,SOA)。简单的说,SOA就是将企业的许多功能细分成一个个独立的服务,在需要的时候,将这些粒度较细的服务组装起来,提供一个比较完整的业务功能。BPEL可以用于SOA系统里的服务组装。BPEL流程模型位于由WSDL1.1 (Web Services Descriptive Language, Web服务描述语言)所定义的服务模型之上。位于 BPEL流程模型核心的是由WSDL描述的服务间的对等交互概念;流程及其伙伴都被建模成WSDL服务。业务流程定义了怎样协调流程实例与它的伙伴间的交互。一个 BPEL流程定义提供和或使用一个或多个WSDL服务,还通过Web服务接口提供流程实例相对于它的伙伴和资源的行为和交互的描述。也就是说,BPEL定义了交互中某个角色的业务流程遵守的消息交换协议5。流程主文件的基本结构分成四个部分:1、 部分定义了流程使用的数据容器,用 WSDL 消息类型来提供它们的定义。容器使流程可以根据被交换的消息保存状态数据和流程历史。2、 部分定义了在业务流程执行中涉及的Web服务。3、 部分所包含的故障处理程序定义了在对调用评估和批准服务所产生的故障作出响应时必须执行的活动。4、流程正常执行的活动链。例如用标记包含的一系列的串行活动。BPEL支持同步和异步的活动调用。对于流程执行过程中的异步活动是很有必要的,例如,一些人工审批活动节点就需要能以异步的方式执行。3 基于BPEL的企业应用集成框架基于SOA的集成方案就是把应用的数据调用和功能调用都封装成服务,例如Web服务。然后把这些Web服务发布在企业的Intranet中,或者企业之间的Extranet中。不同应用通过调用这些Web服务完成跨平台的调用。所有的Web服务通过在UDDI(Universal Description,Discovery, and Integration,通用描述发现和综合)服务器上注册,便于其它应用能找到Web服务,同时,Web服务都通过WSDL文件进行自描述。图1表示这样的一个集成方案。图1 基于Web服务的集成框架图1中分别用方型、圆型和六边型表示了源自不同应用的功能。假设企业原来有两个应用A和B,通过Web服务的封装和调用,分别在Web服务平台开放了不同的服务接口。新应用C的可以调用这些服务组件,完成应用流程开发。同时,A和B之间的调用也是通过调用各自对方的Web服务来完成。图1中也表示了这种实现方案把业务流程都固定在应用中,用程序语言固定下来。如果流程发生变化,就需要重新修改源程序。同时,随着集成的应用更多,Web服务平台上会有很多服务组件供调用。过多的Web服务组件会造成调用者的迷惑。面向服务的架构(SOA)的核心是服务,从计算机系统开发者和企业业务流程的管理员角度来看“服务”,其含义和粒度是不同的。计算机系统开发者来说的“服务”一般是指细粒度的,包含较少操作的底层服务,例如,用SOAP技术封装的一个应用系统功能函数的调用。而从业务流程管理员的角度来看,服务是包含一个一串事务流程的,能实现一个基本功能的粗粒度服务9。因为从业务流程管理员的角度,他不会涉及很小的底层服务,粗服务内部的业务流程相对固定而不需要进行经常的调整。9图2 企业业务和服务层次关系图图2表示了企业应用系统中服务的不同层次。根据企业业务应用的特点,在企业服务环境中,服务的粒度是不同的。图2中的服务分成了3层:业务层,业务服务组件层和原子服务层。在业务层,是企业的最上层的服务,是直接进行人机交互的应用层。业务层的应用就是企业操作人员进行日常操作,完成日常事务的应用系统。这个层的实现技术就是利用JSP、C#等应用开发语言,结合BPEL的流程定义,调用不同的业务服务组件来完成的。业务层的流程定义可以通过建立BPEL流程定义文档来完成的。而构建流程定义的组件就是由下一层业务服务组件层提供的。中间层是“业务服务组件层”,也是业务流程管理员需要进行管理的对象。根据企业的基本业务,这个层次定义了一些基本的服务(或者说企业的基本活动)。这些服务当然也是由原子服务按照一定的业务流程组合而成。例如,产品的3维设计就是一个基本的企业业务服务(或者可以称企业业务活动),它可能包含一系列的对企业应用的调用,例如,登录PDM系统获取设计需求,完成设计,再存放入PDM系统供其他设计人员调用等多个活动。原子服务层是直接封装应用系统不同功能的基本服务层。这个层的服务根据应用系统的特点,利用应用系统的开发接口,开发出实现不同功能的服务。这些不同的服务利用UDDI来统一管理,并且可以通过WSDL文件来进行自描述。业务服务组件层可以根据应用的需要,来调用这些原子服务事项企业的基本业务活动。通过对不同服务粒度的分析,企业内部不同层次的应用开发人员在实现EAI的时候可以分别关心自己的服务组件。例如,应用系统接口开发人员可以设计、开发、实现原子服务层的不同服务,并且通过UDDI来统一完成不同服务的注册和发布。业务服务组件层设计人员根据企业基本业务活动特点完成业务服务组件的定义和发布。利用BPEL语言来进行服务流程定义,协调不同的原子服务,形成新的服务,也以Web服务的形式进行注册发布。企业业务流程管理员根据企业业务的需要,设计不同的业务流程,可以利用BPEL工具来对业务流程进行建模、实现、发布和管理。企业业务层的设计人员通过调用不同的业务服务组件来实现企业的不同业务流程。业务流程也可以以Web Service的形式存在于企业应用系统环境中。通过Java、C#等编程语言调用这些Web Service实现用户操作界面,供普通用户使用。图3表示了基于BPEL流程定义语言的一个企业应用集成框架。图3 基于BPEL管理器的应用集成框架图3中,通过BPEL来协调各个Web服务,定义调用各个Web服务的流程、错误处理和涉及的相关数据等。这样,业务流程从各个应用中独立出来,对于流程的定义以BPEL文件的格式发布到BPEL管理器中,定义和更改都更加方便。同时,BPEL管理器可以提供对流程实例的执行管理,可以方便地进行业务流程的管理。利用BPEL定义的Web服务流程是一个新的Web服务,可以再次被新的BPEL作为服务组件来调用,这样就方便了企业业务流程的定义。这个框架的主要优点是:支持并行的 Web 服务调用,支持异步的 Web 服务调用,服务之间的松散耦合和可移植性,使用基于标准的接口公开整个流程定义,能方便地进行流程执行实例的监控。在BPM和SOA结合的企业应用集成框架中,对BPEL语言进行解释、执行,对业务流程进行管理的应用服务器是集成的核心。由于BPEL是一个事实上的标准,因此有多个公司提供的应用服务器能被选择使用,例如,Microsoft公司的BizTalk,BEA的WebLogic,IBM的Websphere等。下面给出利用Oracle BPEL流程管理器作为BPM服务器的实现方案。4 基于Oracle BPEL Process Manager的实现方案Oracle BPEL Process Manager(简称OBPELPM)是基于BPEL规范的流程建模和执行服务器。它包括了基于Java开发平台Jdevelop或Eclipse的流程设计建模和发布工具,BPEL流程执行服务器,以及基于Web的控制台。控制台包括对流程版本的管理,流程实例查询和审计等等7。本文涉及的实现方案以制造企业数字化工厂应用系统和企业其它应用系统的集成为背景。数字化工厂应用系统是连接企业设计和制造的桥梁。它提供产品可制造性分析工具,提供仿真平台为产品的制造工艺、制造过程进行仿真,制定优化产品制造工艺,帮助确认制造工具以及制造系统的相关设计参数。本例中的数字化工厂应用系统是emPower软件,它由统一的emServer对emPower系统所涉及的工艺平台、物流仿真、工位仿真等的数据进行管理,并以COM形式提供相应的数据服务接口。数字化工厂系统和企业的PDM系统、ERP系统有密切的联系。PDM系统完成产品全生命周期的数据管理,包括设计数据、工艺数据、制造数据等。同时,PDM系统提供对产品设计开发整个流程的流程管理。ERP系统包括企业的生产计划和资源配置。数字化工厂系统从PDM系统获取相关的产品设计数据,包括产品CAD图纸数据、设计BOM数据等,完成产品的工艺设计和优化,生成产品的生产信息和制造系统的相关参数设计,把数据反馈到PDM系统中。同时,把产品的工时数据、制造资源的配置信息等反馈给ERP系统,供ERP进行生产计划制定和能力需求计划的制定。本例中的PDM系统为SmarTeam系统,ERP系统为金蝶K3系统。整个应用系统的集成框架见图4。图4 基于OBPELPM的企业应用集成框架Oracle BPEL服务器运行在支持J2EE的Oracle应用服务器上(Oracle Application Server, OAS)上面,一个Oracle数据库作为BPEL服务器的存储支持,用来存放企业流程的发布信息和执行信息。应用集成的实现步骤为:1、根据图2中的服务层次结构,从上至下进行分析。例如,对于新产品开发流程,可以确认需要的基本活动有:产品3D设计产品有限元计算分析产品工艺制定和优化制造系统的设计和准备产品生产计划制定产品制造。这些活动组成一个新产品的开发流程。流程包括必要的审批、审核等回路。2、针对构成企业业务流程的基本活动,设计业务服务组件。例如,对于“产品工艺制定和优化”活动,就需要数字化工厂应用系统的支持。该组件包括的基本流程为:产品数据获取产品粗工艺制定产品工艺仿真优化制造资源确定。这些活动涉及数字化工厂、PDM两个系统,分别通过调用这两个系统的应用来完成。3、针对业务服务组件的需求,设计并开发原子服务。封装了应用系统基本功能的Web服务是原子服务,即细粒度的服务,它能完成基本的功能,例如,对emServer中产品树、装配树、资源树等的查询,对SmarTeam中产品结构的访问,用户身份验证等等。emServer和SmarTeam软件都提供COM接口供二次开发使用,而金蝶ERP系统没有公开其二次开发的接口组件,只是提供了关于其数据库结构的开发文档。因此,在针对这些应用系统的Web服务的开发过程中采用了不同的方案。(1)对于提供COM接口的系统,利用VB开发通过COM组件技术访问应用系统的服务程序,并且封装成Web服务。Web服务基于微软的IIS Web 服务器发布,并且在企业UDDI服务器上进行注册。(2)对于ERP系统,利用Java开发数据访问服务接口模块,并且封装成Web服务,基于Oracle 应用服务器进行发布,注册在UDDI服务器上。包含Web服务的IIS服务器和Oracle AS应用服务器,以及UDDI服务器,组成了企业的Web服务平台。4、在原子服务封装、发布的基础上,进行业务服务组件的设计和定义。业务服务组件是由原子服务按照一定的流程规范来完成的,因此也就是利用BPEL语言来对原子服务进行协调的定义过程。这个过程可以利用OBPELPM中的设计工具,以图形化的方式进行。图5是在Oracle Jdev10g下的BPEL流程编制界面,表示从PDM获取产品数据的过程。设计完成后,BPEL流程发布到BPEL服务器上。业务服务组件是以BPEL服务器上面的不同流程来表示。这些流程包括自己的WSDL文件,也以Web 服务出现在Web服务平台。5、在业务流程服务组件的基础上,可以构建企业的业务活动。这可以再次利用BPEL设计工具调用业务服务组件以及相关的原子服务来完成。6、应用系统设计人员根据业务流程需要,设计必要的应用程序和人机界面。例如,在流程中会涉及到一些人工参与的审核点,这些审核界面可以利用JSP或Java来开发,审核界面根据工作人员的操作结果,向BPEL服务器发出相关的消息。BPEL服务器根据这些消息可以让BPEL按定义的分支执行。7、基于BPEL的流程发布到BPEL服务器上后,业务流程管理员可以随时登录到BPEL控制台对服务器上执行的服务流程进行管理和监视,包括服务流程版本的控制,流程实例执行的监视和审计,对流程实例执行过程中关键节点的监视等等。图5 Oracle Jdev10g下BPEL流程设计界面5 结论利用BPM和SOA技术结合来实现企业的EAI是一个新的应用集成方案。SOA技术提供了可以跨平台调用的应用Web服务,而利用BPM技术可以协调这些Web服务,来完成企业的不同业务。BPEL是BPM领域一个实施上的标准语言,它基于XML格式,能对整个流程进行建模、定义。BPEL能够协调企业的Web服务,并且借助BPEL管理器,自己也以Web服务的方式提供服务。这样,企业内部的应用可以通过对不同粒度的服务进行调用、定义,从而能快速方便地构建企业新的集成应用。由于Web服务是松偶合的,数据通过XML形式进行传递,因此,对于松偶合的事务是比较合适的。如果系统的业务调用是基本固定的,而且业务是日常发生的,数据量的传送比较大,则采用Web服务和BPEL作为解决方案是不合适的。这种情况下,采用基于某一平台的中间件方案,例如DCOM、J2EE或CORBA的解决方案更加合适,毕竟这些方案在数据的安全性,大数据的传递以及服务的可靠性方面有更好的保证。6 参考文献1 ASLIUTOSH R., ASHWIN B., WIPRO T. ,Enterprise Business Process Integration.,IEEE Region 10 Annual International Conference, Proceedings/TENCON, Volume:v 4,p 1549-1553,20032 袁占亭,张秋余,杨洁,基于Web Services的企业应用集成解决方案研究,计算机集成制造系统, Vol.10(4), p394-398,414, 2004.4(YUAN Zhanting,ZHANG Qiuyu,YANG Jie, Solution on Enterprise Application Integration Based on Web Services, Computer Integrated Manufacturing Systems, Vol.10(7), p394-398,414, 2004.4)3 杨昌锋,王冠,司建辉,基于SOA 构建新一代的企业应用集成,计算机应用与软件,第22卷 第10 期,p122-123,2005.10(YANG Changfen

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论