基于SOA的动态ERP系统体系结构

2011-03-27 07:31景,
长春工业大学学报 2011年3期
关键词:体系结构业务流程组件

史 景, 胡 明

(长春工业大学计算机科学与工程学院,吉林长春 130012)

0 引 言

随着世界经济的发展,企业资源计划(Enterprise Resources Planning,ERP)被我国越来越多的企业所认同和接受,但随着ERP的实施,传统ERP表现出的问题越来越明显,传统ERP的发展达到了一个瓶颈。从系统开发及维护方面分析,主要原因是:传统ERP不能很好适应业务流程的转变,程序升级比较麻烦,影响了正常的生产管理,给企业造成了时间、人力、金钱的浪费。因此,建立一个可调整、易扩展的柔性ERP系统成为当前研究的热点。

动态ERP(动态企业资源计划)在很大程度上借鉴了建筑领域的模式思想[1],通过组件复用、框架层次分解等方法搭建系统,形成一个易扩展、可调整的柔性ERP系统,以缓解动态的企业需求和僵硬的ERP系统之间的矛盾[2-3]。

面向服务架构(Service Oriented Architecture,SOA)[4]是一种面向服务的粗粒度、松耦合的企业应用体系结构,是一种分布式的动态可变的软件架构模型。它可以很好地实现动态ERP系统的开发敏捷性,使动态ERP系统具备更好的稳定性、伸缩性和扩展性。

1 动态ERP特点

ERP系统是指通过信息技术,以系统化的管理思想,为企业领导层及员工提供高效管理的平台,从而提高企业管理的效率。随着信息化的发展,ERP系统在企业中担任着越来越重要的作用,但因企业流程在实际操作过程中的转换,使得ERP系统面临频繁升级,因此要求系统必须满足动态性,动态性成为现代软件研究的焦点[2]。动态企业模型(Dynamic Business Model)的概念最早是由荷兰BaaN公司提出的,其目的是根据企业需求调节实现细节,使企业模型随业务流程的转变而不断扩展改变。随着企业管理理论与方法的不断发展,动态ERP的特点越来越明显,突出表现在以下4个方面:

1)动态性。传统ERP在设计时仅仅考虑当时的需求水平,没有考虑到系统的发展及变化,所以缺乏灵活性。而动态ERP要求系统可以随着企业的业务流程的转变和扩展而改变,即系统自身可适应客户的需求变化。

2)扩展性。动态ERP系统比传统ERP更加松散,在设计上采用了层次结构,在开发中结合框架、设计模式等技术,增加了系统的使用灵活性,提高了企业的管理效率,升级时可以与原系统进行无缝衔接,降低了开发成本,减少了维护工作。因此,动态ERP更易扩展其自身功能。

3)稳定性。传统ERP软件更新换代比较快,处在不停升级、不停打补丁的状态中,这导致软件的稳定性比较差。而动态ERP系统因其本身所具有的特性,使得ERP的升级周期大大缩减,提高了整个系统的稳定性。

4)开放性。传统ERP系统受多种因素的制约,如领域、企业、部门等,没有形成统一的接口,使信息成为分散的资源,浪费了大量的人力和资金。动态ERP系统可以构建统一的接口,实现企业和部门间的跨平台合作交流,通过互联网还可以形成巨大的信息网,有利于企业国际化合作和多元化发展。

2 面向服务架构SOA

SOA将不同的功能模块分别定义为独立的服务,每个服务带有标准可调用的接口,通过接口进行数据交换,实现服务和技术的完全分离。它屏蔽了不同平台、操作系统、编程语言和硬件架构之间的差异,使得企业能够快速响应业务发展需求,从而更好地实现业务灵活性,提升企业竞争优势。

SOA体系结构[5]由3个组件组成:服务提供者(Service Provider)、服务注册中心(Service Registry)和服务请求者(Service Requester),如图1所示。

图1 SOA服务角色

各组件的功能如下:

1)服务提供者。创建Web服务,接受和执行来自使用者的请求,将服务发布到服务注册中心,以便服务使用者可以发现和访问该服务。

2)服务注册中心。接受存储服务提供者注册的服务,并对其进行分类管理,同时为服务请求者提供搜索查询服务。

