引言
供應(yīng)鏈管理需要將供應(yīng)鏈中各參與方在過(guò)去數(shù)十年的業(yè)務(wù)實(shí)踐中構(gòu)建的各類管理信息系統(tǒng)有機(jī)結(jié)合到一起,實(shí)現(xiàn)供應(yīng)鏈中各實(shí)體間的資源共享與業(yè)務(wù)協(xié)同。但是,在整合這些遺留的管理信息系統(tǒng)時(shí)人們發(fā)現(xiàn)因編程語(yǔ)言差異、通信協(xié)議差異和數(shù)據(jù)差異導(dǎo)致的異構(gòu)問(wèn)題已經(jīng)嚴(yán)重阻礙了現(xiàn)代物流中企業(yè)內(nèi)部和企業(yè)之間實(shí)現(xiàn)業(yè)務(wù)協(xié)同的進(jìn)程,“信息孤島”問(wèn)題突出。隨著面向服務(wù)體系架構(gòu)(service-orien-ted architecture,SOA)的不斷推廣,SOA在供應(yīng)鏈管理中的應(yīng)用逐漸成為了國(guó)內(nèi)外研究的熱點(diǎn)。文獻(xiàn)[1]探討了支撐和實(shí)施SOA的若干關(guān)鍵問(wèn)題,給出了SOA的設(shè)計(jì)原則、編程模型和實(shí)現(xiàn)技術(shù)等方面的內(nèi)容。文獻(xiàn)[2]提出了一個(gè)基于企業(yè)服務(wù)總線的供應(yīng)鏈知識(shí)管理系統(tǒng)架構(gòu),但對(duì)于企業(yè)級(jí)應(yīng)用而言仍缺少可操作性。文獻(xiàn)[3]主要以SOA體系為出發(fā)點(diǎn),提出了基于企業(yè)服務(wù)總線的分布式供應(yīng)鏈信息共享平臺(tái)體系結(jié)構(gòu),但缺少對(duì)于企業(yè)實(shí)際應(yīng)用中業(yè)務(wù)流程建模等方面的介紹。文獻(xiàn)[4]提出了基于SOA的汽車(chē)SCM實(shí)現(xiàn)模型,對(duì)汽車(chē)SCM的核心環(huán)節(jié)進(jìn)行組織再造和業(yè)務(wù)流程再造。
本文介紹SOA的概念及其涉及的各項(xiàng)關(guān)鍵技術(shù),并提出了一種基于SOA的供應(yīng)鏈管理平臺(tái)。在詳細(xì)介紹了該平臺(tái)的體系結(jié)構(gòu)、企業(yè)服務(wù)總線、業(yè)務(wù)執(zhí)行引擎等關(guān)鍵設(shè)計(jì)之后,本文給出了該平臺(tái)在以摩托車(chē)整車(chē)裝配企業(yè)為核心的供應(yīng)鏈管理中的應(yīng)用。最后,介紹在應(yīng)用中發(fā)現(xiàn)的問(wèn)題與今后可能的研究方向。
1面向服務(wù)體系架構(gòu)的原理與關(guān)鍵技術(shù)
1.1面向服務(wù)體系架構(gòu)
SOA是由Gartner公司在1996年最早提出的一種新的設(shè)計(jì)方法學(xué)與軟件架構(gòu)思想。作為一種新的系統(tǒng)設(shè)計(jì)方法學(xué),SOA為解決企業(yè)業(yè)務(wù)系統(tǒng)集成中的各類異構(gòu)問(wèn)題提供了更好的解決方案,其核心概念是業(yè)務(wù)重用與企業(yè)級(jí)的互操作。具體而言,SOA按照與業(yè)務(wù)對(duì)齊的方式將企業(yè)的IT資源進(jìn)行Web服務(wù)的封裝和登記,使得用戶可以發(fā)現(xiàn)和調(diào)用所需的服務(wù),并按照業(yè)務(wù)流程將服務(wù)進(jìn)行編排與組裝,進(jìn)而構(gòu)建出滿足企業(yè)需求的管理信息系統(tǒng)。在業(yè)務(wù)流程發(fā)生變化時(shí),SOA只需以編排、重組的方式將這些服務(wù)拼裝成新系統(tǒng)而不是重新架構(gòu)整個(gè)系統(tǒng)。這種架構(gòu)使企業(yè)的IT架構(gòu)能夠更快速,更有效的適應(yīng)業(yè)務(wù)需求的變化,大大降低了系統(tǒng)開(kāi)發(fā)、維護(hù)的費(fèi)用。
1. 2 Web服務(wù)
Web服務(wù)是在COM/DOOM和CORBA基礎(chǔ)上提出的一種革命性分布式計(jì)算技術(shù):“是由URI標(biāo)識(shí)的軟件應(yīng)用程序,其接口和綁定可以通過(guò)XML標(biāo)準(zhǔn)進(jìn)行定義、描述和發(fā)現(xiàn),通過(guò)Internet協(xié)議與其它軟件應(yīng)用程序直接進(jìn)行交互”。開(kāi)發(fā)人員能夠以類似過(guò)去創(chuàng)建分布式程序時(shí)調(diào)用組件的方式,將各種來(lái)源的Web服務(wù)組合到一起以構(gòu)建新的應(yīng)用系統(tǒng)。Web服務(wù)所依麟的開(kāi)放協(xié)議,如簡(jiǎn)單對(duì)象訪向協(xié)議(simple object access protocol.SOAP),可拓展標(biāo)記性語(yǔ)言((extensible markup language,XML)服務(wù)描述語(yǔ)言(web service description language, WSDL)等等,在涉及到操作系統(tǒng)、對(duì)象模型和編程語(yǔ)言的選擇時(shí),沒(méi)有任何傾向,因此Web服務(wù)具有很強(qiáng)的生命力與適應(yīng)性。
1. 3業(yè)務(wù)過(guò)程執(zhí)行語(yǔ)言
業(yè)務(wù)過(guò)程執(zhí)行語(yǔ)言(business process execution Ianguage, BPEL),是一種使用XML編寫(xiě)的自動(dòng)化業(yè)務(wù)流程的形式規(guī)約語(yǔ)言.廣泛使用于web服務(wù)相關(guān)的自動(dòng)化業(yè)務(wù)流程項(xiàng)目開(kāi)發(fā)中。BPEL得到了IT業(yè)界200多家大公司和科研機(jī)構(gòu)的重視和擁護(hù),成為業(yè)務(wù)過(guò)程管理在web服務(wù)編排領(lǐng)域事實(shí)上的標(biāo)準(zhǔn)。BPEL流程模型的核心是web服務(wù)間的對(duì)等交互概念,流程及其合作伙伴都被建模成Web服務(wù)。業(yè)務(wù)流程定義了如何協(xié)調(diào)流程實(shí)例與它的合作伙伴之間的交互。在這個(gè)意義上,一個(gè)BPEL流程定義提供和/或使用一個(gè)或多個(gè)Web服務(wù)。
1.4企業(yè)服務(wù)總線
針對(duì)SOA架構(gòu)中對(duì)于集成各類異構(gòu)系統(tǒng)的需要,企業(yè)服務(wù)總線(entERPrise service bus. ESB)的概念應(yīng)運(yùn)而生。IDC (Internet data center)將ESB定義為:基于開(kāi)放標(biāo)準(zhǔn)的消息總線,用于通過(guò)標(biāo)準(zhǔn)的適配器和接口,來(lái)提供各程序和組件之間的互操作功能。它支持相互獨(dú)立的異構(gòu)環(huán)境中的服務(wù)、消息及基于事件的交互,并且具有適當(dāng)?shù)姆⻊?wù)級(jí)別和可管理性。ESB為基于Web服務(wù)、J2EE、. NET和其它標(biāo)準(zhǔn)的應(yīng)用提供一個(gè)基于XML標(biāo)準(zhǔn)的信息通路。使得在系統(tǒng)內(nèi)部和整個(gè)價(jià)值鏈中可以容易地進(jìn)行異步或同步數(shù)據(jù)交換UO,使來(lái)自不同硬件平臺(tái)、不同操作系統(tǒng)和不同語(yǔ)言開(kāi)發(fā)的應(yīng)用能夠以一種松散輻合的方式連接在一起構(gòu)成具有復(fù)雜邏輯、功能更為強(qiáng)大的合成應(yīng)用,F(xiàn)有較為成熟的企業(yè)服務(wù)總線產(chǎn)品包括ServiceMix,IBM WebSphere ESB等。
2 基于SOA的供應(yīng)鏈管理平臺(tái)
本文從供應(yīng)鏈管理系統(tǒng)的實(shí)際需求出發(fā),結(jié)合上述各項(xiàng)關(guān)鍵技術(shù)設(shè)計(jì)出了符合SOA思想的供應(yīng)鏈管理平臺(tái)(supply chain management platform, RCMP)。該平臺(tái)體系架構(gòu)如圖1所示。從總體上講.SCMP將IT資源層中離散的業(yè)務(wù)功能封裝為中立型的Web服務(wù)接入平臺(tái),憑借集成服務(wù)總線跨系統(tǒng)、跨企業(yè)的異構(gòu)應(yīng)用集成能力,基于BPEL技術(shù)實(shí)現(xiàn)了對(duì)Weh服務(wù)的編制、編排與執(zhí)行,最終達(dá)到對(duì)整個(gè)供應(yīng)鏈管理與監(jiān)控的目的。
圖1供應(yīng)鏈管理平臺(tái)體系架構(gòu)
2.1開(kāi)發(fā)平臺(tái)
開(kāi)發(fā)平臺(tái)是SCMP中集開(kāi)發(fā)、調(diào)試、部署和監(jiān)控于一體的可視化開(kāi)發(fā)工具套件。整個(gè)開(kāi)發(fā)平臺(tái)符合B/S架構(gòu),采用Java技術(shù)及AJAX框架開(kāi)發(fā),全面支持WS-BPEI2. 0標(biāo)準(zhǔn),同時(shí)兼容BPEL4People等EEL的高級(jí)特性,能夠以可視化的方式實(shí)現(xiàn)基于數(shù)據(jù)模型、服務(wù)模型的業(yè)務(wù)流程建模,并為用戶提供基于瀏覽器的業(yè)務(wù)流程實(shí)時(shí)、動(dòng)態(tài)監(jiān)控,可有效簡(jiǎn)化業(yè)務(wù)流程開(kāi)發(fā)過(guò)程,適應(yīng)業(yè)務(wù)的快速變化。
2. 2業(yè)務(wù)執(zhí)行平臺(tái)
業(yè)務(wù)執(zhí)行平臺(tái)是SCMP的核心與運(yùn)行時(shí)環(huán)境,分為兩個(gè)主要部分:
2.2.1企業(yè)服務(wù)總線
SCMP中企業(yè)服務(wù)總線(SCMP-ESB)的目的在于支持實(shí)現(xiàn)異構(gòu)的服務(wù)、消息、事件的一致性文互。SCMP-ESB基于Java業(yè)務(wù)集成規(guī)范(Java business integration)開(kāi)發(fā),支持在內(nèi)核上部署多種可插拔綁定組件和集成服務(wù)組件以拓展總線的集成能力,進(jìn)而實(shí)現(xiàn)多種IT應(yīng)用集成。作為供應(yīng)鏈管理平臺(tái)的核心功能層,SCMP ESB的體系結(jié)構(gòu)將直接決定平臺(tái)的運(yùn)行效率、可拓展性與集成能力,SCMRESB體系結(jié)構(gòu)如圖2所示。
圖2 SCMRESB體系結(jié)構(gòu)
作為一種開(kāi)放、消息驅(qū)動(dòng)以及組件可插拔的輕量級(jí)SOA基礎(chǔ)設(shè)施,該ESB系統(tǒng)架構(gòu)中的主要功能模塊包括:
組件與組件框架:組件分為服務(wù)引擎和綁定組件兩種。服務(wù)引擎實(shí)現(xiàn)業(yè)務(wù)邏輯的控制與編排;綁定組件負(fù)責(zé)基于特定通訊協(xié)議的消息轉(zhuǎn)換與傳輸。組件框架則是管理這些組件運(yùn)行的可插拔框架。SCMP-ESB可以通過(guò)增加組件的方式提升總線的業(yè)務(wù)集成能力。
服務(wù)單元框架,與組件框架對(duì)組件的管理類似,服務(wù)單元框架實(shí)現(xiàn)了對(duì)服務(wù)單元的管理,負(fù)責(zé)對(duì)部署至SCMRESB的服務(wù)的部署、反部署以及運(yùn)行時(shí)管理等工作。
規(guī)范化消息路由器:是快速、可靠、基于內(nèi)存的消息總線,可以在SCMP-ESB框架的組件之間動(dòng)態(tài)的路由基于同一標(biāo)準(zhǔn)的規(guī)范化消息。通過(guò)綁定組件在規(guī)范化消息和通訊協(xié)議特定消息之間雙向轉(zhuǎn)換的能力,SCMP ESB中的所有組件都能夠以統(tǒng)一的方式同外部Web服務(wù)消費(fèi)者、外部Web服務(wù)提供者進(jìn)行交互。
管理控制臺(tái):主要包括總線管理門(mén)戶與總線管理核心兩個(gè)部分,前者以UI的方式接收來(lái)自用戶的命令,并通過(guò)JMX將命令傳遞給總線管理核心。管理核心則接收并執(zhí)行命令,在SCMP--公犯環(huán)境內(nèi)完成組件安裝/卸載、服務(wù)部署/反部署,系統(tǒng)監(jiān)控等任務(wù)。
2. 2. 2業(yè)務(wù)執(zhí)行引擎
業(yè)務(wù)執(zhí)行引攀的主要功能是實(shí)現(xiàn)對(duì)業(yè)務(wù)流程模型的部署、執(zhí)行和監(jiān)控能力,為實(shí)現(xiàn)企業(yè)內(nèi)部、企業(yè)間業(yè)務(wù)流程自動(dòng)化提供支持。該引攀全面支持WS-BPEL2.0規(guī)范,負(fù)責(zé)對(duì)業(yè)務(wù)流程模型的編譯、運(yùn)行的功能,提供對(duì)流程定義與流程實(shí)例的持久化能力,支持基于BPEL4People的人機(jī)交互與可擴(kuò)展的表達(dá)式執(zhí)行。整個(gè)引攀的架構(gòu)如圖3所示。
圖3業(yè)務(wù)執(zhí)行引擎體系架構(gòu)
執(zhí)行引攀的主要功能模塊包括:
總線適配:本文將業(yè)務(wù)執(zhí)行引攀設(shè)計(jì)為SCMP-ESB上可擂拔的服務(wù)引擎組件,故需要在引攀內(nèi)核之外設(shè)計(jì)接口適配器以實(shí)現(xiàn)SCMP-ESB對(duì)組件的控制。適配器包括總線接口、服務(wù)管理器、引攀控制、消息代理4個(gè)部分?偩接口是引擎對(duì)于JBI規(guī)范中組件接口的具體實(shí)現(xiàn),SCMP-ESB可以通過(guò)該接口管理引擎的生命周期,完成基于規(guī)范化消息的組件間通訊。服務(wù)管理器負(fù)責(zé)管理引擎發(fā)布的服務(wù)端點(diǎn)信息和服務(wù)描述信息,同時(shí)完成SCMP-ESB上的服務(wù)端點(diǎn)注冊(cè)、激活和撤銷。引擎控制器則負(fù)責(zé)控制引擎的安裝和卸載,以及引擎啟動(dòng)、暫停、停止、終止等。消息代理器主要負(fù)責(zé)引擎內(nèi)部的消息格式與SCMP-ESB上統(tǒng)一的消息格式之間的雙向轉(zhuǎn)換。
引擎內(nèi)核:由流程管理器、隊(duì)列管理器和活動(dòng)處理器組成,負(fù)責(zé)根據(jù)調(diào)度算法進(jìn)行流程和活動(dòng)的調(diào)度。流程管理器的主要功能是管理流程模板和業(yè)務(wù)流程的實(shí)例化與運(yùn)行。隊(duì)列管理器通過(guò)與流程管理器協(xié)作完成活動(dòng)之間的調(diào)度;顒(dòng)管理器管理BPEL中活動(dòng)的啟動(dòng)、掛起和恢復(fù)、終止和重啟、刪除、超時(shí)處理等功能。
引擎服務(wù):提供引擎運(yùn)行所必需的服務(wù),由流程部署器、流程實(shí)例庫(kù)和流程模板庫(kù)組成。流程部署器,根據(jù)收到的流程部署命令完成對(duì)業(yè)務(wù)流程模型的解析與部署。流程實(shí)例庫(kù)和流程模板庫(kù)主要是輔助流程管理器管理流程信息。
引擎擴(kuò)展:由日志記錄、定時(shí)器、腳本引擎和流程恢復(fù)服務(wù)組成。日志記錄服務(wù)按事件級(jí)別記錄引擎運(yùn)行過(guò)程中的各種事件,為引擎的運(yùn)行提供診斷信息。定時(shí)器為某些流程活動(dòng)的執(zhí)行和引擎的運(yùn)行提供定時(shí)功能,主要為BPEL4People這類需要人機(jī)交互的業(yè)務(wù)過(guò)程提供支持。腳本引擎提供了基本的腳本運(yùn)算接口,可以集成多種成熟的腳本執(zhí)行引擎,為執(zhí)行引擎運(yùn)行提供了擴(kuò)展功能。流程恢復(fù)服務(wù)負(fù)責(zé)基于持久化的業(yè)務(wù)流程實(shí)例恢復(fù)工作。
持久化支持:現(xiàn)有業(yè)務(wù)執(zhí)行引擎使用文件系統(tǒng)和數(shù)據(jù)庫(kù)完成數(shù)據(jù)持久化,實(shí)現(xiàn)配置文件、用戶信息、日志記錄、業(yè)務(wù)流程實(shí)例信息的存取功能。
2. 3 IT資源層
IT資源層涵蓋了供應(yīng)鏈管理業(yè)務(wù)集成過(guò)程中涉及到的應(yīng)用資源與數(shù)據(jù)資源。為降低遺留系統(tǒng)接入的難度,保持舊有系統(tǒng)人機(jī)交互接口不變,維持其系統(tǒng)對(duì)用戶展現(xiàn)的歷史一致性,對(duì)系統(tǒng)的操作調(diào)用、數(shù)據(jù)轉(zhuǎn)換等工作統(tǒng)一在SCMP-ESB中完成;對(duì)于新開(kāi)發(fā)的系統(tǒng)和模塊,直接按照SOA的要求完成開(kāi)發(fā)、部署與接入。
3應(yīng)用案例
本文針對(duì)某摩托車(chē)整車(chē)裝配企業(yè)在摩托整車(chē)銷售、采購(gòu)業(yè)務(wù)集成中供應(yīng)商和制造商、制造商和分銷商的信息和業(yè)務(wù)流程整合需求,在舊有信息管理系統(tǒng)架構(gòu)保持不變的基礎(chǔ)上,通過(guò)對(duì)業(yè)務(wù)流程和服務(wù)集合進(jìn)行補(bǔ)充和擴(kuò)展,實(shí)現(xiàn)銷售、采購(gòu)業(yè)務(wù)流程的集成和協(xié)同。在未引入SCMP之前,該摩托車(chē)整車(chē)裝配企業(yè)在業(yè)務(wù)整合方面遇到的問(wèn)題如圖4所示。
圖4某摩托車(chē)整車(chē)裝配企業(yè)供應(yīng)鏈管理業(yè)務(wù)背景
如圖4所示,以該摩托車(chē)整車(chē)裝配企業(yè)為核心,整個(gè)產(chǎn)業(yè)鏈中涉及到數(shù)百家供應(yīng)商、分銷商,但是銷售和采購(gòu)相關(guān)業(yè)務(wù)流程分散于要貨系統(tǒng)、ERP系統(tǒng)和供應(yīng)系統(tǒng)中,各異構(gòu)系統(tǒng)之間未實(shí)現(xiàn)信息傳遞與轉(zhuǎn)換,存在重復(fù)手工環(huán)節(jié)(圖4中所示的待集成流程),無(wú)法完成跨系統(tǒng)的業(yè)務(wù)過(guò)程的自動(dòng)流轉(zhuǎn)。同時(shí),該裝配企業(yè)迫切需要解決在整個(gè)供應(yīng)鏈中的信息集成、業(yè)務(wù)集成問(wèn)題,提高供應(yīng)鏈管理中的信息流轉(zhuǎn)效率。
為解決上述問(wèn)題,本文針對(duì)摩托車(chē)整車(chē)業(yè)務(wù)中供應(yīng)商和制造商、制造商和分銷商的信息和業(yè)務(wù)流程集成需求,設(shè)計(jì)7個(gè)數(shù)據(jù)模型、13個(gè)服務(wù)模型和6個(gè)集成業(yè)務(wù)流程,實(shí)現(xiàn)銷售、采購(gòu)業(yè)務(wù)流程的集成和協(xié)同。圖5 (a)給出了整個(gè)銷售、采購(gòu)業(yè)務(wù)集成的解決方案。圖5 (b)給出了該摩托車(chē)供應(yīng)鏈管理系統(tǒng)的應(yīng)用程序界面。
該供應(yīng)鏈管理系統(tǒng)的實(shí)際應(yīng)用效果主要體現(xiàn)在:
(1)有效集成要貨系統(tǒng)和R/3 ERP系統(tǒng),實(shí)現(xiàn)從客戶下單、生產(chǎn)到發(fā)貨環(huán)節(jié)的信息流和業(yè)務(wù)流的集成,實(shí)現(xiàn)整個(gè)過(guò)程的跟蹤和控制。
(2)有效集成R/3 ERP和供應(yīng)系統(tǒng),實(shí)現(xiàn)從采購(gòu)計(jì)劃編制、采購(gòu)執(zhí)行到材料入庫(kù)環(huán)節(jié)的信息流和業(yè)務(wù)流集成,實(shí)現(xiàn)整個(gè)過(guò)程的跟蹤和控制。
(3)針對(duì)集成多個(gè)異構(gòu)系統(tǒng)的需求,提供了多種可插拔組件,以實(shí)現(xiàn)與多種IT應(yīng)用的有效集成;同時(shí),集成平臺(tái)采用基于Web服務(wù)的業(yè)務(wù)流集成技術(shù),加強(qiáng)集成的設(shè)計(jì)、執(zhí)行和監(jiān)控功能,具有更好的適應(yīng)性、更強(qiáng)的靈活性和可擴(kuò)展性。
圖5 SCMP在摩托車(chē)供應(yīng)鏈管理中應(yīng)用
4結(jié)束語(yǔ)
基于SOA的供應(yīng)鏈管理平臺(tái)在摩托車(chē)整車(chē)裝配企業(yè)業(yè)務(wù)過(guò)程中的成功應(yīng)用,證明了本文所提出SCMP平臺(tái)的有效性與合理性,為供應(yīng)鏈管理的實(shí)施與進(jìn)一步推廣提供了有力的支持。同時(shí),在研發(fā)應(yīng)用AMP平臺(tái)的過(guò)程中我們發(fā)現(xiàn),傳統(tǒng)的基于關(guān)鍵字的服務(wù)集成在服務(wù)發(fā)現(xiàn)、服務(wù)匹配方面效率較低,已經(jīng)阻礙了服務(wù)之間的有效交互,擬在今后的研究中展開(kāi)基于語(yǔ)義的服務(wù)集成技術(shù),以進(jìn)一步提升服務(wù)集成的有效性與可靠性。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:基于SOA的供應(yīng)鏈管理平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)
本文網(wǎng)址:http://www.ezxoed.cn/html/solutions/1401931932.html