一种基于服务构件模型的自适应方法

2011-11-24 07:06蔡俊亚
湖南师范大学自然科学学报 2011年1期
关键词:管理器构件规则

蔡俊亚

(湖南商学院信息学院,中国 长沙 410205)

1 背景

为了有效控制快速增长的软件规模,高效管理日益增加的软件资产,快速适应动态变化的运行环境以及迅速响应持续变化的用户需求,要求运行态软件系统应具备感知外部运行环境变化并能在必要时进行自身调整的能力,以保证软件系统的服务质量,即所谓的软件自适应性[1,6-7].

虽然关于软件系统自适应的研究分别在基于构件的软件工程领域和面向服务的软件工程领域取得了很多有意义的成果,但OSGi既具有构件化的特点,又具有服务化的特性,因此传统的自适应方法都不能很好的适用于OSGi这种特定的服务构件模型,所以本文提出了一种基于OSGi的面向语义的自适应方法,即SoSCM(Semantic-oriented Service Component Method).

2 自适应方法分析

2.1 Cheng 和 David的基于构件的自适应方法

Cheng 和 David 等人提出了一种 3 层的适应性软件体系结构[2]:即顶层是任务层,负责系统任务和需求管理,决定系统执行的操作,并设置系统性能目标和资源约束;任务层的信息将传达给中间层,即模型层,用以指导系统达到更好的适应性;最下层是运行层,包括系统的具体实现代码以及它所处的运行环境,如图1所示.

该方法核心在于中间的模型层,模型层又被称为抽象体系结构层,用于系统内所有构件的生命周期及其关联关系的管理,以弥补传统的基于构件的软件系统无法满足系统运行时动态增加功能构件的问题,从而达到自适应.

该方法不适用于OSGi的原因:(1)OSGi不仅存在构件到构件的关联,还存在构件与服务,服务与服务之间的关联关系,而基于构件的自适应方法只能刻画出构件之间的关联关系;(2)OSGi本身就具有动态性,具有运行时安装、删除构件和服务的能力,与基于构件自适应方法中模型层功能冲突.

2.2 Lorenzoli和Mussino的面向服务自适应方法

Lorenzoli和Mussino的面向服务自适应方法[3]的工作原理如图2所示,该方法包括三个关键部件:(1)监测服务是否可用或者服务是否改变的监测部件;(2)在监测到可用服务后对其进行测试,看其是否满足用户需求的测试部件;(3)当用户需求改变、服务实现更新等事件发生后,用于重配软件以满足自适应的配置部件.

图1 基于构件的自适应方法结构图

图2 面向服务的自适应原理

该方法不适用于OSGi的原因:(1)OSGi对分布式支持不够,其本身不具备对分布式OSGi协同工作的支持;(2)该方法要求统一的服务注册中心,但OSGi本身也有一套完整的服务注册、发布、绑定机制,与传统的服务计算的服务机制存在功能冲突.

2.3 SoSCM自适应方法

综上所述,上述方法都以其特定的软件工程领域为研究对象,不适用于OSGi这种兼顾构件化和服务化的特殊的服务构件模型,因此,本文给出了一种SoSCM自适应方法.

图3 SoSCM自适应架构图

SoSCM自适应方法基于OSGi内核,并使用OSGi内核对构件(服务)进行动态的生命周期管理,SoSCM不在引入传统的基于构件自适应方法中的模型层,因此解决了传统基于构件自适应方法应用到OSGi中存在的管理功能冲突问题;同时,SoSCM自适应方法在OSGi内核层和构件(服务)层之间引入SoSCM层,SoSCM层屏蔽了底层OSGi服务机制,并适配到传统的服务计算中的服务机制,因此有效解决了面向服务自适应方法应用到OSGi中存在的服务机制冲突的问题,其体系结构如图3所示.

一个基本的运行流程如图3所示:(1)平台B将所有允许被远程调用的服务发布到服务注册中心;(2)平台A上的应用在无法满足用户需求和外界变化的时候,会根据相应的策略进行自演化过程,在这个演化的过程中就涉及到系统体系结构的改变,而在OSGi中构件是服务的载体,所以首先从OSGi平台的服务注册中心获取协作的服务引用;(3)如果服务位于本地,则根据标准的OSGi服务生命周期管理的机制定位和绑定服务,否则通过SoSCM扩展的服务管理模型向SoSCM服务注册中心查找相关服务;(4)在获得远程服务应用后,通过绑定服务机制关联到平台B上相关服务;(5)平台A上的应用根据相应的规则进行自适应调整或启动新的聚合过程,以实现动态的演化.

3 SoSCM相关设计与实现

SoSCM是由扩展服务管理器、需求管理器和自适应控制器3部分组成,如图4所示.

3.1 扩展服务管理器

OSGi目前对分布式支持不够,虽然R-OSGi能够支持分布式系统间构件的远程访问,但其能力非常有限.为了支持远程服务的访问,本文扩展标准的OSGi的服务管理机制,引入统一中心服务注册平台,该平台用于发布允许分布式OSGi平台访问的外部服务,使其具有查询、定位和绑定远程服务的能力,其原理如图5所示.

图4 SoSCM组成部件

图5 扩展服务管理器工作原理

3.2 需求管理器

图6 需求相关要素本体

