您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 面向服务的动态体系结构描述语言SO-DADL
ComputerEngineeringandApplications计算机工程与应用2011,47(6)近年来,Internet逐渐成为了主流的软件运行环境,网络表现得更为开放和动态,具有自适应能力软件的开发也备受研究者们的关注。自适应软件的一个基本特征是能够在运行时进行演化,以适应需求和环境的变化[1]。而面向服务的计算(SOC)是新一代基于Internet的计算模式,它把Internet上的大量资源虚拟化为服务[2]。服务是一种粗粒度的、可发现的、松散耦合的、自治的分布式组件。服务的这些独特特征,使面向服务的体系结构(SOA)明显有别于传统软件。从软件体系结构(SoftwareArchitecture,简称SA)的角度使得SOA应用具备自适应软件的基本特性将会为SOA应用的发展带来实质性的突破。面向服务的架构(SOA)是一种基于Internet的分布式体系结构,通过应用程序的不同服务以及它们之间定义良好的接口和契约联系起来。服务是SOA的关键概念,服务层是SOA的基础,服务可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性。SOA的一个核心思想就是要实现IT与企业业务对齐,使得企业能够轻松满足商业业务的快速变化与发展的需求,因此,使SOA架构在运行时具备动态调整的能力成为了一种必要。软件体系结构从全局的角度为系统提供结构、行为和属性等信息,己经成为软件开发过程中的核心制品[3]。体系结构描述语言(ArchitectureDescriptionLanguage,简称ADL)是SA研究的核心问题[4]。而现今软件架构的研究,主要关注静态架构,对动态架构支持甚少[5]。因此,如何在抽象层次上模拟SOA架构的运行时动态行为,即动态SO-ADL的研究己成为设计和实现SOA动态架构的基础和关键[6]。1高阶多型π演算进程定义π演算是20世纪90年代计算机并行理论领域最重要的并发计算模型,它由Milner等人[7]对CCS(CalculusofCommuni-catingSystems)进行扩充而得到。高阶多型π演算由Sangiorgi[8]在一阶π演算的基础上发展起来,旨在描述结构和行为都不断变化的并发系统。有关π演算及高阶多型π演算的相关概念请参阅文献[7,9-10]。面向服务的动态体系结构描述语言SO-DADL秦辉,史维峰,张丹QINHui,SHIWeifeng,ZHANGDan西北大学信息科学与技术学院,西安710127SchoolofInformationScienceandTechnology,NorthwestUniversity,Xi’an710127,ChinaQINHui,SHIWeifeng,ZHANGDan.ServiceorienteddynamicarchitecturedescriptionlanguageSO-DADL.ComputerEngineeringandApplications,2011,47(6):68-74.Abstract:ServiceOrientedArchitecture(SOA)isanInternet-Orienteddistributedsoftwarearchitecture.InSOA,thecoarse-grained,discoverable,looselycoupled,autonomousservicesareitsbasicconstitutionalunits.Basedonthehigh-ordermulti-typeπcalculustheoryandXMLlanguage,thispaperproposesSO-DADL,adynamicarchitecturedescriptionlanguageforSOA.SO-DADLspecifiestheinterfaces,behavior,semanticsandqualitypropertiesofservices,providesmechanismstomodelandanalyzethedynamicandevolvingarchitecture,andsupportsarchitecture-basedservicecomposition,HowSO-DADLcanbeusedisillustratedthroughacasestudyinthispaper.Keywords:Softwarearchitecture;ServiceOrientedArchitecture(SOA);ArchitectureDescriptionLanguage(ADL);service;high-ordermulti-typeπ-calculus;dynamicbehavior摘要:面向服务的架构(SOA)是一种基于Internet的分布式软件体系结构。在SOA中,粗粒度的,可发现的,松散耦合的,自治的服务是其基本的结构单位。基于高阶多型π演算理论和XML语言,提出了一种基于SOA架构的动态体系结构描述语言SO-DADL。SO-DADL指定服务的接口、行为、语义和质量特性,提供了对动态和不断演化的结构建模和分析的机制,并支持基于架构的服务组合和运行时动态演化,用案例说明了SO-DADL的应用。关键词:软件体系结构;面向服务的架构;体系结构描述语言(ADL);服务;高阶多型π-演算;动态行为DOI:10.3778/j.issn.1002-8331.2011.06.020文章编号:1002-8331(2011)06-0068-07文献标识码:A中图分类号:311基金项目:西安市科技计划项目(No.CXY09016)。作者简介:秦辉(1985—),男,硕士研究生,主要研究方向:SOA,分布式网络系统;史维峰(1962—),男,博士,教授,主要研究方向:SOA,分布式网络系统,软件工程,CAD/CAM等;张丹(1986—),女,硕士研究生,主要研究方向:SOA,分布式网络系统。E-mail:qinhui1985@yahoo.com.cn收稿日期:2010-09-14;修回日期:2010-11-29682011,47(6)定义1设N表示名(name)的集合,名由小写字母表示,Nˉ--D(αˉ|αÎN)αÎNNˉ,P,Q表示高阶π演算进程,则高阶多型π演算进程可定义为:P::=åiÎIαiPi|τP|P|Q|VxP|[x=y]P|DK~|!P其中α::=u(y~)|uˉ(y~),D::=(x~)P。其意义解释如下:αiPi表示先通过通道U输入(或输出)y对象,再激活进程P,其中u(y~)表示通过通道U输入接收y~;uˉ(y~)表示通过通道U输出y~,y~表示包括(y1y2yn)参数列表;τ表示不可见的内部行为。I表示可数的索引集合,当I为空时,表示非活动进程,用符号0表示,它不能与任何进程交互;当I中索引为多个时,表示进程的不确定形式,用符号P1+P2++Pi+表示,它根据一定的诱因来确定所要激活的进程Pi,且其行为仅表现为激活进程Pi的行为;P|Q表示并行操作;VxP表示x是P的局域端口,P不能使用x端口与外界联系;[x=y]P是条件进程,满足时执行P,否则没有任何操作;DK~表示抽象,K可以是代理或进程,D可定义为(y~)P,在这个进程中,y~表示参数集合(y1y2yi),y~可有是无限的集合;!P表示P进程的循环,即!P=P.!P。2面向服务的动态体系结构描述语言SO-DADL本节重点讨论SO-DADL,首先给出其描述框架,接着给出语言结构和服务定义,最后描述服务端口和行为规约。2.1SO-DADL的描述框架SO-DADL将遵循Allen[8]等给出的已被广泛认同的SA描述框架,围绕SA实体中的服务、连接件和配置等进行SA建模,如图1所示。SO-DADL将高阶多型π演算作为计算行为和动态行为的统一语义基础,将能很好地显式、独立地表示系统的动态行为。借助于高阶多型π演算理论,SO-DADL在设计阶段可以精确地刻画系统的交互行为,便于模型验证和求精。在系统投入运行时,可以推导系统的行为,并能很好地支持系统的在线演化。服务(component)是SOA的基本要素之一,依据接口和行为描述。在SA中,服务被视为用于实现业务逻辑的实体,执行系统的计算功能,此外,它还描述系统的动态行为。服务作为一个封装的实体,仅通过其接口与外部环境交互,而服务的接口由一组端口(port)组成。每个端口由一组通道(channel)组成,因此端口可看成通道的集合。引入端口让服务的交互功能结构化、局部化,从而方便对其进行分析。通道是最基本的交互点,它的角色就是在SA元素之间提供一种通信渠道,服务可以通过它发送或接收信息。传统的软件体系结构中把连接件看作一种特殊构件或组件,而在实现基于SOA的软件过程中,可以把构件或组件打包转化成为服务,以服务的方式提供连接服务。所以连接件(connector)可以看作是一种特殊的服务,旨在建立服务间的交互以及支配这些交互规则。连接件依据接口和路由行为(routing)进行描述。显然,连接件的接口也由一组端口构成,连接件的端口同样由一组通道组成。路由行为是计算行为的一个变种,指示服务间的通信轨迹和执行交互规则及约束。组合服务(组合连接件)由外部端口和内部元素构成。应用系统本身可被视作一个特殊的组合服务。组合服务(组合连接件)的内部元素由一系列成员服务和成员连接件组成,它们通过配置链接在一起。配置要求服务端口(通道)与连接件端口(通道)显式连接。服务之间通信和协作不能直接进行,而是通过连接件连接。2.2SO-DADL的语言结构与服务定义在SO-DADL,服务是架构的第一要素。在架构层次上,服务(称之为架构服务)是抽象的架构组件,它们不同于业务层面的服务(称之为业务服务)和SOC的技术层次(如Web服务,BPEL流程服务等,称他们为应用服务)的服务。架构服务反映业务服务的需求,并通过应用服务来实现业务服务。SO-DADL从层次方式上指定结构。有两种服务:原子服务和组合服务。原子服务实现基本业务功能,组合服务通过子服务和子连接件集合组合而成。系统本身被指定为一个组合服务,反之亦然,组合服务也是一个面向服务的系统。在SO-DADL中,连接件用于表达服务端口之间的绑定,起到一个桥梁的作用,至少跟两个服务同时连接。连接件的定义与服务的定义类似,可以看作是一种特殊的服务(连接件服务),因此连接件也分两种:原子连接件和组合连接件。SO-DADL采用XML作为元语言,XML具有形式化良好的结构、可扩展性以及强大的工具支持等诸多优点,有利于SO-DADL与其他基于XML规范的工业标准(如WSDL、BPEL等)之间的兼容性,具体类似思想可参阅文献[11-12]。由于SO-DADL连接件和系统本身也指定为服务,SO-DADL的体系结构模型包括在各个不同粒度层次上的服务集合。在SO-DADL中,服务有自己的类型,并可以在体系结构中多次实例化。每种服务类型都在一个XML文档中声明,并拥有一个命名空间。图2说明了面向服务架构模型的文档结构,它由多个XML文件组成,这样的一种结构便于SA从局部的抽象层次上进行求精行为。该系统是在System.xml文件中定义的组合服务,图1SO-DADL描述架构图ReplyServiceInteractionConn-ectorInteractionServiceCompositeServiceorASystem:Port:ChannelConnector1Type(Connector1.xml)Connector1SystemServiceType(System.xml)Service1Type(Service1.xml)Service1Service2Serrvice3Service3Type(Service3.xml)Service2Type(Service2.xml)Service4Type(Service4.xml)Service5Type(Ser
本文标题:面向服务的动态体系结构描述语言SO-DADL
链接地址:https://www.777doc.com/doc-1604286 .html