A Design of IoT Device Configuration Translator for Intent-Based IoT-Cloud Services
Abstract
本文提出了一种用于IoT云服务的IoT设备配置转换器,使不具备IoT环境专业知识的用户能够有效配置其IoT设备。
用户的高级配置(基于自然语言)通过NETCONF(网络配置协议)传递给IoT-cloud平台上的翻译器。
翻译器使用自动机理论和数据库映射信息设计了三个组件,将高级配置转换为适用于物联网设备的低级配置。
I. INTRODUCTION
随着物联网设备的增加,IoT cloud提供商也呈现多样化,支持不同的协议和服务,物联网用户可能无法正确配置。
当物联网用户用自然语言请求物联网设备配置时,高级配置由REST(表示状态传输)格式的JSON或XML数据组成,并使用NETCONF传输到IoT云的翻译器中。翻译器基于自动机理论,其工作原理如下:
- 使用DFA(确定性有限自动机)从高级配置中提取数据。
- 数据转换,将提取的数据转换为底层数据,以便与给定所需的物联网服务进行物联网设备映射。
- 使用CFG(上下文无关语法),用已转换的低级数据生成低级配置。底层配置是YANG模型的XML格式。系统使用传输协议(NETCONF/MQTT)向物联网设备交付底层配置。
II. RELATED WORK
介绍了物联网安全配置和安全策略翻译的相关工作。
A. IoT 安全配置
提出了按需的安全配置技术,并利用翻译器扩展了这种安全配置用于一般IoT设备配置。
B. 安全策略翻译
I2NSF(网络安全功能接口):一个为非网络安全专家的用户提供各种网络安全功能的系统,如WEB过滤器和防火墙。
安全策略转换可以自动找到用户的安全策略。本文将该转换机制扩展到IoT设备配置环境中。
III. 体系结构
A. 配置翻译器体系结构
体系结构由物联网用户、IoT云平台、IoT云提供商(如谷歌云平台、三星ARTIK云)和物联网终端(如IoT设备和传感器)组成:

- 用户的高级配置是基于一个带有NETCONF的YANG数据模型。IoT-cloud平台中的NETCONF模块向翻译器提供用户的高级配置。
- 翻译器通过提取器提取高级配置数据,并使用转换器引用IoT-cloud数据库中的数据库映射信息,将其转换为低级配置数据。
- 最后,生成器为物联网端点创建底层配置。低级配置在各种协议类型(如NETCONF/MQTT)中编码,并传输到要配置的网关或物联网端点。
B. IoT配置数据
两种类型:高级配置和低级配置。
- 高级配置:用于配置IoT设备的信息,表示为JSON格式。为方便用户配置,它支持将基于自然语言的数据配置为字符串类型。
下图为一个高级配置示例。在本例中,用户使用自然语言设置当前温度。

- 低级配置:是高级配置经过IoT设备配置转换器之后的信息。表示为XML格式,可以适用于物联网设备。
下图为一个低级配置示例,可以看到特定的IoT设备配置数据,比如UUID(通用唯一标识符)、命令值和单元以及时间戳。

IV. 配置翻译器的设计
本节介绍物联网设备配置转换器的结构(提取器、转换器和生成器)及其翻译过程。
A. Extractor
提取器是基于DFA的。DFA是一个有限状态机,它通过运行由输入字符串(高级配置)确定的状态序列来接受或拒绝符号。
下图为使用图2中的高级配置示例进行提取的过程。
- 将高级配置的JSON格式更改为XML格式,以便使用提取器
XML格式的特点是每个数据元素由“<” 和 “>” (or “</” 和“>”)之间的符号组成。
- 从Accepter开始,按顺序读取XML数据以识别“<”符号,然后状态被移动。如果提取器读取 “</”符号,它将保存数据值并返回到之前的状态。
例如图4,如果提取器读取了 “” 和 “”时,它们之间的数据值 “testuser”将被保存为一个提取器(Extractor 1),然后当前状态将返回到 “middle 1”,即之前的状态。
- 当最后一个状态返回到Accepter时,提取完成。

B. Converter
该转换器基于IoT-cloud数据库中的映射信息,将高级配置数据转换为低级配置数据。
高级配置数据的ER模型(实体-关系模型)使用userID作为主键、deviceName作为外键,根据映射信息转换相应的数据。由于需要手动映射,当前的映射信息是静态的。但是,当映射信息和转换数据足够时,未来将尝试使用机器学习技术进行自动映射。
下图为数据转换:
-
根据映射信息,高级配置数据的deviceName被转换为低级配置数据的uuid。
-
同样的方式,将高级配置数据的“command”转换为具体的低级配置数据的“name”, “momentary”, “automaticReadout”, “value”, “unit”

C. Generator
生成器基于上下文无关文法(CFG)设计。CFG是一种特定类型的形式语法,由生成非终结符和终结符的规则组成。通过转换器获得的低层配置数据,由以下生成规则生成:

终结符( terminal symbol):终结符是不可拆分的最小元素
非终结符( nonterminal symbol ):非终结符可以再分成更细的东西
- rule(1):表示一个非终结符[config]可以被多次使用。
- rule(2):<tag>和</tag>之间有非终结符[data]。其中[config]匹配XML格式。
- rule(3):以与(2)相同的方式多次使用[rule]来显示可伸缩性。
- rule(4):表示可以通过给终结符[data]分配不同的数据值来生成CFG。
下图描述了使用CFG从低级配置数据生成低级配置XML的过程:

D. 翻译过程
- 物联网用户使用NETCONF向IoT云平台发送JSON或XML格式的高级配置(图2)。
- IoT云平台中的NETCONF模块接收高层配置验证数据,并将配置以XML格式发送给IoT设备配置翻译器(图1)。
- 提取器利用DFA提取高级配置数据(图4),并将数据发送到转换器(图5)。
- 转换器使用数据库中的映射信息将提取的高级配置数据转换为低级配置数据,然后发送到生成器(图6).
- 生成器使用CFG从低级配置数据生成低级配置XML(图3)。
- 低层配置XML通过目标IoT设备协议(如NETCONF/MQTT)交付,用于配置目标IoT设备。
V. CONCLUSIONS AND FUTURE WORK
未来将尝试使用机器学习技术在翻译器中自动映射和转换高级配置到低级配置。