蔡宗琰 劉清濤 張 媛
(長安大學(xué)工程機(jī)械學(xué)院,陜西西安 710064)
Web Services在ERP系統(tǒng)中的應(yīng)用研究*
蔡宗琰 劉清濤 張 媛
(長安大學(xué)工程機(jī)械學(xué)院,陜西西安 710064)
在分析ERP系統(tǒng)需求的基礎(chǔ)上,對基于Web Services的ERP系統(tǒng)的關(guān)鍵技術(shù)進(jìn)行了研究,并對該系統(tǒng)進(jìn)行了設(shè)計(jì)和實(shí)現(xiàn)。實(shí)例研究表明,本文研究的基于Web Services的ERP系統(tǒng)可行,可以提升整個(gè)ERP系統(tǒng)的效率。
計(jì)算機(jī)集成制造 Web服務(wù) 企業(yè)資源計(jì)劃(ERP) 體系結(jié)構(gòu)
企業(yè)資源計(jì)劃(Enterprise Resource Planning,ERP)的發(fā)展和應(yīng)用有效地提高了企業(yè)資源的利用率,給我國企業(yè)帶來了巨大的經(jīng)濟(jì)效益。然而現(xiàn)行的ERP系統(tǒng)存在著許多問題:通用性較差,難以隨業(yè)務(wù)過程變化而進(jìn)行相應(yīng)的功能配置;可集成性不強(qiáng),目前采用的CORBA和COM/DCOM等分布計(jì)算技術(shù)本身存在缺陷,其緊耦合的體系結(jié)構(gòu)使得可集成的ERP系統(tǒng)的實(shí)際應(yīng)用很難達(dá)到預(yù)期效果;開放性和互操作性差;部分研究也提出了基于Web Services研究ERP系統(tǒng)的思想,但在應(yīng)用方面還有許多技術(shù)難題尚未解決[1-3]。為此,本文對基于 Web Services的 ERP 系統(tǒng)的關(guān)鍵技術(shù)進(jìn)行了研究,并對系統(tǒng)進(jìn)行了設(shè)計(jì)和實(shí)現(xiàn),利用Web Services的優(yōu)勢來提升整個(gè)ERP系統(tǒng)的運(yùn)作效率。
Web Services[4],簡稱 Web 服務(wù),是基于 XML[5](extensible markup language)發(fā)展起來的一種新技術(shù)體系。它作為新一代分布式計(jì)算技術(shù),是一個(gè)被包裝成單一實(shí)體且被發(fā)布以供其他程序使用的功能集合,能在分布式環(huán)境中得到描述、發(fā)布、發(fā)現(xiàn)和動態(tài)調(diào)用。
文獻(xiàn)[6]提出了Web Services的體系結(jié)構(gòu),如圖1所示。Web Services體系架構(gòu)中共有3種角色:服務(wù)提供者、服務(wù)請求者和服務(wù)注冊代理。組成Web Services體系架構(gòu)的組件必須具有3種角色中的一種或多種,這些不同的角色之間通過發(fā)布(Publish)、查找(Find)和綁定(Bind)3種操作提供完整的Web Services功能。操作是通過不同角色的交互來實(shí)現(xiàn)的。具體來說:(1)發(fā)布操作:服務(wù)提供者通過發(fā)布操作向服務(wù)注冊代理注冊自己的功能和訪問接口;(2)查找操作:服務(wù)請求者通過查找操作向服務(wù)注冊代理查找特定的服務(wù);(3)綁定操作:服務(wù)請求者通過綁定操作來使用服務(wù)提供者提供的服務(wù)。
Web Services技術(shù)使用一系列標(biāo)準(zhǔn)和協(xié)議實(shí)現(xiàn)相關(guān)的功能。其中XML是Web Services技術(shù)的基礎(chǔ),是在開放環(huán)境下描述數(shù)據(jù)和信息的標(biāo)準(zhǔn)技術(shù)。構(gòu)建Web Services的關(guān)鍵技術(shù)有:XML、SOAP(Simple Object Access Protocol)、WSDL(Web Services Description Language)、UDDI(Universal Description,Discovery,Integration)[8]。其中,SOAP 是一種把各種程序語言對于遠(yuǎn)程的調(diào)用和參數(shù)轉(zhuǎn)換為以XML封裝的機(jī)制,再通過底層的傳送通信協(xié)議傳遞到遠(yuǎn)程的應(yīng)用系統(tǒng);WS-DL用于描述Web Services(該Web服務(wù)的元數(shù)據(jù)信息:服務(wù)的名字、提供者、服務(wù)的具體訪問地址等)及其函數(shù)、參數(shù)和返回值;而UDDI規(guī)范定義了Web服務(wù)注冊中心,Web Services的提供者可以在Web服務(wù)注冊中心發(fā)布相應(yīng)的WSDL文檔,Web Services的請求者則可以在其中找到自己需要的服務(wù),并通過WSDL文檔獲得如何調(diào)用相應(yīng)Web Services的方法。
Web Services體系中,服務(wù)提供者用WSDL描述Web服務(wù),用UDDI向服務(wù)注冊代理發(fā)布和注冊Web服務(wù),服務(wù)請求者通過UDDI進(jìn)行查詢,找到所需要的服務(wù)后,利用SOAP來綁定和調(diào)用所需服務(wù)。
面向不斷變化的市場需求,ERP系統(tǒng)應(yīng)該具備如下特點(diǎn):
(1)集成性 在企業(yè)內(nèi)部,ERP肩負(fù)著企業(yè)信息全集成的重任,需要方便地與企業(yè)其它系統(tǒng)實(shí)現(xiàn)無縫應(yīng)用集成。不同企業(yè)的ERP系統(tǒng)之間必須能夠根據(jù)市場需要進(jìn)行集成,而且集成的時(shí)間和成本要盡量低。
(2)靈活重構(gòu) 在敏捷協(xié)同的制造環(huán)境下,企業(yè)處于一種相對動態(tài)的商務(wù)過程中,企業(yè)必須采用靈活的運(yùn)作機(jī)制。在企業(yè)間,敏捷制造、虛擬企業(yè)、擴(kuò)展企業(yè)等新型生產(chǎn)模式無不體現(xiàn)這種動態(tài)和靈活性的需求;在企業(yè)內(nèi)部,同樣需要根據(jù)變化的業(yè)務(wù),重組企業(yè)過程,形成動態(tài)的虛擬組織、虛擬單元。
(3)互操作性 企業(yè)中存在多個(gè)信息系統(tǒng),采用的數(shù)據(jù)庫和操作系統(tǒng)是異構(gòu)的,在分布式協(xié)同生產(chǎn)環(huán)境下,需要從不同的應(yīng)用系統(tǒng)中裁剪不同的功能,以滿足特定任務(wù)的需求,實(shí)現(xiàn)系統(tǒng)間互操作。
(4)開放性 由于不同企業(yè)制造設(shè)備的差異和生產(chǎn)流程的不同,ERP系統(tǒng)必須具有良好的開放架構(gòu),能夠采集來自不同現(xiàn)場設(shè)備的數(shù)據(jù),當(dāng)有新的功能出現(xiàn)或者設(shè)備加入時(shí),系統(tǒng)能夠隨時(shí)的把其加入到原有的系統(tǒng)中,而不破壞已經(jīng)建立起來的組織關(guān)系。
ERP系統(tǒng)的上述特性,為基于Web Services的思想在該領(lǐng)域中的應(yīng)用提供了廣闊的應(yīng)用空間。而近年來,Web Services的體系結(jié)構(gòu)因其開放標(biāo)準(zhǔn)、松散耦合及新型分布組件計(jì)算模式,越來越為學(xué)術(shù)界和產(chǎn)業(yè)界廣泛接受,成為滿足ERP系統(tǒng)所要求的互操作性和靈活性的關(guān)鍵。它支持企業(yè)和業(yè)務(wù)合作者之間以及企業(yè)內(nèi)部應(yīng)用的端到端集成,提供一種靈活的業(yè)務(wù)流程模型,從而使企業(yè)可以迅速地響應(yīng)業(yè)務(wù)變化的需求。
基于ERP系統(tǒng)的需求分析,企業(yè)在建立自己的企業(yè)資源計(jì)劃(ERP)系統(tǒng)時(shí),除了要考慮本企業(yè)目前已有的生產(chǎn)狀況外,還需要考慮企業(yè)今后的發(fā)展,因此要將ERP系統(tǒng)建成一個(gè)可擴(kuò)展的、開放的、能夠根據(jù)模塊組合實(shí)現(xiàn)業(yè)務(wù)靈活重構(gòu)的系統(tǒng)。目前實(shí)現(xiàn)系統(tǒng)集成和企業(yè)內(nèi)部應(yīng)用互操作的主要方法是基于CORBA、Java EE平臺和Web Services技術(shù)。但基于CORBA、Java EE的系統(tǒng)所使用的“數(shù)據(jù)通道”是私有的,內(nèi)部機(jī)制并不對外公開,其集成方式本身是不可共享的,從而導(dǎo)致集成不同平臺開發(fā)的系統(tǒng)的費(fèi)用較高,難度較大。而Web Services技術(shù)采用一系列標(biāo)準(zhǔn)開放的技術(shù)規(guī)范和協(xié)議,通過把ERP系統(tǒng)的功能模塊以Web服務(wù)的形式提供,將不同企業(yè)以及同一企業(yè)不同系統(tǒng)有效地集成起來,無需考慮開發(fā)的平臺和使用的語言。整個(gè)系統(tǒng)建立在松散耦合,系統(tǒng)接口、數(shù)據(jù)通信轉(zhuǎn)換都開放的基礎(chǔ)之上,用戶可以在各個(gè)地方使用,不論是桌面應(yīng)用程序,還是WEB應(yīng)用程序,不需要再次開發(fā)這些功能,節(jié)省了開發(fā)時(shí)間以及開發(fā)費(fèi)用。其具體應(yīng)用主要體現(xiàn)在以下方面:
(1)企業(yè)的各個(gè)分系統(tǒng)可以相互使用對方的功能,例如銷售部門想知道一批訂單什么時(shí)候完成,需要用到什么物料,用多少,所有的這些詳細(xì)信息都可以使用生產(chǎn)管理系統(tǒng)的生產(chǎn)計(jì)劃功能來得到,因?yàn)樵撋a(chǎn)管理系統(tǒng)的生產(chǎn)計(jì)劃功能已經(jīng)被封裝成一個(gè)服務(wù),可以被其他系統(tǒng)所調(diào)用。
(2)對于本企業(yè)的其他分廠或企業(yè)間的合作伙伴,將不再會花費(fèi)更多的財(cái)力和人力去建新的系統(tǒng),只需要使用原有的Web服務(wù),就可以輕松地完成一個(gè)新的系統(tǒng)構(gòu)建,這同樣適用于其它企業(yè)或企業(yè)集團(tuán)。
(3)Web Services技術(shù)可以很好地保護(hù)企業(yè)的遺產(chǎn)系統(tǒng)。對于企業(yè)先前已經(jīng)采用的ERP系統(tǒng),只需使用Web Services技術(shù)對其進(jìn)行改造即可,而無需將其廢棄而重新開發(fā):首先將ERP系統(tǒng)中每個(gè)功能模塊用WSDL描述,定義每個(gè)模塊的XML格式,同時(shí)將數(shù)據(jù)庫中的數(shù)據(jù)轉(zhuǎn)換為XML文檔,并對其進(jìn)行業(yè)務(wù)邏輯和計(jì)算分析,最后生成服務(wù)器端的SOAP服務(wù)框架,通過UDDI的API發(fā)布到UDDI注冊服務(wù)器中,供其它使用者調(diào)用。
為此,本文針對ERP系統(tǒng)結(jié)構(gòu)提出了基于Web Services的ERP體系結(jié)構(gòu),如圖2所示。在基于Web Services的ERP體系結(jié)構(gòu)中,Web Services通過各類接口和功能模塊將服務(wù)封裝成Web Services服務(wù),發(fā)布到UDDI注冊中心,并通過接口調(diào)用相應(yīng)的服務(wù)。
在圖2所示的ERP系統(tǒng)體系結(jié)構(gòu)中,ERP系統(tǒng)各個(gè)業(yè)務(wù)模塊的功能服務(wù),如決策支持服務(wù)、計(jì)劃管理服務(wù)、采購管理服務(wù)、銷售管理服務(wù)、庫存管理服務(wù)等是由多個(gè)子功能服務(wù)組成的,這些子功能服務(wù)同樣發(fā)布在服務(wù)注冊中心。例如,計(jì)劃管理服務(wù)就是由主生產(chǎn)計(jì)劃服務(wù)、物料需求計(jì)劃服務(wù)、能力需求計(jì)劃服務(wù)等子服務(wù)組成的,每個(gè)子服務(wù)利用數(shù)據(jù)訪問邏輯組件,對數(shù)據(jù)庫表進(jìn)行查找、更新、保存等操作。企業(yè)內(nèi)部提供的服務(wù)在企業(yè)內(nèi)部的UDDI服務(wù)注冊中心注冊,可由企業(yè)內(nèi)部客戶端訪問,而需要提供給外部企業(yè)訪問的服務(wù),則發(fā)布到集成的UDDI服務(wù)注冊中心供其他企業(yè)訪問。同樣,該企業(yè)也可以通過集成UDDI來使用外部企業(yè)的應(yīng)用程序,而不管這個(gè)應(yīng)用程序是在什么地方或者使用什么開發(fā)工具開發(fā)的??蛻舳苏埱蠓?wù),并顯示系統(tǒng)的用戶界面,利用SOAP用戶接口實(shí)現(xiàn)與服務(wù)提供者和服務(wù)注冊中心之間的通信,從而達(dá)到查詢服務(wù)和綁定服務(wù)的目的。
基于Web Services開發(fā)的ERP系統(tǒng)的整個(gè)實(shí)現(xiàn)流程如圖3所示。
Step1:首先設(shè)計(jì)實(shí)現(xiàn)ERP系統(tǒng)的各個(gè)Web服務(wù),并將調(diào)試完成后的Web服務(wù)通過Web服務(wù)注冊者發(fā)布,在UDDI注冊中心注冊;
Step2:Web服務(wù)請求者首先向Web服務(wù)代理請求所需要的服務(wù),服務(wù)代理根據(jù)請求首先在企業(yè)內(nèi)部的UDDI注冊中心查詢該服務(wù),為請求者尋找滿足該請求的服務(wù),如果找到該服務(wù),轉(zhuǎn)Step3;如果找不到,則轉(zhuǎn)Step6;
Step3:Web服務(wù)代理向Web服務(wù)請求者返回滿足條件的Web服務(wù)描述信息(WSDL);
Step4:Web服務(wù)請求者利用從Web服務(wù)代理返回的WSDL生成相應(yīng)的SOAP消息,發(fā)送給Web服務(wù)提供者,以實(shí)現(xiàn)Web服務(wù)的調(diào)用;
Step5:Web服務(wù)提供者按SOAP消息執(zhí)行相應(yīng)的Web服務(wù),并將服務(wù)結(jié)果返回給Web服務(wù)請求者。
Step6:服務(wù)代理根據(jù)請求在集成UDDI注冊中心查詢該服務(wù),為請求者尋找滿足該請求的服務(wù),如果找到該服務(wù),轉(zhuǎn)Step3;如果找不到,則轉(zhuǎn)Step7;
Step7:返回信息:不存在此服務(wù);
Step8:結(jié)束。
根據(jù)以上研究,筆者開發(fā)了基于Web services的EPR原型系統(tǒng),該軟件系統(tǒng)已經(jīng)應(yīng)用于上海某自行車制造廠。開發(fā)基于Web Services的ERP系統(tǒng)的工具很多,但鑒于Delphi開發(fā)工具的優(yōu)越性,筆者選擇Pascal作為開發(fā)語言,SQL Server2005作為后臺數(shù)據(jù)庫,XML作為BOM信息數(shù)據(jù)庫傳輸載體,HTTP或HTTPS作為傳輸協(xié)議,構(gòu)建基于Web Services的ERP系統(tǒng)。其軟件體系結(jié)構(gòu)如圖4所示。
整個(gè)服務(wù)端與客戶端的程序均建立在Delphi2005的開發(fā)平臺上,采用Object Pascal語言完成,建立ERP系統(tǒng)的各個(gè)Web服務(wù)。使用Delphi的接口定義Web Services的服務(wù),使用Delphi的類實(shí)現(xiàn)服務(wù)接口,接著注冊服務(wù)接口信息以及實(shí)現(xiàn)的類信息。這樣就可以自動讓客戶端通過Internet/Intranet的SOAP調(diào)用并且使用Web Services對外提供功能。
Delphi在實(shí)現(xiàn)Web Services的服務(wù)時(shí)是使用接口(Interface)的機(jī)制,必須先定義一個(gè)或是數(shù)個(gè)接口,并且在接口中定義Web Services提供的服務(wù)(函數(shù)),最后再使用類實(shí)現(xiàn)這些接口提供的服務(wù)。Delphi是以接口為中心定義Web Services的服務(wù),再通過實(shí)現(xiàn)服務(wù)接口對外提供功能。不像其他的一些Web Services開發(fā)工具,直接以實(shí)現(xiàn)程序代碼的方式提供服務(wù),而沒有使用接口設(shè)計(jì)的概念。程序員使用Delphi的接口定義Web Services的服務(wù),使用Delphi類實(shí)現(xiàn)服務(wù)接口,接著必須注冊服務(wù)接口信息以及實(shí)現(xiàn)的類信息。如圖5即是已經(jīng)注冊的對象列表。如此一來就可以自動讓客戶端通過Internet/Intranet的SOAP調(diào)用并且使用Web Services對外提供服務(wù)。
圖6定義了Port Name以及訪問的URL地址,這些信息是訪問此Web Services的重要信息,其中客戶端需要這些信息才可以綁定到Web Services。其中以下一部分內(nèi)容正是描述客戶端綁定Web Services的信息。
客戶端調(diào)用Web Services時(shí),要利用THTTPRIO組件,如果Web Service是由Delphi開發(fā)的,那么可以使用THTTPRIO組件的URL特性或是WSDLLocation加Service和Port特性。如果Web Service不是由Del-phi開發(fā)的,那么就必須使用后者來開發(fā):只要將圖5中的URL中輸入THTTPRIO組件的WSDLLocation特性值即可實(shí)現(xiàn)THTTPRIO組件調(diào)用該服務(wù)。而客戶端應(yīng)用程序通過THTTPRIO組件調(diào)用Web Services時(shí),要實(shí)現(xiàn)按鈕的Onclick事件,就需要讓客戶端應(yīng)用程序取得Web Service服務(wù)接口的Object Pascal定義。如果Web Service是用Delphi開發(fā)的,那么直接把Web Service的接口定義程序單元加入到客戶端的項(xiàng)目之中即可;如果Web Service不是用Delphi開發(fā)的,那么可以使用Delphi的Web Services Importer向?qū)ё詣赢a(chǎn)生。
還利用前邊的例子來說明,由于它的Web Services接口服務(wù)定義在wsgetmp3Intf.pas的程序單元中,在客戶端項(xiàng)目中加入并聲明使用此程序單元,最后在客戶端主窗體按鈕的Onclick事件處理函數(shù)中寫入如下代碼:
上面的代碼首先把HTTPRIO轉(zhuǎn)變類型為Iwsgetmp3,再調(diào)用Iwsgetmp3接口中GetWSMessage方法,這樣便可以從Web Services中取得響應(yīng)的消息。通過運(yùn)行客戶端程序,這時(shí)我們可以看到,整體數(shù)據(jù)集被完整的從服務(wù)端調(diào)用出來,顯示在設(shè)計(jì)好的數(shù)據(jù)界面下。圖7所示為遠(yuǎn)程調(diào)用銷售訂單的示例。
基于Web Services的ERP系統(tǒng)可以將一系列企業(yè)內(nèi)部標(biāo)準(zhǔn)化的操作封裝成服務(wù),供服務(wù)請求者調(diào)用,開發(fā)人員可以將遠(yuǎn)程服務(wù)、本地服務(wù)和定制代碼組合在一起集成到應(yīng)用程序中,這將會大大的節(jié)省開發(fā)、部署和集成的時(shí)間和開銷。
通過以上研究,可以發(fā)現(xiàn)基于Web Services的ERP系統(tǒng)應(yīng)用了新的信息技術(shù),現(xiàn)代管理技術(shù),先進(jìn)制造技術(shù),更能夠適應(yīng)現(xiàn)代企業(yè)的生產(chǎn)需求,其主要特點(diǎn)如下:
(1)易于重構(gòu),開放性好?;赪eb Services的ERP系統(tǒng)允許在重用代碼的同時(shí),也可以重用代碼后面的數(shù)據(jù)。我們可以不再像以前那樣,要先從第三方購買、安裝軟件組件,再從應(yīng)用程序中調(diào)用這些組件。現(xiàn)在只需要直接調(diào)用遠(yuǎn)端的Web service就可以了。
(2)可集成性好。不論其他的Web服務(wù)其軟件平臺是什么,用什么語言編寫,都可以與該系統(tǒng)的Web服務(wù)相互集成。這樣就大大地節(jié)省了重新編寫代碼的時(shí)間和成本。
(3)查詢高效。Web Services是一種建立、維護(hù)、管理ERP系統(tǒng)和業(yè)務(wù)流程的方法論。本文利用了面向服務(wù)的體系架構(gòu)的粗粒度、松耦合、可重用的服務(wù)及服務(wù)接口標(biāo)準(zhǔn)化等特點(diǎn),將ERP系統(tǒng)設(shè)計(jì)開發(fā)成為了一個(gè)更迅速、更可靠、更具重用性架構(gòu)的業(yè)務(wù)系統(tǒng),它將會給企業(yè)帶來巨大的效益,也會促使企業(yè)健康可持續(xù)的發(fā)展。
[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,F(xiàn)rancis.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).
如果您想發(fā)表對本文的看法,請將文章編號填入讀者意見調(diào)查表中的相應(yīng)位置。
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高技術(shù)研究發(fā)展計(jì)劃資助項(xiàng)目(863-511-910-403)
蔡宗琰,男,1964年生,教授,博士生導(dǎo)師,工學(xué)博士,主要研究方向?yàn)橛?jì)算機(jī)集成制造系統(tǒng)、智能機(jī)器人、制造執(zhí)行系統(tǒng)和可重構(gòu)制造系統(tǒng)等。
p
2009-09-04)
10716