[摘要] 本文提出一種在開(kāi)放式環(huán)境下,用Web服務(wù)技術(shù)來(lái)實(shí)現(xiàn)適用于現(xiàn)代物流企業(yè)管理的分布式信息系統(tǒng),并結(jié)合實(shí)例說(shuō)明了其部分功能的實(shí)現(xiàn)方法和調(diào)用過(guò)程。該方案很好地滿足了現(xiàn)代物流企業(yè)業(yè)務(wù)分散處理的需求,提高了大型物流企業(yè)組建企業(yè)信息系統(tǒng)的效率和質(zhì)量。
[關(guān)鍵詞] Web服務(wù) 物流信息系統(tǒng) 分布式
一、引言
現(xiàn)代物流管理是不同于運(yùn)輸和物資管理等學(xué)科的新興學(xué)科,是關(guān)于運(yùn)輸、倉(cāng)儲(chǔ)、裝卸、搬運(yùn)、包裝、配送、流通加工、物流信息等環(huán)節(jié)的綜合化、一體化,是一套全新的理論方法體系。隨著計(jì)算機(jī)及網(wǎng)絡(luò)技術(shù)的不斷發(fā)展使現(xiàn)代物流信息化已經(jīng)成為我國(guó)經(jīng)濟(jì)發(fā)展的新熱點(diǎn)。隨著物流信息化的不斷深入,現(xiàn)代物流企業(yè)使用的軟件及擁有的內(nèi)部系統(tǒng)也越來(lái)越繁雜,如在線查詢系統(tǒng)、電子辦公系統(tǒng)、財(cái)務(wù)管理等。這些系統(tǒng)之間相互交叉,有著大量重復(fù)的信息和數(shù)據(jù),但相互之間卻不能進(jìn)行暢通的信息交流與共享。另外,企業(yè)之間的合作要求日益加劇,然而不同的企業(yè)往往擁有著異構(gòu)的信息系統(tǒng),導(dǎo)致企業(yè)間信息的交互和系統(tǒng)間的相互操作非常困難,從而出現(xiàn)了企業(yè)間電子商務(wù)發(fā)展的瓶頸。通過(guò)使用Web服務(wù),現(xiàn)代物流企業(yè)能夠以前所未有的方式通過(guò)抽象和混合將自身的信息和事務(wù)組件化,很好地解決了系統(tǒng)集成問(wèn)題,規(guī)范了現(xiàn)代物流企業(yè)內(nèi)部的信息編碼,整合了各種應(yīng)用系統(tǒng)中的數(shù)據(jù)。
二、引入Web服務(wù)的意義
我們知道,Web服務(wù)是用以支持聯(lián)網(wǎng)協(xié)同計(jì)算機(jī)進(jìn)行交互的軟件系統(tǒng),具有聯(lián)網(wǎng)計(jì)算機(jī)可以處理的格式化接口(通常WSDL)。其他系統(tǒng)按照規(guī)定方式以SOAP消息與Web服務(wù)進(jìn)行交互,典型的是使用XML通過(guò)HTTP與其他Web相關(guān)標(biāo)準(zhǔn)相連。
Web服務(wù)正是被設(shè)計(jì)和用來(lái)促進(jìn)跨平臺(tái)的程序?qū)Τ绦蛲ㄐ?。它能夠?yàn)楝F(xiàn)代物流企業(yè)提供適應(yīng)于Internet的應(yīng)用。新架構(gòu)下現(xiàn)代物流信息系統(tǒng)可以為異構(gòu)系統(tǒng)提供服務(wù),提高系統(tǒng)可擴(kuò)展性,解決傳統(tǒng)物流信息系統(tǒng)的功能缺陷,將企業(yè)的資源管理擴(kuò)展至整個(gè)Internet。
三、系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
1.現(xiàn)代物流信息系統(tǒng)架構(gòu)
如圖1所示,基于Web服務(wù)的現(xiàn)代物流信息系統(tǒng)包括以下組成部分:
(1)基本物流信息系統(tǒng)。用戶可以直接使用的軟件系統(tǒng)。該系統(tǒng)由B/S和C/S架構(gòu)實(shí)現(xiàn),以B/S為主,運(yùn)行在大型物流企業(yè)的LAN或VPN上,其安全等網(wǎng)絡(luò)性能由企業(yè)網(wǎng)管負(fù)責(zé)維護(hù)。
(2)Web服務(wù)提供層。它是整個(gè)現(xiàn)代物流信息系統(tǒng)的基礎(chǔ)和核心,實(shí)現(xiàn)為企業(yè)用戶提供個(gè)性化服務(wù)所涉及的所有服務(wù)。一旦所有與業(yè)務(wù)邏輯有關(guān)的對(duì)象都在數(shù)據(jù)庫(kù)和業(yè)務(wù)邏輯層中正確地創(chuàng)建,Web服務(wù)就可以通過(guò)各種方式訪問(wèn)這些業(yè)務(wù)邏輯,從而使得分布式應(yīng)用程序可以透明地訪問(wèn)業(yè)務(wù)邏輯,為各個(gè)同構(gòu)或異構(gòu)的系統(tǒng)進(jìn)行交互,并為授權(quán)的系統(tǒng)提供服務(wù)。
(3)UDDI(統(tǒng)一描述發(fā)現(xiàn)和集成)注冊(cè)中心。很多Web服務(wù)需要發(fā)布到Internet上才能為用戶所獲取和使用。UDDI注冊(cè)中心接受Web服務(wù)的發(fā)布申請(qǐng),并接受使用者的查詢。
(4)用戶認(rèn)證模塊。它是Web服務(wù)安全保障的基礎(chǔ)。通過(guò)數(shù)字證書加密的HTTPS訪問(wèn)和相關(guān)算法機(jī)制可以確?;赪eb的系統(tǒng)足夠安全。
(5)請(qǐng)求響應(yīng)代理。該模塊負(fù)責(zé)交互通信的雙向轉(zhuǎn)換,一邊是從HTTP/HTTPS請(qǐng)求中提取Web服務(wù)的SOAP消息,將其轉(zhuǎn)換為遠(yuǎn)程過(guò)程調(diào)用(RPC)效用并執(zhí)行它;一邊是將RPC調(diào)用轉(zhuǎn)換為符合WSDL文件描述的響應(yīng)SOAP消息,并將這個(gè)消息包裝成HTTP/HTTPS響應(yīng)。
2.數(shù)據(jù)表示層設(shè)計(jì)實(shí)現(xiàn)
數(shù)據(jù)表示層解決的是數(shù)據(jù)的表示方式的問(wèn)題,也就是通常的O-RMap的問(wèn)題。O-RMap通常的做法是將程序中的類映射到數(shù)據(jù)庫(kù)的一個(gè)或多個(gè)表上。在數(shù)據(jù)實(shí)體的表現(xiàn)上采用了DataSet,DataSet是微軟在ADO.NET中新提出的數(shù)據(jù)對(duì)象,同ADO的Recordset不同的是,它能夠容納多個(gè)記錄集。DataSet類似于一個(gè)內(nèi)存數(shù)據(jù)庫(kù),由多個(gè)DataTable組成,而一個(gè)DataTable又有多個(gè)Column。這樣的結(jié)構(gòu),使得它可以同數(shù)據(jù)庫(kù)很好地進(jìn)行映射。
因此,在具體開(kāi)發(fā)過(guò)程中我們進(jìn)行了如下處理:
(1)核心類庫(kù)定義一個(gè)EntityData類,這個(gè)類繼承了DataSet,并添加了新的方法,用來(lái)作為所有實(shí)體類的框架類,定義各個(gè)實(shí)體類的一般結(jié)構(gòu),至于每個(gè)實(shí)體類具體的結(jié)構(gòu),在運(yùn)行時(shí)刻確定。
(2)實(shí)體類的定義通過(guò)XML文件來(lái)確定,用于確定實(shí)體類的結(jié)構(gòu)。
(3)實(shí)體對(duì)象的結(jié)構(gòu)由一系列的類構(gòu)造器在運(yùn)行時(shí)刻,根據(jù)上述規(guī)范制定的XML來(lái)自動(dòng)生成。
在實(shí)際的系統(tǒng)中,數(shù)據(jù)表示層采用這種設(shè)計(jì)模式具有以下優(yōu)點(diǎn):
(1)實(shí)體類定義XML文件可以通過(guò)工具來(lái)自動(dòng)生成,顯著減輕了開(kāi)發(fā)工作量。
(2)在執(zhí)行查詢操作時(shí),不論是返回一個(gè)實(shí)體,還是多個(gè)實(shí)體,數(shù)據(jù)的表現(xiàn)方式都一樣,都是EntityData,而不存在單個(gè)對(duì)象和數(shù)據(jù)集的表現(xiàn)方式不統(tǒng)一的問(wèn)題。在修改實(shí)體類的定義時(shí),如果修改的部分不涉及到業(yè)務(wù)邏輯的處理,只需要修改XML文件就可以了,不用修改其他程序和重新編譯。
3.Web服務(wù)的發(fā)布和調(diào)用
企業(yè)及其成員根據(jù)功能需要開(kāi)發(fā)并完成Web服務(wù)的部署后,要將其統(tǒng)一注冊(cè)到企業(yè)UDDI注冊(cè)中心,注冊(cè)內(nèi)容包括Web服務(wù)的訪問(wèn)入口描述和他的WSDL文檔的訪問(wèn)信息。
下面以普通物流服務(wù)中查詢貨物移交任務(wù)列表為例來(lái)簡(jiǎn)單說(shuō)明Web服務(wù)的調(diào)用(如圖2所示),前提是該Web服務(wù)已經(jīng)在物流企業(yè)UDDI中心注冊(cè)。
當(dāng)某用戶訪問(wèn)企業(yè)信息系統(tǒng)并遞交查詢貨物移交任務(wù)的請(qǐng)求后,企業(yè)應(yīng)用服務(wù)器經(jīng)查詢UDDI注冊(cè)中心獲得符合需求的Web服務(wù)的訪問(wèn)位置和綁定信息;此時(shí),應(yīng)用服務(wù)器通過(guò)一個(gè)Web服務(wù)的SOAP代理類來(lái)訪問(wèn)該Web服務(wù),這個(gè)代理類根據(jù)查到的WSDL文檔生成對(duì)應(yīng)的代理對(duì)象;代理類把客戶的請(qǐng)求組成SOAP消息并向Web服務(wù)發(fā)送,該服務(wù)接到請(qǐng)求后調(diào)用GetList方法,依上述服務(wù)器端代碼所示依次通過(guò)數(shù)據(jù)庫(kù)連接connection和數(shù)據(jù)適配器adapter的Fill方法打開(kāi)貨物移交列表Goods_Transfer并進(jìn)行查詢,最后把結(jié)果加載到數(shù)據(jù)集DataSet中返回;企業(yè)服務(wù)器獲取結(jié)果數(shù)據(jù)集后通過(guò)GridBind操作綁定到相應(yīng)控件上并將最終結(jié)果顯示給用戶。
這里,企業(yè)應(yīng)用服務(wù)器扮演了服務(wù)請(qǐng)求者的角色,而企業(yè)內(nèi)部Web服務(wù)和其他原有實(shí)體系統(tǒng)統(tǒng)一在Web服務(wù)提供層中扮演了服務(wù)提供者的角色,其中,若是原有的實(shí)體系統(tǒng),首先需要將其封裝成WebService組件。
四、結(jié)論
為了實(shí)現(xiàn)現(xiàn)代物流企業(yè)的分布式應(yīng)用系統(tǒng),采用基于Web服務(wù)技術(shù)的分布式解決方案,其核心是實(shí)現(xiàn)與發(fā)布面向業(yè)務(wù)邏輯的Web服務(wù),使Web服務(wù)的實(shí)現(xiàn)細(xì)節(jié)對(duì)用戶透明化,充分利用開(kāi)放的網(wǎng)絡(luò)環(huán)境,大大減輕建立和部署分布式企業(yè)業(yè)務(wù)應(yīng)用系統(tǒng)的工作量,使專業(yè)開(kāi)發(fā)人員把精力集中在業(yè)務(wù)邏輯應(yīng)用的開(kāi)發(fā)上,從而提高軟件開(kāi)發(fā)的效率和質(zhì)量。在提高系統(tǒng)通信保密控制方面,可考慮通過(guò)在數(shù)字證書保證下的加密傳輸,用戶的認(rèn)證和授權(quán)以及用戶和Web服務(wù)端間的數(shù)據(jù)完整性和機(jī)密性進(jìn)行確保。總之,我們有理由相信Web服務(wù)有著美好的發(fā)展前景,在跨平臺(tái)數(shù)據(jù)共享的設(shè)計(jì)和開(kāi)發(fā)中將發(fā)揮越來(lái)越重要的作用。
參考文獻(xiàn):
[1]李會(huì)太:現(xiàn)代物流管理的八大核心思想[J].企業(yè)管理 , 2007,(03)
[2]陳傳波張道杰李濤:基于Web服務(wù)的企業(yè)應(yīng)用集成模型研究[J].計(jì)算機(jī)工程與科學(xué), 2004,(12)