張鋒軍,陳宇雷
(中國(guó)電子科技集團(tuán)公司第三十研究所,四川成都610041)
服務(wù)發(fā)布和發(fā)現(xiàn)在SOA架構(gòu)中的應(yīng)用分析
張鋒軍,陳宇雷
(中國(guó)電子科技集團(tuán)公司第三十研究所,四川成都610041)
SOA目前已成為一種主流的軟件架構(gòu),服務(wù)發(fā)布和發(fā)現(xiàn)作為實(shí)現(xiàn)SOA架構(gòu)的一項(xiàng)重要基礎(chǔ)設(shè)施,其重要性不言而喻。介紹了基于UDDI(Universal Description,Discovery,Integration,統(tǒng)一描述、發(fā)現(xiàn)和集成協(xié)議)的服務(wù)發(fā)布和發(fā)現(xiàn)技術(shù)實(shí)現(xiàn)原理,對(duì)服務(wù)發(fā)布和發(fā)現(xiàn)協(xié)議、信息模型、與安全服務(wù)和管理服務(wù)的集成等實(shí)現(xiàn)技術(shù)進(jìn)行了重點(diǎn)研究,提出了設(shè)計(jì)思路和方法。
服務(wù) 發(fā)布 發(fā)現(xiàn) UDDI 安全服務(wù)
Web Services作為實(shí)現(xiàn)SOA架構(gòu)的主要技術(shù)標(biāo)準(zhǔn),得到了廣泛的研究和應(yīng)用。在基于Web Services的SOA軟件架構(gòu)中,服務(wù)消費(fèi)者需要知道如何獲取服務(wù)、誰提供了服務(wù)、服務(wù)類型是什么、服務(wù)的質(zhì)量如何、服務(wù)的安全策略等信息。服務(wù)提供者需要一個(gè)代理來實(shí)現(xiàn)額外信息的補(bǔ)充說明,同時(shí)服務(wù)消費(fèi)者需要從這個(gè)代理那里獲取額外的信息。為了滿足這樣的需求,主流IT廠商和相關(guān)組織提出了ebXML、UDDI、Konark等多種服務(wù)發(fā)布發(fā)現(xiàn)實(shí)現(xiàn)機(jī)制。
根據(jù)其實(shí)現(xiàn)方式的不同,服務(wù)發(fā)布與發(fā)現(xiàn)的架構(gòu)分為集中式(有中心,基于目錄,適用于企業(yè)級(jí)信息系統(tǒng))、分布式(無中心,P2P架構(gòu),適用于移動(dòng)網(wǎng)絡(luò)環(huán)境)和混合式(基于目錄的分布式架構(gòu),兼具前兩種方式的特點(diǎn))三種,三種方式各有其適用場(chǎng)合和優(yōu)缺點(diǎn)[1]。其中集中式架構(gòu)以UDDI為代表,在企業(yè)級(jí)信息系統(tǒng)中應(yīng)用最為廣泛。UDDI提供了一種發(fā)布與發(fā)現(xiàn)Web服務(wù)的標(biāo)準(zhǔn)方法,用于建立一個(gè)開發(fā)并且與平臺(tái)無關(guān)的框架以描述、發(fā)現(xiàn)和集成服務(wù)。
1.1 服務(wù)發(fā)布與發(fā)現(xiàn)在SOA架構(gòu)中的作用
在基于Web Services的SOA系統(tǒng)服務(wù)交互過程中,有服務(wù)提供者、服務(wù)消費(fèi)者和服務(wù)注冊(cè)中心三種角色。三種角色的交互具體涉及到服務(wù)發(fā)布、查找和綁定操作。一般情況下,服務(wù)提供者負(fù)責(zé)提供可通過網(wǎng)絡(luò)訪問的服務(wù),服務(wù)提供者定義好Web Services的服務(wù)描述,并將它發(fā)布到服務(wù)注冊(cè)中心或者直接發(fā)布給服務(wù)消費(fèi)者(在調(diào)用關(guān)系明確不變和服務(wù)數(shù)量少、關(guān)系簡(jiǎn)單的情況下適用)。服務(wù)消費(fèi)者從本地或者服務(wù)注冊(cè)中心進(jìn)行服務(wù)查找操作,搜索到服務(wù)描述,然后根據(jù)服務(wù)描述完成與服務(wù)提供者綁定的操作,以調(diào)用相應(yīng)的Web Services并與之交互。
UDDI作為服務(wù)注冊(cè)中心,對(duì)服務(wù)發(fā)布者和服務(wù)消費(fèi)者分別提供了相應(yīng)的發(fā)布者API和發(fā)現(xiàn)者API,供開發(fā)者使用。通過UDDI,SOA系統(tǒng)可以實(shí)現(xiàn)服務(wù)的重用、互操作、位置透明和服務(wù)之間的松耦合。
1.2 服務(wù)發(fā)布與發(fā)現(xiàn)的需求
服務(wù)發(fā)現(xiàn)的需求主要包含:服務(wù)的發(fā)布,服務(wù)的查詢,服務(wù)元數(shù)據(jù)的管理和安全集成[2]。
(1)服務(wù)發(fā)布
服務(wù)發(fā)布需要將諸如服務(wù)提供者、服務(wù)、服務(wù)實(shí)例及其相關(guān)元數(shù)據(jù)放入注冊(cè)機(jī)中。需要支持以下的機(jī)制:
1)手工服務(wù)發(fā)布——用戶或者操作員作為服務(wù)發(fā)布者,使用服務(wù)發(fā)布用戶界面把服務(wù)實(shí)體發(fā)布到注冊(cè)機(jī)。這是最直接的服務(wù)發(fā)布方式。
2)自動(dòng)服務(wù)發(fā)布——服務(wù)發(fā)布者是一個(gè)應(yīng)用程序(可能是服務(wù)自己本身),它使用注冊(cè)機(jī)提供的服務(wù)發(fā)布Web service或者API把服務(wù)實(shí)體發(fā)布到注冊(cè)機(jī)上。注冊(cè)機(jī)可以通過審查WSDL文件定義來獲得該服務(wù)的大部分信息。
3)動(dòng)態(tài)更新服務(wù)實(shí)體——除了自動(dòng)發(fā)布,服務(wù)可能需要?jiǎng)討B(tài)更新它在注冊(cè)機(jī)中的服務(wù)定義和元數(shù)據(jù),以便于注冊(cè)機(jī)中的服務(wù)實(shí)體能與實(shí)際服務(wù)運(yùn)行狀態(tài)保持同步。
(2)服務(wù)查詢
1)手工,面向用戶的服務(wù)查詢:用戶和開發(fā)者需要能夠通過基于web的用戶界面瀏覽,搜索和審查服務(wù)和其他實(shí)體。
2)動(dòng)態(tài),運(yùn)行時(shí)服務(wù)查詢:服務(wù)消費(fèi)者可能需要在運(yùn)行時(shí)使用注冊(cè)機(jī)提供的查詢Web Services接口發(fā)現(xiàn)服務(wù)。動(dòng)態(tài)查詢可以獲取位置透明的服務(wù),允許服務(wù)消費(fèi)者在服務(wù)位置改變了的情況下,能夠連接到服務(wù)提供者。
3)持久化服務(wù)查詢:在某些情況下,服務(wù)消費(fèi)者可能想要保持對(duì)注冊(cè)機(jī)上發(fā)布的某個(gè)特定發(fā)現(xiàn)實(shí)體的最新情況跟蹤,服務(wù)消費(fèi)者應(yīng)該能夠把該需求傳送給發(fā)現(xiàn)實(shí)體,并能近實(shí)時(shí)的收到該變化的通知。
4)除了查詢機(jī)制,服務(wù)查詢還應(yīng)該有充分的表達(dá)能力來支持基于名字和ID的查詢,和基于任意元數(shù)據(jù)的復(fù)雜查詢。
(3)服務(wù)元數(shù)據(jù)管理
服務(wù)發(fā)現(xiàn)對(duì)服務(wù)提供者、服務(wù)本身和服務(wù)實(shí)體三者起到一個(gè)協(xié)調(diào)作用,對(duì)發(fā)布和查詢來說,需要支持以下等級(jí)的元數(shù)據(jù)[2-3]:
1)“白頁(yè)”元數(shù)據(jù),主要是基本的資源定義,如身份標(biāo)識(shí),名字,位置和接口定義等。
2)“黃頁(yè)”元數(shù)據(jù),主要指跟服務(wù)內(nèi)容有關(guān)的元數(shù)據(jù),描述了服務(wù)可以提供的功能等。這類元數(shù)據(jù)屬性包括主題,關(guān)鍵字,服務(wù)類型,目錄,時(shí)間和空間約束條件,或其它核心屬性。
3)“棕頁(yè)”元數(shù)據(jù),這是指語義層面的元數(shù)據(jù),描述了服務(wù)的業(yè)務(wù)/功能能力。這類元數(shù)據(jù)可以是定義良好的業(yè)務(wù)辭典、分類辭典、語義本體(ontologies)、XML schemas、領(lǐng)域數(shù)據(jù)模型或者業(yè)務(wù)規(guī)則等。這種元數(shù)據(jù)對(duì)上層業(yè)務(wù)應(yīng)用消費(fèi)者非常重要。
4)“綠頁(yè)”元數(shù)據(jù),主要指服務(wù)的訪問能力屬性,即訪問該服務(wù)時(shí)所需要的技術(shù)和環(huán)境相關(guān)的元數(shù)據(jù),這類元數(shù)據(jù)包括但不限于安全或QoP(Quality of Protection)需求,QoS屬性,傳輸協(xié)議等。
所有上述元數(shù)據(jù)都可以用XML表達(dá)。
1.3 發(fā)現(xiàn)服務(wù)協(xié)議
圖1給出了通用的發(fā)現(xiàn)服務(wù)協(xié)議棧。

