首页 理论教育 智能虚拟控件的规约优化

智能虚拟控件的规约优化

时间:2023-06-28 理论教育 版权反馈
【摘要】:在DR-HMB软件体系结构中,智能虚拟控件是智能控件化虚拟仪器系统的基本构造单元,具有良好的自包含性。3)支持控件之间的同步和异步消息通信。图8-17 控件状态变迁

智能虚拟控件的规约优化

在DR-HMB软件体系结构中,智能虚拟控件是智能控件化虚拟仪器系统的基本构造单元,具有良好的自包含性。每个控件对外提供一个或多个不同的接口,接口定义了一组发送和接收的消息集合,刻画了控件对环境提供的服务和向环境要求的服务。此外,在控件规约中,还刻画了控件的静态结构和动态形为。控件规约的框架描述如表8-10所示:

表8-10 控件规约的框架描述

978-7-111-33186-5-Part01-357.jpg

具体来讲,控件规约包括以下几个部分:

1)接口部分:声明了控件对外,提供的一个或多个接口,刻画了控件发出和接收的消息集合;

2)结构部分:对复合控件再进行细化,包括下层子控件和它们之间的连接关系;

3)行为部分:用带输出的有限状态自动机刻画控件的行为。

1.控件接口

在DR-HMB软件体系结构中,一个控件可以提供一个或多个接口,控件接口定义如表8-11所示。

表8-11 控件接口定义

978-7-111-33186-5-Part01-358.jpg

接口定义给出了控件接收和发送的消息集合。在接口定义时,可以直接继承多个其他接口。在一般程序设计语言中,过程、函数或对象接口定义了其对外提供的服务,而智能虚拟控件的接口定义还包括了要求的外部环境服务,体现了互联接口的通信完整性。

控件之间通过发送消息进行交互,消息可以是同步消息或异步消息。同步消息的发送者必须等待消息的处理结果返回后,才可继续运行;异步消息的发送者不必等待结果的返回,就可以继续运行,这样发送者和接收者可以并发运行。

消息中的参数分为三种:in、out和in out,分别代表输入、输出和输入输出。in参数是随消息一起发出的只读参数,out参数保存了消息处理的结果,in out参数同时具有两者的特点,默认情况下是in参数。指明参数的传递方向除了关系到不同的参数处理方式以外,还可以在分布式环境下,减少网络上的数据传输量。对in参数而言,只需把数据从服务请求方传到服务提供方,out参数则只需把结果数据从服务提供方传到服务请求方,只有in out参数需要在两个方向上的数据传递。

由上面的介绍可以看出,智能虚拟控件的接口定义具有以下一些特点:

1)支持互联接口,可以充分地表达控件和环境之间的关系。通过接口定义,表达了控件所有同环境的交互信息,减少了控件使用时对环境依赖的不确定性,提高了控件的复用潜力。

2)方便控件的集成。控件在实现时,如果需要外部环境提供的服务,只需使用在接口处定义的请求服务。在控件集成时,通过把控件请求的服务同其他控件(即环境)提供的服务匹配起来即可。

3)支持控件之间的同步和异步消息通信。

2.控件结构(www.xing528.com)

在HMB软件体系结构中,复合控件是由低层的控件通过局部消息总线连接而成的,其结构定义如表8-12所示:

表8-12 复合控件的结构定义

978-7-111-33186-5-Part01-359.jpg

在上述控件结构定义中,reference部分指明了所需要引用的子控件。consistof部分指出了实际组成该复合控件的所有子控件实例,一个复合控件可能包含多个同类型的子控件实例。不同的控件实例是通过名字进行区分的,最上层的控件(即系统)被命名为system。标识系统中某一特定的控件如下:

层次修饰符:名字,其中,层次修饰符是从系统树状结构的根到父控件的路径,各结点名字之间用冒号分开。在控件的直接父控件中,可以简单地使用控件名标识特定的控件,在其他情况下,标识某一特定控件需要给出控件的完整标识。控件名称主要用于消息类型的登记、结果的返回,以及系统动态演化对控件进行增加、删除和修改等操作。

alias部分对控件发出和接收的消息进行简单地换名或阻塞某个消息,当新名字是null时,表示阻塞相应的消息。registry部分登记了各个子控件感兴趣的消息类型,形成控件-消息响应登记表。对每个登记项中的bus-message,控件实例instance-name中应有一个接收消息与此对应,即在消息名称、参数个数和类型上要一致。这里的bus-messages指的是复合控件接收的消息集合同所有子控件发送的消息集合的并集。通常情况下,即使某个控件具有响应一组消息的能力,它也可以根据需要只响应其中的一个子集。当一个控件对其所能响应的全部消息都感兴趣时,控件结构提供了一种简化的进行消息登记的方式,即简单地给出(all,控件名)即可。

按上述方式描述的控件结构具有以下一些特点:

1)支持自顶向下地对系统和复合控件进行细化。

2)支持对具有相同语义、但不同名字消息的控件进行集成。

3)支持消息的登记、分派、传递和过滤,建立控件之间的通信连接。

这些特点保证了系统和复合控件具有清晰的结构,使得系统具有良好的构造性和演化性。

3.控件行为

智能控件化虚拟仪器系统以及组成系统的控件从本质上来说,都是信息的变换装置,其行为可以用带输出的有限状态机刻画。采用Mealy机刻画控件的行为,一个Mealy机包括一组有穷的状态集合、状态之间的变迁和在变迁发生时的动作,具体语法如表8-13所示:

表8-13 状态变迁的语法

978-7-111-33186-5-Part01-360.jpg

状态变迁用五元组(source-state、message、condition、method、target-state)表示。其中,source-state和target-state分别表示源状态和目标状态,为了实现从源状态到目标状态的转换,需要接收特定消息(message),满足特定条件(con-dition),并且执行特定方法(meth-od),控件状态变迁如图8-17所示。控件行为定义刻画了控件对外界消息的响应,同控件接口定义和静态结构定义一起完整地对控件进行了规约,为控件实现或在可复用控件库中查找符合要求的控件提供了依据。

978-7-111-33186-5-Part01-361.jpg

图8-17 控件状态变迁

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