[摘要] Web服務技術(shù)已被電子商務企業(yè)廣泛接受和認同,然而,在業(yè)務過程處理中,通常需要按照一定的粒度,將多個Web服務根據(jù)特定的應用背景和需求進行合理的組合,以便實現(xiàn)完整的業(yè)務過程。本文主要研究基于本體的Web組合服務的合成建模及接口集成的技術(shù),介紹該技術(shù)在電子商務中應用的基本思想,并根據(jù)具體的案例提出了Web組合服務的實施方案。
[關(guān)鍵詞] 電子商務 Web服務 Web組合服務 合成建模
在電子商務中,具有良好封閉性、松散耦合和高度可集成等特點的Web服務技術(shù)深受企業(yè)的青睞,但是單一的Web服務功能畢竟簡單、有限,難以滿足某些實際應用的需要,人們開始關(guān)注Web服務的組合問題,本文主要研究基于本體的Web組合服務的合成建模及接口集成的技術(shù)在電子商務中的應用,分析了具體的案例,提出了Web組合服務的實施方案。
一、Web服務的組合
1.概述
Web服務的組合就是通過合成不同提供者提供的原子Web服務或組合服務來為用戶提供增值的服務。目前,有許多著名公司的商務套件產(chǎn)品都開始支持Web服務及其組合的應用。Web服務的組合中如何建模是組合成敗的關(guān)鍵之一。
2.本體建模
在Web服務的合成中,本體建模的優(yōu)劣直接影響到組合服務的效果。本體建模分為二個部分:輸入輸出參數(shù)建模和Web服務合成建模。
(1)輸入輸出參數(shù)建模
輸入輸出參數(shù)進行建模分收集屬性和構(gòu)建抽象屬性二個步驟。收集屬性就是根據(jù)現(xiàn)有的Web服務的輸入輸出參數(shù)來進行屬性的選??;構(gòu)建抽象屬性是根據(jù)實際情況對收集到的屬性和Web服務中已有的類進行分類和抽象,構(gòu)建基本類和抽象類。在本體中可以有兩個基本的關(guān)系——sub-class-of和part-of:
sub-class-of:A “sub-class-of” B,表示A是B的子類。這里的A和B只能是抽象類。sub-class-of具有傳遞性,即A “sub-class-of” B,B“sub-class-of”C意味著A“sub-class-of”C。
part-of:A“part-of”B表示A是B的一個元素。這里的A可以是基本類或抽象類,也可以是一個集合;而B只能為集合或者抽象類。part-of也具有傳遞性。
可以由sub-class-of和part-of定義一個關(guān)系:A“semi-part of”B。
定義1 假設有兩個集合A、B,如果對于A中任意一個元素α,總能在B中找到一個元素β,使α、β滿足關(guān)系:α“part of”β或α=β或α“sub-class-of” β,則A“semi-part of”B。
(2)Web服務合成建模
通過把Web服務轉(zhuǎn)化為本體中的屬性,并定義屬性之間的關(guān)系來完成建模。
定義2 對于,我們把WSi作為本體中的一個屬性Pi,其中Pi的定義域是PDi,值域為,。
把Web服務轉(zhuǎn)化為屬性之后,即可通過定義屬性間的關(guān)系對Web服務之間的關(guān)系進行描述。
定義3 假設有兩個屬性Pi,Pj,對于,如果,就有,則Pj“semantic-equal”Pi。其中表示i的屬性Pi取值為j,即i,j滿足關(guān)系Pi。
由“semantic-equal”定義可知,屬性Pj的語義包含Pi的語義。如果能夠根據(jù)Web服務建立這種關(guān)系,我們就能由這種關(guān)系來判斷Web服務的語義包含問題。
定理1 假設所產(chǎn)生的屬性為所產(chǎn)生的屬性為Pj。Pj“semantic-equal”Pi,當且僅當 ,如果滿足WSi,就有滿足WSj(其中in+1,…in+r可以取任意值)。
證明:充分性:,因為,所以,應該有這樣的形式,。假設,滿足WSi的輸入輸出為(i',j'),則j'一定具有形式滿足WSi,所以(i, j)也滿足WSj。因此i,j滿足,即Pj“semantic-equal”Pi。
必要性:滿足WSi,所以,i,j應有形式i=(i1,…,in),j=(o1,…,on),且。假設i'=(i1,…,in,in+1,…in+r),j'=(o1,o2,…,on-m),其中(in+1,…in+r)可以取任意值。因為PDi(I1,I2,…,In),PRi(O1,O2,…,On),所以,i'PDi,j'PRi;因為(i,j)Pi,所以(i',j')Pi;因為Pj“semantic-equal”Pi,所以(i',j')Pj,即(i',j')滿足WSj。
可以由定理1推出定理2。
定理2 假設WSi(I,O),WSj(I',O')所產(chǎn)生的屬性分別為Pi,Pj,如果I“semi-part-of” I',O'“semi-part-of”O(jiān),且對于滿足WSi的任意一組輸入輸出都滿足WSj,則有Pj“semantic-equal” Pi。
定理1與定理2表明如果用戶期望的Web服務是WSj(I1,I2,…,In,In+1,…, In+r,O1,O2,…,On-m),通過合成得到這樣一個Web服務:WSi(I1,I2,…,In,O1,O2,…,On),則它的每一組輸入輸出都能滿足的WSj要求,因此它能夠根據(jù)提供的輸入來獲得用戶期望的輸出,即在本體中如果用戶要求的Web服務對應的屬性為Pj,只需找到與Pj有semantic-equal關(guān)系的屬性Pi進行合成。
上述思想提出了在輸入輸出參數(shù)語義和Web服務語義上滿足用戶需求的合成目標。但Web服務的語義分解很難實現(xiàn),可以通過引入另一種“semi-semantic-equal”關(guān)系將上述關(guān)系弱化。
定義4 設有兩個屬性Pi,Pj,對于i,j,如果iPDi,jPRi,就有iPDj,jPRj,則Pi“semi-semantic-equal”Pj。
定理3 假設n>m≥0,r≥0,對于WSi(I1,I2,…,In,O1,O2,…,On),WSj(I1,I2,…,In,In+1,…,In+r,O1,O2,…,On,On-m)所產(chǎn)生的屬性分別為Pi,Pj,Pj“semi-semantic-equal”Pi。
證明:i,j,假設i,j滿足屬性Pj,則有iPDj,jPRi。由定義1可知,PDj(I1,I2,…,In,In+1,…,In+r),PRj(O1,O2,…,On-m),因為PDi(I1,I2,…,In),PRi(O1,O2,…,On),所以PDjPDi,PRjPRi。即PDj(I1,I2,…,In),PRj(O1,O2,…,On),所以iPDi,jPRi,即Pj“semi-semantic-equal”Pi。
同樣可由定理3推得定理4。
定理4 假設WSi(I,O),WSj(I',O')所產(chǎn)生的屬性分別為Pi,Pj,如果I“semi-part-of”I',O“semi-part-of”O(jiān)',則有Pj“semi-semantic-equal”Pi。
上述定理表明,如果用戶要求的Web服務對應的屬性為Pj,只需找到與Pj有“semi-semantic-equal”Pi關(guān)系的屬性Pi的合成方案即可。
3.基于本體的接口合成
Web服務WSi(I1,I2,…,In,…,In+r,O1,O2,…,On+r)要求其后續(xù)的Web服務WSn的輸入是O1,O2,…,On+r,即WSn(O1,O2,…,On+r,…),如果存在這樣的Web服務WSj(O1,O2,…,On,…),則可用WSj來代替WSn作為WSi的后續(xù),根據(jù)定理3,需要在本體中找到與WSn對應Pn具有“semi-semantic-equal”關(guān)系的屬性Pj。我們首先由用戶提供的輸入產(chǎn)生WSn,然后根據(jù)WSn在本體中產(chǎn)生一個對應的虛擬屬性Pn,然后查找與Pn存在“semi-semantic-equal”關(guān)系的屬性Pj,Pj對應的Web服務就是所需要的后繼Web服務。反復迭代,直到最后一個Web服務的輸出滿足用戶的需要為止。
二、應用實例
某飲料公司網(wǎng)站搞一個促銷活動,其內(nèi)容主要是在規(guī)定促銷期間讓客戶在生日時能收到生日禮物,因而需要了解顧客的信息,然后根據(jù)顧客的愛好來確定禮物,并配以適當?shù)娘嬃?,從而?lián)絡商家與客戶的感情,提高客戶的忠誠度。有以下幾個現(xiàn)成的Web服務可以使用:
> GetCustomer (IDCard,Name,CustomerBirthday,Hobbies)
> GetPerson (IDCard,CName,Birthday,Habit)
> GetFavoriteCommodity(Hobbies,Commodity,Price)
> GetSuitableDrink (Commodity, Drink)
> GetDrink (Supply, Drink,Price)
由于上述這些Web服務在跨系統(tǒng)的、異構(gòu)的平臺運行,要進行二次開發(fā)難度較大,且這種促銷活動只是在一段內(nèi)時間進行,開發(fā)新系統(tǒng)的利用率也不高,因此,我們可以利用現(xiàn)有的Web服務進行合成形成一個Web組合服務來完成上述查詢。
輸入輸出建模。收集基本類屬性,消除其中的同名異義和異名同義現(xiàn)象;構(gòu)建抽象類,從Customer的各種屬性構(gòu)建Customer類,根據(jù)已有的Commodity,Drink來構(gòu)建Commodity,Drink類,考慮到Commodity和Drink都屬于可消費品,建立一個更抽象的類Consumable,如圖1所示。
圖1 抽象類和基本類
圖2 本體建模
根據(jù)前面所闡述的建模方法,針對本案例有本體建模表示圖2,其中六邊形表示由Web服務轉(zhuǎn)化的屬性,它與類的連接表示屬性的定義域、值域,也就是Web服務的輸入輸出。圖3描述了飲料公司查詢顧客信息時可能的Web服務接口的合成,六邊形表示候選的Web服務,其上的圓角矩形表示其輸入或輸出類型。
圖3 合成圖
三、結(jié)束語
本文提出了在電子商務中利用現(xiàn)有的Web服務來實現(xiàn)Web組合服務的方案,介紹了本體建模的基本思想,并通過具體案例詳細介紹了一種動態(tài)、自動的Web服務合成方法。我們根據(jù)此方案編制了一個模擬系統(tǒng),經(jīng)初步測試其功能基本符合要求,但當數(shù)據(jù)量比較大時其運行速度還有待進一步提高。
參考文獻:
[1] J. Rosenberg, The critical need for monitoring and analysis, [J] Web Services Journal 3 (2003) (11)http://webservices.sys-con.com/read/39904.htm
[2] BEA, IBM, and Microsoft (2003) Business Process Execution Language for Web Services (BPEL4WS). [R]http://xml.coverpages.org/bpel4ws.html
[3]顧寧劉家茂柴曉路編著:《Web Services 原理與研發(fā)實踐》[M].機械工業(yè)出版社,2006
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文。