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