摘 要:Web服務為第三方物流的動態電子商務業務流程提供了一致的信息交換與集成框架,從而支持著企業交易伙伴之間更為復雜的Web交互與商務協作。為了闡述基于J2EE的Web服務動態集成化第三方物流解決方案,首先在闡述了Web服務集成概念與理論的基礎上,以物流訂單處理的過程為例,研究了基于Web 服務的第三方物流業務集成方法。
關鍵詞:J2EE;Web服務;動態電子商務;第三方物流
中圖法分類號:TP391文獻標識碼:A
文章編號:1001—3695(2007)02—0233—05
隨著Web技術的不斷完善,電子商務與供應鏈的動態特性更加明顯,它要求企業進行內部應用集成 (Enterprise Application Integration,EAI)與外部應用集成 (B2B Integration,B2Bi)。其中企業內部應用集成EAI包括創建企業門戶(Portal)、客戶關系管理(Customer Relationship Management)、企業內聯網的應用合并等;企業外部應用集成B2Bi包括供應鏈管理 (Supply Chain Management)、行業交易市場(e-Marketplace)等。而第三方物流解決方案正是在上述背景下產生與發展的[1]。所謂第三方物流,它是物流專業化的一種運作與管理方式。生產經營企業將物流活動以合同方式委托給專業物流服務企業承擔,從事第三方物流的企業專門提供商品運輸、儲存配送、物流活動組織、協調和管理、設計最優物流方案等服務。這種專業化服務的核心思想是利用第三方物流的理念整合物流資源,因此集成性成為現代物流的一個重要特征。而Web服務為第三方物流的動態整合設計與實現提供了思路。
如今,Web服務(Web Services)已經成為構造分布式、模塊化應用程序核心整合技術的發展趨勢,這樣,第三方物流企業就可以通過Web服務構建松散耦合的集成應用以重建他們的業務流程。IBM將基于Web服務的電子商務稱為動態的電子商務,因為,它將改變企業之間的商務運作和企業對企業(B2B)應用的設計與開發,并將使供應商、第三方物流公司與客戶之間的動態集成成為可能。
目前,Microsoft .NET與Sun J2EE(Java 2 Platform, Enterprise Edition)是企業Web服務平臺市場上兩個最重要的應用框架。相對而言,基于J2EE的Web服務實現架構更適合構建大型的電子商務應用,具有高度的可擴展性、可靠性與開放性。本文以SUN ONE和IBM的技術與開發工具為例,探討動態第三方物流的整合設計與實現。
1 基于J2EE的Web 服務技術架構
隨著網絡技術的發展,特別是XML技術的出現,使得Web服務技術成為下一代Internet技術發展的趨勢。作為一種新型的Web應用程序,Web服務提供了動態的服務發現,支持了協同產品服務、Just-in-time信息共享與面向消息的協作,以同步請求/應答方式或異步方式來執行并實現企業間無縫、透明的集成。它包括三個角色,即服務提供者(Service Provider)和服務請求者(Service Requestor)、服務注冊器(Service Registry)。各個角色間有三種操作,即發布(Publish)、查找(Find)與綁定(Bind)。這三種操作均通過Web 服務協議棧實現[2]。
協議棧中的統一描述、發現和集成協議UDDI(Universal Description, Discovery and Integration)是為Web 服務提供信息注冊中心的標準規范,它定義了Web服務的發布與發現的方法。UDDI的核心模型使用XML Schema來定義四種信息類型以支持發布注冊服務與服務發現來實現第三方物流企業共享商業實體的所有信息:①商業實體信息模型; ②服務信息描述;③綁定信息;④描述技術規范、分類或標志。
協議棧中的Web服務描述語言(Web Services Description Language,WSDL)通過一種基于IDL技術的服務描述語言將Web服務描述為能夠進行消息交換的服務訪問點的集合,從而為分布式系統提供了可為機器識別的SDK文檔,并且可用于描述執行應用程序通信中所涉及的細節。在第三方物流的集成環境下,WSDL將Web 服務描述為一組服務訪問點,客戶端可通過這些服務訪問點對包含面向文檔信息或面向過程調用的服務進行訪問。
協議棧中的簡單對象訪問協議(Simple Object Access Protocol,SOAP)的消息路徑機制與可擴充的Header和Body機制為分布式計算提供了很好的支持。對于第三方物流的B2B電子商務過程,SOAP 給予了很好的支持:①SOAP使用XML來描述數據,而XML是表達數據的標準方式的通常選擇;②SOAP使用現有基于TCP/IP的應用層協議HTTP,SMTP,POP3等,可以獲得最大限度的兼容性與安全性;③SOAP的消息路徑機制與可擴充的Header和Body機制為分布式計算提供了很好的支持;④SOAP能夠支持許多通信行為,包括請求/響應(Request/Response)、單路異步消息與簡單信息(Notification)。
在Sun公司所帶領的諸多廠商的努力之下,J2EE 已經被擴充成可支持XML Web 服務的標準[3]。通常,典型的基于J2EE的Web 服務是由多層技術架構來實現的(圖1)。
在J2EE提供的總框架中,Web Services for J2EE定義了客戶端模型、服務端模型、部署模型、WSDL綁定和安全相關規范。基于J2EE的Web 服務多層架構通過構建Web站點上的可重用構件,將應用系統分割成高內聚、弱耦合的多個服務,應用程序在被編譯時無須知道對方,通過查找服務動態發現應用程序,在快速變化、面向服務的商業環境下便可實現企業之間的松散集成[4]。
2 動態第三方物流的實例設計與實現
2.1 動態第三方物流實例的設計
第三方物流服務商協同化的內容應保持三個層次:①第三方物流服務商與外部企業的協同,具體包括本企業與客戶的戰略聯盟、本企業與合作伙伴的戰略聯盟等;②第三方物流服務商內部實時物流系統與其他經營管理系統的協同,如物流系統與營銷系統、客戶系統、財務系統以及人事系統的協同等;③第三方物流服務商實時物流系統內部各功能環節的協同,如運輸要素與儲存要素的協同、裝卸要素與包裝要素的協同、流通加工要素與包裝要素的協同等。
為了實現上述第三方物流的系統整合與協同,需要在第三方物流動態整合過程中實現不同計算平臺與異構程序之間的重用。基于XML的技術與標準,Web服務能夠突破各種各樣防火墻的障礙,從而為電子商務與供應鏈在Internet上的相關商務活動提供了有效的集成方案,并保證了一致可靠的信息交換,支持交易伙伴間更為復雜的Web交互與商務協同。由于電子商務環境下第三方物流的動態性,Web服務的提供者也在不斷變化,而且每種類型的成員提供的Web服務由信息協調中心統一定義服務接口,所以服務請求者采用開發時的動態鏈接方式,動態獲得Web服務提供者,然后逐一進行服務調用。整個調用流程與方法如下:
(1) 作為服務提供者的第三方物流企業,根據WSDL文檔開發出應用程序,調用自身的信息系統實現相應的功能,并登記發布,使其可以被其他應用所訪問、接收及處理Web服務請求者的調用。
(2) 作為服務請求者的電子商務企業,根據自身企業的需要,通過電子商務應用提供的接口(Web服務),獲得它們所需的Web服務地址。
(3) 作為服務請求者的電子商務企業,根據返回的查詢結構,綁定和調用第三方物流服務提供者的Web服務。
(4) 作為第三方物流服務提供者的電子商務企業,接到Web服務的請求時,將結果返回給服務請求者。
在第三方物流集成系統的調用流程中重復執行的活動序列通常被定義成一個獨立的過程模型。一個第三方物流商務過程是指一套以特定的順序被調用來實現某個物流目標的商務活動流。商務過程定義了流的順序,如何處理外部事件,如何與人交互和條件判斷。通常,一個第三方物流商務過程主要是由三個部分構成:
(1)過程參與者(第三方物流機構模型)
商務伙伴——具有某種商務角色的服務提供者。在這里,我們將商務過程中所有的服務提供者均稱作商務伙伴,如企業內部的第三方物流系統、企業外部供應商系統等。商務過程與服務提供者的交互采用標準接口。
(2)活動和服務(第三方物流服務模型)
商務服務——商務過程的每個活動節點都對應一個服務執行。這些服務可以是第三方物流企業內部的J2EE服務或數據庫訪問服務,也可以是供應鏈企業的商務伙伴提供的外部應用服務。
(3)過程數據(第三方物流信息模型)
消息——第三方物流服務之間交互的請求/響應消息。
商務實體和對象——定義消息成員的類型,包含數據的組成與處理方法。
在第三方物流的管理過程中,機構模型、服務模型和信息模型結合在一起,就構成了過程模型(即第三方物流組合模型)。通常每個過程模型由多個重要的信息片段組成,它一方面需要描述第三方物流在供應鏈中所處的角色特征,如該第三方物流企業是服務的提供者還是服務的請求者;另一方面需要描述第三方物流商務運作過程的定義、條件以及執行等,如業務過程的外部接口以及每個活動的定義,商務過程啟動的條件(稱為Flowsource),以及在過程執行進入下一個步驟時每個活動與過程自身的各種推出和啟動條件。面向第三方物流管理的過程模型通過Web服務的設計來具體實現,通常包括UDDI的設計、WSDL服務接口設計以及SOAP消息的設計。
第三方物流企業機構模型不僅要實現跨企業的Web服務信息交互與協作,而且還要實現企業內部的信息集成。其核心技術通過UDDI來實現,第三方物流企業可以構建一個私有的UDDI商業注冊,其他聯盟成員企業通過在UDDI中注冊自己的功能來完成虛擬企業的構建。第三方物流企業與其他的企業的交互可以通過外部UDDI來實現。在這個動態虛擬企業模型中,任何企業均可將自己提供的應用以Web服務的方式注冊在UDDI中,UDDI實際上就是一個虛擬企業集市,這樣,第三方物流企業可以動態發現、選擇相應的盟員企業,根據WSDL對服務的描述,直接與相應的Web服務進行互操作。一個典型的基于Web服務的第三方物流集成系統如圖2所示。
第三方物流集成系統支持電子商務環境的綜合管理信息系統。在系統內部,UDDI 注冊中心包含了通過程序手段可以訪問到的對企業和企業支持的服務所作的描述。此外,還包含對 Web 服務所支持的因行業而異的規范、分類法定義(用于對于企業和服務很重要的類別)以及標志系統(用于對于企業很重要的標志)的引用。通常第三方物流企業的內部UDDI有五種類型,即電子商務市場UDDI、入口UDDI、伙伴目錄UDDI、企業內部應用集成UDDI及測試臺UDDI。內部UDDI中心的建立為第三方物流企業應用集成提供了信息共享的方式,而外部UDDI中心實現了潛在企業之間動態的查找 (圖3、圖4)。
第三方物流企業服務模型(接口設計)的描述通過WSDL來實現。在典型的集成化供應鏈的交互與協作中,需要用WSDL將第三方物流集成系統的交互協作描述為一組服務訪問點,企業可以通過這些服務訪問點對包含面向文檔信息或面向過程調用的服務進行訪問(表1)。除此以外,接口也定義了Web服務與網絡傳輸通信協議(通常是HTTP)的結合方式,它是一份包含Web服務描述信息的XML文檔,包括訪問和使用一個Web服務所需要的全部信息。
面向第三方物流管理的過程模型的集成過程由多個復雜的活動節點構成。這些活動節點相互關聯構成了供應鏈的業務過程。因此,業務過程的支持需要將具體的交互行為定義成多個活動:
第三方物流信息模型(交互與協作)的封裝與實現通過SOAP消息來實現,其設計與構造通過SOAP進行定義。事實上,企業之間的任何一個遠程過程調用均可封裝在一個SOAP調用中,這包括了實際DCE的RPC調用、COM/DCOM調用、CORBA調用和Java調用等。
2.2 面向第三方物流的Web 服務實現
第三方物流的管理內容包括物流訂單處理、在制品或原材料存儲、貨物運輸、產品庫存、客戶服務等。現以第三方物流跨企業的訂單處理、配送服務為例,闡述動態電子商務的設計與實現。在該實例中,企業層次上包括購買、銷售的訂單處理與運輸、配送處理的業務流程。在此方案中主要有三方參與者,即購買企業(客戶)、銷售企業與第三方物流公司(3PL)[5]。圖5描述了電子商務企業之間訂單處理業務的實現流程。
在圖5中,銷售企業通過網絡接收客戶的訂單,并且客戶的商品由第三方物流公司來運輸與配送。為了將訂單商品交到客戶手中,銷售企業必須根據實際情況動態地向第三方物流公司提交運輸與配送請求。首先,客戶通過Web瀏覽器輸入訂單,由生產企業內部系統處理訂單,確認訂單后,系統搜索第三方物流公司并發出運輸請求。由運輸公司訪問后臺系統處理請求并將配送信息返回給銷售企業,將確認配送消息返回給購買企業后,銷售企業應用程序調用另一個JSP向客戶顯示結果。
訂單處理是企業工作流處理的核心業務,在訂單的處理過程中需要運用Web服務執行從簡單請求到復雜商務邏輯處理的多種功能。通常第三方物流企業的訂單處理需要多個模塊的協調與交互,并通過大量SOAP消息的傳遞與交換實現訂單信息交流和共享。第三方物流訂單請求的業務處理可以通過Web服務向客戶提供多種公開的細粒度的Web 服務。Order Service(訂單處理服務)需要處理物流企業中的訂單提交、處理、接收、確認等操作。具體來說,對于第三方物流配送服務來說,銷售企業是Web服務的請求者,第三方物流公司是Web服務的服務提供者。為了動態發現物流配送服務并在應用系統中訪問服務,銷售企業需要完成如下過程:①發現并下載服務描述文件(WSDL);②生成Java 代理并調用代理方法訪問服務;③等待得到第三方物流公司的確認消息后,以JSP或E-mail等形式向消費者確認送貨情況的相關信息。
請求配送Web服務需要封裝客戶信息并查詢本公司的相應信息生成XML請求消息,然后向第三方物流公司發出SOAP請求。核心代碼如下(以IBM提供的SQLToXML工具包為例):
為了提供訂單的運輸和配送處理業務,第三方物流公司需要集成內部ERP系統或訪問其他的Legacy系統,并且生成、發布Web服務。第三方物流公司需要實現的過程如下:①獲取交易元數據,即輸入與輸出的記錄定義;②通過異步消息模式執行Legacy系統交易;③定義服務接口、創建無狀態會話EJB為Web服務;④建立WSDL文件,產生運輸和配送服務描述;⑤在Web服務器上部署Web服務;⑥將Web服務發布到UDDI。
第三方物流公司提供的訂單服務定義并實現了用于Web服務的請求和響應的數據結構、Web接口提供的方法以及SOAP屬性。圖6描述了第三方物流公司提供的訂單響應與物流配送服務。
在圖6中,WorkOrderManager是WSDL所描述的Web服務。其主要功能是接收銷售企業的訂單,并請求WorkOrderBean執行訂單數據的處理,若成功則由ResponeBean對銷售企業進行回復。為了提供訂單的配送處理業務,第三方物流公司需要集成內部ERP系統或訪問其他的Legacy系統,并且生成、發布Web服務。第三方物流公司需要實現的過程如下:①獲取交易元數據,即輸入與輸出的記錄定義;②通過J2EE資源適配器執行Legacy系統交易;③定義、創建會話EJB為Web服務;④建立WSDL文件,產生配送服務描述;⑤在Web服務器上部署Web服務;⑥將Web服務發布到UDDI。
第三方物流公司可使用WSDL(Web服務描述語言)定義訂單響應與配送服務,也可使用Java接口定義該Web服務,同時需要定義出Web服務的端點接口(Endpoint Interface),服務端點接口是一個由JAX-RPC規范指定的Java接口,這個接口必須擴展javax.rmi.Remote接口。服務接口定義如下:
本實例中第三方物流公司使用無狀態會話Bean作為服務端點實現Web服務。業務邏輯具體實現后,需要在EJB部署描述符中指定EJB組件的服務端點接口。使用無狀態會話Bean作為編寫與組件相關的部署描述服務端點,可以不開發HOME接口和Remote(Locale)接口,只需指定服務端點接口。組件相關的部署描述符如下:
最后的任務是服務端(第三方物流公司)在J2EE平臺中部署Web服務、創建可以部署的包,并通過JAXR編程發布Web服務,將Web服務綁定到注冊中心(Service Registry)。 客戶端(銷售企業)可通過UDDI來發現Web服務,也可將Web服務綁定到服務器的JNDI名稱空間中,然后在JNDI名稱空間中查找這個服務,進一步調用訂單處理服務,從而實現了動態電子商務跨企業的信息集成。
3 結束語
如今,動態第三方物流行業應用模式及專業解決方案已成為研究熱點。而采用J2EE和Web服務等技術與標準,研究異構、分布式的信息集成方法并實現基于知識的信息集成系統以支持決策,將為第三方物流企業建立開放的、統一的數據管理機制,從而實現數據、信息以及知識層次上的智能集成,構造了一個企業資源不斷集成、流程不斷優化、知識不斷提煉的共享的第三方物流智能化集成系統 [6]。
本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。