謝 天 張丹松
中圖分類號(hào):F270 文獻(xiàn)標(biāo)識(shí)碼:A
內(nèi)容摘要:本文分析了傳統(tǒng)企業(yè)資源計(jì)劃(ERP)系統(tǒng)的局限性,闡述了服務(wù)組件架構(gòu)(SCA)的內(nèi)涵、構(gòu)成和特點(diǎn),最后利用SCA、Web服務(wù)、企業(yè)服務(wù)總線(ESB)和業(yè)務(wù)流程執(zhí)行語(yǔ)言(BPEL)等技術(shù)對(duì)ERP系統(tǒng)的架構(gòu)重新設(shè)計(jì),并提出基于SCA的ERP系統(tǒng)架構(gòu)。
關(guān)鍵詞:ERP 面向服務(wù)架構(gòu)(SOA) 服務(wù)組件架構(gòu)(SCA)
現(xiàn)有ERP系統(tǒng)的局限性
ERP是由美國(guó)的Gartner Group Inc公司提出的。ERP的概念原本十分狹窄,僅僅局限在制造業(yè)的企業(yè)資源計(jì)劃方面,但是隨著供需鏈管理(SCM)和企業(yè)業(yè)務(wù)流程重組(BRP)等管理理論的引入,ERP所管理的對(duì)象包括了企業(yè)人、財(cái)、物、信息等所有的資源和產(chǎn)、供、銷等所有業(yè)務(wù)。ERP擴(kuò)展了企業(yè)內(nèi)部各種管理功能的信息集成,而且超出了企業(yè)本身的范圍,實(shí)現(xiàn)了整個(gè)供需鏈上所有相關(guān)業(yè)務(wù)的信息集成。隨著全球經(jīng)濟(jì)已逐漸從以制造經(jīng)濟(jì)為主的工業(yè)社會(huì)進(jìn)入以服務(wù)經(jīng)濟(jì)為主的后工業(yè)社會(huì),市場(chǎng)經(jīng)濟(jì)下客戶對(duì)產(chǎn)品和服務(wù)的個(gè)性化需求的增加,企業(yè)隨需應(yīng)變、按需服務(wù)的能力變得越發(fā)重要。以產(chǎn)品為中心的傳統(tǒng)ERP系統(tǒng)在面臨迅速變化的服務(wù)經(jīng)濟(jì)下全球市場(chǎng)時(shí),凸顯出局限性,主要表現(xiàn)為:
設(shè)計(jì)架構(gòu)僵化,系統(tǒng)業(yè)務(wù)靈活性差。傳統(tǒng)的ERP系統(tǒng)設(shè)計(jì)是從結(jié)構(gòu)化、基于組件結(jié)構(gòu)以及三層架構(gòu)等程序分析設(shè)計(jì)架構(gòu)發(fā)展而來(lái)的,是建立在企業(yè)固定的職能組織結(jié)構(gòu)上的。這種僵化的非流程的組織結(jié)構(gòu)固化了ERP系統(tǒng)的系統(tǒng)結(jié)構(gòu),限制了系統(tǒng)的靈活性。
異構(gòu)系統(tǒng)之間沒有統(tǒng)一的集成標(biāo)準(zhǔn)規(guī)范,產(chǎn)生信息孤島。信息孤島的產(chǎn)生導(dǎo)致供應(yīng)鏈中的節(jié)點(diǎn)企業(yè)無(wú)法進(jìn)行信息資源整合與共享,影響了競(jìng)爭(zhēng)力的提升。所以,傳統(tǒng)的ERP系統(tǒng)必須在完善內(nèi)部集成的同時(shí),實(shí)現(xiàn)和供應(yīng)鏈上下游、協(xié)作企業(yè)和客戶信息的外部集成。
系統(tǒng)維護(hù)和二次開發(fā)困難。從維護(hù)和二次開發(fā)的角度看,目前各個(gè)ERP軟件提供商提供的成品軟件功能固定,很難根據(jù)新管理模式下的業(yè)務(wù)要求重新構(gòu)建符合要求的ERP系統(tǒng)。要實(shí)現(xiàn)ERP功能,無(wú)論是由原來(lái)的軟件提供商進(jìn)行二次開發(fā),還是購(gòu)買新的ERP軟件,成本都很高昂。
為了解決現(xiàn)有ERP系統(tǒng)不能靈活地支持供應(yīng)鏈管理功能,難以與企業(yè)之外的供應(yīng)商、分銷商集成的問(wèn)題,以及異構(gòu)系統(tǒng)之間的互操作,本文提出了基于SCA的ERP系統(tǒng)體系結(jié)構(gòu)。
SCA的內(nèi)涵、構(gòu)成及特點(diǎn)
(一)SCA的內(nèi)涵
SCA(Service Component Architecture,服務(wù)組件架構(gòu))是一個(gè)規(guī)范,它描述用于使用SOA構(gòu)建應(yīng)用程序和系統(tǒng)的模型。SOA(Service Oriented Architecture,面向服務(wù)架構(gòu))指面向服務(wù)的企業(yè)應(yīng)用體系結(jié)構(gòu),是一種分布式的軟件架構(gòu)模型。在該模型中,任何業(yè)務(wù)功能都被作為提供的一個(gè)服務(wù)使用,應(yīng)用程序的不同功能(服務(wù))通過(guò)這些服務(wù)之間定義的結(jié)構(gòu)和合約聯(lián)系,應(yīng)用系統(tǒng)可以看作是一系列服務(wù)的集成。ERP系統(tǒng)由財(cái)務(wù)、資產(chǎn)、人力資源、客戶關(guān)系、生產(chǎn)、成本、銷售、供應(yīng)鏈等多個(gè)子系統(tǒng)組成。子系統(tǒng)可以單獨(dú)存在,完成業(yè)務(wù)需要;也可以相互之間聯(lián)系,互相提供信息來(lái)完成?;贓RP系統(tǒng)的這種特性,本文利用SOA架構(gòu)將各個(gè)模塊中的業(yè)務(wù)處理抽象為服務(wù)組件,不僅本組織的ERP系統(tǒng)可以互相使用該服務(wù)組件,而且外部組織同樣可以在授權(quán)的情況下使用,達(dá)到組織間的協(xié)同。
SCA是一個(gè)用于構(gòu)建SOA應(yīng)用和解決方案的編程模型,在應(yīng)用集成上不但發(fā)展了Web服務(wù)技術(shù),還能較好地解決集成過(guò)程中的服務(wù)組裝問(wèn)題。它的基本思想是:業(yè)務(wù)功能總是由一系列的服務(wù)組成,這些服務(wù)裝配在一起就構(gòu)成了能滿足一定商業(yè)需求的應(yīng)用和解決方案。而這些服務(wù)既包含專門為該應(yīng)用創(chuàng)新的新服務(wù),也包含來(lái)自既有系統(tǒng)和應(yīng)用的可重用業(yè)務(wù)功能。SCA的目標(biāo)是為這種基于服務(wù)的系統(tǒng)建立一個(gè)簡(jiǎn)單的模型。
(二)SCA的構(gòu)成
SCA是基于Component(組件)的復(fù)用,組件是其最主要的組成部分。在SCA規(guī)范中,相對(duì)較為獨(dú)立的組件只有三個(gè),粒度由小到大分別是Component、Composite和Domain,分別對(duì)應(yīng)系統(tǒng)的三個(gè)不同層面。Component是SCA規(guī)范中最基本的元素,是粒度最小的執(zhí)行單元或者實(shí)現(xiàn)單元。一個(gè)SCA組件由四部分構(gòu)成。
服務(wù)(services)表示由本組件提供給其他組件使用的業(yè)務(wù)功能;實(shí)現(xiàn)(implementation)指提供了特定業(yè)務(wù)功能的代碼段;屬性(properties)是一些影響業(yè)務(wù)功能的數(shù)據(jù)值,可以通過(guò)設(shè)置這些屬性值對(duì)實(shí)現(xiàn)進(jìn)行配置;引用(references)表示本組件的實(shí)現(xiàn)所依賴的由其他組件提供的服務(wù)。
一個(gè)Composite構(gòu)件內(nèi)部的組件彼此連接,如同創(chuàng)建一個(gè)運(yùn)行在同一進(jìn)程中的緊耦合的應(yīng)用程序。構(gòu)件包含0...n個(gè)Component, Service, Reference, Wire, Property, 以及包含其他的Composite。一個(gè)構(gòu)件由若干組件組合而成,這些組件之間通過(guò)連接(Wire)相連。構(gòu)件通過(guò)提升(promote)內(nèi)部組件的服務(wù)、引用和屬性來(lái)形成自己的服務(wù)、引用和屬性。一個(gè)服務(wù)是以接口(interface)的方式提供的,比如Java接口和WSDL端口類型。而一個(gè)服務(wù)的訪問(wèn)方式是用綁定(binding)來(lái)描述的。類似地,引用也通過(guò)綁定和接口去調(diào)用它所依賴的服務(wù)。
(三)SCA的特點(diǎn)
1.松耦合。SCA中服務(wù)的定義、實(shí)現(xiàn)和使用是相分離的。組件和構(gòu)建以接口的方式提供服務(wù),服務(wù)的調(diào)用者只需要看到服務(wù)接口,而無(wú)須知道組件和構(gòu)建的內(nèi)部細(xì)節(jié)。組件在提供指定服務(wù)的前提下可以任意選擇合適的實(shí)現(xiàn)技術(shù),并且可以更換實(shí)現(xiàn)而不影響服務(wù)調(diào)用者。同一個(gè)服務(wù)還可以通過(guò)不同的綁定,也就是連接方式,供不同的客戶端使用。這種松耦合的結(jié)構(gòu)使得SCA應(yīng)用靈活而易于擴(kuò)展,適應(yīng)多變的現(xiàn)實(shí),實(shí)現(xiàn)對(duì)應(yīng)用部件的按需調(diào)整和擴(kuò)展。
2.異構(gòu)。SCA提供了統(tǒng)一的調(diào)用方式,支持寬泛的用于服務(wù)組件實(shí)現(xiàn)和連接的各種技術(shù)。在服務(wù)實(shí)現(xiàn)方面,SCA支持眾多的編程語(yǔ)言,包括傳統(tǒng)語(yǔ)言如Java,C++和BPEL,腳本語(yǔ)言如PHP和JavaScript,以及聲明性語(yǔ)言如XQuery和SQL。對(duì)這些語(yǔ)言的支持還包括支持其所使用的框架和環(huán)境。在服務(wù)連接方面,SCA支持常見的通信和服務(wù)訪問(wèn)技術(shù),如Web服務(wù)、消息系統(tǒng)和RPC。
3.重用。SCA組件和構(gòu)件是SCA應(yīng)用的構(gòu)建單元,就好比堆積木一樣,組件和構(gòu)件這些“積木塊”可以用不同的組合方式構(gòu)成不同的應(yīng)用,而既有的非SCA系統(tǒng)也可以通過(guò)作為SCA組件實(shí)現(xiàn)的方式很方便地加入到SCA系統(tǒng),成為構(gòu)建其他應(yīng)用的“積木塊”;或通過(guò)一定的方式連接到SCA系統(tǒng),成為服務(wù)的提供者和消費(fèi)者。
基于SCA的ERP系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)
按照SOA架構(gòu)模型,結(jié)合ERP系統(tǒng)的業(yè)務(wù)需求,本文提出了基于SCA技術(shù)的ERP系統(tǒng)架構(gòu)(見圖1)。該架構(gòu)主要包括6個(gè)服務(wù)模塊,每一模塊又包含一些有特定業(yè)務(wù)功能的SCA業(yè)務(wù)服務(wù)組件和構(gòu)件。
首先,在流程自動(dòng)化方面,用BPEL描述的主要業(yè)務(wù)流程定義為SCA服務(wù)組件類型,通過(guò)BPEL引擎的運(yùn)行來(lái)動(dòng)態(tài)編排和引用其他模塊中需要的服務(wù)組件(構(gòu)件)。其次,在用戶交互方面,模型提供了用戶交互服務(wù)。最后,在實(shí)現(xiàn)服務(wù)集成和數(shù)據(jù)傳輸方面,企業(yè)服務(wù)總線(Enterprise Services Bus,ESB)支持各種服務(wù)在消息總線上的熱插拔(可通過(guò)多種傳輸方式,如MQ、MQ JMS、JMS、Web Service、HTTP、SCA、SOAP等),完成格式轉(zhuǎn)換、消息路由等功能。而對(duì)數(shù)據(jù)源的訪問(wèn),主要是通過(guò)SDO數(shù)據(jù)圖的方式進(jìn)行的(SDO是SCA的姐妹規(guī)范,SCA主要負(fù)責(zé)服務(wù)的標(biāo)準(zhǔn)化,SDO主要負(fù)責(zé)數(shù)據(jù)標(biāo)準(zhǔn)化)。
對(duì)于系統(tǒng)原有的遺留子系統(tǒng)功能模塊,只需利用WSDL文檔描述為標(biāo)準(zhǔn)接口,通過(guò)綁定功能將其導(dǎo)成SCA型服務(wù)組件,再由BPEL描述和執(zhí)行的主流程組件直接調(diào)用,從而對(duì)現(xiàn)有系統(tǒng)的重構(gòu)和業(yè)務(wù)流程重組,最終實(shí)現(xiàn)靈活的業(yè)務(wù)流程管理。
遺留系統(tǒng)中包括ERP系統(tǒng)現(xiàn)有的許多子系統(tǒng),如生產(chǎn)管理系統(tǒng)、銷售管理系統(tǒng)、庫(kù)存管理系統(tǒng)等。為了實(shí)現(xiàn)對(duì)這些系統(tǒng)功能按業(yè)務(wù)流程靈活的應(yīng)用,本文提出基于SCA技術(shù)的ERP系統(tǒng)詳細(xì)邏輯架構(gòu)(見圖2)。
通過(guò)綁定和利用WSDL文檔標(biāo)準(zhǔn)化接口,把現(xiàn)有子系統(tǒng)按各自業(yè)務(wù)功能封裝為粗粒度SCA服務(wù)構(gòu)件(服務(wù)模塊);把子系統(tǒng)的內(nèi)部子功能封裝為細(xì)粒度的SCA服務(wù)組件。一個(gè)粗粒度的SCA服務(wù)構(gòu)件由多個(gè)細(xì)粒度的SCA服務(wù)組件組合而成,如銷售管理構(gòu)件包括銷售報(bào)價(jià)、客戶訂單、客戶出貨等組件。同時(shí),每個(gè)服務(wù)組件客戶端按照SDO標(biāo)準(zhǔn)通過(guò)DAS(Data Access Service,數(shù)據(jù)訪問(wèn)服務(wù))訪問(wèn)本地或網(wǎng)絡(luò)數(shù)據(jù)庫(kù)(即使是異構(gòu)數(shù)據(jù)源—關(guān)系數(shù)據(jù)庫(kù)RDB、XML數(shù)據(jù)等),并對(duì)數(shù)據(jù)庫(kù)表進(jìn)行查找、更新、保存和刪除等操作。
綜上所述,基于SCA的ERP系統(tǒng)架構(gòu),把ERP系統(tǒng)模塊利用WSDL文檔描述為標(biāo)準(zhǔn)接口,通過(guò)綁定功能將其導(dǎo)成不同粒度的SCA服務(wù)組件和構(gòu)件,再由BPEL描述和執(zhí)行的主流程組件直接調(diào)用,從而實(shí)現(xiàn)對(duì)現(xiàn)有系統(tǒng)的重構(gòu)和業(yè)務(wù)流程重組。同時(shí),通過(guò)企業(yè)服務(wù)總線完成格式轉(zhuǎn)換、消息路由等功能,最終實(shí)現(xiàn)供應(yīng)鏈內(nèi)靈活的業(yè)務(wù)流程管理。
參考文獻(xiàn):
1.陳啟申.知己知彼知理知用[M].電子工業(yè)出版社,2007
2.王紫瑤,南俊杰,段紫輝等.SOA核心技術(shù)和應(yīng)用[M].電子工業(yè)出版社,2008
3.曾志常.基于SCA模型的應(yīng)用集成架構(gòu)研究[D].廣東工業(yè)大學(xué),2007