3)服务请求者。利用服务注册表查找所需的服务,通过传输机制绑定到该服务,按规定的格式来调用其Web服务。

在这些组件之间,主要使用发布(Publish)、查找(Find)和绑定(Bind)3种操作。SOA最主要的技术实现手段是Web Services,它以XML技术为基础,用描述语言WSDL来定义描述接口,使服务转到更动态且灵活的接口系统中。Web Services体系结构包含WSDL,SOAP和UDDI这3种协议。

3 基于SOA的动态ERP系统体系结构

为了解决传统ERP系统所存在的不足,可以将ERP系统不同的业务功能分解为粗粒度和细粒度服务,通过服务组合实现ERP系统的整体功能。当企业业务流程重组时,通过重新组合已编写的服务部件即可容易地实现。因此,根据分层设计模式,提出基于SOA的动态ERP系统体系结构,如图2所示。

图2 基于SOA的动态ERP体系结构

设计时对主要功能进行分析,采用自顶向下的方式,确定业务流程,然后抽象成服务,对服务进行归类和粒度划分,实现主要功能或生成新的功能,强调了企业内部服务与外部服务的开发部署和管理控制。

框架体系结构分5层,分别为应用服务层、服务发布层、业务逻辑层、数据访问层以及数据层。各层的功能分别叙述如下。

3.1 应用服务层(UI)

为用户提供GUI交互界面,例如Windows界面、Web界面等,调用企业应用服务。

应用服务层为用户提供友好的可视图形界面和简明的应用服务访问接口,接受用户数据交互,判断界面输入数据的有效性,为不同类别用户提供相应的Web服务接口界面。Web服务的调用对用户来说是完全透明的,用户只需根据界面提供的接口和功能说明提供相应的参数即可,Web服务的最终执行者是客户层调用的服务发布层的组件。Web服务执行结束后,结果将自动返回。

3.2 服务发布层(Web Service)

服务发布层提供各个业务服务的发布接口。

服务发布层封装各种Session Bean,简化复杂的对象视图,将业务逻辑层中的各种业务通过Fecade模式封装成粒度较大的、易用的业务中间件,通过Web Service发布各种业务,接受界面逻辑层调用,保证了服务实现与调用者的最小耦合。该层是面向服务的一层,通过该层实现SOA架构的服务发布。

3.3 业务逻辑层(Business Logic Layer)

封装各种企业业务逻辑,形成业务服务中间件,实现部门的业务逻辑。

业务逻辑层包含了整个ERP系统中的企业业务流程,是系统架构中体现核心价值的部分,它处于整个系统结构的中间位置,响应着应用服务层及服务发布层的请求,管理着对事务的处理,以及通过数据访问层与数据持久层的连接交互操作,在数据交换中起着承上启下的作用。业务逻辑层中的业务流程可以通过调用一个或者多个Web服务来实现。

3.4 数据访问层(Data Access Layer)

封装数据访问逻辑,向业务逻辑层提供统一的数据库访问接口。

数据访问层分为业务逻辑数据访问组件和统一数据库访问组件两类。业务逻辑数据访问组件包含所有实现相关操作的逻辑,向统一数据库访问组件提供数据请求,并将得到的结果返回给实体。统一数据访问组件负责业务数据访问组件与各种异构/分布实体数据库之间的访问,以及相应的转换和回存,利用抽象工程模式方法实现数据库访问无关性,保护数据的完整性。

3.5 数据层(Data Layer)

数据层用来存储业务数据。

数据层作为独立的一层,它既可以是关系型数据库,也可以是基于XML的数据库,还可以是一组文件,甚至可以是外部的Web服务,用来存放与应用程序相关的业务数据和控制数据,保证数据的安全性、完整性、一致性。

其中,应用服务层、服务发布层、业务逻辑层、数据访问层之间的交互关系如图3所示。

图3 模型交互图

在企业应用的大框架中,各层之间的交互实现了SOA架构。根据业务逻辑层与数据访问层的功能设计相关服务,服务实现后由服务发布层进行统一的发布管理,这时业务逻辑层与数据访问层充当着服务的提供者;应用服务层、业务逻辑层和数据访问层在服务发布层查找所有的服务,与服务提供者进行交互。其中业务逻辑层和数据访问层充当着双重角色,既是服务的提供者,也是服务的请求者。

