根据度量模式管理设备的系统和方法.pdf

上传人:e1 文档编号:681140 上传时间:2018-03-04 格式:PDF 页数:40 大小:1.87MB
返回 下载 相关 举报
摘要
申请专利号:

CN200410057603.1

申请日:

2004.08.20

公开号:

CN1599331A

公开日:

2005.03.23

当前法律状态:

驳回

有效性:

无权

法律详情:

发明专利申请公布后的驳回IPC(主分类):H04L 12/24公开日:20050323|||实质审查的生效|||公开

IPC分类号:

H04L12/24

主分类号:

H04L12/24

申请人:

国际商业机器公司;

发明人:

威廉·克里斯·伯丁; 迈克尔·约翰·布克哈特; 丹尼尔·吉恩·艾森豪尔; 丹尼尔·马克·舒玛切; 托马斯·詹姆士·沃森

地址:

美国纽约

优先权:

2003.08.29 US 10/651,724

专利代理机构:

中国国际贸易促进委员会专利商标事务所

代理人:

李德山

PDF下载: PDF下载
内容摘要

本发明的示例性实施例包含用于管理网络内的设备的方法。该实施例包含在网络内接收多个不同用户度量并确定在网络内接收的多个不同用户度量是否与预定的度量模式匹配。如果在网络内接收的多个不同用户度量与预定度量模式匹配,则该实施例还包含根据预定度量模式识别一个动作,并且在网络内执行该动作。在典型的实施例中,预定度量模式包含多个预定通用度量。

权利要求书

1.  一种用于管理网络内的设备的方法,该方法包括:
在网络内接收多个不同用户度量;
确定网络内接收的多个不同用户度量是否与预定度量模式匹配;
如果网络内接收的多个不同用户度量与预定度量模式匹配,则根据预定度量模式识别动作;以及
在网络内执行该动作。

2.
  如权利要求1所述的方法,其中在网络内接收多个不同用户度量的步骤包括从度量传感器接收多个不同用户度量。

3.
  如权利要求1所述的方法,其中预定度量模式包括多个预定通用度量。

4.
  如权利要求1所述的方法,其中确定网络内接收的多个不同用户度量是否与预定度量模式匹配的步骤包括把多个不同用户度量与和一个度量模式相关的多个预定通用度量相比较。

5.
  如权利要求1所述的方法,其中根据预定度量模式识别动作的步骤包括从与预定度量模式相关的动作列表中检索动作ID。

6.
  如权利要求1所述的方法,其中在网络内执行动作的步骤包括识别代表设备的设备类。

7.
  如权利要求1所述的方法,其中在网络内执行动作的步骤包括识别设备的通信类。

8.
  一种用于管理网络内的设备的系统,该系统包括:
用于在网络内接收多个不同用户度量的装置;
用于确定网络内接收的多个不同用户度量是否与预定度量模式匹配的装置;
用于在网络内接收的多个不同用户度量与预定度量模式匹配的情况下,根据预定度量模式识别动作的装置;以及
用于在网络内执行该动作的装置。

9.
  如权利要求8所述的系统,其中用于在网络内接收多个不同用户度量的装置包括用于从度量传感器接收多个不同用户度量的装置。

10.
  如权利要求8所述的系统,其中预定度量模式包括多个预定通用度量。

11.
  如权利要求8所述的系统,其中用于确定网络内接收的多个不同用户度量是否与预定度量模式匹配的装置包括用于把多个不同用户度量与和一个度量模式相关的多个预定通用度量相比较的装置。

12.
  如权利要求8所述的系统,其中用于根据预定度量模式识别动作的装置包括用于从与预定度量模式相关的动作列表中检索动作ID的装置。

13.
  如权利要求8所述的系统,其中用于在网络内执行动作的装置包括用于识别代表设备的设备类的装置。

14.
  如权利要求8所述的系统,其中用于在网络内执行动作的装置包括用于识别设备的通信类的装置。

15.
  一种用于管理网络内的设备的计算机程序产品,该计算机程序产品包括:
记录介质;
记录在记录介质上、用于在网络内接收多个不同用户度量的装置;
记录在记录介质上、用于确定网络内接收的多个不同用户度量是否与预定度量模式匹配的装置;
记录在记录介质上、用于在网络内接收的多个不同用户度量与预定度量模式匹配的情况下,根据预定度量模式识别动作的装置;以及
记录在记录介质上、用于在网络内执行该动作的装置。

16.
  如权利要求15所述的计算机程序产品,其中,记录在记录介质上、用于在网络内接收多个不同用户度量的装置包括记录在记录介质上、用于从度量传感器接收多个不同用户度量的装置。

17.
  如权利要求15所述的计算机程序产品,其中预定度量模式包括多个预定通用度量。

18.
  如权利要求15所述的计算机程序产品,其中记录在记录介质上、用于确定网络内接收的多个不同用户度量是否与预定度量模式匹配的装置包括记录在记录介质上、用于把多个不同用户度量与和一个度量模式相关的多个预定通用度量相比较的装置。

19.
  如权利要求15所述的计算机程序产品,其中记录在记录介质上、用于根据预定度量模式识别动作的装置包括记录在记录介质上、用于从与预定度量模式相关的动作列表中检索动作ID的装置。

20.
  如权利要求15所述的计算机程序产品,其中记录在记录介质上、用于在网络内执行动作的装置包括记录在记录介质上、用于识别代表设备的设备类的装置。

21.
  如权利要求15所述的计算机程序产品,其中记录在记录介质上、用于在网络内执行动作的装置包括记录在记录介质上、用于识别设备的通信类的装置。

说明书

