动态配置机制及其在水利信息系统中的应用

2010-11-20 08:18陈雅莉姚成霞
水利信息化 2010年3期
关键词:系统结构一致性构件

陈雅莉,艾 萍,姚成霞

(1.长江水利委员会水文局,湖北 武汉 430010;2.河海大学水文水资源与水利工程科学国家重点实验室,江苏 南京 210098;3.河海大学水文水资源学院,江苏 南京 210098)

0 引言

随着软件技术的发展,基于构件的软件应用系统的开发方法成为主流。未来软件的开发活动将呈现为通过基础软件资源组合为基本系统[1]。基于构件的软件开发技术的发展为建立动态定制和演化式系统提供了技术基础。

水利信息化建设的实践表明,水利信息系统在满足一般事务性处理需求之后,将向支持信息的综合分析、主题化应用方向发展,其基本特点是需求在一定的问题域内变化,需要处理的数据在一定类型间不断重构。换言之,需要构造一种可支持动态需求和资源配置的软件平台,才能满足水利信息系统从在线事务处理向分析与决策支持处理发展的技术需要。

本文针对上述需求,依据基于构件和反射机制的软件动态演化理论与方法,对软件系统的动态配置及其在水利信息系统中的应用进行了分析研究。

1 动态配置简介

对软件系统的配置操作可以分为静态和动态配置2种[2]。基于构件的软件系统的动态配置是指运行期间对系统的配置项进行改变,强调运行时的改变不影响整个系统的运行。根据动态配置对系统的改变的可预期性,一般可以将动态配置分为可预期的和随时出现的动态配置2种[3]。可预期的动态配置对软件系统的自动再配置至关重要,随时出现的动态配置则适用于软件系统维护期间[4]。

显然,动态配置的对象是具体的信息系统(简称目标应用系统),一般将能支持动态配置的应用系统称为动态配置系统。动态配置通过对构件的动态删除、添加、属性设置、构件间连接的建立与删除等操作,实现动态改变目标系统功能的目的,因此,动态配置系统应由目标应用系统和支持动态配置的部件2部分组成。典型的动态配置系统的结构如图1所示。

图1 典型的动态配置系统的结构

2 动态配置模型

2.1 基于反射的动态配置模型

反射(也称计算反射)引入计算机领域的动机,是希望计算系统能够根据自身的状态和运行环境随时调整自身以达到和谐的状态[5-6]。一般,支持动态配置的软件系统的反射体系分为3层,具体结构如图2所示。

图2 支持动态配置的软件系统的反射体系

图2中,目标应用系统作为动态配置系统的底层,对应反射系统模型中的“基层”;中间层(动态配置管理器)根据配置信息的变化,完成动态配置,对应反射系统模型中的“元层”;第1层(图形化用户界面)是图形化的用户动态配置操作接口,对应反射系统模型的“元元层”。

根据支持动态配置的系统结构和反射系统的特点,构造基于反射的动态配置模型 RDRM(ReflectionBased Dynamic Reconfiguration Model)如下式所示:式中:DRSMM 表示动态配置系统的元模型;DRSMD 表示动态配置系统的元数据:DRSMP 表示动态配置系统的元协议。

DRSMM,DRSMD,DRSMP的定义分别如下:

式中:ReconfigGUI 表示图形化的用户接口;Appsystem 表示动态配置的目标应用系统;DRManager表示动态配置管理器,配置者提交动态配置请求,DRManager 动态配置管理器分析动态配置请求的合理性,将合理的动态配置请求转化为对系统中配置信息的改变,动态配置引擎根据元数据建立的对象模型,修改目标应用系统Appsystem的结构或者行为。

式中:动态配置系统的元数据包括动态配置系统的元结构数据 StructMD 和元语义数据 SemaMD,StructMD 主要是 Appsystem 的体系结构信息,包括构件、构件组成和连接关系等信息,SemaMD 主要包括动态配置关注的运行时 Appsystem 的构件状态数据和行为数据的集合,这些数据是对运行时目标应用系统行为的反映。