圖1 通用服務(wù)發(fā)現(xiàn)協(xié)議棧Fig.1 Protocol stack of universal service discovery
如圖1所示,在Web Services技術(shù)體制中, SOAP作為消息傳輸協(xié)議,同時(shí)需要單播和多播綁定,多播可以基于SOAP-over-UDP和http over UDP。通過SOAP-over-UDP和http over UDP協(xié)議,只要在IP網(wǎng)絡(luò)環(huán)境下,底層傳輸不管是有線信道、無線信道都可以支持。SOAP之上是通用發(fā)現(xiàn)協(xié)議,可以執(zhí)行服務(wù)發(fā)布、查詢和發(fā)現(xiàn)的通用操作。由于服務(wù)注冊(cè)節(jié)點(diǎn)要執(zhí)行更多的功能,所以需要定義一些協(xié)議輪廓信息,包括統(tǒng)計(jì)報(bào)告、注冊(cè)節(jié)點(diǎn)列表信息的交換、上傳服務(wù)分類方法以及服務(wù)注冊(cè)信息模型擴(kuò)展等。協(xié)議棧的最上層是服務(wù)描述模型和注冊(cè)信息模型,其中服務(wù)描述模型可能同時(shí)存在多種,如基于UDDI和ebXML Registry的混合模型[4]。
在UDDI服務(wù)發(fā)現(xiàn)標(biāo)準(zhǔn)體系下,服務(wù)消費(fèi)者實(shí)現(xiàn)查詢API,其主要操作包括:通過UUID查找服務(wù)、通過UUID獲取服務(wù)、通過類型查找服務(wù)、通過名稱查找服務(wù)等。服務(wù)提供者實(shí)現(xiàn)服務(wù)發(fā)布的API,其主要操作為發(fā)布、更新、刪除服務(wù)發(fā)布信息及相關(guān)內(nèi)容。
在實(shí)際工程應(yīng)用中,由于僅依賴關(guān)鍵字匹配進(jìn)行服務(wù)查詢的查全率和查準(zhǔn)率比較低,在具體實(shí)現(xiàn)中,可以進(jìn)行元數(shù)據(jù)的擴(kuò)展(上文中提到的棕頁(yè)和綠頁(yè)元數(shù)據(jù)),采用多種實(shí)現(xiàn)手段提高UDDI服務(wù)發(fā)現(xiàn)的智能性、高效性和準(zhǔn)確性。如在服務(wù)元數(shù)據(jù)信息模型中采用OWL-S等語義本體描述語言和推理機(jī)制,通過服務(wù)關(guān)鍵字的匹配、語義的匹配和QoS屬性(如服務(wù)的響應(yīng)時(shí)間、可用性、可靠性、安全性、信譽(yù)度等)的匹配來實(shí)現(xiàn)基于服務(wù)QoS的、高效智能的服務(wù)查詢和動(dòng)態(tài)服務(wù)組合等[5-7]。
1.4 發(fā)布與發(fā)現(xiàn)服務(wù)的信息模型
UDDI注冊(cè)機(jī)以XML的格式存儲(chǔ)四類核心數(shù)據(jù),這些數(shù)據(jù)定義了要使用某個(gè)Web服務(wù)所需的各種信息。這四類數(shù)據(jù)的層次關(guān)系如圖2所示。