根据度量模式管理设备的系统和方法
技术领域
本发明的技术领域是数据处理,更具体地是用于管理网络内设备的方法,系统及产品。
背景技术
传统网络包含各种设备。用户通常根据用户当前条件使用不同设备,或调整设备的具体设置。即,用户的当前条件通常促使用户改变设备的设置,使得设备以对用户当前条件更积极有利的方式操作。例如,强光可能干扰患头痛的用户。用户可以将灯光调暗,或关灯,使得灯光不再干扰用户。然而,传统的网络设备需要用户干预以根据用户条件单独管理具体设备。如果存在一种根据用户条件管理网络内设备、不需要用户干预的方法,则很有利。
发明内容
本发明的示例性实施例包含管理网络内设备的方法。该实施例包含在网络内接收多个不同(disparate)用户度量并确定在网络内接收的多个不同用户度量是否与预定的度量模式(metric pattern)匹配。如果在网络内接收的多个不同用户度量与预定度量模式匹配,则该实施例还包含根据预定度量模式识别一个动作,并且在网络内执行该动作。在典型的实施例中,预定度量模式包含多个预定通用度量(genericmatric)。
在许多实施例中,在网络内接收多个不同用户度量包含从度量传感器(metric sensor)接收多个不同用户度量。在某些实施例中,确定在网络内接收的多个不同用户度量是否与预定度量模式匹配包含把多个不同用户度量与和一个度量模式相关的多个预定通用度量进行比较。在许多实施例中,根据预定度量模式识别一个动作包含从与预定度量模式相关的一个动作列表中检索一个动作ID。
在典型实施例中,在网络内执行动作包含识别代表设备的设备类(device class)。在某些实施例中,在网络内执行动作包含识别设备的通信类(communication class)。
本发明的上述及其他目的,特性及优点从下列更具体的如附图所示的本发明的示例性实施例的描述中可以理解,其中类似附图标记通常代表本发明的示例性实施例的类似部分。
图1是图解用于实现根据本发明的管理设备的方法的示例性体系结构的模块图。
图2是图解示例性网关的模块图。
图3是图解用于实现根据本发明的管理网络内设备的方法的示例性类的模块图。
图4是图解图3的某些示例性类之间的示例性关系的类关系图。
图5是图解根据本发明的管理设备的示例性方法的数据流图。
图6是图解执行一个动作的示例性方法的数据流图。
介绍
在本说明书中,大部分是针对管理设备的方法来描述本发明的。然而,本领域技术人员会认识到,包含根据公开的方法操作的适当编程装置的任何计算机系统也在本发明的范围内。适当编程装置包含用于指示计算机系统执行本发明方法的步骤的任何装置,包含例如,由连接到计算机存储器的处理单元及运算逻辑电路组成的系统,其中系统具有在计算机存储器中进行存储的能力,计算机存储器包含被构造成用于存储数据及程序指令,即由处理单元执行的本发明方法的编程步骤的电子电路。
本发明还可以体现为计算机程序产品,例如磁盘或其它记录介质,用于任何适当的数据处理系统。计算机程序产品的实施例可以通过用于机器可读信息的任何记录介质的使用来实现,所述记录介质包含磁介质,光学介质,或其它适当介质。本领域技术人员会立即认识到,具有适当编程装置的任何计算机系统将能够执行如程序产品所体现的本发明方法的步骤。本领域技术人员会立即认识到,尽管在此说明书中描述的大部分示例性实施例是面向在计算机硬件上安装及执行的软件,然而,作为固件或作为硬件实现地可选实施例也在本发明的范围内。
定义
“802.11”是指由IEEE开发的针对无线LAN技术的系列规范。802.11规定无线客户端及基站之间,或两个无线客户端之间的空中无线接口。
“API”是“应用编程接口”的缩写。API是一组用于建立软件应用的例程,协议及工具。
“蓝牙(Bluetooth)”是指针对LAN或其它网络上的客户端设备中间,及客户端设备和资源之间的RF连接的短程无线技术的行业规范。一个称作蓝牙特殊兴趣小组的管理主体测试和验证设备是符合蓝牙要求的(Bluetooth compliant)。蓝牙规范包括提供设计规范的“基础核心(Foundation Core)”,及提供互操作性准则的“基础协议样板(Foundation Profile)”。
“连接以进行数据通信”是指任何形式的数据通信,无线,802.11b,蓝牙,红外,射频,网际协议,HTTP协议,电子邮件协议,联网,直接连接,专用电话线,拨号,与RS-232(EIA232)或通用串行总线的串行连接,硬连线并行端口连接,根据电力线协议的网络连接,及其它形式的本领域技术人员会想到的用于数据通信的连接。用于数据通信的连接包含用于数据通信的网络连接。可用于本发明的不同实施例的网络的例子包含有线网络,企业内部网,企业外部互联网,因特网,局域网,广域网,及其它本领域技术人员会想到的网络结构。在电视频道,有线电视频道,视频提供商,电信源等等中间的任何网络连接的使用均在本发明的范围内。
“驱动程序”是指控制设备的程序。设备(打印机,磁盘驱动器,键盘)通常具有驱动程序。驱动程序充当设备和使用设备的软件程序之间的译码器。每个设备具有其驱动程序知道的一组特定命令。软件程序通常通过使用通用命令来访问设备。因此,驱动程序从程序接受通用命令并且接着把它们转换成设备的特定命令。
″字段″-在本说明书中,通常被用作同义词的术语“字段”及“数据单元”除非在上下文中专门指出,否则均指示个体的数字数据单元。数据单元的汇集被称为“记录”或“数据结构”。记录的汇集被称为“表”或“文件”。文件或表的汇集被称为“数据库”。包含成员方法,函数或软件例程以及数据单元的复合数据结构被称为“类”。类的实例被称为“对象”或“类对象”。
“HAVi”表示‘家庭音频视频互操作’,是一个尤其针对家庭娱乐环境的厂商中立音视频标准的名称。HAVi允许不同家庭娱乐及通信设备(诸如VCR,电视,立体声音响,安全系统,及视频监视器)被连接在一起并且由一个主设备,诸如服务网关,PC或电视来控制。通过使用IEEE 1394,即‘火线(Firewire)’规范作为互连介质,基于定义的连接及通信协议及API,HAVi允许来自不同提供商的产品彼此兼容。由HAVi的分布式应用系统提供的服务包含寻址模式及消息传送,用于发现资源的查找,记入(posting)及接收本地或远端事件,及流式传送和控制同步数据流。
“HomePlug”表示家庭插电联盟。HomePlug是一个非盈利组织,旨在为高速家庭电力线网络产品及服务开放规范的建立提供论坛。HomePlug规范被设计用于通过使用电力线联网标准的住宅电源插座传送因特网通信及多媒体到住宅。
HomePlug协议允许支持HomePlug的设备使用射频信号(RF)在输电线上通信。HomePlug协议使用正交频分多路复用(OFDM)来分割RF信号为多个较小子信号,该子信号接着在输电线上以不同频率从一个支持HomePlug的设备发送到的另一个支持HomePlug的设备。
“HTTP”表示‘超文本传送协议’,即环球网的标准数据通信协议。
“ID”是“标识”的缩写,在本说明书中通常与数据单元中表示的名词结合使用,使得‘用户ID’表示用户标识并且‘userID’是存储用户标识的数据单元的名称。对于“ID”的使用的其它例子:“量度ID”表示度量标识并且“metricID”是存储度量标识的数据单元的名称。
“IEEE 1394”是支持高达400Mbps(400百万位每秒)数据传送速率的外部总线标准。最初开发IEEE 1394的Apple公司使用商标名称“Firewire”。其它公司使用诸如i.link及Lynx的其它名称描述其1394产品。
单个1394端口可以用于连接多达63个外部设备。除高速之外,1394还支持同步数据传送,即以保证速率传送数据。对于需要实时传送高级数据,诸如视频的设备,这很理想。
“因特网”是一个连接数百万使用“网际协议”或“IP”作为其网络协议堆栈的网络层的全球网络。因特网被设计为非集中式的。因特网上的每台计算机是独立的。因特网上每台计算机的操作员可以选择使用哪个因特网服务,及哪个本地服务以对全球因特网团体可用。存在各种访问因特网的方式。许多在线服务,诸如美国在线,提供对某些因特网服务的访问。也可以通过商业因特网服务提供商(ISP)得到访问。“互联网(internet)”(首写字母非大写)是使用IP作为其网络协议堆栈的网络层的任何网络。
“JAR”是“Java档案文件”的缩写。JAR是用于捆扎Java应用程序使用的部件的文件格式。由于许多部件(.class文件,图像,声音,等)可以被打包成单个文件,所以JAR文件简化了下载applet。JAR还支持进一步降低下载时间的数据压缩。依照惯例,JAR文件以“.jar”扩展名结束。
“JES”表示Java嵌入服务器。JES是OSGi的商用实现,其中OSGi提供用于开发,部署及安装针对嵌入设备的应用和服务的框架。
“LAN”是“局域网”的缩写。LAN是横跨相对较小区域的计算机网络。许多LAN被限制于单独的建筑或建筑群。然而,LAN可以通过电话线及无线电波被连接到相距任何距离的其它LAN。通过这种方式连接的LAN的系统被称作广域网(WAN)。因特网是WAN的一个例子。
“LonWorks”是可从Echelon获得的联网平台。LonWorks目前用于诸如设备控制及光控制的不同网络应用。LonWorks联网平台使用称作“LonTalk”的协议,该协议被嵌入到安装在支持LonWorks的设备内的“神经元芯片”中。
神经元芯片是具有多个处理器,读写及只读存储器(RAM及ROM),及通信及I/O子系统的片上系统。只读存储器包含操作系统,LonTalk协议,及I/O函数库。芯片具有非易失存储器,用于配置数据及应用程序,所述配置数据及应用程序可以通过LonWork网络下载到设备。神经元芯片提供标准OSI网络模型的前6层。即,神经元芯片提供物理层,数据链路层,网络层,传送层,会话层,及表示层。
神经元芯片不提供应用层编程。LonWork网络的应用程序用通过称作“神经元C”的编程语言编写。用神经元C编写的应用程序通常是事件驱动的,因此,导致降低网络传输业务量。
“OSGI”是指开放服务网关倡议协会,一个开发服务网关规范(包含通过服务网关交付服务捆绑,提供符合要求的数据通信的软件中间件及服务的规范)的行业组织。开放服务网关规范是一个基于Java的应用层框架,其为服务提供商,网络运营商设备制造商,及设备厂商提供厂商中立的应用及设备层API和函数。
“SMF”表示可从IBM获得的“服务管理框架(ServiceManagement FrameworkTM)”。SMF是针对服务网关上网络传送应用的管理的OSGi的商用实现。
“USB”是“通用串行总线”的缩写。USB是支持12Mbps数据传送速率的外部总线标准。一个单独USB端口可以用于连接多达127个外部设备,诸如鼠标,调制解调器,及键盘。USB还支持即插即用安装及热插拔。
“WAP”表示无线应用协议,即用于手持无线设备的协议。使用WAP的无线设备的例子包含移动电话,寻呼机,双向射频设备,及手持计算机。WAP支持许多无线网络,并且许多操作系统支持WAP。为手持设备专门定制的操作系统包含PalmOS,EPOC,Windows CE,FLEXOS,OS/9,及JavaOS。使用显示器并访问因特网的WAP设备运行“微型浏览器”。微型浏览器使用可适应手持设备的低存储器约束及无线网络的低带宽约束的小文件尺寸。
“X-10”表示X-10协议。典型的支持X-10的设备使用X-10发送器及X-10接收器通过AC输电线路,例如住宅内已有的AC线路进行通信。X-10发送器及X-10接收器使用射频(RF)信号交换数字信息。X-10发送器及X-10接收器用表示数字信息的短RF脉冲串进行通信。
在X-10协议中,数据通过称作帧的数据串发送。帧开始于一个指定为“1110”的4位开始代码。开始代码之后,帧标识一个具体域,例如用4位“住宅代码”标识住宅,并且用4位“设备代码”标识域内的设备。帧还包含8位的命令串,以标识一个具体预定命令,诸如“开”,“关”,“调暗”,“调亮”,“状态开”,“状态关”,及“状态请求”。
示例性体系结构
图1是用于实现根据本发明的实施例、用于管理设备的方法的示例性体系结构的模块图。图1的体系结构包含一个域(118)。在本说明书中,术语“域”表示一个具体联网环境。不同域的例子包含家庭网络,汽车网络,办公室网络,及其它本领域技术人员会想到的网络。
图1的域(118)包含服务网关(130)。在某些示例性体系结构中,服务网关(130)是一个OSGi兼容服务网关(130)。
虽然在说明书中使用OSGi描述用于管理设备的方法的示例性实施例,然而可使用许多其它应用及框架实现基于本发明的管理设备的方法,并且因此这些应用及框架也在本发明的范围内。诸如JES及SMF的OSGi的商用实现也用于实现管理设备的方法。
在图1的示例性体系结构中,服务网关(126)包含服务框架(126)。图1的服务框架(126)是用于运行“服务”的驻留平台。服务是用于在OSGi中创建应用的主构建模块。OSGi服务框架(126)用Java编写,因此通常在Java虚拟机(JVM)(150)上运行。
图1的示例性体系结构包含一个DML(108)。“DML”(108)是域中介层(domain mediation layer)的缩写。在图1的体系结构的许多实施例中,DML(108)是用于实现根据本发明的管理设备的方法的应用软件。在本发明的某些实施例中,DML是符合OSGi要求(OSGicompliant)的应用软件,并且因此实现为安装在服务框架(126)上的一个服务或一组封装成包的服务。在这个规范中,DML通常在OSGi的上下文中讨论。然而,OSGi的讨论是用于解释而非限制。事实上,根据本发明的不同实施例的DML可以用本领域技术人员能想到的任何编程语言实现,例如C,C++,COBOL,FORTRAN,BASIC,等等,并且用除了Java之外的语言开发的DML被直接安装在除JVM之外的操作系统或操作环境上。
在图1的示例性体系结构中,服务网关(130)与度量传感器(406)连接以进行数据通信。度量传感器(406)是一个读取用户条件指示,并且根据用户条件指示产生用户度量的设备。“用户条件指示”是用户条件的可计量方面及测量该方面的量(quantity)。例如,用户条件的可计量方面是华氏99.2度的体温。用户条件的可计量方面的例子包含体温,心率,血压,位置,皮肤电反应,及本领域技术人员能想到的其它方面。
“用户度量”是表示用户条件指示的数据结构。在根据本发明用于管理设备的方法的许多例子中,用户度量被实现为包含userID字段,metricID字段及度量值字段的数据结构,类或对象。典型的userID字段标识其条件指示由该度量来表示的用户。典型的metricID字段标识该度量表示的用户条件的可计量方面,例如血压,心率,位置,或皮肤电反应。典型的度量值字段存储测量用户条件的方面的量。
可用作或适用作度量传感器的可携带无线心率监视器,皮肤电反应监视器,眼睛响应监视器,及呼吸监视器目前可从Quibit系统公司得到。来自Body Trends公司的“Polar”系列心率监视器,及来自Sentec公司的磁致弹性胃pH传感器是可用作或适用作度量传感器的可获得的生物医学传感器的其它例子。
为了使诸如生物医学传感器的传统传感器可用作在包含多个用户的域中发送多个度量类型的度量传感器,传感器最好不仅发送它测量的每个方面的值,而且还发送用户ID及度量ID。用户ID是有用的,因为本发明的典型实施例包含能同时代表许多用户管理设备的DML。度量ID是有用的,因为单个用户可能同时使用不止一个度量传感器,或使用一个能监视及发送有关不止一个用户条件方面的数据的度量传感器。根据某个无线数据通信协议,所有无线传感器至少发送一个度量值。即使任何具体的“现有”传感器不发送用户ID或度量ID,然而仅仅通过较小地修改其控制软件,这种传感器易于修改以在其发送中包含用户ID及度量ID。
尽管期望多数DML支持度量ID及用户ID,在本发明范围内的某些情况下,即使传感器在其输出遥测中不提供度量ID及用户ID,仍然可以使用现有传感器作为度量传感器。考虑只有单独一个人居住于具有由DML控制或管理的设备的域中的例子,其中该DML仅跟踪例如心率的单个度量。由于只接收一种度量,所以仅针对唯一一个用户跟踪一个度量的DML的操作可以不需要在从度量传感器接收的遥测中的度量类型代码。在这个例子中,严格地讲,诸如来自Body Trends的“Polar”传感器的现有支持蓝牙的心率传感器可作为度量传感器。提供这个例子仅出于解释的目的,由于实际上期望根据本发明实施例的多数DML会有效及有利地代表不止一个用户(因此在其遥测中需要用户ID)管理不止一个类型的度量(因此在其遥测中需要度量ID码)。
在许多本发明的实施例中,度量传感器有利地与服务网关(130)无线连接以进行数据通信。在许多可选实施例中,度量传感器通过服务网关使用诸如蓝牙,802.11,HTTP,WAP,或本领域技术人员想到的任何其他协议的各种协议向DML发送用户度量。
在图1的示例性体系结构中,域(118)包含通过LAN(105)与服务网关(130)连接以进行数据通信的设备(316)。在本发明的许多实施例中,域(118)会包含许多设备。例如,一个家庭域可以包含具有电视,许多灯,电冰箱,冷冻箱,咖啡壶,洗碗机,干衣机,CD播放器,DVD播放器,个人录像机,或本领域技术人员想到的任何其他网络设备的家庭网络。为了容易解释,图1的示例性体系结构只图解3个设备(316),但是在本发明的范围内可以使用任何数量的设备。
为了管理设备(316),DML通常具有针对该设备、包含获取及设置该设备的属性的存取器方法(accessor method)的设备类,及在某些情况下,提供与设备通信所需的协议的通信类。在图1体系结构的某些例子中,DML预先安装了针对DML支持的许多设备的设备类及通信类。
即使DML不具有针对具体设备的预安装的设备类及通信类,DML仍可以用若干方式获得设备类及通信类。DML获得设备的设备类及通信类的一种方式是从设备读取设备类及通信类。这需要该设备安装足够的存储器以存储设备类及通信类。DML也可以从不包含安装在其上的设备类或通信类的设备获得设备类及通信类。DML获得设备类及通信类的一种方法是从设备读取设备ID,在因特网中搜索设备类及通信类,并且下载它们。DML获得设备类及通信类的另一种方法是从设备读取网络位置,以从该网络位置下载设备类及通信类。已经描述了获得根据本发明管理设备所需的设备类及通信类的三种方式。本领域技术人员也可以想到其它方法。
图1的示例性体系结构包含通过WAN(104)与服务网关(130)连接以进行数据通信的非域实体(102)。“非域实体”是任何计算设备或网络设施,其为了数据通信而连接到域但不在域内。短语“非域实体”是广义的,并且其被包含在图1的体系结构中表明在用于实现根据本发明的管理设备的方法的体系结构的许多实施例中,指定域为了数据通信与外部非域实体连接。
非域实体的例子是域内安装的设备(316)的厂商的Web服务器(在域外)。厂商可以运营可用于下载设备的驱动程序,设备的更新软件或设备的任何其他信息或软件的Web站点。设备的驱动程序,更新软件,信息或软件可通过WAN和服务网关下载到设备。
图2是用于实现基于本发明的管理设备的方法的示例性服务网关(130)的模块图。在用于本发明实施例中的某些示例性体系结构中,图2的服务网关(130)是OSGi兼容服务网关(130)。虽然在本说明书中使用OSGi描述了用于管理设备的方法的示例性实施例,然而除了OSGi之外的许多其它应用及框架可用于实现基于本发明的管理设备的方法,并且因此在本发明的范围内。诸如JES及SMF的OSGi的商业实现也用于实现本发明的方法。
OSGi表示“开放服务网关倡议联盟”。OSGi规范是基于Java的应用层框架,该应用层框架使用在家庭,汽车及其它环境中工作的任意网络通信协议为各种设备提供厂商中立的应用和设备层API与函数。OSGi结合了各种网络技术,例如以太网,蓝牙,“家庭音频及视频互操作性标准”(HAVi),IEEE 1394,通用串行总线(USB),WAP,X-10,Lon Works,HomePlug及各种其他网络技术。从OSGi Web站点www.osgi.org可免费下载OSGi规范。
图2的service网关(130)包含服务框架(126)。在许多示例性实施例中,服务框架是OSGi服务框架(126)。OSGi服务框架(126)用Java编写,因此通常在Java虚拟机(JVM)上运行。在OSGi中,图1的服务框架(126)是用于运行“服务”(124)的驻留平台。在本说明书中,根据上下文,术语“服务”或“各服务”通常指符合OSGi要求的服务。
服务(124)是用于根据OSGi创建应用的主构建模块。服务(124)是一组实现某个特性的Java类及接口。OSGi规范提供若干标准服务。例如,OSGi提供可以响应来自HTTP客户端的请求的标准HTTP服务。
OSGi也提供一组称作设备访问规范(Device Access Specification)的标准服务。设备访问规范(“DAS”)提供用于标识连接到服务网关的设备,搜索该设备的驱动程序,及安装该设备的驱动程序的服务。
OSGi中的服务(124)与服务(124)的执行所需的其它文件,图像及资源一起封装在“包(bundle)”(121)中。包(121)是包含一或多个服务实现(124),启动器类(activator class)(127),及声明文件(manifestfile)(125)的Java档案文件或“JAR”文件。启动器类(127)是被服务框架(126)用于开始及停止一个包的Java类。声明文件(125)是描述包(121)的内容的标准文本文件。
在图2的示例性体系结构中包含DML(108)。在本发明的许多实施例中,DML是执行管理设备的方法的OSGi服务。图2的DML(108)被封装在包(121)内,并且安装在服务框架(126)上。
OSGi中的服务框架(126)也包含服务注册表(serviceregistry)(128)。对于安装在框架(126)上并且在服务注册表(128)上注册的每个包(121),服务注册表(128)包含服务注册(129),该服务注册包含服务名称及实现服务的类的实例。包(121)可以请求不包含在包(121)中但注册在框架服务注册表(128)上的服务。为了找到服务,包(121)对框架的服务注册表(128)执行查询。
示例性类及类协作
图3是图解用于实现根据本发明的管理设备的方法的示例性类的模块图。“类”是复合数据结构,通常包含成员方法,函数或软件例程,以及数据单元。类的实例被称为“对象”或“类对象”。“方法”或“成员方法”是由对象执行的处理。图3的示例性类仅用于帮助理解本发明,而不用于限制。虽然通常根据Java在本说明书中讨论根据本发明的管理设备的方法,然而Java只用于解释,不用于限制。事实上,根据本发明的管理设备的方法可以用许多编程语言实现,其中编程语言包含C++,Smalltalk,C,Pascal,Basic,COBOL,Fortran等等本领域技术人员会想到的语言。
图3的类图包含示例性DML类(202)。图3的示例性DML类(202)的实例提供用于根据本发明执行管理设备的步骤的成员方法。图3的示例性DML类具有start()方法,使得DML能够作为OSGi框架中的服务而被启动。尽管只针对此DML示出一个成员方法,但是事实上根据具体实施例的需要,DML通常具有更多成员方法。图3的DML类也包含通常由DML的构造函数创建、用于存储对服务类的引用的成员数据单元。在这个例子,DML(202)提供用于对度量服务(552),度量模式服务(553),通信服务(554),动作服务(560),及设备服务(556)的引用的存储字段。
图3的度量服务类(204)提供从DML接收用户度量并且响应从DML接收用户度量而创建度量类的实例的成员方法。图3的度量服务类(204)包含createMetric(userID,matricID,mericValue)成员方法(562)。在某些实施例中,createMetric()成员方法是以度量ID为参数的“工厂”方法(factory method),其根据度量ID创建及返回度量对象。响应从DML获取用户度量,图3的度量服务类(204)的示例性实例创建度量类的实例并且向DML返回对新度量对象的引用。
严格地讲,本发明不存在需要DML通过“工厂”方法创建度量对象的限制。例如DML可以进行如下列伪码段所示的处理:
  //在输入流上接收度量消息  //从度量消息中提取用户ID,  //度量ID及度量值,使得:  int userID=//来自度量消息的用户ID  int metricID=//来自度量消息的度量ID  int metricValue=//来自度量消息的度量值  Metric aMetric=new Metric();  aMetric.setUserID(userID);  aMetric.setMetricID(metricID);  aMetric.setMetricValue(metricValue);  aMetric.start();


