艾丹祥,左 暉,楊 君
(1.廣東工業大學 管理學院,廣東 廣州 510520;2.廣東工業大學 經濟與貿易學院,廣東 廣州 510520)
電子商務供應鏈管理(E-Commerce Supply Chain Management,E-SCM)是利用電子商務技術保證企業間高效信息傳遞和業務合作,實現供需各環節協調運行的供應鏈管理模式,已作為企業提升競爭優勢的有效途徑獲得廣泛應用。但傳統的電子商務技術如電子數據交換(Electronic Data Interchange,EDI)、企業應用整合(Enterprise Application Integration,EAI)等均采用復雜連接、緊密耦合的開發模式,使E-SCM系統缺乏良好的集成性,難以快速響應環境變化、及時擴展新業務邏輯或修改電子商務對象與流程。因此需要研究和設計基于新技術架構的輕量靈活的E-SCM系統解決方案[1]。
語義Web服務是以Web為平臺的商務智能應用新技術。它克服了傳統技術模式的缺陷,采用接口簡單的可重用服務組件封裝電子商務業務,并為其提供精確語義,提高系統自動化操作程度[2]。將語義Web服務技術應用于E-SCM系統中,不但能降低系統復雜度和成本,而且使其具有動態集成能力,必將成為E-SCM系統開發的新方向。因此本文設計了一種基于語義Web服務的E-SCM系統框架,該框架運用基于流程的管理思想,實現語義Web服務對企業內外部不同層次工作流的表示與封裝,較好地解決了供應鏈中跨企業的商務應用集成問題。
基本的Web服務實現以WSDL、UDDI和SOAP三個規范為標準[3],但它們不支持基于語義的服務發現和調用。而語義Web服務描述規范能為服務提供精確語義,通過形式化語言描述服務組件的接口、功能和行為,提高服務的自動化程度。目前業界還沒有統一的語義Web服務描述標準,但許多組織和研究機構制定了各類滿足不同需求的描述規范。經過比較,選擇DAML-S、BPEL4WS和WS-CDL三種規范用于E-SCM系統框架中的Web服務語義描述。
DAML-S是基于DAML+OIL語言開發的Web服務本體。它通過Service Profile、Process Model和Service Grounding三部分描述Web服務。Service Profile說明Web服務能做什么,它包括三組描述屬性:第一組為服務基本信息屬性,包括服務名稱、文本描述和服務提供者聯系信息;第二組為服務功能屬性,包括服務的輸入、輸出、前提條件和預期結果;第三組為服務附加信息屬性。Process Model是對Web服務內部的詳細透視,說明Web服務如何工作,它詳細描述Web服務的子任務集合,規定其執行條件和順序。Service Grounding說明如何使用Web服務,它規定調用Web服務所用的傳輸協議、消息格式及網絡尋址等規則[4]。
BPEL4WS是IBM提出的業務流程執行語言(Business Process Execution Language for Web Services),它包含一組流程控制元素,可描述Web服務間的交互行為,達到合成服務并構建業務流程的目的,例如:通過invoke元素調用某Web服務上的操作,通過receive接收來自其他基本服務的消息,通過reply回復響應消息等。BPEL4WS還支持復雜結構化活動的定義,如通過sequence元素定義串行活動序列,通過switch定義條件分支活動,通過while定義循環活動等[5]。
WS-CDL(Web Services Choreography Description Language,Web服務舞編描述語言)是W3C組織提出的標準化服務合作模式控制規范。它包含一組行為描述元素,從全局觀點定義各方Web服務在業務合作中應表現的共同或互補行為。其中一部分元素說明業務合作的基本信息,如ParticipantType說明合作的參與者,roleType說明參與者可代表的行為角色,relationship-Type說明兩行為角色間的合作關系等。另一部分元素描述多個參與者間的消息交換順序和交互行為模式,如活動編排(choreography)、交互(interact),操作(operation)、消息通道(onChannel)、消息發送者(fromRole)和接收者(toRole)等。WSCDL描述的內容是合作各方共同認可的行為規則,各方只需按照規則履行自身承擔的責任,便可實現共同的業務目標[6]。
綜合運用DAML-S、BPEL4WS和WS-CDL三種語義描述規范,可滿足E-SCM系統中不同層次與范圍的Web服務行為描述需求。其中DAML-S主要針對單個Web服務的行為和過程進行描述,為服務提供計算機可理解的語義標記,適合于定義ESCM中基本業務行為;BPEL4WS善于描述多個Web服務在同一業務流程中的協同關系,可用于構建復合Web服務,適合于描述E-SCM中較為復雜的業務邏輯和工作流;WS-CDL主要從全局觀點描述交互各方的合作,不考慮各方實現自身行為邏輯所用平臺,具有較好的平臺獨立性,適合于描述E-SCM中跨組織、跨企業的業務合作。
基于語義Web服務的E-SCM系統框架利用語義Web服務的智能性、良好封裝性、松散耦合性和平臺獨立性,實現業務組件和業務流程的語義匹配、動態構建和自動執行,以較低的成本集成和進化供應鏈管理系統,滿足全球化電子商務應用的需要。
在基于語義Web服務的E-SCM系統框架設計中,運用了流程管理思想。即將業務問題定義為各種層次與級別的工作流,低層工作流描述具體、簡單的業務邏輯,而高層工作流描述抽象、復雜的業務邏輯。在執行過程中,高層工作流被分解轉包為低層工作流,而低層工作流又可進一步分解為更低層的流程元素。為實現這種流程分層與組配機制,需進一步將語義Web服務技術與企業業務建模結合起來,以服務組件封裝工作流和流程元素,利用語義Web服務特有的智能、實時集成能力實現業務流程的組合與分解。
圖1顯示了基于語義Web服務的E-SCM系統框架的概念模型,該模型由三部分組成,分別負責執行三個層次的業務邏輯。其中,跨企業的業務合作被定義為企業外部工作流,位于最高層;企業部門間的業務合作被定義為企業內部工作流,位于中間層;而企業中的基本業務問題被定義為企業基本Web服務,位于最低層。每部分又依據其作用和特點分別采用不同的語義Web服務描述規范。外部工作流由參與合作的各企業內部工作流編排而成,采用WS-CDL描述,內部工作流則由企業基本Web服務組合而成,采用BPEL4WS描述,而企業基本Web服務則用DAML-S描述。為降低開發成本,提高系統可重用性,對工作流采用模板定義機制,即抽取常用流程定義為服務模板,應用時只需根據模板創建具體服務實例。由于不同級別的工作流受組織、資源、環境和規則的約束各不相同,因此其定義機制也各不相同。外部工作流受約束較小,結構相對穩定,采用靜態定義機制;而內部工作流和基本Web服務受約束較大,變化較多,采用靜態定義和動態創建相結合的機制[7]。
基于語義Web服務的E-SCM系統框架由企業基本Web服務層、企業內部工作流層和企業外部工作流層三個模塊組成。通過各模塊的聯合運作,實現各層業務的動態組合,達到敏捷構造供應鏈商務應用的目的。
企業基本Web服務層由DAML-S引擎、UDDI節點庫、DAML-S數據庫和DAML+OIL企業本體組成。該層將企業業務邏輯中的基本操作定義為Web服務模板,每個模板都包含一個WSDL文檔和一個DAML-S文檔。其中WSDL文檔提供Web服務接口的基本描述,并存儲于全球服務注冊中心的UDDI節點庫,使服務能通過Web靈活地定位和激活;DAML-S文檔則以DAML+OIL企業本體作為統一的語義參考,在WSDL的基礎上補充語義級描述,并存儲于DAML-S數據庫。
DAML-S引擎在UDDI節點庫和DAML-S數據庫的基礎上工作,實現基本Web服務的匹配、合成與調用操作:
(1)語義匹配Web服務
DAML-S引擎通過語義推理,自動查找與服務請求相匹配的企業基本Web服務。其基本過程為:首先訪問Web服務的WSDL文檔,與用戶請求進行基于關鍵詞的精確匹配,如果匹配成功則返回服務接口信息并調用執行;如果匹配失敗則繼續解析該服務的DAML-S文檔,進行基于概念和語義約束的模糊匹配,直至找到合適的Web服務為止。
模糊匹配主要針對DAML-S的Service Profile部分進行。首先,DAML-S引擎以企業本體為參考,采用DAML+OIL推理機對服務基本信息屬性進行概念匹配,獲得滿足約束條件的Web服務初始集合。然后依據初始集合中服務的功能屬性做進一步篩選,逐個檢查每個Web服務的輸入和輸出,如果輸入集合是請求者所要求輸入集合的子集,且輸出集合包含請求者所期望的輸出集合,則保留該服務。最后,根據每項約束條件的符合度綜合計算各Web服務的總相關度,總相關度最高的服務即為所選[8]。
(2)自動合成Web服務
DAML-S引擎對現有企業基本Web服務進行基于語義的組合,自動構建新服務,以便在請求者所需服務不可用時作為替代方案。其基本過程為:根據請求者對所需服務的描述,運用人工智能規劃(AI Planning)方法從DAML-S文檔庫中選擇一系列基本Web服務,并確定其組合順序。

