崔弘亮, 肖 刚
(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.