这个例子创建度量对象并且使用存取器方法加载其成员数据。然而此方法针对每个度量提供完全相同的类的度量对象,并且存在度量有利地使用不同具体类结构的情况。在针对例如心率及血压的度量的情况下,两种度量值可以编码为整数,其中针对例如来自GPS收发器的地表极坐标的度量值可以被有利编码于更复杂的数据结构中,甚至例如具有其自身的位置类(Location class)。使用“工厂”方法方便了不止一个度量类的使用。使用“工厂”方法创建度量对象的DML可以进行如下列示例性伪码段所示的处理:
//在输入流上接收度量消息
//从度量消息中提取用户ID,
//度量ID及度量值,使得:
int userID=//来自度量消息的用户ID
int metricID=//来自度量消息的度量ID
int metricValue=//来自度量消息的度量值
Metric aMetric=MetricService.createMetricObject(userID,metricID,metricValue);
aMetric.start();
这个例子依赖“工厂”方法createMetric()把参数数值设置到新度量对象中。度量对象的度量服务及“工厂”方法可以实现为所示下列伪码段:
  //  //度量服务类  //  class MetricService  {  public static Metric createMetricObj ect(userID,metricID,metricValue)  {   Metric aMetric;   switch(metricID)   {   case 1:aMetric=   new HeartRateMetric(userID,metricID,metricValue);   break;   case 2:aMetric=<!-- SIPO <DP n="14"> --><dp n="d14"/>   new BloodPressureMetric(userID,metricID,metricValue);   break;   case 3:aMetric=   new GPSMetric(userID,metricID metricValue);   break;   }//switch()结束   return aMetric;   }//createMetric()结束  }//类MetricService结束

