蔡宗琰 劉清濤 張 媛
(長安大學工程機械學院,陜西西安 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