支持普适计算的构件管理方法

文档序号:6390563阅读:140来源:国知局
专利名称:支持普适计算的构件管理方法
技术领域
本发明涉及构件化软件设计,尤其涉及一种支持普适计算的构件管理方法。
背景技术
在传统的开发技术下,大规模的软件往往会出现系统分析复杂,开发周期长,维护费用增高及功能扩展困难的问题。不仅如此,随着网络技术的飞速发展,软件需要具有开放的系统结构和跨越多个异构平台的能力,软件如果严重依赖于操作系统和特定的网络服务,会导致应用系统开放性很差。开发者为了适应不同的应用环境而不得不开发不同的代码,这样会出现大量的重复劳动,严重的影响着软件生产效率和软件质量的提高。
构件化技术的出现解决了长期困扰软件工程界的种种难题。所谓软件构件指的是可以重用的软件单元,它能够被用来构造其它软件。它可以是被封装的对象类、一些功能模块、软件框架、软件系统模型、软件文档等等。软件构件不依靠于某一个系统,可以被功能向上的构件所替代,并且具有实际的功能意义。基于构件化的软件开发,就是从构件库中选择适用的构件,通过构件的组装和控制来构造应用软件。构件化技术使得软件具有良好的平台兼容性、结构开放性、规模可变性、系统可配置性以及代码重用的能力。
从广义上来说,构件有如下的几个基本特点。1、构件是可独立配置的单元,因此构件必须自包容;2、构件强调与环境和其它构件的分离,因此构件的实现是严格封装的,外界没机会或没必要知道构件内部的实现细节;3、构件可以在适当的环境中被复合使用,因此构件需要提供清楚的接口规范,可以与环境交互;4、构件不应当是持续的,即构件没有个体特有的属性,理解为构件不应当与自身副本区别。
从以上四个特点可以看出,构件沿袭了对象的封装特性,但同时并不局限在一个对象,其内部可以封装一个或多个类、原型对象甚至过程,结构是灵活的。构件突出了自包容和被包容的特性,构件化对软件开发的工程化是非常重要的,有了构件才能通过构件的组装、互连,实现软件的工程化开发。构件化是一种前沿的软件设计思想,对整个软件行业的发展有着推动作用。如果回顾经典的工业化革命,不难得出一些有益的启示功能再复杂的产品都是由大量标准的零件组成,零件在生产线上装配成一个成品,所有零件在成品中共同发挥作用。分工越细致、专业生产的程度越高,总体生产效率就越高。而构件技术所扮演的角色就是把零件、生产线和装配运行的概念运用在软件工业中,可以预见,软构件技术是软件产业化革命的必然发展趋势。
“构件化”可以说是跨世纪软件技术发展的一个趋势,它解决了传统软件难以重用、维护和更新、系统不易于用户定制的缺点。虽然目前支持构件化软件技术的系统也不少,但还没有统一的标准实施方案,每个公司设计构件的方法都不一样(如COM、JAVA),它们都主要是为了解决构件的独立性、高可重用性、移植性以及构件的可维护性的问题。
计算机发展到今天,普适计算已经由理想逐渐转变成现实。随着计算机科学的进步,我们生活的空间中会充斥着越来越多的无线的嵌入式设备,如掌上电脑,BP机、车载智能设备、笔记本计算机、手表、智能卡、智能手机、机顶盒、POS销售机、屏幕电话,它们的尺寸大小不一样,提供的功能不一样,存在的形式也不一样。有的把一个类作为构件,有的把一个服务作为构件,有的甚至把好几个应用程序捆绑在一起作为构件;这样的局面就造成了构件异构,使得构件之间难以兼容。更令人头疼的是,普适计算环境下的构件还具有数目众多、移动性强的特点,某一个构件可能随时离开(或者进入)某一个设备的“视线”,这就造成构件难以管理。这些问题都是有待解决的。
普适计算软件系统应该满足的四个要求1、有效利用活动空间普适计算的活动空间的含义非常广泛;可以是一间卧室,也可以是一个庭院。各式的嵌入式设备必须与活动空间有机的融合在一起。比如说,在一间屋子里,嵌入式计算设备可以根据室内温度和亮度来控制是否应该开启暖气和电灯;同样环境的变化也可以引起嵌入式设备的功能变化。
2、对用户透明用户不必关心嵌入式计算设备的工作过程,而应该是在不经意中就能享受到各种优质服务。这就要求嵌入式设备能够感知用户的意图,自动适应各种可能的情况。
3、局部可测量性计算的活动空间和周围环境有很密切的交互,但是可利用的网络带宽资源却非常有限。因此当一个嵌入式计算设备离开后,活动空间必须感知这各行为,切断和这个设备的联系;同样当一个计算设备进入后,活动空间必须和这个新来的设备取得联系。这样做的目的在于能够让移动用户减少与距离远的设备发生关联,尽量让移动用户与小范围内的设备有关联;从而保证计算资源的有效利用率。
4、对不平衡负载的屏蔽所处的环境不同,计算设备的数量也不同。在会议室、办公室、实验室中,可能存在很多的嵌入式设备;而在一些信息相对闭塞、器材较少的地方,如草坪、花园、足球场里,计算设备就屈指可数。普适计算要求屏蔽掉这些不平衡的情况,给用户提供统一的环境。
从软件系统的角度来讲,普适计算环境下,各种小型计算设备在位置不断移动的过程中或在地理位置分布很广的范围内,在不稳定的通信条件下实现联机事务处理和企业核心数据访问.这些小型计算设备,具有多种通信手段,如移动通信网络、红外、蓝牙、卫星,能与互联网或企业内部网相连,但这种连接不是固定的连接,而是间断的连接。因此,普适计算学要新的软件结构,使得用户可以使用这些设备进行复杂的联机事务处理和信息访问。

