專利名稱:一種基于計(jì)算機(jī)網(wǎng)絡(luò)的QoS驅(qū)動(dòng)的提供組合Web服務(wù)的計(jì)算機(jī)系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)領(lǐng)域,涉及一種利用計(jì)算機(jī)系統(tǒng)來(lái)快速提供復(fù)雜的、新的計(jì)算機(jī)網(wǎng)絡(luò)服務(wù)的生成方法,確切的說(shuō),涉及一種按照用戶對(duì)服務(wù)的功能屬性和QoS屬性要求,在運(yùn)行時(shí)動(dòng)態(tài)的組合現(xiàn)有的分布在計(jì)算機(jī)網(wǎng)絡(luò)中的各種Web服務(wù),從而提供給用戶滿足用戶需求的Web服務(wù)組合的計(jì)算機(jī)系統(tǒng)。
背景技術(shù):
隨著計(jì)算機(jī)網(wǎng)絡(luò)中新的體系結(jié)構(gòu)-面向服務(wù)的體系結(jié)構(gòu)(SOA)的出現(xiàn),面向服務(wù)的分析和設(shè)計(jì)將取代現(xiàn)有的面向?qū)ο蟮姆治龊驮O(shè)計(jì)思想。目前SOA有許多的實(shí)現(xiàn)方式,但Web服務(wù)成為目前公認(rèn)的SOA的最好實(shí)現(xiàn)方式?,F(xiàn)有的Web服務(wù)的體系結(jié)構(gòu)其中主要包含三個(gè)角色,Web服務(wù)用戶,服務(wù)提供商,和服務(wù)注冊(cè)中心。任何的應(yīng)用程序都可以被包裝成Web服務(wù),并將其發(fā)布到計(jì)算機(jī)網(wǎng)絡(luò)中的注冊(cè)中心。
面向服務(wù)的目標(biāo)是為了整合網(wǎng)絡(luò)上的現(xiàn)有的各種服務(wù)資源,來(lái)滿足用戶的各種不可預(yù)料的需求,因此,當(dāng)現(xiàn)有的分布在計(jì)算機(jī)網(wǎng)絡(luò)中的單個(gè)Web服務(wù)都不能完全滿足用戶的需求(功能需求或者QoS需求)時(shí),動(dòng)態(tài)組合多個(gè)計(jì)算機(jī)網(wǎng)絡(luò)中現(xiàn)有的多個(gè)Web服務(wù)來(lái)提供更復(fù)雜的增值服務(wù)就是一種解決方法。Web服務(wù)本質(zhì)上也是一種軟件,所以Web服務(wù)組合具有軟件復(fù)用的一般特點(diǎn),但是它又有如下的特性·服務(wù)組合專門(mén)處理計(jì)算機(jī)網(wǎng)絡(luò)業(yè)務(wù),這些業(yè)務(wù)處在一個(gè)分布式,松耦合的網(wǎng)絡(luò)環(huán)境中,并且明確定義好一系列操作。
·Web服務(wù)組合是一種與具體位置無(wú)關(guān)的“即插即用”式的動(dòng)態(tài)服務(wù)重用,從而為系統(tǒng)動(dòng)態(tài)的適應(yīng)需求的變化提供技術(shù)保證。
·Web服務(wù)組合不但可以重用服務(wù)提供者的服務(wù)處理能力,也可以透明的重用服務(wù)提供者的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)和數(shù)據(jù)內(nèi)容,從而提高了軟件開(kāi)發(fā)和部署的效率。
下面我們通過(guò)一個(gè)在電子商務(wù)系統(tǒng)中使用動(dòng)態(tài)服務(wù)組合的例子來(lái)更深入的理解動(dòng)態(tài)Web服務(wù)組合帶來(lái)的好處1.對(duì)于一個(gè)電子商務(wù)系統(tǒng)S來(lái)說(shuō),它在設(shè)計(jì)的時(shí)候只能考慮怎么應(yīng)對(duì)現(xiàn)有的安全問(wèn)題,對(duì)未來(lái)可能出現(xiàn)的安全問(wèn)題并不能預(yù)料,這樣當(dāng)新的安全問(wèn)題X出現(xiàn)時(shí),可以通過(guò)將問(wèn)題X的解決方案封裝為Web服務(wù)W1并將W1發(fā)布到網(wǎng)絡(luò)的注冊(cè)中心,S通過(guò)查找注冊(cè)中心找到W1并將其合成到S中得到S’,其中S’就包含了問(wèn)題X的解決方案,這樣就可以應(yīng)對(duì)該系統(tǒng)在設(shè)計(jì)時(shí)沒(méi)有考慮到的安全問(wèn)題,而不用重新開(kāi)發(fā)S;2.對(duì)于電子商務(wù)S來(lái)說(shuō),它可以在多種客戶端設(shè)備上運(yùn)行如移動(dòng)電話,PDAs,數(shù)字尋呼機(jī),個(gè)人計(jì)算機(jī)等。這些設(shè)備的處理能力,存儲(chǔ)能力,圖形能力,和網(wǎng)絡(luò)能力都有所不同。盡管電子商務(wù)S的處理流程相同,但在不同的客戶端上處理電子商務(wù)S,則需要不同的客戶端處理服務(wù)。將這些不同的客戶端處理服務(wù)作為單獨(dú)的Web發(fā)布,并使用動(dòng)態(tài)的Web服務(wù)組合技術(shù)可以方便的使S運(yùn)行在不同的基礎(chǔ)結(jié)構(gòu)上。
由此可見(jiàn),動(dòng)態(tài)Web服務(wù)組合可以在不打斷原有計(jì)算機(jī)系統(tǒng)的操作的前提下,快速的使原有系統(tǒng)適應(yīng)各種改變-動(dòng)態(tài)抗失配性,這對(duì)于那些高效的,任務(wù)緊急的,不能打斷的實(shí)時(shí)系統(tǒng)來(lái)說(shuō)是非常重要的。
但是對(duì)于Web服務(wù)組合裝置來(lái)說(shuō),如果只是考慮到用戶對(duì)服務(wù)的功能上的要求,而忽略了用戶的QoS(服務(wù)質(zhì)量)要求就會(huì)導(dǎo)致提供的服務(wù)大都在運(yùn)行時(shí)不能被用戶接受。例如,對(duì)于上面說(shuō)到的電子商務(wù)系統(tǒng)S來(lái)說(shuō),如果在使用S的過(guò)程中不能保證該系統(tǒng)的可靠性和安全性(可靠性和安全性都屬于S的QoS屬性),那么就沒(méi)有用戶愿意來(lái)使用這個(gè)系統(tǒng)。因此,對(duì)于Web服務(wù)組合裝置來(lái)說(shuō),如何保證用戶對(duì)服務(wù)運(yùn)行時(shí)的QoS就成為一個(gè)迫切需要解決的問(wèn)題。
要想按照用戶的QoS需求進(jìn)行服務(wù)的組合,必需在發(fā)布的時(shí)候就能夠提供更多地服務(wù)的描述信息,而目前的Web服務(wù)的描述語(yǔ)言WSDL(WSDL WebService Description Language)主要關(guān)注的是服務(wù)的功能屬性,即做什么,怎么做,在那里做。還不支持對(duì)Web服務(wù)的QoS屬性的描述,因此也就不支持按照用戶對(duì)服務(wù)的QoS要求來(lái)進(jìn)行Web服務(wù)的組合。這樣要實(shí)現(xiàn)QoS驅(qū)動(dòng)的Web服務(wù)組合,擴(kuò)展現(xiàn)有的Web服務(wù)描述語(yǔ)言就是首先要解決的問(wèn)題,現(xiàn)有的擴(kuò)展Web服務(wù)描述語(yǔ)言-WSDL的方法可以分為語(yǔ)法和語(yǔ)義兩種。語(yǔ)法的方法就是通過(guò)對(duì)WSDL進(jìn)行語(yǔ)法擴(kuò)展即加入新的元素來(lái)描述更多的信息,語(yǔ)義的方法就是開(kāi)發(fā)一種富語(yǔ)義的新語(yǔ)言來(lái)描述Web服務(wù),如OWL-S(OntologyWeb Language-Web Service)。由于語(yǔ)義的方法過(guò)于復(fù)雜,目前還沒(méi)有支持對(duì)Web服務(wù)的QoS屬性的描述的語(yǔ)法和語(yǔ)義問(wèn)世。
發(fā)明內(nèi)容
本發(fā)明的目的在于,根據(jù)服務(wù)請(qǐng)求者對(duì)功能和QoS的要求,提供一種基于計(jì)算機(jī)網(wǎng)絡(luò)的QoS驅(qū)動(dòng)的提供組合Web服務(wù)的計(jì)算機(jī)系統(tǒng),該計(jì)算機(jī)系統(tǒng)能夠盡可能的利用現(xiàn)有的計(jì)算機(jī)網(wǎng)絡(luò)中的Web服務(wù)資源,來(lái)快速滿足用戶不可預(yù)料的服務(wù)需求。
本發(fā)明通過(guò)對(duì)WSDL進(jìn)行語(yǔ)法擴(kuò)展的方法對(duì)Web服務(wù)QoS屬性進(jìn)行描述。使得在組合時(shí)可以根據(jù)QoS需求找到合適的原子服務(wù)進(jìn)行組合。
除了要對(duì)Web服務(wù)的QoS屬性進(jìn)行描述之外,還要將多個(gè)原子服務(wù)按照QoS的要求組合成復(fù)雜的新服務(wù),因此還必須提供組合服務(wù)和構(gòu)成組合服務(wù)的原子服務(wù)之間的QoS度量。
實(shí)現(xiàn)上述發(fā)明目的的技術(shù)解決方案是,一種基于計(jì)算機(jī)網(wǎng)絡(luò)的QoS驅(qū)動(dòng)的提供組合Web服務(wù)的計(jì)算機(jī)系統(tǒng),其特征在于,該計(jì)算機(jī)系統(tǒng)至少包括一個(gè)組合管理裝置,用于管理服務(wù)的查找,服務(wù)QoS的組合和管理;通過(guò)對(duì)每一個(gè)組合方案的多目標(biāo)決策得到滿足用戶QoS需求的組合方案;一個(gè)數(shù)據(jù)庫(kù)裝置,由用戶數(shù)據(jù)庫(kù)、主題數(shù)據(jù)庫(kù)、注冊(cè)數(shù)據(jù)庫(kù)、組合數(shù)據(jù)庫(kù)構(gòu)成,其中·用戶數(shù)據(jù)庫(kù),用于存放服務(wù)提供者,服務(wù)請(qǐng)求者和系統(tǒng)管理員這三種用戶的身份驗(yàn)證信息;·主題數(shù)據(jù)庫(kù),用于存放系統(tǒng)當(dāng)前發(fā)布的主題的信息;·組合數(shù)據(jù)庫(kù),用于存放組合管理裝置得到的具體組合方案;·注冊(cè)數(shù)據(jù)庫(kù),用于存放的服務(wù)開(kāi)發(fā)商注冊(cè)的信息;一個(gè)SCML2EP裝置,用于將SCML文件轉(zhuǎn)換成可執(zhí)行流程,主要有下面的任務(wù)·生成可執(zhí)行的流程,并將其交給可執(zhí)行環(huán)境EE;·為流程中的每一個(gè)portType生成其stubs,用于在運(yùn)行時(shí)綁定合適的原子服務(wù);·將SCML文件中的PortType填入到主題數(shù)據(jù)庫(kù)中的Portype表;·將SCML的Operation信息填入到主題數(shù)據(jù)庫(kù)中的Operation表;·將順序信息(將流程保存成圖)填入到組合數(shù)據(jù)庫(kù)中的Sequence表。
一個(gè)注冊(cè)裝置,用于存儲(chǔ)那些注冊(cè)到本系統(tǒng)的Web服務(wù)的EWSDL文件;一個(gè)執(zhí)行環(huán)境裝置(EE裝置),用于執(zhí)行組合服務(wù)流程,通過(guò)給stubs合適的portypeID來(lái)實(shí)現(xiàn)動(dòng)態(tài)的服務(wù)組合;一個(gè)系統(tǒng)入口裝置,針對(duì)不同的用戶有三種類型的入口
·服務(wù)請(qǐng)求者入口,用于提供給服務(wù)請(qǐng)求者來(lái)查看系統(tǒng)發(fā)布的工作主題,通過(guò)本裝置進(jìn)入系統(tǒng),服務(wù)請(qǐng)求者可以選擇需要服務(wù)的主題,并和組合管理裝置就服務(wù)的QoS簽訂合同,組合成功或者在組合數(shù)據(jù)庫(kù)中找到合適服務(wù)后,給服務(wù)請(qǐng)求者返回組合服務(wù)的WSDL文件。
·服務(wù)提供商入口,用于服務(wù)提供商查找組合主題,并按照主題的要求來(lái)提供原子服務(wù)。通過(guò)這個(gè)入口進(jìn)入系統(tǒng),可以看到系統(tǒng)發(fā)布的SCML(Service Composition Management Language)語(yǔ)言描述的組合服務(wù)的流程,SCML語(yǔ)言中還包含了服務(wù)的功能描述和QoS描述。
·管理員入口,用于給系統(tǒng)管理員提供管理本系統(tǒng)的入口。
上述組合管理裝置分別與系統(tǒng)入口裝置、數(shù)據(jù)庫(kù)裝置、注冊(cè)裝置互連,系統(tǒng)入口裝置還分別和數(shù)據(jù)庫(kù)裝置、注冊(cè)裝置連接,SCML2EP裝置與數(shù)據(jù)庫(kù)裝置連接。
為了提高軟件的可重用程度,人們從基于過(guò)程的函數(shù)重用,面向?qū)ο蟮闹赜?,面向組件的重用發(fā)展到目前的面向服務(wù)的重用。軟件的重用方式也從緊耦合的過(guò)程調(diào)用與對(duì)象的繼承等方式向松耦合的服務(wù)繼承方式發(fā)展。軟件的開(kāi)發(fā)方式也從最早的基于代碼的開(kāi)發(fā)向基于組件的開(kāi)發(fā)過(guò)渡,并向未來(lái)的服務(wù)自動(dòng)化合成和裝配的自動(dòng)化軟件生產(chǎn)方式發(fā)展。本發(fā)明正是在這個(gè)背景下,利用計(jì)算機(jī)系統(tǒng),按照用戶的需要組合計(jì)算機(jī)網(wǎng)絡(luò)上的現(xiàn)有Web服務(wù),能夠滿足不同用戶的需求。尤其是對(duì)于那些高效的,任務(wù)緊急的,不能打斷的實(shí)時(shí)系統(tǒng)來(lái)說(shuō),提供了一個(gè)非常重要的途徑。
圖1是EWSDL中operationInst元素語(yǔ)法的圖形表示;圖2是SCML中tServiceProcess元素的語(yǔ)法圖;
圖3是SCML中tServiceConstraints元素的語(yǔ)法圖;圖4是本發(fā)明中的組合過(guò)程示意圖;圖5是本系統(tǒng)的結(jié)構(gòu)和執(zhí)行流程圖;圖6是本發(fā)明的組合管理裝置的流程圖;以下結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說(shuō)明。
具體實(shí)施例方式
為了更清楚的理解本發(fā)明,申請(qǐng)人首先給出下列定義及相關(guān)概念定義1原子服務(wù)和組合服務(wù)由多個(gè)Web服務(wù)按照一定的組合邏輯組合出的新的Web服務(wù)稱為組合服務(wù),組合服務(wù)中包含的Web服務(wù)稱為這個(gè)組合服務(wù)的原子服務(wù)。在本發(fā)明中,原子服務(wù)和組合服務(wù)本質(zhì)上都是Web服務(wù),它們的區(qū)別僅僅在于粒度的大小。
定義2服務(wù)類令A(yù)是Web服務(wù)的集合,那么按照功能把這些服務(wù)分成叫做服務(wù)類的多個(gè)非空子集,使得A中的每一個(gè)元素都至少屬于一個(gè)服務(wù)類,而同一個(gè)服務(wù)類中的服務(wù)的差異在于其QoS屬性。注意,這些服務(wù)類的全體構(gòu)成的集合只是A的一個(gè)覆蓋,并不是一定是劃分。
定義3候選關(guān)系對(duì)于注冊(cè)到本系統(tǒng)得注冊(cè)裝置的兩個(gè)服務(wù)Servicea,Serviceb來(lái)說(shuō),如果,1)---∪i=1lfuntion(Se rvicea)⊇∪i=1kfuntion(Se rviceb),]]>l,k∈N,l≥k,或2)---∪i=1kfuntion(Serviceb)⊇∪i=1lfuntion(Servicea),]]>l,k∈N,k≥l,則Servicea,Serviceb是候選關(guān)系,記作Servicea↔^Serviceb·]]>候選關(guān)系是一種傳遞的,自反的,和對(duì)稱的關(guān)系二元關(guān)系。因此候選關(guān)系是一種等價(jià)關(guān)系。
基于上述三個(gè)定義,本發(fā)明中的組合過(guò)程可以用圖4來(lái)表示。其中組合服務(wù)流程可以劃分為有限個(gè)服務(wù)類,而每一個(gè)服務(wù)類都有有限多個(gè)服務(wù)之間存在候選關(guān)系。
本發(fā)明的基本思想就是兼顧Web服務(wù)的功能信息和QoS信息,選擇需要組合的原子服務(wù),使得組合服務(wù)的功能和QoS屬性能夠滿足用戶的需求。本發(fā)明首先擴(kuò)展了現(xiàn)有的Web服務(wù)描述語(yǔ)言WSDL,得到了一種新的Web服務(wù)描述語(yǔ)言EWSDL,EWSDL在原有WSDL描述服務(wù)功能屬性的基礎(chǔ)上添加了描述服務(wù)QoS屬性的結(jié)構(gòu)。服務(wù)的QoS屬性應(yīng)該包括響應(yīng)時(shí)間,可靠性,并發(fā)性,截至日期,價(jià)格,罰金,安全等級(jí)。將服務(wù)QoS屬性具體化為參數(shù),是為更好的對(duì)服務(wù)QoS屬性進(jìn)行度量。
按照上述技術(shù)方案,本發(fā)明提供了一種按照用戶的QoS要求組合現(xiàn)有的服務(wù),得到更復(fù)雜的服務(wù)的方法。具體包含以下內(nèi)容1.Web服務(wù)的描述模型SS=(Func,QoS),這個(gè)Web服務(wù)模型將Web服務(wù)S描述成二元組的形式,其中Func描述了服務(wù)的功能屬性的集合,QoS描述了服務(wù)的QoS屬性集合?,F(xiàn)有的WSDL語(yǔ)言并不能描述服務(wù)的QoS屬性,為了按照這個(gè)Web服務(wù)模型描述服務(wù),本發(fā)明擴(kuò)展了現(xiàn)有的WSDL語(yǔ)言得到了一種增強(qiáng)的Web服務(wù)描述語(yǔ)言(EWSDL-Enhanced Web Service Description Language),其中功能屬性可以由現(xiàn)有的Web服務(wù)描述語(yǔ)言(WSDL-Web Service DescriptionLanguage)中的portType元素表示,我們通過(guò)在WSDL中的tport元素中加入了toperationInst屬性來(lái)描述服務(wù)的QoS屬性。EWSDL的語(yǔ)法的圖形表示如圖1所示。使用EWSDL的這個(gè)結(jié)構(gòu)后,需要什么QoS只要需要都可以隨時(shí)加入進(jìn)行擴(kuò)展。
2.增強(qiáng)的Web服務(wù)描述語(yǔ)言EWSDLEWSDL和原有的WSDL相比增加了tOperationInst元素,通過(guò)這個(gè)元素,QoS屬性可以按照需要定義,本發(fā)明中的QoS屬性涉及如下內(nèi)容第一,responseTime,表示原子服務(wù)的響應(yīng)時(shí)間;通常,它和price之間不是獨(dú)立的,而是相關(guān)的,響應(yīng)時(shí)間是一個(gè)分段函數(shù),根據(jù)該服務(wù)的price而不同。
第二,availability,表示原子服務(wù)的可靠性,即服務(wù)可以被其服務(wù)請(qǐng)求者正確使用的概率;第三,concurrency,表示原子服務(wù)的并發(fā)性,即原子服務(wù)在運(yùn)行時(shí)可以同時(shí)支持多少個(gè)并發(fā)事務(wù);第四,expireTime,表示原子服務(wù)的截至日期,在這個(gè)日期之前,都可以保證服務(wù)的可靠性;第五,price,表示原子服務(wù)的價(jià)格,即服務(wù)使用者由于使用該服務(wù)而需向服務(wù)提供商提供的費(fèi)用;第六,fine,表示服務(wù)商提供商和服務(wù)請(qǐng)求者之間由于其中一方的違約而按照合同支付給另一方的罰金,作為違約方的懲罰和損失方的補(bǔ)償。一般和價(jià)格成線性關(guān)系;第七,securityLevel,表示原子服務(wù)的安全等級(jí)。
下面給出一個(gè)用EWSDL語(yǔ)言中operationInst的例子(只給出在現(xiàn)有的WSDL上添加的內(nèi)容)<wsdl:operationInst name="approve"operationID="DBA609F4-28DA-48B3-BB4B-046811A23C48">
<wsdl:constraintInst name="ResponseTime"value="3"probality="79"constraintID="648CDC87-121F-47B7-A05F-B8186472F2D1"/>
<wsdl:constraintInst name="Price"value="74"probality="83"constraintID="DC984545-0AEB-494F-8DDD-B830C1D54CFC"/>
<wsdl:constraintInst name="SecuritvLevel"value="3"probality="54"constraint ID="DC984545-0AEB-494F-8DDD-B830C1D54CFC"/>
<wsdl:constraintInst name="Stability"value="65"probality="34"constraintID="DC984545-0AEB-494F-8DDD-B830C1D54CFC"/>
<wsdl:constraintInst name="Avalilablity"value="49"probality="47"constraint ID="535D9654-BBB5-417A-B83E-492115B4D124"/>
<wsdl:constraintInst name="Concurrence"value="8"probality="47"constraint ID="535D9654-BBB5-417A-B83E-492115B4D124"/>
</wsdl:operationInst>
3.計(jì)算組合服務(wù)中QoS參數(shù)的方法對(duì)一個(gè)由m個(gè)原子服務(wù)組成的組合服務(wù)A來(lái)說(shuō),其QoS參數(shù)的值可以按照下面的方式計(jì)算得到第一,ResponseTime,表示組合服務(wù)的響應(yīng)時(shí)間??紤]到組合服務(wù)執(zhí)行流程中包含并發(fā)執(zhí)行的服務(wù),因此,組合服務(wù)中的ResponseTime這個(gè)參數(shù)的值并不是所有的原子服務(wù)的responseTime之和,也就是說(shuō)ResonseTime≠Σi=1mresponseTimei,]]>因此,必須把組合服務(wù)的流程按照?qǐng)D的形式保存起來(lái),并從中找到一條關(guān)鍵路徑,即執(zhí)行中響應(yīng)時(shí)間最長(zhǎng)的那條路。CPA就是尋找關(guān)鍵路徑的一個(gè)算法,即ResponseTime(A)=CPA(Service1,Service2,...,Servicem);第二,Availability,表示組合服務(wù)的可靠性,對(duì)于組合服務(wù)來(lái)說(shuō),它的可靠性為每一個(gè)原子服務(wù)的可靠性之積;即Availability(A)=Πi=1mavalibilityi;]]>第三,Concurrency,表示組合服務(wù)的并發(fā)性,對(duì)于組合服務(wù)來(lái)說(shuō),它的并發(fā)性由那個(gè)并發(fā)性最小的原子服務(wù)決定;即Concurrency(A)=min(concurrency1,concurrency2,...,concurrencym),第四,ExpireTime,表示組合服務(wù)的截至日期,對(duì)于組合服務(wù)來(lái)說(shuō)它的截至日期由那個(gè)最近截至的原子服務(wù)決定,即
ExpireTime(A)=min(expireTime1,expireTime2,...,expireTimem),第五,Price,表示組合服務(wù)的價(jià)格,組合服務(wù)的價(jià)格應(yīng)給是所包含的所有原子服務(wù)的價(jià)格之和,即;Price(A)=∪i=1mpiricei;]]>第六,F(xiàn)ine,表示組合服務(wù)的罰金,一般價(jià)格越高罰金也越高,即Fine(A)=C*Price(A),其中C是由用戶和提供商進(jìn)行協(xié)商后得到的;第七,SecurityLevel,表示組合服務(wù)的安全等級(jí),它有那個(gè)安全等級(jí)最低的原子服務(wù)來(lái)決定,即SecurityLevel(A)=min(securityLevel1,securityLevel2,...,securityLevelm)。
4.服務(wù)組合管理語(yǔ)言SCML(Service Composition ManagementLangugage)服務(wù)組合管理語(yǔ)言SCML不同于其他的Web服務(wù)流程描述語(yǔ)言(例BPEL4WS,BPEL4WS本質(zhì)上是一種過(guò)程建模語(yǔ)言,支持將一組現(xiàn)有的服務(wù)整合成一個(gè)新的服務(wù),缺點(diǎn)是服務(wù)組合運(yùn)行時(shí)的靜態(tài)性),在E-WsFrame中,SCML可以描述組合服務(wù)的各種需要的屬性。SCML的根元素tService由兩個(gè)子元素組成。一個(gè)是serviceProcess,描述了服務(wù)的流程,體現(xiàn)了服務(wù)的功能屬性;另一個(gè)是serviceConstraints,描述了對(duì)服務(wù)的約束,體現(xiàn)了服務(wù)的QoS屬性。而在我們常用的Web服務(wù)流程描述語(yǔ)言BPEL4WS中,僅僅只包含了SCML中的serviceProcess元素中的部分信息,這樣的流程就緊緊包含了功能方面的內(nèi)容卻沒(méi)有涉及QoS的內(nèi)容。SCML的tServiceProcess元素和tServiceConstraints元素的語(yǔ)法如圖2,3所示。
下面,申請(qǐng)人給出一個(gè)SCML中serviceConstraints元素的實(shí)例<scml:serviceConstraints>
<scml:constraint name="ResponseTime"valuetype="DECIMAL-MAX"composetype="CPA"constraintID="648CDC87-121F-47B7-A05F-B8186472F2D1">
<scml:description>ResponseTime</scml:description>
</scml:constraint>
<scml:constraint name="Price"valuetype="DECIMAL-MAX"composetype="CPA"constraintID="535D9654-BBB5-417A-B83E-492115B4D124">
<scml:description>Price</scml:description>
</scml:constraint>
<scml:constraint name="SecurityLevel"valuetype="DECIMAL-MAX"composetype="MAX"constraintID="DC984545-0AEB-494F-8DDD-B830C1D54CFC">
<scml:description>SecurityLevel</scml:description>
</scml:constraint>
<scml:constraint name="Stability"valuetype="DECIMAL-MIN"composetype="MIN"constraintID="19013B0B-581F-4FEB-A8D7-4E26630BE21D">
<scml:description>Stability</scml:description>
</scml:constraint>
<scml:constraint name="Avalilablity"valuetype="DECIMAL-MIN"composetype="PI"constraintID="FDF0B248-CB24-4EF8-AB9F-97FB2E59B740">
<scml:description>Avaliablity</scml:description>
</scml:constraint>
<scml:constraint name="Concurrence"valuetype="DECIMAL-MIN"composetype="MIN"constraintID="657B814D-00D0-45C2-932F-63A0BDA6A565">
<scml:description>Concurrence</scml:description>
</scml:constraint>
5.按照QoS組合服務(wù)的計(jì)算機(jī)系統(tǒng)基于計(jì)算機(jī)網(wǎng)絡(luò)的QoS驅(qū)動(dòng)的提供組合Web服務(wù)的計(jì)算機(jī)系統(tǒng),該計(jì)算機(jī)系統(tǒng)至少包括第一,組合管理裝置,它的功能是管理中心提供服務(wù)的注冊(cè),查找UDDI,基于服務(wù)QoS的組合,管理的功能。
第二,數(shù)據(jù)庫(kù)裝置由用戶數(shù)據(jù)庫(kù)、主題數(shù)據(jù)庫(kù)、注冊(cè)數(shù)據(jù)庫(kù)、組合數(shù)據(jù)庫(kù)構(gòu)成,其中
·用戶數(shù)據(jù)庫(kù)里存放了三種用戶(服務(wù)提供者,服務(wù)請(qǐng)求者和本系統(tǒng)的管理員)的信息。
·主題數(shù)據(jù)庫(kù)里存放的是系統(tǒng)當(dāng)前運(yùn)行的主題的信息。
·組合數(shù)據(jù)庫(kù)里存放的是對(duì)一個(gè)主題的具體合成方案。
·注冊(cè)數(shù)據(jù)庫(kù)里存放的是服務(wù)開(kāi)發(fā)商注冊(cè)的信息。
第三,系統(tǒng)入口裝置,包含以下幾種入口·服務(wù)請(qǐng)求者入口,提供給服務(wù)請(qǐng)求者來(lái)查看系統(tǒng)發(fā)布的工作主題;進(jìn)入后,服務(wù)請(qǐng)求者選擇需要的服務(wù),并和組合管理裝置就QoS簽訂合同。組合成功后給服務(wù)請(qǐng)求者返回組合服務(wù)的WSDL文件。
·服務(wù)提供商入口,提供給服務(wù)提供商,用來(lái)按照發(fā)布的主題的要求來(lái)提供服務(wù)。通過(guò)這個(gè)界面進(jìn)入,可以看到系統(tǒng)發(fā)布的組合服務(wù)的流程,SCML(Service Composition Management Language)語(yǔ)言描述。SCML語(yǔ)言中包含了服務(wù)的功能描述和QoS描述。
·管理員入口,提供給系統(tǒng)管理員來(lái)管理本系統(tǒng).
第四,SCML2EP裝置,是將SCML文件轉(zhuǎn)換成可執(zhí)行流程,主要有下面的任務(wù)·生成可執(zhí)行的流程,(可以是BPEL4WS語(yǔ)言描述的流程,也可以是其它語(yǔ)言描述的流程)并將其交給可執(zhí)行環(huán)境裝置(EE裝置);·為流程中的每一個(gè)PortType生成其stubs,用于在運(yùn)行時(shí)綁定合適的原子服務(wù);·將SCML文件中的PortType填入到主題數(shù)據(jù)庫(kù)中的PortType表;·將SCML的Operation信息填入到主題數(shù)據(jù)庫(kù)中的Operation表;·將順序信息(將流程保存成圖)填入到組合數(shù)據(jù)庫(kù)中的Sequence表。
第五,執(zhí)行環(huán)境裝置(EE裝置)。用于執(zhí)行組合服務(wù)流程,通過(guò)對(duì)每一個(gè)組合方案的決策得到最滿足用戶QoS需求的組合方案,通過(guò)給stubs合適的portype ID來(lái)實(shí)現(xiàn)動(dòng)態(tài)的服務(wù)組合。
圖5是發(fā)明人給出的本系統(tǒng)的主要流程。
參照?qǐng)D5,它是本發(fā)明的結(jié)構(gòu)和執(zhí)行流程圖。其中在系統(tǒng)提供組合服務(wù)前需要的準(zhǔn)備工作步驟如下首先,將組合服務(wù)主題的SCML文件發(fā)布到系統(tǒng)的入口裝置上,服務(wù)提供者可以按需(SCML描述)提供原子服務(wù);其次,通過(guò)SCML2EP裝置將SCML文件轉(zhuǎn)換成可執(zhí)行的流程,最后,生成該組合服務(wù)的WSDL文件(注意,此時(shí)WSDL還不能執(zhí)行,只有在運(yùn)行時(shí)才動(dòng)態(tài)綁定原子服務(wù))存儲(chǔ)到主題數(shù)據(jù)庫(kù)和組合數(shù)據(jù)庫(kù)中。
這時(shí),服務(wù)請(qǐng)求者就可以使用服務(wù)請(qǐng)求入口裝置來(lái)使用組合服務(wù),首先,在系統(tǒng)入口裝置上找到自己需要的主題,也找到了該主題的WSDL文件(這個(gè)WSDL是對(duì)組合服務(wù)流程的描述,執(zhí)行的時(shí)候通過(guò)執(zhí)行環(huán)境EE來(lái)進(jìn)行),可是該WSDL不是可以執(zhí)行的。因?yàn)橹挥袧M足用戶QoS要求的方案才可以用來(lái)提交給用戶執(zhí)行;其次,按照SCML中提供的屬性,填寫(xiě)用戶和組合管理裝置之間的合同;再次,組合管理裝置按照服務(wù)請(qǐng)求者和其之間簽訂的合同選擇合適的子服務(wù),將用戶要求的服務(wù)的operation提交給stubs執(zhí)行。最后,當(dāng)收到用戶的請(qǐng)求時(shí)在EE執(zhí)行這個(gè)可執(zhí)行流程,并按照用戶的QoS需求綁定每一個(gè)原子服務(wù)。
對(duì)于服務(wù)提供者來(lái)說(shuō),他們通過(guò)服務(wù)提供者的系統(tǒng)入口裝置發(fā)現(xiàn)本系統(tǒng)提供的主題及其發(fā)布的SCML文件,可以將服務(wù)提供者提供的Web服務(wù)的EWSDL文件注冊(cè)到本系統(tǒng)的注冊(cè)裝置中;而本系統(tǒng)的管理員可以通過(guò)系統(tǒng)入口裝置的管理員入口進(jìn)入,來(lái)管理本系統(tǒng)中的注冊(cè)裝置,數(shù)據(jù)庫(kù)裝置,和組合管理裝置。
參照?qǐng)D6,其為本發(fā)明組合檢測(cè)的流程圖。
首先進(jìn)行步驟101,確定組合服務(wù)選擇的服務(wù)類的個(gè)數(shù)初始化全局變量i,i表示組合服務(wù)流程中需要進(jìn)行選擇的服務(wù)的數(shù)量,
接下來(lái)進(jìn)行步驟102,從本系統(tǒng)的管理中心的注冊(cè)中心中查找服務(wù)類,然后進(jìn)入步驟103,即檢查現(xiàn)有的服務(wù)類的功能是否滿足用戶對(duì)該功能的需要,如果可以找到滿足的服務(wù)類,則進(jìn)入步驟104,否則進(jìn)入步驟110。在步驟110輸出本系統(tǒng)中沒(méi)有足夠的原子服務(wù)。在步驟104,將循環(huán)的次數(shù)減少,并進(jìn)入步驟106,如果這時(shí)循環(huán)仍未結(jié)束,則跳入步驟102。直到找到所有的業(yè)務(wù)類。
在步驟106要對(duì)服務(wù)的QoS屬性進(jìn)行檢查,進(jìn)入步驟107,如果組合服務(wù)的QoS符合用戶的要求則進(jìn)入108,否則進(jìn)入109。在步驟108,將組合的結(jié)果輸出,并結(jié)束組合。在步驟109,判斷是否對(duì)服務(wù)類中的候選服務(wù)的組合遍歷完全,如果沒(méi)有,則繼續(xù)進(jìn)行步驟106,否則進(jìn)入步驟110。在步驟110,輸出服務(wù)組合結(jié)果,并結(jié)束組合。
權(quán)利要求
1.一種基于計(jì)算機(jī)網(wǎng)絡(luò)的QoS驅(qū)動(dòng)的提供組合Web服務(wù)的計(jì)算機(jī)系統(tǒng),其特征在于,該計(jì)算機(jī)系統(tǒng)至少包括一個(gè)組合管理裝置,用于管理服務(wù)的查找、服務(wù)QoS的組合和管理;通過(guò)對(duì)每一個(gè)組合方案的決策得到最滿足用戶QoS需求的組合方案;一個(gè)數(shù)據(jù)庫(kù)裝置,由用戶數(shù)據(jù)庫(kù)、主題數(shù)據(jù)庫(kù)、注冊(cè)數(shù)據(jù)庫(kù)、組合數(shù)據(jù)庫(kù)構(gòu)成,其中一個(gè)用戶數(shù)據(jù)庫(kù),用于存放服務(wù)提供者,服務(wù)請(qǐng)求者和系統(tǒng)管理員這三種用戶的身份驗(yàn)證信息;一個(gè)主題數(shù)據(jù)庫(kù),用于存放系統(tǒng)當(dāng)前發(fā)布的主題的信息;一個(gè)組合數(shù)據(jù)庫(kù),用于存放組合管理裝置完成的一個(gè)主題的具體組合方案;一個(gè)注冊(cè)數(shù)據(jù)庫(kù),用于存放的服務(wù)開(kāi)發(fā)商注冊(cè)的信息;一個(gè)SCML2EP裝置,用于將SCML文件轉(zhuǎn)換成可執(zhí)行流程,并將其交給執(zhí)行環(huán)境裝置;一個(gè)注冊(cè)裝置,用于存儲(chǔ)那些注冊(cè)到本系統(tǒng)的Web服務(wù)的EWSDL文件;一個(gè)執(zhí)行環(huán)境裝置,用于執(zhí)行組合服務(wù)流程,通過(guò)給stubs合適的portypeID來(lái)實(shí)現(xiàn)動(dòng)態(tài)的服務(wù)組合;一個(gè)系統(tǒng)入口裝置,該系統(tǒng)入口裝置針對(duì)不同的用戶分為三種類型的入口①服務(wù)請(qǐng)求者入口,用于提供給服務(wù)請(qǐng)求者來(lái)查看系統(tǒng)發(fā)布的工作主題,通過(guò)本裝置進(jìn)入系統(tǒng),服務(wù)請(qǐng)求者可以選擇需要服務(wù)的主題,并和組合管理裝置就服務(wù)的QoS簽訂合同,組合成功后或者在組合數(shù)據(jù)庫(kù)中找到合適服務(wù)后,給服務(wù)請(qǐng)求者返回組合服務(wù)的WSDL文件;②服務(wù)提供商入口,用于服務(wù)提供商查找組合主題,并按照主題的要求來(lái)提供原子服務(wù),通過(guò)這個(gè)入口進(jìn)入系統(tǒng),可以看到系統(tǒng)發(fā)布的SCML語(yǔ)言描述的組合服務(wù)的流程,SCML語(yǔ)言中還包含了服務(wù)的功能描述和QoS描述;③管理員入口,用于給系統(tǒng)管理員提供管理本系統(tǒng)的入口;上述組合管理裝置分別與系統(tǒng)入口裝置、數(shù)據(jù)庫(kù)裝置、注冊(cè)裝置互連,系統(tǒng)入口裝置還分別和數(shù)據(jù)庫(kù)裝置、注冊(cè)裝置連接,SCML2EP裝置與數(shù)據(jù)庫(kù)裝置連接。
2.如權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其特征在于,所述的將SCML文件轉(zhuǎn)換成可執(zhí)行流程的主要任務(wù)是①生成可執(zhí)行的流程;②為流程中的每一個(gè)PortType生成其stubs,用于在運(yùn)行時(shí)綁定合適的原子服務(wù);③將SCML文件中的PortType填入到主題數(shù)據(jù)庫(kù)中的PortType表;④將SCML的Operation信息填入到主題數(shù)據(jù)庫(kù)中的Operation表;⑤將順序信息或流程保存成圖,填入到組合數(shù)據(jù)庫(kù)中的Sequence表。
全文摘要
本發(fā)明公開(kāi)了一種基于計(jì)算機(jī)網(wǎng)絡(luò)的QoS驅(qū)動(dòng)的提供組合Web服務(wù)的計(jì)算機(jī)系統(tǒng),它包括組合管理裝置、數(shù)據(jù)庫(kù)裝置、用戶數(shù)據(jù)庫(kù)、主題數(shù)據(jù)庫(kù)、組合數(shù)據(jù)庫(kù)、注冊(cè)數(shù)據(jù)庫(kù)、注冊(cè)裝置、執(zhí)行環(huán)境裝置、系統(tǒng)入口裝置,該計(jì)算機(jī)系統(tǒng)能夠盡可能的利用現(xiàn)有的分布在計(jì)算機(jī)網(wǎng)絡(luò)中的Web服務(wù)資源,通過(guò)按照QoS需求進(jìn)行服務(wù)組合的方式來(lái)滿足計(jì)算機(jī)用戶不可預(yù)料的對(duì)新服務(wù)的使用要求。該系統(tǒng)通過(guò)對(duì)現(xiàn)有的服務(wù)描述標(biāo)準(zhǔn)語(yǔ)言WSDL進(jìn)行語(yǔ)法擴(kuò)展得到新的服務(wù)描述語(yǔ)言EWSDL,使用EWSDL可以對(duì)Web服務(wù)QoS屬性進(jìn)行描述,在組合時(shí)可以根據(jù)每個(gè)原子服務(wù)的EWSDL文件中的QoS參數(shù)信息按照用戶的需要計(jì)算機(jī)網(wǎng)絡(luò)上的現(xiàn)有Web服務(wù)找到合適的原子服務(wù)進(jìn)行組合從而快速滿足不同用戶的對(duì)服務(wù)的功能和質(zhì)量的需求。
文檔編號(hào)G06Q30/00GK1764183SQ20051009629
公開(kāi)日2006年4月26日 申請(qǐng)日期2005年11月3日 優(yōu)先權(quán)日2005年11月3日
發(fā)明者李增智, 陳彥萍, 晉勤學(xué), 楊懷洲, 王創(chuàng), 夏虹 申請(qǐng)人:西安交通大學(xué)