在这个例子中,MetricService实现包含“工厂”方法的所谓参数化“工厂”设计模式。在这个例子中,“工厂”方法是名为“CreateMetricObject()”的成员方法。CreateMetricObject()接受三个参数,即用户ID,度量ID,及度量值。CreateMetricObject()根据度量ID实现一个switch语句以选择及实例化特定具体度量类。在这个例子中,具体度量类是HeartRateMetric,BloodPressureMetric,及GPSMetric,各个均扩展了Matric基类。CreateMetricObject()向调用DML返回对新度量对象的引用。来自DML的调用:
Metric aMetric=MetricService.createMetricObject(userID,mehicID,metricValue);
是多态的,其中利用对基类Matric的引用,使得调用DML既不知道又不在意哪个度量对象类被实际实例化并且返回。下列是扩展Matric基类以定义具体(concrete)度量类的例子,其中具体度量类表示在地表上用户位置并且扩展了Matric基类:
  Class GPSMetric extends Metric{<!-- SIPO <DP n="15"> --><dp n="d15"/>  int myUserID;  int myMetricID  class GPSLocation{   Latitude myLatitude;   Longitude myLongitude;  }  Class Latitude{   String direction;   int degrees;   int minutes;   int seconds;  }  Class Longitude{   String direction;   int degrees;   int minutes;   int seconds;  }  GPSLocation myLocation;  GPSMetric(int userID,int metricID GPSLocationmetricValue){   myUserID=userID;   myMetricID=metricID:   myLocation=metricValue;   }  }

