彭榮群,張連俊,糜正琨
(1.山東理工大學計算機學院 淄博 255049;2.南京郵電大學通信與信息工程學院 南京210003)
NGN(next generation network,下一代網絡)是業務驅動的網絡,能否快速高效地提供用戶所需要的各種業務決定著網絡未來的發展。在過去的20多年中,計算機網絡和電信網絡都在不斷地演進,但二者提供業務的機理不同[1]:電信網絡是一個封閉的垂直網絡,提供保證收費質量的業務;而計算機網絡是一個開放的平面網絡,提供免費的盡力而為的服務,因此它們在很長一段時間內都各自獨立地提供基于自身網絡的業務。但隨著社會的進步以及電信網向全IP網的演進,用戶越來越不滿足于只使用由計算機網絡或電信網絡提供的單純業務,而是希望能夠享用由這兩種網絡提供的融合服務。根據客戶請求自動發現、匹配以及動態合成新業務,特別是由兩種網絡業務合成的融合業務,成為未來網絡發展的關鍵技術。
NGN以前的電信網絡是一個封閉的網絡,只有電信工程師才能理解電信業務的提供機制,導致了兩種業務合成過程實現的困難。Web Service[2]技術的出現使業務的合成變得簡單并易于實現。Web Service是近年來計算機界提出的一種新的分布技術,具有平臺獨立性、松耦合性、自包含性、基于可編程性等諸多優點,在計算機網絡領域得到了廣泛的應用。隨著Web Service技術的成熟,將該技術應用于電信網絡中成為現在研究的一個新熱點[3]。由ETSI、OSA Parlay Group以及3GPP定義的Parlay X Web Services API[4]和由歐洲計算機制造商協會(ECMA)制定的一系列計算機支持的電信應用(CSTA)[5]標準,都是Web業務技術在電信領域的成功應用。
傳統的電信業務可以被封裝成一系列具有標準接口的Web Service,具有豐富網絡業務開發經驗的非電信業務開發人員可以像調用普通網絡業務那樣調用電信業務,在傳統的網絡業務中融入呼叫、即時消息等電信業務功能,實現網絡業務和電信業務的無縫集成,縮短了融合業務的開發周期,給電信業帶來了新的發展機遇。
Parlay X Web Service和CSTA業務與Web Service類似,都基于WSDL描述業務,它們沒有提供業務的語義信息,不支持基于語義的操作,不利于業務的自動發現、調用與合成。這就需要采用機器能夠理解的基于語義的Web業務描述語言。
語義Web業務描述語言采用一種具有明顯語義的表示方式來表示和交換信息,以利于Web業務的自動處理。基于語義支持的自動業務合成算法主要采用OWL-S[6]、WSMO[7]兩種語義建模語言來描述業務,它主要包含兩種具體算法[8],即前向鏈合成算法(forward-chaining composition algorithm,FCA)[9]和無回溯的反向鏈合成算法(non-backtrace backward-chaining composition algorithm,NBCA)[10]。這 兩 種算法雖然在網絡域得到了廣泛的應用,但對于由網絡域和電信域業務合成的融合業務來說,它們存在著明顯的不足。
[9]給出了一種前向鏈合成算法,該算法的基本思想是根據用戶的輸入來推導各種Web Service輸出,把推導中用到的Web Service和它們產生的輸出分別加到Web Service輸入集合和Web Service輸出集合中,同時要把每次Web Service產生的輸出加到Web Service的輸入集合中,這樣一直迭代,直到用戶所請求的結果完全包含在Web Service輸出集合中。
但FCA存在幾個很顯著的問題,介紹如下。
·該算法結束的條件是用戶請求的輸出都已經獲得。對于電信業務來說,這個結束條件并不充分,因為某些電信業務只是執行一個動作,并沒有明顯的輸出。如果沒有用戶要求的輸出參數,即UO= ,那么FCA就不執行。以MakeCall業務為例,該業務的主要功能是建立通信雙方的連接,而不是產生明確的輸出結果。
·算法中沒有考慮業務的前提(P)和效果(E)參數,而這兩個參數對電信域業務來說是非常重要的。
·沒有考慮對于合成中需要的某些業務,用戶未提供它的某些輸入或某些前提不滿足時的情況。
當算法遇到上述情況時就會返回,導致合成失敗結果,使合成成功率降低。
無回溯反向鏈合成算法的基本思想是:從用戶所想要得到的查詢結果開始,試圖找出能得到該結果所需要的所有生成式。如果存在多個與當前目標匹配的生成式,則先去緩沖區查找有無對該輸入用戶的輸入閉包;若沒有,則先要計算該用戶的輸入閉包,并放入緩沖區中,然后選用生成式體部項全部包含在輸入閉包中的生成式進行合成。輸入閉包計算只需要進行一次,只要用戶的輸入和模型描述庫不變,以后的合成都可以從緩沖區中取出使用。
與FCA相比,NBCA由于在算法中引入了輸入閉包,克服了前向鏈合成算法中多次回溯的缺點,因此在合成效率方面有了顯著的提高。但對于電信域業務來說,仍不能直接使用,原因如下。
·NBCA的啟動條件是用戶需要的輸出參數集合非空,但由于很多電信業務只是要求完成一個動作,并沒有明確需求的輸出,這樣NBCA就沒法啟動。
·算法中也沒有考慮業務的前提(P)和效果(E)參數,而這兩個參數對電信域業務來說是非常重要的。
針對以上分析,本文提出了一種雙向鏈合成算法(double-chaining composition algorithm,DCA),以滿足網絡域和電信域業務合成的需求。
DCA的基本思想是:首先針對FCA和NBCA存在的問題,對它們分別進行改進;然后把兩種業務合成算法結合起來使用,并充分利用兩者各自的優勢。當用戶請求的輸出集合為空(UO= )時,由于FCA用UO作為算法的結束條件,因此對它進行簡單的改進后就可以順利完成合成過程,但對NBCA來說,就很難做到這一點,因為UO是該算法的啟動條件。因此在UO= 的條件下,可以首先采用改進后的FCA,如果能成功完成合成,那么就輸出合成結果;對于合成不成功的情況,如果此時的UO已經非空(UO≠ ),那么還可以啟動NBCA進行合成,這樣可以進一步提高業務合成的成功率。如果一開始UO就非空(UO≠ ),那么就可以直接啟動改進后的NBCA,這樣仍可以保證較好的合成成功率。DCA的基本思想如圖1所示。
圖1 DCA的基本思想
對FCA的改進介紹如下。
·該 算法結束的條件根據用戶請求的輸出都已經得到。如果沒有用戶要求的輸出參數,即UO= ,那么FCA就不會執行。因此,為了適應電信業務的特殊性,在前期工作中[11]對該算法進行了改進,在結束條件中加入了功能說明項,使算法只有在所有輸出都得到且所有要執行的功能都完成后才能結束。
·在 算法中增加了業務的前提(P)和效果(E)參數的匹配。
·考慮了在合成中需要的某些業務,在用戶未提供某些輸入或某些前提不滿足的情況。當合成需要的業務的某些輸入參數不在用戶輸入集合中時,就把這些沒有的參數加入用戶需求的輸出集合中,再去查找能生成它們的業務,使合成得以完成,由此提高合成的成功率。
改進的FCA(improvedFCA,I-FCA)算法參見參考文獻[11]。
對NBCA的改進介紹如下。
·與對FCA的改進類似,在算法中增加了對業務功能(F)的匹配。也就是說,算法結束的條件是除了要得到用戶所要求的所有輸出參數之外,還要完成用戶要求的所有功能。
·算法中增加了業務的前提(P)和效果(E)參數的匹配。
改進后的 NBCA(improved NBCA,I-NBCA)的計算流程如圖2所示。
綜合上述I-FCA和I-NBCA,本文提出了支持網絡域和電信域業務合成的雙向鏈合成算法,計算流程如圖3所示。
DCA采用Java語言編程開發。程序中利用美國馬里蘭大學開發的Mindswap OWL-S API調用Pellet推理機來獲取兩概念間的語義相似度。另外,在算法中把I和P、O和E同等對待,因為只有在業務執行時才需要驗證前提(P)是否滿足,效果(E)是否能得到;而在業務合成中,業務只需要P和E參數項,不用驗證,因此它們與I、O地位相同,可以放在一起處理。
對于業務合成性能,可以從以下兩方面來測試。
·平均合成時間:指成功合成業務所用時間的平均值,表示如下:
·合成成功率,表示如下:
性能測試的步驟設計如下。
(1)測試用業務集合包括擴展后的CSTA電信域業務(共 154個)和網絡域業務(OWLS-TC_v2.2_revision_3_(profile_taxonomy)[12]測試集的1 007個業務)。
(2)合成請求由系統隨機生成,I、P和O、E的個數從0到10逐漸變大,I、O、P、E參數均來自于從測試集業務中提取的 I、O、P、E 參數集合。
(3)在具體測試中采用2.6 GHz雙核Intel處理器、內存2 GB的個人計算機實現對算法性能的評估,每組100個業務請求,分別做100組求均值。
FCA、NBCA、DCA 3種算法的合成時間與請求的輸出個數、參與的業務數量以及用戶輸入個數之間的關系曲線分別如圖4~圖6所示。
由圖4~圖6可以看出,3種算法的平均合成時間均隨著用戶提供的輸入參數個數、用戶請求的輸出參數個數和參與的業務數量的增加呈現上升趨勢。其中,FCA的平均合成時間最長,NBCA所用時間最少,而DCA略高于NBCA,這是因為FCA是由輸入推導輸出,算法中存在回溯,而NBCA中消除了回溯,因此所用時間最少,合成效率最高。而對于DCA,當用戶需求的輸出參數個數集不為空集時,采用的是改進型的NBCA,因此合成效率與NBCA類似,但由于在算法中增加了P、E和F參數的匹配,因此所用時間略高于NBCA。
圖6 平均合成時間與用戶提供的輸入參數個數之間的關系
單就合成效率來看,DCA不是最好的,但從合成的成功率來看,DCA卻是最好的,如圖7~圖9所示。特別是當用戶請求的輸出參數集為空時,FCA和NBCA根本就不能啟動,因此合成成功率為0;而DCA就可以啟動并完成合成,如圖9所示。這一點特別適合應用于電信業務和網絡業務融合的場合。
假設某“股票信息業務”的需求是:從某個日期開始,每隔一段時間自動查詢在某個城市股票交易所的某支股票的價格信息,如果價格高于或低于某個數值,就自動接通用戶和股票經紀人的電話,以便商討如何處理股票。
該用戶請求的業務可以表示為:
WSautoStockQuote (I:stockname,city,datetostart,interval,toplimit,bottomlimit,usertelnum,stockbrokertelnum;O: ;P: ;E:establish a call between user and broker;F:timing stock quote,data comparison,make call)
利用上面提出的DCA可以找到9個原子業務,其中6個是電信域業務,3個是網絡域業務,如圖10所示。輸出的合成業務如圖11所示。
前向鏈合成算法和無回溯反向鏈合成算法是目前常用的兩種基于語義支持的自動業務合成算法,但由于它們是基于網絡域開發的,因此不太適用于網絡域和電信域融合業務的合成。本文通過分析兩種算法的不足,提出了一種新的基于語義的雙向鏈自動業務合成算法,克服了現有算法的不足,并在縮短平均合成時間和提高合成成功率方面獲得了明顯的改進。并且利用該算法時,用戶只需要提供必要的輸入輸出信息、部分處理過程,在合成過程中需要的其他部分可以由系統自動生成,這對不熟悉電信業務的IT開發人員是非常有幫助的,既節省了開發成本,又縮短了開發周期,提高了開發效率。
圖11 自動股票查詢系統的合成結果
參考文獻
1 喬秀全,李曉峰.融合業務網絡的發展和演進技術研究.中國新通信,2008(7):77~84
2 Booth D,Haas H,McCabe F,et al.NOTE-ws-arch-20040211.Web Services Architecture.W3C,Massachusetts,USA,2004
3 Griffin D,Pesch D.A survey on web service in telecommunications.IEEE Communications Magazine,2007(7):28~35
4 Parlay X Working Group.ES 202 504.Parlay X 3.0 Web Service.ETSI,Nice France,2007
5 ECMA-269.Services for Computer Supported Telecommunications Applications (CSTA)Phase III,6th Edition.http://www.ecmainternational.org/publications/standards/Ecma-269.htm,2004
6 Martin D,Burstein M,Hobbs J,et al.Semantic Markup for Web Services.W3C,Massachusetts,USA,2004
7 BruijnJ,BusslerC,DomingueJ,etal.SUBM-WSMO-20050603.Web Service Modelling Ontology.W3C,Massachusetts,USA,2005
8 顧寧,劉家茂,柴曉路等.Web Services原理與研發實踐.北京:機械工業出版社,2006
9 Thakkar S,Knoblock C A,Ambite J L.Dynamically composing web service from on-line sources.AAA Workshop on Intelligent Service Intergration,Edmonton,Alberta,Canada,2002:54~80
10 Liu J M,Gu N,Shi B L.Non-backtrace backward chaining dynamic composition of web service based on mediator.Journal of Computer Research and Development,2005,42(7):1153~1158
11 彭榮群,糜正琨.基于CSTA擴展接口的下一代網絡融合業務合成研究.南京郵電大學學報(自然科學版),2009,29(1):23~28
12 Meditskos G,Bassiliades N.OWLS-SLR:an OWL-S service profile matchmaker.http://lpis.csd.auth.gr/systems/OWLS-SLR/datasets.html,2009