崔弘亮, 肖 剛
(1.解放軍理工大學指揮自動化學院,江蘇南京210007;2.中國電子設備系統工程公司研究所,北京100141)
當前,網絡規模越來越大,異構性越來越嚴重,這對網絡管理又提出了新的、更高的要求。隨著面向服務架構(service orientedarchitecture,SOA)的提出及其在大規模分布式系統中的獨特優勢,網絡管理系統也隨之轉到面向服務的發展階段,以期解決網絡管理中存在的諸多問題。國際電信聯盟(ITU)和歐洲電信標準協會(ETSI)對建設下一代網絡(NGN)建議采用面向服務的體系架構。很多學者在這方面做了大量的研究工作。文獻[1]指出下一代網絡將需要一種新型的網絡管理系統代替簡單網絡管理協議(SNMP)來進行異構網絡上的網絡管理,并提出了一種以企業服務總線為中介層的基于SOA的網絡管理模型。文獻[2]提出了一種基于SOA的網絡管理系統架構模型,給出了基于SOA的網絡管理系統的實現方案,但是此架構只是在傳統網絡管理架構上做了一定的改進。文獻 [3]使用Web Service技術,利用面向服務的體系結構提供統一接口的思想,實現了分布式網絡中管理系統的交互。本文介紹的面向服務的綜合網絡管理框架,包含了服務的設計、生成、使用、管理等各個方面,涵蓋了服務的整個生命周期,并在此框架的指導下,對服務的設計技術進行了研究,設計并實現服務設計系統的原型,使網管能夠更快速地提供靈活多樣的管理服務。
面向服務架構(SOA)表達了一種軟件架構概念,它定義為使用服務來滿足軟件用戶的需求。在SOA環境中,網絡資源以獨立服務的形式獲取,服務的獲取不要求了解這些資源的底層實現平臺。SOA也可以被視為一種信息系統架構風格,它使結合松耦合、互操作的服務來創建應用成為可能。這些服務基于某種格式定義(如Web服務描述語言)進行互操作,該定義獨立底層平臺和編程語言。接口定義隱藏了語言相關的服務實現,因此SOA兼容的系統與開發技術和平臺無關。
服務組合源于軟件重用,其基本思想是使用系統中已有的服務,通過它們一定順序的組合或組合順序的改變,創建出新的或更高質量的服務以實現在原有服務的基礎上提供增值服務的目的。開發一個組合式服務的過程稱為服務組合,組合服務可遞歸地定義為基本服務和組合服務的集合。通過服務組合來創建新的服務是 SOA的關鍵優勢所在。當單個的服務不能滿足一項功能需求時,可以通過組合現有的服務來提供相同的功能以滿足功能需求。
SOA已經成為流行的新概念。對于流行的新概念,總是存在著這樣的危險——人們會試圖到處使用這些概念。然而,將SOA和網絡管理結合起來存在著其結合的可行性,是一種必然的趨勢。首先,SOA針對特定的環境——具有不同所有者的異質分布式系統——而言是理想的解決方案。而網絡管理所面對的正是這樣一個不同所有者的、異質的、分布式的環境;其次,SOA中的服務是標準化的、松散耦合的、面向服務的、能夠動態交互的。而當前網絡管理中缺少的就是一套統一的標準,使用SOA架構,將管理功能服務化能夠解決網絡管理中存在的管理信息互通困難,管理協議不一致等些問題;再次,SOA能夠增強系統的靈活性,能夠快速地進行部署新的應用,更從容地面對業務的變化。而網絡管理需要面對復雜龐大的網絡,提供給特定的用戶特定的管理功能,并且新的管理功能也要能夠快速地進行部署,SOA架構能夠滿足上述需求;最后,SOA強調可重用的思想,這將極大提升網絡管理系統各個部件的利用效率。
面向服務的綜合網絡管理系統采用面向服務的思想,將網絡管理系統服務化,采用統一的標準接口,打通了原有各管理系統間的壁壘。面向服務的綜合網絡管理系統集成框架由4個部分組成:用戶服務運行環境、用戶環境、設計者環境和管理維護者環境(如圖1所示)。綜合網絡管理系統所有的管理功能將以封裝好的服務的形式提供給用戶和各種應用,通過服務集成來實現管理系統的集成,這將極大加強綜合管理系統靈活性。