发明内容
本发明的目的是提供一种支持普适计算的构件管理方法。
1)除了一般构件自身的封装外,通过构件容器对构件进行二次封装,并提供构件的运行时环境,解决构件粒度不统一的问题;2)通过构件控制块来管理构件运行时的信息,其中包含构件描述信息和控制信息,每一个构件都唯一对应一个构件控制块,它是构件动态性的集中反映,是系统对构件进行识别和控制的依据;3)引入了构件注册器来记录某种设备能感知到的所有构件,实现构件的动态注册、替换、添加和删除。
本发明的优点是在构件的基础上进一步封装,从而支持普适计算环境下的高度异构、高可移动性、高度透明性的特点。使得不同粒度、不同厂商的构件也能够很好的兼容;实现网络构的动态注册、替换、添加和删除。


图1是构件容器对构件的封装示意图;图2是构件控制块的结构及举例说明示意图;图3是构件注册器对构件的管理示意图;图4是感知空间示意图;图5是访问构件过程的流程示意图。
具体实施例方式
本发明是基于崭新的软件设计思想——面向构件设计方法,在我们的设计中“一切都是构件”。发明主要解决了两个难题构件的异构问题、构件的移动性问题。本发明的详细描述如下支持普适计算的构件管理系统软件应该解决一下关键问题1、发现机制当用户把一个新设备带入一个空间或在已有的设备上采用新的构件时,这种构件和其它可用的构件以及设备之间是如何相互地发现以及在它们之间需要进行哪些交互。同时普适计算系统是一个逐渐扩展的系统,这个过程应该不要求重新启动系统,或重写已有代码,这也是以发现机制作为基础的。目前已经有一些这方面的技术基础。
2、自适应普适计算系统中各种设备拥有的资源是不同的和变化的,从最小的系统到嵌入计算能力的物体,到可携带计算设备,再到基础设施中的部件,它们在计算能力、存储容量、电池容量、交互手段因素上都有着很大的差异;设备在不同的环境中移动时,可用的无线网络的带宽也是不同的。这就需要解决自适应的问题。它包括内容的转化和交互界面的转化两部分。前者解决数据传输过程中因为资源的限制而对数据做的处理;后者是因为设备的交互机制的不同,需要把同一个交互接口映射到不同的交互机制下完成。
3、对物理实体的管理因为在普适计算系统中,物理世界中的物体都同时具有信息空间中的意义,普适计算的系统软件就必须对这些物理实体具有一定的管理能力。普适计算的系统软件就是一种物理空间的操作系统,它与目前的操作系统的不同之处就是它需要把物理实体也管理起来。这里的管理有两层含义把物理实体看作一种资源,需要建立对这些资源的位置、结构、功能的表示,而且需要反应动态的实际情况。这需要觉察上下文计算的支持。当物理实体嵌入有传感、计算、效应能力时,必须提供对它们的高层接口,即相当于传统的驱动程序。
4、构件间协调机制普适计算系统是一个分布的系统,如何把各种分布的构件之间纷繁复杂的互联、通信、协作以一种统一和有机的方式组织!管理起来”而使系统展示出一个协调的行为和功能,这就是协调机制的作用。目前已有的各种分布式组件结构可以认为是一种协调机制,但它们直接用来支持普适计算系统是不合适的,因为用对象来抽象普适计算中的构件是不合适的。
如图1所示,我们使用构件容器(Vessel)来对组件进行封装。构件容器为封装在其中的构件提供了运行时所需要的环境,构件在这个环境内运行,它的所有通信都是通过构件容器来进行的。构件一旦被装载进了容器,那么对于外界来说就像被装入硬盘盒的硬盘,只有其对外的接口可以被访问,而且对于这些接口的访问都必须要通过构件容器来进行。
构件容器提供的运行时所需要的环境包括在需要时激活构件或者在一段时间内不需要时钝化构件,从而保护有限的系统资源,如主内存和CPU资源等等;为常用的构件的各种服务接口提供一个适配层,该适配层避免了客户程序通过直接向构件请求服务带来的麻烦和存在的安全隐患;为构件提供一个回调的适配层,构件容器可以通过这个回调层在感兴趣的事件和消息发生时通知构件;为客户提供一些可以配置的构件参数,用以动态修改构件的属性。
构件容器为包含在其中的构件提供了一个构件监视器,用以完成对构件生命周期策略的监控。它负责其中包括以什么方式创建构件,创建永久构件还是临时构件,什么时候需要激活构件,什么时候需要钝化构件,什么时候需要销毁构件;另外,客户还可以通过监视器提供的接口来告知构件容器每种构件的实例已经不再需要了。
不同厂商生产的构件的各异的,构件被封装成一个黑箱,外界不可能知道它的内部实现情况。然而客户在获取构件之前,必须获得关于该构件足够多的信息,才能更有效的访问它。为此我们引入了构件控制块CCB(ComponentControl Block)来提供和管理这些有用的信息。
如图1所示,构件控制块与构件是一一对应的关系,每当系统创建一个构件,就会设置一个构件控制块,再利用构件控制块对构件进行管理和控制;同样当构件被撤消时,系统就收回其构件控制块,构件也随之消亡。所以,构件控制块是构件存在的惟一标志。构件控制块的在构件管理中的作用相当于进程控制块PCB在进程管理中所起的作用。
构件和它的控制块一起被封装在构件容器中。如图2所示,构件控制块记录了很多关于构件的元信息,可以分为构件描述信息和控制信息,其中包括构件的标志符,构件的属性,构件的拥有者(网络中的某个普适计算设备),构件的创建时间,构件的寿命,构件的粒度(类级、服务级还是功能模块级),构件的存储信息,构件的功能描述,构件的接口描述。我们把构件和它的控制块捆绑在一起,这样不管是什么粒度什么功能的构件都可以方便的进行管理。
值得注意的是,构件控制块对元信息的描述必须采用广泛使用的注释语言和建模语言(即XML和UML),这可以使得构件元信息对绝大多数系统是可识别的。我们甚至不必提前知道构件是什么粒度,而只需要从构件控制块中读出该构件的具体信息,考察该构件的是否满足用户的需要,构件是否具有共享属性,存储空间能否容纳该构件的问题,然后根据构件控制块中对接口的描述访问该构件。同时还需要建立自适应服务环境的系统管理配置构件库,完成构件化嵌入式系统服务环境的应激特性和动态重构的要求,用统一的构件接口和构件服务模式满足不同应用个性的要求,将构件组合成服务的具体细节屏蔽在服务环境之中,并且提供基本的构件化的应用零件,为构件化的服务提供可以适应环境与需求的个性及动态变化的应激特性。
构件容器、构件监视器以及构件控制块很好的解决了构件的封装、构件的生命周期管理,以及构件粒度不统一带来的异构的问题。接下来我们用构件注册器来解决的是构件高度移动性带来的问题。
普适计算对计算环境提出了新的定义和要求。人们对计算环境的理解将由个人计算机转变为一个物理空间,这个物理空间中有各种各样的计算设备。我们把整个物理空间,而不是其中的单个设备看作一个计算系统;它需要屏蔽掉了物理空间中各个设备的细节,向上提供了标准程序接口,使得这个物理空间变成了一个能被感知的空间。我们设计的操作系统就是要对这个物理空间的资源进行管理,使应用程序能够与物理空间进行交互。我们将客观存在的、有组织的、可扩展的包含一定计算能力的空间叫做物理空间;将每一个普适计算设备所有可获及的构件所形成的空间叫做感知空间Aware Space,如图4所示。
普适计算中的各种计算设备之间往往是通过无线方式来进行通信的(比如红外与蓝牙等技术),这种通讯方式在很大程度上会受到通讯距离的限制。任何一个设备都有一定的感知空间(Aware Space),如图4所示;设备无法感知到在感知空间以外的构件。为此,我们引入了构件注册器CR(Component Recorder)来记录某种设备可以感知到的所有构件。支持网络分布式环境的构件化服务能够充分利用网络资源,利用重用代码,获得可动态组合的灵活的构件化服务,以较高的效率实现比较复杂的功能。
如图3所示,构件注册器定期检测感知空间中的构件,始终保持可用构件的最新记录。每当新构件进入感知空间一段时间之后,就会被检测到;并且在构件注册器中会加入一条关于这个新构件的记录信息。同样的道理,如果已经登记的某个构件从感知空间中离开,构件注册器定期检测后发现构件不复存在,就会把它的记录删除。
为了更加有效的管理构件,构件注册器的记录分为两个部分,第一部分记录该设备拥有的本地构件,第二部分记录感知空间中其它设备的构件。本地拥有的构件相对稳定,由该设备自行管理;而网络构件的变动比较频繁,设备对它只有使用权而没有管理权。在系统初始化时,首先把本地构件的所有记录存放在构件注册器中;然后检测感知空间中当时所有的网络构件,也把它们的记录加入到构件注册器中。在系统运行时,本地构件记录的添加或者删除是由该设备决定的,管理起来非常容易;而网络构件则需要定期进行检测是否存在、是否可用。
网络构件有三种状态就绪状态、活动状态和僵死状态。构件动态注册采用租借的方式,系统一旦发现某个网络构件后就确定一个租借期限,当租借期限结束后,构件注册器判断该网络构件是否仍然可用,从而确定下一次租借期限,在租借期间的构件处于就绪状态,它随时准备被系统使用;当系统需要调用网络构件完成某项任务的时候,这个构件就由就绪状态转变为活动状态,构件便开始了真正的工作;构件把任务完成后,又将返回到就绪状态;当网络构件被删除,或者离开了系统可以感知到的空间,或者系统没有足够的权限访问它,该构件就处于僵死状态,僵死的构件不能被系统调用。网络构件只有在活动状态的时候才占用系统资源。
系统为了完成某个任务,需要符合某些要求的构件(比如说要求该构件完成功能A AND构件所需存储空间小于B兆AND构件的生命值大于C秒)。系统向CR提出要求,查找是否有能够满足这些要求的构件。如果这样的构件不存在,则向系统返回空值;如果这样的构件存在并且唯一,则读取构件控制块的完整信息,按照接口要求访问构件;如果这样的构件不止一个,则读取所有这些满足条件的构件控制块的完整信息,然后比较这些构件的性能和网络代价(本地构件网络代价为零),从而选出最佳构件访问之。
值得注意的是,由于我们的设计采用了“一切都是构件”的思想,构件注册器构件注册器本身也是一个构件,只不过它比较特殊,它是系统在初始化时就自动生成的,它是系统所必须拥有的一个构件。这样的设计大大方便了对构件的管理,因为除了构件以外再也没有别的东西。
实施例解析MPEG4编码文件,并播放视频流。这个例子中共有两个可计算设备一台跑在是Linux操作系统上的个人计算机,一台是跑在RT Linux上面的PDA;这两个设备都配有蓝牙接口,并且可以通过蓝牙接口进行相互之间的通讯。该例子一共设计了四个构件解析MPEG4的构件,显示视频的构件,解析JPEG的构件,显示图像的构件;刚开始的时候,这四个构件都在个人计算机上运行。
第一步,在个人计算机上初始化上述四个构件。其中解析MPEG4的构件的初始化过程如下首先,申请一个构件控制块并且把构件的各种元信息写入它的构件控制块中,如图2所示;然后,用构件监视器管理该构件的生命周期策略;接下来,把构件和它的控制块、监视器一起封装到构件容器中;最后,由构件容器提供构件的运行环境,所有访问都必须通过构件容器进行。其它三个构件的初始化过程也基本相同。
第二步,我们把PDA逐渐靠近个人计算机。在一定距离范围内,PDA和个人计算机就可以通过蓝牙接口进行通讯了。这时,PDA检测到了个人计算机上面的四个构件,并把它们的记录存放到构件注册器上。构件此时处于就绪状态,但并不占用PDA的存储空间和计算资源。
第三步,PDA需要对MPEG4的文件进行解码,并且播放这个文件。这时搜索构件注册器中的构件,查询是否有能够满足要求的构件。由于在第二步中,解析MPEG4的构件和显示视频的构件都已经在构件注册器上登记,因此可以容易的找出这两个构件。接着,通过访问这两个构件的构件控制块获得足够的信息包括构件的功能、构件的接口、构件所占空间的大小。最后,PDA就可以利用这两个构件完成解码和播放任务了。执行任务时,构件就由就绪状态转变为活动状态,将占用PDA的存储空间和计算资源,如附图5所示。
第四步,MPEG4的文件播放完以后,解析MPEG4的构件和显示视频的构件就要放弃系统资源,重新返回到就绪状态。接下来,如果我们让PDA再一次远离个人计算机,超出了蓝牙作用的范围,上述四个构件就不再可用了,将处于僵死状态,同样也不占用PDA的存储空间和计算资源。
权利要求
1.一种支持普适计算的构件管理方法,其特征在于1)除了构件自身的封装外,通过构件容器对构件进行二次封装,并提供构件的运行时环境,解决构件粒度和接口不统一的问题;2)通过构件控制块来管理构件运行时的元信息,其中包含构件描述信息和控制信息,每一个构件都唯一对应一个构件控制块,它是构件动态性的集中反映,是系统对构件进行识别和控制的依据;3)引入了构件注册器来记录某种设备能感知到的所有构件,实现构件的动态注册、替换、添加和删除。
2.根据权利要求1所述的一种支持普适计算的构件管理方法,其特征在于所说的通过构件容器对构件进行二次封装构件容器为封装在其中的构件提供了运行时所需要的环境,构件在这个环境内运行,它的所有通信都是通过构件容器来进行的;构件一旦被装载进了容器,那么客户端则只能通过构件容器的对外接口来访问构件;在构件容器中,还提供了构件监视器来完成对构件生命周期策略的监控。
3.根据权利要求1所述的一种支持普适计算的构件管理方法,其特征在于所说的构件控制块来管理构件运行时的元信息,其中包含构件描述信息和控制信息构件控制块与构件是一一对应的关系,每当系统创建一个构件,就会为构件设置一个控制块,利用它对构件进行管理和控制;同样,当构件将被撤消时,系统就收回构件控制块,构件也随之消亡;构件控制是构件存在的惟一标志;构件控制块的在构件管理中的作用相当于进程控制块在进程管理中所起的作用;构件信息的描述采用的是广泛使用的注释语言和建模语言,即XML和UML,这使得构件信息对绝大多数系统是可识别的。
4.根据权利要求1所述的一种支持普适计算的构件管理方法,其特征在于所说的构件注册器来记录某种设备能感知到的所有构件始终保持可用构件的最新记录;每当新构件进入系统的感知空间一段时间之后,就会被检测到;并且在注册器中会加入一条关于这个新构件的记录信息;同样的道理,如果已经登记的某个构件从系统的感知空间中离开,注册器定期检测后发现该构件不复存在,就会把它的记录删除。
5.根据权利要求1或2所述的一种支持普适计算的构件管理方法,其特征在于所说的运行时所需要的环境包括1)在需要时激活构件或者在一段时间内不需要时钝化构件,从而保护有限的系统资源,即主内存和CPU资源;2)为常用的构件的各种服务接口提供一个适配层,该适配层避免了客户程序通过直接向构件请求服务带来的麻烦和存在的安全隐患;3)为构件提供一个回调的适配层,构件容器通过这个回调层在感兴趣的事件和消息发生时通知构件;4)为客户提供可配置的构件参数,用以动态修改构件的属性。
6.根据权利要求2所述的一种支持普适计算的构件管理方法,其特征在于所说的构件监视器来完成对构件生命周期策略的监控,其中包括以什么方式创建构件,创建永久构件还是临时构件,什么时候需要激活构件,什么时候需要钝化构件,什么时候需要销毁构件;另外,客户能够通过监视器提供的接口来告知构件容器种构件的实例已经不再需要了。
7.根据权利要求1或3所述的一种支持普适计算的构件管理方法,其特征在于所说的构件描述信息和控制信息,其中包括构件的标志符、构件的属性、构件的拥有者即网络中的某个普适计算设备、构件的创建时间、构件的寿命、构件的粒度,即是对象级、服务级、还是功能模块级、构件的存储信息、构件的功能描述、构件的接口描述,我们把构件和它的控制块捆绑在一起,这样不管是什么粒度什么功能的构件都可以方便的进行管理。
8.根据权利要求3所述的一种支持普适计算的构件管理方法,其特征在于所说的构件元信息的描述采用的是广泛使用的注释语言和建模语言,即XML和UML这使得构件信息对绝大多数系统是可识别的;通过这些信息,我们甚至不必提前知道构件是什么粒度,而只需要从构件控制块中读出该构件的具体信息,考察该构件的是否满足需要,构件是否具有共享属性,存储空间能否容纳该构件问题,然后根据控制块中对构件接口的描述访问该构件。
9.根据权利要求4所述的一种支持普适计算的构件管理方法,其特征在于所说的构件的最新记录分为两个部分第一部分记录该设备拥有的本地构件,第二部分记录感知空间中其它设备的构件情况;本地拥有的构件相对稳定,由该设备自行管理,而网络构件有三种状态,变动比较频繁,设备对它只有使用权而没有管理权;在系统初始化时,首先把本地构件的所有记录存放在构件注册器中,然后检测系统中当时所有的网络构件,把它们的记录也加入到构件注册器中;在系统运行时,本地构件记录的添加或者删除是由该设备决定的,管理起来非常容易,而网络构件则需要定期进行检测是否存在、是否可用。
10.根据权利要求4或9所述的一种支持普适计算的构件管理方法,其特征在于所说的网络构件有三种状态就绪状态、活动状态和僵死状态;构件动态注册采用租借的方式,系统一旦发现网络中某个共享构件后就确定一个租借期限,当租借期限结束后,构件注册器判断该网络构件是否仍然可用,从而确定下一次租借期限,在租借期间的构件处于就绪状态,它随时准备被系统使用;当系统需要调用网络构件完成某项任务的时候,这个构件就由就绪状态转变为活动状态,构件便开始了真正的工作;构件把任务完成后,又将返回到就绪状态;当网络构件被删除,或者离开了系统可以感知到的空间,或者系统没有足够的权限访问它,该构件就处于僵死状态,僵死的构件不能被系统调用。
全文摘要
本发明公开了一种支持普适计算的构件管理方法。1) 除了一般构件自身的封装外,通过构件容器对构件进行二次封装,并提供构件的运行时环境,解决构件粒度不统一的问题;2) 通过构件控制块来管理构件运行时的元信息,其中包含构件描述信息和控制信息,每一个构件都唯一对应一个构件控制块,它是构件动态性的集中反映,是系统对构件进行识别和控制的依据;3) 引入了构件注册器来记录某种设备能感知到的所有构件,实现构件的动态注册、替换、添加和删除。本发明的优点是在构件的基础上进一步封装,从而支持普适计算环境下的高度异构、高可移动性、高度透明性的特点。使得不同粒度、不同厂商的构件也能够很好的兼容;实现网络构的动态注册、替换、添加和删除。
文档编号G06F9/46GK1581085SQ200410018438
公开日2005年2月16日 申请日期2004年5月15日 优先权日2004年5月15日
发明者姜周, 陈文智, 吴斌 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1