摘 要:SOA的軟件架構(gòu)也能為企業(yè)未來的下一步信息化建設(shè)提供更便捷的服務(wù),更易于軟件的移植或重用。在此為了開發(fā)出符合業(yè)務(wù)流程的工作流系統(tǒng),以管理企業(yè)的業(yè)務(wù)需求為出發(fā)點(diǎn),通過研究與分析工作流系統(tǒng)集成的關(guān)鍵技術(shù),采用SOA的思想,把一些方法封裝為服務(wù),將其開發(fā)為基于SOA的工作流系統(tǒng)。這在最大程度上解決企業(yè)現(xiàn)有應(yīng)用信息系統(tǒng)間的耦合,也便于后續(xù)開發(fā)的系統(tǒng)與現(xiàn)有系統(tǒng)保持一致的規(guī)范。
關(guān)鍵詞:SOA; 工作流; 系統(tǒng)集成; 管理系統(tǒng)
中圖分類號(hào):TN91934 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1004373X(2012)22002904
軟件技術(shù)的發(fā)展日新月異,從最初的面向過程的軟件開發(fā),到面向?qū)ο蟮拈_發(fā)模式,這些技術(shù)雖然提高了軟件開發(fā)的效率,但很難解決現(xiàn)有軟件所存在的問題[1],所以需要對(duì)軟件的架構(gòu)進(jìn)行進(jìn)一步研究?,F(xiàn)有的軟件系統(tǒng)大多是緊耦合、封閉式、相互獨(dú)立的,基本上都是一次性交付一次性使用,很難以進(jìn)行二次開發(fā)或改造。于是軟件技術(shù)開發(fā)人員開始把軟件系統(tǒng)開發(fā)的架構(gòu)轉(zhuǎn)向SOA[2]。
本文以企業(yè)的業(yè)務(wù)需求為出發(fā)點(diǎn),通過研究與分析工作流系統(tǒng)集成的關(guān)鍵技術(shù),通過SOA的思想,能夠?yàn)槠髽I(yè)的2個(gè)部門開發(fā)出符合其業(yè)務(wù)流程的工作流系統(tǒng),在最大程度上解決企業(yè)現(xiàn)有應(yīng)用信息系統(tǒng)間的耦合,也便于后續(xù)開發(fā)的系統(tǒng)與現(xiàn)有系統(tǒng)保持一致的規(guī)范,增強(qiáng)流程管理對(duì)業(yè)務(wù)需求變化做出響應(yīng)的靈活性與敏捷性,提高各系統(tǒng)間協(xié)同工作的效率。
1 工作流管理系統(tǒng)體系結(jié)構(gòu)
工作流技術(shù),也稱工作流管理技術(shù),最初的應(yīng)用領(lǐng)域是生產(chǎn)組織和辦公自動(dòng)化領(lǐng)域,是“將業(yè)務(wù)過程從應(yīng)用程序中抽取出來”的一門技術(shù)[34]。工作流管理系統(tǒng)要求能夠支持企業(yè)經(jīng)營(yíng)過程高效率地執(zhí)行并監(jiān)控經(jīng)營(yíng)過程的執(zhí)行過程[5]。通常情況下,工作流管理系統(tǒng)是指運(yùn)行在一個(gè)或多個(gè)工作流引擎上的用于定義、實(shí)現(xiàn)、管理工作流運(yùn)行的軟件系統(tǒng),通過與人或應(yīng)用程序的交互,推動(dòng)著工作流實(shí)例的執(zhí)行,并對(duì)工作流運(yùn)行狀態(tài)進(jìn)行監(jiān)控[6]。
工作流管理系統(tǒng)一般都要提供3個(gè)階段的基本功能:
(1) 建立階段的功能:工作流過程建模和相關(guān)活動(dòng)類型的定義等。將企業(yè)的業(yè)務(wù)流程在計(jì)算機(jī)內(nèi)進(jìn)行形式化定義,可以用圖形,或Pertri網(wǎng)等描述。
(2) 運(yùn)行階段的監(jiān)控功能:負(fù)責(zé)對(duì)過程定義的解釋和執(zhí)行。創(chuàng)建工作流實(shí)例并監(jiān)控工作流實(shí)例的運(yùn)行狀態(tài),負(fù)責(zé)每個(gè)過程中的資源分配及任務(wù)調(diào)度。
(3) 運(yùn)行階段的交互功能:實(shí)現(xiàn)工作流執(zhí)行過程中,與人、與應(yīng)用程序之間的交互。
如圖1所示,工作流管理系統(tǒng)通常主要由3部分內(nèi)容組成。
具體功能的實(shí)現(xiàn)部分。
(2) 系統(tǒng)控制數(shù)據(jù):各部分功能構(gòu)件所使用的工作流系統(tǒng)內(nèi)部數(shù)據(jù)。
(3) 應(yīng)用程序與應(yīng)用數(shù)據(jù):是指可以被工作流系統(tǒng)調(diào)用的,用來完成工作流管理系統(tǒng)整體或部分功能的外部系統(tǒng)和數(shù)據(jù)。
2 SOA的組成結(jié)構(gòu)
面向服務(wù)架構(gòu)(Service Oriented Architecture,SOA)。是以服務(wù)為導(dǎo)向的企業(yè)級(jí)系統(tǒng)架構(gòu),具有松耦合、高內(nèi)聚、開放式的特點(diǎn)[7]。相對(duì)于其他軟件架構(gòu),SOA更有優(yōu)勢(shì)[8]?;赟OA開發(fā)并實(shí)施的應(yīng)用系統(tǒng)可以更好地滿足企業(yè)“隨需應(yīng)變”的需求。SOA架構(gòu)核心是服務(wù),與服務(wù)代理、服務(wù)請(qǐng)求者、服務(wù)提供者及相關(guān)協(xié)議和操作,共同組成了SOA的基本結(jié)構(gòu),如圖2所示。
圖2 SOA的基本結(jié)構(gòu)服務(wù)提供者,是服務(wù)的創(chuàng)建者和提供方,負(fù)責(zé)服務(wù)的設(shè)計(jì)、開發(fā)與實(shí)現(xiàn),一般是企業(yè)或組織開發(fā)的具有某種功能的軟件系統(tǒng)、組件或計(jì)算單元。
服務(wù)請(qǐng)求者,是服務(wù)消費(fèi)者,一般指企業(yè)、單位或個(gè)人。當(dāng)需要某個(gè)功能的服務(wù)時(shí),通過向服務(wù)代理機(jī)構(gòu)查找,發(fā)現(xiàn)自己所需要的服務(wù),然后訂閱服務(wù),通過SOAP(Simple Object Access Protocol)與服務(wù)提供者綁定、執(zhí)行服務(wù)。
服務(wù)代理,是服務(wù)提供者與服務(wù)使用者的中介,向外提供已注冊(cè)的服務(wù)目錄及對(duì)應(yīng)的網(wǎng)絡(luò)地址和功能、參數(shù)等描述信息。負(fù)責(zé)對(duì)服務(wù)發(fā)布數(shù)據(jù)的增加、刪除等管理功能。
3 面向服務(wù)的工作流系統(tǒng)特點(diǎn)
基于SOA的工作流系統(tǒng)改變了傳統(tǒng)的使用工作流技術(shù)開發(fā)應(yīng)用系統(tǒng)的方式,具有面向服務(wù)的特點(diǎn),也具有傳統(tǒng)工作流系統(tǒng)所不具備的優(yōu)點(diǎn):
(1) 降低了工作流與應(yīng)用程序的耦合度,由服務(wù)層來封裝推進(jìn)工作流向前流轉(zhuǎn)的方法及工作流的通信服務(wù)。
(2) 易于實(shí)現(xiàn)與其他系統(tǒng)的集成,具有更強(qiáng)的集成特性,在實(shí)現(xiàn)對(duì)應(yīng)用系統(tǒng)的業(yè)務(wù)數(shù)據(jù)與業(yè)務(wù)過程的集成上有優(yōu)勢(shì)。既可以服務(wù)封裝的形式集成現(xiàn)有的系統(tǒng),又可以集成未來的多種新技術(shù)。
(3) 便于業(yè)務(wù)流程的優(yōu)化與整合,由于在系統(tǒng)架構(gòu)設(shè)計(jì)中把工作流的流程定義部分與控制部分采取分離的措施,而且簡(jiǎn)化了方法定義的數(shù)目,所以當(dāng)對(duì)流程定義根據(jù)業(yè)務(wù)變更的需要做出更改時(shí),只需要工作流作一些變動(dòng)就可以實(shí)現(xiàn)了,可以滿足敏捷開發(fā)的要求。
4 傳統(tǒng)的系統(tǒng)集成解決方案
在最早期的企業(yè)應(yīng)用系統(tǒng)集成方案是采用“點(diǎn)對(duì)點(diǎn)”的集成方式,它是采用橋接的方式,這種技術(shù)一般是特定的、彼此獨(dú)立的專用鏈接,通用性不強(qiáng)[9]。隨著業(yè)務(wù)的增加,集成的需求越來越多,給程序開發(fā)人員的代碼開發(fā)與維護(hù)帶來很大的工作量,也給集成研發(fā)人員帶來了技術(shù)上新難題。
為了克服“點(diǎn)對(duì)點(diǎn)”的集成方式帶來的問題和缺陷,星型架構(gòu)被引入到企業(yè)應(yīng)用中,她是由一個(gè)集線器Hub和多個(gè)適配器Adapter組成[10]。這種集成方案有一個(gè)致命的安全隱患是一旦集線器出現(xiàn)故障,所有處于集成方案中的應(yīng)用系統(tǒng)都無法相互通信,可以造成方案的崩潰。
另一種基于消息總線的總線型集成架構(gòu),將方案中的集線器Hub換成了消息總線[11]。各應(yīng)用系統(tǒng)將要發(fā)送的消息傳遞給適配器,適配器對(duì)消息進(jìn)行數(shù)據(jù)格式轉(zhuǎn)換后傳輸給消息總線,由消息總線負(fù)責(zé)消息傳遞的路由。這種集成方式增加了系統(tǒng)的復(fù)雜度,使得消息總線與各應(yīng)用系統(tǒng)之間成了緊耦合的關(guān)系,不利于與基于新技術(shù)開發(fā)的系統(tǒng)實(shí)現(xiàn)集成。
5 基于SOA架構(gòu)的系統(tǒng)集成
基于SOA架構(gòu)開發(fā)的軟件系統(tǒng)能提高業(yè)務(wù)的敏捷性與靈活性,對(duì)企業(yè)業(yè)務(wù)的變更做出快速而有效的響應(yīng),更為系統(tǒng)集成提供了一種快速的解決方案[12]?;赟OA的系統(tǒng)集成方案中,首先將企業(yè)應(yīng)用系統(tǒng)中的業(yè)務(wù)邏輯提取出來,并將與業(yè)務(wù)相關(guān)的操作方法封裝起來向外公開為服務(wù)。其他系統(tǒng)只需要知道已經(jīng)向外公開的服務(wù)的IP地址,就可以實(shí)現(xiàn)服務(wù)的調(diào)用,進(jìn)而實(shí)現(xiàn)與業(yè)務(wù)相關(guān)的過程集成或系統(tǒng)集成?;赟OA的系統(tǒng)集成方案有很多優(yōu)點(diǎn):
(1) 基于標(biāo)準(zhǔn)的服務(wù),采用開放式的標(biāo)準(zhǔn)將應(yīng)用系統(tǒng)的某些功能封裝為大小不同的粒度,可很輕松地實(shí)現(xiàn)同構(gòu)或異構(gòu)系統(tǒng)的集成。
(2) 以業(yè)務(wù)為核心,基于服務(wù)架構(gòu)的軟件開發(fā),可以實(shí)現(xiàn)代碼的重用,而且可以由一些小粒度的服務(wù)單元根據(jù)業(yè)務(wù)流程組合成復(fù)雜的業(yè)務(wù)功能,這樣開發(fā)人員可以將更多的精力轉(zhuǎn)移到業(yè)務(wù)領(lǐng)域,使開發(fā)出來的系統(tǒng)能更好地符合企業(yè)業(yè)務(wù)流程與規(guī)則。
(3) 支持企業(yè)級(jí)的系統(tǒng)集成,目前面向服務(wù)的軟件開發(fā)在技術(shù)上也逐漸趨向成熟,微軟、IBM等大公司推出的SOA開發(fā)平臺(tái)都能都很好地支持企業(yè)級(jí)的應(yīng)用開發(fā),能方便地整合企業(yè)的業(yè)務(wù)數(shù)據(jù)與業(yè)務(wù)流程。
(4) 兼顧開發(fā)效率與經(jīng)濟(jì)效益,由于基于SOA開發(fā)的軟件系統(tǒng)是松耦合的,而且采用開放式標(biāo)準(zhǔn),以服務(wù)的方式向外發(fā)布,所以可以實(shí)現(xiàn)短周期的應(yīng)用軟件開發(fā),及時(shí)地響應(yīng)企業(yè)業(yè)務(wù)變更的需求。減少人力、物力投資的同時(shí),又能為企業(yè)的發(fā)展提供有力的工具支持,無疑是企業(yè)的最佳選擇。
基于SOA的系統(tǒng)集成方案具有以上的諸多優(yōu)點(diǎn),在企業(yè)的應(yīng)用軟件系統(tǒng)集成中相比于其他的集成方案,占據(jù)著絕對(duì)的優(yōu)勢(shì)。因此設(shè)計(jì)的面向服務(wù)的工作流系統(tǒng)架構(gòu)如圖3所示。
本方案設(shè)計(jì)中應(yīng)用程序直接與服務(wù)交互,通過調(diào)用服務(wù)中封裝的方法完成與工作流的通信及推動(dòng)工作流的狀態(tài)向下一步流轉(zhuǎn)。確保了工作流與應(yīng)用程序的松散耦合及相互獨(dú)立。服務(wù)向外發(fā)布的時(shí)候,是以IP地址的形式公開給應(yīng)用程序的,因此,可以供本系統(tǒng)調(diào)用,也可以供外部系統(tǒng)中的應(yīng)用程序調(diào)用。
由于將工作流運(yùn)行時(shí)服務(wù)也封裝在服務(wù)里,由同一宿主托管,因此本地通信的接口及參數(shù)類的定義,也在此層實(shí)現(xiàn)。由此對(duì)應(yīng)的系統(tǒng)集成方案的總體設(shè)計(jì)架構(gòu)如圖4所示。
圖4 基于SOA的系統(tǒng)集成架構(gòu)這個(gè)集成方案也是采用多層架構(gòu)的設(shè)計(jì)方式,從圖中可以看出系統(tǒng)的集成其實(shí)是基于服務(wù)的集成。其中,把工作流系統(tǒng)作為整個(gè)服務(wù)發(fā)布出去,就是除去表示層之外的部分以服務(wù)的方式向外提供并被調(diào)用。這種工作流服務(wù)的封裝模型如圖5所示。
圖5 工作流系統(tǒng)服務(wù)封裝在這種集成架構(gòu)中,服務(wù)是基于WCF開發(fā)的。系統(tǒng)與系統(tǒng)之間的集成其實(shí)就是各系統(tǒng)所對(duì)外發(fā)布的服務(wù)與服務(wù)之間的集成,系統(tǒng)間的通信也就成了服務(wù)與服務(wù)之間的通信了。集成的內(nèi)容實(shí)現(xiàn)主要在服務(wù)管理與應(yīng)用層之間??梢愿鶕?jù)業(yè)務(wù)流程對(duì)所開發(fā)的WCF服務(wù)進(jìn)行整合,或重新編排,然后在應(yīng)用層被客戶端應(yīng)用程序調(diào)用。
6 結(jié) 語
本文通過SOA的思想,將一些方法封裝為服務(wù),向系統(tǒng)內(nèi)也向系統(tǒng)外有選擇地公開一些方法,就是將其開發(fā)為基于SOA的工作流系統(tǒng)。彼此之間互相調(diào)用對(duì)方向外公開的服務(wù),可以很輕松地實(shí)現(xiàn)數(shù)據(jù)共享、業(yè)務(wù)流程集成等系統(tǒng)集成方面的需求。這種基于SOA的工作流系統(tǒng)集成解決方案的應(yīng)用能滿足企業(yè)當(dāng)前的業(yè)務(wù)需求,也為其他現(xiàn)有系統(tǒng)的集成提供一個(gè)很有效的集成思路,符合企業(yè)的長(zhǎng)遠(yuǎn)利益,改善了傳統(tǒng)的系統(tǒng)集成方案及其不足。
參 考 文 獻(xiàn)
[1] 王金玲.面向服務(wù)架構(gòu)技術(shù)的研究與應(yīng)用[D].汕頭:汕頭大學(xué),2007.
[2] 潘杰,陳德焜,周咨聰.基于SOA開發(fā)框架的異構(gòu)工作流集成方案[J].微計(jì)算機(jī)應(yīng)用,2008,29(3):3739.
[3] 張瑾.WWF開發(fā)指南[M].北京:機(jī)械工業(yè)出版社,2008.
[4] 楊利國(guó).基于WF工作流技術(shù)研究及應(yīng)用[D].武漢:武漢理工大學(xué),2008.
[5] Workflow Management Coalition. WFMCTC 1023.V1. 1 Workflow standard interoperabilityWfXMLBinding \[S\]. \[S.l.\]: Workflow Management Coalition, 2001.
[6] DATH S, KOCHUT K, MILLER J, et al. ORBWork: a reliable distributed CORBAbased workflow enactment system for meteor2, UGACS TR97001 \[R\]. USA: Department of Computer Science,University of Georgia,1997.
[7] 張慶福,萬麟瑞.基于SOA的異構(gòu)數(shù)據(jù)集成軟件架構(gòu)研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2011(3):69.
[8] 李文亮,劉竹松,陳王景.基于SOA的科研管理系統(tǒng)的分析與設(shè)計(jì)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2011(7):1821.
[9] CHAN K C, VONK J, SNACHEZ G, et al. A specification language for the WIDE workflow mode \[C\]// Proceedings of 1998 ACM symposium on Applied Computing. \[S.l.\]: ACM, 1998: 197199.
[10] ALONSO G, MOHAN C, GUNTHOR R, et al. Exotica/ FMQM: a persistent messagebased architecture for distributed workflow management \[C\]// Proc. IFIPWG 8.1 Working Conference on Information Systems for Decentralized Organizations. Trondheim: WCISDO, 1995: 1115.
[11] LAWRENCE Chris. Integrated function and workflow \[M\]// FISCHER Layna. Workflow Handbook. Florida: Future Strategies Inc, 2005: 3152.
[12] PAPAZOGLOU M P.Serviceoriented computing concepts, characteristics and directions \[C\]// 4th International Conference on Web Information System Engineering. Roma, Italy: WISE, 2005: 111116.
作者簡(jiǎn)介: 趙紅毅 男,工學(xué)碩士,講師。研究方向?yàn)橛?jì)算機(jī)控制、人工智能。
孟德恩 男,碩士研究生。研究方向?yàn)橛?jì)算機(jī)系統(tǒng)結(jié)構(gòu)。