物联网开源数据交换标准BITXML研究
扫描二维码
随时随地手机看文章
引言
自从2009年8月温家宝总理提出“感知中国”以来,物联网被正式列为国家五大新兴战略性产业之一,写入政府工作扌艮告。顾名思义,物联网(InternetofThings,IoT)就是实现“物”与“物”之间的相连通信。通过射频识别(RFID)、红外感应器、全球定位系统、激光扫描器等信息传感设备,按约定的协议,使任何物品与互联网相连接,进行信息交换和通信,实现智能化识别、定位、跟踪、监控和管理。
然而,我国在物联网的核心技术上与国外发达国家还存在一定的差距,部分技术领域还没有掌握核心技术;大部分技术领域落后于国际先进水平,以跟随为主,处在产业链低端。我国企业基本掌握了低端传感器研发的技术,但高端传感器和新型传感器的部分核心技术仍然未掌握。我国仅有组件式传感器的通用标准,新型传感器标准还基本为空白。
物联网标准的关键点和大有作为之处是物物相连的数据表达、交换和处理标准以及相应的软件体系架构。M2M的通信更需要建立一个统一规范的通信接口和标准化的传输内容。数据交换标准主要落地在物联网DCM三层体系的应用层和感知层,配合传输层通道,目前国外已提出很多标准,BITXML便是应用层可行性比较高的协议之一。
XML(ExtensibleMarkupLanguage)即可扩展标记语言。XML是为互联网的数据交换而设计的。它可以为构建数据提供一种高度结构化的、易于处理的方式,而且能够存储、交换数据,从而使WEB信息交流更便捷。
BITXML是在XML基础上定义而成的一个协议标准。BITX由意大利M2M厂商YourVoice发起,并有西门子、爱立信等M2M领域的知名厂商参与,专门针对M2M应用开发数据标准,并对其代码开源,以便于标准的共同完善。BITXML是一个开放的,面向M2M数据传输的通信协议。一些公司和组织正在制定M2M国际数据标准,但目前影响力不大。M2M数据标准是指M2M行业应用设备和应用平台的数据标准。目前比较多的公司和标准组织都是基于XML来制定的,比如OASIS的oBIX标准、BITX的BITXML标准,国内有同方的oMIX标准。其中BITXML标准比较受到国际认可,有成为国际主流标准的趋势。
1 BITXML协议模型
BITXML是一种可读性强和易于扩展的协议规范,包括对不同的I/O端口,网络协议和核心功能的支持。BITXML旨在用一种简单有效的方式来表达命令和控制过程,使每个M2M项目都拥有一个可以参考的框架。基于BITXML协议的体系结构参考模型如图1所示。
BITXML命令/回复
图1 BITXML体系结构模型
BITXML体系结构模型中,BITXML网关应用程序可以把任何一种使用BITXML语言的应用软件都作为一个“智慧”的远程执行模块;而对于BITXML控制器来说,任何一种使用BITXML语言应用软件,都可以作为主控模块来控制一个或多个网关应用程序;它的网络传输包括任何一种网络传输层;再就是I/O端口一般的物理或逻辑设备的控制端口都可以连接到任何的I/O端口上,而且I/O端口可以支持包括从模拟和数字的GPIO、定位装置、串行端口到用户自定义(逻辑)端口等;事实上,任何逻辑或物理设备都可以连接到可用的I/O端口。
BITXML体系结构是由以上五个部分组成的,首先可由BITXML控制器同过网络传输将BITXML事件传送给BITXML网关应用程序,再由网关应用程序发送至输入输出端口,最终将事件指令传送给外部设备执行。同时,BITXML网关应用程序再把回复送回控制器。
2 BITXML网关应用程序的处理过程
BITXML网关应用程序的参考模型标准如图2所示。BITXML网关应用程序一般由网络层(图2右侧)和设备/端口驱动包围,其中网关可分成同步处理和异步处理两个主要的逻辑部分。
2.1异步处理
异步处理涉及几个执行单元,每一个单元完成一个系统内定义函数。异步处理单元包括状态监控器、历史监控器、重新配置监控器。
状态监控器:系统上已经预先安装了一些状态,等待相匹配的状态触发,一旦发现有可匹配的状态,就会生成事件,并将此事件发送给大主控单元。
历史监控器:系统上安装了一系列由监控器执行的端口状态的请求,任何状态的答复都将存储在本地非易失性的固定大小的FIFO区。历史记录会用一种可编程的方式发送到主单元。
重新配置监控器:系统安装的日程安排表,可使得监控器定期检查是否有重新配置的需要。
2.2同步处理
BITXML网关应用程序从网络传输层接收BITXML指令,并返回此指令执行结果,同时产生一个端口指令。同步处理各单元的功能如下:
BITXML服务器:网络客户端与控制单元相连,以接收BITXML命令,并由命令解释器执行,然后返回相应的结果。
BITXMLDNS:这是一个自定义协议的客户端,连接网关可以使网关动态分配网络地址(如GPRS或Wi-Fi网络设备)。DNS负责连接到控制器,用来注册网关,并在操作超时时使网络保持连接。
网关应用程序有同步处理过程和异步处理过程两个逻辑部分:在同步处理过程中,BITXML服务器负责处理由网络传输层发来的BITXML命令并回复上级命令,再将处理后的命令传送给BITXML协议命令分析器进行分析处理;在异步处理过程中,BITXML协议命令分析器会与历史监控器和状态监控器不断收发指令,同时,将事件通过网络传输层最终传送回上级BITXML控制器。
2.3网关应用程序状态
网关应用程序的状态可以配置为连接、断开和自定义三种。处于连接状态的网关应用程序必须运行该协议的服务器和DNS客户端,同时可运行状态和历史监控器;断开状态网关的应用程序不能运行协议服务器和DNS客户端,必须运行至少一个历史或状态监控器;自定义应用程序在遵从由协议定义的消息流下,可使用任何配置;而重新配置监控器可以运行任何类型的网关应用程序。
3 BITXML数据流
标准网关应用的主要预定义的信息流的六种情景:网关初始化、初始化错误、状态监测数据流、历史监控数据流、命令服务器、重新配置检查数据流。激活一个网关应用程序需要激活一系列的参考模型中所描述的子进程,这意味着,与网关相连的各个异步事件发生器都需要进行初始化(如状态监测、历史监测、重构检查)。BITXML数据流包括以下几种:
(1)初始化错误数据流。很多原因都可能会导致初始化错误,例如网关内部故障,不正确的初始化等。初始化出错只需重新启动初始化序列就可以了。
(2)状态监测数据流。状态监测是网关应用程序内部的一个子进程,用于定期检查配置的状态,并当一个或多个状态值为true时,将事件发送给主控器。
(3)历史监测数据流。历史监测器也是网关应用程序内部的一个子进程,用于定期生成状态值,并在FIFO持久缓冲区收集这些状态,然后发送历史事件(状态值序列)。
(4)命令服务数据流。命令服务器是一个连接网关应用程序的子进程。这里的连接具有双重含义:首先,从应用的角度来看,连接意味着在任何时间,命令都有可能被发送到网关,从而需要在控制设备中瞬间激活或检索数据;其次,从网络传输来看,一个连接意味着网关和控制器(或它的逻辑部分在这个文件命名的桥)之间保持连接,以便支持先前应用程序。
(5)重新配置检查数据流。重新配置检查器是一个网关应用程序外部的子进程,用于定期发送REINIT系统事件。
4结语
物联网标准的关键是基于软件和中间件的数据交换和处理标准。“一流企业做标准”,这是“地球人都知道”的物联网产业界的共识,也是很多企业乃至一个国家战略层面想达到的制高点。BITXML只是物联网应用层的各种标准之一,对于我国物联网标准的制定有着积极的参考意义。
20210908_61383c08a834e__物联网开源数据交换标准BITXML研究