收稿日期:2006-11-08;修订日期:2007-01-22  作者简介:方江雄(1978-),男,湖北黄冈人,硕士研究生,主要研究方向:智能ERP 、数据挖掘、工作流、面向服务; 何红波(1972-),男,教授,博士,主要研究方向:智能ERP 、数据挖掘、工作流、面向服务; 李义兵(1965-),男,教授,博士生导师,主要研究方向:团簇计算、数据挖掘、并行计算.
文章编号:1001-9081(2007)05-1264-04
基于S OA 和BP M 的ERP 系统的研究与实现
方江雄1
,何红波1
,李义兵
1,2
(1.中南大学信息科学与工程学院,湖南长沙410083;2.中南大学物理科学与技术学院,湖南长沙,410083)
(fangchj2002@163 )
摘 要:分析了传统ERP 解决方案所面临的不足,提出了基于面向服务架构和业务流程管理实现ERP 系统的解决方案。在深入探讨面向服务的框架模型原理及业务流程管理思想的基础上,给出了一个面向服务和业务流程管理的企业应用框架。并结合企业实践项目,详细阐述了基于S OA 和BP M 集成的方法和步骤,充分论证了基于S OA 和BP M 的ERP 系统集成开发的可行性及优越性。
关键词:面向服务框架;企业资源计划;业务流程管理;业务流程执行语言中图分类号:TP311.52  文献标识码:A
Research and rea li za ti on of ERP system ba sed on S OA and BP M
F AN
G J iang 2xi ong 1
,HE Hong 2bo 1
,L I Yi 2bing
1,2
(1.Institute of Infor m ation and Science,Central South U niversity,Changsha Hunan 410083,China ;
2.Institute of Physics and Technology,Central South U niversity,Changsha Hunan 410083,China )
Abstract:This paper analyzed the deficiency of traditi onal Enter p rise Res ource Planning (ERP )s oluti on at first and put f or ward the s oluti on of realizing ERP syste m based on Service 2O riented A rchitecture (S OA )and Business Pr ocessManagement (BP M ).Then,after analyzing the p rinci p le of the service 2oriented architecture and the idea of business p r ocess manage ment,a service and business p r ocess manage ment oriented enter p rise app licati on frame was p r oposed .This paper expatiated the methods and step s of integrati on based on S OA and BP M in detail and has fully p r oved the feasibility and superi ority devel oped in ERP syste m integrati on based on S OA and BP M.
Key words:Service 2O riented A rchitecture (S OA );Enter p rise Res ource Planning (ERP );Business Pr ocess Management (BP M );Business Pr ocess Executi on Language (BPE L )
0 引言
传统ERP 在业务流程和服务框架方面仍存在着明显的不足,主要表现在:
(1)流程方面在于面向具体事务进行处理,功能不易扩
充、业务流程固化、维护成本高、与新环境集成困难,缺乏柔性,企业不能随着商业环境的变化而方便
迅速地改变业务流程,而企业环境的变化促使企业必须快速地调整业务来响应;
(2)在服务框架方面是先建一个集成平台,然后开发各
种各样的适配器和连接器去连接已有的子系统。用适配器来进行信息的有效收集、现有集成平台与原有平台的信息转发。集成不能方便、灵活、低代价地实现异构子系统的集成,难于快速适应企业现代业务变化的需求,而且容易受制于传统分布式对象中间件技术存在的局限性,如C ORBA 、DC OM 、R M I 之间的互操作性,客户端与服务端之间的紧耦合。
本文以S OA +BP M 结构以借助现有的应用来组合产生新服务的敏捷方式。通过采用S OA 框架,企业可以最大限度地减少系统间的耦合,从而提高可重用性。通过采用BP M ,实现了工作流程的自动化和多个企业系统之间的无缝集成。
1 面向服务的体系框架
S OA 是一种粗粒度、松耦合的服务结构,使企业变得更加
弹性和灵活性,快速响应业务的需求变更,并具有精确定义的标准化接口。服务的粗粒度是指服务执行了较大的业务功能,并交换了比细粒度更多的数据;服务之间的松耦合是指服
务具有中立的接口(没有强制绑定到特定的实现上)特征;标准化接口是指W eb 服务使应用功能得以通过标准化接口(W S DL )提供,并可基于标准化传输方式(HTTP 和J M S )、采用标准化协议(S OAP )进行调用。笔者认为:S OA =<S,P,
Re,R l,O >,即它包括四种主要实体和操作。其中S 表示服
务;P 表示服务提供方;Re 表示服务请求方;R l 表示服务注册库;O 表示W eb 服务的操作。其体系结构如图1所示:
(1)服务:由W eb 服务描述语言(W eb Service Descri p ti on Language,W S DL )来描述,W S DL 把服务抽象地描述为一组包含在面向文档或面向过程信息的消息上执行操作的端点的集合,多个相关的具体端点结合在一起就构成了服务;
(2)服务提供方:服务提供者是一个可通过网络寻址的实体,它接受和执行来自使用者的请求。它将A 的服务和接口契约发布到服务注册中心,以便服务使用者可以发现和访问该服务;
第27卷第5期
2007年5月
计算机应用
Computer App licati ons
Vol .27No .5May 2007
(3)服务请求方:服务使用者是一个应用程序、一个软件模块或需要一个服务的另一个服务。它发起对注册中心中的
服务的查询,通过传输绑定服务,并且执行服务功能。服务使用者根据接口契约来执行服务;
(4)服务注册库:服务注册中心是服务发现的支持者。它包含一个可用服务的存储库,并允许感兴趣的服务使用者查服务提供者接口;
图2 基于S OA 与BP M 的ERP 系统总体框架
(5)W eb 服务的操作:是与W eb 服务相关的操作,主要有:发布,查,绑定,调用
图1 S OA 体系框架
2 W S 2BPEL
面向服务的业务流程执行语言(Business Pr ocess Executi on Language f or W eb Services,W S 2BPE L ),又叫BPE L4W S,是当前基于流程的W eb 服务合成最常使用的技术。W S 2BPE L 是I B M 的W SF L 和微软的XLANG 中的优秀成分的组合,允许混合块结构与图结构的流程模型,其规范是
W eb 服务规范中对一个服务整个工作流的描述语言,它将一
组组已经存在的W eb 服务操作连接起来,并按照某一特定的规则统一描述到某个业务流程中,完成不同服务的整合,实现具体的事务流程,是实现和使用W eb 服务的必要环节。W S 2BPE L 是一种使用X ML 编写的编程语言,能够更好地支持平台和语言的无关性;理由:在本文中对BPE L 的活动元素没有具体使用。
3 基于S OA 与BP M 集成ERP 系统设计
图2为基于S OA 和BP M 的ERP 系统的总体框架图,本系统分4层:服务信息客户层、业务流程管理层、事务提供层和服务应用层。其各层功能如下:
(1)服务信息客户层:服务请求方是挂接于企业信息门户的W eb 应用程序(W eb 服务客户应用),企业门户为服务请求方提供了标准接口,其中包括企业内部和企业外部信息门户。同时通过企业门户可以为业务流程层提供授权认证权限、信息的传输;
(2)业务流程层:集成了各种业务规则和逻辑,包括流程任务、任务间的控制流、任务间的数据流以及流程相关的其他规则,提供企业门户的服务请求者统一权限认证和业务活动监控(Business Activity Monit oring,BAM )。业务服务总线层将细粒度服务编排融合为粗粒度服务并为各业务对象提供目
5621第5期方江雄等:基于S OA 和BP M 的ERP 系统的研究与实现   
录、路由服务以动态绑定到所需要的服务。业务服务总线作为通用的业务平台,消除了服务提供者和请求者之间的依赖关系,提高了可重用性以及已有服务的内部扩展和外部获取。这一层侧重在业务支持上,通过通用和标准的对象和服务模型,可以在这一层上定义各个W eb 服务的业务流程,通过W S 2BPE L 和W S DL 语言能够灵活调用各个功能模块
;
图3 以编制为中心的面向服务业务流程管理部署
(3)服务提供层:它为业务流程层提供了理想的平台,定义了在服务间交换,以及提供服务请求者使用的业务层的数据,包括数据定义(X ML Sche ma )、数据验证规则(X ML Schema 约束以及XPath )和数据转化规则(XS LT )。服务提供层将企业原有系统所提供的功能组件以W eb 服务封装,新系统也以W eb 服务开发,并将这些服务发布到UDD I 公共目录服务器中注册,以提供目录路由服务。企业服务总线(Enter p rise Service Bus,ES B )是S OA 体系中的基础架构,各个服务通过总线来互相访问;
(4)服务应用层:这一层主要是指需要集成的各个应用系统和数据存储库;
该框架基于面向服务技术、通过各类适配器服务接口将ERP 系统许许多多的小模块进行组件化,然后将这些应用组件进行封装组成统一的应用服务,然后发布到目录服务中心,并通过企业服务总线中的基础核心服务,如统一数据格式和消息传递等,来实现各个应用系统间的通信交互。ERP 系统通过将开发的各个组件进行模块化后通过请求企业服务总线,能够实现既可以访问已有应用系统,也可以访问原有应用系统,从而真正实现了平台的无关性。
4 基于S OA 与BP M 集成ERP 系统实现
4.1 流程部署及服务调用
基于S OA 与BP M 集成ERP 系统的目标是通过使用W eb 标准实现应用程序间通用的互操作性以及业务
流程自动化。S OA 松散耦合的集成模型包括企业到消费者、企业到企业和企业应用程序集成中的各种系统的灵活集成。采用基于标准的、可扩展的、基于X ML Sche ma 的W S DL 和W S 2BPE L 来定义流程。W S DL 所直接支持的交互模型是同步或不相关的异步交互的无状态模型。业务交互的模型通常涉及到在双方或多方长期运行的交互中同步和异步对等消息交换序列。W eb
服务的业务流程执行语言(Business Pr ocess Executi on Language forW eb Services,W S 2BPE L )可以创建完成W eb 服务调用、操纵数据、抛出故障或终止一个流程等工作的不同活动,然后将它们连接起来,从而创建出复杂的流程。以编制为中心的业务流程管理部署及面向服务如图3所示。
①先定义实际应用流程定义消息、应用数据,生成描述文档。并通过AP I 接口将该文档注入到工作流引擎中,对流程进行控制;
②通过W S DL 将库存采购管理、人事管理、生产管理、财务管理和基础数据管理等各种组件包装成服务;
③工作流引擎在按照W S 2BPE L 文档进行流程控制时,发现需要调用服务,就调用W eb 服务总线,W eb 服务总线根据管理器去处理事务,处理完后通知工作流引擎,然后工作流引擎执行下一个流程或任务;
xml实体解析xpath注入④库存采购管理、人事管理、生产管理、财务管理和基础数据管理等都有自己的W S DL 文件,当有请求时,根据需求对各种服务进行解析;
⑤工作流引擎、W eb Service Bus 、Service 需要挂接在服务监控或商业活动监控上,以便能监控ERP 各个系统的引擎、流程、服务以及相关组件;
⑥当客户应用发出请求时,通过S OAP 去访问服务总线,同时服务总线去发现服务,当发现服务是外部服务时,就通过J MX 的外面服务去调用;当发现服务是内部服务时,直接解析服务并调用相应组件AP I 接口;
⑦客户端通过J MX 等组件进行调用。4.2 事务管理
基于W eb 服务的互操作,它们的松耦合接口可映射到具有完全不同的事务协议与模型的不同系统上,要求它们即使在操作系统、硬件、网络或应用发生故障的情况下,仍期望可靠地向使用者以及他们依赖的业务返回预期的结果,这使事务系统面临着重大的难题。在这种情况下,事务确保了一组W eb 服务可以取得共同的结果,多个W eb 服务要依赖彼此来完成某个复杂的应用请求,事务就是利用各种协议来协调服务之间的执行结果。如果在事务操作过程中出现错误,那么其余的操作都必须被回滚。
在W eb 服务事务中主要技术是协调器,它跟踪给定事务
实例中数据的变化。在图4中显示了一个异步消息队列中取出消息,然后在同一个事务中用该消息的内容来更新数据。
在图4中详细展示了在同一事务中涉及多个资源,每个事务都有自己的事务管理器。在执行数据资源的操作之前,先从独立的事务协调器获得事务I D 和相应的上下文向协调器注册,然后将信息传递给执行链中下一个W eb 服务。事务协调器收到数据库的请求时,该请求包含应用程序放入的独立的事务I D ,表明已经启动一个独立的事务服务。当协
6621    计算机应用2007年
调器在事务结束时收到通知,然后发起两阶段协议来提交修改或根据日志回滚事务。协调器负责把信息发送给3个数据库内的事务管理器,确认是否可以提交或是否因出现故障而需要回去,以完成对一个或多个事务性资源的操作
图4 事务协调器框架
在W eb服务事务中,每个活动代表事务协调所需的执行流,在程序中把它作为一个组件,每一个组件都会有各自的属性和共同的属性,同一活动调用共用事务上下文的W eb服务来执行。事务上下文通过共用一个上下文和协议类型来实现与活动的关联。每个组件都提供了生成W S2BPE L的接口,该接口组件能够生成对应的W S2BPE L代码。以下为图4建立协调器事务Build BPE L的伪码:
public void BuildBPEL()
{//得到W S2BPEL活动集合
OperateTransacti on OperateTrans= A ctivity_ Transacti on();
W hile(OperateTrans!=nul1)
{//为每个流程活动处理相应的事务
int Transacti on I D=GetTransacti on I d(Transacti onNa me);
/
/根据事务名获得事务I D DealTransacti on(Transacti on I D);//根据事务I D处理事务
Element element=CreateEle ment();
W S BPEL_Doc.Append(ele ment);
Element.Append(Log Message);
W S BPEL_Doc.Append(Ele ment);
//将字符串写入BPEL4W S文档}
}
Public void Transacti on(BuildBPEL buildBpel)
{
BeginTransacti on();//开始事务
int[]Transacti on I d=buildBpel.Read W S BPEL_Doc();
/
/读W S2BPEL日志文件的事务I D
//根据日志判断事务是否提交或回滚
for(int i=0;i<Transacti on I d.Count;i++)
{
if(GetState_(Transacti on I d[i]))//根据状态判断
{
Comm it();//提交事务
}
else
{
Roolback();//回滚事务
}
}
EndTransacti on();//结束事务}                           
5 结语
当前的ERP系统大都基于网络能力的单一层次,有的虽然可以提供多个层次的能力接口,但是
相互之间都相互独立。本文提出的基于S OA系统
框架使业务流程逻辑没有硬编码到下层应用中,各
个应用系统分开维护,有利于针对业务需要与需求
的变化快速修改业务流程。这种流程自动化不仅
使业务流程更加流畅,还加快了流程的周转时间,
而且提供一个灵活、方便的流程集成机制。采用面
向服务体系结构,使ERP系统在开发过程中把精
力集中于业务流程,而先不去关注有关集成或应用
程序底层实现问题,使企业应用摆脱面向技术解决
方案的束缚,灵活的适应企业业务流程变化和发展
的需要。通过服务实现业务流程自动化,把各个功
能模块进行组件化、模块化,使各个模块间的业务
逻辑分离,同时增强独立模块的紧密耦合。充分体
现了在W eb服务实现平台上实现了跨平台、语言独立、松散耦合的异构应用的交互和集成,使得建立在此平台上的ERP系统更具易用性和可扩展性。
参考文献:
[1] 杨晓红,朱庆生.组件化程序设计方法及组件标准[J].重庆大学
学报(自然科学版),2001,24(6):120-123.
[2] NE WCOMER E,LOMOW G.Understanding S OA W ith W eb Serv2
ice(中文版)[M].徐涵,译.北京:电子工业出版社,2006.221-
270.
[3] 谭伟,范玉顺.业务过程管理框架与关键技术研究[J].计算机集
成制造系统,2004,10(7).
[4] 李厚福,韩燕波,虎嵩林,等.一种面向服务、事件驱动的企业应
用动态联盟构造方法[J].计算机学报,2005,(4):739-748. [5] NAM N,CHR I SW,MATT S.An algorithm for vendor2independent
BPEL debugger in a Java integrated devel opment envir onment[J].
Research D iscl osure,2006,(4):362-363.
[6] 杨可木,褚葵花.浅论业务流程管理及其系统[J].商场现代化
(学术版),2005,(2):77-78.
[7] 廖建军,胡宏涛.基于S OA实现企业应用集成[J].微机发展,
2005,(11):114-119.
[8] 郑洪源,谢强,赵燕飞.一种面向服务的EA I方案研究与应用
[J].小型微型计算机系统,2005,(12):2233-2236.
[7] 郑江南,毛顿,陈平,等.面向服务的系统主动网管代理的设计和
实现[J].计算机工程,2002,(8):266-267.
[8] 梁新元,张勤.基于ERP的卷烟制造企业智能信息系统[J].计
算机工程,2004,(7):149-151.
[9] 张祖平,彭坤.基于流驱动的er p生产管理系统的设计与实现
[J].计算机工程,2005,(3):198-201.
[10]WOODLEY T,G AG NON S.BP M and S OA:Synergies and Chal2
lenges[A].Pr oceedings of the6th I nternati onal Conference on W eb
I nfor mati on Syste m s Engineering(W I SE)[C].2005.
7621
第5期方江雄等:基于S OA和BP M的ERP系统的研究与实现   

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。