一种运行时自适应软件体系结构的形式化描述方法

文档序号:6427255阅读:313来源:国知局
专利名称:一种运行时自适应软件体系结构的形式化描述方法
技术领域
本发明涉及软件的建模技术,尤其是一种运行时软件体系结构的形式化描述方法。
背景技术
形式化方法在基于构件软件系统设计的研究中也用的比较广,一类是直接运用通用的形式方法描述体系结构,另一类是提出专门的体系结构描述语言描述体系结构。1、通用的形式方法描述体系结构运用通用的形式化方法对软件体系结构规格进行说明,近年来出现了许多的研究工作。目前这方面的工作大致分为四类(1)基于模型的方法基于模型的形式化方法是通过构建一个数学模型支持系统的规范,给出系统的状态和状态变换的显式操作。通常,一个规范描述一个系统的状态及其状态上的操作,以及描述和下一个状态的关系。因此,特定的数学对象(如数据结构、关系或功能)在结构上类似于详细描述的计算机软件需求,这些语言的语义是基于集合论,在系统的整个设计过程和实现中,指定的数学对象在保留初始规范的基本特征情况下是可调整的。这样的规范语言的代表是Vienna Development Method(VDM)和Z概念。VDM语言虽然可以准确地构造一个系统的规范说明,但它不支持面向对象的系统开发方法。为了获得面向对象开发方法的优点,对VDM进行了扩充。VDM++是VDM结合面向对象概念的扩展,它包含了连续时间变量,在VDM基础上扩展了类的声明、类型,增加了动态和并发行为,包括实时属性的机制,可用来描述并发和实时系统。Z是20世纪80年代由Oxford大学程序设计研究组(PRG)提出的一种形式规范说明语言和开发方法。Z和面向对象方法的结合,典型的有0bject-Z、Z++。 前者将状态和操作封装起来,作为类进行模块化,引入面向对象的基本概念。后者Z++中引入了对象引用的语义。VDM和Z是采用面向模型的方法,重点放在抽象数据类型的描述上, 抽象数据类型是通过公理来描述的,这些公理定义了抽象数据类型上的操作之间的关系。基于模型的形式化方法主要是以形式语言为基础的描述与分析方法,它们具有严格的定义,并且可借鉴形式语言中完善的分析技术。可利用标准逻辑的定理证明或化简工具实施系统的形式化验证。但是,这类方法有一定的局限性。Z概念建立在集合论和一阶逻辑的数学基础上,它本身有着成熟的形式化表示体系,模式可以很自然地表达类的概念。但 Z概念描述异构系统并发问题也存在一定的困难,VDM也不可避免地落入同一范畴。(2)基于逻辑的方法基于逻辑的方法主要用逻辑描述系统的特性,包括程序行为的低级规范和系统时间行为的规范。在分布式系统形式化分析中,常用的逻辑模型检查方法主要有P. Wolper 等人的基于模态逻辑的方法、K. Heljanko等人的基于计算树逻辑CTL(Computation Tree Logic)的方法、国内唐稚松教授等人的基于时序逻辑XYZ/E的方法等。Fisher等人定义了一种时序信念逻辑TBL用于分布式多代理系统的描述与验证。TBL这种方法与其他形式化方法相比,在定义逻辑语言语义方面具有简洁性,并且具有较强的推理功能。TBL的时序部分适合于模拟响应系统。TBL能够用来分析验证分布式系统及其他具有协同结构的系统。 Hirai等人提出了应用命题时序线性逻辑模拟验证实时并发系统。他将时间的概念引入到线性逻辑中,并称为时序线性逻辑。同时给出了时间Petri网的可达性问题等价于对应时序线性逻辑相继式的可证明性问题,并讨论了时序线性逻辑体系中可达性的判定性问题。 此外,应用时序线性逻辑描述了同步通信系统。时序线性逻辑也可用于分布式系统的描述与验证。基于逻辑的系统描述方法的共同特点是为分布式系统的描述和性质证明提供了一种简洁方式,并具有严格的推理机制。但是,由于它们都需要对系统进行高级抽象,其应用范围受到一定的限制。像一般形式化方法那样,它们是针对系统运行机制处理的,不能很好地体现系统的物理结构。(3)基于进程演算的方法基于进程演算的方法是给出系统并发行为模型,并通过进程的通信约束表示行为,其核心通常是一种简单的语言,由带标号的变迁系统给出其操作语义,当实现与规格说明都用该语言描述时,行为等效性建立了两者之间的联系,而行为等效性则为系统验证及推导的复合提供了方便。进程演算的基本特点是建立了并发系统潜在不确定性模型。通信顺序进程 CSP(Communication Sequentialprocesses, CSP)、通信系统演算 CCS(Caleulus of Communicating Systems,CCS)、π演算等是进程演算方法的代表,广泛用于并发系统的规格说明与验证,特别是通信协议领域。CSP是很多并发分布式语言的思想基础,是对并发程序设计语言的一次重要概念整理,它可看作是一种命令式程序设计语言。通信系统演算 CCS可看作为一种建立在极小原语集上的函数式程序设计语言。CSP和CCS两种模型都基于相同的出发点,它们都将进程作为构造系统的基本构件,认为一个系统由若干进程构件通过各种方式(选择、复合、隐藏等)组合而成,而新形成的系统又可作为一个进程构件用于构造更大、更复杂的系统。π演算是在CCS模型上发展起来的,其最大特点是允许进程之间将信道名字作为值来传递,从而可描述通信拓扑结构可动态变化的并发系统,但η演算描述系统很抽象, 因此,相比其他形式化方法而言,进程演算方法对于实现开发的人员可能较难理解和掌握, 也不能给出逻辑公式和证明。2、专门的体系结构描述语言方面目前,国外具有一定影响力的 ADLs 有Aesop、ACME、Rapide、C2、Darwin、SADL, UniCon和feight。目前在ADL方面还没有形成一致的观点,因此各种ADL关注点和研究方法都有比较大的差别,例如Wright主要描述联接关系的语义,而Rapide更关注构件接口和行为建模分析,进一步,即使在原理接近的形式化语言之间,形式规约、模块互连、程序语言也不一定相同。(I)Aesop =Aesop是个支持体系结构风格设计的环境。该语言采用面向对象类型框架并提供体系结构描述的词汇表。在体系结构中基本类型(元类)有“组件”、“连接件”、 “端口”、“角色”、“配置”和“绑定”。如果需要定义组件类型,则需要将此定义为“组件”类型的子类。该体系结构描述语言提供体系结构风格的设计空间,但不提供语义方面的支持。(2) ACME =ACME的目的在于抽取诸多ADL的共同点,比如系统组件以及它们之间的对应关系,以此作为交换的基础,与此同时,还允许增加一些相关信息,作为辅助信息。当前 ACME在语法上已经相对完善,但在语义上还有比较大的局限性。虽然ACME以语言的身份出现,由于它所关注的为ADL共性,所以还是属于同类工作。(3) Rapide =Rapide是种可执行的ADL,通过定义并模拟执行基于事件的行为建模分布式并发系统。基于事件的偏序集合描述系统行为。构件接受到的事件触发构件计算,同时根据计算结果产生相关事件并传送给其它构件,并触发相关构件的计算。Rapide关注原型设计的快速建立,基于事件、并发、面向对象的语言。该模型的执行结果为事件集合,里面的事件满足特定时序或因果关系。其优点在于提供多种辅助分析工具。分析模型在于检测在某个特定模拟过程中的事件是否违反了上述次序关系。该模型仅仅基于接口定义体系结构,在开发的下一个阶段再考虑利用具有特定行为的构件对接口进行替换,由此可以看出, 开发人员可以在体系结构中使用新的构件,只要这个新构件符合前面规定的接口就行。由Richard N. Taylor等开发的体系结构描述语言。C2基于消息,最初提出的目标为适合描述图形用户界面软件的体系结构。构件模型分为上下两端,分别负责消息发送和接收,其连接机制是消息总线,实现对消息的过滤和转发。该模型的ADL提供体系结构规约的语法标记符号,并没有提供相应的语义规约,不支持体系结构风格规约和分析。(5)Darwin 该体系结构描述语言由Magee和Kramer开发。它通过接口来定义构件类型,接口主要分为提供服务的接口和请求服务的接口,通过系统配置定义构件实例同时建立提供服务接口和请求服务接口之间的绑定。模型中提供延迟实例化和直接动态实例化两种技术支持软件的动态演化。该模型采用η演算提供系统结构规约的语义,构件提供的服务表现为名字,绑定表现为进程,它传输该服务名字到请求该服务的构件中。该模型的开发者采用该语义模型分析实现Darwin配置的分布式算法。但在该模型中并未提供任何方法和技术刻画构件及其相关服务的性质,该模型服务类型的语义由底层平台实现,并没有相关的语义解释。在该模型中也没提供显式连接件的概念。Darwin里的请求连接模型只支持非对称的交互模式,不能独立于构件进行相关描述。在定义体系结构风格时,需要定义它的交互模型,构件的定义由体系结构师完成,所以它不能很好的支持体系结构风格规约。 该模型采用参数化配置方式描述系统规约,这方面也一样存在局限,不能很好的支持体系结构风格。(6) SADL 该模型提出了能够确保正确性和可组合性的体系结构精化模式概念,在该模型中精化模式的实例能够确保精化过程的正确性。采用该方法能够有效地降低体系结构设计过程错误,并能广泛、系统地实现对设计领域的知识和正确性证明过程的复用。由于该模型工作的前提假设为大型复杂软件系统体系结构是由一组相关的层次化的体系结构进行描述,其中高层是低层的抽象,低层是高层的精化,在模型中具有不同种类和数量的构件和连接件。如果这种层次化和结构缺少正规的描述方法,则精化过程就容易出错,在本文中所提到的抽象状态机理论同样需要解决类似的问题。(7)Unicon 该模型具有一个可执行的配置工具,同时提供一个高层体系结构设计编译器,支持异构构件及某些特殊的连接件类型的组合。构件和连接件都有接口,从更高抽象层次来看,它们都属于构件,其中构件又名“扮演者”(Player),连接件可名为“角色”(Role),通过配置使它们相互连接。但该模型的扩展性不好,里面增加新的连接件类型比较麻烦,而且它并不支持描述体系结构风格。
(8)feight:该体系结构描述语言由Robert Allen等人开发。该模型的形式语义基础是通信顺序进程CSP。它具有和Unicon类似的规约框架,即从构件、连接件和配置三个角度对体系结构进行刻画。与Unicon所不同的为,它不面向实现,而是在高抽象层次描述体系结构。该模型采用CSP并对其进行相关的扩展,用来刻画构件端口的行为交互及计算行为,描述连接件的交互协议和角色规约。因此,它提供显式、独立的连接件规约以及支持任意复杂连接件的规约。该模型通过定义连接件和构件实例,在对应角色和端口之间建立连接,实现系统配置,同时在该系统配置的基础上推导得出描述该系统配置行为的CSP进程。通过绑定机制实现系统的层次化构造。这个模型的突出特征在于不仅支持单个系统体系结构的规约和分析,还支持体系结构风格规约和相关分析,更好为产品族的规约和生产提供支持。在体系结构描述语言方面,国内研究领域也提出几种较有代表性的描述语言,如支持面向构件软件开发方法的ABC/ADL、基于框架和角色模型体系结构规约语言FRADL、基于层次消息总线的JB/ADL、基于时序逻辑的XYZ/ADL、基于主动连接件的体系结构描述语 Tracer 等。(1) ABC/ADL :ABC/ADL是种基于XML的体系结构描述语言,具有多数ADL描述软件系统高层结构的能力,同时支持系统的逐步精化与演化,并对自动化组装和验证方面提供支持。该描述语言以标准XML作为元语言定义数据的互操作,它不仅使ABC/ADL具有与其它 ADL的互操作的能力同时还有助于实现设计过程中阶段性产品与其它软件生命周期阶段性产品之间的可追踪性。(2) FRADL =FRADL的首要的规约对象为体系结构基本元素,这种设计思想认为框架也是构件,包含主动连接机制的角色模型连接器,构件实例与连接器实例的配置最终形成软件体系结构。这种模型虽然提供了描述体系结构基本要素如构件、连接件和配置等的语法,但在形式语义模型还是欠缺,并没有提供系统的体系结构描述和分析方法。(3) JB/SADL:北大青鸟以青鸟软件生产线的实践为背景,提出基于层次消息总线的软件体系结构风格,同时设计了对应的体系结构描述语言JB/SADL,该语言从接口、静态结构和动态行为三个角度描述构件。通过JB/SADL,可以方便地实现软件体系结构的构造、 精化和验证,具有原型的快速生成能力,同时还在代码框架的自动生成和系统体系结构的动态演化方面提供支持。(4)Tracer:它是种基于主动连接件的体系结构描述语言。这种方法在连接件中引入了引擎机制,使它在与相关组件连接的过程中成为运行活动的触发元素,同时在目标系统实现中对应转化为可见部分。体系结构描述语言通常运用相互连接的软件来描述系统的结构,并且支持系统结构的层次化配置。它们给出体系结构规格说明的统一框架,直接提供相应的标记方法和符号,用规格说明体系结构的基本元素。但这些体系结构描述语言缺少体系结构规格说明的形式化分析技术,不能有效支持体系结构风格规格说明、描述构件交互的能力不足,不能描述软件运行时动态体系结构。

