陳小紅,孟穎超
(河南省電力勘測設(shè)計院,鄭州 450007)
電力工業(yè)的改革將逐步形成以競價為基礎(chǔ)的電力市場,競爭激烈的電力市場必將在能量管理系統(tǒng)(EMS)、電量計量(TMR)系統(tǒng)、廣域?qū)崟r動態(tài)測量系統(tǒng)(WAMS)、企業(yè)資源計劃(ERP)系統(tǒng)以及其他電站自動化系統(tǒng)等多個信息系統(tǒng)間實現(xiàn)數(shù)據(jù)共享和應(yīng)用集成。但從電力信息系統(tǒng)的建設(shè)現(xiàn)狀來看,以“縱向?qū)哟味?、橫向系統(tǒng)多”為主要特征的“信息孤島”現(xiàn)象較為普遍,缺乏對應(yīng)用系統(tǒng)的全局視圖以及統(tǒng)一的計算平臺,很難發(fā)揮全局統(tǒng)籌規(guī)劃和協(xié)作的整體優(yōu)勢?!靶畔⒐聧u”的主要表現(xiàn)有:相似的系統(tǒng),功能不盡相同;相似的功能,分散在不同系統(tǒng);相同的數(shù)據(jù),存放在多個不同系統(tǒng),彼此間不一致;各系統(tǒng)間缺乏聯(lián)系和有效整合,信息不能共享,業(yè)務(wù)不能協(xié)同開展,信息孤島問題已越來越制約整個電力系統(tǒng)生產(chǎn)效率的提升。針對以上問題,迫切需要進(jìn)行各系統(tǒng)之間的資源整合和溝通。
上述需求對信息技術(shù)提出了巨大挑戰(zhàn),而近年來在實際需求的牽引下,信息技術(shù)也有了長足的發(fā)展。Web Services和面向服務(wù)的架構(gòu)(SOA)越來越受到人們的關(guān)注,并且在科學(xué)計算、制造業(yè)、電子政務(wù)、電力行業(yè)很多領(lǐng)域得到廣泛應(yīng)用。由不同的提供者提供的、可供他人選擇和利用的網(wǎng)絡(luò)服務(wù)在逐漸增多。服務(wù)數(shù)量的不斷增加以及服務(wù)提供者之間的競爭會產(chǎn)生許多功能相近的服務(wù)。目前,基于服務(wù)功能信息的服務(wù)發(fā)現(xiàn)機(jī)制,如通用描述、發(fā)現(xiàn)與集成服務(wù)(UDDI)中的服務(wù)發(fā)現(xiàn)機(jī)制[1],不能有效地對這些功能相似的服務(wù)進(jìn)行區(qū)分。服務(wù)使用者不僅要獲得滿足自己功能要求的服務(wù),還渴望能根據(jù)自己的特定需要選擇當(dāng)前情形下最合適的服務(wù),如對一些關(guān)鍵性的任務(wù),使用者傾向于選擇可靠性、安全性高的服務(wù),對一些次要的任務(wù)可選擇價格較低、安全性適中的服務(wù)等。
目前已經(jīng)有很多研究將服務(wù)質(zhì)量(QoS)引入服務(wù)描述中,建立基于服務(wù)功能信息和QoS信息的服務(wù)發(fā)現(xiàn)模型。所謂QoS信息不是描述服務(wù)能夠?qū)崿F(xiàn)哪些功能,而是描述服務(wù)如何實現(xiàn)這些功能,如服務(wù)的執(zhí)行時間、服務(wù)的可靠性等[2-3]。目前,一些研究關(guān)注于擴(kuò)展現(xiàn)有的Web Services體系中服務(wù)注冊、服務(wù)發(fā)現(xiàn)模型,例如, 在已有的服務(wù)提供者、服務(wù)消費者、服務(wù)注冊機(jī)構(gòu)這3個角色的基礎(chǔ)上增加QoS保證者角色,從而將服務(wù)的QoS納入服務(wù)發(fā)現(xiàn)模型中[4]。Web Services一般情況下由第三方服務(wù)提供者提供,由于它是在因特網(wǎng)環(huán)境下動態(tài)調(diào)用,服務(wù)之間的QoS差異非常大,因此,要想把QoS屬性全面引入面向服務(wù)的應(yīng)用系統(tǒng)中,實現(xiàn)基于功能信息和QoS信息的服務(wù)發(fā)現(xiàn)機(jī)制,有必要建立一個QoS描述模型,使得應(yīng)用系統(tǒng)能獲得服務(wù)提供商對QoS屬性的描述以及服務(wù)使用者的QoS屬性需求,最終在服務(wù)合成時,系統(tǒng)可以更好地選擇用戶所需的服務(wù)。建立這樣的描述模型要解決的關(guān)鍵在于:如何根據(jù)應(yīng)用系統(tǒng)的要求,定制QoS屬性描述集合,如何描述QoS屬性的信息,如何實現(xiàn)基于這些屬性信息的服務(wù)選取以及如何描述用戶的QoS需求。本文將結(jié)合一個實際系統(tǒng)建設(shè)中有關(guān)QoS屬性的具體問題,探討面向服務(wù)應(yīng)用的QoS描述模型的設(shè)計、系統(tǒng)支持和應(yīng)用。
PoSOA系統(tǒng)是一個基于SOA的電力綜合應(yīng)用系統(tǒng),其目標(biāo)是面向電力用戶開發(fā)能夠提供一站式、集成化的面向服務(wù)的綜合應(yīng)用系統(tǒng),涉及的應(yīng)用領(lǐng)域眾多。服務(wù)的提供者遍及各個方面,提供的服務(wù)數(shù)量眾多,不可避免地會存在相當(dāng)多的功能相近的服務(wù)。用戶對信息服務(wù)的要求千差萬別,僅描述功能上的需求不能很好滿足用戶的需要。因此,有必要在PoSOA應(yīng)用系統(tǒng)中建立基于服務(wù)功能信息和QoS信息的服務(wù)選取機(jī)制。由于PoSOA應(yīng)用系統(tǒng)是基于因特網(wǎng)的應(yīng)用系統(tǒng),其動態(tài)性和不確定性要求我們建立完善的異常處理機(jī)制,在異常處理機(jī)制中,當(dāng)某個服務(wù)不可用時,要尋找功能相近且能滿足用戶QoS需求的服務(wù)來替換,這種服務(wù)的替換也需要QoS屬性的支持。因此,在認(rèn)真分析了PoSOA應(yīng)用系統(tǒng)對引入服務(wù)的QoS屬性的要求后,作者提出了一種面向服務(wù)應(yīng)用的QoS描述模型,在該描述模型的基礎(chǔ)上,對面向服務(wù)的應(yīng)用系統(tǒng)中的3個角色提供QoS屬性方面的支持,并以此為基礎(chǔ)在PoSOA應(yīng)用系統(tǒng)中引入服務(wù)的QoS屬性,實現(xiàn)基于服務(wù)綜合信息(包含功能信息和QoS信息)的服務(wù)選取和服務(wù)替換。
在分布式應(yīng)用系統(tǒng)和面向服務(wù)的應(yīng)用系統(tǒng)中,已經(jīng)有一些研究工作關(guān)注服務(wù)的QoS描述和應(yīng)用。NoFun[5]是一種QoS描述語言,這個描述語言分成3個部分:第1部分是在ISO/IEC 9126規(guī)范的基礎(chǔ)上確定系統(tǒng)描述的QoS需求集合以及集合元素之間的關(guān)系(是一種樹狀的層次結(jié)構(gòu));第2部分是為每個組件的基本屬性,即樹狀層次結(jié)構(gòu)的葉子節(jié)點添加QoS信息;第3部分描述系統(tǒng)的QoS需求。NoFun描述語言將抽象模型(ISO/IEC 9126規(guī)范)和應(yīng)用系統(tǒng)的具體描述模型(QoS需求集合)分離,使得應(yīng)用系統(tǒng)可以較容易定制適合特定應(yīng)用系統(tǒng)的QoS屬性描述集合。QML作為一個通用的QoS建模語言,采用類似接口定義語言(IDL)的方式描述組件的QoS屬性。QML描述的QoS信息和應(yīng)用系統(tǒng)聯(lián)系比較緊密,較好地將QoS屬性信息集成到應(yīng)用系統(tǒng)中。Web服務(wù)提供語言(WSOL)兼容W3C的Web服務(wù)描述文件(WSDL),添加對Web Ser-vices的QoS約束、訪問權(quán)限以及Web Services之間關(guān)系的描述信息。WSOL對Web Services的描述內(nèi)容比WSDL更加豐富,對Web Services的描述也更加準(zhǔn)確,但WSOL沒有考慮服務(wù)使用者的QoS需求描述。
借鑒NoFun將抽象模型和應(yīng)用系統(tǒng)具體描述集合分離的思想,結(jié)合服務(wù)這種新式組件的特性,建立了適應(yīng)面向服務(wù)式應(yīng)用的QoS描述模型,如圖1所示。
圖1 QoS描述模型
對一個特定的應(yīng)用系統(tǒng)而言,其QoS描述模型包括3個部分。
(1)QoS屬性描述內(nèi)容(Content文件的內(nèi)容)。這一部分主要是確定QoS屬性描述的內(nèi)容屬性之間的層次關(guān)系以及屬性的描述類型。
(2)描述模型內(nèi)部處理策略(Process文件)。主要針對描述集合中的組合屬性描述如何根據(jù)其子節(jié)點的屬性值得到該節(jié)點的屬性值。
(3)屬性匹配算法。為描述結(jié)構(gòu)中的每個屬性建立屬性值匹配算法。
下面詳細(xì)討論這3個方面。
2.2.1 描述集合的定制和屬性的描述結(jié)構(gòu)(Content文件)
在這個描述模型中,作者根據(jù)文獻(xiàn)[4]提出的QoS屬性描述范圍,結(jié)合面向服務(wù)應(yīng)用系統(tǒng)的動態(tài)、靈活、變化迅速的特點,設(shè)計了一個基本的QoS屬性本體。借助QoS屬性本體的支持,應(yīng)用系統(tǒng)的開發(fā)人員可以根據(jù)應(yīng)用系統(tǒng)的具體情況選擇該本體的一個子集,作為當(dāng)前應(yīng)用系統(tǒng)的QoS屬性集合。集合中的元素,即QoS屬性之間存在樹狀的層次結(jié)構(gòu),這個層次結(jié)構(gòu)把集合中的QoS屬性分為3種:根節(jié)點(QoS)是一個沒有實際意義的節(jié)點;葉子節(jié)點叫作基本屬性,服務(wù)注冊時僅對這些屬性賦值;其余節(jié)點稱作復(fù)合屬性,這些復(fù)合屬性的子孫中至少有一個基本屬性。然后,在描述類型本體的支持下,為集合中的每個屬性建立屬性描述結(jié)構(gòu),這個描述結(jié)構(gòu)主要包括屬性名稱、屬性父節(jié)點、屬性關(guān)聯(lián)的QoS本體、數(shù)據(jù)類型及描述單位,比如,對一個特定的屬性“服務(wù)執(zhí)行時間”,其描述結(jié)構(gòu)如下:
2.2.2 描述模型內(nèi)部處理策略(Process文件)
服務(wù)提供商在服務(wù)注冊時,只允許在基本屬性節(jié)點上注冊QoS屬性信息,這樣做的目的主要基于兩方面的考慮。
(1)如果允許服務(wù)提供者在復(fù)合屬性和基本屬性上都注冊屬性值,由于服務(wù)提供者的屬性計算策略和應(yīng)用系統(tǒng)的屬性計算策略不可能完全相同,就會造成信息的混亂和浪費。
(2)將描述粒度限制在基本屬性,可以有效避免由于描述粒度不同造成的屬性描述信息不足。
由于服務(wù)提供者僅僅在葉子節(jié)點(屬性層)注冊QoS屬性信息,為了得到其他層的QoS屬性信息,需要建立描述模型的內(nèi)部處理策略,可以根據(jù)所有屬性節(jié)點的信息得到子特性以及特性的信息。確定了QoS描述模型的描述內(nèi)容和描述結(jié)構(gòu)后,系統(tǒng)開發(fā)人員要針對每個特性和子特性設(shè)計特定的內(nèi)部處理算法。
2.2.3 屬性匹配策略(Match文件)
服務(wù)的QoS屬性涉及范圍比功能屬性更廣,包含的類型也比較復(fù)雜,和應(yīng)用系統(tǒng)的依賴關(guān)系也更加密切。不同QoS屬性之間在描述和處理上有明顯的差異,即使相同的QoS屬性,在不同的應(yīng)用系統(tǒng)中的描述策略和處理策略也不一樣。這種個性化的特點使得我們不能用一種統(tǒng)一的方式處理所有的QoS屬性,因此,系統(tǒng)設(shè)計開發(fā)人員對描述模型中的每個非根節(jié)點設(shè)計開發(fā)特定的屬性匹配算法,這些屬性匹配算法作為以后基于QoS屬性的服務(wù)選擇的基礎(chǔ)。
上述3個文件構(gòu)成了整個QoS描述模型的主要內(nèi)容,針對不同應(yīng)用系統(tǒng)的特點,給這些文件確定具體的描述內(nèi)容,形成針對特定系統(tǒng)的QoS描述模型。下面就以PoSOA應(yīng)用系統(tǒng)為例,介紹QoS描述模型的具體實現(xiàn)。
考慮到服務(wù)的QoS屬性和應(yīng)用系統(tǒng)聯(lián)系緊密的特點,作者根據(jù)PoSOA系統(tǒng)自身的特點以及系統(tǒng)面向的用戶需求,在QoS屬性本體的支持下,設(shè)計了該系統(tǒng)的QoS描述結(jié)構(gòu)。PoSOA應(yīng)用系統(tǒng)面向不同層次的用戶,他們對信息服務(wù)需求的差異性比較大,但還是有一些共性,他們關(guān)心的主要是和服務(wù)使用相關(guān)的問題。作者根據(jù)用戶這些共性要求,選擇出QoS本體中與服務(wù)使用相關(guān)的屬性,作為QoS描述模型的主要描述內(nèi)容,同時根據(jù)系統(tǒng)異常處理的需要,增加了一些服務(wù)可用性方面的內(nèi)容,這些內(nèi)容構(gòu)成了整個系統(tǒng)的QoS屬性描述結(jié)構(gòu)(如圖2所示),同時還為每個屬性建立其描述方式,最后生成XML格式的描述內(nèi)容文件(Content文件)。
圖2 電力應(yīng)用系統(tǒng)的QoS描述結(jié)構(gòu)
在該描述結(jié)構(gòu)的基礎(chǔ)上,作者對其中的非葉子節(jié)點(根節(jié)點除外)設(shè)計了模型內(nèi)部處理算法。例如,對子屬性有效性,處理算法可以描述如下:如果當(dāng)前時間在有效時間范圍內(nèi),有效區(qū)域包含電力應(yīng)用系統(tǒng)的應(yīng)用范圍,有效性為“2”;如果當(dāng)前時間在有效時間范圍內(nèi),有效區(qū)域不包含在系統(tǒng)的應(yīng)用范圍但是兩者有交集,有效性為“1”;如果當(dāng)前時間不在有效范圍內(nèi)或有效區(qū)域和系統(tǒng)的應(yīng)用范圍沒有交集,其有效性為“0”。
同時,對描述模型中的每一個非根節(jié)點建立屬性匹配算法,所有的屬性匹配算法都在Match文件中描述。以有效時間為例,在描述模型中,有效時間的數(shù)據(jù)類型是一個區(qū)間類型{start, end},其屬性匹配算法如下:
UsefulLife_Match(String c_time){
if (c_time.compareTo(UsefulLife.start)>=0){
if(c_time.compareTo(UsefulLife.end)<=0)
return true;}
else return false}
要在PoSOA應(yīng)用系統(tǒng)全面引入QoS屬性作為服務(wù)選取的輔助手段,在已確定的QoS描述模型的基礎(chǔ)上,對SOA中的3個基本角色提供相關(guān)工具支持,如圖3所示。這些工具主要包括QoS屬性注冊工具、QoS需求描述工具以及基于QoS屬性的服務(wù)選取工具。
3.2.1 QoS屬性注冊工具
在PoSOA應(yīng)用QoS屬性描述模型中,所有的屬性層節(jié)點(也就是樹結(jié)構(gòu)的葉子節(jié)點)可以分為3類:第1類屬性必須由服務(wù)提供者提供初始值和屬性更新,這類屬性包括執(zhí)行時間、有效時間、有效區(qū)域、安全等級、服務(wù)使用價格、服務(wù)執(zhí)行價格、服務(wù)版本及服務(wù)提供商;第2類屬性由服務(wù)提供者提供初始值,由應(yīng)用系統(tǒng)進(jìn)行屬性更新,這類屬性包括恢復(fù)時間、訪問時間及反饋時間;第3類屬性由應(yīng)用系統(tǒng)提供初始值,并由系統(tǒng)進(jìn)行信譽(yù)等級、客戶評價等級及出錯概率等屬性的更新。由于服務(wù)提供者只關(guān)注前2類屬性的注冊,因此從中抽出第1類和第2類屬性,按照描述內(nèi)容的層次結(jié)構(gòu)形成服務(wù)使用者非QoS注冊模型,并要求服務(wù)提供者根據(jù)這個注冊模型,填入相應(yīng)的屬性值以及描述類型。注冊完成之后,形成一個獨立的XML格式的服務(wù)QoS屬性描述文件,該文件和WSDL[6]一起完成對服務(wù)的描述。
圖3 QoS描述模型對SOA的3種角色的支持
3.2.2 QoS需求描述工具
考慮電力應(yīng)用用戶需求多樣性的特點,作者在QoS描述模型的基礎(chǔ)上,為服務(wù)使用者設(shè)計了可靈活定制的QoS需求描述模型。QoS需求描述模型的描述內(nèi)容和描述結(jié)構(gòu)與QoS屬性描述模型一致,不同之處有2點:(1)在QoS需求模型中,所有節(jié)點只包括屬性名稱、屬性語義信息和屬性描述類型,不包含內(nèi)部處理策略以及屬性匹配策略;(2)服務(wù)使用者可以在描述模型的任何非根節(jié)點提出QoS需求,不只限制在屬性節(jié)點層次。這個需求描述模型不但能使服務(wù)使用者比較靈活地描述自己的QoS需求,而且它和QoS描述模型在結(jié)構(gòu)上的相似可以降低應(yīng)用系統(tǒng)在處理QoS需求時的難度。
在這個需求描述模型基礎(chǔ)上,服務(wù)使用者可以根據(jù)自己的需要,選擇自己的QoS需求描述的屬性集合,提出自己對服務(wù)QoS屬性的要求。最后根據(jù)系統(tǒng)提供的工具生成XML格式的QoS需求描述文件。
3.2.3 基于QoS屬性的服務(wù)選取工具
在PoSOA應(yīng)用系統(tǒng)中,首先根據(jù)服務(wù)的功能屬性,得到一個滿足用戶功能需求的服務(wù)初選集合。在這個集合中,通過解析用戶的QoS需求描述文件和服務(wù)提供者QoS注冊描述文件,結(jié)合描述模型中的每個屬性的匹配算法,選擇出滿足用戶QoS需求的那些服務(wù)并根據(jù)用戶或系統(tǒng)設(shè)定的屬性優(yōu)先級別將這些服務(wù)排序,形成服務(wù)的候選隊列,作為執(zhí)行服務(wù)的依據(jù),同時還可以在出現(xiàn)異常時作為服務(wù)替換的依據(jù)。
本文提出了一種基于SOA應(yīng)用的QoS描述模型,并在電力應(yīng)用系統(tǒng)中實現(xiàn)了該描述模型以及相關(guān)處理工具。在PoSOA系統(tǒng)中的基于語義的服務(wù)組合中引入QoS屬性作為服務(wù)選取的重要輔助手段,有效地實現(xiàn)了功能相近服務(wù)的區(qū)分,使得服務(wù)的選取更加具有針對性;同時,還為電力應(yīng)用系統(tǒng)中異常處理機(jī)制中的服務(wù)替換問題,提供了一個解決途徑。
在下一步工作中,作者希望在QoS描述模型的基礎(chǔ)上,借助本體技術(shù)的支持實現(xiàn)服務(wù)提供者對QoS屬性注冊的定制,這種定制包括注冊的內(nèi)容、屬性的描述結(jié)構(gòu)等。
參考文獻(xiàn):
[1]RICHARDS R.Universal description,discovery and integration of Web services(UDDI)[M]//Pro Php Xml & Web Services.State of Texas:Springer-Verlag,2006:751-780.
[2]CHUANG L,NIXON B A,YU E,et al.Non-functional requirements in software engineering[M].Boston:Kluwer Academic Publishers,1999.
[3]CAMPBELL A,COULSON G,HUTCHISON D.A quality of service architecture[J].Computer Communications Review,1994,24(2):6-27.
[4]RAN S P.A model for web services discovery with QoS[J].ACM SIGecom Exchanges,2003,4(1):1-10.
[5]BOTELLA P,BURGUES X,FRANCH X,et al. Modeling non-functional requirements[C]//Proceedings of Jornadas de Ingenieria de Requisitos Aplicada, Sevilla:2001.
[6]TIAN M,GRAMM A,NAUMOWICZ T,et al.A concept for QoS integration in Web services[C]// Rome:Web Services Quality Workshop and Wise,2003:149-155.