圖2 UDDI的四種核心數(shù)據(jù)Fig.2 Four core data structures of UDDI
UDDI有兩類頂層數(shù)據(jù)。一個(gè)是業(yè)務(wù)實(shí)體(Bussiness Entity),另一個(gè)是技術(shù)模型(tModel)。一個(gè)業(yè)務(wù)實(shí)體內(nèi)包含若干個(gè)業(yè)務(wù)服務(wù)(Bussineess Service),一個(gè)業(yè)務(wù)服務(wù)內(nèi)又包含若干個(gè)綁定模板(Binding Template)。對(duì)于一個(gè)綁定模板而言,它又包含一個(gè)或多個(gè)技術(shù)模型的引用,從而跟某個(gè)技術(shù)模型關(guān)聯(lián)起來。
目前的信息模型研究熱點(diǎn)在于采用本體來進(jìn)行服務(wù)行為模型、多屬性關(guān)系模型和協(xié)作上下文模型的定義。在語義化模型中,依據(jù)本體的形式化表示方法對(duì)服務(wù)的靜態(tài)描述和動(dòng)態(tài)交互模型進(jìn)行統(tǒng)一的語義模型定義,從而為用戶提供按需匹配和基于QoS評(píng)價(jià)選擇的服務(wù)發(fā)現(xiàn)方法,以及基于協(xié)作上下文模型的服務(wù)組合方法[8]。
基于UDDI的發(fā)布與發(fā)現(xiàn)服務(wù)定義了兩類服務(wù)接口:一類是查詢服務(wù),另一類是發(fā)布服務(wù)。
(1)查詢服務(wù)
查詢服務(wù)InquiryService用于查詢UDDI注冊(cè)機(jī)中存儲(chǔ)的各類數(shù)據(jù)實(shí)體。InquiryService主要包括對(duì)綁定模板、業(yè)務(wù)實(shí)體、服務(wù)實(shí)體和技術(shù)模型進(jìn)行find_xxx和get_xxxDetail的操作。
(2)發(fā)布服務(wù)
發(fā)布服務(wù)PublishService用于刪除或更新UDDI注冊(cè)機(jī)中存儲(chǔ)的各類數(shù)據(jù)實(shí)體,此外還發(fā)布服務(wù)相關(guān)的安全操作。PublishService主要包括對(duì)綁定模板、業(yè)務(wù)實(shí)體、服務(wù)實(shí)體和技術(shù)模型等數(shù)據(jù)的刪除操作和保存操作,以及discard_authToken、get_authToken、get_registeredInfo等安全操作。
2.1 基于服務(wù)發(fā)布與發(fā)現(xiàn)的SOA系統(tǒng)集成
基于UDDI的典型SOA集成框架如圖3所示。
服務(wù)提供者通過UDDI發(fā)布服務(wù)發(fā)布Web Service注冊(cè)信息到UDDI注冊(cè)機(jī)。
應(yīng)用開發(fā)者到UDDI服務(wù)查詢門戶瀏覽或查找需要訪問的服務(wù)。UDDI服務(wù)查詢門戶發(fā)起服務(wù)查詢請(qǐng)求,UDDI查詢服務(wù)返回匹配的服務(wù)實(shí)例或組合服務(wù)實(shí)例(必要時(shí)UDDI查詢服務(wù)需要進(jìn)行語義模型的訪問、匹配和解析)。
開發(fā)者在開發(fā)中使用獲得的目標(biāo)服務(wù)實(shí)例的端點(diǎn)信息配置它的應(yīng)用訪問地址。配置好的應(yīng)用被部署到門戶服務(wù)器。當(dāng)應(yīng)用運(yùn)行起來后,最終用戶登錄到該門戶開始使用該應(yīng)用。該應(yīng)用作為Web Service消費(fèi)者,綁定到目標(biāo)服務(wù)實(shí)例,并在用戶端發(fā)起SOAP請(qǐng)求,使用該服務(wù)提供的功能。
在該典型應(yīng)用場(chǎng)景中,服務(wù)查詢是在開發(fā)階段發(fā)生的,被發(fā)現(xiàn)的服務(wù)信息是靜態(tài)的、硬編碼到服務(wù)消費(fèi)者應(yīng)用中的。