在運用人工智能規劃方法時,首先要將服務合成問題表示為規劃問題。假設給定一組基本Web服務{sw1,sw2,…,swn},需構建復合服務csw。則此問題可表示為五元組:

其中,S0和 G分別代表復合服務csw的初始狀態和目標狀態,A是活動集合,每個基本服務swi均被看作A中的一項活動,可改變csw的當前狀態。規劃的任務就是通過在A中選擇并執行活動,使csw由初始狀態S0轉換到目標狀態G。每項活動的具體內容在關系集合Γ中描述,Γ記錄活動的執行前狀態和執行后狀態,即每個基本服務swi的前提條件和預期結果,以反映swi對復合服務csw狀態的影響。在DAML-S中,Service Profile的相關屬性可被直接映射到Γ。五元組中的S是csw的所有可能狀態集合,包含S0、G以及每項活動執行后csw的中間狀態[9]。將Web服務合成表示為規劃問題后,可應用情景演算法、層次任務網絡法等求解最佳組合方案。
(3)自動調用Web服務
DAML-S引擎接受Web服務的調用請求,確定服務的可用性后,自動執行服務并返回結果。其基本過程為:首先訪問被調用服務的DAML-S文檔,根據Service Profile內容檢查服務的前提條件是否已滿足、輸入數據是否正確完整。然后按照Service Grounding定義的通信方式與服務提供者進行交互,在確認該服務可用后,發送調用請求、提交數據并等待執行,如果Web服務器在規定時間內返回執行結果,則檢查結果和輸出的數據,并通知服務請求者執行完成;如果Web服務器沒有按時響應,則自動重發調用請求。在自動調用過程中,若發現服務不可用或已達到最大重試次數,則通知服務請求者執行失敗。
企業內部工作流由BPEL4WS引擎和BPEL4WS數據庫組成。內部工作流定義企業內各種實體間的復雜行為和關系,是由企業基本Web服務組合而成的復合Web服務。每個企業內部工作流模板都被定義為一個BPEL4WS文檔,并存儲于BPEL4WS數據庫。由于BPEL4WS文檔只是描述基本Web服務合成的腳本,獨立于各服務的具體執行,因此對內部工作流的操作不會影響底層的企業基本Web服務。
BEPL4WS引擎在BPEL4WS數據庫的基礎上工作,實現內部工作流的查詢、構建與執行操作:
(1)查詢內部工作流
BEPL4WS引擎接受對企業內部工作流的查詢請求,在BPEL4WS數據庫中自動匹配符合請求的工作流,如果成功則返回其BPEL4WS文檔;如果失敗則返回錯誤信息。
(2)動態構建內部工作流
BEPL4WS引擎接受構建新工作流的請求,將需求信息轉換為DAML-S引擎接受的格式(包括對輸入輸出數據、前提和結果等條件的描述),啟動DAML-S引擎的自動合成操作,獲取基本Web服務序列及其組合方案,返回本層,最后由BPEL4WS引擎將服務序列轉換為BPEL4WS格式的工作流模板,存入文檔庫中。
(3)執行內部工作流
BEPL4WS引擎接受對企業內部工作流的執行請求,訪問其BPEL4WS文檔,創建工作流實例并執行活動。如果在內部工作流的執行過程中需要調用底層基本Web服務,則由BPEL4WS引擎啟動DAML-S引擎,執行基本Web服務的語義匹配和自動調用,并將結果返回本層。如果需要與本層其他內部工作流交互,則由BPEL4WS引擎自動查詢該工作流的模板,創建實例并解釋執行;如果找不到所需的工作流,則根據活動上下文初始化需求信息,動態構建符合要求的工作流。
企業外部工作流層由WS-CDL引擎和WS-CDL數據庫組成。企業外部工作流以企業聯盟的共同目標為基礎,從全局角度定義企業合作中各實體的行為和關系,由各企業內部工作流整合編排而成。每個企業外部工作流模板都被定義為一個WS-CDL文檔,并存儲于WS-CDL數據庫。由于WS-CDL文檔具有平臺獨立性,因此對外部工作流的操作不會對下層各企業內部工作流產生影響。
WS-CDL引擎在WS-CDL數據庫的基礎上工作,實現外部工作流的查詢與執行操作:
(1)查詢企業外部工作流
WS-CDL引擎接受對企業外部工作流的查詢請求,在WS-CDL數據庫中自動查找符合請求的工作流,如果成功則返回其WS-CDL文檔;如果失敗則返回錯誤信息。
(2)執行企業外部工作流
WS-CDL引擎接受對企業外部工作流的執行請求,調用其WS-CDL文檔,創建工作流實例并執行。在執行過程中如需調用企業內部工作流,則由WS-CDL引擎啟動BPEL4WS引擎,查詢所需的內部工作流并調用執行,執行后返回本層調用點;如果所需的內部工作流不存在或不可用,則根據調用點的上下文初始化需求信息,由BPEL4WS引擎動態構建該工作流。如果需要啟動其他外部工作流,則由WS-CDL引擎自動查詢該工作流的模板,創建其實例并執行。
下面以供應鏈中的基本銷售采購過程為例分析此E-SCM系統框架的運行機制。
在本例中,合作的參與方共有三個:(1)企業A,其角色為供應商supplier;(2)企業B,其角色為客戶Customer;(3)金融機構C,其角色為信用管理者CreditManager。三者間的合作被定義為企業外部工作流,由各方提供的內部工作流構成。圖2顯示了此外部工作流的內視圖。