此示例性具体类GPSMetric提供纬度及经度的存储。GPSMetric提供构造函数GPSMetric(),其采用整数参数以设置用户ID及度量ID,但期望metricValue参数是对GPSLocation对象的引用,而GPSLocation对象则提供对于纬度及经度的成员数据存储。
图3的类图包含示例性度量类(206)。图3的示例性度量类(206)表示用户度量。用户度量包括描述用户条件指示的数据。用户条件指示是用户条件的可计量方面及测量该方面的量。用户条件的可计量方面的例子包含体温,心率,血压,位置(location),皮肤电反应,及本领域技术人员能想到的用户条件的任何其他方面。
图3的示例性度量类(206)包含用户ID字段(486),度量ID字段(488),数值字段(490)。用户ID字段(486)标识用户。度量ID(488)字段标识度量类的实例所表示的用户度量。即,用户度量的类型。数值字段(490)包含用户度量的值。
此示例性度量类(206)是可以在各种实施例中用作通用类(genericclass)的类的例子,其实例可以用于存储或表示具有如上所述相同或类似成员数据单元的不止一种类型的度量。可选地,在其它实施例中,诸如此示例性度量类(206)的类可以被用作由具体导出类扩展的基类,其中每个导出类可以具有广泛不同的成员数据类型,如上面所述。
图3的示例性类图包含度量模式服务(252)。图3的度量模式服务包含成员方法selectMetricPattern()(254)。在许多实施例中,selectMetricPattern()(254)以当前保持在用户的度量高速缓存中的多个不同用户度量的度量ID和度量值为参数。selectMetricPattern()通常把多个度量ID及度量值与存储在度量模式数据库中、构成各种度量模式的多个预定通用度量相比较。如果多个不同用户度量的度量ID及相应度量值与构成所存储的度量模式的度量ID及度量值匹配,则selectMetricPattern()向其调用方返回标识用户的预定度量状态的度量模式。
图3的示例性类图包含度量模式类(256)。度量模式表示用户的度量状态。通常,度量模式包含预定通用度量的集合,即共同表示用户的预定度量状态。例如,通用心率及血压度量的集合可以表示对许多恐慌用户共同的度量状态。类似地,预定通用度量的另一集合可以表示对许多生气用户共同的度量状态。
图3的度量模式(256)包含唯一标识度量模式的模式ID字段(258)。在图3的度量模式类(256)中,预定通用度量的集合被实现为度量列表(260)。度量列表是数据结构,例如Java列表容器,散列表(hashtable)或包含诸如图3的预定通用度量(207)的多个预定通用度量的任何其他数据结构。预定通用度量(207)是类似于用户度量(206),但不包含度量ID并且对许多用户通用或共同的的数据结构。
图3的示例性模式类也包含动作列表(622)的数据存储。动作列表是包含动作ID的数据结构,动作ID标识被用来管理设备以影响度量模式定义的用户度量的动作。例如,标识“生气”的用户度量状态的度量模式可以具有关联动作列表,该动作列表包含当被执行时导致打开用户汽车中的舒心音乐的动作的动作ID。
图3的类图包含动作服务类(217)。动作服务类包含实例化度量模式的动作列表,实例化动作对象,在动作列表中存储对动作对象的引用,及向调用者返回对动作列表的引用的成员方法,所有的成员方法可以如下列示例性伪码ActionService类所示来实现:
  //  //动作服务类  //  class ActionService  {   public static Action createActionList(MetricPattemID)  {   ActionList an ActionList=new ActionList();   int actionID;   //查找存储描述动作的数据的数据库动作记录   for(相关度量模式){   //从每个匹配动作记录中获得动作ID   actionID=//来自匹配数据库记录的动作ID<!-- SIPO <DP n="18"> --><dp n="d18"/>//*下面,动作构造函数从设备服务获得//由动作对象管理的设备列表   switch(actionID)   {   case 1:Action an-Actionl=new Actionl(actionID);   an ActionList.add(anAction1);   break;   case 2:Action anAction2=new Action2(actionID);   an ActionList.add(anAction2);   break;   case 3:Action anAction3=new Action3(actionID);   anActionList.add(anAction3);   break;   case 4:Action anAction4=new Action4(actionID);   anActionList.add(anAction4);   break;   case 5:Action anAction5=new Action5(actionID);   anActionList.add(anAction5);   break;   }//switch()结束   }//for()结束   return an Action List;   }//createActionListObject()结束  }//类ActionService结束

