謝晉雄
英德市職業(yè)技術(shù)學校,廣東 清遠 513000
一種基于語義的Web服務(wù)組合框架的設(shè)計
謝晉雄
英德市職業(yè)技術(shù)學校,廣東 清遠 513000
目前,越來越多的公司、企業(yè)將自己的各種應(yīng)用以Web服務(wù)的形式發(fā)布在網(wǎng)上,而隨著其應(yīng)用的復(fù)雜性日益增強,單靠企業(yè)內(nèi)部提供的業(yè)務(wù)功能越來越難以滿足實際的需求。如果我們能夠合理設(shè)計出一種基于語義的Web服務(wù)組合框架,把已經(jīng)存在的簡單的不能滿足需求的服務(wù)組合成為全新的能夠滿足需求的服務(wù),這對于降低公司運行成本、提高服務(wù)的使用效率,提升企業(yè)綜合競爭力具有重要的現(xiàn)實意義[1]。
目前來講,服務(wù)組合方法可以分為靜態(tài)組合方法和動態(tài)組合方法兩種。而動態(tài)組合方法在日益多變的網(wǎng)絡(luò)服務(wù)環(huán)境中能夠反映和滿足用戶的需求,鑒于此本文主要研究動態(tài)服務(wù)組合問題。下圖1是本文設(shè)計的Web服務(wù)組合整體框架圖,其主要包括服務(wù)的描述、服務(wù)的發(fā)布、消息的交互、服務(wù)的匹配和服務(wù)的裝載等[2][3]。
圖1 Web服務(wù)組合框架
圖1各模塊的功能如下:
協(xié)同工作管理器:是各設(shè)備之間進行通訊的中轉(zhuǎn)站,實現(xiàn)對UDDI上各種服務(wù)的發(fā)布與更新的管理,完成層次結(jié)構(gòu)生成協(xié)議的構(gòu)造。
服務(wù)裝載模塊:主要負責調(diào)用系統(tǒng)設(shè)備提供的各種服務(wù)以響應(yīng)用戶的個性化需求。此模塊在這個系統(tǒng)中處于核心地位。
流程定義文檔:完成業(yè)務(wù)流程組合過程中所需的各種語義需求描述,有了它,服務(wù)在組合過程就有了語義,能夠更快找到目標服務(wù)。
UDDI:服務(wù)發(fā)布中心和管理中心,保存了系統(tǒng)發(fā)布的所有服務(wù),并管理著這些服務(wù),使之形成相應(yīng)的服務(wù)列表,使得在服務(wù)組合過程,方便這些服務(wù)被服務(wù)裝載模塊調(diào)用。
組合服務(wù)引擎:在服務(wù)匹配階段,服務(wù)引擎將流程定義文檔中的Web服務(wù)作為目標,從UDDI上的候選服務(wù)中查找匹配的服務(wù),形成服務(wù)組合實例。通過使用OWL邏輯推理,組合服務(wù)引擎可以對使用不同語法和不同模型抽象的候選服務(wù)與請求之間進行基于語義的匹配。
消息交互模塊:是系統(tǒng)上下模塊間進行信息交互的中介。工作時,此模塊根據(jù)業(yè)務(wù)功能的需求,在建立相應(yīng)組合規(guī)則的基礎(chǔ)上判斷當前的服務(wù)組合結(jié)果是否滿足用戶的要求,如果得到的結(jié)果與所需的結(jié)果不一致時,消息交互模塊立即通知服務(wù)裝載模塊,然后調(diào)整服務(wù)組合方案。
一般來講,傳統(tǒng)的服務(wù)組合平臺其服務(wù)發(fā)布方式不外乎有兩種:一是功能分散化,要求各個設(shè)備自己去找到滿足需求的業(yè)務(wù);二是功能集中化,即讓某一管理控制中心去管理系統(tǒng)上的所有資源,由它統(tǒng)一去響應(yīng)客戶需求。但是,一般在網(wǎng)絡(luò)服務(wù)環(huán)境中絕大部分計算設(shè)備是由多種不同計算資源構(gòu)成,它們之間存在很大的差異性,且由于這些設(shè)備具有可移動性和服務(wù)的動態(tài)性等特點,采用傳統(tǒng)的服務(wù)組合方式再也難以滿足要求。鑒于此,本文提出一種層次結(jié)構(gòu)的服務(wù)組織方式來進行服務(wù)組合,能很好地克服了網(wǎng)絡(luò)服務(wù)環(huán)境存在的問題。
根據(jù)網(wǎng)絡(luò)服務(wù)環(huán)境中設(shè)備的性能差異,在這里我們將它劃分為四個級別:低級L1、初級L2、中級L3和高級L4。
低級設(shè)備:表示服務(wù)不具備直接發(fā)布服務(wù)能力的設(shè)備,它必須借比它更高級別的設(shè)備的協(xié)助才能完成業(yè)務(wù)功能的需求。如簡單的傳感器,傳統(tǒng)的打印機等。
初級設(shè)備:表示具有軟件模塊宿主計算能力的設(shè)備,能夠直接向外提供服務(wù)。如智能傳感器。
中級設(shè)備:這些設(shè)備一般具有可移動性,不僅可以直接向外提供服務(wù),還有發(fā)布服務(wù)的功能。如手提電腦、智能手機等。
高級設(shè)備:跟中級設(shè)備有相同的功能,不同之處是其計算能力更強,且一般作為固定設(shè)備,沒有什么特殊情況不予以移動。如服務(wù)器。
根據(jù)上節(jié)給出的設(shè)備劃分標準,可以構(gòu)造出一個層次結(jié)構(gòu)的服務(wù)組織方式:當一臺設(shè)備A進入到服務(wù)系統(tǒng)中時,首先向系統(tǒng)發(fā)布廣播消息INFO_BROADCAST(包含設(shè)備A的分類級別L(A)),等待周圍系統(tǒng)的服務(wù)設(shè)備作出回應(yīng)。設(shè)備B收到的設(shè)備A發(fā)來的廣播消息后,會跟自身的分類級別L(B)進行比較,若L(A)
圖2 實例生成協(xié)議時序圖
層次結(jié)構(gòu)的生成的原則是:任一設(shè)備有且只有一個父節(jié)點,當某一個設(shè)備節(jié)點已經(jīng)有了一個父設(shè)備節(jié)點之后,就必須拒絕其他上級設(shè)備節(jié)點發(fā)來的INFO_INVITE邀請消息,并回復(fù)一個INFO_NACK消息告知對方自己已經(jīng)有父節(jié)點了。
服務(wù)裝載模塊(Service loading Module)是工作在中級和高級級別設(shè)備上的軟件模塊(服務(wù)使用者直接面對的模塊),中級設(shè)備上的服務(wù)裝載模塊查詢服務(wù)域包括其同級節(jié)點加上其父節(jié)點的服務(wù)管理域。而高級設(shè)備上的服務(wù)裝載模塊查詢服務(wù)域是所有的高級設(shè)備節(jié)點上的服務(wù)管理域。下面我們來看一下服務(wù)管理域和服務(wù)查詢域的定義。
服務(wù)管理域:包括設(shè)備本身及其子節(jié)點設(shè)備發(fā)布的所有服務(wù)。這些服務(wù)都存儲UDDI中,每個中級和高級級別的設(shè)備都通過UDDI來管理服務(wù)發(fā)布的描述信息,以響應(yīng)服務(wù)的查詢請求。當設(shè)備節(jié)點需要新增或者刪除服務(wù)時,可分別通過向上級設(shè)備節(jié)點發(fā)送INFO_ADD消息和INFO_REMOVE消息。
服務(wù)查詢域:服務(wù)裝載模塊向UDDI發(fā)出請求后,UDDI返回的查詢結(jié)果范圍即是服務(wù)查詢范圍。服務(wù)裝載模塊在進行服務(wù)匹配的時候,首先要通過流程定義文檔中的用戶需求描述同服務(wù)系統(tǒng)中所能實際提供的各種服務(wù)進行比較和匹配,然后返回UDDI可能的查詢結(jié)果。
網(wǎng)絡(luò)服務(wù)環(huán)境下服務(wù)組合的查詢具有位置相關(guān)性。比如在層次結(jié)構(gòu)的服務(wù)組合框架下,不同級別設(shè)備上運行的服務(wù)裝載模塊程序在進行服務(wù)查詢和組合時,首先查詢該設(shè)備上的UDDI上的服務(wù)記錄,也就是服務(wù)管理域。若在UDDI上沒有找到可組合的服務(wù)時,就將查詢范圍擴散到該設(shè)備節(jié)點的服務(wù)查詢域。
網(wǎng)絡(luò)服務(wù)環(huán)境一般具有動態(tài)性的特點,如何維護服務(wù)環(huán)境的變化減少對系統(tǒng)的影響有重要的意義。環(huán)境中的服務(wù)可能由于設(shè)備的移動性,如用戶的PDA或手提電腦從一個地方移動到另外一個地方,或是由于移動設(shè)備出現(xiàn)電源供應(yīng)不足的情況,而停止向外提供服務(wù)。由此可見,網(wǎng)絡(luò)服務(wù)環(huán)境下的服務(wù)變動和更新一般可分為兩種情況:1).設(shè)備由于地方的轉(zhuǎn)移而出現(xiàn)的服務(wù)變動和更新;2).設(shè)備由于外在的某種原因(如突然斷電)而不能持續(xù)提供服務(wù)。
第一種情況主要是指一些具有移動特性的中級級別的設(shè)備。它的父設(shè)備節(jié)點是動態(tài)變更的,它會定時發(fā)送消息INFO_HELLO來檢測自身的位置發(fā)生變動的情況,然后決定變更與否。另外,它在層次架構(gòu)中的位置也不是一成不變的,若有來自不同級別設(shè)備節(jié)點的響應(yīng)消息INFO_HELLO速度比它快,它便退出當前位置(退出后變成了孤立節(jié)點),然后重新發(fā)送廣播消息INFO_ BROADCAST尋找父節(jié)點[6]。
第二種情況設(shè)備的變動和更新主要從它的生命周期時間來看。設(shè)備一旦注冊,系統(tǒng)都會賦予它一個生命周期時間,當超過生命周期時間后,設(shè)備就會發(fā)送INFO_CKECK消息檢測自身設(shè)備節(jié)點的是否有效。如果收到父設(shè)備節(jié)點返回的INFO_CHECK消息,則恢復(fù)原來的生命周期時間,繼續(xù)提供服務(wù);若沒有收到父設(shè)備節(jié)點返回的INFO_CHECK消息,就認為與它連接的父設(shè)備節(jié)點已經(jīng)離開或者失效。然后像第一種情況一樣,然后發(fā)送廣播消息INFO_ BROADCAST尋找父節(jié)點。
面對日益復(fù)雜的網(wǎng)絡(luò)服務(wù)環(huán)境,孤立的簡單的單個服務(wù)已在很大程度上不能滿足我們的需求。本文首先分析了現(xiàn)行網(wǎng)絡(luò)服務(wù)環(huán)境的基本情況,然后給出了一種層次結(jié)構(gòu)的基于語義Web服務(wù)組合框架的設(shè)計以及較詳細分析與框架緊密相關(guān)的一些問題,這對開發(fā)一個語義Web組合系統(tǒng)有很好的借鑒意義。
[1]鄭增威.吳朝暈.普適計算綜述[J].計算機科學,2003,30(4):18~29
[2]鄭笛,王俊.普適計算環(huán)境下基于中間件的上下文質(zhì)量管理框架研究[J].計算機科學,2011.11
[3]徐毅.普適環(huán)境下的語義Web服務(wù)組合框架的研究與實現(xiàn)[碩士論文],2007.10
[4]郭頌,柳春華.語義Web服務(wù)組合實現(xiàn)框架研究.信陽師范學院學報[J],2011.10,4(24):36~40
[5]高俊,沈才梁.一種面向服務(wù)體系結(jié)構(gòu)的服務(wù)組合方案求解方法.計算機應(yīng)用研究[J],2011,11(28):41~46
[6]Guo S,Sun X Y.The mediation of data heterogeneity in Web Service composition[C]// IEEE International Conf.on Internet Technology and Application(TAP 2010)2010:567~570
A Design on Semantic Web Service Composition Framework
根據(jù)Web服務(wù)組合的特點,設(shè)計了一種層次結(jié)構(gòu)的基于語義的Web服務(wù)組合框架,給出了該框架的服務(wù)發(fā)布管理方法和層次結(jié)構(gòu)生成協(xié)議,詳細分析了該層次結(jié)構(gòu)的生成過程以及服務(wù)組合框架對服務(wù)的查詢、組合和更新等的運行原理。
Web服務(wù);語義;Web ;服務(wù)組合 ;層次結(jié)構(gòu)
According to the feature of web service composition, designed a hierarchical structure based on semantic web service composition framework, given out the method of service issue management and generate protocol of hierarchy structure, detailed analysis the generate process of the hierarchy structure and the principle of service query、composition and update.
Web Service; Semantic Web service composition; hierarchical structure
10.3969/j.issn.1001-8972.2012.14.041
謝晉雄,大學本科,講師,研究方向主要為計算機網(wǎng)絡(luò)技術(shù),語義Web服務(wù)技術(shù)。