0 引 言
企业资源计划(Enterprise Resources Planning,ERP)在我国已被越来越多企业认同和接受,实施ERP已成为企业信息化的重要标志之一。传统的ERP系统主要是面向企业内部管理的,其体系结构缺少灵活性,IT组织很难对不同的功能和系统进行集成,很难对变化的商务需求和竞争需求做出及时反应。只要不是由单独的一个开发商来提供所有的功能,就一定存在着不严格的应用程序。主要问题是:
(1)不能适应企业经营管理模式的变化,企业组织架构、经营管理模式的变化,导致原有的ERP系统要重新开发或做较大的改进,造成投资浪费。
(2)不能灵活地支持供应链管理功能,不能实现企业与供应商、企业与分销商之间的信息集成,以及不同软件之间的互操作。
如何使企业原有系统间实现无缝集成;应用系统具有快速可重构性;动态调整其结构和行为,以支持这种持续进行的企业管理创新与流程重组优化;构建适合于企业信息集成的平台,已成为当前的一个挑战。为了解决现有ERP系统难以重构。难以与企业之外的供应商、分销商集成的问题,提出基于面向服务架构(Service Oriented Architecture,SOA)的ERP系统体系结构。该结构充分体现了在Web服务平台上实现跨平台、语言独立、松散耦合的异构应用交互和集成,使得建立在此平台上的ERP系统更具易用性和可扩展性。
1 面向服务架构SOA
面向服务架构是一种面向服务的企业应用体系结构,是一种分布式的软件架构模型。在该模型中,任何业务功能都被用作提供一个服务使用,应用程序的不同功能(服务)通过这些服务之闻定义的结构和合约联系起来,所以应用系统可以看作是一系列的服务集成。
SOA的体系结构由三个参与者和三个基本操作构成。三个参与者分别为服务提供者、服务请求者和服务注册代理者。三个基本操作分别是发布、查找和绑定,如图1所示。SOA体系结构中的角色功能为:
(1)服务请求者。它是一个应用程序、一个软件模块,或需要一个服务的另一个服务。它发起对注册代理中的服务查询,通过传输绑定服务,并且执行服务功能,服务请求者根据接口契约来执行服务;
(2)服务提供者。它是一个可通过网络寻址的实体,可以接受和执行来自请求者的请求。它将自己的服务和接口契约发布到服务注册中心,以便服务请求者可以发现和访问该服务;
(3)服务注册代理。它是服务发现的支持者。它包含一个可用服务的存储库,并允许感兴趣的服务请求者查xxx提供者接口。
图1 SOA协作关系
?
SOA中的每个实体都扮演着服务提供者、请求者和注册代理这三种角色中的某一种(或多种)。面向服务体系结构中的操作包括:
(1)发布。为使服务可访问,需要发布服务描述,使服务请求者可以发现和调用它;
(2)查询。服务请求者定位服务,方法是在服务注册中心查询到满足标准的服务;
(3)绑定和调用。在检索完服务描述之后,服务请求者继续与服务描述中的信息调用服务。
2 基于SOA的ERP系统体系结构
为了解决现有ERP存在的问题,实现互联网环境下企业之间的供应链集成和响应企业内部流程重组的变化,要求ERP系统具有给外部企业提供服务和从外部企业获取服务的功能。为了能够灵活地实现企业内部流程重组的要求,可以把ERP系统功能分解成粗粒度服务和细粒度服务,然后通过服务组合实现ERP系统的整体功能。当重组企业业务流程时,通过重新组合已编写的服务部件即可容易地实现改造。为此,提出了基于SOA架构的ERP系统体系结构,如图2所示。该系统把服务定义为三个抽象级别:操作、服务和业务流程。设计时采用自顶向下的方式,对主要功能进行分析,确定业务流程,然后抽象成服务,再通过操作重用服务,实现主要功能或生成新的功能。
图2 基于SOA架构的ERP系统体系结构
?
在图2所示的ERP系统体系结构中,ERP各个业务模块的功能作为粗粒度服务发布,而每个模块的功能又由多个子功能组成。这里把这些子功能作为细粒度服务发布,而一个粗粒度服务由多个细粒度服务组合而成,每个细粒度服务都利用数据访问逻辑组件对数据库表进行查找、更新、保存等操作。在该系统中,本地企业提供的服务在本地服务注册中心注册,可由本地企业客户端访问;而需要提供给合作企业访问的服务,则发布到公共注册中心,供外部合作企业访问。客户的请求通过通道控制(公司网关)被传递给主控制器。使用Web Services Gateway,则来自客户的请求可以被转换成服务所要求的任何消息协议。请求服务的客户端通过web环境显示用户界面,用SOAP客户接口实现与服务提供方和服务注册中心通信,达到查询服务和绑定服务的目的。
3 基于SOA的ERP系统实现技术
?
面向服务架构最常用的一种实现方法是WebServices技术。Web Services技术使用一系列标准和协议实现相关的功能。其中,XML作为Web Services技术的基础,是开放环境下描述数据和信息的标准技术。服务提供者可以用Web服务描述语言(WSDL)描述Web服务,用统一描述、查询和集成(UDDI)向服务注册代理发布和注册Web服务。服务请求者通过UDDI进行查询,找到所需服务后,利用简单对象协议(SOAP)来绑定、调用这些服务。
实现Web服务的主流开发平台有J2EE平台和Microsoft.net平台。由于J2EE的最主要特点是与平台无关性,它是简化的、基于组件的开发模型,具有随处运行的可移植性,遵循J2EE标准的所有服务器都支持该模型,从而使基于J2EE的应用程序不依赖任何特定操作系统,中间件或硬件具有很好的可重用性。因此,设计合理的基于J2EE的程序只需开发一次就可以部署到各种平台,这在典型的异构企业环境中是十分关键的。图3是采用J2EE平台实现ERP系统的Web服务体系结构。其中,JAXR(Java API for XMI。Registries,用于为XMI。注册表的Java API)使得应用程序能够在注册表中注册、或者查询其他公司提供的Web服务,用于XMI。消息交换的Java API(Java API for XM Messaging,JAXM)提供Web服务环境中的异步和消息交换功能,并可以通过内部网和Internet进行XML文档交换。JAXM是基于SOAP 1.1规范和SOAP附件定义中消息交换协议的一种API框架。
图3 基于J2EE的Web服务体系结构
?
该系统的运行过程为服务请求者向主控制器发出HTTP请求,主控制器读出请求内容,并利用JAXR发现UDDI服务注册表中的服务,然后根据请求内容创建一条SOAP Message,利用JAXM把SOAP Message提交给服务提供者,以调用相关的Web服务,由Web服务程序处理数据库。服务提供者用JAXR向UDDI服务注册表发布Web服务。使用JSP和JSTL来实现。JSTL标记将辅助完成条件处理和对Web服务所返回XML数据进行分析。并将{zh1}的结果用浏览器形式通过页面显示给用户。
具体的实现工具和软件包括:
①ESB平台:Mule 1.3;
②持久层框架:Hibernate 3.2;
③业务层框架:Spring 1.2;
④Web服务发布框架:XFire 1.2;
⑤Web服务安全设置:JSR 181;
⑥表示层框架:Struts 1.4 JSP;
⑦Web服务器:Tomcat 6.0;
⑧开发软件:MyEclipse 5.5。
4 结 语
ERP已成为现代企业不可或缺的管理手段,但企业在实施ERP产品过程中有较多失败的案例,其中一个{zd0}的原因在于ERP产品不能真正满足用户的需求。当前的ERP系统大都基于网络能力的单一层次,有的虽然可以提供多个层次的能力接口,但是相互之间都相互独立。SOA为ERP系统的发展注入了新的动力,使得未来的ERP系统具有更好的可扩充性、可维护性、可交互性和灵活性。本文利用面向服务体系架构中的粗粒度、松耦合、可重用服务及服务标准化接口设计管理等特点,将原有的ERP系统改造成为了一个更迅速、更可靠、更具重用性架构的业务系统。实现了在Web服务平台上交互和集成跨平台、语言独立、松散耦合的异构应用,使建立在该平台上的ERP系统更具易用性和可扩展性。