圖3 基于UDDI的SOA集成框架Fig.3 SOA integration framework based on UDDI
2.2 發(fā)布與發(fā)現(xiàn)服務(wù)與安全服務(wù)的集成
對(duì)于安全敏感的企業(yè)級(jí)應(yīng)用來說,服務(wù)發(fā)現(xiàn)與服務(wù)安全緊密相關(guān),這種相關(guān)性分為兩個(gè)方面:一方面,服務(wù)發(fā)布和查詢API和注冊(cè)機(jī)本身需要安全機(jī)制和策略來進(jìn)行保護(hù);另一方面,在服務(wù)消費(fèi)者和服務(wù)提供者之間要發(fā)現(xiàn)彼此的安全特性,才能建立信任關(guān)系。這需要在SOA架構(gòu)實(shí)現(xiàn)中,滿足以下需求[2,3,9]:
(1)保護(hù)發(fā)現(xiàn)服務(wù)接口
對(duì)于發(fā)布和查詢來說,服務(wù)接口需要以下技術(shù)手段進(jìn)行安全防護(hù):
1)建立發(fā)布者、查詢者和發(fā)現(xiàn)服務(wù)提供者的身份標(biāo)識(shí)。
2)服務(wù)發(fā)布和查詢的請(qǐng)求和響應(yīng)是經(jīng)過鑒別的,其消息完整性是經(jīng)過檢查的。
3)請(qǐng)求和響應(yīng)需要經(jīng)過訪問控制策略授權(quán)。
4)發(fā)現(xiàn)實(shí)體是可信的。服務(wù)擁有者(通常是服務(wù)發(fā)布者)要能夠保證所發(fā)布的實(shí)體可信??刹捎脭?shù)字簽名等手段,以便服務(wù)消費(fèi)者能對(duì)這些實(shí)體有某種程度的信任。
(2)對(duì)敏感的發(fā)現(xiàn)實(shí)體的保護(hù)
注冊(cè)機(jī)要與安全服務(wù)、策略進(jìn)行集成,以采取措施保證服務(wù)注冊(cè)機(jī)中的服務(wù)元數(shù)據(jù)包含的敏感信息不被未授權(quán)的團(tuán)體得到。
2.2.1 保護(hù)服務(wù)接口
圖4分析了使用SOAP消息句柄來保護(hù)UDDI服務(wù)注冊(cè)中心查詢服務(wù)的流程。
消息鑒別句柄校驗(yàn)了查詢請(qǐng)求的簽名,Policy Enforcement Handler基于服務(wù)級(jí)別的授權(quán)策略對(duì)該請(qǐng)求授權(quán),Message Signing Handler簽名查詢請(qǐng)求。另外,Service Filtering Handler被用來提供基于角色的數(shù)據(jù)級(jí)別的訪問控制。
2.2.2 保護(hù)發(fā)現(xiàn)實(shí)體
另一方面的安全是要保證發(fā)布到UDDI注冊(cè)機(jī)的發(fā)現(xiàn)實(shí)體的完整性和真實(shí)性。UDDI3.0允許在UDDI數(shù)據(jù)結(jié)構(gòu)(如businessService,bindingTemplates及tModels等UDDI數(shù)據(jù)結(jié)構(gòu))中使用數(shù)字簽名。服務(wù)查詢者可以通過過濾查詢,只請(qǐng)求經(jīng)過簽名的數(shù)據(jù)。這樣服務(wù)查詢者和服務(wù)提供者都可以信任發(fā)現(xiàn)實(shí)體數(shù)據(jù)的完整性和正確性。
2.3 發(fā)布與發(fā)現(xiàn)服務(wù)與管理服務(wù)的集成
管理服務(wù)是指對(duì)基于Web Services的SOA系統(tǒng)的管理,這對(duì)于企業(yè)級(jí)SOA系統(tǒng)的運(yùn)行維護(hù)尤為重要。管理服務(wù)以“管理者-代理模型”為基礎(chǔ),在WSDL中定義管理接口,將管理應(yīng)用作為Web服務(wù),用WSDL描述可管理Web服務(wù),并且使用服務(wù)注冊(cè)中心和WSDL來發(fā)現(xiàn)Web服務(wù)。因此管理Web服務(wù)的時(shí)候,必須遵守以下一些特定的原則:
1)分離管理接口。Web服務(wù)的發(fā)現(xiàn)和綁定過程是由接口來驅(qū)動(dòng)的。在WSDL文件中接口被描述為端口類型,當(dāng)在UDDI注冊(cè)機(jī)上查詢一個(gè)Web服務(wù)的時(shí)候,它的目標(biāo)就是找到在WSDL文件中描述的接口,所以管理服務(wù)的管理操作應(yīng)當(dāng)通過分離的接口描述和發(fā)布Web服務(wù)接口來暴露給用戶。
2)通過運(yùn)行時(shí)框架收集數(shù)據(jù)。Web服務(wù)通過SOAP協(xié)議來調(diào)用和發(fā)送數(shù)據(jù)。SOAP消息處理器和相關(guān)的Web服務(wù)基礎(chǔ)結(jié)構(gòu)形成了一個(gè)控制端,它應(yīng)允許自動(dòng)地采集管理信息。
3)使用事件收集器。對(duì)一個(gè)管理系統(tǒng)而言, Web服務(wù)需要為發(fā)生的一些重要事件發(fā)送信息:包括故障事件、配置數(shù)據(jù)的改變、操作的調(diào)用等。
2.3.1 管理服務(wù)接口標(biāo)準(zhǔn)
服務(wù)管理基于WSDM(Web Services Distributed Management)標(biāo)準(zhǔn)來實(shí)現(xiàn)。WSDM標(biāo)準(zhǔn)分為兩部分:MUWS(Management Using Web Services)和MOWS(Management Of Web Services)。MOWS提供了管理Web服務(wù)的標(biāo)準(zhǔn)接口定義。MOWS基于MUWS標(biāo)準(zhǔn)定義的概念和系統(tǒng),同時(shí)也添加了管理Web服務(wù)特別需要的資源和功能。MOWS組件提供了支持遠(yuǎn)程管理Web服務(wù)的方法。
MOWS標(biāo)準(zhǔn)提供了將Web服務(wù)作為資源來管理的相關(guān)定義,并且在MOWS標(biāo)準(zhǔn)中還使用了許多由MUWS標(biāo)準(zhǔn)定義的概念和結(jié)構(gòu),添加了管理Web服務(wù)所特別需要的資源和功能[10-11]。
2.3.2 服務(wù)管理與發(fā)現(xiàn)服務(wù)集成
在對(duì)服務(wù)的管理中,服務(wù)管理與發(fā)現(xiàn)服務(wù)集成的實(shí)現(xiàn)框架如圖5所示。