圖1 面向服務的綜合網絡管理系統集成框架總體結構
服務運行環境提供服務運行所需的軟硬件資源;用戶環境向設計者環境提出業務需求,并使用服務運行環境提供的用戶業務;設計者環境根據技術發展趨勢和廣泛的用戶需求設計開發服務,也根據具體用戶的需求設計用戶業務,并將設計完成的服務和用戶業務提交給維護管理者環境;維護管理者環境維護服務的運行環境的正常運行,進行服務的生命周期管理。
本文討論的服務設計系統即為框架中的設計者環境部分。服務設計系統從服務運行環境獲取當前的服務能力,向管理者環境提供設計完成的可部署的業務方案和服務方案,是面向服務的綜合網絡管理系統集成框架中實現服務需求向服務實現轉化的樞紐,是綜合網絡管理系統的重要組成部分。
服務設計系統依據 SOA服務設計原則和管理系統的功能需求,設計原子管理服務及組合服務,并使服務設計者根據已有的原子服務及組合服務能夠快速地設計出新的組合服務。系統將設計出的一系列標準服務以XML文件的形式提交到服務管理系統。所有服務的技術接口均使用統一的標準化描述語言來進行描述,以使服務的描述更加準確和規范化,為服務的發現、查找、調用及組合提供良好的基礎支撐。
服務設計系統包括管理業務設計和管理服務設計兩大部分。管理服務設計是根據整個網管功能需求發展狀況進行原子及組合服務的設計,而管理業務設計則是從最終用戶的角度來說的,是根據具體的用戶需求進行設計滿足用戶所需的功能,如圖2所示。

圖2 服務設計系統組成結構
設計模塊是開發人員設計開發管理服務的軟硬件環境。服務設計模塊的主要功能是根據系統需求,依據服務設計原則直接設計開發新的服務或者根據已有的服務來組合新的組合服務;業務設計模塊則依據用戶需求,根據管理系統當前能夠提供的服務能力,通過合理設計,將綜合網絡管理系統能夠提供的服務組合為可以滿足用戶需求的服務服務流程。
生成模塊將設計模塊提交的服務組合和服務流程實際結果封裝為一個定義良好的服務。服務生成模塊將新生成的原子服務或者組合服務提交到管理維護者,以便其對服務進行部署;業務生成模塊將組合出的能滿足用戶需求的服務流程(業務)交付給服務消費模塊,將業務信息提交給管理維護環境中的業務庫和業務維護模塊。
服務能力庫是服務設計系統中用來記錄當前綜合網管系統所有管理服務能力的場所。在進行管理業務設計和管理服務設計時,設計人員需要認識這些系統已有的服務能力,服務能力庫就是將服務依據有的能力映射為設計者編輯管理業務和管理服務時可直接使用的能力模型。
服務設計系統是服務設計者用來設計生成標準化服務的可視化工具,它為服務設計者設計各種服務和業務提供良好的支持,簡化設計過程。整個系統使用Java語言在Eclipse平臺中編程實現。
設計工具的可視化使用JGraph插件來完成。JGraph是一個開源的,兼容Swing的基于MVC體系結構的圖形組件,它具有相當高的交互性和自動化,是一套為圖(Graph)定做的純Java開發的組件。JGraph支持拖放,縮放,合并,編組等操作,可以被結合到任何的Swing應用程序中。JGraph并不包含任何數據信息,它只提供圖形的繪制功能。為實現設計系統的功能,本工具對JGraph進行了擴展,將服務(數據)與繪制出的圖形進行關聯,并用不同的邊來表示服務之間抽象出來的各種關系,這樣各種圖表和線條就可以用來表示服務及服務間的關系。
將每個服務用不同的圖形表示出來,然后根據用戶的選擇和拖拽操作來生成相應圖形所表示的矢量圖對象,并生成此矢量圖所關聯的服務對象。每一個顯示的服務圖形都與一種服務建立了一個映射關系,對圖形化界面中相關圖形的操作會作用到與其關聯的服務對象。用戶可以方便地通過操作來改變服務的相關屬性。而服務的描述以及組合過程則與服務的圖形化顯示是松耦合的,圖形化顯示不會影響到底層的服務描述及組合算法。系統的總體技術架構如圖3所示。

圖3 服務設計系統技術架構
表示層是服務設計者能夠直接看到的用來呈現底層服務的視圖,主要完成服務及其相互間關系的圖形化表示;服務層包含各種服務,服務層中的服務依據服務描述和組合算法來完成服務組合過程。
系統將服務及服務間的關系進行抽象,得到各種服務的抽象表示和服務間關系的形式化描述。系統中的所有服務都繼承自Service抽象類,各種服務是Service類的子類。服務用WSDL語言進行描述,服務庫中的一個圖形元素代表一種實現的服務。服務設計者通過簡單的拖拽操作可生成標準描述的服務的一個實例,然后可根據服務間的關系及功能需求對服務進行組合,服務組合算法根據用戶的操作生成組合出的服務。
服務組合技術是本系統中的關鍵技術,用來完成服務的組合。本系統目前采用jPDL語言來完成服務的組合過程,使用jPDL語言的語法規則,并實現了該語言相關的語言邏輯,用戶設計完成后的服務組合可以保存為能直接被服務運行環境加載使用的文件。系統將設計的服務的基本信息和對外接口分別保存為XML文件和相關的WSDL文件。以供以管理維護者環境對服務進行管理。
系統主要分為3個功能模塊區:面板區,功能區和工作區。
面板區是系統中最重要的區域,此區域又分為服務設計、業務設計和服務庫3個面板。服務設計面板主要用來進行服務設計,面板中包含各種設計好的原子服務和組合服務,以及抽象出的服務間的各種關系。業務設計面板用于完成業務設計,其中包含的內容與服務設計面板相似。服務庫面板包含當前系統中已有的服務。
工作區是服務設計者進行服務設計的主要場所。設計者可以從面板區選擇合適的元素通過拖拽操作將其放置到工作區的畫布上,通過選擇合適的服務及關系完成服務設計組合過程。
功能區包含菜單欄和工具欄,是方便用戶進行設計操作的區域。包含打開、保存、另存為、刪除等各種操作命令。系統將服務設計者設計完成的服務組合過程通過保存命令以XML文件的形式保存下來以便服務管理環境使用。
前期,已利用服務設計原型系統設計了兩個原子服務:拓撲搜索服務和拓撲拼接服務,并且將其分發到服務運行環境和服務管理者。當前一個用戶提出要同時查看顯示兩個地區網絡拓撲的業務需求。服務設計者查看服務庫,發現沒有直接滿足用戶需求的業務,但可以通過將服務庫中現有的服務進行組合從而設計出滿足用戶需求的服務,服務設計者在設計環境中新建一個組合服務(如圖4所示)。