发明内容
为了克服已有运行时软件体系结构的形式化描述方法的自适应较差、可理解性较差、执行性较差的不足,本发明提供一种具可良好执行性,可推理性和易读性的运行时自适应软件体系结构的形式化描述方法。本发明解决其技术问题所采用的技术方案是一种运行时自适应软件体系结构的形式化描述方法,所述形式化描述方法包括以下步骤(1)对自适应软件体系结构框架进行描述设定形式化描述的体系结构框架,框架包括构件,连接件和体系结构配置,构件由外部端口和内部行为构成,外部端口是构件与外界环境或者其他连接件交互的纽带,而一个端口由一条或者多条通道组成,所述通道包括发送数据通道,接收数据通道以及既发送又接收数据通道,构件通过通道与外界进行数据交换;连接件由外部端口和内部行为组成,连接件的内部行为由路由行为组成,而动态行为是指导构件间通信的交互规则和约束,构件之间通过连接件才能交互,依附在构件和连接件端口上的通道构成他们之间的一个连接;(2)建立基于Agent网构软件的自适应构件模型将自适应构件作为网构软件中的构件形式,自适应构件内部由完成计算行为的计算模块和完成动态行为的自适应模型构成,自适应构件模型又包括处理预设演化的自适应策略和处理非预设演化的EBDI模型,EBDI模型中新增了意见函数和过滤器,意见函数功能是依据当前的对环境的感知和当前的信念再确定一个新的目标集合,过滤器是依据当前信念和目标更新实体的意图,丢弃无法完成或已无意义的意图,并为其选择新的实现方法;(3)自适应构件模型SAM的形式化表示所述自适应构件模型SAM包括时钟、信念、目标和意图,依次对自适应构件的各种心智态度予以形式化描述,给出形式化定义.时钟是一种给各种心智状态的相关进程提供系统时间的进程Clock(t)=\time(t)自适应构件模型SAM总是处在某个或某段时间,如过去、现在或将来,该进程通过端口 time向外界提供系统时间;信念是关于这个世界的信息,信息分为客观事实知识和主观态度知识,事实类信念定义成一个知识的查询过程,FactBasedBelief {id) = factid (x).Fact(x)它表示进程通过端口 factid获取变量X,然后通过子进程!^actid找到与χ相关的事实类知识,其中id是SAM实例的标志符,主观态度类信念表示相信某种状态或事件已经或将要发生,AttitudeBasedBelief {id) = time(t). [t = T](believeid (nid, Tt,s).nid ( , τ))它表示在时间τ,标志符为nid的SAM实例会处于状态s,其中s是一个向量,SAM 的信念进程为Belief(id) = FactBasedBelief(id) AttitudeBasedBelief(id)能力是指SAM能进入何种状态,SAM能力与它所涉及到的信念知识相关,Goal {id) = goalld{x).factld (χ)它表示当SAM实例从端口 goalid获取所欲实现的目标χ时,通过端口 factid查询要实现该目标所需的信念知识。意图表示SAM对自身的能力即能实现的目标做出的承诺,并将付诸行动;SAM的意图是伴随所要达到的目标而产生的,Intentioniid) = in tentionid ( , g).time(t) | believe id (id, i, g) | goal id (g)其含义为当SAM实例通过端口化切肚化!^感知到外界环境在时间t发生的事件或状态所蕴含的意图g后,判断SAC是否相信在该时刻能实现该目标,然后向SAM实例提出实现目标的请求;SAM实例进程形式化地定义如下SAC (id) = Belief (id) Goal (d) Intention (id)从SAM看来,环境是提供外部事件的场所,而它自身是提供内部事件的场所;某个SAM实例对应的环境进程可以定义为Enviid) = (vt, c)envid inspectι (τ, c)其中,erwid获取环境中发生的事件,然后等待SAM实例来感知,SAM内部产生时间的进程可以定义为 Self (id) = (ν , c)selfid .inspectid (r, c)其中,Self(id)获取SAM实例内部发生的事件;由SAM实例及其环境所组成的自适应软件系统定义成如下进程SASystem = Σ SAC (id》| Self (id》| Env ( φ)(4)根据π演算与构件及构件行为规约的对应关系,完成运行时软件体系结构的形式化描述,再依据η演算的可执行性和EBDI动态的推理体系结构行为,从而实现软件运行时的自适应。本发明的技术构思为随着hternet的日益普及和广泛应用,越来越多的软件系统运行和部署在网络环境上,新的软件形态——网构软件(Internetware)随之产生,它要求具有自主性、协同性、反应性、演化性和多目性等特征,其共性可以归结为自适应性,同时网构软件的运行环境hternet具有开放性、动态性和多变性以及不断变更的用户需求,这就要求网构软件必须能根据不断变化的环境和用户需求进行自调整。网构软件的主体是构件,这就促使了我们对实现自适应的网构软件的研究应该从构件实体入手。在现阶段,基于CBSD(Component Based Software Development)的软件开发方法已经成为新一代的软件开发范型,以体系结构为蓝图把构件组装成系统,构件与构件之间的依赖关系通过接口规约来实现,构件在整个组装过程中处于被动的地位,且在运行时这种规约和构件自身保持不变,因而传统构件缺乏对开放、动态和多变的环境和多变的用户需求的适应能力。如何设计和实现自适应的构件,并将构件依据体系结构描述组装成网构软件系统,这一系列问题给我们提出了挑战。传统的开发方法中,用户需求的规格说明采用的是非形式的自然语言以及图表结构描述,由于非形式描述的模糊性和歧义性,产生的规格说明往往不够精确和完整,规格说明的不同使用者对于同一规格说明会有不同的理解,从而造成系统的不完善。许多软件项目的经验表明,程序错误的很大一部分来自需求分析和设计阶段的失误。而形式方法的基本思想是对系统建立一个数学模型,研究和提供一种基于数学和形式语义学的软件规格说明语言,用这种语言严格地描述所开发软件的功能,然后将它转换成可以执行的代码,最后证明实现的代码是否符合其规格说明,于是产生了现在的软件形式化方法。软件形式化方法是作为软件工程的一个分支而发展起来,目标是为软件开发服务提供辅助分析验证,从而提高软件正确性和可靠性。目前完全将之用于实际的软件开发过程仍存在比较大的困难,主要表现在以下几个方面手工证明容易出错,而且形式化方法也相对难以掌握,辅助工具不是特别完善等因素。但是这方面的研究一直有众多人参与,而且取得了比较多的成果。传统的软件系统可靠性保证的方式是对目标系统进行反复测试和试用,这种情况即使对系统测试成功,只能说明目前为止没有发现错误,不能确保没有错误。 相反,作为一种以数学、逻辑为严格基础的形式化分析方法因其精确性和严格性,而受到工业界和学术界的青睐,并逐渐在实际系统的开发中起指导或辅助作用。形式化描述语言(Formal Description Languages)在计算机科学及其相关领域都有着广泛的应用,它是对系统进行形式化描述的主要工具和载体,同时又是联系纯粹形式化理论技术与其现实应用价值的之间的纽带。F. Oquendo等人提出的π -ADL能从运行时角度对体系结构的结构和行为两个视图进行描述,同时行为又可根据功能分为计算行为和动态行为,计算行为面向系统的业务逻辑,动态行为面向系统预定义的演化逻辑,但在应付难以预测和多变的环境和用户需求时,这种预定义的动态演化逻辑显得捉襟见肘。设计出一种具有严密形式化基础的体系结构描述语言,并且刻画软件系统运行时的行为和结构语义,同时利用其相关的形式化工具来协助系统的设计、验证和演化,不失为解决软件自适应问题的一条好途径。对Agent研究,经过十几年的发展已经取得了一些优秀的成果,在开发环境方面, 具有代表性的成果有JADE,JACK工程,并在工程上实现了很多基于Agent的应用系统,将 Agent技术弓I入构件化软件系统日益得到关注。软件Agent通过对自身行为的控制规定了 Agent在不同环境状态下应采取不同对策,但是一方面软件Agent技术尚不成熟,也没得到业界的认可;另一方面软件Agent对不同协议支持有限,同时并不是每个软件实体都是软件Agent,所以从软件Agent技术方面去解决网构软件的自主、协同、反应、演化等方面的问题显得很困难。网构软件的实体具有相对独立性、主动性和自适应性,具有感知外部系统运行和使用环境的能力,针对构件化开发方法中传统构件难以应付不断变化的环境和用户需求, 我们提出自适应构件这一概念。在自适应构件实现方面,现有的Agent技术或者是人工智能技术,难以实现与主流技术之间的集成,如果将Agent技术的研究成果,包括反应式结构、BDI逻辑和模型,基于情景演算的结构等应用到构件技术中,这样既能发挥Agent计算的灵活性和技术潜力,又能与主流技术集成,实现自适应的软件系统,增强了软件的生命力,同时对提高网构软件的质量和可信度有着重要意义。在自适应构件的实现过程中,构件如何来应对多变的外界环境和推理自身行为也是一个难题,形式化描述方法给我们提供一条解决该问题的很好的途径,一般的,形式化描述语言都具有明确规范的语法和严格精确的语义,所以一方面可以为相应的形式化描述提供标准的语法分析工具,另一方面还可以采用计算机辅助等手段实施不同程度的语义自动分析。因此亟需一种支持软件自适应的体系结构描述方法,来分析和推理具有智能性的自适应构件的行为,也可用于体系结构模型的形式化验证、求精和演化,支持实现网构软件系统的自适应特性。本发明借鉴Agent的反应和智能特性,构建了一种自适应构件模型,再在已有的研究成果D-ADL体系结构描述语言的基础上发明了一种描述运行时自适应软件体系结构的形式化方法(Formal Description Approach for Runtime SoftwareArchitecture),以下简称FDA4RSA。具体创造的技术方案以高阶多型π演算为理论基础,对自适应软件的框架和构件模型进行描述,在此基础上提出一套针对运行时体系结构自适应行为的形式化表述方式,然后对该形式化方法的语法规约及形式语义做介绍,同时开发了有一个可视化的辅助工具原型,证明了方法的可行性。利用分布式对象技术开发网构软件相对传统的方法具有一定难度。对于网构软件来说,需要有一系列方法论、软件工程方法和工具来支持。形式化方法是指具有完备的数学基础,并且这种数学基础不仅提供了精确定义的方法,具有一致性、完整性等特征,而且也提供了不需运行系统就可模拟证明其性质的方法。因此。形式化方法无论是从最初的用户需求到系统设计、实现、验证都能够为系统提供必要的支持。也有人提出通用ADL,但通用的ADL的描述能力也有限制,所以提出一种描述运行时软件体系结构的形式化方法来解决网构软件的形式化描述问题,FDA4RSA应该能够描述自适应构件的自主行为,其中包括预设的和非预设的演化行为。FDA4RSA应该考虑的目标包括①能够有效反映计算机网络系统的分布、并发、交互等本质特性;②能够从运行时角度刻画体系结构,以及具有描述预设的和非预设的自适应行为的能力;③支持对网构软件的建模元素自适应构件模型进行形式化描述,并能将各种建模元素装配成实际的网构软件系统;④具有可执行性。具有一定的推理、分析和验证能力,还支持系统的逐步求精和演化,并适于开发相应的CASE工具;⑤应保持简单性和易理解性之间的平衡。结合以上目标,在原有的体系结构描述语言D-ADL的基础上,FDA4RSA增加了对自适应构件描述的语义和语法知识,能对动态行为规约进行形式化解释。在运行时,软件能根据环境的变化动态的进行自适应调整,同时,通过FDA4RSA辅助工具,系统维护人员能指导构件的端口连接,组装复合构件或自适应软件系统,等进行一系列显示化的操作。伴随通信系统和网络分布式计算的发展,许多计算机涉及交互,并因此设计具有多个并发活动构件的软件系统,而传统的计算模型,如图灵机和λ演算,它们在交互系统建模方面存在不足,它们的基本活动是读取存储或函数应用,它们也无力描述交互和并发执行的软件系统。20世纪90年代由MiIner等人对CCS进行扩充得到了 π演算。π演算是计算机并行领域的最重要的并发计算模型,高阶多型η演算由Sangiorgi在一阶π演算的基础上发展,旨在描述结构和行为不断变化的并发系统。Ji演算具有3个基本的实体进程(process)、名(name)和抽象(abstraction)。 进程是并发运行实体的单位,并以名来统一定义通道(channel)以及在通道中传送的对象 (object),每个进程都有诺干与其它进程联系的通道,进程通过它们共享的通道进行交互。 高阶多型η演算和一阶η演算不同的关键在于对象名本身也可以是进程,这就使得交互中通信的数据可以是进程,进程可以被传递。抽象建立在进程的基础上,是带参数的进程。 对抽象的参数进行具体化,得到一般的进程。在高阶多型η演算中,参数以及通道中传送的对象都具有类型,对抽象的参数进行具体化以及进程交互时要注意类型兼容。
定义1.设N表示名(name)的集合,名由小写字母表示,&间《e W),P,Q 表示高阶η演算进程,则高阶多型η演算进程可定义为·Ρ::=0| Χ.尸 |在少.尸| 尸+ ρι 尸 ιρι&χ)尸 |[x = y]尸卜,其中 π::= X ⑴ li.其意义解释如下0表示非活动进程,它不能与任何进程交互;α χ. P 这里,α指某一通道的输入端,此进程的行为是先通过通道名α从接收对象y,再激活进程P[y/x],其中X为局部名(local name), [y/x]表示a换名操作;^yi3:这里正指某一通道的输出端,此进程的行为是先通过通道名α输出对象名 y,再激活进程P,其中y为全域名(global name);P+Q 这是进程的不确定计算形式,此进程将根据一定的诱因来激活进程P或Q,它的行为仅为这个被激活的进程的行为;P I Q 这是一个并行操作形式的进程,此式中进程P和Q并行地存在,它们可以独立地同其他的进程进行交互操作,也可以彼此通过共享的通道进行通信; (vx). P 该进程中,χ是进程P的局域名,它使得进程P不能通过通道χ与其他进程进行通信;[x = y]P 这是一个条件进程,如果χ = y,它将激活进程P,否则将不进行任何操作,成为非活动进程0;在多价π演算中,通道上传输的数据可以是一个名字向量,例如X(yi...yn).p或 x(y).p,明…JvjP或砂.尸等。我们将 χ (υι· .. yn) · P 记作 χ (入 y” .. yn)P,而将、..υ记作, 并定义,进程抽象k= ( Ay1... yn) P,进程具体化C= [λΥι...Υη]ρ.本发明的有益效果主要表现在动态ACME可用于描述体系结构中可选或者多重的体系结构元素,进而达到一定程度的动态特性。同时利用Armani规约语言对体系结构的拓扑结构和元素进行了基于不变式的约束。C2使用专门的体系结构变更语言 AML (Architecture Modification Language)。在 AML 中,定义了一组在运行时可插入、删除和重新关联体系结构元素的操作,如addcomponent,weld等。ABC/ADL强调体系结构模型到程序设计语言的转换。ABC/ADL包含以体系结构元素的对象的增加、删除、替换等操作, 可以为运行实体提供内部状态和外部环境的信息,比如线程数目、构件实例的个数等。但这些ADL没有严密的理论基础,不能对体系结构的动态行为进行严格的分析和推演。Rapide基于偏序事件集对构件的计算行为和交互行为进行建模,允许在条件语句中通过link和unlink操作符重新建立结构关联。但是Rapide不允许单独对连接子进行描述和分析。Dynamic Wright使用标签事件技术对Wright进行扩展,从而支持对动态体系结构建模和分析。Dynamic Wright虽然长于进行诸如死锁检测、模型一致性验证等工作,但对动态的行为变化表达力不足。同时,基于CSP的特点,难以进行行为模拟和等价性判定工作。Darwin提供延迟实例化和直接动态实例化两种技术,支持动态体系结构建模,允许事先规划好的运行时构件复制、删除和重新绑定。Darwin的动态机制并不提供任何π演
算语义。欧盟的ArchWare项目提出了一个动态体系结构描述语言π-ADL。π-ADL是一个基于高阶η演算的形式化语言,支持动态体系结构建模、体系结构分析和约束检测。 π-ADL具有形式化、可执行、可演化和抽象性等特点。然而,π-ADL太过抽象和形式化,难以理解和使用。Michel Wermelinger.等人通过CHAM验证某个体系结构实例是否遵从其风格的约束等。Daniel Le Metayer.等人介绍了用图来描述体系结构动态性的方法,用节点表示构件,边表示连接子,并引入协调机制管理体系结构,动态性则体现在图的重写规则上。但它们都无法表示上下文信息,无法处理带参数的变化形式。我们可以发现这些形式化方法大多注重体系结构的动态性,而不是自适应性,因此这些方法很少关注对环境的描述。其次,这些形式化方法要么只关注连接,难以表示结构的嵌套关系以及结构的变化;要么只关注位置,难以对行为进行合适的描述。第三,这些形式化方法很少关注体系结构在演化中性质的分析和验证。第四,大多形式化方法过于抽象, 缺乏图形化支持,难以理解。FDA4RSA以构件为研究对象,在构件接口层加入了预设演化行为策略和处理非预设演化行为的EBDI智能模型,实现了构件层次上的自适应。自适应构件是面向自适应的软件系统的主体,它在顾及软件设计者的设计策略之外还能根据非预料的情况做出自我调整,从而实现了软件系统自适应性。


