正文 環境模型驅動的服務組合方法(1 / 3)

環境模型驅動的服務組合方法

計算機工程應用技術

作者:蔡廣軍等

摘要:針對服務組合動態、開放、複雜度高的特點,提出了一種環境模型驅動的服務組合方法.該文用環境模型中服務作用下客體的變化來描述服務功能,用客戶期望的環境變化描述客戶需求,構建了一種獨立於服務實現和具體客戶的組合環境;然後以環境模型為基礎分解需求和組合服務.實驗結果分析表明,該文方法可以有效提高服務組合的效率.

關鍵詞:服務組合;環境;模型驅動;動態開放;行為

中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2015)13-0208-05

Abstract: To address the challenge of service composition that are dynamic, open and with a high complexity, the paper presents a service composition method driven by environment model. In this paper, by projecting service functionalities and the custom requirement into the environment model, a closed and simple problem domain is constructed. And then a composition method through decomposing the requirement is proposed. The test results show that this method is effective.

Key words: Service Composition; Environment; Model Driven; Dynamic and Open; Behavior

服務的標準化和鬆耦合為提高軟件或應用的互操作能力,重用服務提供了基礎。服務組合是實現服務集成、重用服務的主要方式,是麵向服務計算成功的關鍵因素。雖然商務的電子化使Web上的服務越來越多,僅單個購物網站就有300多萬個店鋪,但服務並沒有達到預期的發展速度,該文認為一個主要原因在於缺乏一種可以適應這一需要的服務組合方法。

服務組合的麵臨的困難包括:一是服務的數量和組合問題的複雜度,存在大量服務是服務優勢的來源,但是手工組合方法很難應對大量服務的組合,同時組合問題是一種指數複雜度的問題;二是服務組合的動態性和開放性,服務實現的自主性和異構性以及客戶的未知性等性質使得服務組合是動態開放的,而當前的很多自動組合方法和工具隻支持封閉世界下靜態的組合;三是推理和描述之間的矛盾,語言的描述能力與推理能力成反比,比如描述能力逐漸增加,但推理複雜度卻分別為多項式時間、指數時間和不可推理。

當前對服務組合的研究可以分為對已有工具能力的應用、對推理工具的擴展和組合問題的定義和分析。實現了服務組合問題到層次任務規劃問題的轉換,使得可以借助已有的Shop2工具組合服務;通過擴充已有的Golog語言,實現了一種客戶化通用程序的組合方法。從服務行為描述的重要性出發,提出了一種行為服務組合的方法,並實現了問題到自動機、描述邏輯等描述語言的轉換,以借用已有的理論和工具;WSMO則從組合問題的整體性質出發,提出了一種包含服務、本體、目標和中介四類元素的多層次組合框架。這些方法大多基於某種假設,而沒有討論在服務組合時如何滿足對應的假設,而且組合的複雜度也比較高,基於行為的組合方法都是指數複雜度的。

與以上方法不同,該文從環境建模的思想出發,提出了一種轉換服務組合問題和模型驅動的組合方法。該文的主要創新點包括提出了一種通過創建領域環境模型、投影描述解決動態開放組合問題的方法;並提出了一種基於環境知識提高組合效率的方法,使得可以在多項式時間內組合服務,實驗結果表明該方法是有效的。

1 環境建模

環境建模是環境模型驅動服務組合方法的基礎。本節先介紹了服務的環境概念、描述服務所需的環境本體、創建環境模型的方法以及如何描述服務和需求以把組合問題限定到環境模型中。

1.1 服務的環境

