CN102480480B - 一种普适计算环境下的资源调度方法 - Google Patents
一种普适计算环境下的资源调度方法 Download PDFInfo
- Publication number
- CN102480480B CN102480480B CN201010569898.6A CN201010569898A CN102480480B CN 102480480 B CN102480480 B CN 102480480B CN 201010569898 A CN201010569898 A CN 201010569898A CN 102480480 B CN102480480 B CN 102480480B
- Authority
- CN
- China
- Prior art keywords
- equipment
- service
- drb
- message
- client entity
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种普适计算环境下的资源调度方法,属于信息技术领域。本方法为:1)初始化客户实体单元、设备请求代理DRB和服务实体单元;2)服务实体向DRB进行注册,客户实体向DRB查询服务实体设备并在客户实体端产生设备代理;3)客户实体向DRB发送连接建立请求消息,DRB根据连接建立请求消息建立虚拟连接;4)DRB通过虚拟连接将设备代理生成服务调用请求消息发送给服务实体设备;5)服务实体单元对请求消息进行解析,服务实体设备执行解析结果并生成调用返回消息发送给DRB;6)DRB通过虚拟连接将调用返回消息返回给客户实体。本发明使普适世界层应用程序开发降低难度、节约时间、增加可移植性,同时兼容性好。
Description
技术领域
本发明属于信息技术领域,涉及一种普适计算环境下的资源调度方法。
背景技术
随着半导体技术和通信技术的飞速发展,传统的PC机时代和网络时代正在向普适计算时代迈进。自MarkWeiser在1991年首次提出普适计算思想以来,普适计算就作为21世纪的一种新的计算模式日益受到人们的关注和重视。国内外研究机构投入大量的人力、物力进行研究,主要的研究方向包括用户接口技术、上下文感知计算、自适应技术、服务的组织、系统结构等。然而到目前为止,普适计算环境下的设备和服务还缺乏一个统一的应用框架和集成方法。下面将对普适计算和ORB技术(对象请求代理)的研究现状加以讨论。
当前普适计算理论模型方面已经有了一些研究,从普适计算架构方面,不同研究者提出了多种分层普适计算模型。美国国家标准与技术研究院NIST参考计算机网络中的OSI模型提出了一个层次化的普适计算概念模型,包括环境层、物理层、资源层、抽象层、及意图层。其中环境层是指物理环境,它在传统计算中是无关紧要的,但在普适计算环境下却是一个重要因素;物理层是指计算环境的用户和组成计算环境的各种物理设备;资源层包括用户的能力(User Faculties)和计算环境的资源(内存、系统API和网络协议栈等);抽象层对应于OSI的应用层,包括用户的心智模式(Mental Models)和计算环境的应用程序;意图层是比OSI中应用层更高的一层,包括用户的意图和设备的目标,设备根据自己的设计目标主动迎合用户的意图。德国学者还提出了一个普适计算的三层模型,由下而上分为基件层(gadget)、集成层(Integration)和普适世界层(UC World)。其中第一层主要包括普适计算环境下的智能设备和网络设施。比如智能汽车、可佩带式计算机、智能空间、自组织微微网等;第二层是集成硬件设备的系统支撑软件;第三层是普适计算环境下的应用。之外还有澳大利亚分布系统技术中心的研究人员将普适计算归纳为设备、用户、软件组件以及用户界面等四个元素,以及浙江大学吴朝晖等人借鉴物理场理论的智能影子模型。
在模型的具体方法研究方面,参照德国学者的三层模型,目前多数研究集中在普适世界层。普适计算的研究计划有麻省理工学院(MIT)的Oxygen计划、IBM公司Watson研究中心的DreamSpace计划,以及清华大学的SmartClassroom等,其中包括一些设备基件(智能的人机交互设备)应用到设定场景中,但是这些成果还不具备通用性以无缝迁移到其他场景甚至传统应用中。Stanford大学研究人员提出的“计算胶囊”(compute capsule)是一种新型的抽象机制,通过与机器无关的虚拟化私有接口封装用户任务的所有运行状态,重新构建操作系统,为应用迁移提供支持;Chandra等的Collective系统是一种集中管理和瘦客户端的体系,将应用状态和用户数据分别保存在两个不同的缓存容器中,便于应用向新的计算设备上移动。这两项研究开发一种普适计算环境下的应用框架和应用程序,实现无缝迁移的特性,但是主要关注于应用程序在计算设备上的无缝迁移方面,并且不考虑设备基件的差异。本发明在这些基础上做进一步研究,提出了设备请求代理模型(Device Request Broker,简称DRB)。
为了实现DRB模型,ORB在分布式环境中不同应用之间的互操作以及多对象系统之间的无缝连接等特性具有较大的借鉴意义。ORB是一个中间件,它可以建立对象之间的Client/Server关系。通过ORB,一个Client可以透明地引用同一台机器或网络上的一个Server对象的方法。
传统的ORB都致力于构建大型的软件系统,随着分布式应用的发展,传统ORB的结构已经无法适用于可供利用资源有限的分布式异构设备,业界开始致力于研究应用于嵌入式系统的嵌入式精简ORB。嵌入式精简ORB的研究目标是在极大范围的通信平台——不单只是计算机、包括从大型自动控制设备至微型通信仪器中提供方便快捷的服务和实现即时的远程控制,目前所研究的嵌入式精简ORB主要是对传统ORB进行裁剪以适应嵌入式资源环境。
不论是传统的ORB还是嵌入式精简ORB,它们都是为透明地在异构的分布计算环境中传递对象请求提供通信框架。而本发明研究目标是提出设备基件的远程映射、统一管理和分布式服务调度机制以实现资源和服务的聚合,并向上提供一个统一的虚拟计算平台,因此需要借鉴ORB技术的思想并结合普适计算研究现状构建新的模型。
发明内容
针对现有技术中的问题,本发明的目的在于提供一种普适计算环境下的资源调度方法,通过设备请求代理模型(Device Request Broker,简称DRB)实现。本方法建立在普适计算分布式设备发现与协同技术和ORB(Object Request Broker,对象请求代理)技术的研究之上,本发明提出的设备请求代理模型,实现设备基件的远程映射、统一管理和分布式服务调度,并通过虚拟机技术进一步构建一致的集成层环境供普适世界层使用。建立在虚拟机技术上的一致化的集成层环境实现资源和服务的聚合,向上提供一个统一的虚拟计算平台,以降低普适世界应用层的开发难度、节约成本、增加可移植性。同时也可向下兼容既有的应用程序,使得各领域已经存在的很多成熟业务模式和应用软件可实现普适环境下的无缝迁移,避免资源浪费,保护既有投资。
本发明的技术方案为:
一种普适计算环境下的资源调度方法,其步骤为:
1)初始化客户实体单元、设备请求代理DRB和服务实体单元;
2)服务实体向DRB发送服务注册消息进行注册,客户实体向DRB发送服务实体设备查询消息并在客户实体端产生设备代理;
3)客户实体向DRB发送与所查询服务实体设备连接的连接建立请求消息,DRB根据连接建立请求消息建立客户实体与所查询服务实体设备的虚拟连接;
4)设备代理生成服务调用请求消息并将其发送给DRB,DRB通过所建的虚拟连接将服务调用请求消息发送给所查询的服务实体设备;
5)服务实体单元对服务调用请求消息进行解析后,所查询服务实体设备执行解析结果,并根据执行结果生成调用返回消息发送给DRB;
6)DRB通过所建立的虚拟连接将调用返回消息返回给客户实体。
进一步的,所述客户实体单元包括:虚拟设备子层、设备代理Stub、DRB接口(130),所述虚拟设备子层包括虚拟机、虚拟设备驱动,所述DRB接口(130)包括本地/远端设备池(131)、设备请求代理适配器(132);所述DRB包括:设备请求代理适配器DRB接口(210)、设备调度模块、设备管理模块、设备池;所述服务实体单元包括:设备子层、服务骨架Skeleton、DRB接口(330),所述设备子层包括物理设备、传统设备驱动,所述DRB接口(330)包括本地/远端设备池(332)、设备请求代理适配器(331)。
进一步的,初始化客户实体单元的方法为:
a)生成本地/远端设备池(131);所述设备池包括设备信息表、设备服务表、设备连接表;
b)启动设备请求代理适配器(132),建立业务进程;
c)启动虚拟子层。
进一步的,初始化DRB的方法为:
a)生成设备池(240);所述设备池包括设备信息表、设备服务表、设备连接表;
b)启动设备调度和设备管理模块;
c)启动设备请求代理适配器DRB接口(210)。
进一步的,初始化服务实体单元的方法为:
a)启动设备子层;
b)生成本地/远端设备池(332);所述设备池包括设备信息表、设备服务表、设备连接表;
c)启动设备请求代理适配器(331),建立业务进程。
进一步的,所述设备信息表的数据结构包括:设备句柄、设备名称、设备类型、设备路径、设备倒计时;所述设备服务表的数据结构包括:设备协议索引、设备句柄、服务协议;所述设备连接表的数据结构包括:设备连接索引、设备句柄、设备协议索引、设备连接;其中,设备句柄是设备信息表的主码、设备协议表和设备连接表的外码,设备协议索引是设备协议表的主码、设备连接表的外码,设备连接索引是设备连接表的主码。
进一步的,步骤2)的实现方法为:
a)DRB在设备请求代理适配器(132)、设备请求代理适配器(331)、设备请求代理适配器DRB接口(210)之间建立消息通道;
b)客户实体和服务实体分别向DRB发布宣告消息;所述宣告消息包括:设备名称、设备类型、设备路径;DRB根据宣告消息填充其设备信息表并返回注册确认消息;
c)将传统设备驱动封装成为服务架构Skeleton以调用实际提供服务的物理设备,服务实体根据Skeleton发送服务注册消息给DRB,DRB将服务注册消息的解析结果添加到设备服务表并返回注册确认消息;所述服务注册消息包括:设备路径、服务协议;
d)客户实体向DRB发送设备查询消息,DRB根据查询消息查询其设备池并返回查询设备信息;客户实体根据返回设备信息创建设备代理Stub。
进一步的,所述虚拟连接的建立方法为:DRB根据连接建立请求消息将客户实体的地址、服务实体的地址及其注册的服务协议填充到DRB的设备连接表中,并返回连接确认消息。
进一步的,所述连接建立请求消息包括:设备路径、服务协议;所述服务调用请求消息包括:设备类型、服务名称、调用参数;所述调用返回消息包括:设备类型、服务名称、执行结果。
进一步的,DRB对设备信息表中设备倒计时字段的字段值每隔设定时间将其减1,待减到0时且未收到设备的心跳信息,则注销该设备;否则将该设备的设备倒计时字段的字段值重置回初始值。
本方法采用的基本思路是参照对象请求代理(Object Request Broker,简称ORB)技术,结合普适计算分布式设备发现与协同技术构建设备代理。本方法包括客户实体集(Client)、服务实体集(Server)和设备请求代理(DRB)三个部分,为实现上述目的,本方法包括以下步骤:1)建立DRB环境,即服务实体向DRB注册设备和服务信息、DRB记录服务实体注册的设备和服务信息、客户实体向DRB查询所关注的服务实体,并在客户实体端产生设备代理;2)调用设备基件,即客户实体通过设备代理操作服务实体;3)注销设备基件,即服务实体从DRB环境中注销。
本方法的显著特征在于:1)服务实体开发者只需给出设备和服务描述;2)客户实体端自动产生所关注的服务实体的设备代理;3)客户实体开发者通过设备代理操作远端服务实体,如同操作本地设备一样。从而,所述普适计算环境虚拟成传统的PC计算环境或网络计算环境,现有的应用程序也可无缝的迁移到普适计算环境下。
与现有技术相比,本方法的积极效果为:
本发明提供解决普适计算环境下设备和服务应用框架和集成方法的新思路,提供构建一致的普适计算环境的新方向。本发明可实现向上提供一致的普适计算集成层,使普适世界层应用程序开发降低难度、节约时间,增加可移植性。同时也实现兼容传统应用程序到普适计算环境下,保护既有投资。
附图说明
图1示例了本发明中的客户实体通过DRB传送请求;
图2示例了本发明描述的调度方法流程图;
图3示例了本发明描述的环境建立;
(a)服务实体初始化,(b)客户实体初始化,
图4示例了本发明描述的Stub与Skeleton机制;
图5示例了本发明描述的DRB环境建立流程;
图6示例了本发明描述的基件调用;
图7示例了本发明描述的设备服务调用流程;
图8示例了本发明描述的设备消亡;
(a)服务实体正常注销,(b)服务实体异常注销。
具体实施方式
本调度方法涉及普适计算环境下的客户实体集(Client)、服务实体集(Server)和设备请求代理(DRB)。客户实体是由多个本地设备和设备代理有机构成的虚拟计算环境实体。所述的本地设备是指客户实体进程所依附主机上的设备,设备代理是指客户实体进程通过DRB映射的所关注远端设备基件的本地代理,有机构成是指通过操作系统或虚拟机技术对本地设备和设备代理的管理。通过DRB的映射,远端设备基件在本地产生的设备代理同本地设备具有相同的操作方式,即操作系统或虚拟机不必区分本地设备和设备代理。服务实体是指在普适环境下设备代理所指向的,实现服务的物理设备基件。所述的物理设备基件可以是一台投影仪为其他设备提供显示服务,或者一部手机为其他设备提供操作终端。DRB负责服务实体的统一管理、调度,以及客户实体的设备查询、服务请求响应。
以下结合附图,具体说明本发明实施方式。
图1示例了本发明中的客户实体通过DRB建立与服务实体之间的逻辑连接,并传送请求。与传统模式不同的是,编写客户实体和服务实体只需要关注自己的业务逻辑,繁琐的支撑细节都由DRB统一处理,既能透明的实现异构设备的互感知和互操作,又能提高智能设备的开发和应用效率。
图2示例了本发明描述的调度方法流程。此流程的一个完整周期包括环境建立、基件调用和设备消亡三个步骤,每个步骤中又细化为多个子步骤。以下对各个步骤进行详细阐述,并在阐述过程中介绍模型的细节。
一、环境建立
图3示例了DRB环境建立流程。首先分别初始化客户实体100、DRB 200和服务实体300的状态,然后开始DRB环境的构建。即环境建立流程包含以下子步骤:1.设备初始化;2.DRB环境建立。
1.设备初始化
设备初始化包括客户实体100初始化、DRB200初始化和服务实体300初始化。
其中,客户实体100由虚拟设备子层110、客户桩(即设备代理)Stub120和DRB接口130三部分组成。客户实体100使用虚拟设备构建的新的计算环境,所述的虚拟设备包括两种形式,一种是本地设备或其虚拟化,另一种是远端设备基件(即服务实体300)的本地映射(即在客户实体端产生的Stub)的虚拟化。计算环境之上的应用程序完全不用关心所使用的实际设备来自于本地或是远端。所述的设备虚拟化属于虚拟机技术领域,本发明不做详细阐述。所述的计算环境即为统一的集成层环境(即虚拟机111,可以是通用的操作系统,如Windows、Linux等,或者是广泛存在的虚拟机软件并在之上运行通用操作系统),供应用程序使用,对应用程序来说等同于传统的PC计算环境和网络计算环境,所以进行所述集成层环境之上的应用程序开发只需具备传统计算环境上的开发技能。
其中,DRB200由设备请求代理适配器DRB接口210、设备调度220、设备管理230、设备池240四个部分组成。DRB200是模型系统的核心,相当于传统客户端/服务器体系中服务器的角色,保存着DRB环境中所有客户实体和服务实体的信息并负责他们之间的维护和调用工作。
其中,服务实体300由设备子层310、服务骨架Skeleton320、DRB接口330三部分组成。服务实体300是提供服务的设备基件(可以是传统意义上的物理设备,如投影仪、手机等)。通过开发者对其封装Skeleton对外提供设备服务。
所述的DRB接口,包括DRB接口130和DRB接口330是给客户实体、服务实体、Stub和Skeleton提供的公用函数接口,包含内存、事件、定时器类和设备池的操作函数等。
所述的设备请求代理适配器DRB接口210,是与客户实体100、服务实体300之间的消息收发模块,并将消息派发到设备调度220和设备管理230。
所述的设备调度220,是根据来自设备请求代理适配器DRB接口210的消息进行设备池240中的表单操作,并返回应答消息。具体包括设备的查询、连接管理和调度。
所述的设备管理230,是根据来自设备请求代理适配器DRB接口210的消息进行设备池240中的表单操作,并返回应答消息。具体包括设备的注册、维护和注销。
以下分别进行阐述:
(1)客户实体100初始化,具体执行以下步骤:
(a)生成本地/远端设备池131
(b)启动设备请求代理适配器132
(c)启动虚拟子层110
(2)DRB200初始化,具体执行以下步骤:
(a)生成设备池240
(b)启动设备调度220和设备管理230模块
(c)启动设备请求代理适配器DRB接口210模块
(3)服务实体300初始化,具体执行以下步骤:
(a)启动设备子层310
(b)生成本地/远端设备池332
(c)启动设备请求代理适配器331
其中,(1)(a)、(2)(a)、(3)(b)中设备池的生成即是其数据结构的创建过程,本地/远端设备池131、本地/远端设备池332和设备池240具有相同的结构,都是由链表型数据结构构建的微型关系数据库。此数据库包含设备信息表、设备服务表和设备连接表三张表单。设备信息表的表单结构及示例如表1所示,用来存储设备的基本信息。设备服务表的表单结构及示例如表2所示,用来描述服务实体300所能提供的服务。设备连接表的表单结构及示例如表3所示,用来描述客户实体100和服务实体300的对应关系,因为整个DRB环境中可能会存在多个客户实体和服务实体。其中设备句柄是设备信息表的主码、设备协议表和设备连接表的外码,设备协议索引是设备协议表的主码、设备连接表的外码,设备连接索引是设备连接表的主码。其中设备句柄用来唯一标识DRB环境中的某个设备。对设备池的操作即是对实现此数据库的相关链表的操作。
表1设备信息表
设备句柄 | 设备名称 | 设备类型 | 设备路径 | 设备倒计时 |
1 | 投影仪 | DisplayDevice | 192.168.1.100 | 30 |
2 | 手写板 | InputDevice | 192.168.1.101 | 20 |
3 | PC | ComputingDevice | 192.168.1.102 | 25 |
表2设备协议表
设备协议索引 | 设备句柄 | 服务协议 |
1 | 001 | Device-Operation-Protocol |
2 | 002 | Device-Operation-Protocol |
表3设备连接表
设备连接索引 | 设备句柄 | 设备协议索引 | 设备连接 |
1 | 1 | 1 | 192.168.1.102:8000 |
其中,(1)(b)、(3)(c)中设备请求代理适配器132和设备请求代理适配器331的启动即其业务进程的建立过程。图4示例了本发明中的Stub与Skeleton机制,此机制中应用程序与Stub120、设备基件与Skeleton320之间是函数接口机制,客户实体100与DRB200、服务实体300与DRB200之间是消息接口机制,而设备请求代理适配器132和设备请求代理适配器331就是分别实现客户实体100和服务实体300端函数机制与消息机制相互转换的业务进程。在客户实体100端,设备请求代理适配器132为Stub120中的每一个接口创建一个消息组装函数;在服务实体300端,设备请求代理适配器331根据接收到的消息调用Skeleton320中的函数接口。其具体工作原理是:Stub120和Skeleton320是一组函数接口的集合;当客户实体100调用服务实体300时,实际上是客户实体100端的虚拟子层110调用Stub120,设备请求代理132将Stub120的调用转换成服务调用消息发送给DRB200;服务调用消息经由DRB200转发至设备请求代理331;设备请求代理311再根据收到的服务调用消息调用Skeleton320中相关的函数接口,调用设备子层310。
其中,(1)(c)中的启动虚拟子层110即启动客户实体100端的虚拟机,以运行相关的应用程序;(3)(a)中的设备子层310即启动服务实体300端的设备基件,以对外提供设备服务。服务实体300端的设备子层310包括物理设备311和传统设备驱动312,是传统意义上的物理设备和驱动程序,也是Skeleton320和DRB接口330的运行基础,所以最先启动。
2.DRB环境建立
DRB环境建立是指服务器实体300将自己注册到DRB200并在客户实体100端产生设备代理的流程。图5示例了DRB环境的建立流程,具体包括以下步骤:
(1)建立连接
(2)设备宣告
(3)服务注册
(4)设备查询
其中,建立连接是指设备请求代理适配器132、设备请求代理适配器331和设备请求代理适配器DRB接口210之间建立消息通道,如使用Socket连接等。建立连接之后,设备请求代理适配器132和设备请求代理适配器DRB接口210之间、设备请求代理适配器331和设备请求代理适配器DRB接口210之间可以互发消息。
其中,设备宣告是指客户实体100和服务实体300向DRB200发布宣告消息,该消息内容为:设备名称(DeviceName),设备类型(DeviceType),设备路径(DevicePath)。DRB200获取消息内容后添加到设备池240中的设备信息表中和分配设备句柄。处理完成后DRB200向客户实体100和服务实体300返回注册确认消息,此消息包含注册状态,客户实体100和服务实体300在得到注册确认消息后可以进行下一步操作。
其中,服务注册是指服务实体300向DRB200发送服务注册消息,此消息内容包括:设备路径(DevicePath),服务协议(ServiceProtocol)。DRB200在收到服务注册消息后将解析结果填充到设备服务表中,所缺少的设备句柄在根据设备路径在设备信息表中查找。在填充完成后DRB200向服务实体300发送包含注册状态的确认消息。服务实体在收到注册确认消息后进入基件调用阶段。
其中,设备查询是指客户实体100向DRB200发送设备查询消息,此设备查询消息内容包括所感兴趣的设备类型,如显示设备。DRB200在收到设备查询消息后搜索设备池240中的设备信息表,在找到相关类型设备后组装结果返回消息,此消息包含结果设备在设备信息表和设备服务表中的内容,由客户实体100接收后填充到自己的本地/远端设备池131中。设备请求代理适配器132发现本地/远端设备池131中的设备信息和设备服务表中的远端设备信息后创建Stub实例,此Stub实例即为设备代理;Stub作为远端服务实体的本地映射。最后,由虚拟子层110会通过虚拟设备驱动112调用Stub产生虚拟机111上使用的虚拟设备供应用程序调用。
所述的服务注册消息中的ServiceProtocol是服务协议的名称。服务协议是一组预先规定的设备操作接口,客户实体100和服务实体300之间通过服务协议的名称约定Stub和Skeleton中使用的服务协议。例如ServiceProtocol字段内容为“Device-Operation-Protocol”,则约定使用包含open、close、read、write和ioctl接口的Device-Operation-Protocol。而Device-Operation-Protocol所包含的open等是函数指针,用来约定在实现此协议时函数的定义形式。开发者也可以自定义新的服务协议。
所述的客户桩Stub和服务骨架Skeleton是一个数据结构,包含服务协议名称和服务协议结构体。例如一个具体的Skeleton包含服务协议名称为Device-Operation-Protocol,和此服务协议的结构体。服务实体300的开发者就是要实现这个Skeleton结构体,而客户实体根据开发者的实现将其中包含的协议名称组装成消息发送给DRB200,客户实体100从DRB200中取得协议名称后会生成与之对应的Stub。因为Stub和Skeleton之间所使用的服务协议是是通过协议名称约定的,所以产生Stub时就知道所需要实现的协议,从而降低了Stub、Skeleton机制的实现难度。Stub在创建依据就是设备服务表中的ServiceProtocol字段。例如,客户实体100收到了上述服务实体300的服务注册信息,约定服务协议为“Device-Operation-Protocol”,则服务实体100会创建包含Device-Operation-Protocol协议实现的Stub120。
二、基件调用
图6示例了设备基件的服务调用过程。基件调用是指客户实体100调用服务实体300所提供的设备服务的流程,图7实例了详细的设备服务调用流程,此流程包含以下步骤:1.建立虚连接;2.服务调用。
1.建立虚连接
建立虚连接是指客户实体100和服务实体300之间通过DRB200建立消息转发通道,此信道是通过DRB200转发形成的,并不是实际存在,所以是虚连接。建立虚连接具体包括以下步骤:
(1)连接请求
(2)连接建立
其中,连接请求是指客户实体100在环境建立阶段得到服务实体300的信息,进入基件调用阶段后向DRB200发送连接请求消息。此连接请求消息的内容包含:DevicePath,ServiceProtocol,DevicePath和ServiceProtocol从本地/远端设备池131的设备信息表和设备服务表中获得。
其中,连接建立是指DRB200收到连接请求消息之后,由连接管理222处理。连接管理222将解析连接请求消息获得的客户实体100地址、服务实体300地址和服务协议信息填充到设备池240的设备连接表中。之后,DRB200向客户实体100和服务实体300发送连接确认消息,客户实体100和服务实体300在接到确认消息后记录连接状态,虚拟连接建立完成,进入到服务调用阶段。
2.服务调用
服务调用是指客户实体100调用服务实体300所提供的设备服务。图4就是以一次服务调用示例做的Stub与Skeleton机制展示,以下进行详细阐述。服务调用具体包括以下步骤:
(1)服务调用请求
(2)服务调用转发
(3)调用结果返回
(4)调用结果转发
其中,服务调用请求是指运行在虚拟机111之上的应用程序发出,由Stub120执行后生成的服务调用请求,发送给DRB200并等待结果返回消息。例如客户实体100调用服务实体300的open服务,会生成如下消息:设备类型(如DisplayDevice),服务名称(如open),调用参数(如没有则为NULL)。
其中,服务调用转发是指DRB200收到服务调用请求,根据解析到的源地址查询设备池240中的设备连接表,找到服务实体300的地址,并将服务调用消息转发给服务实体300。
其中,调用结果返回是指服务实体300接收到服务调用消息之后,由设备请求代理适配器331对消息进行解析,获取消息中的函数名和参数表信息,然后根据获取的函数名调用Skeleton320中对应的函数。Skeleton320是由服务实体300开发者对传统驱动程序312的封装,所以来自客户实体100的设备基件服务调用消息最终转换成了服务实体300的物理设备动作。作为对外提供服务的设备基件,依然是按照传统的模式来运行,接收来自于传统设备驱动312的指令。Skeleton320的执行完成后由设备请求代理适配器331将执行结果转换成消息,发送给DRB200。调用结果返回消息与服务调用请求格式类似,例如:DisplayDevice(设备类型),open(服务名称),TRUE(执行结果)。
其中,调用结果转发是指DRB200收到调用结果返回消息,根据解析到的源地址查询设备池240中的设备连接表,找到是客户实体100的调用结果返回,并将消息转发给客户实体100。客户实体100获得结果返回消息,再由Stub120解析后将结果上传给应用层,一次完整的服务调用过程结束。
三、设备消亡
图8示例了设备基件的消亡过程。设备消亡是指服务实体300从DRB环境中脱离的流程,包括以下两种情况:1.正常设备消亡;2.异常设备消亡。
1.正常设备消亡
设备正常消亡是服务实体300主动要求停止设备服务的过程。具体包含以下步骤:
(1)注销请求
(2)注销确认
其中,注销请求是指服务实体300向DRB200发送注销请求消息。注销请求消息内容包括:DevicePath,ServiceProtocol。
其中,注销确认是指DRB200收到注销请求消息后,由设备注销233解析获得设备地址和服务协议,并将设备池240中设备连接表和设备服务表相关表项删除。之后DRB200向服务实体300发送注销确认消息,消息内容为注销成功。服务实体300收到注销确认消息后关闭对外提供的设备服务。
2.异常设备消亡
如果服务实体300出现故障、断网或断电等无法正常进行设备注销的情况,DRB200会自动注销服务实体300的注册信息。异常设备消亡原理是,DRB200对设备池240中所存储的设备都维护了一个设备倒计时字段,该字段为一个整数,存储在设备信息表中,并且每隔一段时间(如1秒)将其减1,同时如果收到设备的心跳信息则将其重置回初始值,待减到0时认为设备失效。以服务实体300为例,具体分为两种运行状态的处理流程:
(1)正常状态
(2)异常注销
其中,正常状态下服务实体300向DRB200发送心跳消息,内容包含设备地址信息。此消息为周期性发送,用以表明服务实体300处于活跃状态。DRB200收到服务实体300的心跳消息后,由设备维护232将设备倒计时重置回初始值。同时,DRB200每隔1秒将该字段减1。由于正常状态下会不断的收到心跳消息,设备倒计时字段就不断的被重置回初始值,所以不会出现异常注销的情况。
其中,异常注销是指DRB200在减小设备倒计时字段时,一直没有收到来自服务实体300的心跳消息,最后将其减小到了0,设备维护232将服务实体300的信息从设备信息表、设备服务表和设备连接表中删除。在服务实体300的信息被删除之后,DRB200并不发送通知或确认消息。
以上是对本发明的优选实施例进行的详细描述,但本领域的普通技术人员应该意识到,在本发明的范围内和精神指导下,各种改进、添加和替换都是可能的,例如改变消息格式和内容、使用不同的编程语言(如C、C++、Java)实现等。这些都在本发明的权利要求所限定的保护范围内。
Claims (9)
1.一种普适计算环境下的资源调度方法,其步骤为:
1)初始化客户实体单元、设备请求代理DRB和服务实体单元;
2)服务实体向DRB发送服务注册消息进行注册,客户实体向DRB发送服务实体设备查询消息并在客户实体端产生设备代理;
3)客户实体向DRB发送与所查询服务实体设备连接的连接建立请求消息,DRB根据连接建立请求消息建立客户实体与所查询服务实体设备的虚拟连接;
4)设备代理生成服务调用请求消息并将其发送给DRB,DRB通过所建的虚拟连接将服务调用请求消息发送给所查询的服务实体设备;
5)服务实体单元对服务调用请求消息进行解析后,所查询服务实体设备执行解析结果,并根据执行结果生成调用返回消息发送给DRB;
6)DRB通过所建立的虚拟连接将调用返回消息返回给客户实体;
其中,所述客户实体单元包括:虚拟设备子层、设备代理Stub、DRB接口(130),所述虚拟设备子层包括虚拟机、虚拟设备驱动,所述DRB接口(130)包括本地/远端设备池(131)、设备请求代理适配器(132);所述DRB包括:设备请求代理适配器DRB接口(210)、设备调度模块、设备管理模块、设备池;所述服务实体单元包括:设备子层、服务骨架Skeleton、DRB接口(330),所述设备子层包括物理设备、传统设备驱动,所述DRB接口(330)包括本地/远端设备池(332)、设备请求代理适配器(331)。
2.如权利要求1所述的方法,其特征在于初始化客户实体单元的方法为:
a)生成本地/远端设备池(131);所述设备池包括设备信息表、设备服务表和设备连接表;
b)启动设备请求代理适配器(132),建立业务进程;
c)启动虚拟子层。
3.如权利要求1所述的方法,其特征在于初始化DRB的方法为:
a)生成设备池(240);所述设备池包括设备信息表、设备服务表和设备连接表;
b)启动设备调度和设备管理模块;
c)启动设备请求代理适配器DRB接口(210)。
4.如权利要求1所述的方法,其特征在于初始化服务实体单元的方法为:
a)启动设备子层;
b)生成本地/远端设备池(332);所述设备池包括设备信息表、设备服务表和设备连接表;
c)启动设备请求代理适配器(331),建立业务进程。
5.如权利要求2或3或4所述的方法,其特征在于所述设备信息表的数据结构包括:设备句柄、设备名称、设备类型、设备路径、设备倒计时;所述设备服务表的数据结构包括:设备协议索引、设备句柄、服务协议;所述设备连接表的数据结构包括:设备连接索引、设备句柄、设备协议索引、设备连接;其中,设备句柄是设备信息表的主码、设备协议表和设备连接表的外码,设备协议索引是设备协议表的主码、设备连接表的外码,设备连接索引是设备连接表的主码。
6.如权利要求5所述的方法,其特征在于步骤2)的实现方法为:
a)DRB在客户实体中的设备请求代理适配器(132)、服务实体中的设备请求代理适配器(331)、设备请求代理适配器DRB接口(210)之间建立消息通道;
b)客户实体和服务实体分别向DRB发布宣告消息;所述宣告消息包括:设备名称、设备类型和设备路径;DRB根据宣告消息填充其设备信息表并返回注册确认消息;
c)将传统设备驱动封装成为服务架构Skeleton以调用实际提供服务的物理设备,服务实体根据Skeleton发送服务注册消息给DRB,DRB将服务注册消息的解析结果添加到设备服务表并返回注册确认消息;所述服务注册消息包括:设备路径和服务协议;
d)客户实体向DRB发送设备查询消息,DRB根据查询消息查询其设备池并返回查询设备信息;客户实体根据返回设备信息创建设备代理Stub。
7.如权利要求5所述的方法,其特征在于所述虚拟连接的建立方法为:DRB根据连接建立请求消息将客户实体的地址、服务实体的地址及其注册的服务协议填充到DRB的设备连接表中,并返回连接确认消息。
8.如权利要求5所述的方法,其特征在于所述连接建立请求消息包括:设备路径和服务协议;所述服务调用请求消息包括:设备类型、服务名称和调用参数;所述调用返回消息包括:设备类型、服务名称和执行结果。
9.如权利要求5所述的方法,其特征在于DRB对设备信息表中设备倒计时字段的字段值每隔设定时间将其减1,待减到0时且未收到设备的心跳信息,则注销该设备;否则将该设备的设备倒计时字段的字段值重置回初始值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010569898.6A CN102480480B (zh) | 2010-11-26 | 2010-11-26 | 一种普适计算环境下的资源调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010569898.6A CN102480480B (zh) | 2010-11-26 | 2010-11-26 | 一种普适计算环境下的资源调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102480480A CN102480480A (zh) | 2012-05-30 |
CN102480480B true CN102480480B (zh) | 2015-01-07 |
Family
ID=46092962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010569898.6A Expired - Fee Related CN102480480B (zh) | 2010-11-26 | 2010-11-26 | 一种普适计算环境下的资源调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102480480B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104869154A (zh) * | 2015-04-27 | 2015-08-26 | 江务学 | 统筹资源可信度与用户满意度的分布式资源调度方法 |
CN104980525B (zh) * | 2015-07-10 | 2018-09-14 | 华南理工大学 | 一种基于状态中间件的普适性移动计算系统 |
CN110351257B (zh) * | 2019-06-27 | 2021-03-23 | 绿城科技产业服务集团有限公司 | 一种分布式物联网安全接入系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101378403A (zh) * | 2008-07-02 | 2009-03-04 | 北京航空航天大学 | 一种基于集合的资源通知处理系统及处理方法 |
CN101394396A (zh) * | 2007-09-19 | 2009-03-25 | 中兴通讯股份有限公司 | 一种数据可靠传输的方法及其系统 |
-
2010
- 2010-11-26 CN CN201010569898.6A patent/CN102480480B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101394396A (zh) * | 2007-09-19 | 2009-03-25 | 中兴通讯股份有限公司 | 一种数据可靠传输的方法及其系统 |
CN101378403A (zh) * | 2008-07-02 | 2009-03-04 | 北京航空航天大学 | 一种基于集合的资源通知处理系统及处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102480480A (zh) | 2012-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102053860B (zh) | 基于CORBA的OSGi分布式扩展系统及方法 | |
US9009006B2 (en) | Generating active links between model objects | |
CN103324173B (zh) | 基于中间件的多异构机器人协作方法 | |
CN102316129B (zh) | 一种嵌入式设备与远程数据库进行数据交换的方法 | |
CN103095853B (zh) | 云数据中心计算能力管理系统 | |
CN100444108C (zh) | 使用ui储存库的公共ui组件执行无线应用程序的系统和方法 | |
CN104156216A (zh) | 一种面向云计算的异构存储管理系统及方法 | |
CN103036954A (zh) | 基于gis的移动信息聚合系统及其方法 | |
CN102939579A (zh) | 绑定用户接口元素和粒度反映处理的方法和装置 | |
CN103414579A (zh) | 一种适用于云计算的跨平台监控系统及其监控方法 | |
CN102769709B (zh) | 一种用于向用户提供服务联系信息的方法与装置 | |
CN102567026B (zh) | 移动应用构建系统和移动应用构建方法 | |
CN105577446A (zh) | 一种轻量级嵌入式网络管理系统和方法 | |
CN112149079A (zh) | 基于微服务架构的规划评审管理平台及用户访问授权方法 | |
CN102480480B (zh) | 一种普适计算环境下的资源调度方法 | |
CN1270229C (zh) | 基于动态内核实现跨地址空间创建构件对象的方法 | |
CN109976736A (zh) | 降低系统业务模型复杂性的统一平台应用框架 | |
Dai | Design and implementation of ESB based on SOA in power system | |
CN102664952A (zh) | 一种对嵌入式设备集群管理及监控的方法 | |
CN202798801U (zh) | 一种用于实现分布式数据交互的通用性通讯系统 | |
CN103684904A (zh) | 基于ip三网融合网络监控系统 | |
CN104615815A (zh) | 一种并行模型的消息传输方法及系统 | |
CN104980510B (zh) | 一种corba分布式应用的透明集群化的方法 | |
CN104243573A (zh) | 一种支持可穿戴设备间数据与服务的协同方法 | |
CN100464303C (zh) | 构件化软件系统中实现分布式业务逻辑计算的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150107 Termination date: 20181126 |
|
CF01 | Termination of patent right due to non-payment of annual fee |