需求管理器用于管理用户需求要素,用户需求往往是判断软件系统是否需要自适应的根本依据,也是检验自适应效果的唯一标准.对用户需求相关要素建模的目的在于从需求分析结果中抽取和软件自适应相关的知识,而在本文中关注的则是面向目标的需求工程(Goal-Oriented Requirements Engineering)研究成果中的用户需求目标模型,如图6所示.

目标一般分为两大类:功能性目标和非功能性目标.目标的属性主要有名称、描述、优先级、有用性和可行性.

用户目标允许存在多个,且用户目标之间关系包括以下两类:一是目标同时满足的AND关系;另一个是只需满足其中一个的OR关系.

3.3 自适应控制器

自适应控制器负责维护和管理自适应软件的自适应逻辑,并依据系统的运行状况给出合理的系统调整策略.控制器的结构如图7所示.

自适应控制器以决策要素和推理规则为输入,系统调整动作为输出.从图7可以看出,自适应决策层由 3个主要模块构成:决策要素管理模块,自适应逻辑管理模块和自适应决策模块.

图7 自适应控制器结构图

自适应逻辑管理模块维护自适应决策所需的推理规则.规则管理器接收来自用户的规则数据,同时采用规则模式对它进行校验.规则模式用于保证输人的规则符合一定的语法.本文把推理规则分为2类:常驻规则和按需规则.常驻规则参与每一次自适应决策;按需规则只在与其相关的要素发生变化时参与自适应决策.这样可以有效减小自适应决策过程中用到的规则集的规模,从而提升自适应决策的性能.

4 应用实例

4.1 实例描述

随着电子商务日益普及,越来越多的消费者开始网上购买物品和服务,而网上购票系统就是一种典型的电子商务应用,本文采用Master/Slave体系结构风格构建应用,其中Master用于分发用户请求,而Slave则是提供的票据服务.

实验分布在一个由3台通过100 Mb/s的以太网连接的Intel(R) Cor(TM)2 Duo CPU P8600 @2.40GHz工作站构成的局域网上,其中一台作为Master节点,两台作为Slave节点并分别发布一个购票服务,实验模拟客户端不断发送请求来触发软件系统的自适应.

4.2 相关代码

4.2.1 用户需求要素 一个很常见的用户需求就是网站响应速度要足够快,本文以用户能容忍的最长等待时间2 s为例,具体代码如图8所示.

图8需求相关要素rdf

4.2.2 服务发布 允许被远程访问的服务首先要注册到统一的服务注册中心,本文走WebServices,其代码段如图9所示.

图9服务发布ticket.wsdl的代码段

4.2.3 调整策略 调整策略是当响应时间大于4.2.1假设的用户最大容忍时间2 s时,触发自适应操作,添加新的Slave节点提供购票服务,图10表示了如何用OWL查找需要的服务.

图10查找服务owl的代码段

4.3 测试结果

如4.1节描述测试过程,本实验在无自适应机制和采用SoSCM自适应机制下分别增加采取每隔3 min增加50个并发用户的操作来测试系统的响应时间随并发量变化的关系,如图11所示.

图11 响应时间的变化曲线图

点线代表的是无自适应机制下系统响应时间的变化曲线,由图可知,当系统并发量达到200时,系统响应时间超出了本文4.1节假设的用户能容忍的最大限度2 s,此时继续增加并发用户量,系统响应时间将会持续增加.

而采用了SoSCM自适应方法的后,系统当并发量超过200时,系统响应时间会明显减少,然后随着并发量达到400又逐渐达到2 s左右,出现响应时间明显下降的原因是系统在并发量达到200时触发4.2.3描述的自适应策略,从而增加了一个Slave节点提供购票服务.

5 总结

本文针对OSGi这种特殊的服务构件模型,提出了一种SoSCM的自适应方法,并在购票应用这种典型电子商务测试中证明该方法是可行且有效的.

参考文献:

[1] 王千祥,申峻嵘,梅 宏.自适应软件初探[J].计算机科学,2004(31):168-178.

[2] GARLAN D,CHENG S W,HUANG A C,etal.Rainbow: Architecture-based self-adaption with reusable infrastructure[J].IEEE Comput,2004,37(10):46-54.

[3] WRIGGERS P,SIPLIRAYA M,JOUKOVA I,etal.Intelligent support of engineering analysis using ontology and case-based reasoning[J].Eng Appl Artif Intell,2007,20(5):709-720.

[4] 愈 春,马 赛,马晓星,等.一种面向体系结构的软件自适应机制[J].南京大学学报(自然科学),2005,42(2):120-130.

[5] HE Q,LING T W.An ontology based approach to the integration of entity-relationship schemas[J].Data Knowledge Eng,2006,58(3):299-326.

[6] 潘 健,周 宇,吕 建,等.一种基于本体的软件自适应机制[J].计算机科学,2007(34):264-269.

[7] 梅 宏,黄 罡,兰 灵,等.基于体系结构的网构软件自适应方法[J].计算机科学E辑:信息科学,2008(38):901-920.

猜你喜欢
管理器构件规则
撑竿跳规则的制定
数独的规则和演变
应急状态启动磁盘管理器
Windows文件缓冲处理技术概述
让规则不规则
建筑构件
TPP反腐败规则对我国的启示
建筑构件
建筑构件
建筑构件