如圖2所示,Customer是此次外部工作流的發起者,它的兩個內部工作流“采購議價流程”、“產品定購流程”與Supplier的兩個內部工作流“銷售議價流程”、“產品銷售流程”進行交互,實現產品的議價與定購;Supplier的“產品銷售流程”則與CreditManager的“信用信息管理流程”進行交互,查詢Customer的信用度,以確認是否同意定購。
可以看出,外部工作流中的角色須承擔各自的行為責任,如Supplier要負責議價和銷售,CreditManager要負責客戶信用管理等。這些行為責任的定義是從全局角度對工作流的角色進行觀察得出的,與各企業類型和采用的系統平臺無關,因此外部工作流的定義獨立于企業,具有較強通用性。
被定義的外部工作流由WS-CDL引擎執行,其中的內部工作流由BPEL4WS引擎執行。內部工作流由多個基本Web服務構成,以Supplier的“產品銷售流程”為例,它包含“客戶訂單檢查”、“客戶信用評價”“訂單存儲”等基本Web服務,基本服務由DAML-S引擎執行。圖3是UML順序圖表示的“產品銷售流程”執行過程。

從緊密耦合的單一系統發展為松散耦合的動態綁定組件系統是經濟全球化對E-SCM系統的必然要求,本文的研究表明引入語義Web服務是實現這一目標的有效途徑,可提高系統的智能性與靈活度,降低成本,增強B2B應用。本文設計的E-SCM系統框架實現了語義Web服務、業務流程管理思想與E-SCM系統開發理論的有效結合。通過綜合應用DAML-S、BPEL4WS和WS-CDL三種語義描述規范,將供應鏈中的業務邏輯封裝為基本業務組件、內部工作流和外部工作流,利用語義Web服務的松耦合性與平臺獨立性實現各層次業務的動態靈活組配。本文的研究為開發E-SCM系統提供了基于Web的、輕量靈活的技術框架,對實現經濟、敏捷的全球商務應用集成具有重要參考意義。
[1]林玲玲.供應鏈管理[M].2版.北京:清華大學出版社,2008.
[2]宋庭新,黃必清,熊健民,等.語義Web服務在業務協同與供應鏈集成中的應用[J].中國機械工程,2008,19(4):410-413.
[3]Kreger H.Web服務概念性體系結構[EB/OL].(2010-12-20)[2011-04-25].http://www.ibm.com/developerworks/cn/webservices/ws-wsca/part1/index.html.
[4]佚名.DAML-S(and OWL-S)0.9 Draft Release[EB/OL].(2010-11-28)[2011-04-25].http://www.daml.org/services/daml-s/0.9/.
[5]Weerawarana S,Curbera F,Khalaf R,et al.使用BPEL4WS的業務流程[EB/OL].(2011-01-12)[2011-04-25].http://www.ibm.com/developerworks/cn/webservices/ws-bpelcol/index.html.
[6]Kavantzas N,Burdett D,Ritzinger G.Web Services Choreography Description Language Version 1.0[EB/OL].(2011-01-18)[2011-04-25].http://www.w3.org/TR/ws-cdl-10/.
[7]Gomez J M,Hernandez G A,Olmedo J O,et al.A B2B Conversational Architecture for Semantic Web Services Based on BPIMS-WS:ICECCS'05 Proceedings of the 10th IEEE International Conference on Engineering of Complex Computer Systems[C]//Washington:IEEE Computer Society,2005:252-259.
[8]周中成,孫榮勝.基于語義的Web服務自動發現、匹配及執行平臺[J].計算機應用,2005,25(1):233-235.
[9]Su X,Rao J.A Survey of Automated Web Service Composition Methods[C]//Proceedings of the 1st International Workshop on Semantic Web Services and Web Process Composition,2004:43-54.