文中環境的概念來源於需求工程,通過定義環境來區分軟件實現方案和問題,使得需求工程專注於獲取問題而不陷入實現方案的設計。[環境指用戶和係統間交互的場景及相關因素,環境建模中的環境不僅包括用戶和服務之間的媒介或其它要素,還包括服務的用戶以及其它客戶關心的且服務作用下發生過變化的內容,是服務可能影響到的現實世界中的所有內容。

服務組合是在單個服務不能滿足客戶需求的情況下組合多個已有服務來滿足需求。服務組合是分布式環境下的一種軟件開發方法,從所要考慮的內容看,它與傳統軟件沒有本質的區別,仍然要考慮從客戶需求到領域知識以及軟件性質等內容。

從環境建模的思想看,服務組合需要考慮係統、現實世界和需求三方麵的內容。服務組合的動態開放性體現在服務和需求的動態開放性上,服務的動態開放性是由於為了促進服務間的競爭和服務的改善,難以限製服務的實現方式和範圍;需求的動態開放性則在於要滿足更多需求、爭取更大利潤的前提導致的客戶或客戶需求的多樣化以及來源的不確定性等。而服務的環境指的是現實世界,它是客觀存在的,不受服務和需求變化的影響。

1.2 環境本體

為了統一服務提供者、服務請求者之間的術語,該文采用本體的方法。環境本體中的主要概念如下,

定義1. 環境,記為Env,定義為二元組:

Env:=

其中,DomSet是建模環境中環境領域的集合,DomRelSet是領域之間關係的集合。  定義2. 環境領域,記為EnvDom,是DomSet的元素,定義為四元組:  EnvDom:=  其中,DomName表示環境中環境領域的名字,DomAtrrSet表示領域的屬性集合,用以區分不同的領域,EntSet是此環境領域中環境實體的集合,EntRelSet表示環境實體之間關係的集合。  定義3. 環境領域關係,記為DomRel,是DomRelSet的元素,定義為三元組:  DomRel:=  其中,sdom, tdomDomSet, 表示DomSet中的任意兩個領域,domrel表示領域之間的關係,它可以為:  -sdomtdom,表示tdom包含sdom,即ent (entsdom.EntSetenttdom.EntSet)entrel(entrel sdom.EntRelSetentreltdom.EntRelSet);  -sdomtdom,表示sdom包含tdom,即tdom sdom;  -sdomtdom,表示sdom和tdom具有相同的環境實體,即ent(entsdom.EntSetenttdom. EntSet);  -sdomtdom,表示sdom和tdom無關,即ent (entsdom.EntSetenttdom.EntSetenttdom.EntSetentsdom.EntSet)。  定義4. 環境實體記為EnvEnt,是EntSet的元素,定義為一個四元組:  EnvEnt:=  其中,EntName是環境實體的名字,它是唯一的。Type表示環境實體的類型,環境實體分為自主實體、符號實體和可控實體三類,分別取值為A、S和C。自主實體時可以接收或發送服務或其它環境實體傳遞的事件,但沒有確定的狀態變化和內容變化;符號實體可以接收或發送服務或其它環境實體傳遞的數據,接收數據會改變環境實體的內容;可控實體可以接收或發送服務或其它環境實體傳遞的消息(事件或數據),接收或發送消息能改變此環境實體的狀態或內容。AttrSet={|attrn和attrv分別表示靜態屬性的屬性名和屬性值}是環境實體靜態屬性的集合,描述環境實體的性質,它們不受服務影響。Eff=Events| Datas|Trans,表示環境實體的效果,它描述環境實體在服務的作用或觸發下發生的動態變化,它的取值取決於環境實體的類型,自主實體的Eff為Events={| dir=?|!, event為命令消息};符號實體的Eff為Datas={|dir =?|!, data為數據消息};可控實體的Eff取值為Trans={|ss和ts表示環境實體的狀態,mes為數據消息或事件消息}。  定義5. 環境實體關係,是EntRelSet的元素,記為EntRel, 描述環境領域中環境實體之間的關係,定義為一個三元組:  EntRel:=  其中,sent, tentEntSet, 表示某個領域內任意兩個環境實體,entrel表示環境之間的關係,可以分為:  -is-a關係,表示sent是tent的子類,具有tent的部分性質;  -part-of關係,表示sent是tent的元素;  -dependence關係,表示sent某種變化依賴tent通過服務發送或接收的消息;  -instance關係,表示sent是tent的實例;  -null關係,表示sent和tent無關。  1.3 環境模型的構建  環境建模是環境驅動服務組合的基礎,它是以環境本體為基礎構建某個領域的問題的模型。在建模中需要考慮領域問題、客戶和服務三方麵的因素。對於相互之間關聯較弱的問題直接分為多個領域分別建模,對於關聯較強的領域,其任務如下:  步驟1:確定問題的範圍。從領域角度看,要求描述耦合較強的內容。從客戶角度看,要描述客戶需要解決的問題,要滿足的需求範圍要適中,描述範圍過大會造成領域過於複雜,描述過小則不能單獨滿足客戶需求。從服務角度看,要描述服務能解決的問題,描述服務不能解決的問題不僅無法組合,也會提高描述、組合等的複雜度。  步驟2:確定環境實體。從領域角度看,一要盡可能選擇問題領域中概念作為實體;二要選擇功能緊密的內容作為同一實體,把耦合較弱的或沒有關聯的分為不同的實體。從客戶角度看,環境實體要與客戶需求相適應。從服務角度看,環境實體要適當考慮服務提供的功能之間的耦合。  步驟3:確定環境實體的類型、屬性和行為。靜態屬性用於選擇實體,靜態屬性的選擇和取值範圍的確定反映了實體性質和提供服務的範圍。Eff描述環境實體的變化,其範圍確定了可以對這個環境實體施加的功能,行為的粒度確定了服務描述和客戶選擇的粒度,描述粒度過小會提高描述或推理的複雜度,描述粒度過大或功能單位不一致會造成一些功能無法描述。類型反映領域對環境實體不同變化之間的約束,如變化依賴於實體狀態則為可控實體。  步驟4:劃分子領域。如果領域內存在不一致,或者領域的複雜度超過了期望的程度則要分解領域。不一致包括環境實體具有不同類型特征,環境實體的行為需要以不同粒度描述或者相同條件下可能發生多個不同的變化等。領域複雜度的要求則取決於具體的描述語言和推理工具以及客戶的要求等內容。  以網上購物領域為例,其主要環境實體和實體之間的關係。其中,確定問題範圍是確定要處理的內容,如以買家為客戶,是否處理賣家信息取決於購物者除了關心產品的內容外是否關心商家的規模或地址等內容。確定環境實體是確定環境不同變化之間的關係,不一定與現實實體完全對應,如當支持購物、彩票等具有不同行為買家時,可作為多個環境實體。確定環境實體的靜態屬性是確定服務可能改變的領域實體,比如支持信譽度為什麼範圍的買家;確定環境實體的動態屬性是確定客戶可以接收的服務或服務可以提供的服務範圍,比如買家是否能夠先收貨再付款。劃分領域是確定可以自動推理的問題範圍,涉及多個領域時一般需要人工介入。  1.4 服務描述和需求描述  基於環境描述服務和需求是環境模型驅動服務組合的前提,可以預先進行。服務基於環境的描述定義如下:  Ser:=  其中,ID是服務的標識,DomSet是服務作用的領域集合,是環境領域集合的子集,SerSet表示此服務成員服務的集合,服務為原子服務時是服務自身,FuncSet描述環境實體的變化和服務之間的關係。需求描述是一個沒有SerSet和FuncSet部分的服務描述,描述需求時,ID是需求的標識,DomSet是客戶期望改變的領域集合。  基於環境本體的服務描述和需求描述是一種投影。服務描述過程中,服務信息、環境模型和相關信息的充分性和形式化程度決定了描述的自動化程度。服務