式中:动态配置系统元协议包括元结构协议 StructP和元行为协议 BehaP,是访问或者操作元数据的一组规则。动态配置系统在协议的执行过程中,必须保证对系统的调控不会导致系统进入异常状态,这就是系统一致性约束。实施对目标应用系统的调控功能必须满足一致性约束条件。不同的协议,在不同的系统一致性约束下,对系统调控的具体内容不同,执行的过程也不同。

2.2 动态配置模型的元数据

动态配置模型的元数据包括元结构和元语义数据。

动态配置模型的元结构数据主要包括目标应用系统的系统结构、构件和构件关系等描述信息。

2.2.1 系统结构描述信息

基于反射的动态配置模型中,在描述应用系统的结构时,系统被看成是通过连接器绑定在一起的构件实例,软件体系结构的定义不仅包括目标应用系统所包含的构件实例的规约,也包括连接这些构件间连接关系的规约。通过解释构件和连接等规约,把原子构件组装成复合构件直至完整的目标应用系统。因此,描述系统结构的元数据主要包括:1)构件集合信息,即目标应用系统的构件组成信息;2)构件连接信息,即构件间各种连接关系的描述信息。

2.2.2 构件描述信息

封闭的构件通过接口向外界提供一系列的属性,构件使用者可以通过读取/修改这些属性的值来影响构件的行为,这些可变的属性主要包括构件在界面表现上的一些功能属性[7]。因此,描述构件的元数据主要包括:构件的标识、属性、接口和方法等信息。

2.2.3 构件关系描述信息

在目标应用软件系统中,构件不是独立存在的,构件之间具有互操作性。对构件间关系的研究有利于设计出合理的动态配置算法以保证系统的一致性,综合文献[8-9] 对构件间的连接关系的分类,将构件间的连接关系分为3种:调用、协作和顺序关系。

设 C1和 C2是目标应用系统中的2个不同构件,若C1使用了 C2所提供的服务,则构件 C1和C2之间是调用关系;若 C1和 C2互相协作完成同一功能,则 C1和 C2之间是协作关系;若 C2的执行是以 C1执行为前提的,即C2的输入是 C1的输出,则构件 C1和 C2 之间是顺序关系。

根据对构件连接关系的分析,描述构件关系的元数据主要包括:连接关系标识信息;与连接关系相关的构件的标识;连接关系的属性信息。

动态配置模型的元语义数据主要包括目标应用系统中构件的状态信息和构件的行为信息[10]。如,构件是否完成正在响应的请求属于构件状态信息,构件是否可以对外发送请求或者接受请求属于构件的行为信息。对于一个具体的动态配置系统而言,需要哪些元语义数据,取决于其提供的动态配置功能、对系统一致性约束的认定和对动态配置算法的设计。一般情况下,对于水利信息系统这类属于指定论域的目标应用系统,元语义数据的运用可以大大简化。

构件的状态可以分为激活与静止2种状态,若构件处于激活状态,则在此时的动态配置操作将不被允许,只有在构件处于静止状态时,动态配置操作才能实施。

构件在运行时刻通常会存在大量正在进行的行为,包括发送请求、接收应答的交互行为及处理数据等本地行为。对行为的任意中断,可能破坏系统一致性。因此,动态配置必须保证包括交互行为和本地行为在内的构件行为的完整性。

动态配置系统中,通过实施动态配置请求可以改变构件的状态,也可以改变构件的运行行为。无论是改变构件状态还是行为,反射动态配置模型都是利用元语义数据,在驱动或者等待构件到达动态配置安全状态后,再实施具体的动态配置请求的。

To ease the calculation, we define angular frequencies and quality factors of primary and secondary sides as:

2.3 动态配置模型的元协议