圖5 服務(wù)管理與發(fā)現(xiàn)服務(wù)集成的實(shí)現(xiàn)框架Fig.5 Implementation framework of service management and service discovery integration
圖5對(duì)標(biāo)準(zhǔn)的基于UDDI的服務(wù)查詢方式進(jìn)行了基于策略和語義本體的模型和功能擴(kuò)展。服務(wù)策略主要用于描述服務(wù)的非功能的、靜態(tài)的狀態(tài)或能力,如QoS級(jí)別等。其中,主要組件是基于策略的發(fā)現(xiàn)代理、策略服務(wù)器、本體查詢模塊、規(guī)則推理模塊以及WSDM管理服務(wù),即動(dòng)態(tài)數(shù)據(jù)采集模塊。其運(yùn)行過程如下:
基于策略的發(fā)現(xiàn)代理負(fù)責(zé)接收來自服務(wù)查詢客戶端的請(qǐng)求,發(fā)現(xiàn)代理根據(jù)服務(wù)的功能需求查詢UDDI注冊(cè)機(jī),得到服務(wù)的WSDL的訪問地址。根據(jù)地址獲取到WSDL后,提取WSDL中以擴(kuò)展WSPolicy形式提供、以O(shè)WL描述的服務(wù)策略地址,發(fā)現(xiàn)代理將來自客戶端的請(qǐng)求策略和通過UDDI查詢到的服務(wù)策略地址組合成策略決策請(qǐng)求發(fā)往策略服務(wù)器[12]。
策略服務(wù)器收到策略決策請(qǐng)求后,從提供策略的地址下載策略,并將得到的策略(包括請(qǐng)求策略和服務(wù)策略)發(fā)往本體查詢模塊進(jìn)行本體推理,最終得到基于策略相關(guān)元素組成的策略集合,反饋給策略服務(wù)器。然后,策略服務(wù)器根據(jù)策略集合中對(duì)服務(wù)QoS狀態(tài)等信息或能力的需求,訪問WSDM管理服務(wù),獲取服務(wù)的QoS狀態(tài)等動(dòng)態(tài)管理參數(shù)。
策略服務(wù)器將從本體查詢模塊得到最終策略集合,以及從WSDM管理服務(wù)中得到服務(wù)的QoS等動(dòng)態(tài)參數(shù)轉(zhuǎn)發(fā)給規(guī)則推理模塊進(jìn)行規(guī)則推理,并由規(guī)則推理模塊返回推理結(jié)果。策略服務(wù)器根據(jù)推理結(jié)果得到符合服務(wù)請(qǐng)求的服務(wù)地址,將其返回給基于策略的發(fā)現(xiàn)代理?;诓呗缘陌l(fā)現(xiàn)代理再向服務(wù)的請(qǐng)求者反饋得到的服務(wù)WSDL地址,服務(wù)請(qǐng)求者就可以根據(jù)返回的WSDL地址進(jìn)行服務(wù)的調(diào)用了。
文中對(duì)基于SOA架構(gòu)的企業(yè)級(jí)信息系統(tǒng)中,服務(wù)發(fā)布與發(fā)現(xiàn)的應(yīng)用和實(shí)現(xiàn)技術(shù)進(jìn)行了分析和研究,介紹了服務(wù)發(fā)布和發(fā)現(xiàn)技術(shù)的實(shí)現(xiàn)策略和方法,并在相關(guān)項(xiàng)目中進(jìn)行了驗(yàn)證和實(shí)現(xiàn)。后續(xù)將繼續(xù)對(duì)基于語義的服務(wù)元數(shù)據(jù)的管理和策略模型實(shí)現(xiàn)進(jìn)行深入研究,實(shí)現(xiàn)基于服務(wù)質(zhì)量、安全特性和訪問控制策略的服務(wù)發(fā)布和發(fā)現(xiàn)機(jī)制。
[1] 魏強(qiáng),金芝,李戈,等.物聯(lián)網(wǎng)服務(wù)發(fā)現(xiàn)初探:傳統(tǒng)SOA的可行性和局限性[J].計(jì)算機(jī)科學(xué)與探索,2013, 7(02):97-110.
WEI Qiang,JIN Zhi,LI Ge.Preliminary Study of Service Discovery in Internet of Things:Feasibility and Limitation of SOA[J].Journal of Frontiers of Computer Science and Technology,2013,7(02):97-110.
[2] OASIS.uddi_v3,UDDI Spec Technical Committee Draft, Dated 20041019,UDDI version 3.0.2[S].America: OASIS Open,2004.
[3] Booz A H.Service Discovery Core Enterprise Services (CES)Architecture[R].DISA:America,2004.
[4] Tommy G.Assessing Dynamic Service Discovery in the Network Centric Battlefield[C]//Military Communications Conference,MILCOM 2007,IEEE.Orlando,FL, USA:[s.n.],2007.
[5] 魏娟杰.基于Web服務(wù)發(fā)現(xiàn)的企業(yè)應(yīng)用集成研究[D].東營(yíng):中國(guó)石油大學(xué),2009.
WEI Juan-jie.Research on Enterprise Application Integration Based on Web Service Discovery[D].China University of Petroleum:China.2009.
[6] 劉莉平.動(dòng)態(tài)Web服務(wù)組合關(guān)鍵技術(shù)研究[D].長(zhǎng)沙:中南大學(xué),2011.
LIU Li-ping.Research on Key Technologies of Dynamic Web Service Composition[D].China:Central South University,2011.
[7] 劉昌鑫,歐陽(yáng)春娟,譚云蘭.基于Web Service的QoS本體研究[J].通信技術(shù),2012,43(02):160-162.
LIU Chang-xin,OUYANG Chun-juan,TAN Yun-lan.A-nalysis on QoS Ontologies for Web Services[J].Communications Technology,2012,43(02):160-162.
[8] 曲明.基于本體的服務(wù)發(fā)現(xiàn)與組合方法研究[D].吉林:吉林大學(xué),2012.
QU Ming.Research on Ontology-based Service Discoveryand Composition[D].China:Jilin University,2012.
[9] OASIS.{WSS:SOAP Message Security}-{1.0}.Web Services Security:SOAP Message Security 1.0(WS-Security 2004)OASIS Standard 200401[S].America: OASIS Open,2004.
[10] OASIS.cd-wsdm-muws-part1-1.0,Web Services Distributed Management:Management Using Web Services(MUWS 1.0)Part 1 Committee Draft,January 11th 2005[S].America:OASIS Open,2004.
[11] OASIS.cd-wsdm-mows-1.0,Web Services Distributed Management:Management of Web Services(WSDMMOWS)1.0 CommitteeDraft[S].America:OASIS Open,2004.
[12] NATENAPA S,TWITTIE S,KUNAL V.On Using WSPolicy,Ontology and Rule Reasoning to Discover Web Services[C]//IFIP International Conference.Thailand: Bangkok,2004.
ZHANG Feng-jun(1975-),male,senior engineer,majoring in network management, software engineering.
陳宇雷(1971—),女,高級(jí)工程師,主要研究方向?yàn)榫W(wǎng)絡(luò)管理,軟件工程。
CHEN Yu-lei(1971-),female,senior engineer,majoring in network management,software engineering.
Application Analysis on Service Published and Discovery Technology in SOA
ZHANG Feng-jun,CHEN Yu-lei
(No.30 Institute of CETC,Chengdu Sichuan 610041,China)
SOA now becomes a mainstream software architecture.As a very important infrastructure of SOA,the service release and discovery is significant indeed.This paper describes the technical mechanism of UDDI,with emphasis on UDDI protocol,information model and the integration with security service and management service,and finally provides some design ideas and design methods.
service;publish;discovery;UDDI;security service
TP311
A
1002-0802(2014)03-0275-06
10.3969/j.issn.1002-0802.2014.03.009

張鋒軍(1975—),男,高級(jí)工程師,主要研究方向?yàn)榫W(wǎng)絡(luò)管理,軟件工程;