1 引 言
业务流程涵盖了企业输入到输出的全过程。在企业、合作伙伴、供应商和客户之间建立了纽带。它的直接目的就是为客户提供产品、提供服务,并获得价值收益。因此,业务流程管理BPM是整个企业运行的核心所在。业务流程管理是流程自动化和信息系统设计领域的新的发展方向,下一代的信息系统被普遍认为是以BPM为中心,以企业的业务流程为基础的IT产品市场。
面向服务架构SOA能把各个应用的功能抽象成服务,通过请求服务的方式来获取跨应用的功能调用和数据获取。它的核心技术就是Web服务。但是,目前基于Web服务的方案可以实现功能和数据的集成,而没有涉及到对整个业务流程的支持。因此,本文的主要工作是将SOA技术和BPM技术相结合,研究其在制造企业中的应用和实现方法。
2 业务流程管理BPM
2.1 BPM的概述
业务流程管理BPM是基于计算机网络技术、工作流技术、企业应用集成和XML技术等,从业务流程的角度对企业进行全方位的管理。并且,它支持业务流程的持续改进,其核心思想是为企业内部及企业间的各种业务提供一个统一的建模、执行和监控环境。
2.2 BPM与工作流
BPM是基于工作流等一些相关技术发展而来的,因此两者之间在功 能上相互交叉,但却有所区别。工作流是根据一套程序规则,全部或部分的执行文档、信息或任务由一方(人或系统)传向另一方的活动。它通过详细设计流程中的活动,每个活动的输入、输出,活动的顺序以及活动的参与者,形成一系列的特定的步骤。但是,随着管理理论和信息技术的发展,工作流这种静态的流程,已不能很好的适应企业对业务流程变化的快速反应的需求。因此,BPM的出现顺应了企业业务流程动态变化的特征。它不仅覆盖了业务流程的建模、运行、监控、分析、优化和重组等各个层次,而且对业务流程的并行、协同和分布起到了支持的作用。
2.3 业务流程管理系统与业务流程执行语言
BPM最核心的功能体现在平台支撑、流程设计、流程集成、流程自动化、流程执行、管理监控六个层面。集成这些功能的软件平台被称之为业务流程管理系统BPMS(Business Process Management System)。业务流程执行语言BPEL(Business Process Execution Language for Web Service)最初是由IBM与Microsoft于2002年8月联合提出的。它的出现取代了原有的IBM的Web服务流程语言WSLF(Web Service Flow Language)和Microsoft的XLANG规范,并集成了WSLF和XLANG各自的优势(前者支持面向图形的流程,后者支持流程的结构化构造)。
在分布式的网络环境中,BPMS首先要解决的就是系统异构问题,而Web服务与BPEL的结合很好地解决了这个问题。Web服务的主要目标是跨平台的可互操作性,它是基于XML的,独立于平台、独立于具体实现语言,为各种功能的实现提供了通用的标准接口,很好的解决了异构问题.BPEL为编排Web服务提供了通用的标准,它是业务流程描述工具。随着BPEL的逐步完善,基于BPEL的业务流程管理系统将具有更多的优势。同时,BPEL是一个基于Web Service的流程规范,它可以将以Web Service方式提供的业务功能组装成一个业务流程,因此它可以很好的契合面向服务架构SOA。下面就将详细的介绍一下面向服务架构的相关概念。
3 面向服务架构SOA
3.1 SOA的概述
面向服务构架SOA是一种面向服务的企业应用体系结构,灵活性与松藕合性是它最突出的两个特性。首先,对比传统的三层客户/服务器体系结构,SOA具有一个灵活而功能强大的服务层,它能把各个应用的功能抽象成服务,通过请求-服务的方式来获取跨应用的功能调用和数据获取。其次,SOA是一种强内聚松耦合,延展性与兼容性强的分布式信息体系。它不同于市场上许多打包应用,而是可以通过标准化的组件,根据业务的需求搭建出企业所需的系统,并且可以方便地按照业务需求的改变而改变。
3.2 SOA的基本结构
如图1所示,在SOA结构中存在三个角色和一个协议。服务提供者:是一个可通过网络寻址的实体,它接受和执行来自使用者的请求,并将自己的服务和接口契约发布到服务注册中心,以便服务请求者可以发现和访问该服务;服务请求者:是一个应用程序、一个软件模块或需要一个服务的另一个服务,它发起对注册中心服务的查询,通过传输绑定服务,并且执行服务功能;服务注册中心:是服务发现的支持者,它包含一个可用服务的存储库,并允许感兴趣的服务请求者查找服务提供者接口。协议,是服务请求者和它相互作用的服务提供者之间的方法说明。一个服务协议要求一系列的前置条件和后置条件,它们规定了为完成特定的功能,服务必须处在的特定的状态。协议还声明了服务的质量水平,如服务质量的一个属性就是完成一个特定的服务方法所花费的总时间。
SOA结构中的组建必须具有上述一种或多种角色,它们之间的操作为发布、查找和绑定。发布,可以使服务提供者向服务代理注册自己的功能及访问接口;查找,可以使服务请求者通过服务代理查找特定种类的服务;绑定,可以使服务请求者能够真正使用服务提供者。
3.3 SOA的服务体系
面向服务架构(SOA)的核心是服务,它通过服务的组合来构架出灵活的系统,将简单的服务组合为复杂的服务、应用程序。在这种架构中,下层服务通过组合可以得到上层较大粒度的服务,按照这种方法层层递推就形成了服务的层次结构。在服务的层次结构里,服务被分为原子服务和组合服务两种类型。原子服务,是最基本的功能逻辑单元,位于服务层次结构的最底层,其内部封装了实现特定功能的服务组件,类似“叶子”的概念。组合服务,是由多个原子服务通过编排、组合的方式形成的,它对应于特定的某个应用或需求。如图2所示,在这个架构中,一个服务L与其它服务J, K组合形成了较大粒度的服务C;而同时服务L又是由其下层的一系列服务M-Q经组合而得到的。这些服务可以根据需要进行快速、灵活的重组,所以利用这种方式构建的系统十分灵活,具有一定的“柔性”特征。
4 应用实例
本文的实现方案以制造企业数字化工厂应用系统和企业其它应用系统的集成为背景。数字化工厂应用系统是连接企业设计和制造的桥梁。它提供产品可制造性分析工具,提供仿真平台为产品的制造工艺、制造过程进行仿真,制定优化产品制造工艺,帮助确认制造工具以及制造系统的相关设计参数。本例中的数字化工厂应用系统是emPower软件,它由统一的emServer对emPower系统所涉及的工艺平台、物流仿真、工位仿真等的数据进行管理,并以COM形式提供相应的数据服务接口。
数字化工厂系统和企业的PDM系统、ERP系统有密切的联系。PDM系统完成产品全生命周期的数据管理,包括设计数据、工艺数据、制造数据等。同时,PDM系统提供对产品设计开发整个流程的流程管理。ERP系统包括企业的生产计划和资源配置。数字化工厂系统从PDM系统获取相关的产品设计数据,包括产品CAD图纸数据、设计BOM数据等,完成产品的工艺设计和优化,生成产品的生产信息和制造系统的相关参数设计,把数据反馈到PDM系统中。同时,把产品的工时数据、制造资源的配置信息等反馈给ERP系统,供ERP进行生产计划制定和能力需求计划的制定。本例中的PDM系统为SmarTeam系统,ERP系统为金蝶K3系统。
图3表示了企业应用系统中服务的不同层次。在这个应用实例中服务被分成了三层,业务层,业务服务组件层和原子服务层。
业务层,是企业最上层的服务,是直接进行人机交互的应用层。业务流程管理员根据企业业务的需要,设计不同的业务流程,并利用BPEL工具来对业务流程进行建模、实现、发布和管理。同时他们通过调用不同的业务服务组件来实现企业不同的业务流程。这层的实现主要是通过JSP, Java和C#等编程语言,通过调用Web Service来实现用户操作界面,供用户使用。
业务服务组件层,是业务流程管理员需要进行管理的对象。根据企业的基本业务,这个层次定义了一些基本的服务,或者说是企业的基本活动。这层的设计人员根据企业基本业务活动特点完成业务服务组件的定义和发布。利用BPEL语言来进行服务流程定义,协调不同的原子服务,形成新的服务,以Web服务的形式进行注册发布。例如,产品3D设计就是一个基本的企业业务服务,它包含一系列的对企业应用的调用,如登录PDM系统获取设计需求,根据需求完成设计工作,将成果再存放到PDM系统中供其他设计人员调用等多个活动。
原子服务层是直接封装应用系统不同功能的基本服务层。这层的服务根据应用系统的特点,利用应用系统的开发接口,开发出实现不同功能的服务。这些不同的服务利用UDDI来统一管理,并且可以通过WSDL文件来进行自描述。
5 结 论
利用BPM和SOA技术结合来实现企业应用集成是一个新的应用集成方案。SOA技术提供了可以跨平台调用的应用Web服务,而利用BPM技术可以协调这些Web服务,来完成企业的不同业务。Web服务是松祸合的,数据通过XML形式进行传递,因此对于松藕合的事务是比较合适的。但是,如果系统的业务调用是基本固定的,而且数据量的传送比较大,则采用Web服务和BPEL作为解决方案就不合适的。因此这种情况下,就应考虑采用基于某一平台的中间件方案了,如DCOM,J2EE或CORBA等。
CIO之家 www.ciozj.com 公众号:imciow