论文部分内容阅读
摘要:传统中间件基于黑盒的设计思想,缺乏必要的灵活性,无法适应复杂动态多变的移动计算环境。反射技术可以使应用程序在运行时检查中间件所提供的服务类型,动态的构造调用请求,适应变化的环境。文章研究了反射的相关概念,中间件技术,分析了移动计算的实际需求,提出了一个支持移动计算的反射中间件架构,支持环境感知、异步通信、动态重配置等。
关键词:反射;中间件;移动计算;环境感知
中图法分类号:TP393.02 文献标识码:A文章编号:1009-3044(2007)04-11009-02
1 引言
当前大量移动设备,如掌上电脑、移动电话、PDA等在日常生活中得到广泛应用。计算模式逐渐由主机计算,桌面计算向普适计算过渡。中间件作为一种支持分布式应用的重要基础设施,为应用程序员提供了统一的编程模型,并屏蔽了基础平台的异构性和分布性。当前的主流中间件如CORBA、DCOM、Java RMI等自身的实现细节以及下层分布式系统的状态对应用程序及其开发人员来说都是透明的,随着下层分布式系统的复杂性的增加,传统中间件的体积就会变得越来越庞大,对硬件资源的要求也会变得越来越高。
传统的分布式系统是建立在通过有线网络连接起来的主机组成的硬件平台上的,运行在这些系统上的应用程序能够获得稳定和丰富的计算资源,包括:运算能力、存储能力、网络带宽和电力供应等。移动计算与传统的分布式计算存在很大的差异,如用户所处位置不断变化,需要中间件做出相应的调整适应环境变化,支持环境感知;移动设备的处理能力有限,无法承受复杂的中间件系统,这就要求所需的中间件系统是轻量级的。对于这些在移动计算中出现新的需求,传统中间件存在着明显的不足。近年来的研究表明,反射计算是一种能够有效地解决上述问题的技术,反射式中间件也被视为下一代中间件的代表。
2 反射式中间件
2.1 反射计算与反射系统
MIT的Smith在20世纪80年代早期设计程序设计语言系统3-Lisp时,通过在系统中提供元接口以适应并感知底层虚拟机,从而支持开放、扩展的语言编程。Smith在该系统中实现了反射计算的思想。在此基础上,Smith给出了自身对反射计算的认识:如果一个计算进程含有这样一个成分描述进程,该进程能够描述计算进程其自身的操作和数据结构,则该计算进程也能推理其自身,这样的自推理行为即为反射计算。
反射系统采用被称为元层体系结构的两层结构,其中的两层是基层和元层。位于下层的基层完成有关外部领域的计算,实现系统对外提供的功能,这是任何计算系统都要完成的计算;位于上层的元层完成有关系统自身的计算,这是只有反射系统才要完成的计算。基层和元层通过具体化和吸收这两个过程相联系。具体化是指用元层实体对来描述基层的特性的过程。元层提供元接口,使用户能够访问和修改元层实体的状态。吸收与具体化相反,它根据用户对元层实体的状态所做的修改来调整基层中相应的特性,使基层的特性和元层实体的状态保持一致。具体化和吸收实现了系统和有关系统的表示之间的因果联系。
2.2 反射式中间件的定义
反射式中间件是一种开放内部实现细节以获取高灵活性的中间件。具体而言,通过引入反射原理,中间件运行时的内部状态和行为可通过一种受限方式访问和操纵。系统的反射性是指系统能够提供自身状态和行为的自我描述,并且系统的实际状态和行为始终保持一致。任何对自描述的改变能够立即反映到系统实际的状态和行为,而系统的实际状态和行为的改变也能立即在自我描述中反映出来。
反射中间件在其结构设计方面,沿用了反射系统的概念结构,即将系统分为与具体应用领域相关的基层和与系统内部相关的元层。工作在元层的实体建立和维护系统的自我描述。工作在基层的实体实现系统的业务功能,并将自描述信息映射到系统实际的状态和行为。
3 移动计算中间件的要求
在移动计算的生命周期中,应用行为需要根据基础设施的动态改变而改变,因此移动计算中间件与传统中间件相比,还有以下一些要求:
(1)动态重配置:对变化的资源进行重分配或通知应用改变其行为以适应资源变化;
(2)自适应性:系统需要识别执行环境内的未知需求,并调整自身以适应需要;
(3)环境感知:上层显露执行环境,环境包括设备特征,用户行为和服务;
(4)异步范型:解耦客户端和服务器,并传递多播消息;
(5)轻量级:移动设备大多处理能力有限,要求尽量少的占用系统资源;
环境感知是构建有效的自适应系统的主要要求,设计环境感知的中间件时,需要考虑以下几点:支持来自各种资源的感知;建立简单的物理模型;处理异构传感器数据;简单的事件传递结构和机制;支持存储和查询环境信息和通过可插拔的标准接口扩展。
4 设计实例
根据环境感知的移动应用中间件的要求,以及上文通过元数据和反射实现的方法,设计一个环境感知的反射式移动应用中间件。其体系结构如图1。中间件分成四个模块:应用接口、自适应服务、环境管理和基础设施。
图1 反射中间件体系结构
4.1 基础设施
基础设施提供基本移动中间件服务,屏蔽网络和操作系统的异构性,对分布式异步通信、服务发现、实体注册等提供支持。移动计算环境要求异步通信模式,可以采用异步消息传递方式。其服务发现组件根据应用的服务请求查找当前可提供的服务,主机和资源,在每个移动设备上实现简单的广播机制。也可以选用一些复杂的服务发现方法如UPnP, Jini,Salutation, JMato和SLP等,还可以借助于面向服务发现的中间件ReMMoC。不同的服务发现机制实现其需要占用的系统资源不同,移动设备有限的资源要求轻量级的中间件实现,因此需要权衡各种服务发现机制的优势和计算开销,选择合适的方法。
4.2 应用接口
应用接口为在此中间件之上构建和运行环境感知的应用提供支持,主要组件如图2所示。应用通过接口访问中间件,其中应用剖面设置向用户提供定义和更新剖面文件的元接口,元接口有不同层次,实现分层自适应;用户偏好设置提供给用户定义和更新偏好文件的元接口;请求服务处理上层应用对中间件发出的请求服务。
图2 应用接口中的主要组件
4.3 环境管理
环境管理对应用所处环境信息进行收集处理。一组异构传感器负责收集环境信息,环境信息规范化组件通过传感器目录服务组件查找需要处理的传感器,对其获得的环境信息进行格式化处理,供上层策略选择组件使用。环境事件通知组件定期查询环境变化,生成环境变化事件,通知上层环境变化处理组件。
环境管理模块中主要的组件如图3所示,传感器目录服务组件负责当前需用传感器的管理,根据应用剖面中环境配置的要求查找检测对应资源的传感器,从各传感器收集信息后交由环境信息规范化组件进行规范化处理,其环境信息规范化组件读取异构的环境信息,按照应用环境信息XML文件的Schema格式,生成应用的环境信息的XML文件。环境事件通知组件根据应用剖面的反应元数据和检测到的环境变化,报告上层自适应服务模块,由环境变化处理组件做出相应反应。
图3 环境管理主要模块
4.4 自适应服务
自适应服务以某种策略执行应用的服务请求。当中间件接受到一个服务请求时,其执行策略选择组件查询下层环境管理中规范化的环境信息,根据上层应用设置的应用剖面文件的先应元数据和应用偏好选择执行策略。环境变化处理组件接受下层的环境变化事件通知,根据应用剖面文件的反应元数据进行调整处理。
服务执行策略选择组件使用上文描述的追求最大应用满意度的让步协商机制算法,根据规范化后得到的当前环境信息、应用剖面信息、应用的服务质量要求、应用对各项服务质量指标和资源消耗指标重视度的信息,选择服务执行策略,交由执行服务请求组件,以该当选策略执行服务请求。当环境配置不能满足服务执行要求时,报告驳回服务请求要求。
5 结束语
本文从移动计算的需求出发,分析了传统中间件应用在移动环境中的不足,提出了一个反射式中间件架构。该中间件克服传统中间件系统的单一性和不灵活性,可以支持异步通信、动态重配置、环境感知等。
参考文献:
[1]胡海洋,马晓星,陶先平等.反射中间件的研究与进展[J].计算机学报,2005,9(28):1407-1420.
[2]张华新,胡维华.反射式中间件技术的研究[J].计算机与数字工程,2005,10(33):74-76.
[3]殷贤亮,宋锦,徐丽萍.适用于移动计算环境的反射式中间件[J].华中科技大学学报(自然科学版),2006,7(34):36-38.
[4]Estrind, Cullerd, Pisterk, et al. Connecting the Physical World with Pervasive Networks [ J ]. IEEE Pervasive Computing, 2002, 1(1):59-69.
[5]J.Heer,A.Newberger,C.Beckmann,etal. Context-aware distributed queries[J]. Lecture Notes in Computer Science,2003,1: 140–148.
本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
关键词:反射;中间件;移动计算;环境感知
中图法分类号:TP393.02 文献标识码:A文章编号:1009-3044(2007)04-11009-02
1 引言
当前大量移动设备,如掌上电脑、移动电话、PDA等在日常生活中得到广泛应用。计算模式逐渐由主机计算,桌面计算向普适计算过渡。中间件作为一种支持分布式应用的重要基础设施,为应用程序员提供了统一的编程模型,并屏蔽了基础平台的异构性和分布性。当前的主流中间件如CORBA、DCOM、Java RMI等自身的实现细节以及下层分布式系统的状态对应用程序及其开发人员来说都是透明的,随着下层分布式系统的复杂性的增加,传统中间件的体积就会变得越来越庞大,对硬件资源的要求也会变得越来越高。
传统的分布式系统是建立在通过有线网络连接起来的主机组成的硬件平台上的,运行在这些系统上的应用程序能够获得稳定和丰富的计算资源,包括:运算能力、存储能力、网络带宽和电力供应等。移动计算与传统的分布式计算存在很大的差异,如用户所处位置不断变化,需要中间件做出相应的调整适应环境变化,支持环境感知;移动设备的处理能力有限,无法承受复杂的中间件系统,这就要求所需的中间件系统是轻量级的。对于这些在移动计算中出现新的需求,传统中间件存在着明显的不足。近年来的研究表明,反射计算是一种能够有效地解决上述问题的技术,反射式中间件也被视为下一代中间件的代表。
2 反射式中间件
2.1 反射计算与反射系统
MIT的Smith在20世纪80年代早期设计程序设计语言系统3-Lisp时,通过在系统中提供元接口以适应并感知底层虚拟机,从而支持开放、扩展的语言编程。Smith在该系统中实现了反射计算的思想。在此基础上,Smith给出了自身对反射计算的认识:如果一个计算进程含有这样一个成分描述进程,该进程能够描述计算进程其自身的操作和数据结构,则该计算进程也能推理其自身,这样的自推理行为即为反射计算。
反射系统采用被称为元层体系结构的两层结构,其中的两层是基层和元层。位于下层的基层完成有关外部领域的计算,实现系统对外提供的功能,这是任何计算系统都要完成的计算;位于上层的元层完成有关系统自身的计算,这是只有反射系统才要完成的计算。基层和元层通过具体化和吸收这两个过程相联系。具体化是指用元层实体对来描述基层的特性的过程。元层提供元接口,使用户能够访问和修改元层实体的状态。吸收与具体化相反,它根据用户对元层实体的状态所做的修改来调整基层中相应的特性,使基层的特性和元层实体的状态保持一致。具体化和吸收实现了系统和有关系统的表示之间的因果联系。
2.2 反射式中间件的定义
反射式中间件是一种开放内部实现细节以获取高灵活性的中间件。具体而言,通过引入反射原理,中间件运行时的内部状态和行为可通过一种受限方式访问和操纵。系统的反射性是指系统能够提供自身状态和行为的自我描述,并且系统的实际状态和行为始终保持一致。任何对自描述的改变能够立即反映到系统实际的状态和行为,而系统的实际状态和行为的改变也能立即在自我描述中反映出来。
反射中间件在其结构设计方面,沿用了反射系统的概念结构,即将系统分为与具体应用领域相关的基层和与系统内部相关的元层。工作在元层的实体建立和维护系统的自我描述。工作在基层的实体实现系统的业务功能,并将自描述信息映射到系统实际的状态和行为。
3 移动计算中间件的要求
在移动计算的生命周期中,应用行为需要根据基础设施的动态改变而改变,因此移动计算中间件与传统中间件相比,还有以下一些要求:
(1)动态重配置:对变化的资源进行重分配或通知应用改变其行为以适应资源变化;
(2)自适应性:系统需要识别执行环境内的未知需求,并调整自身以适应需要;
(3)环境感知:上层显露执行环境,环境包括设备特征,用户行为和服务;
(4)异步范型:解耦客户端和服务器,并传递多播消息;
(5)轻量级:移动设备大多处理能力有限,要求尽量少的占用系统资源;
环境感知是构建有效的自适应系统的主要要求,设计环境感知的中间件时,需要考虑以下几点:支持来自各种资源的感知;建立简单的物理模型;处理异构传感器数据;简单的事件传递结构和机制;支持存储和查询环境信息和通过可插拔的标准接口扩展。
4 设计实例
根据环境感知的移动应用中间件的要求,以及上文通过元数据和反射实现的方法,设计一个环境感知的反射式移动应用中间件。其体系结构如图1。中间件分成四个模块:应用接口、自适应服务、环境管理和基础设施。
图1 反射中间件体系结构
4.1 基础设施
基础设施提供基本移动中间件服务,屏蔽网络和操作系统的异构性,对分布式异步通信、服务发现、实体注册等提供支持。移动计算环境要求异步通信模式,可以采用异步消息传递方式。其服务发现组件根据应用的服务请求查找当前可提供的服务,主机和资源,在每个移动设备上实现简单的广播机制。也可以选用一些复杂的服务发现方法如UPnP, Jini,Salutation, JMato和SLP等,还可以借助于面向服务发现的中间件ReMMoC。不同的服务发现机制实现其需要占用的系统资源不同,移动设备有限的资源要求轻量级的中间件实现,因此需要权衡各种服务发现机制的优势和计算开销,选择合适的方法。
4.2 应用接口
应用接口为在此中间件之上构建和运行环境感知的应用提供支持,主要组件如图2所示。应用通过接口访问中间件,其中应用剖面设置向用户提供定义和更新剖面文件的元接口,元接口有不同层次,实现分层自适应;用户偏好设置提供给用户定义和更新偏好文件的元接口;请求服务处理上层应用对中间件发出的请求服务。
图2 应用接口中的主要组件
4.3 环境管理
环境管理对应用所处环境信息进行收集处理。一组异构传感器负责收集环境信息,环境信息规范化组件通过传感器目录服务组件查找需要处理的传感器,对其获得的环境信息进行格式化处理,供上层策略选择组件使用。环境事件通知组件定期查询环境变化,生成环境变化事件,通知上层环境变化处理组件。
环境管理模块中主要的组件如图3所示,传感器目录服务组件负责当前需用传感器的管理,根据应用剖面中环境配置的要求查找检测对应资源的传感器,从各传感器收集信息后交由环境信息规范化组件进行规范化处理,其环境信息规范化组件读取异构的环境信息,按照应用环境信息XML文件的Schema格式,生成应用的环境信息的XML文件。环境事件通知组件根据应用剖面的反应元数据和检测到的环境变化,报告上层自适应服务模块,由环境变化处理组件做出相应反应。
图3 环境管理主要模块
4.4 自适应服务
自适应服务以某种策略执行应用的服务请求。当中间件接受到一个服务请求时,其执行策略选择组件查询下层环境管理中规范化的环境信息,根据上层应用设置的应用剖面文件的先应元数据和应用偏好选择执行策略。环境变化处理组件接受下层的环境变化事件通知,根据应用剖面文件的反应元数据进行调整处理。
服务执行策略选择组件使用上文描述的追求最大应用满意度的让步协商机制算法,根据规范化后得到的当前环境信息、应用剖面信息、应用的服务质量要求、应用对各项服务质量指标和资源消耗指标重视度的信息,选择服务执行策略,交由执行服务请求组件,以该当选策略执行服务请求。当环境配置不能满足服务执行要求时,报告驳回服务请求要求。
5 结束语
本文从移动计算的需求出发,分析了传统中间件应用在移动环境中的不足,提出了一个反射式中间件架构。该中间件克服传统中间件系统的单一性和不灵活性,可以支持异步通信、动态重配置、环境感知等。
参考文献:
[1]胡海洋,马晓星,陶先平等.反射中间件的研究与进展[J].计算机学报,2005,9(28):1407-1420.
[2]张华新,胡维华.反射式中间件技术的研究[J].计算机与数字工程,2005,10(33):74-76.
[3]殷贤亮,宋锦,徐丽萍.适用于移动计算环境的反射式中间件[J].华中科技大学学报(自然科学版),2006,7(34):36-38.
[4]Estrind, Cullerd, Pisterk, et al. Connecting the Physical World with Pervasive Networks [ J ]. IEEE Pervasive Computing, 2002, 1(1):59-69.
[5]J.Heer,A.Newberger,C.Beckmann,etal. Context-aware distributed queries[J]. Lecture Notes in Computer Science,2003,1: 140–148.
本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。