系统动态配置后,动态配置前系统中正在执行的实例将成功转换到动态配置后的系统中继续执行,并保证转换后的执行过程在动态配置后不出现错误,这种特性称为一致性[11]。在动态配置实施期间,可能有一部分服务暂时中断,但不受动态配置影响的部分应当仍能提供服务。动态配置实施以后,软件系统无论发生怎样的变化,都必须保证系统能正确运行,即动态配置模型中无论是元结构协议还是元行为协议涉及的动态配置算法必须满足一定的约束规则,以维持系统的一致性。

一致性涉及的内容较为广泛,目前认为的公共一致性约束大致有6种[12],本文重点讨论目标应用系统的构件状态一致性和构件间交互一致性。

1)构件状态一致性

在对系统进行动态配置的过程中,动态配置操作必须满足一定的状态约束,规则是:当构件处于激活状态时,构件请求或者提供服务,与其他构件进行交互,实现系统的功能,这时对构件进行删除或者替换是不被允许的,只有当构件进入静止状态时才能对构件进行删除或者替换。

2)构件交互一致性

目标应用系统中的构件不是独立存在的,构件间存在相互操作。根据构件间连接关系分析,将与构件 C1相关的构件划分为以下3类:

a)与构件 C1存在调用关系的构件的集合 Cu 为Cu∈{C|C1→C};

c)与构件 C1存在顺序关系的构件的集合 Cd 为Cd∈{C|C1*C} ;

构件间的连接关系体现了构件间互操作的影响。如在向系统中添加构件 C2时, 必须将构件 C2的输入提供者 C1一起加入系统,保证构件 C2的运行条件;

当删除系统中已存在的构件 C1时,应该考虑与构件 C1相关的构件的集合,若与构件 C1存在调用关系的集合Cu 中的构件仅与构件 C1相关联时,删除构件 C1后,Cu 中的这部分构件亦应该被删除。以 C1的输出作为输入的构件集合Cd 中的构件,必须另外提供其初始化输入,否则这些构件应当随着构件 C1的删除一并删除。

根据动态配置目的,动态配置模型中与系统拓扑结构相关的元结构协议在动态配置功能方面主要负责实现获取系统的结构信息,增加或者删除连接件以及替换旧的构件。与系统的行为动态配置相关的元行为协议则主要负责对系统中各个组成元素相关属性的修改或者构件的相关进程的挂起与运行。元行为协议主要是作用于构件或者连接件本身,而元结构协议对构件或者连接件的操作则影响到了整个目标应用软件系统。根据元行为和元结构协议所涉及的范围,可以将动态配置划分为构件和结构2种动态配置,以考虑动态配置对整个运行时软件系统的影响。

3 动态配置实例

在对动态配置模型中元数据和元协议定义及分析的基础上,本节通过1个支持动态配置的通用雨水情图示系统实例,来阐述基于反射的动态配置模型的工作状况及其在水利信息系统中的应用方式。

通用雨水情图示系统为用户提供的服务包括水文过程及对比示意、水位及对比示意,以及雨洪过程示意等。支持动态配置的通用雨水情图示系统支持在各个复合构件的基础上,通过修改相关的配置信息,实现系统功能的动态演化和用户数据的个性化表示。

选为例子的系统功能是水位显示,由“水位示意复合构件”实现。水位示意图用1个平面示意图来表示水位和坝体的关系,并可以用动画的形式连续播放水位变化的情况。对于图中的坝顶高程、校核洪水位等特征值线,当鼠标移动到靠近线的位置时,能提示对应线的名称及相应的值,鼠标离开某一范围提示消失。另外,复合构件还实现了刷新速度设置、动画演示、保存等功能。水位示意复合构件包含多个成员构件,用于查看水位示意图的某一时刻运行时结构如图3所示,对应的系统结构描述如图4所示。

图3 动态配置前的系统结构

图4 动态配置前系统结构描述

图5 动态配置后的系统结构

图6 动态配置后系统的结构描述