ActionService类中的createActionList()方法通过“ActionListanActionList=new ActionList()”针对用户度量模式实例化动作列表。createActionList()接着在数据库的动作记录表中搜索与其调用参数匹配的记录。对于表中的每个匹配的记录,createActionList()通过其switch语句实例化动作对象。switch语句为从动作记录表检索出的动作ID选择特定具体导出动作类。createActionList()通过“anActionList.add()”存储对动作列表中的每个动作对象的引用。createActionList()通过“return anActionList”返回对动作列表的引用。
图3的类图包含示例性动作类(216)。动作类的实例表示当被执行时导致设备的管理的动作。图3的示例性动作类包含动作ID字段(450)。示例性动作类(216)中的doAction()方法(456)被编程以从例如对DeviceService.createDeviceList()的调用中获得设备列表(222)。设备列表(222)是包含标识通过执行动作来管理的物理设备的多个设备ID的数据结构。接着Action.doAction()(456)通常也被编程以调用其设备列表中的每个设备的接口方法,以执行设备控制动作。
图3的类图包含设备服务类(218)。设备服务类提供产生设备列表并且返回对列表的引用、名为createDeviceList(actionID)的“工厂”方法。在这个例子中,createDeviceList()通过实例化设备列表,搜索设备列表以从具有匹配动作ID项的记录中得到设备ID,实例化每个设备类的具体导出设备类的设备对象,向设备列表加入对每个新设备对象的引用,并且向调用动作对象返回对设备列表的引用,以类似于上面描述的ActionService.createActionList()的方式操作。然而,在这个例子中,“工厂”方法createDeviceList()不仅从其支持数据表中检索设备ID,而且检索由每个实例化的设备对象控制的物理设备的网络地址或通信位置,如下列示例性伪码所示:
  //  //设备服务类  //  class DeviceService  {   public static Device createDeviceList(actionID)<!-- SIPO <DP n="20"> --><dp n="d20"/>   {   DeviceList aDeviceList=new DeviceList();   int deviceID;   //查找存储描述设备的数据库设备记录   for(/*匹配actionID的每个设备记录*/){   //从每个匹配设备记录获得设备ID及设备地址   deviceID=//来自匹配数据库记录的设备ID   deviceAddress=//来自匹配数据库记录的设备ID   //提示:下面,设备构造函数从设备服务获得   //由设备对象管理的设备的列表   switch(deviceID)   {   case 1:Device aDevice=newDevice1(CommsService,deviceAddress,deviceID);   break;   case 2:Device aDevice=new Device2(CommsServicedeviceAddress,deviceID);   break;   case 3:Device aDevice=new Device3(CommsServicedeviceAddress,deviceID);   break;   case 4:Device aDevice-new Device4(CommsServicedeviceAddress,deviceID);   break;   case 5:Device aDevice=new Device5(CommsServicedeviceAddress,deviceID);   break;   }//switch()结束   aDeviceList.add(aDevice);<!-- SIPO <DP n="21"> --><dp n="d21"/>   }//for()结束   return aDeviceList;   }//createActionListObject()结束  }//类deviceservice结束

