摘 要: 集團(tuán)企業(yè)必須適應(yīng)動態(tài)的業(yè)務(wù)組織方式,以響應(yīng)瞬息萬變的市場需求。在服務(wù)相關(guān)知識的基礎(chǔ)上,對服務(wù)工作流進(jìn)行分析和定義,并構(gòu)建基于服務(wù)工作流的引擎執(zhí)行框架。針對服務(wù)工作流在組合過程中的不足,對服務(wù)進(jìn)行語義信息擴(kuò)展,建立動態(tài)的服務(wù)調(diào)度機(jī)制。提出一種面向集團(tuán)企業(yè)的服務(wù)工作流系統(tǒng)體系架構(gòu),為集團(tuán)企業(yè)在新環(huán)境下實現(xiàn)按需整合業(yè)務(wù)和優(yōu)化資源配置提供解決方案。最后通過具體的集團(tuán)制造應(yīng)用實例說明該架構(gòu)的實施方法。
關(guān)鍵詞: 集團(tuán)企業(yè);語義Web服務(wù);業(yè)務(wù)協(xié)同;服務(wù)工作流;體系架構(gòu)
現(xiàn)代企業(yè)從單個企業(yè)為主體的企業(yè)競爭,發(fā)展到今天的多企業(yè)間的業(yè)務(wù)協(xié)同。集團(tuán)企業(yè)在跨地域經(jīng)營和動態(tài)聯(lián)盟的情況下,業(yè)務(wù)活動需要經(jīng)過企業(yè)各部門、供銷商以及客戶之間的協(xié)作,同時需要考慮設(shè)計需求和制造約束,與制造伙伴共同協(xié)調(diào)。要求企業(yè)必須柔性地適應(yīng)動態(tài)的業(yè)務(wù)組織方式,以快速響應(yīng)瞬息萬變的市場需求。從生產(chǎn)型制造向服務(wù)型制造轉(zhuǎn)型升級是全球制造業(yè)發(fā)展的重要趨勢,也是我國制造業(yè)尤其是集團(tuán)企業(yè)轉(zhuǎn)型升級、增加產(chǎn)品附加值、走向價值鏈高端的重要手段[1]。新環(huán)境下的集團(tuán)企業(yè)面臨著企業(yè)資源分散、物流網(wǎng)絡(luò)復(fù)雜、協(xié)調(diào)成本高、產(chǎn)品多樣化和需求個性化等問題,急需構(gòu)建一個以服務(wù)為核心,能夠按需整合優(yōu)勢資源,動態(tài)編排業(yè)務(wù)流程的企業(yè)系統(tǒng)體系結(jié)構(gòu)。
本文基于服務(wù)工作流構(gòu)建服務(wù)工作流引擎執(zhí)行框架,并針對服務(wù)動態(tài)發(fā)現(xiàn)與建模不足,為工作流中的服務(wù)進(jìn)行語義信息擴(kuò)展,以此建立動態(tài)的服務(wù)調(diào)度機(jī)制。最后,提出一種適用于集團(tuán)企業(yè)應(yīng)用的服務(wù)工作流系統(tǒng)體系架構(gòu),為企業(yè)動態(tài)編排和執(zhí)行業(yè)務(wù)流程提供有效方案,實現(xiàn)集團(tuán)企業(yè)在新環(huán)境下的資源優(yōu)化配置,以及與伙伴企業(yè)之間的業(yè)務(wù)協(xié)同。最后通過一個設(shè)計與制造業(yè)務(wù)的協(xié)同過程實例,詳細(xì)說明該架構(gòu)的實施方法。
1 相關(guān)工作
面向服務(wù)的體系結(jié)構(gòu)SOA(Service Oriented Architecture)作為一種架構(gòu)模型,它可以根據(jù)需求通過網(wǎng)絡(luò)對松散耦合的粗粒度應(yīng)用組件進(jìn)行分布式部署、組合和使用。SOA將企業(yè)應(yīng)用看作由一些不同粒度、能跨越企業(yè)邊界以及能實現(xiàn)特殊功能的服務(wù)集合所構(gòu)成,并通過定義良好的、獨立于平臺的接口進(jìn)行聯(lián)系,使此類系統(tǒng)可通過一種通用的方式進(jìn)行交互。因此,采用SOA實現(xiàn)企業(yè)應(yīng)用系統(tǒng)架構(gòu)能在更大范圍內(nèi)達(dá)到信息共享,實現(xiàn)高度的互操作性和可擴(kuò)充性,最終起到優(yōu)化配置資源的作用。
在SOA體系結(jié)構(gòu)下,服務(wù)與流程有著緊密的聯(lián)系,將面向服務(wù)的結(jié)構(gòu)與工作流技術(shù)相結(jié)合,已經(jīng)成為一種發(fā)展趨勢[2]。引入Web服務(wù)的工作流系統(tǒng)擴(kuò)大了工作流的范圍,能夠解決復(fù)雜應(yīng)用集成和跨組織的業(yè)務(wù)協(xié)同問題。目前,已有不少研究結(jié)合工作流技術(shù)對Web服務(wù)進(jìn)行組合。其中,Cross-Flow[3]和Sword[4]等研究項目通過WSFL、LANG、BPEL4WS等技術(shù)為服務(wù)組合提供統(tǒng)一的建模和定義工具,以此構(gòu)建一個動態(tài)的服務(wù)查找、發(fā)現(xiàn)與執(zhí)行平臺。SciDAC-SDM項目[5]將抽象工作流與底層由服務(wù)組成的執(zhí)行工作流嚴(yán)格區(qū)分,借用類似數(shù)據(jù)庫協(xié)調(diào)技術(shù)的方法將抽象工作流轉(zhuǎn)換成執(zhí)行工作流。參考文獻(xiàn)[6]利用事務(wù)的概念擴(kuò)展DAML-S本體中的過程模型,并提出了一個事務(wù)工作流本體概念的服務(wù)組織模型。參考文獻(xiàn)[7]提出了一種基于業(yè)務(wù)生成圖的工作流構(gòu)造模型,并通過基于混合粒子群的QoS調(diào)度算法找出滿足應(yīng)用需求的工作流執(zhí)行路徑。
2 服務(wù)工作流及執(zhí)行引擎
服務(wù)工作流是將Web服務(wù)作為工作流中的各項活動,以動態(tài)工作流方式組合起來,并根據(jù)工作流過程模型中所定義的各項活動之間的業(yè)務(wù)邏輯與規(guī)則,通過服務(wù)的動態(tài)查找和組合,實現(xiàn)工作流活動的動態(tài)部署及綁定,并由工作流引擎對各項活動的執(zhí)行與交互進(jìn)行控制。服務(wù)工作流是一種流程服務(wù),但它還需要考慮工作流的相關(guān)數(shù)據(jù)交互問題和引擎問題。
2.1 工作流引擎
服務(wù)工作流的運(yùn)行機(jī)制與傳統(tǒng)的工作流大不相同,工作流在執(zhí)行過程中需要動態(tài)選擇、組合和調(diào)用服務(wù)。工作流引擎的執(zhí)行框架如圖1所示。
用戶通過流程設(shè)計器進(jìn)行抽象業(yè)務(wù)流程設(shè)計,并借助業(yè)務(wù)規(guī)則編輯器定義規(guī)則,由此構(gòu)成服務(wù)工作流的過程描述文檔。文檔描述了服務(wù)的輸入和輸出參數(shù)、前置和后置條件,而業(yè)務(wù)規(guī)則明確定義了業(yè)務(wù)流程執(zhí)行中的約束條件。工作流模型轉(zhuǎn)換器將抽象流程和業(yè)務(wù)邏輯進(jìn)行組合,形成引擎支持的可執(zhí)行工作流模型。
工作流引擎負(fù)責(zé)對服務(wù)工作流模型進(jìn)行解析和實例構(gòu)建,維持流程實例的執(zhí)行狀態(tài),并依據(jù)靜態(tài)的抽象過程描述和業(yè)務(wù)過程中的約束條件在運(yùn)行時計算后續(xù)過程,動態(tài)調(diào)用服務(wù)。一個服務(wù)工作流的執(zhí)行便是一個業(yè)務(wù)過程實例,是為實現(xiàn)特定的業(yè)務(wù)目標(biāo),由不同角色執(zhí)行的一組具有偏序關(guān)系的、邏輯上相互關(guān)聯(lián)的、作用于一組相關(guān)業(yè)務(wù)對象上的Web服務(wù)。
流程監(jiān)控器的功能包括流程與任務(wù)的監(jiān)控、調(diào)度監(jiān)視、消息監(jiān)控以及日志查看。工作流API為任務(wù)處理器和業(yè)務(wù)應(yīng)用提供接口,主要包括流程定義接口、查詢接口和監(jiān)控接口等。
2.2 服務(wù)動態(tài)執(zhí)行環(huán)境
服務(wù)調(diào)度器是工作流服務(wù)中的重要組件,負(fù)責(zé)根據(jù)模型定義的功能和非功能需求從ESB服務(wù)中心匹配和選擇服務(wù),供引擎執(zhí)行時調(diào)用。
目前,BPEL4WS、BPML以及Web服務(wù)編排描述語言等流程定義語言的模型缺乏對流程服務(wù)的語義描述,無法依據(jù)流程動態(tài)業(yè)務(wù)需求匹配服務(wù),因而在服務(wù)的動態(tài)發(fā)現(xiàn)與建模方面存在不足。OWL-S是一種基于Web本體描述語言的Web服務(wù)本體,用于描述服務(wù)的屬性和功能,便于發(fā)現(xiàn)和集成不同種類的Web服務(wù)。本文結(jié)合OWL-S實現(xiàn)對服務(wù)的語義描述信息擴(kuò)展,增強(qiáng)對服務(wù)能力的描述。建立基于語義的服務(wù)動態(tài)發(fā)現(xiàn)與調(diào)度機(jī)制,更好地實現(xiàn)動態(tài)選取和組合服務(wù)工作流。Web服務(wù)的執(zhí)行環(huán)境,如圖2所示。
Web服務(wù)由發(fā)布在ESB服務(wù)中心上的WSDL、OWL描述文件和部署在Web服務(wù)器上的服務(wù)實體組成。其中,WSDL提供服務(wù)的訪問地址、方法列表和輸入?yún)?shù)類型等技術(shù)信息;而OWL提供給服務(wù)的語義信息,如服務(wù)名稱、服務(wù)類型、輸入輸出規(guī)范和前置條件、后置條件等。服務(wù)工作流在部署時動態(tài)地發(fā)現(xiàn)和選擇服務(wù),并在執(zhí)行時動態(tài)綁定和調(diào)用服務(wù)。
3 體系架構(gòu)
在新的環(huán)境下,集團(tuán)企業(yè)服務(wù)協(xié)同工作流系統(tǒng)開發(fā)和實施是一項復(fù)雜而系統(tǒng)的工程。其系統(tǒng)體系架構(gòu)如圖3所示。
(1)表示層:主要為用戶提供流程建模的設(shè)計工具。當(dāng)企業(yè)的業(yè)務(wù)邏輯發(fā)生變化時,只需通過設(shè)計器調(diào)整流程模型的活動順序,修改業(yè)務(wù)規(guī)則和數(shù)據(jù)并重新部署。表示層還需為用戶提供統(tǒng)一的門戶服務(wù),包括單點登錄、權(quán)限控制和個性化服務(wù)等。
?。?)業(yè)務(wù)層:實現(xiàn)過程定義服務(wù)的接口,并為工作流的運(yùn)行實例提供任務(wù)表處理器,實現(xiàn)下層工作流引擎與上層應(yīng)用的交互。過程定義服務(wù)將上層建立的抽象過程模型和業(yè)務(wù)規(guī)則組合為工作流引擎可識別的服務(wù)工作流模型。業(yè)務(wù)層還提供流程的分析和優(yōu)化工具,更好地實現(xiàn)對流程實例的管理。
(3)服務(wù)層:其核心是工作流引擎,它負(fù)責(zé)對服務(wù)工作流模型進(jìn)行解釋,控制過程實例的創(chuàng)建、激活、掛起和終止。引擎通過服務(wù)調(diào)度器對工作流模型中不確定的服務(wù)鏈接進(jìn)行匹配、加載和實例化,并在執(zhí)行過程中完成流程實例的狀態(tài)轉(zhuǎn)換和活動轉(zhuǎn)換。
(4)支撐層:完成架構(gòu)中相關(guān)數(shù)據(jù)的映射和持久化,包括服務(wù)工作流的定義模型、運(yùn)行實例、歷史實例和業(yè)務(wù)數(shù)據(jù)。支撐層還為系統(tǒng)提供各種基礎(chǔ)設(shè)施,包括DBMS、日志管理和系統(tǒng)監(jiān)控等,以保證服務(wù)工作流在建模、服務(wù)選擇和組合以及執(zhí)行等各個階段的數(shù)據(jù)安全和可靠性。
(5)ESB服務(wù)中心:由ESB組件、管理組件和服務(wù)管理組件三部分構(gòu)成。ESB組件實現(xiàn)消息傳遞、服務(wù)路由、格式轉(zhuǎn)換、數(shù)據(jù)解析和處理、安全傳輸?shù)裙δ?。服?wù)管理組件為ESB提供服務(wù)管理容器,針對集團(tuán)企業(yè)的行業(yè)需求進(jìn)行分析和梳理,建立領(lǐng)域內(nèi)的服務(wù)目錄和服務(wù)庫,并對這些服務(wù)和元數(shù)據(jù)進(jìn)行定義及存儲,以便進(jìn)行服務(wù)的查找、發(fā)布、注冊和管理。ESB監(jiān)控和管理組件能夠輔助故障診斷,并提供完整的服務(wù)質(zhì)量評估報告,以衡量現(xiàn)有的應(yīng)用系統(tǒng)效率,并為優(yōu)化、升級提供指導(dǎo)。ESB是應(yīng)用集成的樞紐,各個應(yīng)用之間的信息和服務(wù)共享都將通過ESB來進(jìn)行。
4 應(yīng)用
服裝集團(tuán)企業(yè)由于物流、商流、資金流和信息流分離的運(yùn)營模式和產(chǎn)品特點,導(dǎo)致市場需求變化頻繁,要求企業(yè)必須動態(tài)調(diào)配資源,協(xié)調(diào)企業(yè)內(nèi)部與伙伴企業(yè)間的業(yè)務(wù)合作。本文以一個服裝集團(tuán)企業(yè)的服裝設(shè)計及制造的協(xié)作過程作為服務(wù)工作流系統(tǒng)原型的設(shè)計與實現(xiàn)示例,其業(yè)務(wù)過程如圖4所示。
?。?)需求分析階段
根據(jù)業(yè)務(wù)目標(biāo)分析業(yè)務(wù)執(zhí)行過程、活動內(nèi)容和活動要處理的數(shù)據(jù)。明確活動執(zhí)行人,并分析業(yè)務(wù)對象與工作流對象之間的關(guān)系以及影響業(yè)務(wù)過程的業(yè)務(wù)數(shù)據(jù)。
在實例中,集團(tuán)總公司提出服裝設(shè)計需求,包括服裝類型、款式、板型、圖案等服裝關(guān)鍵屬性;還可設(shè)置擴(kuò)展屬性,如面料、涂層染整工藝等。這些屬性均采用OWL定義,并按照輸出規(guī)范傳送給下一節(jié)點。
?。?)流程建模階段
在建模階段創(chuàng)建流程和定義活動,并分配業(yè)務(wù)單元、操作和執(zhí)行人,定義相關(guān)數(shù)據(jù)。該實例協(xié)作過程可分為多個子流程,每個子流程都有具體的工作內(nèi)容。例如我們將服裝設(shè)計、生產(chǎn)和庫存物流環(huán)節(jié)設(shè)計為子流程,每個子流程又是一個單獨的服務(wù)工作流模型。業(yè)務(wù)協(xié)作過程中各個活動之間存在相互依賴關(guān)系,例如,在用料采購活動和板房領(lǐng)料時,需用料出入庫;在生產(chǎn)過程中,也涉及庫存和物流活動。設(shè)計子公司根據(jù)需求進(jìn)行設(shè)計,根據(jù)設(shè)計紙樣和工藝程序進(jìn)行單件樣衣的原料用量計算和采購。在技術(shù)部板房領(lǐng)料完成樣衣制作之后,進(jìn)行樣衣件實際原料用量核算,生成成衣物料清單數(shù)據(jù)。
?。?)服務(wù)工作流部署階段
建模階段定義任務(wù)接口和業(yè)務(wù)規(guī)則(如材料、工序、期限和證書等約束),而服務(wù)的語義模型定義服務(wù)的功能和非功能信息,可用來查找和評估服務(wù)。工作流在部署時動態(tài)指定該任務(wù)的服務(wù)實體?;锇楣灸軡M足該服裝制造需求,給出了該服務(wù)的實體注冊和信息,引擎通過匹配服務(wù)組合出可執(zhí)行服務(wù)工作流,并將其部署到工作流引擎上。
(4)服務(wù)工作流執(zhí)行階段
完成流程模型構(gòu)建和工作流部署后,即可創(chuàng)建服務(wù)工作流實例。相關(guān)業(yè)務(wù)人員輸入設(shè)計需求,引擎自動啟動流程,實現(xiàn)業(yè)務(wù)流程的自動運(yùn)轉(zhuǎn)和協(xié)作過程。服務(wù)工作流在整個系統(tǒng)開發(fā)、部署和執(zhí)行的狀態(tài)如圖5所示。
本文構(gòu)建基于Web服務(wù)的工作流系統(tǒng),其架構(gòu)具有松散耦合性、動態(tài)變化性、訪問透明性、粗粒度等特征,使服務(wù)工作流在執(zhí)行上能夠動態(tài)完成任務(wù),同時提高了工作流的靈活性,擴(kuò)大了工作流的范圍。對服務(wù)進(jìn)行語義描述信息的擴(kuò)展,提高了服務(wù)發(fā)現(xiàn)和選擇的質(zhì)量。工作流引擎根據(jù)業(yè)務(wù)需求和約束動態(tài)地進(jìn)行服務(wù)組合,從而適應(yīng)業(yè)務(wù)變化,提高服務(wù)重用性。通過實施此系統(tǒng)可以使跨組織間的業(yè)務(wù)流程與軟件系統(tǒng)相對獨立,可提高企業(yè)應(yīng)用系統(tǒng)的柔性,以支持企業(yè)不斷進(jìn)行管理創(chuàng)新和業(yè)務(wù)流程重組,實現(xiàn)集團(tuán)企業(yè)的資源共享與整合。
參考文獻(xiàn)
[1] 戰(zhàn)德臣,趙曦濱,王順強(qiáng),等.面向制造及管理的集團(tuán)企業(yè)云制造服務(wù)平臺[J].計算機(jī)集成制造系統(tǒng),2011(03).
[2] 劉博,范玉順.面向服務(wù)的工作流性能評價及指標(biāo)相關(guān)度分析[J].計算機(jī)集成制造系統(tǒng),2008(1).
[3] GRAFEN P, ABERER K, HOFFNER Y, et al. Cross-flow: cross-organizational workflow management in dynamic virtual enterprises[J]. International Journal of Computer Systems Science and Engineering, 2000, 15(5):277-290.
[4] PONNEKANTI S R, SWORD A F. A developer toolkit for building composite Web services[EB/OL]. Stanford: Stanford University, 2002.
[5] ALTINTAS I, MEMON A, LUDAACHER B. Design and execution of scientific workflows using Web services[C]. In: Proceeding of the Presentation, San Diego Supercomputer Center and San Diego Software Industry Council to Host Web Services Conference 2004.
[6] KORHONEN J, PAJUNEN L, PUUSTJRVI J. Automatic composition of Web service workflows using a semantic Agent. In: Proceeding of the IEEE/WIC International Conference[C]. on Web Intelligence (WI2003),2003:566-572.