图1是描述运行时自适应软件体系结构的形式化方法的体系结构框架示意图。图2是自适应构件模型的示意图。
具体实施例方式下面对结合附图本发明作进一步描述。参照图1和图2,一种描述运行时自适应软件体系结构的形式化方法,根据形式化描述的体系结构,其内容包括构件1、连接件2和体系结构配置,本发明围绕以上实体建模, 如图1所示。FDA4RSA是以高阶多型π演算作为描述行为语义的基础,给运行时角度描述 SA的并发、交互等特性提供支持。构件(component)是SA的基本要素之一,从结构视图来看,它由外部端口(ports) 和内部行为(behavior)构成,外部端口是构件与外界环境或者其他连接件交互的纽带,而一个端口由一条或者多条通道(channel)组成,这些通道包括发送数据通道,接收数据通道以及既发送又接收数据通道,因此端口可以看作通道的集合。构件通过通道与外界进行数据交换。引入端口概念,从而使构件的交互功能结构化、局部化,从而方便对其分析。构件的内部行为是实现系统业务逻辑的载体,其中内部行为在逻辑上又可分为计算行为和动态行为,这将在后续部分介绍。连接件也是SA的一个组成部分,是一种特殊的构件,旨在建立构件间的交互以及支配这些交互规则。同构件一样,连接件也由外部端口和内部行为组成,唯一不同的地方是,连接件的内部行为是只由路由行为组成,而动态行为是指导构件间通信的交互规则和约束。构件间不能直接连接,他们之间必须有连接件才能交互。依附在构件和连接件端口上的通道(channels)就构成他们之间的一个连接(connection),connection内部传输的数据可以是数值也可以是connection本身,甚至是任意体系结构元素。
复合构件由外部端口和内部元素构成,其中内部元素是一系列成员构件及连接他们的一系列成员连接件,外部端口是内部元素通过配置显示的暴露在外的端口。在本发明中,软件系统本身就可以看成是一个复合构件。传统的构件是通过接口向外提供服务的,是可以独立部署并组装的,并能实现固定功能的软件实体,但不能对外界环境做出反应。针对网构软件面临的问题,在 FDA4RSA中,我们提出了一个基于Agent网构软件的自适应构件模型,将自适应构件 (Self-Adaptive Component),以下简称SAC,作为网构软件中的构件形式。如图2。SAC内部由完成计算行为(computation behavior)的计算模块 (computationmodule)禾口完成云力态行为(dynamic behavior)的自适应模型 (self-adaptation model)构成,简称SAM其中自适应模型又包括处理预设演化的自适应策略(strategy)和处理非预设演化的EBDI。动态行为的本质是对体系结构的动态重配置, 无论是通过自适应策略还是通过EBDI控制模型得到的行为规约,在最后都需要通过行为指导(choreographer)来处理,choreographer是一种行为的序列。EBDI模型中新增了意见函数(opinion)和过滤器(filter),意见函数功能是依据当前的对环境的感知和当前的信念再确定一个新的目标集合,过滤器是依据当前信念和目标更新实体的意图,丢弃无法完成或已无意义的意图,并为其选择新的实现方法,即新的动作序列。EBDI模型理论定义有多种心智状态,包括时钟(Clock)、信念(Belief)、目标 (Goal)、意图antention)。下面我们依次对自适应构件的各种心智态度予以形式化描述, 给出形式化定义。定义2.时钟(Clock)是一种给EBDI的各种心智状态的相关进程提供系统时间的进程Clock(t)=\time(t)一般地,SAM总是处在某个或某段时间,如过去、现在或将来,该进程通过端口 time向外界提供系统时间。定义3.信念(Belief)是SAM所具有的关于这个世界的信息,它们可能不完整也可能不正确,信息分为客观事实知识和主观态度知识。事实类信念定义成一个知识的查询过程, FactBasedBelief {id) = factid (x).Fact(x) 它表示进程通过端口 factid获取变量X,然后通过子进程!^ctid找到与χ相关的事实类知识,其中id是SAM实例的标志符。主观态度类信念表示相信某种状态或事件已经或将要发生, AttitudeBasedBelief {id) = time(t).[t = r\(believeid (nid, Tt, s).nid (t, rj)它表示SAM实例相信在时间τ,标志符为nid的SAM实例会处于状态s,其中s是一个向量。这样,SAM的信念进程为Belief(id) = FactBasedBelief(id) AttitudeBasedBelief(id)定义4.能力(Goal)是指SAM能进入何种状态,SAM能力与它所涉及到的信念知识相关,Goal {id) = goalld{x).factld (χ)它表示当SAM实例从端口 goalid获取所欲实现的目标χ时,通过端口 factid查询要实现该目标所需的信念知识。 定义5.意图antention)表示SAM对自身的能力即能实现的目标做出的承诺,并将付诸行动。SAM的意图是伴随所要达到的目标而产生的,
权利要求
1. 一种运行时自适应软件体系结构的形式化描述方法,其特征在于所述形式化描述方法包括以下步骤(1)对自适应软件体系结构框架进行描述设定形式化描述的体系结构框架,框架包括构件,连接件和体系结构配置,构件由外部端口和内部行为构成,外部端口是构件与外界环境或者其他连接件交互的纽带,而一个端口由一条或者多条通道组成,所述通道包括发送数据通道,接收数据通道以及既发送又接收数据通道,构件通过通道与外界进行数据交换;连接件由外部端口和内部行为组成,连接件的内部行为由路由行为组成,而动态行为是指导构件间通信的交互规则和约束,构件之间通过连接件才能交互,依附在构件和连接件端口上的通道构成他们之间的一个连接;(2)建立基于Agent网构软件的自适应构件模型将自适应构件作为网构软件中的构件形式,自适应构件内部由完成计算行为的计算模块和完成动态行为的自适应模型构成,自适应构件模型又包括处理预设演化的自适应策略和处理非预设演化的EBDI模型,EBDI模型中新增了意见函数和过滤器,意见函数功能是依据当前的对环境的感知和当前的信念再确定一个新的目标集合,过滤器是依据当前信念和目标更新实体的意图,丢弃无法完成或已无意义的意图,并为其选择新的实现方法;(3)自适应构件模型SAM的形式化表示所述自适应构件模型SAM包括时钟、信念、目标和意图,依次对自适应构件的各种心智态度予以形式化描述,给出形式化定义时钟是一种给各种心智状态的相关进程提供系统时间的进程C lock {t) = \time{t)自适应构件模型SAM总是处在某个或某段时间,如过去、现在或将来,该进程通过端口 time向外界提供系统时间;信念是关于这个世界的信息,信息分为客观事实知识和主观态度知识,事实类信念定义成一个知识的查询过程,FactBasedBelief (id) = factid (x) .Fact{ χ)它表示进程通过端口 factid获取变量X,然后通过子进程!^actid找到与χ相关的事实类知识,其中id是SAM实例的标志符,主观态度类信念表示相信某种状态或事件已经或将要发生,AttitudeBasedBelief (id) = time(t). [t = r](believejd (nid, Tt,s).nid ( , τ))它表示在时间τ,标志符为nid的SAM实例会处于状态s,其中s是一个向量,SAM的信念进程为Belief(id) = FactBasedBelief(id) AttitudeBasedBelief(id)能力是指SAM能进入何种状态,SAM能力与它所涉及到的信念知识相关,Goal {id) = goalld{x).factld (χ)它表示当SAM实例从端口 goalid获取所欲实现的目标χ时,通过端口 factid查询要实现该目标所需的信念知识。意图表示SAM对自身的能力即能实现的目标做出的承诺,并将付诸行动;SAM的意图是伴随所要达到的目标而产生的,Intention{id) = in Ientionid ( , g).time(t) | believetd (id, , g) | goal id (g)其含义为当SAM实例通过端口化切肚化!^感知到外界环境在时间t发生的事件或状态所蕴含的意图g后,判断SAC是否相信在该时刻能实现该目标,然后向SAM实例提出实现目标的请求;SAM实例进程形式化地定义如下SAC (id) = Belief (id) Goal (d) Intention (id)从SAM看来,环境是提供外部事件的场所,而它自身是提供内部事件的场所;某个SAM实例对应的环境进程可以定义为Env(JcP) = (vt, c)envid inspectid (r, c)其中,envid获取环境中发生的事件,然后等待SAM实例来感知,SAM内部产生时间的进程可以定义为Self (id) = (vt, c) selfid .inspectid (r,c)其中,Self (id)获取SAM实例内部发生的事件;由SAM实例及其环境所组成的自适应软件系统定义成如下进程SASystem =Σ SAC(Idi) Self(Idi) Env(Idi)(4)根据π演算与构件及构件行为规约的对应关系,完成运行时软件体系结构的形式化描述,再依据η演算的可执行性和EBDI动态的推理体系结构行为,从而实现软件运行时的自适应。
2.如权利要求1所述的一种运行时自适应软件体系结构的形式化描述方法,其特征在于所述步骤(3)中,动态行为的形式化描述过程如下动态行为分为两种预设的和非预设的,对构件进行choreographer处理,所述 choreographer处理的动作包括1)动态构件新的构件实例和连接件实例,以及新的端口和通道;2)动态删除构件实例和连接件实例,以及端口和通道;3)体系结构元素之间连接的改变。
全文摘要
一种运行时自适应软件体系结构的形式化描述方法,包括以下步骤(1)对自适应软件体系结构框架进行描述设定形式化描述的体系结构框架,框架包括构件,连接件和体系结构配置;(2)建立基于Agent网构软件的自适应构件模型将自适应构件作为网构软件中的构件形式,自适应构件内部由完成计算行为的计算模块和完成动态行为的自适应模型构成;(3)依次对自适应构件的各种心智态度予以形式化描述,给出原子构件和连接件的形式化定义;(4)完成自适应构件计算行为和动态行为规约定义,给出其π演算的对应关系,再依据π演算的可执行性和EBDI动态的推理体系结构行为。本发明具有可执行性,可推理性和易读性。
文档编号G06F9/44GK102270130SQ20111017526
公开日2011年12月7日 申请日期2011年6月27日 优先权日2011年6月27日
发明者高俊 申请人:浙江工业职业技术学院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1