4 基于SOA的动态ERP系统的实现[6-8]

依据动态ERP系统的概念,可将企业划分为若干业务领域模块,针对其中某具体业务领域的特点进行开发与实现。按照层次结构的不同,提供相应的接口,将众多子系统集成组装,使其成为一个完整的动态ERP系统。根据系统功能的分析及按照SOA定义的要求,将系统中不同功能分解成不同级别的服务,通过服务组合,实现动态ERP系统的整体功能。当企业业务流程发生改变时,只需要通过重新组合已编写好的服务部件即可轻松地实现改造。

某全国大型连锁饲料制造企业主要业务功能模块有:系统设置、基础数据管理、权限管理、人事管理、采购管理、库存管理、销售管理和财务管理等。采购管理子系统是企业管理的重要部分,因为企业的采购关系着销售成本的核算。因此,我们以该领域为例,介绍动态ERP的构建。动态ERP系统的用户并不关心系统内部如何布局及其如何实现,而是关心系统能够提供什么样的功能(服务),对不同的事件进行如何的响应。因此,可将采购子模块作为粗粒度服务发布,其子模块又分为订单管理、审批管理、采购管理、查询管理等。通过对采购服务的分析,可以得到业务流程,它包括服务:订单申请、订单审批、采购入库,操作通过服务文件中的接口来实现。采购管理的服务使用者(角色)可以分为生产处、采购处、库房管理员和系统超级用户4大逻辑实体,在对这4种逻辑实体进行细化分析后,可以派生出许多具体的用户实体,见表1。

表1 动态ERP采购管理领域的角色集合

生产员提交采购申请,由采购经理进行审批,审批通过后,由采购员进行采购,进行入库管理。

系统的具体实现工具以及使用的软件包括:

持久层框架:Ibatis 3.0;

业务层框架:Spring 2.0;

表示层框架:Struts 2.0,JSP;

Web服务器:Tomcat 6.0;

Web服务发布框架:XFire 1.2;

开发软件:MyEclipse 7.5;

数据库:MySql 5.5。

5 结 语

随着企业生产规模的不断扩大,业务流程的不断更新,ERP系统已成为现代企业不可或缺的管理手段。与传统的ERP系统开发相比,动态ERP借助于设计模式,将业务逻辑和技术实现相分离,具有一定的可调整和可扩展性,使系统更容易维护,而SOA采用面向对象、面向组件的软件设计方法,解决了面向技术的限制,使动态ERP系统具有更好的柔性、可扩充性、可维护性、可交互性和灵活性。因此,基于SOA的动态ERP系统体系结构可以更好地满足企业多方面的要求,加快了开发速度,减少了开发成本。

[1] 徐向英,周重益,陈华.动态ERP系统的研究与展望[J].微计算机应用,2004,25(1):14-17.

[2] 周重益,谢章丽,宋刚玉.动态ERP系统的设计与实现[J].江苏工业学院学报,2004,16(2):40-43.

[3] 边世红,薛劲松,宋学艳.ERP系统中持久对象动态性研究[J].计算机集成制造系统——CIMS,2003,9(5):378-383.

[4] 徐罡,黄涛,刘绍华,等.分布应用集成核心技术研究综述[J].计算机学报,2005,28(4):433-444.

[5] 魏东,陈晓江,房鼎益.基于SOA体系结构的软件开发方法研究[J].微电子学与计算机,2005,22(6):73-76.

[6] 毛新生.SOA原理方法实践[M].北京:电子工业出版社,2007.

[7] 顾宁,刘家茂,柴晓路,等.Web Services原理与研发实践[M].北京:机械工业出版社,2006.

[8] 梁爱虎.SOA思想技术与系统集成应用详解[M].北京:电子工业出版社,2007.

猜你喜欢
体系结构业务流程组件
无人机智能巡检在光伏电站组件诊断中的应用
RPA机器人助业务流程智能化
新型碎边剪刀盘组件
U盾外壳组件注塑模具设计
企业财务管理、业务流程管理中整合ERP之探索
互联网+背景下物流公司的业务流程再造
基于财务业务流程再造的ERP信息系统构建探析
基于粒计算的武器装备体系结构超网络模型
作战体系结构稳定性突变分析
基于DODAF的装备体系结构设计