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