设需要动态删除构件 Lineinfo,根据水位示意图的结构描述,可以得到 Lineinfo 构件与构件 Line之间存在顺序关系,与构件 Datable 之间存在调用关系。根据动态配置算法对系统一致性的考虑,构件 Line 也应当被删除,并且 Line 与 chartpanel 之间的连接也应当被删除,Datable 与 Lineinfo 之间的连接也应当被删除,在系统的结构描述文件中关于构件 Lineinfo 和 Line 的构件信息和构件间关系的信息都应被删除。执行此动态配置后的系统结构如图5所示,对应的系统的结构描述如图6所示。

图3和5中系统结构描述对应的水位示意图的运行结果如图7和8所示。它们直观地展示了动态配置前后运行结果的差异。

图7 动态配置前水位示意图运行结果

图8 动态配置后水位示意图运行结果

4 结语

本文根据水利信息系统在向分析型应用发展过程中,急需解决资源和需求动态演化的关键技术问题,在分析动态配置的软件系统的反射体系的基础上,建立了基于反射的动态配置模型。该模型刻画了动态配置系统的反射本质,描绘了动态配置的实施过程和动态配置系统的工作原理,反映了动态配置系统的各构成要素。并以此模型为基础,分析动态配置系统各构成要素之间的本质关联,对动态配置模型的元数据,包括系统结构、构件、构件间关系等描述进行了定义;分析了动态配置的元协议,以保证系统状态一致性和交互一致性。

在动态配置模型的基础上,通过通用雨水情图示系统中的实例来验证模型的合理性及应用于水文信息系统的实用性,并说明系统动态配置机制的实现。实践表明,基于反射的系统动态配置模型及其实现机制,能在水利信息系统中有效应用,为解决水利信息系统的资源动态配置、支持动态需求等问题,提供了可行的技术方案。

[1] 杨芙清.软件工程技术发展思索[J].软件学报,2005,1(16): 1-7.

[2] Cao J,Chan E,Lee CH,etal.A dynamic recon figuration manager for graph-oriented distributed programs[C]//Proceedings of International Conference on Parallel and Distributed Systems,1997: 216-221.

[3] M Vermelmge.Towards a Chemical Model for Software Architecture Recon figuration[C]// In Proceedings of the 4th International Conference on Con figurable Distributed Systems,1994: 4-6.

[4] Thais Batista,Ackbar Joolia,Geoff Coulson.Managing Dynamic recon figuration of Component based Systems[J].Lecture Notes in computer Science,2005,3527: 1-17.

[5] 胡海洋,马晓星,陶先平,等.反射中间件的研究与进展[J].计算机学报,2005,28(9): 1407-1419.

[6] M Shaw et al..Abstraction for Software Architecture and Tools to Support Them[J].IEEE Trans Software Engineering,1995,21(4): 314-315.

[7] 战德臣,王忠杰,徐晓飞.基于 XML 的组件标准化描述[J].计算机工程与应用,2003(4): 89-92.

[8] 张友生.构件运算与软件演化研究[J].计算机应用,2004,24(4): 20-22.

[9] 黄万艮,陈松乔.基于构件运算的软件体系结构及其复杂性度量[J].计算机工程与应用,2007,43(14): 66-70.

[10] 龚洪泉.基于形式语义的构件组装与演化研究[D].上海:复旦大学,2005.

[11] 魏丫丫,林闯,田立勤.用进程代数描述可适应工作流的模型方法[J].电子学报,2002,30(11): 1624-1628.

[12] 窦蕾,王树凤,徐田荣.分布式系统动态配置技术的研究与实现[J].计算机科学,2005,32(12): 8-15.

猜你喜欢
系统结构一致性构件
关注减污降碳协同的一致性和整体性
注重教、学、评一致性 提高一轮复习效率
IOl-master 700和Pentacam测量Kappa角一致性分析
建筑构件
建筑构件
建筑构件
建筑构件
中波广播发射系统结构及日常维护技术研究
基于事件触发的多智能体输入饱和一致性控制
考虑助力器动力学的舵系统结构非线性颤振特性分析