王 暢
(江蘇教育學(xué)院 運(yùn)河分院,江蘇 邳州 221300)
?
基于SOA的工作流管理系統(tǒng)的關(guān)鍵技術(shù)研究
王 暢
(江蘇教育學(xué)院 運(yùn)河分院,江蘇 邳州 221300)
針對(duì)傳統(tǒng)的工作流技術(shù)無(wú)法滿(mǎn)足在信息技術(shù)與互聯(lián)網(wǎng)技術(shù)飛速發(fā)展的背景下對(duì)跨企業(yè)、跨地域合作的需求這一缺點(diǎn),提出了一種基于SOA的體系結(jié)構(gòu).SOA具備柔性好、互操作性強(qiáng)、松散耦合、可重用性高、支持異構(gòu)環(huán)境等優(yōu)勢(shì),基于這些優(yōu)勢(shì),研究了Web Service、XML、SOAP、WSDL和BPEL的改進(jìn)版本W(wǎng)S-BPEL五種關(guān)鍵技術(shù),為基于SOA架構(gòu)下的WfMS的設(shè)計(jì)與實(shí)現(xiàn)提供了理論支撐和技術(shù)支持.
工作流;SOA;管理系統(tǒng)
工作流技術(shù)的提出和引入源于辦公自動(dòng)化(OA)領(lǐng)域,其核心理念是將企業(yè)中一些固有的或固定的活動(dòng)按照約定的規(guī)則或順序來(lái)執(zhí)行、管理和監(jiān)控,實(shí)現(xiàn)業(yè)務(wù)活動(dòng)自動(dòng)化或半自動(dòng)化運(yùn)行.有了工作流技術(shù)的加入,企業(yè)大大地提高了辦公效率、縮減了生產(chǎn)與管理的成本、增強(qiáng)了自身的業(yè)務(wù)能力水平、提高了企業(yè)的競(jìng)爭(zhēng)力.
從20世紀(jì)80年代以來(lái),一部分工作流產(chǎn)品供應(yīng)商為了開(kāi)拓市場(chǎng),相繼推出了自己的工作流產(chǎn)品,例如ViewStar等.這些工作流產(chǎn)品對(duì)某些業(yè)務(wù)流程的簡(jiǎn)化和重組提供了一定程度的支持,但是受限于當(dāng)時(shí)的計(jì)算機(jī)發(fā)展水平,它也只能夠?qū)崿F(xiàn)簡(jiǎn)單的業(yè)務(wù)流程執(zhí)行或部分集成.
進(jìn)入20世紀(jì)90年代,為了實(shí)現(xiàn)系統(tǒng)必要的交互和協(xié)作,一門(mén)新興的技術(shù)工作流管理系統(tǒng)(workflow management system,WfMS)受到了多方的關(guān)注.為了保證用戶(hù)和開(kāi)發(fā)者都能夠擁有一個(gè)共同的標(biāo)準(zhǔn),工作流管理聯(lián)盟(workflow management coalition,WfMC)給出了WfMS參考模型,在一定程度上增強(qiáng)了系統(tǒng)的可用性,提高了系統(tǒng)的靈活性,但其在很多技術(shù)細(xì)節(jié)上仍然無(wú)法滿(mǎn)足系統(tǒng)的可重用性、互操作性等.隨著計(jì)算機(jī)技術(shù)和互聯(lián)網(wǎng)技術(shù)的普及和發(fā)展,現(xiàn)代企業(yè)內(nèi)部甚至是企業(yè)間的組織結(jié)構(gòu)和業(yè)務(wù)流程已經(jīng)日趨復(fù)雜,企業(yè)的管理和聯(lián)系呈現(xiàn)出一種分布、異構(gòu)的特點(diǎn),這就要求各自的工作流管理系統(tǒng)能夠支持在分布異構(gòu)的環(huán)境下實(shí)現(xiàn)業(yè)務(wù)流程的協(xié)作[1].此外,一個(gè)完整的業(yè)務(wù)流程很有可能會(huì)涉及到跨多個(gè)地域、多個(gè)企業(yè),并且基于不同的軟件系統(tǒng)和編程語(yǔ)言等因素,所以要想實(shí)現(xiàn)分布異構(gòu)環(huán)境下的大規(guī)模的業(yè)務(wù)流程協(xié)作,必須要有一種基于Internet管理、能夠?qū)Ψ植籍悩?gòu)的環(huán)境提供支持的工作流管理系統(tǒng),而傳統(tǒng)的工作流技術(shù)在互操作的支持上欠佳,并不能解決諸如企業(yè)間電子商務(wù)動(dòng)態(tài)連接、跨平臺(tái)跨地域合作等迫在眉睫的問(wèn)題.
于是,在這樣的背景下提出了一種面向服務(wù)的架構(gòu)[2](service oriented architecture,SOA),能夠有效地解決此類(lèi)問(wèn)題.
1.1 SOA基本概念
SOA[3],面向服務(wù)的體系架構(gòu),是一類(lèi)組件模型,所有的功能通過(guò)服務(wù)實(shí)現(xiàn),服務(wù)與服務(wù)之間的聯(lián)系和調(diào)用,均通過(guò)良好的接口和契約來(lái)完成,且這種聯(lián)系和調(diào)用無(wú)需考慮服務(wù)自身的軟硬件環(huán)境,具備跨平臺(tái)實(shí)現(xiàn)的特性.
不少研究機(jī)構(gòu)和專(zhuān)家對(duì)SOA都有各自的見(jiàn)解,其中比較權(quán)威的是Gartner對(duì)SOA下的定義:面向服務(wù)的架構(gòu)是一種C/S軟件設(shè)計(jì)方法,由軟件服務(wù)和軟件服務(wù)請(qǐng)求者組成.SOA與大部分C/S模型的不同之處在于,它更強(qiáng)調(diào)的是軟件之間的松散耦合和使用獨(dú)立的標(biāo)準(zhǔn)接口.
總之,SOA可以支持不斷動(dòng)態(tài)變化的信息或環(huán)境,例如業(yè)務(wù)范圍的更改、角色權(quán)限的變化、業(yè)務(wù)伙伴的增減等.在分布、異構(gòu)環(huán)境已經(jīng)成為企業(yè)間建立聯(lián)系所不可避免的前提下,SOA能夠有效地支持企業(yè)與企業(yè)之間點(diǎn)到點(diǎn)的業(yè)務(wù)集成,在異構(gòu)的環(huán)境中實(shí)現(xiàn)業(yè)務(wù)協(xié)作.
1.2 SOA特點(diǎn)
由于傳統(tǒng)的工作流技術(shù)無(wú)法滿(mǎn)足在信息技術(shù)與互聯(lián)網(wǎng)技術(shù)飛速發(fā)展的背景下對(duì)跨企業(yè)、跨地域合作的需求,而SOA的技術(shù)基礎(chǔ)是Web Service,通過(guò)Web Service技術(shù)打破由于體系結(jié)構(gòu)不同、語(yǔ)言不同和平臺(tái)不同而導(dǎo)致的異構(gòu)環(huán)境下無(wú)法集成和連接的局面.在工作流技術(shù)中引入Web Service,將各種應(yīng)用程序封裝成Web Service,借助SOA的思想,對(duì)外公布和提供其標(biāo)準(zhǔn)的接口,支持和實(shí)現(xiàn)企業(yè)間跨平臺(tái)地工作流連接和互訪.因此,將SOA與工作流相結(jié)合是完全可行的,其優(yōu)越性主要表現(xiàn)在以下幾個(gè)方面:
1)柔性好.因?yàn)樵赟OA架構(gòu)下,被調(diào)用的應(yīng)用程序被封裝為獨(dú)立的服務(wù),從服務(wù)能力的角度來(lái)看,當(dāng)流程定義、系統(tǒng)權(quán)限、資源信息等發(fā)生變化的時(shí)候,業(yè)務(wù)流程可以根據(jù)系統(tǒng)內(nèi)外部環(huán)境的變化作出快速地反應(yīng)并按照新的業(yè)務(wù)順序和規(guī)則加以重組,避免系統(tǒng)內(nèi)部牽一發(fā)而動(dòng)全身的狀況發(fā)生.從可擴(kuò)展性的角度來(lái)看,能夠依據(jù)企業(yè)增加的需求調(diào)用相應(yīng)的服務(wù)而動(dòng)態(tài)實(shí)現(xiàn)功能的擴(kuò)展,而不必考慮重新建模等問(wèn)題,大大地削減了維護(hù)成本.
2)軟件組件松散耦合(Loosely Coupled)[4].松散耦合是指組件對(duì)為其提供服務(wù)的另一個(gè)組件的依賴(lài)性不強(qiáng),它具備語(yǔ)言獨(dú)立性和平臺(tái)獨(dú)立性.當(dāng)某一個(gè)Web服務(wù)進(jìn)行變更的時(shí)候,對(duì)于調(diào)用者來(lái)講,是不會(huì)發(fā)現(xiàn)其內(nèi)部變更的,換句話(huà)說(shuō),Web服務(wù)的任何變更對(duì)調(diào)用者來(lái)講都是透明的.對(duì)于松散耦合來(lái)說(shuō),采用XML/SOAP這樣的適合互聯(lián)網(wǎng)環(huán)境的消息交換協(xié)議,能夠很好地實(shí)現(xiàn)Web服務(wù)的發(fā)布和調(diào)用.
3)更高的可重用性.正是由于SOA的架構(gòu)具備松散耦合的特性,服務(wù)請(qǐng)求者無(wú)需知道服務(wù)提供者的任何實(shí)現(xiàn)細(xì)節(jié),是一種面向?qū)ο蟮膶?shí)現(xiàn)機(jī)制,這就使服務(wù)提供者可以靈活、自由地在分布異構(gòu)的環(huán)境中部署,大大地提高了系統(tǒng)的可重用性.
4)增強(qiáng)了互操作性.當(dāng)一個(gè)大型的工作流需要由多個(gè)工作流管理系統(tǒng)協(xié)作互連,進(jìn)行傳遞工作項(xiàng)、執(zhí)行控制等操作時(shí),傳統(tǒng)的工作流管理系統(tǒng)由于在這方面功能的欠缺,很難勝任.而SOA的架構(gòu)將負(fù)責(zé)對(duì)過(guò)程定義進(jìn)行解釋并控制實(shí)例執(zhí)行的工作流引擎封裝為Web Service,將這些功能的具體實(shí)現(xiàn)方法隱藏起來(lái),對(duì)外提供諸如工作列表、管理監(jiān)控工具、應(yīng)用程序或服務(wù)調(diào)用等統(tǒng)一標(biāo)準(zhǔn)的接口,實(shí)現(xiàn)了異質(zhì)工作流引擎的協(xié)作,加強(qiáng)了工作流管理系統(tǒng)之間的交互,從而推動(dòng)了大型工作流的順利運(yùn)行.
圖1 SOA體系結(jié)構(gòu)Fig.1 The SOA architecture
5)對(duì)分布異構(gòu)環(huán)境提供了支持.企業(yè)間跨地域、跨平臺(tái)的業(yè)務(wù)合作關(guān)系已經(jīng)成為了當(dāng)前和未來(lái)的發(fā)展趨勢(shì),而這種趨勢(shì)必然要求工作流管理系統(tǒng)可以在分布異構(gòu)的環(huán)境中實(shí)現(xiàn)分工、協(xié)作和業(yè)務(wù)集成.將業(yè)務(wù)活動(dòng)封裝為Web,可以不受系統(tǒng)實(shí)現(xiàn)的軟硬件環(huán)境的限制、跨出局域網(wǎng)的地域范圍,實(shí)現(xiàn)了工作流在分布異構(gòu)的環(huán)境下可以正常運(yùn)轉(zhuǎn),從而保證了企業(yè)間更為復(fù)雜的業(yè)務(wù)關(guān)系的往來(lái).
1.3 SOA體系結(jié)構(gòu)
SOA的體系結(jié)構(gòu)如圖1所示.結(jié)合圖1可以發(fā)現(xiàn),SOA的體系結(jié)構(gòu)由以下4個(gè)參與者[5]組成,它們分別是:
1)服務(wù)提供者.服務(wù)提供者一方面可以直接響應(yīng)來(lái)自服務(wù)請(qǐng)求者的服務(wù)請(qǐng)求[6],另一方面可以將符合標(biāo)準(zhǔn)的服務(wù)在注冊(cè)中心發(fā)布、注冊(cè),以便服務(wù)消費(fèi)者向注冊(cè)中心查找和請(qǐng)求服務(wù).
2)服務(wù)消費(fèi)者.服務(wù)消費(fèi)者也被稱(chēng)作服務(wù)請(qǐng)求者,它主要是指需要請(qǐng)求、調(diào)用相關(guān)服務(wù)的應(yīng)用程序或服務(wù).服務(wù)消費(fèi)者可以在注冊(cè)中心查找、發(fā)現(xiàn)所需服務(wù),并調(diào)用,也可以通過(guò)SOAP綁定并執(zhí)行服務(wù).
3)服務(wù)契約.服務(wù)契約在此主要是指服務(wù)消費(fèi)者與服務(wù)提供者之間發(fā)生交互所必須要共同遵循的統(tǒng)一標(biāo)準(zhǔn)或格式規(guī)范,只有在統(tǒng)一的服務(wù)契約下這樣才能有效保證交互的暢通.
4)注冊(cè)中心.注冊(cè)中心可以被看做是一個(gè)服務(wù)庫(kù),這種服務(wù)庫(kù)為服務(wù)消費(fèi)者和服務(wù)提供者保存所有符合標(biāo)準(zhǔn)的服務(wù)信息,滿(mǎn)足服務(wù)提供者的發(fā)布需求、服務(wù)消費(fèi)者的查找發(fā)現(xiàn)需求.當(dāng)然,注冊(cè)中心還存儲(chǔ)服務(wù)契約,使服務(wù)提供者和服務(wù)消費(fèi)者在統(tǒng)一標(biāo)準(zhǔn)的環(huán)境下,實(shí)現(xiàn)跨平臺(tái)地服務(wù)調(diào)用.
2.1 Web Service技術(shù)
Web Service工作流技術(shù)是SOA架構(gòu)下的一種分布式技術(shù)[7],在Web Service技術(shù)下,需要建立通信的軟件必須都要包含標(biāo)準(zhǔn)的Web服務(wù)接口[8],具備與編程語(yǔ)言無(wú)關(guān)、與實(shí)現(xiàn)平臺(tái)無(wú)關(guān)的特性,在互聯(lián)網(wǎng)的環(huán)境下實(shí)現(xiàn)不同的應(yīng)用程序的相互調(diào)用.
Web Service體現(xiàn)了一種新型的面向服務(wù)的理念[9],由于Web Service保留了面向?qū)ο笙到y(tǒng)中的封裝、繼承、多態(tài)和綁定等特征,因此可以將Web Service看作是面向?qū)ο笤O(shè)計(jì)的一種演進(jìn)與發(fā)展,它依賴(lài)用戶(hù)普遍使用的傳輸技術(shù)和底層標(biāo)準(zhǔn),并且在此基礎(chǔ)之上保證任何計(jì)算機(jī)程序都可以訪問(wèn)發(fā)布在互聯(lián)網(wǎng)中的其他應(yīng)用程序,而不必考慮這些應(yīng)用程序到底是如何編寫(xiě)、如何運(yùn)行的.當(dāng)然,Web服務(wù)可以是相互獨(dú)立的,也可以是相互連接的,這樣可以向外界輸送更多、更強(qiáng)、更為復(fù)雜的服務(wù)功能.
例如某系統(tǒng)中的信息處理程序?qū)ν馓峁┮粋€(gè)個(gè)的Web服務(wù),其他的應(yīng)用程序如果需要訪問(wèn)其中的一個(gè)或多個(gè)Web服務(wù),則只需要通過(guò)標(biāo)準(zhǔn)的Web服務(wù)接口進(jìn)行訪問(wèn)并建立彼此之間的通信.如圖2所示,將信息處理程序分為數(shù)據(jù)處理服務(wù)、會(huì)員信息處理服務(wù)、交易處理服務(wù)、格式報(bào)表處理服務(wù)等四個(gè)可用的服務(wù),方便了系統(tǒng)內(nèi)外的業(yè)務(wù)修改,保證了信息的兼容性和正確率.
圖3描述了Web Service協(xié)議棧[10],與網(wǎng)絡(luò)七層結(jié)構(gòu)類(lèi)似,它也呈現(xiàn)出一種層次結(jié)構(gòu),并且每一層都有所用的標(biāo)準(zhǔn)和協(xié)議規(guī)范.
Web Service協(xié)議??梢苑譃槿缦滤膶樱?/p>
1)網(wǎng)絡(luò)傳輸層.網(wǎng)絡(luò)傳輸層位于Web Service的底層,是基礎(chǔ)層,它所支持的協(xié)議規(guī)范為HTTP,SMTP,F(xiàn)TP等,實(shí)現(xiàn)消息傳輸?shù)墓δ?
2)XML消息層.在XML消息層指出了所有應(yīng)用程序之間的通信是采用基于XML編碼的SOAP協(xié)議規(guī)范,易擴(kuò)展,保證了跨平臺(tái)的數(shù)據(jù)交換.
3)WSDL服務(wù)消息層.在WSDL服務(wù)消息層以XML的格式對(duì)Web服務(wù)進(jìn)行描述.WSDL用type、message、binding等元素將Web服務(wù)定義為網(wǎng)絡(luò)節(jié)點(diǎn)的集合.
4)UDDI服務(wù)發(fā)布與服務(wù)發(fā)現(xiàn)層.UDDI服務(wù)發(fā)布與服務(wù)發(fā)現(xiàn)層是一套遵循Web的、具備分布式特點(diǎn)的標(biāo)準(zhǔn)規(guī)范,其實(shí)現(xiàn)功能是Web服務(wù)發(fā)布與發(fā)現(xiàn).
2.2 XML技術(shù)
XML(Extensible Markup Language),意為可擴(kuò)展標(biāo)記語(yǔ)言,它是基于文本的、與運(yùn)行平臺(tái)無(wú)關(guān)的標(biāo)記語(yǔ)言.正是由于XML具備這些特性,所以可以借助手動(dòng)編碼編寫(xiě)和生成XML文檔,借助XML文檔實(shí)現(xiàn)不同的應(yīng)用程序在不同的平臺(tái)之間互訪數(shù)據(jù),保證了本地計(jì)算機(jī)程序與其他計(jì)算機(jī)程序之間良好的通信.早在1998年就由W3C發(fā)布了利于簡(jiǎn)化Internet文檔信息傳送的XML1.0規(guī)范,近20年來(lái),XML技術(shù)得到了迅速發(fā)展和應(yīng)用,為結(jié)構(gòu)化文檔信息[11]的處理提供了強(qiáng)有力的支持.
XML具有如下特點(diǎn):
1)簡(jiǎn)單易用.XML是基于文本的,并且以Unicode編碼為基礎(chǔ),支持絕大多數(shù)的語(yǔ)言,易于讀寫(xiě)和調(diào)試,正是由于這種簡(jiǎn)單易用的特性,所以幾乎任何應(yīng)用程序都支持XML,這將促使XML成為數(shù)據(jù)交換的公共語(yǔ)言,更加容易地實(shí)現(xiàn)數(shù)據(jù)或程序在不同的操作系統(tǒng)平臺(tái)下的信息集成.
2)可擴(kuò)展性.作為可擴(kuò)展標(biāo)記語(yǔ)言,XML可以用來(lái)描述、接收或處理來(lái)自不同程序的數(shù)據(jù).此外,XML可以加入DTD(Document Type Definition,文檔類(lèi)型定義)來(lái)保證XML文檔的格式正確,促使XML文檔成為一種數(shù)據(jù)之間交換的標(biāo)準(zhǔn),并對(duì)XML模式加以驗(yàn)證,以確保網(wǎng)絡(luò)中數(shù)據(jù)的共享和交互,而且在模式驗(yàn)證、建立標(biāo)準(zhǔn)或附加標(biāo)準(zhǔn)的基礎(chǔ)之上,擴(kuò)展了XML的功能模塊集.
3)自描述性.XML文檔具有自描述性,因?yàn)閄ML文檔中通常會(huì)包括對(duì)文檔類(lèi)型的聲明,不管是人還是計(jì)算機(jī)都能夠讀懂XML文檔,使XML文檔實(shí)現(xiàn)了數(shù)據(jù)獨(dú)立于操作系統(tǒng),借助DTD對(duì)另一個(gè)XML文檔中的數(shù)據(jù)進(jìn)行解析.
4)互操作性、靈活性.由于可以借助多種工具對(duì)XML加以解釋?zhuān)⑶矣捎赬ML文檔采用結(jié)構(gòu)化的數(shù)據(jù)表示,所以這種解釋所耗費(fèi)的代價(jià)非常低,更為重要的是易于實(shí)現(xiàn)在不同的平臺(tái)間讀寫(xiě)數(shù)據(jù),使用戶(hù)前臺(tái)與結(jié)構(gòu)化數(shù)據(jù)相互分離.此外,將樣式表加入XML文檔也是可行的,如果需要建立超鏈接,也可以得到MLink的支持,這些因素都保證了XML具有較好的互操作性和靈活性.
下面結(jié)合一個(gè)借助AJAX(Asynchronous Javascript And XML,異步JavaScript和XML)技術(shù)與XML技術(shù)相結(jié)合實(shí)現(xiàn)客戶(hù)端與服務(wù)器通信的實(shí)例簡(jiǎn)單了解XML的工作原理.下面的幾段XML代碼可以理解為通過(guò)一個(gè)用戶(hù)注冊(cè)程序完成新用戶(hù)的注冊(cè):
用戶(hù)注冊(cè)程序可以讀取以上XML代碼,并對(duì)其進(jìn)行解析,然后作出判斷這是一段
在以上新用戶(hù)注冊(cè)服務(wù)中,使用XML將客戶(hù)端對(duì)服務(wù)器的請(qǐng)求包裝起來(lái),將客戶(hù)端新用戶(hù)注冊(cè)所需要填寫(xiě)的基本信息通過(guò)XML代碼傳遞給目標(biāo)服務(wù)器處理,降低了客戶(hù)端與服務(wù)器之間的耦合性.
2.3 SOAP技術(shù)
圖4 基于任何傳輸協(xié)議的SOAPFig.4 SOAP based on any transport protocol
SOAP(Simple Object Access Protocol,簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議)是一種基于XML的簡(jiǎn)單、靈活的協(xié)議.正是由于SOAP基于XML,所以SOAP繼承和保留了XML的可擴(kuò)展性、靈活性和互操作性等特點(diǎn).此外,SOAP還可以與HTTP、FTP、POP3、SMTP等協(xié)議相捆綁,從而保證了SOAP可以穿過(guò)防火墻和代理實(shí)現(xiàn)互聯(lián)網(wǎng)中任意應(yīng)用程序之間的通信,滿(mǎn)足不同系統(tǒng)、不同程序間的最大兼容.SOAP已經(jīng)成為Web服務(wù)之間進(jìn)行交互的標(biāo)準(zhǔn)規(guī)范,如圖4所示.
2.3.1 SOAP規(guī)范的主要構(gòu)成要素
1)SOAP信封.它描述了SOAP消息框架,與傳統(tǒng)信封要寫(xiě)明收件人與寄件人的相關(guān)信息類(lèi)似,SOAP信封表明了消息的發(fā)送方、接收方以及發(fā)送消息的內(nèi)容.
2)SOAP編碼規(guī)則.用它來(lái)聲明和交換在應(yīng)用程序交互過(guò)程中所要用到的數(shù)據(jù)類(lèi)型以及衍生出來(lái)的數(shù)據(jù)類(lèi)型的實(shí)例.
3)SOAP RPC.它表示一個(gè)用于遠(yuǎn)程調(diào)用的合約.
2.3.2 SOAP消息的主要構(gòu)成要素
1)信封.它是SOAP必不可少的組成部分,它的存在標(biāo)志著這是一條SOAP消息.
2)頭部.它是SOAP的可選組成部分,記錄著SOAP的一些附加內(nèi)容,一般來(lái)說(shuō),頭部可以省略.
3)主體.它也是SOAP必不可少的組成部分,記錄著消息正文、響應(yīng)信息和服務(wù)調(diào)用.
4)錯(cuò)誤元素.它是SOAP的可選組成部分,記錄著SOAP消息在傳送的過(guò)程中有可能會(huì)發(fā)生的各種錯(cuò)誤,并以錯(cuò)誤報(bào)告的形式告知發(fā)送人.
2.4 WSDL
WSDL(Web Service Description Language,Web服務(wù)描述語(yǔ)言)是一種基于XML,用于描述Web服務(wù)[12]的語(yǔ)言.它能夠確定服務(wù)所在的位置、服務(wù)所提供的方法,并將服務(wù)抽象地描述為可以處理文檔或信息的端點(diǎn).下面展示一段WSDL文檔結(jié)構(gòu)的代碼:
definitions of types……
definitions of a message……
definitions of a port……
definitions of a binding……
從這段代碼可以發(fā)現(xiàn),WSDL由以下幾個(gè)主要元素組成:
1)WSDL Type.類(lèi)型的定義,在
2)WSDL 消息.消息的定義,
3)WSDL Binding.綁定的定義,對(duì)由服務(wù)抽象而成的端口進(jìn)行格式、細(xì)節(jié)的定義,并定義了操作是采取何種方式進(jìn)行交互的.
4)WSDL PortType.端口的定義,它定義了此Web服務(wù)具備何種功能,并且定義了當(dāng)端口成功連接以后Web服務(wù)的使用方法.
圖5 WSDL的工作過(guò)程Fig.5 The work process of WSDL
圖5描述了WSDL的工作過(guò)程.下面結(jié)合圖5對(duì)WSDL的工作過(guò)程作簡(jiǎn)要說(shuō)明.
1)程序一向服務(wù)代理發(fā)出服務(wù)請(qǐng)求,服務(wù)代理接到請(qǐng)求以后,會(huì)向UDDI服務(wù)注冊(cè)中心查找指定的服務(wù).
2)服務(wù)代理查找服務(wù)成功,則繼續(xù)查明此服務(wù)是由程序二提供的,便通知程序一與程序二建立連接.
3)程序一查看程序二采用WSDL編寫(xiě)的Web服務(wù)描述,當(dāng)發(fā)現(xiàn)此描述正是自己所需的服務(wù)之后,程序一通過(guò)SOAP開(kāi)始向程序二發(fā)送調(diào)用請(qǐng)求.
4)程序二接收到程序一的請(qǐng)求以后,也同樣通過(guò)SOAP對(duì)程序一的請(qǐng)求作出回應(yīng).
5)程序一和程序二之間的交互由于出自相同的命名空間,因此可以順利地保持通信,直至通信完成.
2.5 WS-BPEL
BPEL最初在2002年被提出,當(dāng)時(shí)名字為BPEL4WS(Business Process Execution Language For Web Services,商業(yè)流程執(zhí)行語(yǔ)言),它是微軟公司和IBM公司共同努力的產(chǎn)物,分別吸取了二者在圖形化流程和結(jié)構(gòu)化構(gòu)造方面的優(yōu)勢(shì),現(xiàn)已成為OASIS(Organization for the Advancement of Structured Information Standards,結(jié)構(gòu)化信息標(biāo)準(zhǔn)促進(jìn)組織)標(biāo)準(zhǔn)[13].
圖6 BPEL流程服務(wù)調(diào)用Fig.6 The BFEL process service calls
BPEL作為一種工作流語(yǔ)言,也是基于XML規(guī)范的,它的主要功能是對(duì)現(xiàn)有的服務(wù)重新整合,從而形成新的Web服務(wù),而實(shí)現(xiàn)整合服務(wù)的接口則被描述為WSDL 端口定義的集合.圖6[14]說(shuō)明了BPEL流程服務(wù)的調(diào)用和執(zhí)行.
從圖6中可以發(fā)現(xiàn),BPEL的活動(dòng)不僅可以借助伙伴鏈接調(diào)用外部服務(wù),也可以借助伙伴鏈接對(duì)外提供服務(wù).此外,BPEL可以引用來(lái)自同一命名空間的變量和關(guān)聯(lián)集合作為IO參數(shù),實(shí)現(xiàn)消息、實(shí)例的關(guān)聯(lián).
由于BPEL的持續(xù)發(fā)展,且為了符合Web Service的命名習(xí)慣,將BPEL做了改進(jìn),并生成了BPEL的改進(jìn)版本W(wǎng)S-BPEL(Web Service Business Process Execution Language).WS-BPEL是基于Web Service的業(yè)務(wù)流程編制語(yǔ)言,能夠支持同構(gòu)或者異構(gòu)系統(tǒng)間[15]在遵循Web Service標(biāo)準(zhǔn)的條件下以工作流的形式完成業(yè)務(wù)合作,這一切都為實(shí)現(xiàn)企業(yè)內(nèi)部或者企業(yè)與企業(yè)之間業(yè)務(wù)流程的重組、擴(kuò)展提供了便利.
Web Service技術(shù)的發(fā)展和SOA架構(gòu)的提出將SOA與工作流相結(jié)合,有效地解決了傳統(tǒng)工作流所呈現(xiàn)的諸多問(wèn)題,擴(kuò)展了傳統(tǒng)工作流的功能,使工作流技術(shù)在互聯(lián)網(wǎng)的環(huán)境下發(fā)揮更大的作用,促進(jìn)了企業(yè)內(nèi)部和企業(yè)間的信息集成.本文所研究的基于SOA的工作流管理系統(tǒng)的五種關(guān)鍵技術(shù)為基于SOA架構(gòu)下的WfMS的設(shè)計(jì)與實(shí)現(xiàn)提供了理論支撐和技術(shù)支持,可以有效地提高系統(tǒng)的靈活性和可重用性.
[1] 賈峰,文志誠(chéng),薛曉燕.基于J2EE工作流的辦公系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31(12):2792-2795.
[2] FOSTER I,KESSELMAN C.The grid: blueprint for a new computing infrastructure[M].2nded.Beijing:China Machine Press,2005.
[3] IBM.What is Service-Oriented Architecture(SOA)[EB/OL].(2004-05-03)[2017-02-13].http://www-128.ibm.com/developerwoks/webservice/newto/#1.
[4] 劉博,范玉順.面向服務(wù)的工作流性能評(píng)價(jià)及指標(biāo)相關(guān)度分析[J].計(jì)算機(jī)集成制造系統(tǒng),2008,14(1):160-166.
[5] JAMJOOM M M, ALGHAMDI A S, AHMAD I.Service oriented architecture support in various architecture frameworks:a brief review,Hong Kong,China,2012[C].International Association of Engineers,2012.
[6] 王曉艷.基于SOA工作流引擎的研究與實(shí)現(xiàn)[D].北京:北京工業(yè)大學(xué),2009.
[7] 李敏.基于SOA的工作流技術(shù)的研究[D].曲阜:曲阜師范大學(xué),2009.
[8] HURWITZ J, BLOOR R, KAUFMAN M,et al.Service Oriented Architecture for Dummies[M],Indianapolis:Wiley Publishing,2009.
[9] 吳丹.基于SOA的工作流管理系統(tǒng)研究與應(yīng)用[D].廣州:廣東工業(yè)大學(xué),2008.
[10] 段會(huì)寧.基于SOA的工作流管理系統(tǒng)的研究與設(shè)計(jì)[D].哈爾濱:哈爾濱理工大學(xué),2009.
[11] UCHEOGBUJII.XML標(biāo)準(zhǔn)概覽[EB/OL].(2004-10-24)[2017-02-13].http://www.ibm.com/developerworks/cn/xml/x-st- and1/,2004.
[12] BANATI H,BEDI P,MARWAHA P.WSDL-TC:Collaborative Custo-mization of web service,Kochi,India,2012[C]∥IEEE Computer Society,2012.
[13] 黃振.面向服務(wù)架構(gòu)工作流系統(tǒng)的研究與設(shè)計(jì)[D].上海:復(fù)旦大學(xué),2008.
[14] 王紫瑤.SOA核心技術(shù)及應(yīng)用[M].北京:電子工業(yè)出版社,2008:126-128.
[15] SALATINO M. JBPM Developer Guide[M].Birmingham, UK: Packt Publishing, 2009:68-70.
責(zé)任編輯:高 山
Study on the Key Technologies of Workflow Management System Based on SOA
WANG Chang
(Yunhe Branch,Jiangsu Institute of Education,Pizhou 221300,China)
In the context of the rapid development of Information Technology and Internet Technology,the traditional workflow technology cannot meet the needs of cross-enterprise and cross-regional cooperation.In response to this,an SOA-based architecture is proposed.SOA has the advantages of flexibility,interoperability,loose coupling,high reusability and support of heterogeneous environment.In this paper,based on these advantages,the author studies the key technologies of SOA,that is,Web Service,XML,SOAP,WSDL and WS-BPEL,the improved version of BPEL,which provide strong theoretical and technical support for the design and implementation of WfMS based on SOA.
workflow;SOA;management system
2017-02-13.
江蘇省教學(xué)研究室立項(xiàng)課題(2013JK10-L044).
王暢(1984-),男,碩士,講師,主要從事工作流技術(shù)的研究.
1008-8423(2017)02-0203-06
10.13501/j.cnki.42-1569/n.2017.06.021
TP315
A