引言
供應(yīng)鏈(Supply Chain)上下游企業(yè)之間的協(xié)同能力成為衡量企業(yè)競爭力的重要指標,企業(yè)要降低成本、贏得客戶,必須對客戶訂單做出快速響應(yīng)(Quick Response,QR)。快速響應(yīng)機制是以可靠、開放、柔性的系統(tǒng)集成為基礎(chǔ)的,通過快速響應(yīng)集成系統(tǒng)完成信息的及時交換和共享,企業(yè)以最快的速度接受客戶采購請求、及時向供應(yīng)商采購?fù)瓿煽蛻粲唵紊a(chǎn)所需要的原料、及時將生成完成的產(chǎn)品交到客戶手中。在采用面向服務(wù)架構(gòu)(Service Oriented Architecture,SOA)的系統(tǒng)集成方式之前,有CORBA、DCOM、COM+、RMI,都是用來實行分布式架構(gòu)的技術(shù),而且也被證明是不同技術(shù)階段的可行的系統(tǒng)集成方法。但是這些系統(tǒng)有一個共同的缺陷,就是它們要求服務(wù)客戶端與系統(tǒng)提供的服務(wù)本身之間必須進行緊耦合,即要求一個同類基本結(jié)構(gòu)。這樣降低了系統(tǒng)的可擴展性和可維護性,系統(tǒng)往往十分脆弱,如果一端的執(zhí)行機制發(fā)生變化,那么另一端便會無法正常運行。這樣的系統(tǒng)集成方法難以適應(yīng)供應(yīng)鏈快速響應(yīng)對信息交換和共享的及時性要求。
SOA是一種軟件系統(tǒng)架構(gòu)和軟件設(shè)計模式,而企業(yè)服務(wù)總線(Enterprise Service Bus,ESB)是實現(xiàn)這種架構(gòu)的一種具體方法。Web服務(wù)是實現(xiàn)基于SOA的ESB集成方法的核心,它基于XML、SOAP、WSDL和UDDI等協(xié)議。Web服務(wù)技術(shù)是一個嶄新的分布式計算模型,是Web數(shù)據(jù)和信息集成的有效機制。基于SOA的ESB集成系統(tǒng)的基本單元是服務(wù),這些服務(wù)是可互操作的、獨立的、模塊化的、位置明確的、松耦合的,并且可以通過網(wǎng)絡(luò)查找其地址。服務(wù)間通過消息互相調(diào)用,通過服務(wù)協(xié)調(diào),完成一定的業(yè)務(wù)處理,服務(wù)請求者無須知道服務(wù)提供者的技術(shù)細節(jié)。SOA強調(diào)通過清晰的系統(tǒng)結(jié)構(gòu)層次,使系統(tǒng)具有良好的通用性和可維護性。SOA從軟件體系結(jié)構(gòu)的角度出發(fā)改造企業(yè)的原有系統(tǒng)或設(shè)計新的應(yīng)用系統(tǒng),從而支持動態(tài)實現(xiàn)將來未知的企業(yè)應(yīng)用集成。
ESB為SOA系統(tǒng)提供了一個核心架構(gòu),以集中管理各種服務(wù)。ESB是SOA、Web service、XML等技術(shù)相結(jié)合的產(chǎn)物,是一種分布式的集成框架,是SOA架構(gòu)概念的具體實現(xiàn)。ESB定義通常如下:它是由中間件技術(shù)實現(xiàn)并支持的面向服務(wù)架構(gòu)的一組基礎(chǔ)架構(gòu)功能,支持異構(gòu)環(huán)境中的服務(wù)、消息以及基于事件的交互,并且具有適當(dāng)?shù)姆?wù)級別和可管理性。一個ESB提供下述的能力:1)SOA的體系結(jié)構(gòu);2)采用面向消息的交互方式和XML作為消息表示與轉(zhuǎn)換的標準。
ESB是一種新的集成方法,支持企業(yè)應(yīng)用間面向服務(wù)的交互,就像PC中硬件的總線,ESB智能地在企業(yè)系統(tǒng)間路由數(shù)據(jù)流,配合和轉(zhuǎn)換各個系統(tǒng)需要的數(shù)據(jù)信息。ESB作為SOA架構(gòu)的數(shù)據(jù)交換HUB,同時為SOA提供一種連通性基礎(chǔ)架構(gòu),用以連接SOA中的服務(wù)。這種模式有助于減少應(yīng)用接口數(shù)量和復(fù)雜性,是解決企業(yè)之間異構(gòu)系統(tǒng)集成,實現(xiàn)準確高效的信息交換的有效方法。本文探討應(yīng)用基于SOA的ESB系統(tǒng)集成方法來建立一種新型的供應(yīng)鏈快速響應(yīng)集成系統(tǒng)。
1 供應(yīng)鏈快速響應(yīng)系統(tǒng)集成條件
供應(yīng)鏈快速響應(yīng)系統(tǒng)涉及上游供應(yīng)商、下游銷售商及第三方物流公司,這些合作伙伴的信息系統(tǒng)、單證及數(shù)據(jù)交換格式都不相同,使用傳統(tǒng)系統(tǒng)集成方式大大增加了系統(tǒng)集成的成本和復(fù)雜性。為適應(yīng)激烈市場競爭需要,企業(yè)需要引入新的合作伙伴,淘汰不能滿足服務(wù)要求的合作方,企業(yè)供應(yīng)鏈始終處于一個動態(tài)重組的狀態(tài)。新合作伙伴的加入,意味著需要協(xié)同新的業(yè)務(wù)流程、集成新的信息系統(tǒng)、處理新的格式數(shù)據(jù)。企業(yè)間業(yè)務(wù)流程協(xié)同,需要有一個開放、松散耦合的信息集成系統(tǒng)來支持。
為此,供應(yīng)鏈快速響應(yīng)集成系統(tǒng)應(yīng)至少滿足如下條件:
1)支持不同格式數(shù)據(jù)的統(tǒng)一交換,實現(xiàn)異構(gòu)系統(tǒng)間的集成;
2)盡可能減少對參與供應(yīng)鏈快速響應(yīng)集成系統(tǒng)數(shù)據(jù)交換的原有系統(tǒng)的修改;
3)保持供應(yīng)鏈快速響應(yīng)集成系統(tǒng)的柔性和可擴展性;
4)節(jié)省企業(yè)IT方面的投資。
2 基于SOA的ESB模式的系統(tǒng)集成設(shè)計
2.1 基于SOA的ESB模式的系統(tǒng)集成架構(gòu)
SOA擺脫了面向技術(shù)的解決方案,朝著面向服務(wù)的方向發(fā)展。與其他架構(gòu)相比,SOA更有彈性,使得企業(yè)能夠?qū)ψ兓龀隹焖夙憫?yīng),并且利用變化來獲得優(yōu)勢,SOA為動態(tài)、異構(gòu)的供應(yīng)鏈快速響應(yīng)系統(tǒng)集成提供了一個理想的構(gòu)架模式。
基于SOA的ESB集成框架定義了一個數(shù)據(jù)適配器完成數(shù)據(jù)轉(zhuǎn)換、消息驅(qū)動服務(wù)的模型。將業(yè)務(wù)處理邏輯封裝成一系列的服務(wù)組件,消息處理器接收系統(tǒng)外發(fā)送來的請求消息,通過注冊中心檢索相應(yīng)的數(shù)據(jù)適配器完成數(shù)據(jù)轉(zhuǎn)換,將轉(zhuǎn)換后的數(shù)據(jù)封裝成一定格式的數(shù)據(jù)消息,調(diào)用服務(wù)組件,完成數(shù)據(jù)處理。
ESB是實現(xiàn)SOA架構(gòu)的重要方法,符合SOA的構(gòu)架特征,包括服務(wù)的提供者、服務(wù)請求者和注冊中心,一般由消息處理層、服務(wù)層、數(shù)據(jù)訪問層、數(shù)據(jù)存儲層等構(gòu)成。本文設(shè)計的基于SOA的ESB模式的供應(yīng)鏈集成系統(tǒng)架構(gòu)如圖1所示。
圖1 基于SOA的ESB模式的系統(tǒng)集成架構(gòu)
在圖1中,該系統(tǒng)主要由以下幾個主要元素構(gòu)成。
1)服務(wù)請求端。外部應(yīng)用、服務(wù)、代理都可能是服務(wù)請求端,服務(wù)請求端發(fā)送基于XML消息規(guī)范的SOAP請求消息到ESB。服務(wù)請求端的請求消息包括從業(yè)務(wù)系統(tǒng)提取的業(yè)務(wù)數(shù)據(jù),如供應(yīng)商的裝箱單信息(最終由服務(wù)提供端的服務(wù)處理成采購商的報關(guān)單),也包括服務(wù)請求端在ESB注冊中心注冊數(shù)據(jù)適配器號、服務(wù)路由等信息。
2)消息處理器。消息規(guī)范采用XML語言來描述消息,消息處理器取出消息隊列中的頭信息,根據(jù)解析出來的頭信息標識,到中心注冊查找相應(yīng)的數(shù)據(jù)處理適配器、數(shù)據(jù)映射關(guān)系表。
3)注冊中心。服務(wù)注冊中心充當(dāng)信息庫,存放著ESB當(dāng)中可用的Web服務(wù)信息、消息路由信息、消息處理配置信息。注冊中心根據(jù)配置信息,調(diào)用相關(guān)的數(shù)據(jù)適配器進行數(shù)據(jù)轉(zhuǎn)換。
4)數(shù)據(jù)適配器。它將從服務(wù)請求端傳遞過來的消息轉(zhuǎn)換成符合ESB中相應(yīng)Web服務(wù)接口標準要求的數(shù)據(jù)。
5)服務(wù)提供端。接收由服務(wù)請求端發(fā)送、由ESB數(shù)據(jù)適配器轉(zhuǎn)換后的數(shù)據(jù),對這些數(shù)據(jù)進行相關(guān)的處理。是由一些互相獨立的、完成邏輯處理的服務(wù)單元構(gòu)成,按服務(wù)請求端事先注冊的服務(wù)路由表順序執(zhí)行相關(guān)服務(wù),并將處理后的數(shù)據(jù)發(fā)送到ESB的數(shù)據(jù)輸出適配器進行數(shù)據(jù)轉(zhuǎn)換處理,以消息的形式反饋給服務(wù)請求端。
2.2 基于SOA的ESB模式的集成系統(tǒng)執(zhí)行機制
采用基于SOA的ESB模式的系統(tǒng)集成方法,可以有效地降低被集成系統(tǒng)之間的耦合程度,具有良好的可擴展性、可復(fù)用性、可維護性。基于SOA的ESB模式的集成系統(tǒng)執(zhí)行過程包括服務(wù)注冊、請求消息發(fā)送、消息解析、數(shù)據(jù)適配器進行數(shù)據(jù)轉(zhuǎn)換和Web服務(wù)處理五個階段組成,各階段執(zhí)行過程如圖2所示。
圖2 基于SOA企業(yè)服務(wù)總線模式的集成系統(tǒng)執(zhí)行機制
圖2中,各階段的執(zhí)行過程描述如下。
1)服務(wù)注冊階段。包括服務(wù)提供端的注冊和服務(wù)請求端的注冊。服務(wù)請求端的注冊包括對ESB數(shù)據(jù)適配器的申請、服務(wù)路由定義及數(shù)據(jù)映射關(guān)系的建立。
2)請求消息發(fā)送。服務(wù)請求端發(fā)送請求消息到服務(wù)提供端,請求端將一個或多個商務(wù)文檔加載到請求消息中,SOAP請求消息是用XML來編碼的。在服務(wù)請求端和服務(wù)提供端之間的消息交互模式有以下幾種:請求/響應(yīng)模式;會話交換模式;異步消息(Asynchronous Message)模式;發(fā)布—訂閱(Rublish/Subscribe)模式。
3)消息解析。ESB接收到請求消息后,消息處理器對接收到的消息進行解析,獲取請求端注冊申請的數(shù)據(jù)適配器標識,根據(jù)標識到注冊中心檢索具體的數(shù)據(jù)適配器。
4)數(shù)據(jù)適配器進行數(shù)據(jù)轉(zhuǎn)換。按照數(shù)據(jù)映射關(guān)系表,數(shù)據(jù)適配器將收到解析后的數(shù)據(jù)轉(zhuǎn)換為符合相應(yīng)Web服務(wù)接口標準要求的數(shù)據(jù)。
5)Web服務(wù)處理。Web服務(wù)接收到經(jīng)過數(shù)據(jù)適配器轉(zhuǎn)換處理的數(shù)據(jù)后,完成業(yè)務(wù)邏輯處理,并輸出相關(guān)處理結(jié)果消息。
3 供應(yīng)鏈快速響應(yīng)集成系統(tǒng)構(gòu)建
供應(yīng)鏈快速響應(yīng)系統(tǒng)涉及采購、運輸、通關(guān)、收貨及對帳等業(yè)務(wù)流程,快速響應(yīng)系統(tǒng)的整體執(zhí)行效率需要各個節(jié)點的執(zhí)行效率來保證。供應(yīng)鏈快速響應(yīng)是建立在及時、高效、準確的信息共享基礎(chǔ)上,通過對上下游異構(gòu)系統(tǒng)的集成,完成信息的交換和共享。
如圖3,基于SOA的供應(yīng)鏈快速響應(yīng)系統(tǒng)集成是通過參與系統(tǒng)集成的雙方互相以消息的形式調(diào)用對方的Web服務(wù),服務(wù)處理完成后,再將含有處理結(jié)果的數(shù)據(jù)以消息的形式反饋給遠程服務(wù)調(diào)用方。
圖3 基于SOA的供應(yīng)鏈快速響應(yīng)集成系統(tǒng)模型
本文以快速通關(guān)為例來說明該集成系統(tǒng):通關(guān)環(huán)節(jié)是供應(yīng)鏈快速響應(yīng)系統(tǒng)的重要一環(huán),很多因素會影響通關(guān)效率,造成原料交付的延誤,如采購商錄入的進口報關(guān)數(shù)據(jù)與供應(yīng)商實際交貨數(shù)據(jù)不一致、第三方物流服務(wù)商提供的相關(guān)數(shù)據(jù)滯后、錄入錯誤等。
為避免進口報關(guān)環(huán)節(jié)的差錯和延誤,采購企業(yè)希望從供應(yīng)商那里獲取原始數(shù)據(jù),如裝箱單數(shù)據(jù)、發(fā)票數(shù)據(jù),將這些數(shù)據(jù)轉(zhuǎn)換為進口報關(guān)數(shù)據(jù),從而提高進口報關(guān)單證的制作效率和數(shù)據(jù)準確性,避免單證錯誤,影響海關(guān)放行。但每家供應(yīng)商的系統(tǒng)不同,單證格式也不一樣,采用傳統(tǒng)的數(shù)據(jù)交換方式,必然造成采購企業(yè)的采購門戶平臺針對不同供應(yīng)商的大量定制開發(fā),隨著新的供應(yīng)商加入,系統(tǒng)最終很難維護,甚至無法正常運行。采用基于SOA的ESB模式的系統(tǒng)集成方式,數(shù)據(jù)適配器可以對供應(yīng)商的數(shù)據(jù)進行預(yù)處理,將不同格式的裝箱單數(shù)據(jù)或發(fā)票數(shù)據(jù)轉(zhuǎn)換為符合進口報關(guān)單EDI報文生成服務(wù)接口標準的XML格式數(shù)據(jù)。
以下是基于SOA的ESB模式的快速通關(guān)集成系統(tǒng)處理流程。
1)供應(yīng)商在平臺上注冊數(shù)據(jù)適配器。按注冊中心向?qū)В鶕?jù)單證類型,注冊相應(yīng)的數(shù)據(jù)適配器,建立數(shù)據(jù)字段的映射關(guān)系,如發(fā)送發(fā)票數(shù)據(jù),注冊Adapt1數(shù)據(jù)適配器;發(fā)送裝箱單數(shù)據(jù),注冊Adapt2數(shù)據(jù)適配器。注冊信息將保存到企業(yè)服務(wù)總線的注冊中心。
2)服務(wù)請求端(供應(yīng)商)發(fā)送含供應(yīng)商代碼、采購訂單號、數(shù)據(jù)適配器注冊編號參數(shù)的消息到采購企業(yè)門戶平臺,消息中以XML格式負載發(fā)票信息或裝箱單信息。
3)采購門戶平臺的服務(wù)總線接收到SOAP消息后,對消息進行解析,獲取請求端注冊的數(shù)據(jù)適配器號、服務(wù)路由及數(shù)據(jù)信息;
4)注冊中心根據(jù)傳遞來的數(shù)據(jù)適配器代碼,檢索相關(guān)注冊信息,如數(shù)據(jù)匹配映射關(guān)系,調(diào)用相應(yīng)數(shù)據(jù)適配器處理數(shù)據(jù)。
5)數(shù)據(jù)適配器處理完數(shù)據(jù)后,將發(fā)票信息(或裝箱單信息)轉(zhuǎn)換為后臺服務(wù)能接受的統(tǒng)一格式化數(shù)據(jù),再調(diào)用進口報關(guān)單EDI報文生成服務(wù),將由數(shù)據(jù)適配器轉(zhuǎn)換成統(tǒng)一格式后的數(shù)據(jù)生成進口報關(guān)單EDI報文。系統(tǒng)處理交互如圖4。
圖4 生成進口報關(guān)單EDI報文的系統(tǒng)交互圖
由于系統(tǒng)框架的開放性、數(shù)據(jù)適配器的可配置性以及數(shù)據(jù)交換標準的統(tǒng)一性,進口企業(yè)可以引用供應(yīng)商發(fā)票、裝箱單或運單等不同單證信息作為進口報關(guān)的數(shù)據(jù)來源,同時支持Excel、TXT、CSV、XML等不同格式文件之間的數(shù)據(jù)轉(zhuǎn)換,基于SOA的ESB方法為快速通關(guān)業(yè)務(wù)中異構(gòu)系統(tǒng)間的數(shù)據(jù)交換提供了一個理想的系統(tǒng)集成框架,使通關(guān)效率得到了顯著地提高。
4 結(jié)語
本文分析了當(dāng)前企業(yè)實施供應(yīng)鏈快速響應(yīng)系統(tǒng)集成過程中,實現(xiàn)異構(gòu)系統(tǒng)之間數(shù)據(jù)交換和共享時遇到的主要問題。將ESB作為實現(xiàn)基于SOA架構(gòu)系統(tǒng)集成的具體方法,提出了一個遵循SOA基本原則、應(yīng)用ESB為系統(tǒng)集成方法的供應(yīng)鏈快速響應(yīng)系統(tǒng)架構(gòu),重點對該系統(tǒng)架構(gòu)組成和執(zhí)行機制進行了詳細說明,并應(yīng)用此框架解決一個具體應(yīng)用問題。這種松散耦合的系統(tǒng)集成框架提高了系統(tǒng)的可擴展性和可維護性,SOA和ESB共同為分布式、異構(gòu)的系統(tǒng)集成提供更高效的、可擴展的平臺和工具,使供應(yīng)鏈快速響應(yīng)集成系統(tǒng)的柔性大大提高。