蔡宗琰 刘清涛 张 媛
(长安大学工程机械学院,陕西西安 710064)
Web Services在ERP系统中的应用研究*
蔡宗琰 刘清涛 张 媛
(长安大学工程机械学院,陕西西安 710064)
在分析ERP系统需求的基础上,对基于Web Services的ERP系统的关键技术进行了研究,并对该系统进行了设计和实现。实例研究表明,本文研究的基于Web Services的ERP系统可行,可以提升整个ERP系统的效率。
计算机集成制造 Web服务 企业资源计划(ERP) 体系结构
企业资源计划(Enterprise Resource Planning,ERP)的发展和应用有效地提高了企业资源的利用率,给我国企业带来了巨大的经济效益。然而现行的ERP系统存在着许多问题:通用性较差,难以随业务过程变化而进行相应的功能配置;可集成性不强,目前采用的CORBA和COM/DCOM等分布计算技术本身存在缺陷,其紧耦合的体系结构使得可集成的ERP系统的实际应用很难达到预期效果;开放性和互操作性差;部分研究也提出了基于Web Services研究ERP系统的思想,但在应用方面还有许多技术难题尚未解决[1-3]。为此,本文对基于 Web Services的 ERP 系统的关键技术进行了研究,并对系统进行了设计和实现,利用Web Services的优势来提升整个ERP系统的运作效率。
Web Services[4],简称 Web 服务,是基于 XML[5](extensible markup language)发展起来的一种新技术体系。它作为新一代分布式计算技术,是一个被包装成单一实体且被发布以供其他程序使用的功能集合,能在分布式环境中得到描述、发布、发现和动态调用。
文献[6]提出了Web Services的体系结构,如图1所示。Web Services体系架构中共有3种角色:服务提供者、服务请求者和服务注册代理。组成Web Services体系架构的组件必须具有3种角色中的一种或多种,这些不同的角色之间通过发布(Publish)、查找(Find)和绑定(Bind)3种操作提供完整的Web Services功能。操作是通过不同角色的交互来实现的。具体来说:(1)发布操作:服务提供者通过发布操作向服务注册代理注册自己的功能和访问接口;(2)查找操作:服务请求者通过查找操作向服务注册代理查找特定的服务;(3)绑定操作:服务请求者通过绑定操作来使用服务提供者提供的服务。
Web Services技术使用一系列标准和协议实现相关的功能。其中XML是Web Services技术的基础,是在开放环境下描述数据和信息的标准技术。构建Web Services的关键技术有:XML、SOAP(Simple Object Access Protocol)、WSDL(Web Services Description Language)、UDDI(Universal Description,Discovery,Integration)[8]。其中,SOAP 是一种把各种程序语言对于远程的调用和参数转换为以XML封装的机制,再通过底层的传送通信协议传递到远程的应用系统;WS-DL用于描述Web Services(该Web服务的元数据信息:服务的名字、提供者、服务的具体访问地址等)及其函数、参数和返回值;而UDDI规范定义了Web服务注册中心,Web Services的提供者可以在Web服务注册中心发布相应的WSDL文档,Web Services的请求者则可以在其中找到自己需要的服务,并通过WSDL文档获得如何调用相应Web Services的方法。
Web Services体系中,服务提供者用WSDL描述Web服务,用UDDI向服务注册代理发布和注册Web服务,服务请求者通过UDDI进行查询,找到所需要的服务后,利用SOAP来绑定和调用所需服务。
面向不断变化的市场需求,ERP系统应该具备如下特点:
(1)集成性 在企业内部,ERP肩负着企业信息全集成的重任,需要方便地与企业其它系统实现无缝应用集成。不同企业的ERP系统之间必须能够根据市场需要进行集成,而且集成的时间和成本要尽量低。
(2)灵活重构 在敏捷协同的制造环境下,企业处于一种相对动态的商务过程中,企业必须采用灵活的运作机制。在企业间,敏捷制造、虚拟企业、扩展企业等新型生产模式无不体现这种动态和灵活性的需求;在企业内部,同样需要根据变化的业务,重组企业过程,形成动态的虚拟组织、虚拟单元。
(3)互操作性 企业中存在多个信息系统,采用的数据库和操作系统是异构的,在分布式协同生产环境下,需要从不同的应用系统中裁剪不同的功能,以满足特定任务的需求,实现系统间互操作。
(4)开放性 由于不同企业制造设备的差异和生产流程的不同,ERP系统必须具有良好的开放架构,能够采集来自不同现场设备的数据,当有新的功能出现或者设备加入时,系统能够随时的把其加入到原有的系统中,而不破坏已经建立起来的组织关系。
ERP系统的上述特性,为基于Web Services的思想在该领域中的应用提供了广阔的应用空间。而近年来,Web Services的体系结构因其开放标准、松散耦合及新型分布组件计算模式,越来越为学术界和产业界广泛接受,成为满足ERP系统所要求的互操作性和灵活性的关键。它支持企业和业务合作者之间以及企业内部应用的端到端集成,提供一种灵活的业务流程模型,从而使企业可以迅速地响应业务变化的需求。
基于ERP系统的需求分析,企业在建立自己的企业资源计划(ERP)系统时,除了要考虑本企业目前已有的生产状况外,还需要考虑企业今后的发展,因此要将ERP系统建成一个可扩展的、开放的、能够根据模块组合实现业务灵活重构的系统。目前实现系统集成和企业内部应用互操作的主要方法是基于CORBA、Java EE平台和Web Services技术。但基于CORBA、Java EE的系统所使用的“数据通道”是私有的,内部机制并不对外公开,其集成方式本身是不可共享的,从而导致集成不同平台开发的系统的费用较高,难度较大。而Web Services技术采用一系列标准开放的技术规范和协议,通过把ERP系统的功能模块以Web服务的形式提供,将不同企业以及同一企业不同系统有效地集成起来,无需考虑开发的平台和使用的语言。整个系统建立在松散耦合,系统接口、数据通信转换都开放的基础之上,用户可以在各个地方使用,不论是桌面应用程序,还是WEB应用程序,不需要再次开发这些功能,节省了开发时间以及开发费用。其具体应用主要体现在以下方面:
(1)企业的各个分系统可以相互使用对方的功能,例如销售部门想知道一批订单什么时候完成,需要用到什么物料,用多少,所有的这些详细信息都可以使用生产管理系统的生产计划功能来得到,因为该生产管理系统的生产计划功能已经被封装成一个服务,可以被其他系统所调用。
(2)对于本企业的其他分厂或企业间的合作伙伴,将不再会花费更多的财力和人力去建新的系统,只需要使用原有的Web服务,就可以轻松地完成一个新的系统构建,这同样适用于其它企业或企业集团。
(3)Web Services技术可以很好地保护企业的遗产系统。对于企业先前已经采用的ERP系统,只需使用Web Services技术对其进行改造即可,而无需将其废弃而重新开发:首先将ERP系统中每个功能模块用WSDL描述,定义每个模块的XML格式,同时将数据库中的数据转换为XML文档,并对其进行业务逻辑和计算分析,最后生成服务器端的SOAP服务框架,通过UDDI的API发布到UDDI注册服务器中,供其它使用者调用。
为此,本文针对ERP系统结构提出了基于Web Services的ERP体系结构,如图2所示。在基于Web Services的ERP体系结构中,Web Services通过各类接口和功能模块将服务封装成Web Services服务,发布到UDDI注册中心,并通过接口调用相应的服务。
在图2所示的ERP系统体系结构中,ERP系统各个业务模块的功能服务,如决策支持服务、计划管理服务、采购管理服务、销售管理服务、库存管理服务等是由多个子功能服务组成的,这些子功能服务同样发布在服务注册中心。例如,计划管理服务就是由主生产计划服务、物料需求计划服务、能力需求计划服务等子服务组成的,每个子服务利用数据访问逻辑组件,对数据库表进行查找、更新、保存等操作。企业内部提供的服务在企业内部的UDDI服务注册中心注册,可由企业内部客户端访问,而需要提供给外部企业访问的服务,则发布到集成的UDDI服务注册中心供其他企业访问。同样,该企业也可以通过集成UDDI来使用外部企业的应用程序,而不管这个应用程序是在什么地方或者使用什么开发工具开发的。客户端请求服务,并显示系统的用户界面,利用SOAP用户接口实现与服务提供者和服务注册中心之间的通信,从而达到查询服务和绑定服务的目的。
基于Web Services开发的ERP系统的整个实现流程如图3所示。
Step1:首先设计实现ERP系统的各个Web服务,并将调试完成后的Web服务通过Web服务注册者发布,在UDDI注册中心注册;
Step2:Web服务请求者首先向Web服务代理请求所需要的服务,服务代理根据请求首先在企业内部的UDDI注册中心查询该服务,为请求者寻找满足该请求的服务,如果找到该服务,转Step3;如果找不到,则转Step6;
Step3:Web服务代理向Web服务请求者返回满足条件的Web服务描述信息(WSDL);
Step4:Web服务请求者利用从Web服务代理返回的WSDL生成相应的SOAP消息,发送给Web服务提供者,以实现Web服务的调用;
Step5:Web服务提供者按SOAP消息执行相应的Web服务,并将服务结果返回给Web服务请求者。
Step6:服务代理根据请求在集成UDDI注册中心查询该服务,为请求者寻找满足该请求的服务,如果找到该服务,转Step3;如果找不到,则转Step7;
Step7:返回信息:不存在此服务;
Step8:结束。
根据以上研究,笔者开发了基于Web services的EPR原型系统,该软件系统已经应用于上海某自行车制造厂。开发基于Web Services的ERP系统的工具很多,但鉴于Delphi开发工具的优越性,笔者选择Pascal作为开发语言,SQL Server2005作为后台数据库,XML作为BOM信息数据库传输载体,HTTP或HTTPS作为传输协议,构建基于Web Services的ERP系统。其软件体系结构如图4所示。
整个服务端与客户端的程序均建立在Delphi2005的开发平台上,采用Object Pascal语言完成,建立ERP系统的各个Web服务。使用Delphi的接口定义Web Services的服务,使用Delphi的类实现服务接口,接着注册服务接口信息以及实现的类信息。这样就可以自动让客户端通过Internet/Intranet的SOAP调用并且使用Web Services对外提供功能。
Delphi在实现Web Services的服务时是使用接口(Interface)的机制,必须先定义一个或是数个接口,并且在接口中定义Web Services提供的服务(函数),最后再使用类实现这些接口提供的服务。Delphi是以接口为中心定义Web Services的服务,再通过实现服务接口对外提供功能。不像其他的一些Web Services开发工具,直接以实现程序代码的方式提供服务,而没有使用接口设计的概念。程序员使用Delphi的接口定义Web Services的服务,使用Delphi类实现服务接口,接着必须注册服务接口信息以及实现的类信息。如图5即是已经注册的对象列表。如此一来就可以自动让客户端通过Internet/Intranet的SOAP调用并且使用Web Services对外提供服务。
图6定义了Port Name以及访问的URL地址,这些信息是访问此Web Services的重要信息,其中客户端需要这些信息才可以绑定到Web Services。其中以下一部分内容正是描述客户端绑定Web Services的信息。
客户端调用Web Services时,要利用THTTPRIO组件,如果Web Service是由Delphi开发的,那么可以使用THTTPRIO组件的URL特性或是WSDLLocation加Service和Port特性。如果Web Service不是由Del-phi开发的,那么就必须使用后者来开发:只要将图5中的URL中输入THTTPRIO组件的WSDLLocation特性值即可实现THTTPRIO组件调用该服务。而客户端应用程序通过THTTPRIO组件调用Web Services时,要实现按钮的Onclick事件,就需要让客户端应用程序取得Web Service服务接口的Object Pascal定义。如果Web Service是用Delphi开发的,那么直接把Web Service的接口定义程序单元加入到客户端的项目之中即可;如果Web Service不是用Delphi开发的,那么可以使用Delphi的Web Services Importer向导自动产生。
还利用前边的例子来说明,由于它的Web Services接口服务定义在wsgetmp3Intf.pas的程序单元中,在客户端项目中加入并声明使用此程序单元,最后在客户端主窗体按钮的Onclick事件处理函数中写入如下代码:
上面的代码首先把HTTPRIO转变类型为Iwsgetmp3,再调用Iwsgetmp3接口中GetWSMessage方法,这样便可以从Web Services中取得响应的消息。通过运行客户端程序,这时我们可以看到,整体数据集被完整的从服务端调用出来,显示在设计好的数据界面下。图7所示为远程调用销售订单的示例。
基于Web Services的ERP系统可以将一系列企业内部标准化的操作封装成服务,供服务请求者调用,开发人员可以将远程服务、本地服务和定制代码组合在一起集成到应用程序中,这将会大大的节省开发、部署和集成的时间和开销。
通过以上研究,可以发现基于Web Services的ERP系统应用了新的信息技术,现代管理技术,先进制造技术,更能够适应现代企业的生产需求,其主要特点如下:
(1)易于重构,开放性好。基于Web Services的ERP系统允许在重用代码的同时,也可以重用代码后面的数据。我们可以不再像以前那样,要先从第三方购买、安装软件组件,再从应用程序中调用这些组件。现在只需要直接调用远端的Web service就可以了。
(2)可集成性好。不论其他的Web服务其软件平台是什么,用什么语言编写,都可以与该系统的Web服务相互集成。这样就大大地节省了重新编写代码的时间和成本。
(3)查询高效。Web Services是一种建立、维护、管理ERP系统和业务流程的方法论。本文利用了面向服务的体系架构的粗粒度、松耦合、可重用的服务及服务接口标准化等特点,将ERP系统设计开发成为了一个更迅速、更可靠、更具重用性架构的业务系统,它将会给企业带来巨大的效益,也会促使企业健康可持续的发展。
[1]Muscatello.joseph R.Enterprise resource planning(ERP)implementations:Theory and practice[J].International Journal of Enterprise Information Systems,2008,4(1):63 - 83.
[2]Tinham,Brian.Extending your ERP:Spending a little to gain a lot[J].Manufacturing Computer Solutions,2006,12(5):12 - 15.
[3]William A.Ruh,Francis.Enterprise Application Integration[M].Jon Wiley&Sons,inc,2001.
[4]Web Services Activity,http://www.w3.org/2002/ws/.2009(6).
[5]Bray.T,et al.Extensible Markup Language(XML)1.0(Second Edition).http://www.w3.org/TR/2000/REC - xml-20001006,2009(6).
[6]Martin Keen,Jonathan Bond,Jerry Denman.Patterns:Integrating Enterprise Service Buses in a Service-Oriented Architecture.http://www.ibm.com/redbooks.2009(6).
[7]Roberto Chinnici,Sun Microsystems.Web Services Description Language(WSDL)Version 2.0 Part 1:Core Language.http://www.w3.org/TR/wsdl20/,2009(6).
如果您想发表对本文的看法,请将文章编号填入读者意见调查表中的相应位置。
Research on Application of Web Services in ERP System
CAI Zongyan,LIU Qingtao,ZHANG Yuan
(School of Mechanical Engineering,Chang’an University,Xi’an 710064,CHN)
After analyzing the requirements of the ERP system,the key technologies of ERP based on Web Service was researched,what’s more,the system is designed and realized in this paper.It is showed that the ERP system based on Web Services is feasible,and the efficiency of the ERP system can be improved.
Computer Integrated Manufacturing;Web Services;Enterprise Resource Planning;Architecture
TH166
A
* 国家863高技术研究发展计划资助项目(863-511-910-403)
蔡宗琰,男,1964年生,教授,博士生导师,工学博士,主要研究方向为计算机集成制造系统、智能机器人、制造执行系统和可重构制造系统等。
p
2009-09-04)
10716