CN107247597A - 一种为智能设备提供统一抽象表示的设备对象 - Google Patents
一种为智能设备提供统一抽象表示的设备对象 Download PDFInfo
- Publication number
- CN107247597A CN107247597A CN201710494348.4A CN201710494348A CN107247597A CN 107247597 A CN107247597 A CN 107247597A CN 201710494348 A CN201710494348 A CN 201710494348A CN 107247597 A CN107247597 A CN 107247597A
- Authority
- CN
- China
- Prior art keywords
- json
- smart machine
- device object
- equipment
- service
- 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.)
- Granted
Links
- 230000009471 action Effects 0.000 claims description 16
- 238000000034 method Methods 0.000 claims description 8
- 241001269238 Data Species 0.000 claims description 3
- 230000008569 process Effects 0.000 claims description 3
- 238000012360 testing method Methods 0.000 claims description 3
- 238000010200 validation analysis Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 7
- 238000013461 design Methods 0.000 abstract description 5
- 238000006243 chemical reaction Methods 0.000 abstract 1
- 230000006870 function Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 101000826116 Homo sapiens Single-stranded DNA-binding protein 3 Proteins 0.000 description 1
- 241000406668 Loxodonta cyclotis Species 0.000 description 1
- 102100023008 Single-stranded DNA-binding protein 3 Human genes 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000000344 soap Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000005406 washing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
- H04L67/303—Terminal profiles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/22—Procedural
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/50—Service provisioning or reconfiguring
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
Abstract
一种为智能设备提供统一抽象表示的设备对象,它包括统一的设备抽象界面、硬件配置文件和应用配置文件,应用配置文件包括相关的服务清单和每个服务的状态。在为智能设备提供统一抽象表示时,先将设备硬件的各种接口转换成统一的设备得应用配置文件。每个设备的所有硬件细节可以包含在通用设备应用程序配置文件中,以实现从框架外部看到的设备的统一描述。目前,通用设备应用程序配置文件以JSON格式实现,并且可以由客户端从框架的RPC接口获取。客户端应用程序可以通过框架的统一界面与标准Web技术来访问和控制设备。该设计和通用设备应用配置文件可应用于计算机网络中的任何智能设备,特别是物联网和智能家居应用。
Description
技术领域
本发明涉及一种设备对象,尤其涉及一种为智能设备提供统一抽象表示的设备对象。
背景技术
物联网有可能改变传统行业,以及我们的生活和工作方式。近几年技术和应用开发发展迅速。许多新技术正在出现,以实现“物”(也称为智能设备)的连接。
现阶段,有几个相互竞争的标准,包括蓝牙、ZWave、ZigBee或传统IP网络协议。此外,不同的制造商可能会实施其他专有协议和独特功能。目前世界上,还没有与这些智能设备和物联网交互的通用接口。
对于拥有不同品牌的智能设备的消费者来说,设备的交流互动是非常不方便和昂贵的。不同制造商的设备之间缺乏统一的控制、访问和互操作性,阻碍了物联网应用的快速采用。许多智能设备和物联网缺乏统一的表现,也给许多服务提供商带来了挑战。他们必须花大量资源和努力来建立具体的接口,以应付不同的标准、协议和制造商。
虽然大多数制造商努力在自己的产品内开发共同的界面,但它仍然是一个非常分散的市场。在不同制造商之间交流互动和控制智能设备没有共同的技术或标准。
现有技术,诸如蓝牙、Z-Wave等网络协议都已经试图定义常见的智能设备的应用配置文件,其描述了具有相关服务的设备能力以及如何操作这些服务。然而,他们定义的设备的应用配置文件只属于自己的协议,并且仍然缺乏跨不同协议的互操作性。
所有设备的应用配置文件都需要某种结构化数据来完全表示设备在树状数据结构中的功能,一些技术(例如ONVIF或UPnP)利用XML格式来表示设备的应用配置文件并发送动作调用XML SOAP格式。然而,这种XML格式的数据是重量级的,并且难以用于与客户端Web应用程序的交互。此外,他们在处理和通信方面都耗费太多的资源。
与XML或其他结构数据格式相比,JSON(JavaScript对象表示,使用人类可读文本传输由属性-值配对组成数据对象的开放标准格式)具有相同的能力来表示公共设备和应用配置文件结构格式。此外,它更易于人眼阅读,更容易通过软件(如客户端JavaScript和服务器端Node.js代码)进行解析和分析。此外,JSON更紧凑,消耗更少的网络带宽。
在本发明中,我们开发了基于JSON的设备应用配置文件,与现有技术基于XML的模型相比,显示出巨大的技术先进性,它是为各种物联网设备创建通用设备的应用配置文件的最佳技术。
发明内容
本发明所要解决的技术问题在于提供一种为智能设备提供统一抽象表示的设备对象。
为实现上述目的,本发明采用下述的技术方案:
一种设备对象,具有相关服务的设备的抽象表示,包含:
a)定义智能设备操作的内部实现的第一列表;
b)定义智能设备的相关服务的第二列表,还包含:
i)包含智能设备基本信息的第三子列表;
ii)通过至少一个动作调用列表的定义来定义可用的服务的第四子列表,还包括:
(1)代表所述智能设备的至少一个单独和可互换功能的集合的至少一个服务;
(2)至少有一个名为服务状态表的服务列表,包含至少一个映射到抽象API接口调用的参数的变量的定义。
其中较优地,服务列表中的可用服务,在智能设备和服务发现过程中,根据设备驱动程序的网络协议,通过内部调用至少一个设备驱动程序来实现。
其中较优地,表示多个智能设备的至少一个设备驱动程序共享相同类型的网络协议,其中公共抽象接口暴露给所述计算机系统的客户端。
其中较优地,用于定义所述智能设备的公共表示的应用简档是JSON格式的文本文档,所述文本文档独立于所述设备对象所基于的物理网络协议。
其中较优地,所述变量的定义是简单类型或复杂类型,其中所述简单类型遵循JSON规范,包括布尔值、整数、数字、字符串类型中的至少一种;所述复杂类型在对象类型中统一命名。
其中较优地,所述复杂类型的定义用模式关键字注释,其中所述模式关键字的内容是JSON指针。
其中较优地,所述的设备对象,还包括一个JSON格式的模式文档;
当应用简档包括任何复杂类型变量时,所述模式文档包含所有复杂类型变量的定义。
其中较优地,模式关键字的JSON指针定义指的是在所述模式文档中的复杂类型变量的JSON模式定义。
其中较优地,所述JSON模式定义通过遵循JSON指针定义从API接口检索复杂类型变量。
其中较优地,设备驱动程序负责将接收到的数据转换为JSON,使用JSON模式验证API数据。
其中较优地,使用http URL应用程序解析API数据模式的JSON指针,完整解析后的模式前端可见;
http URL应用程序根据变量的模式定义创造出动态生成的表单和测试工具。
附图说明
图1是描绘本发明的软件框架(M200)管理智能设备的的实例图;
图2是描绘软件框架的高级功能的实例图;
图3是描绘软件框架的概括性架构,包括一组API接口和模块的实例图;
图4是描绘根据本发明的实施例的框架部署的分层布局的实例图;
图5是描绘由框架管理的设备对象(M100)的实例图;
图6是描绘以JSON格式实现的设备的应用配置文件(M110)的实例图;
图7是表示可切换灯泡JSON文档的应用配置文件实例图;
图8a是JSON文档的一个实施例中,具有两种服务的可切换和可调光灯泡的应用配置文件的部分代码展示示意图;
图8b是JSON文档的一个实施例中,具有两种服务的可切换和可调光灯泡的应用配置文件的部分代码展示示意图;
图9是描绘设备驱动程序(M150)的实例模型图,还包括一组设备对象;
图10是根据本发明的实施例的软件框架在发现和注册智能设备时执行的动作的流程图;
图11是描绘软件框架如何提供智能设备的通用抽象接口的示例的模型图;
图12是根据本发明的实施例的由客户端应用和软件框架执行的交互并控制智能设备动作的示例流程图;
图13是客户端应用程序执行的检索与设备对象相关联的JSON模式文档(M280)的动作的流程图;
图14是根据本发明的由客户端应用程序,软件框架在与智能设备进行事件订阅和接收事件更新的交互中执行动作的实例流程图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步的详细说明。
本发明通过实施例说明,但是实际应用并不受到附图中所描述的应用场景限制,其中相同的附图标记表示相似的项目。对本发明中公开的实施例的引用不一定是相同的实施例,并且这样的引用意味着至少一个。虽然讨论了具体的实现方式,但是应当理解这是为了说明的目的而完成的。相关领域的技术人员可以认识到,在不脱离本发明的范围和精神的情况下可以使用其它组件和构造。
在下面的描述中,阐述了许多具体细节以提供对本发明的全面描述。然而,对于本领域技术人员来说,可以在没有这些具体细节的情况下实践本发明。在其他情况下,我们未详细描述众所周知的特征,以免使本发明的描述变得主次不分。
许多物联网/智能设备利用不同的网络标准和协议,诸如蓝牙、ZWave、ZigBee或IP网络协议。此外,不同的制造商可能会实现专有协议和独特功能。实现大量设备的统一代表和描述是一项挑战,使得物联网/智能设备之间的互操作性非常困难。
我们发明了一种新的解决方案来应对这一挑战,参考图1,该解决方案引入了一个软件框架(M200)来管理连接到框架的所有智能设备(M41X)。
作为Web服务器,该框架使用统一格式将至少一个外部接口(称为应用编程接口(M300))暴露给框架外的客户端。通过此框架,客户端可以通过应用编程接口(M300)以统一的命令访问所有智能设备,无需处理不同网络协议和设备细节的麻烦。
以下发明的软件框架(M200)可以应用于智能家居和物联网(IoT)应用。该软件框架可以实现为智能网关的一部分,或者在诸如智能电话或平板电脑的移动设备中,或者在运行在云中的服务器机器中,或在防火墙后面的PC或连接的“智能”联网设备中,通过计算机网络访问物联网(IoT)设备。
图2是描绘本发明的软件框架(M200)的高级功能的实例模型图。
在软件框架顶层,它开放了一组设备管理API接口(即应用编程接口M300),在我们优选的实施例中,我们用RESTful(M310)风格的API接口实现到外部世界连接。这接口不仅仅限于与RESTful风格的API接口实现。
在软件框架内部,它利用公共设备管理层(M210)来管理一组设备对象(M100)。这些设备对象是从设备驱动程序(M150)生成,并向软件框架报告的。
公共设备管理层(M210)拥有设备驱动程序管理模块(M230),负责管理所有设备驱动程序,例如发送发现(P10)请求,加载和卸载设备驱动程序(P14)等。
当在网络上发现智能设备时,设备驱动程序将发现的智能设备注册(P20)到软件框架,并将其表示为软件框架内部的设备对象(M100)。
每个设备对象(M100)实例表示发现的智能设备。
外部世界可以通过软件框架的API接口(M300)获得发现的智能设备的列表,并通过由软件框架(M200)实现的API接口(M300)来控制这些智能设备。
在我们当前的实施例中,我们使用RESTful API(M310)构建框架的API接口(M300)。
对于在相同协议中共享公共设备驱动程序(M160)的智能设备,您可能会看到多个设备对象,它们表示从同一公共设备驱动程序(M160)创建的不同智能设备,如图2所示。
框架的API接口(M300)还用于设备事件订阅。要接收设备事件,外部世界用户将其事件订阅请求和地址信息发送到软件框架的API接口。当设备事件到达软件框架时,软件框架会向用户的地址发送事件更新。用户地址可以是可接收数据的任何URL或套接字地址。通过这种设计,我们为各种物联网(IoT)设备创建了一个双向数据通道。
图3是描绘软件框架的高级架构包括一组API接口和模块的实施例图。
在操作系统和网络协议栈(M400)之上的软件框架中有两个主要层。公共设备管理层(M210)和设备硬件抽象层(M240)。
公共设备管理层(M210)包括处理模块(M220)和设备驱动程序管理模块(M230)。
处理模块包括主要功能模块,其包括以下至少一个功能:设备发现(M222),设备注册(M224),设备控制(M226)和设备事件订阅(M228)。
设备驱动程序管理模块(M230)与分组在设备硬件抽象层(M240)中的每个设备对象的设备驱动程序(图1中的M150)通过接口互动。
图4是描绘根据本发明的实例的框架部署的分层布局的实例图。
基于我们的设计,多个软件框架可以在几乎任何布局的组合中形成集群。任何软件框架都可以调用另一个软件框架来控制由另一个软件框架管理的设备。
在典型的软件部署环境中,软件框架可以具有分层布局,管理一组智能设备的下层框架实例可以被部署为上层框架实例的设备驱动程序。
响应于对下层框架的API接口的请求,较低层框架实例可以将其被管理设备对象信息发送到上层框架实例。然后上层框架可以通过下层框架实例的管理界面来管理实际的智能设备。
另一种部署方法是设备驱动程序可能具有层次结构,我们有一个公共设备驱动程序(M160)来管理不同供应商的专有驱动程序(M170)作为其依赖关系。例如,在我们的实现中,我们有一个通用的蓝牙LE驱动程序,能够发现附近的所有蓝牙LE设备,并将其与已安装的供应商专有驱动程序相匹配。在匹配的情况下,常见的蓝牙LE模块将向框架注册供应商专有设备对象。如果找不到匹配项,蓝牙LE模块将收集由蓝牙LE标准定义的所有知名信息,例如设备名称,设备类型等。然后,该设备将作为通用蓝牙注册到该框架LE设备。通过利用这种设计,我们可以在不同的部署环境下实现管理各种智能设备的最大灵活性。
图5是描绘由软件框架管理的设备对象(M100)的实施例图。
设备对象包括应用配置文件(M110)和硬件配置文件(M120)两者。
设备的应用配置文件是JSON格式文档。它代表了设备的全部功能以及如何操作它们。
此JSON文档由设备驱动程序(M150)创建,该设备驱动程序(M150)在发现阶段读取和分析设备以创建该设备的框架内部对象模型。
此框架的客户端,如客户端应用程序或第三方Web服务可以通过软件框架的API接口(M300)检索此JSON文档,以便他们知道如何向该设备发送API调用动作或订阅事件更新。
设备的硬件配置文件包括如何操作设备的内部实现,这些信息对软件框架和外部世界是不可见的。
设备对象实现一组公共设备抽象接口(M130),例如接受设备API调用动作和事件订阅请求等。
软件框架可以调用该公共设备抽象接口以一致地与不同类型的设备进行通信,而不管其硬件配置将是什么。
图6是描绘以JSON格式实现的设备的应用配置文件(M110)的实例图
应用配置文件包括设备基本信息(M122)的列表,诸如设备的供应商信息,友好名称等;以及名为“服务列表”(M180)的列表,其定义与设备相关联的可用服务。
服务列表(M180)包含服务列表的定义(M182,M184,M186)。每个服务列表包含抽象API(M182A,M182B,M182C)和名为“服务状态表”(M192)的列表。
从功能的角度来看,设备应用简档描述服务列表(M182,M184,M186),并且每个服务包含对动作呼叫列表的定义(例如,M182A,M182B,M182C)。
每个动作调用定义包括表示全抽象API调用接口的参数定义列表。
在我们实现的实例中,将包含对一组变量的定义的服务状态表serviceStateTable(M192,M194,M196)映射到抽象API调用接口的参数。这些变量的定义包括有关其数据类型的信息,以及是否可以以事件发生。
变量的数据类型可以是简单的或复杂的类型。简单类型包括字符串,整数,布尔值,数字和JSON规范的一致性。复杂类型用于表示具有复杂结构的数据对象。通过这样做,该软件框架的客户端可以根据设备模型中定义的数据类型向框架发送表示操作API调用的文本消息。
图7是表示可切换灯泡JSON文档的应用配置文件实施例图。
JSON文档包括设备的基本信息,例如姓名,制造商信息等;服务列表,其中每个服务都包含对操作列表的定义,每个操作都描述此设备支持的操作API调用。
通过利用基于JSON的设备模型和上述过程,客户端应用将具有统一的表示。利用这种统一的设备应用配置文件和抽象设备接口,提供开关功能的灯泡将具有对客户端的统一表示,而不管设备的网络协议服务表示由智能设备提供的一组单独和可互换的功能。例如,可调灯泡可以提供两种服务:一种是开关服务;另一个是调光服务。开关服务包含两个用于打开或关闭灯泡的抽象API接口,并且调光服务包含两个API接口以获得并设置灯泡的调光级别。
图8是JSON文档的一个实施例图,其表示具有两种服务的可切换和可调光灯泡的应用配置文件:二进制开关服务和调光服务。
此外,定义的服务实体可以在其他情况下重复使用。例如,该开关服务实体可以用于描述诸如电视机、洗衣机等的其他智能设备所提供的切换功能。调光服务也可以用于描述可调光电视或监视器屏幕。
“服务状态表”(M192)包含映射到由服务定义的抽象API接口的每个参数的变量定义变量的数据类型在服务状态表(M192)中定义,并且可以是可能包含JSON对象或数组中的复杂数据的简单类型(布尔型,整数型,数字和字符串)或复杂类型。
通过利用这种抽象API接口和变量类型信息,我们可以通过软件框架的API接口(M310)将设备的应用程序配置文件发送到框架外的客户端。然后,客户端将知道如何发送正确的API调用来控制设备。
此外,“服务状态表”中的每个变量的定义可以用“sendEvents”布尔标志来注释。软件框架将缓存变量的最新已知值,这些值是从其成功的操作调用或事件更新中获取的。
如果变量的“sendEvents”标志在设备的应用配置文件中为真,并且该变量的值由底层网络堆栈或动作API调用更改,则软件框架将向事件订阅者发送事件更新。例如,如果用户关闭灯泡,则所有事件订户将从框架获得上述更改的更新。通过这样做,我们在客户端和物联网设备之间拥有灵活的双向数据通道。
图9是描绘设备驱动程序(M150)的实施例的模型图,还包括一组设备对象。
每个设备驱动程序表示一种类型的网络协议,并且可以管理该类别中的一个或多个设备对象,例如蓝牙Z-Wave ZigBee每个采用设备驱动程序的ONVIF协议。
此外,设备制造商的非标准专有实现也可以通过该软件框架来支持,并且在该通用的基于抽象的JSON的应用配置文件中被呈现给客户端。
每个设备驱动程序具有暴露于框架的公共管理接口(M190)。
软件框架可以管理诸如驱动程序加载和卸载的设备驱动程序,通过该公共管理接口(M190)启动设备发现过程。
当从软件框架接收到发现请求时,设备驱动程序将根据它们自己的发现协议,例如蓝牙或Z波网络扫描、UPnP SSDP、用于ONVIF摄像机的WS-发现来启动设备发现过程。设备对象将是为每个新发现的设备生成并注册到软件框架。
图10是根据本发明的实施例的软件框架在发现和注册智能设备时执行的动作的流程图。
软件框架的处理模块(M220)将调用(P10)设备驱动程序管理模块(M230)内的必需设备驱动程序(M232,M234)以发现所有连接的物联网设备。根据发现请求(P12)发出,其网络上的所有可用设备(M412,M416)根据标准连接协议响应相应的设备驱动程序(P16,P18)。
设备驱动程序(M232,M234)将通过为软件框架内部创建和呈现设备对象(图5中的M100)来将发现的设备(P20)注册到软件框架。每个设备对象包含该智能设备的应用配置文件(图5中的M110)。此应用配置文件是一种JSON格式的文档,其中包含有关智能设备及其操作的所有信息。
图11是描绘软件框架如何提供智能设备的通用抽象接口的示例的模型图。
在软件框架启动之后,客户端可以向软件框架发送设备发现请求(P02),软件框架处理模块将向驱动器管理模块内的设备驱动程序发送该请求(P10)。驱动程序将与智能设备(M410)进行交互(P12和P16),以完成发现过程。
一旦发现,相应的驱动器将发现的智能设备(P20)注册到软件框架作为设备对象(M100)。使用设备对象的通用格式,我们实现了具有相关服务的设备的统一表示。
图12是根据本发明的实施例的由客户端应用和软件框架执行的交互并控制智能设备动作的示例流程图。
在通过软件框架的API接口(M300)接收到设备的应用配置文件之后,外部世界中的客户端应用将文本消息(P50)中的动作API调用请求发送到框架的外部API接口(M300)。
软件框架然后将通过设备抽象接口(图5中的M130)发送API调用数据到相应的底层设备驱动程序(P52),其中API调用数据将被转换为设备的硬件配置文件和设备对象内的内部实现。
软件框架将在内部调用正确的驱动程序,就是说,Z-Wave驱动程序(M234),将这些API调用转换成设备自己的控制协议,也就是说,Z-Wave协议与智能设备(M410)通信(P56)。
在完成动作后,智能设备将确认或输出数据(P58)发送回驱动器,然后依次发送到软件框架的处理模块(P60)和客户端应用程序(P62)。
通过利用这种设计,我们有一个与外部世界的每种类型的设备的通用设备应用配置文件。例如,灯泡将仅暴露开关应用简档作为框架,则开关API调用数据可以通过其设备抽象接口(M130)发送到灯泡的设备对象。然后,这个开关API调用将被转换为设备对象的硬件配置文件及其内部实现,无论它们基于什么通信协议。
图13是客户端应用程序执行的检索与设备对象相关联的JSON模式文档(M280)的动作的流程图。
在本发明所提供的一个实施例中,Web服务API抽象层,统一xml或所有类型的数据到JSON。设备驱动程序负责将接收到的数据转换为JSON,使用JSON模式验证API数据。使用http URL应用程序解析API数据模式的JSON指针,完整解析后的模式前端可见,可以创造出动态生成的表单和测试工具。统一的web服务API规范放在设备驱动程序里,可以是静态文件,也可以从服务发现的结果里动态生成的。让客户端看到API规范后可以生成相应的访问代码。
在我们的发明中,如果其抽象API调用的任何参数是复杂类型,则每个设备对象必须携带与其应用配置文件(图5中的M110)一起的JSON模式文档。
当调用设备的抽象API(图6中的M182A)时,复杂类型的实际数据可以是JSON数组或JSON对象。此JSON模式文档(M280)包含设备抽象API(图6中的M182A)公开的所有复杂类型数据的详细定义。
在设备的应用配置文件(图6中的M110)中,在“服务状态表”(图6中的M192)内部,映射到设备的抽象API(M182A)的特定复杂类型参数的变量定义包括JSON指针字符串,它引用了JSON模式文档(M280)中的子模式定义。
框架将在运行时取消引用此JSON指针,以验证复杂类型的输入和输出数据。
客户端应用程序可以从框架的RESTful API接口(M310)检索与该JSON指针相关联的子模式定义,以用于预处理和验证目的。
例如,客户端应用程序可以根据变量的模式定义在其用户界面上自动生成输入表单。当处理设备操作API调用或事件更新数据时,软件框架将根据其简单的类型和模式定义验证所有简单和复杂的类型数据。
图14是根据本发明的由客户端应用程序,软件框架在与智能设备进行事件订阅和接收事件更新的交互中执行动作的实例流程图。
在发现过程之后,设备对象将注册到软件框架。
客户端应用程序可以通过调用软件框架的事件订阅API接口来订阅(P80)设备事件更新。
订阅信息包含感兴趣的设备和用于接收事件更新的订户的地址。
在接收到事件订阅请求之后,软件框架将请求分派到各个设备对象。设备对象将向其设备驱动程序发送(P82)请求。
在运行时间期间,如果从智能设备生成任何事件更新,则将事件数据(P84)发送到其设备驱动程序。在接收到事件数据后,设备驱动程序将调度(P86)到由软件框架管理的设备对象。
软件框架将比较新事件数据与设备对象的内部缓存值,其可以从先前的动作调用或事件更新中获取。如果有变化,软件框架将向其订阅者广播(P88)事件更新。
此外,如果动作API调用改变如“服务状态表”(图6中的M192)中定义的任何设备状态,软件框架将会意识到这一点,因为它将这些状态缓存在其存储器内。在这种情况下,软件框架还向其订户广播事件更新。
尽管本文已经描述了本发明的优选实施例,但是本领域技术人员将理解,在不脱离本发明的精神或所附权利要求的范围的情况下,可以对其进行变化。
Claims (11)
1.一种设备对象,具有相关服务的设备的抽象表示,其特征在于包含:
a)定义智能设备操作的内部实现的第一列表;
b)定义智能设备的相关服务的第二列表,还包含:
i)包含智能设备基本信息的第三子列表;
ii)通过至少一个动作调用列表的定义来定义可用的服务的第四子列表,还包括:
(1)代表所述智能设备的至少一个单独和可互换功能的集合的至少一个服务;
(2)至少有一个名为服务状态表的服务列表,包含至少一个映射到抽象API接口调用的参数的变量的定义。
2.根据权利要求1所述的设备对象,其特征在于:
服务列表中的可用服务,在智能设备和服务发现过程中,根据设备驱动程序的网络协议,通过内部调用至少一个设备驱动程序来实现。
3.根据权利要求1所述的设备对象,其特征在于:
表示多个智能设备的至少一个设备驱动程序共享相同类型的网络协议,其中公共抽象接口暴露给所述计算机系统的客户端。
4.根据权利要求1所述的设备对象,其特征在于:
用于定义所述智能设备的公共表示的应用简档是JSON格式的文本文档,所述文本文档独立于所述设备对象所基于的物理网络协议。
5.根据权利要求1所述的设备对象,其特征在于:
所述变量的定义是简单类型或复杂类型,其中所述简单类型遵循JSON规范,包括布尔值、整数、数字、字符串类型中的至少一种;所述复杂类型在对象类型中统一命名。
6.根据权利要求5所述的设备对象,其特征在于:
所述复杂类型的定义用模式关键字注释,其中所述模式关键字的内容是JSON指针。
7.根据权利要求1所述的设备对象,其特征在于还包括一个JSON格式的模式文档;
当应用简档包括任何复杂类型变量时,所述模式文档包含所有复杂类型变量的定义。
8.根据权利要求7所述的设备对象,其特征在于:
模式关键字的JSON指针定义指的是在所述模式文档中的复杂类型变量的JSON模式定义。
9.根据权利要求7所述的设备对象,其特征在于:
所述JSON模式定义通过遵循JSON指针定义从API接口检索复杂类型变量。
10.根据权利要求1所述的设备对象,其特征在于:
设备驱动程序负责将接收到的数据转换为JSON,使用JSON模式验证API数据。
11.根据权利要求1所述的设备对象,其特征在于:
使用http URL应用程序解析API数据模式的JSON指针,完整解析后的模式前端可见;
http URL应用程序根据变量的模式定义创造出动态生成的表单和测试工具。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/193,911 US10791195B2 (en) | 2016-06-27 | 2016-06-27 | Common device interface framework for IoT/smart device application |
US15/193,911 | 2016-06-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107247597A true CN107247597A (zh) | 2017-10-13 |
CN107247597B CN107247597B (zh) | 2020-09-11 |
Family
ID=59987683
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710494879.3A Expired - Fee Related CN107239416B (zh) | 2016-06-27 | 2017-06-26 | 为智能设备提供统一抽象表示的计算机系统及实现方法 |
CN201710494348.4A Expired - Fee Related CN107247597B (zh) | 2016-06-27 | 2017-06-26 | 为智能设备提供统一抽象表示的设备对象的抽象表示方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710494879.3A Expired - Fee Related CN107239416B (zh) | 2016-06-27 | 2017-06-26 | 为智能设备提供统一抽象表示的计算机系统及实现方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10791195B2 (zh) |
CN (2) | CN107239416B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108762824A (zh) * | 2018-04-18 | 2018-11-06 | 青岛海尔科技有限公司 | 一种基于配置文件的设备逻辑处理方法及装置 |
CN111198677A (zh) * | 2018-10-30 | 2020-05-26 | 阿里巴巴集团控股有限公司 | 一种设备对象生成方法、装置及设备 |
CN111562436A (zh) * | 2020-07-15 | 2020-08-21 | 南方电网数字电网研究院有限公司 | 双芯智能电表的设备驱动方法和装置 |
CN112214548A (zh) * | 2020-10-09 | 2021-01-12 | 深圳市智百威科技发展有限公司 | 一种解决多设备智能同步数据的方法 |
CN112799730A (zh) * | 2021-02-18 | 2021-05-14 | 上海元及数据科技有限公司 | 一种对设备进行抽象和封装的方法和系统 |
CN114020319A (zh) * | 2021-09-28 | 2022-02-08 | 深圳市潮流网络技术有限公司 | 接口调用的方法、装置、服务器及计算机可读存储介质 |
CN118672627A (zh) * | 2024-07-16 | 2024-09-20 | 上汽通用汽车有限公司 | 配置更新系统及方法 |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180196647A1 (en) * | 2017-01-09 | 2018-07-12 | International Business Machines Corporation | Application Programming Interface Discovery Using Pattern Recognition |
CN110086693A (zh) * | 2018-01-25 | 2019-08-02 | 北京元盛科技有限公司 | 智能设备统一接入系统 |
CN108446105B (zh) * | 2018-02-08 | 2021-09-07 | 广州亦云信息技术股份有限公司 | 一种轻量级API Server开发框架及开发方法 |
US11372840B2 (en) | 2018-11-01 | 2022-06-28 | Oracle International Corporation | Validation of data values contained in responses from server systems |
CN113196721B (zh) * | 2019-03-01 | 2023-04-25 | Oppo广东移动通信有限公司 | 物联网设备的发现方法、装置及终端设备 |
CN109992556B (zh) * | 2019-04-10 | 2021-07-06 | 苏州浪潮智能科技有限公司 | 一种i2c驱动方法和装置 |
US11150892B2 (en) | 2019-07-30 | 2021-10-19 | Microsoft Technology Licensing, Llc | Software versioning for network connected devices |
CN110535949A (zh) * | 2019-08-30 | 2019-12-03 | 四川长虹网络科技有限责任公司 | 一种兼容多种嵌入式产品的web功能实现方法 |
US11263349B2 (en) * | 2019-12-23 | 2022-03-01 | Bank Of America Corporation | System for discovery and analysis of software distributed across an electronic network platform |
CN111338706B (zh) * | 2020-02-13 | 2024-04-09 | 深信服科技股份有限公司 | 配置文件的导入方法、装置、设备及计算机可读存储介质 |
CN111787049A (zh) * | 2020-05-09 | 2020-10-16 | 苏州中科中霖电子科技有限公司 | 一种基于设备对象的物联网设备管理方法与系统 |
CN112286701B (zh) * | 2020-10-27 | 2024-06-28 | 深圳市拓邦软件技术有限公司 | 一种物联网通信方法、系统、物联网设备及云端 |
CN113608781A (zh) * | 2021-08-02 | 2021-11-05 | 上海同星智能科技有限公司 | 多适配器兼容库文件模块、调用方法、调用系统及设备 |
CN113746850B (zh) * | 2021-09-07 | 2023-08-15 | 成都小步创想慧联科技有限公司 | 一种物联网多通道数据采集方法 |
CN114157694B (zh) * | 2021-12-08 | 2022-06-24 | 南方电网数字电网研究院有限公司 | 一种基于硬件抽象框架架构的技术交互方法及系统 |
CN113918132A (zh) * | 2021-12-13 | 2022-01-11 | 珠海市新德汇信息技术有限公司 | 设备标准化管理方法、系统、工作方法、装置及存储介质 |
CN114257624B (zh) * | 2021-12-24 | 2023-03-21 | 北京深盾科技股份有限公司 | 物联网设备的配置方法、装置、设备及存储介质 |
CN116009958B (zh) * | 2023-01-10 | 2023-10-20 | 深圳市拔超科技股份有限公司 | 一种智能硬件统一控制方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101635645A (zh) * | 2009-08-28 | 2010-01-27 | 中兴通讯股份有限公司 | 一种网络拓扑的管理方法及装置 |
CN101909013A (zh) * | 2010-08-16 | 2010-12-08 | 艾默生网络能源有限公司 | 一种可动态配置的信息交换装置 |
CN102185860A (zh) * | 2011-05-10 | 2011-09-14 | 清华大学 | 用于集成电路制造设备的标准化底层控制驱动系统 |
CN102790708A (zh) * | 2012-08-08 | 2012-11-21 | 中国海洋大学 | 一种应用于家庭网络的设备服务适配方法 |
US20130304737A1 (en) * | 2012-05-10 | 2013-11-14 | International Business Machines Corporation | System and method for the classification of storage |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7171475B2 (en) * | 2000-12-01 | 2007-01-30 | Microsoft Corporation | Peer networking host framework and hosting API |
US20120303832A1 (en) * | 2011-05-26 | 2012-11-29 | Raschke Steve | Achieving a uniform device abstraction layer |
CN103316472B (zh) * | 2013-05-17 | 2015-12-23 | 南京睿悦信息技术有限公司 | 一种基于蓝牙手柄的Android设备游戏平台系统及其实现方法 |
CN105183435B (zh) * | 2014-06-13 | 2019-02-26 | 广州昱正信息科技有限公司 | 一种智能控制软件系统 |
US9552226B1 (en) * | 2014-12-31 | 2017-01-24 | VCE IP Holding Company LLC | Predictive order status system and method for computing environment |
-
2016
- 2016-06-27 US US15/193,911 patent/US10791195B2/en active Active
-
2017
- 2017-06-26 CN CN201710494879.3A patent/CN107239416B/zh not_active Expired - Fee Related
- 2017-06-26 CN CN201710494348.4A patent/CN107247597B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101635645A (zh) * | 2009-08-28 | 2010-01-27 | 中兴通讯股份有限公司 | 一种网络拓扑的管理方法及装置 |
CN101909013A (zh) * | 2010-08-16 | 2010-12-08 | 艾默生网络能源有限公司 | 一种可动态配置的信息交换装置 |
CN102185860A (zh) * | 2011-05-10 | 2011-09-14 | 清华大学 | 用于集成电路制造设备的标准化底层控制驱动系统 |
US20130304737A1 (en) * | 2012-05-10 | 2013-11-14 | International Business Machines Corporation | System and method for the classification of storage |
CN102790708A (zh) * | 2012-08-08 | 2012-11-21 | 中国海洋大学 | 一种应用于家庭网络的设备服务适配方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108762824A (zh) * | 2018-04-18 | 2018-11-06 | 青岛海尔科技有限公司 | 一种基于配置文件的设备逻辑处理方法及装置 |
CN111198677A (zh) * | 2018-10-30 | 2020-05-26 | 阿里巴巴集团控股有限公司 | 一种设备对象生成方法、装置及设备 |
CN111562436A (zh) * | 2020-07-15 | 2020-08-21 | 南方电网数字电网研究院有限公司 | 双芯智能电表的设备驱动方法和装置 |
CN112214548A (zh) * | 2020-10-09 | 2021-01-12 | 深圳市智百威科技发展有限公司 | 一种解决多设备智能同步数据的方法 |
CN112799730A (zh) * | 2021-02-18 | 2021-05-14 | 上海元及数据科技有限公司 | 一种对设备进行抽象和封装的方法和系统 |
CN112799730B (zh) * | 2021-02-18 | 2021-08-17 | 上海元及数据科技有限公司 | 一种对设备进行抽象和封装的方法和系统 |
CN114020319A (zh) * | 2021-09-28 | 2022-02-08 | 深圳市潮流网络技术有限公司 | 接口调用的方法、装置、服务器及计算机可读存储介质 |
CN118672627A (zh) * | 2024-07-16 | 2024-09-20 | 上汽通用汽车有限公司 | 配置更新系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107247597B (zh) | 2020-09-11 |
CN107239416B (zh) | 2020-07-03 |
US20170374155A1 (en) | 2017-12-28 |
CN107239416A (zh) | 2017-10-10 |
US10791195B2 (en) | 2020-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107247597A (zh) | 一种为智能设备提供统一抽象表示的设备对象 | |
Alaya et al. | Toward semantic interoperability in oneM2M architecture | |
US10963040B2 (en) | Generating storyboard for a knowledge base in virtual mobile management | |
US8219970B2 (en) | XML push and remote execution of a wireless applications | |
US6836796B2 (en) | System and method to manage network-enabled embedded devices operating under various protocols | |
WO2021073202A1 (zh) | 智能合约处理方法、计算机设备及存储介质 | |
US20130132850A1 (en) | Customized diagrammatic view of a network topology | |
US20050125564A1 (en) | Profiling service for the automatic service discovery and control middleware frameworks | |
JP2006501557A (ja) | ウェブ・ポータルの関連するポートレットが、同期されたコンテンツ表示のために協働することを可能にする方法および装置 | |
JP2006502477A (ja) | ポータル・サーバからセッション情報を中継する方法および装置 | |
US20220166674A1 (en) | Model-driven service rollback mechanism for data integrity | |
US8387039B2 (en) | System and method for customized provisioning of application content | |
US20020069262A1 (en) | Extendable provisioning mechanism for a service gateway | |
CN109117127A (zh) | 程序代码生成方法、装置及计算机可读存储介质 | |
US20030055945A1 (en) | Language and interface for unified network service creation, provision and deployment | |
US11522981B2 (en) | Systems and methods for managing devices using dynamically configurable device and protocols definitions | |
US20050015474A1 (en) | Extensible customizable structured and managed client data storage | |
US11533596B2 (en) | API publish method and apparatus | |
CN102316128A (zh) | 一种用于生成网络服务的方法及装置 | |
Özçelebi et al. | Discovery, monitoring and management in smart spaces composed of low capacity nodes | |
CN106371848B (zh) | 一种web开发框架支持Odata的实现方法 | |
CN116527554A (zh) | 基于服务网格的监测系统、方法、设备及存储介质 | |
US7240068B2 (en) | Service logic execution environment (SLEE) that is running on a device, supporting a plurality of services and that is compliant with a telecommunications computing standard for SLEES | |
CN103687082A (zh) | 一种智能楼宇监控信息处理方法及系统 | |
JP7463458B2 (ja) | 設定情報提供装置、設定情報提供方法、及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200911 |
|
CF01 | Termination of patent right due to non-payment of annual fee |