圖4 新建組合服務
點擊下一步繼續設置服務的基本信息和對外接口,設置完成后進入服務設計界面。通過操作生成相應服務,并經過恰當服務組合邏輯,即可將原有的服務組合為一個新的服務流程。本實驗中使用fork并行調用兩個拓撲搜索服務,等待兩個服務調用完成后,再調用拓撲拼接服務。設計完成后將設計出的服務流程保存,其保存結果包含3個文件:服務基本描述文件,服務WSDL文件和服務流程描述文件。這些文件將被服務運行環境和管理維護者環境使用。系統進行服務組合設計過程如圖5所示。
通過系統3個部分的聯合測試,新的組合服務可以成功地被部署到服務運行環境中,用戶可通過Web界面獲得兩個地區拼接后的網絡拓撲效果。此實驗基本驗證了原型系統的正確性。

圖5 設計組合服務過程
本文介紹了SOA的相關概念,描述了面向服務綜合網絡管理集成框架,并在此框架下研究了服務設計系統的相關技術,實現了服務設計系統的原型,并通過一個實驗驗證了原型系統的正確性。服務設計系統是面向服務綜合網絡管理系統的重要組成部分,它將管理服務以的標準化的形式進行設計和組合,為面向服務網絡管理系統所具有的靈活性和可擴展性打下了良好的基礎。在下一步的工作中,將繼續深入研究網管服務描述語言及服務組合方法,重點是對服務組合邏輯的形式化描述進行研究,使其更好的應用于網管領域。
[1]KotsopoulosK,Pouwan Lei,Yim Fun Hu.A SOA-based information management model for next-generation network[C].ICCCE 2008.International Conference onDigital Object Identifier,2008:1057-1062.
[2]張曌.基于SOA的網絡管理系統架構及應用研究[D].上海:上海交通大學,2007:3-50.
[3]張琛.基于SOA的分布式網絡管理的系統研究[D].成都:電子科技大學,2007:1-63.
[4]Nicolai M Josuttis.SOA in practice:the art of distributed system design[M].Cambridge:O'REILLY,2007.
[5]Mo Li,Kumbesan Sandrasegaran.Network management challenges for next generation networks[C].Proceedings of the IEEE Conferenceon LcalComputer Networks 30thAnniversary,2005.[6]Rao Jinghai,Su Xiaomeng.A survey of automated web service composition methods[C].San Diego,California,USA:SWSWPC,2004.
[7]Roman D,Keller U,Lausen H,et al.Fensel web service modeling ontology[J].Applied Ontology,2005,1(1):77-106.
[8]Virgilio Gilart-Iglesias,Francisco Macia-Perez.Services and networks management through embedded devices and SOA[C].Proceedings of the 10th IEEE International Enterprise Distributed Object Computing Conference,2006.
[9]Liu Yang,Hu Enzhao,Chen Xudong.Architecture of information system combining SOA and BPM[C].International Conference on Information Management,Innovation Management and Industrial Engineering,2008:42-45.
[10]Du Xutao,Xing Chunxiao,Zhou Lizhu.A Chu spaces semantics of control flow in BPEL[C].IEEE Asia-Pacific Services Computing Conference,2009:142-149.
[11]漢森著,成保棟譯.使用Java Web服務構建SOA[M].北京:電子工業出版社,2007:36-52.
[12]王穎,邱雪松,王智立.面向服務的網絡管理機制的建模方法[J].電子與信息學報,2007,29(11):2564-2567.
[13]馬皓,張曉軍,張蓓.面向服務的網絡管理系統設計與實現[J].大連理工大學學報,2005,45(增刊):78-81.
[14]NI Wan-chen,LIU Lian-chen,WU Cheng.Survey on web services composition methods[J].Computer Engineering,2008,34,(4):79-81.
[15]HE Zhi-yong,BEN Ke-rong.A process-model-based service composition method[J].Computer Engineering&Science,2009,31(10):69-89.