设备服务(DeviceService)类中的createDeviceList()方法通过“DeviceList aDeviceList=new DeviceList()”针对度量实例化设备列表。createDeviceList()接着在数据库的设备记录表中搜索具有匹配其调用参数的动作ID的记录。对于表中的每个匹配记录,createDeviceList()通过其switch语句实例化设备对象,其中传递通信服务(CommsService),设备地址(deviceAddress),及设备ID(deviceID)三个参数。CommsService是对通信服务的引用,其中从该通信服务中设备对象可以获得对用于和由设备对象控制的物理设备进行的通信的通信对象的引用。DeviceAddress是从如上所述的设备表获得的由特定设备对象控制的物理设备的网络地址。switch语句针对从设备表检索的每个设备ID选择特定具体导出设备类。createDeviceList()通过“aDeviceList.add()”在设备列表中存储对每个设备对象的引用。createDeviceList()通过“return anActionList”返回对设备列表的引用。
图3的类图包含示例性设备类(214)。图3的示例性设备类(214)包含唯一标识通过执行动作来管理的物理设备的设备ID(deviceID)字段(472)。图3的示例性设备类(214)包含标识数据通信网络上物理设备的位置的地址字段(480)。图3的示例性设备类(214)提供通信字段(478),其针于对通信类实例的引用,其中该通信类实例实现数据通信协议以完成设备类实例和物理设备之间的通信。
图3的设备类包含属性字段(481),该属性字段包含设备当前属性的值。设备当前属性的例子是有关设备是“开”或“关”的指示。当前属性的其它例子包含指示设备的具体设置的值。图3的设备类也包含存取器方法(474,476),用于获取和设置物理设备的属性。虽然图3的示例性设备类只包含一个属性字段和用于获取和设置属性的存取器方法,然而许多用于实现本发明的方法的设备类可以支持不止一个属性。这样的类也可以包含属性ID字段和用于获取和设置设备类支持的每个属性的存取器方法。
图3的示例性类图包含通信服务类(219)。通信服务类(219)提供名为createCommsObject(deviceID,networkAddress)(574)的“工厂”方法,其中该“工厂”方法实例化用于实现数据通信协议以执行设备类实例和物理设备之间的通信的通信对象。createCommsObject()方法(574)在具有与其调用参数匹配的设备ID的通信类表的通信类记录中查找通信类ID。在许多实施例中,createCommsObject()方法(574)接着实例化通过如上所述switch语句识别的特定具体导出通信类,从其参数列表向构造函数传递networkAddress,使得新通信对象知道网络上新对象具有的地址以完成数据通信。每个具体导出通信类被设计成根据特定数据通信协议,如蓝牙,802.11b,Lonworks,X-10等等来实现数据通信。
图3的类图包含示例性通信基类(215)。在典型实施例中,从特定DML支持的每个数据通信协议的基类导出至少一个具体通信类。每个具体通信类实现通信设备对象和物理设备的特定数据通信协议。每个具体通信类通过重载(override)接口方法(482,484)以实现特定数据通信协议,从而实现根据一协议的实际数据通信。
通信类允许设备类(214)相对于与各种物理设备的通信所需的具体协议独立地进行操作。例如,用户住宅的一盏灯可以使用LonWorks协议通信,同时用户住宅的另一盏灯可以使用X-10协议通信。两盏灯可以由使用不同通信类的通信对象的相同设备类的设备对象来控制,其中一个通信类的通信对象实现LonWorks,另一个通信类的通信对象实现X-10。两种设备对象通过调用相同通信类接口方法,即send()(482)和receive()(484)来控制灯,其中既不了解也不在意事实上其通信对象使用不同协议。
图4是图解图3的某些示例性类中的示例性关系的类关系图。在图4的类关系图中,实箭头表示实例化。实箭头从实例化类指向被实例化类。在图4的类关系图中,虚线箭头表示引用。该箭头从被引用类指向其对象拥有对被引用类的引用的类。也就是说,一个面向对象的合成(composition)关系,即类之间的“具有(has-a)”关系通过带有虚线的箭头示出。
图4的示例性类关系图包含DML类(202)。DML类(202)的DML对象实例化度量服务类(204)的对象,度量模式服务类(252)的对象,动作服务类(217)的对象,设备服务类(218)的对象及通信服务类(219)的对象。
当DML从度量传感器接收度量(200)时,DML使用诸如下面的调用:
Metric aMetric=MetricService.createMetricObject(userID,metricID,metricValue)
导致度量服务(204)实例化度量类(206)的对象。度量对象具有对度量模式服务类(252)的对象及度量模式类(256)的对象的引用。
如图4的例子所示,度量模式服务(252)类的对象实例化度量模式类(256)的对象。度量模式对象具有对动作列表对象(622)的引用。
如图4的类关系图所示,动作服务(217)实例化动作列表(622)及动作类(216)的对象。用对每个实例化的动作(216)的引用来实例化动作列表(622)。用对设备服务(218)的引用实例化每个动作(216)。在基于本发明的方法的典型例子中,动作服务(217)使用诸如createActionList()的带参数“工厂”方法来实例化动作列表(622)和动作(216)。
在图4的例子中,设备服务(218)实例化设备列表类(222)的设备列表,并且实例化设备类(214)的设备对象。用对设备对象(214)的引用实例化设备列表(222)。用对通信服务(219)的引用来实例化设备对象(214)。在基于本发明的方法的典型例子中,设备服务(218)使用诸如createDeviceList()的带参数“工厂”方法来实例化设备列表(222)和设备对象(214)。设备服务(218)向动作(216)传递对设备列表(222)的引用。
在图4的例子中,通信服务(219)实例化通信类(215)的通信对象。在典型例子中,通信服务(219)使用诸如createCommsObject()的带参数“工厂”方法来实例化通信对象(215)。通信服务(219)向设备对象(214)传递对通信对象(215)的引用。
根据度量模式管理设备
图5是图解管理设备的示例性方法的数据流图。此方法包含接收(502)多个不同用户度量(206)。如上所述,“用户度量”包含描述用户条件指示的数据。“用户条件指示”是用户条件的可计量方面及测量该方面的量。用户条件的可计量方面的例子包含体温,心率,血压,位置,皮肤电反应,及本领域技术人员能想到的用户条件的任何其他方面。术语不同’用户度量表示不同种类的用户度量。即,通常也具有不同度量值的不同种类的用户度量。在本发明的典型实施例中,用户度量被实现成诸如图3的示例性用户度量(206)的用户度量数据结构或记录(206)。
在图5的方法中,接收(502)多个不同用户度量(206)的步骤包含从度量传感器(406)接收多个不同用户度量(206)。在图5方法的某些例子中,度量传感器(406)读取用户条件指示,根据用户条件指示产生用户度量,并向DML发送该用户度量。在许多实施例中,度量传感器使用例如蓝牙,802.11,HTTP,WAP,或本领域技术人员想到的任何其他协议的协议,以诸如图5的度量(206)的预定数据结构向DML发送用户度量。
在图5的方法中,接收(502)用户度量(305)的步骤包含把用户度量接收到度量高速缓冲存储器(305)中。即,通过DML接收用户度量并且接着存储在高速缓存中。在图5方法的许多实施例中,度量高速缓冲存储器(305)是对DML可用的高速缓冲存储器,以以利于执行根据本发明的管理设备的步骤。
图5的方法包含确定(504)不同用户度量(506)是否与预定度量模式(256)匹配。度量模式表示用户的度量状态。度量模式通常包含预定通用度量的集合,这些预定通用度量共同表示用户的预定度量状态。例如,通用心率及血压度量的集合可以表示对许多恐慌用户共同的度量状态。类似地,预定通用度量的另一集合可以表示对许多生气的用户共同的度量状态。
在图5的方法中,确定(504)不同用户度量(206)是否与预定度量模式(256)匹配的步骤包含把多个用户度量(206)与相关于度量模式(256)的多个预定通用度量相比较。即,把度量高速缓存中多个不同用户度量的度量ID及度量值与构成预定度量模式的预定通用度量的多个度量ID及度量值相比较。
如本领域技术人员所想到的,在典型实施例中,用户度量的度量ID及度量值不必完全与预定通用度量的度量ID及度量值相同才被认为是匹配的。事实上,用户度量通常不必与预定通用度量完全相同。认为达到匹配所需的用户度量与预定通用度量的相同程度,将根据例如用于比较用户度量和预定通用度量的方法的容限,用于产生用户度量的方法和系统的容限,以及本领域技术人员想到的许多其它因素的因素而发生变化。
在图5方法的某些例子中,确定(504)不同用户度量(206)是否与预定度量模式(256)匹配(506)的步骤由诸如selectMetricPattern()的度量模式服务中的一或多个成员方法完成。这种成员方法通常把度量高速缓存中的用户度量与度量模式数据库(508)中构成预定度量模式的预定通用度量相比较。如果用户度量与预定通用度量的集合匹配,则这种成员方法通常向其调用者返回一度量模式。
如果不同用户度量(206)与预定度量模式(256)匹配(506),则图5的方法包含根据预定度量模式(256)识别(510)动作(315)。如上所述,动作自身包括软件,并且因此可以作为具体动作类来实现,例如通过在编译时引入到DML中的Java软件包实现,因此在DML运行时间始终可用。
在图5的方法中,根据预定度量模式(256)识别(510)动作(315)的步骤通常包含从相关于度量模式的动作列表(622)中检索动作ID(315)。在本说明书及上下文中,‘相关’通常表示通过引用相关联。即,如果说一个类的对象与另一对象相关,则表示第二个对象拥有对第一个对象的引用。对象可以互相关,其中每个对象均拥有对另一个的引用。对象,汇集,合成及其他中间的其它关系通常具有相关的类型,并且对它们的任何使用,以及本领域技术人员想到的其它使用,均在本发明的范围内。在各种实施例中,例如,动作列表可被实现为一个Java列表容器,随机访问存储器中的表,存储在硬盘驱动器或CD ROM上的SQL数据库表,以及以本领域技术人员想到的其它方式实现。
图5的方法包含执行(512)动作(315)。在某些例子中,通过在DML中使用switch()语句来执行(512)动作(315)。可根据动作ID操作此switch()语句,并且可例如通过下列伪码段来实现:
switch(actionID){
   Case 1:actionNumber1.take_action();break;
   Case 2:actionNumber2.take_action();break;
   Case 3:actionNumber3.take_action();break;
   Case 4:actionNumber4.take_action();break;
   Case 5:actionNumber5.take_action();break;
   //等等
}//switch()结束
示例性switch语句根据动作ID选择特定设备控制对象以执行。在这个例子中通过switch()管理的设备控制对象是名为actionNumber1,actionNumber2等等的具体动作类,其均具有名为‘take_action()’的可执行成员方法,其中成员方法完成由每个动作类实现的实际工作。
执行(512)动作(315)的步骤也可以在DML中通过散列表来完成。这种散列表可以存储对由动作ID索引的动作对象的引用,如下面伪码例子所示。这个例子从动作服务创建动作的散列表开始,使用actionID作为键值(key)引用与特定度量ID相关的具体动作类。在许多实施例中,由动作服务创建这种散列表,用对与特定度量ID相关的动作对象的引用填充散列表,并且向调用度量对象返回对散列表的引用。
Hashtable ActionHashTable=new Hashtable();
ActionHashTable.put(″1″,new Action1());
ActionHashTable.put(″2″,new Action2());
ActionHashTable.put(″3″,new Action3());
接着根据下列伪码完成执行特定动作:
Action anAction=(Action)ActionHashTable.get(″2″);
if(anAction!=null)anAction.take_action();
本说明书中的许多例子被描述为通过列表来实现,通常例如通过动作列表实现,并且例如从动作服务返回对列表的引用。列表通常以类似于散列表的方式工作。例如,也可以根据下列伪码完成执行特定动作:
List ActionList=new List;
ActionList.add(1,new Action1());
ActionList.add(2,new Action2());
ActionList.add(3,new Action3());
接着根据下列伪码完成执行特定动作:
Action anAction=(Action)ActionList.get(2);
if(anAction!=null)anAction.take_action();
上面的三个例子使用switch语句,散列表,及列表对象根据本发明的实施例说明了执行动作。在这些例子中使用switch语句,散列表,及列表对象仅用于说明,而不用于限制。事实上,如本领域技术人员能想到的,根据本发明的实施例,有许多执行动作的方式,并且所有这些方式均在本发明的范围内。
图6示出了图解执行动作的示例性方法的数据流图。在图6的方法中,执行动作的步骤包含识别(380)表示通过动作管理的物理设备(316)的设备类(214)。典型设备类包含用于管理设备的成员方法。用于管理设备的典型成员方法包含用于获取及设定在物理设备的设备属性的值的成员方法。例如在支持多个针对光强度的设置的灯的情况下,设备类中的成员方法get()从灯得到光强度的值,并且设备类中的成员方法set()设置灯的光强度。
在图6的方法中,执行(512)动作(315)的步骤包含识别(384)设备(316)的通信类(215)。为了将设备类的成员方法传送到物理设备,通信类实现用于与物理设备通信的协议。典型通信类包含根据通信类实现的协议发送和接收数据通信消息的成员方法。通信类中的成员方法针对物理设备发送和接收数据通信消息。通信类有利将对设备完成的动作与用于与物理设备通信的协议分离,使得包括例如getAtr()及setAtr()方法的设备类接口能够使用任何数据通信协议与物理设备通信,而不必对设备类重新编程,也不必针对物理设备和协议的每个组合提供一个设备类。
为了进一步解释,考虑下列简要的用例。用户正在交通拥堵的环境中驾驶汽车。用户的度量传感器读取用户的心率,血压及体温,产生度量并且向汽车的DML发送度量。DML接收度量到用户的度量高速缓存中,并且把用户度量与存储在度量模式数据库中、构成多个度量模式的预定通用度量相比较。DML从度量模式数据库中检索出代表“紧张用户”的匹配度量模式。DML从度量模式检索包含动作ID的动作列表,其中当被执行时,该动作ID指示的动作将汽车的显示调整到先前确定为抚慰用户的的颜色,并且将汽车CD播放器的音量调整为先前确定适于紧张用户的水平。
根据前面的描述可以理解,在不偏离本发明真实宗旨的前提下,可对本发明的各种实施例进行修改及改变。本说明书中的描述仅用于说明,而不用于限制。本发明的范围仅受下列权利要求的表述的限制。

根据度量模式管理设备的系统和方法.pdf_第1页
第1页 / 共40页
根据度量模式管理设备的系统和方法.pdf_第2页
第2页 / 共40页
根据度量模式管理设备的系统和方法.pdf_第3页
第3页 / 共40页
点击查看更多>>
资源描述

《根据度量模式管理设备的系统和方法.pdf》由会员分享,可在线阅读,更多相关《根据度量模式管理设备的系统和方法.pdf(40页珍藏版)》请在专利查询网上搜索。

本发明的示例性实施例包含用于管理网络内的设备的方法。该实施例包含在网络内接收多个不同用户度量并确定在网络内接收的多个不同用户度量是否与预定的度量模式匹配。如果在网络内接收的多个不同用户度量与预定度量模式匹配,则该实施例还包含根据预定度量模式识别一个动作,并且在网络内执行该动作。在典型的实施例中,预定度量模式包含多个预定通用度量。 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1