首页 / 专利库 / 电脑零配件 / 计算机系统 / 软件 / 软件套件 / 软件组件 / 规则引擎 / 一种仿真物联网资源服务系统及方法

一种仿真物联网资源服务系统及方法

阅读:1025发布:2020-07-04

专利汇可以提供一种仿真物联网资源服务系统及方法专利检索,专利查询,专利分析的服务。并且本 发明 提供一种仿真 物联网 资源服务系统,包括交互层、引擎层和数据层;数据层用于生成仿真物理数据并将各个时刻和 位置 下的仿真物理数据传递给引擎层中相应的物联网资源,作为该物联网资源在对应时刻和位置所采集的仿真数据;引擎层用于生成和维护物联网资源;交互层用于封装引擎层的物联网资源,向外部提供物联网资源的统一 访问 入口;以及向外部返回所命中的物联网资源所采集的仿真数据。本发明还提供了相应的仿真物联网资源服务方法。本发明能够提供海量的仿真传感数据服务,使得待调试物联网设备和系统能够在接近真实的测试环境下完成调试或测试。并且,待调试物联网设备和系统能够与仿真平台之间进行大量的实时交互,拓宽了应用领域。,下面是一种仿真物联网资源服务系统及方法专利的具体信息内容。

1.一种仿真物联网资源服务系统,其特征在于,包括交互层、引擎层和数据层;
所述数据层用于生成仿真环境数据并将各个时刻和位置下的仿真环境数据传递给引擎层中相应的物联网资源,作为该物联网资源在对应时刻和位置所采集的环境信息;
所述引擎层用于生成、执行和维护物联网资源;
所述交互层用于封装引擎层的物联网资源,通过资源访问接口向外部提供物联网资源的统一访问入口,所述资源访问接口支持的协议包括CoAP、HTTP、TCP;以及向外部返回所命中的物联网资源所采集的环境信息;
其中,所述物联网资源为基于资源配置文件的用于表征物联网设备的功能的虚拟物联网设备,所述资源配置文件定义所述物联网资源所有可能的执行状态和这些状态之间的转换规则。
2.根据权利要求1所述的仿真物联网资源服务系统,其特征在于,所述交互层还用于通过交互界面,从外部读入用户创建、配置、控制物联网资源的请求,生成标准格式的配置文件并将所述配置文件分别发送给引擎层和数据层。
3.根据权利要求2所述的仿真物联网资源服务系统,其特征在于,所述交互层包括:
任务与环境配置工具,用于提供设置物联网资源的数量、运行参数的界面,以及对各类环境模型进行调整的界面;还用于在接收到设置物联网资源的数量、运行参数的命令之后,或者接收到对各类环境模型进行调整的命令之后,将这些命令参数格式化为配置文件并发送到引擎层进行解析;
用户访问接口,用于提供系统运行控制功能,它为每个已经配置的任务提供实时交互的命令的输入界面;以及
资源访问接口,用于封装引擎层的物联网资源,向外部提供资源的统一访问入口。
4.根据权利要求3所述的仿真物联网资源服务系统,其特征在于,所述引擎层包括:
任务解析器,用于解析配置文件的种类,并根据解析结果将相应的配置文件发送给资源配置模、场景配置模块或者任务配置模块;
资源配置模块,用于解析资源配置文件,获得资源的运行行为、资源的输入输出方式以及外界通过资源访问接口进行访问时支持的协议,并将每个资源运行的行为以状态转换图的形式存储在内存中;
任务配置模块,用于从任务解析器获得并解析任务配置文件,并将解析结果发送给任务构建模块,其中任务配置文件定义了每次任务的起始时间以及每次任务需要何种资源的参与;
控制命令解析器,用于实时响应用户对任务发送的控制命令;
资源调度器,用于根据资源配置文件中定义的资源行为规则维护所生成的物联网资源;还用于根据资源配置模块发送来的资源执行的行为以及任务配置模块发送的任务安排,并对每个任务的执行进行对应调度、按需从数据层获取仿真环境数据以及对资源容器中所维护的资源进行定时的更新;
资源容器,用于存放系统生成的资源,其被存储为根据资源的行为定义存储资源本身所处的执行状态;以及
协议库与性能库,用于支持不同种类的协议以及定义常规性能测量方法。
5.根据权利要求4所述的仿真物联网资源服务系统,其特征在于,所述数据层包括:
环境库,用于存储常规的环境模型和规则,设计不同地形、场景、环境属性类型下的基本参数信息;
环境配置模块,用于根据用户指定的场景配置文件,读取环境库中模型的基本参数,为新任务生成对应的场景;所述场景配置文件的内容包括设备本身的位置信息、使用何种场景以及场景的初始参数;
环境模型生成模块,用于以场景的配置信息和真实数据为输入,通过对少量真实数据的回归分析,建立指定场景下的环境模型以生成物联网资源执行所需数据;以及物理数据获取模块,用于支持从外围设备实时读入数据。
6.一种基于权利要求1~5中任意一项所述的仿真物联网资源服务系统的仿真物联网资源服务方法,包括下列步骤:
1)创建物联网资源;
2)创建物联网资源所处的场景;
3)根据任务配置文件使各个物联网资源执行对应的任务;
4)对外界请求进行响应。
7.根据权利要求6所述的仿真物联网资源服务方法,其特征在于,所述步骤1)中,创建物联网资源包括:根据资源的输入输出形式与执行状态变化的规则、资源所处场景的形式、整个任务需要什么类别与多少数量的资源,为任务的启动与执行在引擎层创建物联网资源,所述交互层向用户返回操作是否成功,并同时生成资源配置文件、场景配置文件、任务配置文件。
8.根据权利要求7所述的仿真物联网资源服务方法,其特征在于,所述步骤2)中,创建物联网资源所处的场景包括:数据层对实验场景进行建模,利用配置文件和函数库中的模型,以及外部数据集或实时读入的数据,完成对物理环境的模拟,数据层根据配置文件对原始的真实数据进行拆分或合并,之后根据引擎层发起的请求,返回不同种类的仿真环境数据,所述仿真环境数据需求由引擎层发送给数据层,数据层异步地、连续地生成环境信息,以维护引擎层中的物联网资源。
9.根据权利要求8所述的仿真物联网资源服务方法,其特征在于,所述步骤4)中,对外界请求进行响应包括:交互层首先拦截用户的请求,将请求发送到引擎层,引擎层判断现有物联网资源是否可以满足当前的请求,是否需要对资源进行维护,是否需要创建新的物联网资源,以及是否需要向数据层请求新的仿真环境数据;然后基于上述判断结果,引擎层获取相应的响应,并将这条响应投递给交互层,由交互层对数据进行封装并作为用户请求的结果返回。

说明书全文

一种仿真物联网资源服务系统及方法

技术领域

[0001] 本发明涉及物联网技术和仿真技术领域,具体地说,本发明涉及一种仿真物联网资源服务系统及方法。

背景技术

[0002] 随着物联网需求的快速增长,为了保障物联网设备与后台服务的功能与性能需求,需要在物联网系统开发阶段进行大量的调试、测试工作。现有技术中,存在专服务于物联网的调试与测试的工具,如实验床、物联网仿真工具,以及半实物物联网仿真平台等,但现有工具存在不同方面的功能缺失,往往无法满足物联网设备之间、设备与后台服务之间的测试需求。
[0003] 其中,实验床方法通过在与生产环境类似的物理环境中部署大量的物联网设备节点和相应软件实现。通过评估这些设备节点的执行状态对物联网设备在真实环境下的运行状态进行模拟和测试。WISBED、FIT Iot-lab是当前两类功能最为完整的实验床,这两类实验床可以包含大量异构的、移动性的节点,可满足基本的物联网仿真任务的需求。但这种使用真实节点进行模拟具有较高的开发和部署成本。尤其是当待调试物联网需要海量的传感器数据服务时,这种真实节点的实验床无法满足。
[0004] 物联网仿真工具通过现有的信号、设备执行模型,对物联网设备进行软件建模,通过使用PC进行离散仿真或其他类似手段,对物联网系统在真实环境中的执行过程进行模拟。诸如Tossim、INET等仿真器就是典型的物联网仿真工具,它们偏重于对无线通讯协议、路由协议性能的测试,而对基本的物联网功能支持不足。并且,在与物理环境参量(例如温度、湿度)作为感知输入的场景中,使用现有的物联网仿真工具需要通过编程定义大量环境模型,使用十分不便,且难以保证仿真的真实性。尤其是在物理环境本身动态多变的情况下,使用软件仿真往往会导致最终结果与实际结果有较大的偏差。
[0005] 半实物物联网仿真平台是实验床方法和仿真方法的结合,它试图保留两者的优势。半实物仿真一般使用少量部署于环境中的真实设备,基于真实设备所测传感数据,依据一定的模型进行扩展,生成大量的仿真数据。这种方案可更真实地模拟和调试节点程序,然而,现有的半实物物联网仿真平台的场景重现能较弱,应用领域受限,尤其是难以支持交互性要求较高的物联网仿真调试和测试。这里交互性要求较高主要是指:物联网仿真调试和测试过程中,待调试物联网设备与仿真平台之间需要进行大量的实时交互。
[0006] 综上所述,当前迫切需要一种交互性好、能够为物联网调试提供海量的传感数据服务的解决方案。

发明内容

[0007] 本发明的任务是提供一种交互性好、能够为物联网调试提供海量的传感数据服务的解决方案。
[0008] 本发明提供了一种仿真物联网资源服务系统,包括交互层、引擎层和数据层;
[0009] 所述数据层用于生成仿真物理数据并将各个时刻和位置下的仿真物理数据传递给引擎层中相应的物联网资源,作为该物联网资源在对应时刻和位置所采集的仿真数据;
[0010] 所述引擎层用于生成和维护物联网资源;
[0011] 所述交互层用于封装引擎层的物联网资源,向外部提供物联网资源的统一访问入口;以及向外部返回所命中的物联网资源所采集的仿真数据。
[0012] 其中,所述交互层还用于通过交互界面,从外部读入用户创建、配置、控制物联网资源的请求,生成标准格式的配置文件并将所述配置文件分别发送给引擎层和数据层。
[0013] 其中,所述交互层包括:
[0014] 任务与环境配置工具,用于提供设置物联网资源的数量、运行参数的界面,以及对各类环境模型进行调整的界面;还用于在接收到设置物联网资源的数量、运行参数的命令之后,或者接收到对各类环境模型进行调整的命令之后,将这些命令参数格式化为配置文件并发送到引擎层进行解析;
[0015] 用户访问接口,用于提供系统运行控制功能,它为每个已经配置的任务提供实时交互的命令的输入界面;以及
[0016] 资源访问接口,用于封装引擎层的物联网资源,向外部提供资源的统一访问入口。
[0017] 其中,所述引擎层包括:
[0018] 任务解析器,用于解析配置文件的种类,并根据解析结果将相应的配置文件发送给资源配置模、场景配置模块或者任务配置模块;
[0019] 资源配置模块,用于解析资源配置文件,获得资源的运行行为、资源的输入输出方式以及外界通过资源访问接口进行访问时支持的协议,并将每个资源运行的行为以状态转换图的形式存储在内存中;
[0020] 任务配置模块,用于从任务解析器获得并解析任务配置文件,并将解析结果发送给任务构建模块,其中任务配置文件定义了每次任务的起始时间以及每次任务需要何种资源的参与;
[0021] 控制命令解析器,用于实时响应用户对任务发送的控制命令;
[0022] 资源调度器,用于根据资源配置文件中定义的资源行为规则维护所生成的物联网资源;还用于根据资源配置模块发送来的资源执行的行为以及任务配置模块发送的任务安排,并对每个任务的执行进行对应调度、按需从数据层获取仿真物理数据以及对资源容器中所维护的资源进行定时的更新;
[0023] 资源容器,用于存放系统生成的资源,根据资源的行为定义,存储资源本身所处的执行状态;以及
[0024] 协议库与性能库,用于支持不同种类的协议以及定义常规性能测量方法。
[0025] 其中,所述数据层包括:
[0026] 环境库,用于存储常规的环境模型和规则,设计不同地形、场景、环境属性类型下的基本参数信息;
[0027] 环境配置模块,用于根据用户指定的场景配置文件,读取环境库中模型的基本参数,为新任务生成对应的场景;所述场景配置文件的内容包括设备本身的位置信息、使用何种场景以及场景的初始参数;
[0028] 环境模型生成模块,用于以场景的配置信息和真实数据为输入,通过对少量真实数据的回归分析,建立指定场景下的环境模型以生成物联网资源执行所需数据;以及[0029] 物理数据获取模块,用于支持从外围设备实时读入数据。
[0030] 本发明还提供了一种基于上述仿真物联网资源服务系统的仿真物联网资源服务方法,包括下列步骤:
[0031] 1)创建物联网资源;
[0032] 2)创建物联网资源所处的场景;
[0033] 3)根据任务配置文件使各个物联网资源执行对应的任务;
[0034] 4)对外界请求进行响应。
[0035] 其中,所述步骤1)中,创建物联网资源包括:根据资源的输入输出形式与执行状态变化的规则、资源所处场景的形式、整个任务需要什么类别与多少数量的资源,为任务的启动与执行在引擎层创建物联网资源,所述交互层向用户返回操作是否成功,并同时生成资源配置文件、场景配置文件、任务配置文件。
[0036] 其中,所述步骤2)中,创建物联网资源所处的场景包括:数据层对实验场景进行建模,利用配置文件和函数库中的模型,以及外部数据集或实时读入的数据,完成对物理环境的模拟,数据层根据配置文件对原始的真实数据进行拆分或合并,之后根据引擎层发起的请求,返回不同种类的仿真物理数据,所述仿真物理数据需求由引擎层发送给数据层,数据层异步地、连续地生成仿真数据,以维护引擎层中的物联网资源。
[0037] 其中,所述步骤4)中,对外界请求进行响应包括:交互层首先拦截用户的请求,将请求发送到引擎层,引擎层判断现有物联网资源是否可以满足当前的请求,是否需要对资源进行维护,是否需要创建新的物联网资源,以及是否需要向数据层请求新的仿真物理数据;然后基于上述判断结果,引擎层获取相应的响应,并将这条响应投递给交互层,由交互层对数据进行封装并作为用户请求的结果返回。
[0038] 与现有技术相比,本发明具有下列技术效果:
[0039] 1、本发明能够为物联网设备的调试提供海量的仿真传感数据(特别是环境数据)服务,使得物联网能够在接近真实的测试环境下完成调试或测试。
[0040] 2、本发明不仅能够为物联网设备调试提供环境数据服务,还能够模拟真实传感器的行为,这使得本发明的仿真系统对于待调试物联网设备来说是透明的,即待调试物联网设备从仿真系统获取环境数据的方法与该待调试物联网设备通过调用真实传感器获得环境数据的方法是一致的。
[0041] 3、基于本发明的仿真系统进行物联网仿真调试或测试的过程中,待调试物联网设备能够与仿真平台之间进行大量的实时交互,从而拓宽了物联网仿真调试或测试的应用领域。
[0042] 4、本发明通过将物联网设备功能抽象成为资源,能够以较小的开销生成海量的环境数据,进而为物联网仿真调试或测试提供仿真数据服务。附图说明
[0043] 以下,结合附图来详细说明本发明的实施例,其中:
[0044] 图1示出了本发明一个实施例的仿真物联网资源服务系统的架构示意图;
[0045] 图2示出了本发明一个实施例的仿真物联网资源服务系统的运行流程时序图;
[0046] 图3示出了本发明一个实施例中的资源创建流程示意图;
[0047] 图4示出了本发明一个实施例中的场景创建流程示意图;
[0048] 图5示出了本发明一个实施例中的任务执行流程示意图;
[0049] 图6示出了本发明一个实施例中的外界请求响应流程示意图;
[0050] 图7示出了本发明一个实施例中的资源配置文件实例;
[0051] 图8示出了本发明一个实施例中的场景配置文件实例;
[0052] 图9示出了本发明一个实施例中的任务配置文件实例。

具体实施方式

[0053] 根据本发明的一个实施例提供了一种仿真物联网资源服务系统,以便为物联网调试提供海量的、可交互的传感数据服务。其中,仿真物联网资源是将物联网设备的功能抽象而成的物联网资源,本文中的物联网资源也可以视为虚拟物联网设备,本实施例的仿真物联网资源服务系统能够生成海量的虚拟物联网设备并为待调试物联网设备提供相应的服务,待调试物联网设备能够像访问真实物联网设备一样地访问本实施例中的虚拟物联网设备并获取用于调试的仿真传感器数据(例如温度、湿度等环境数据),从而模拟物联网中设备之间、设备与后台之间的交互过程,实现调试。
[0054] 本实施例中,采用了一种三层结构来实现仿真物联网资源服务系统。这三层结构分别为数据层、引擎层和交互层,数据层负责物理数据模型的生成,引擎层负责物联网资源的控制与维护,交互层负责与外界的交互功能。图1示出了本实施例的仿真物联网资源服务系统的架构。其中方框表示各个功能组成模块。空心箭头表示层与层之间的控制操作,实线箭头表示系统内部的数据走向。以下对这些层次和模块进行详细介绍。
[0055] 交互层面向用户提供配置接口、控制接口,且面向外部被测系统提供物联网资源外部访问接口。交互层通过交互界面,从外部读入用户创建、配置、控制物联网资源的请求,生成标准格式的配置文件,分别发送给引擎层和数据层。同时从引擎层获得系统产生的物联网资源(为便于描述,本文中有时会将物联网资源简称为资源,下文中不再赘述),为外部访问这些资源提供统一的访问接口。交互层包括以下三个主要功能模块:(1)任务与环境配置工具,用户能够通过该工具可以方便地设置物联网资源的数量、运行参数,也可以对各类环境模型进行相应的调整。该工具具体的呈现形式为Web页面。该模块收集到完整的用户命令之后,将这些命令参数发送到引擎层任务解析器进行解析。(2)用户访问接口,为用户提供系统运行控制功能。该接口将为每个已经配置的任务提供包括启动、中止、暂停实时交互的命令。(3)资源访问接口,用于进一步封装引擎层的物联网资源,向外部提供资源的统一访问入口。具体地,该资源访问接口支持CoAP、HTTP、TCP等多种协议,外部系统可使用这些协议方便地接入系统,像访问真实设备一样访问仿真资源。
[0056] 引擎层从交互层获取资源配置文件(配置文件含有用户需求),接收数据层发送的仿真数据,生成、执行和维护物联网资源。引擎层包括以下7个模块:(1)任务解析器,用于解析用户向仪器下达的任务配置。任务配置工具最终会生成资源配置文件(图7)、场景配置文件(图8)以及任务配置文件(图9),并对应将这三类文件发送到资源配置、环境配置和任务模块。(2)资源配置模块用于解析资源配置文件,即用户对于资源行为的配置。解析结果为资源的运行行为、资源的输入输出方式以及外界通过资源访问接口进行访问时支持的协议。每个资源运行的行为以状态转换图的形式存储在内存中。(3)任务配置模块用于从任务解析器获得并解析任务配置文件,并将解析结果发送给任务构建模块。任务配置文件定义了每次任务的起始时间以及每次任务需要何种资源的参与。(4)控制命令解析器,用于实时响应用户对任务发送的控制命令。(5)资源调度器,用于根据资源配置中定义的资源行为规则维护生成的资源。调度器将整合资源配置模块发送来的资源执行的行为以及任务配置模块发送的任务安排,并对每个任务的执行进行对应调度、按需从模型生成模块获取数据以及对资源容器中所维护的资源进行定时的更新。(6)资源容器,用于存放系统生成的资源。具体的存储方法是根据资源的行为定义,存储资源本身所处的执行状态。(7)协议库与性能库,前者用于支持不同种类的协议,后者用于定义常规性能测量方法。引擎层的输入有包含任务执行过程的控制、参数的动态调整等指令在内的用户控制信息输入,以及数据层为满足资源执行需求生成的仿真数据序列。引擎层输出包括根据资源配置、任务配置计算得到的仿真数据需求,以及容器中的一组可访问的物联网资源。
[0057] 数据层用于整合数据来源并为物联网资源生成提供数据(例如符合系统预设参数和用户配置的场景信息的仿真传感数据)。数据层包含4类功能组件:(1)环境库,用于存储常规的环境模型和规则,设计不同地形、场景、环境属性类型下的基本参数信息。当任务启动时,环境库需要将这些相关参数信息发送到环境配置模块,结合用户指定的场景配置文件,构建一个新的场景,用于定义仿真的资源在执行期间所处的环境。(2)环境配置模块,用于根据用户指定的场景配置文件,读取环境库中模型的基本参数,为新任务生成对应的场景。场景配置文件的内容包括设备本身的位置信息、使用何种场景以及场景的初始参数。(3)环境模型生成模块,以场景的配置信息和真实数据为输入,通过对少量真实数据的回归分析,建立指定场景下的环境模型以生成资源执行所需数据。模型生成需要从环境配置模块读取不同任务的场景配置,并且从外部真实数据采集单元获得真实环境信息,以进行扩充生成更为充足的环境数据。(4)物理数据获取模块,用于支持从外围设备实时读入数据。
整体上,数据层根据资源生成任务的需求,通过预设参数模型和内置环境库,创建物理场景模型,以生成满足需求的仿真数据序列。数据层的输入支持真实数据集和实时数据两类。系统可以根据这两类数据的输入为物理场景建模,生成满足使用者需求的仿真数据序列。数据层以按需生成的方式输出仿真环境数据,供给引擎层中容器所维护的仿真物联网资源。
[0058] 在以上的整体架构基础上,系统各个模块协同执行,以生成物联网资源。系统的整体执行流程以及各部分之间的交互序列可参照序列图2。图中涵盖了三种基本的业务流程:任务创建、任务维护与外界请求响应。不同模块作为独立服务运行,依靠高性能消息机制保持执行的同步。为了更清晰地介绍执行过程,将资源容器单独列为一个部分。
[0059] 在任务创建过程中,交互层将通过用户的输入生成配置文件,发送到引擎层进行解析。引擎层解析配置文件后,根据文件中的内容生成数据需求,发送至数据层,同时按配置生成物联网资源并存入到容器中。引擎层将根据容器的运行情况对每个资源进行维护,如果资源需要新数据,则将生成新的数据需求并通知数据层;数据层根据需求生成对应数据,返回给引擎层,用于容器维护;在任务维护过程中,为了更真实地模拟物联网资源的特性,容器中的资源将具有自主对外发起连接的能力,资源对外发送的数据将由交互层根据配置使用不同的协议进行封装。当外部待测物联网系统或设备向本实施例的仿真系统发起请求时,该请求将由交互层进行拦截,之后向引擎层所维护的资源进行查询,同时更新数据层的数据生成需求。
[0060] 下面以使用系统对某种携带GPS的设备进行测试为例,介绍仿真系统的运行方式。该仿真系统使用PC平台,使用Java作为编程语言,使用MySQL存储各类配置信息和环境模型,使用Redis作为消息通讯中间件
[0061] 仿真系统的运行方法(可视为提供仿真物联网资源服务的方法)包括下列步骤:
[0062] 步骤1:创建资源。系统根据用户的资源配置进行系统初始化,生成对应的资源模型。用户使用交互层提供的接口完成对资源类型的定义。资源创建的整体过程如图3所示。
[0063] 本实施例中,系统以Web页面的形式定义资源的输入输出形式与执行状态变化的规则、资源所处场景的形式、整个任务需要什么类别与多少数量的资源,为任务的启动与执行进行准备。交互层会向用户返回对应的请求结果,显示操作是否成功,并同时生成资源配置文件、场景配置文件、任务配置文件,这些配置文件使用XML的形式进行存储。
[0064] 以下详细介绍资源配置文件的内容。资源配置文件通过定义每种资源所有可能的执行状态和这些状态之间的转换,定义了资源的执行行为,一个具体的实例如图7所示。每份配置文件将对应定义一份资源,配置文件的内容包括:指定资源涉及的所有输入输出数据的类型的“资源变量定义域”,即标签中的内容;指定资源可能处于的所有状态的“资源状态定义域”,即标签中的内容;指定资源在不同状态之间的转换的“资源状态转换域”,即中的内容。
[0065] 资源变量域包含一到多条数据条目,每个条目通过指定数据序列的名称、数据类型、输入输出类型组成。数据序列名称可以是任意字符串,数据类型支持int、double、数值对、字符串,输入输出类型为in、out或local,含义分别为输入、输出和内部变量。
[0066] 资源状态域中包含至少一条状态,资源每个状态中可以执行若干操作,每种操作都是从输入数据中获取数据、加工之后返回到指定的输出序列中。其中标签定义了在执行该状态的操作时输入数据的来源,其中内容需是在中输入输出类型为in或local的数据序列,其中frequency字段为数据输入到资源的频率标签定义了该执行操作的方式,内容为中类型为local或out的数据序列。均使用标签定义数据的类型,data中的type对应中数据序列的名称。资源状态域也支持赋值和四则运算等数值操作,以及简单的如随机数等数学函数,使用标签完成,如例子中的意义为将名称为gps的数据的值放入到名称为recent_position的变量中。资源状态转换域中可不包含、包含单个、多个状态转换条目。状态转换的规则细节使用定义,每个规则中,如果当前变量的条件满足condition字段中的定义,那么将从from字段中的状态转换到to字段中的状态。condition字段支持大于小于等简单比较运算符。资源状态转换也支持对应的set关键字,用于额外的操作。
[0067] 最后,配置文件中的特殊字符“${key}”的意义为,从变量名为key的变量中获得具体的值,该变量是在中进行定义的。配置文件中会有大量类型为local的变量,其目的是为了辅助计算。配置文件中使用“__XX”的形式定义简单数学函数,如“__log”定义的指数运算。
[0068] 需明确,以上资源配置文件中的条目,可以直接对应到动态Web页面中,用户可直接通过输入框、选择框的形式,指定资源的行为,交互层以此生成对应的资源配置文件。系统提供“资源变量域”Web页面,使用动态的呈现方式,用户可自由输入多个条目,每个条目包括“数据序列名称”、“数据类型”、“输入输出类型”,这些内容会在用户提交之后对应生成标签中对应的name、value_type、type条目。“资源状态域”相关页面,资源状态数目可动态扩展,每个状态包含“状态输入数据”、“状态输出数据”、“数据操作”,分别对应生成上文介绍的标签中的内容,其呈现采用与“资源变量域”相同的方式。资源状态转换每条规则包含“初始状态”、“目标状态”、“转换条件”,分别对应生成from、to、condition字段中的内容。Web页面呈现形式与前文一致。
[0069] 步骤2:创建场景。仿真调试中的任务创建往往要考虑物联网资源运行所依赖的实验场景。数据层对实验场景进行建模,利用用户的配置文件和函数库中的模型,以及外部数据集(用户指定的)或实时读入的数据,完成对物理环境的模拟。数据层需要根据用户设置,对原始的真实数据进行拆分或合并,之后根据引擎层发起的请求,返回不同种类的数据。数据需求将由引擎层发送给数据层,数据层异步地、连续地生成仿真数据,以维护引擎层容器中的物联网资源。
[0070] 场景定义了大量数据序列的产生方式,这些数据序列在之后的任务执行过程中为不同资源提供输入。场景配置文件详细定义了资源执行所处于的场景,用户通过交互层产生的场景配置文件为图8所示。场景配置文件包含四部分内容:数据源定义域、变量定义域、初始化域、更新方法域。数据源定义域对应标签,定义了外部接入的、用于通过真实数据扩展产生海量数据的配置方式,实施上通过真实传感器节点连接系统实现。其中,标签显示了每个提供真实数据的外部传感器的部署位置;定义了真实数据输入系统之后构成的环境模型的输入。在下文提供数据的中,如“”,根据标签中的输入定义,可以利用环境模型,确定指定输入下对应的输出。
[0071] 变量定义域对应标签,类似资源配置,定义了场景可能提供的数据输入输出,以及内部变量,变量的这类特性由type字段进行区分。初始化域对应标签,规定了该场景在最初执行时部分变量的赋值情况。更新方法域对应了在场景每次进行更新和维护时,每个变量的变化与输出情况,其中每项param均对应一个变量。这里较为特别地是使用到中的数据的变量,例如图8中的sound_level使用到了真实数据产生的模型campus_sound,此时,需要参照中定义的参数形式,通过“”指定模型的数据输入,即“”。
[0072] 场景配置文件由交互层生成的方式与资源配置文件的规则相同,均是对应每个标签,通过动态页面为用户提供输入或选择框的方式进行交互,故不再一一详述。
[0073] 步骤3:任务执行。当用户完成资源和任务的定义之后,可以使用任务配置文件定义调度器的行为,开始执行资源生成任务。调度器控制引擎层和数据层模块的运行,维护容器中的虚拟资源,根据虚拟资源产生的事件协调数据层生成的数据内容。任务执行流程如图4所示。
[0074] 其中,任务配置文件定义了完整任务执行流程,其内容包括:资源的数目、资源的执行计划、资源类型、资源场景变化。任务配置文件的一个实例如图9所示。中的from和to分别定义了起始和终止的时间。任务中需要生成的不同种类的虚拟资源,其中resource_type字段对应每个资源配置文件标签中的id字段,group字段是每种资源的组别,目的是定义在同一个场景下有多种资源的情况。定义了该任务涉及到的不同的场景配置,其中scenario_type对应每个场景的id,group为每个资源的组别的id。资源类型和资源场景变化分别对应上文的资源定义和场景定义,可通过id字段直接指定。图9定义了两类资源和三个资源执行的时间片段
[0075] 在任务执行部分所涉及的引擎层的实现方面,系统使用Java多线程机制实现维护容器中每个资源的运行维护。出于效率考虑,容器以及其中维护的物联网资源直接存放于内存,容器采用事件队列的方式,引擎层依次更新每个虚拟资源的状态和需要使用的数据。计算完成之后,容器将统一向数据层发起请求获得对应数据。具体实施中,任务在生成过程中,引擎层读入并解析资源配置、任务配置两类描述信息,并通过Redis消息队列的形式,将任务启动命令和数据生成所需场景配置文件发送到数据层。外界请求响应可以发生在任何周期,如果请求命中容器中的一个虚拟资源,则更新该虚拟资源的状态,并对应状态变化向数据层发送数据需求变更。对应本例,根据资源配置中的规定,引擎层容器将定期检查其中的每个资源的执行状态是否会发生变化。具体方式是扫描配置文件中对应的条件是否满足,若满足则对容器中资源的执行状态进行更新。
[0076] 步骤4:外界请求响应。引擎层资源执行时,可以根据资源配置,响应外界不同类别、不同协议的请求。请求响应的流程如图5所示。
[0077] 交互层首先拦截外界请求(包括外部物联网系统或物联网设备发起的请求),将请求发送到引擎层,引擎层将检查容器中现有资源是否可以满足当前的请求,是否需要对资源进行维护,是否需要对资源进行创建,以及是否需要向数据层请求新的模型数据。引擎层最终将获得资源的响应,并将这条响应投递给交互层,由交互层对数据进一步的封装,返回请求的结果。
[0078] 本例中,外界可使用CoAP协议访问容器中执行的GPS资源。根据资源配置文件中的定义,用户可通过CoAP协议获得模拟生成的当前的经纬度数据,且该位置数据满足以下特征:state_switch规定当gps_signal_quality小于一个阈值时,回传的位置数据将是基站定位的数据。
[0079] 进一步地,一个具体的使用场景如图7所示,其中的资源定义、场景定义、任务定义分别符合图7、8、9中内容所示。本实例模拟了一个可穿戴设备对环境噪声的采集过程,目的是测试该设备的定位相关的算法的性能。测试过程需要使用仿真方法对不同的位置的环境噪声强度进行模拟,故使用该系统由少量真实环境节点进行扩展,自动扩展生成不同位置的噪声数据信息,同时由场景配置文件定义一个携带设备随机走动的过程。在被测设备关于位置的程序逻辑上,在GPS信号较好的时候使用GPS,当GPS信号较差的时候切换成基站定位。如图7所示,用户将通过系统交互层,即Web页面定义资源、场景和任务,对应生成三类配置文件。以下围绕这三类文件,解释系统的具体工作流程。
[0080] 资源配置文件描述了该设备的功能:分别定义了设备的两种工作状态,即使用GPS作为位置来源和使用基站数据作为位置来源,定义了使用GPS和使用基站这两种工作状态之间的切换。输出的数据类别定义位于第10行,并对应其他的标签,规定该资源输出一个double型的数值对以表示当前的位置信息。内定义了该资源涉及到的变量存储,这些变量包括输入(如时间、原始gps数据、gps信号质量)、输出(位置信息)或内部变量。内定义了该资源可能的每个输入输出状态。每个状态由中的内容定义,包含每个状态的id、该状态下的输入输出、以及每个状态中每次更新需要执行的操作。状态之间的转换由定义,包括起始状态和终止状态,以及本次转移的触发条件,配置文件支持算术比较、临时变量取值等操作。其中,配置“”意义为当GPS信号的质量低于阈值时,将由状态s1切换为状态s2,即开始使用基站定位;“${suspend_time}"/>”意义为,当执行时间超过预设值后,将由状态s2切换为状态s1,即开始使用GPS定位。资源每个状态的标签下均有“”,该定义指该设备输出的噪声指示信息是由内部的sound_level信息(最初由环境配置进行赋值的数据)加工后得到的。
[0081] 场景配置描述了该设备仿真所需的环境噪声数据生成方法和虚拟的位置的移动。其中环境噪声通过变量定义和数据源定义共同实现,其中变量sound_level在访问时,将指定输入时间、位置,可通过标签中定义的campus_sound数据源拿到通过环境模型扩展得到的噪声仿真数据。在本例中,如中的定义,配置文件指定使用随机游走的方法作为数据生成模型,以生成位置数据作为资源的GPS输入。具体如“”定义了在每次更新过程中,为经纬度增加一个随机量,以定义设备的随机移动的特性。场景在任务执行期间,虚拟资源容器将以该信息为指定虚拟资源的执行场景,参照场景配置中标签中定义的移动规则,周期性地更新容器中的虚拟资源对应的位置变量。
[0082] 最后如图7所示,被测物联网设备可通过CoAP或HTTP标准网络协议,访问系统中实时生成的位置数据和环境噪声数据序列,将这些数据序列作为真实数据。通过这种方式可以较为真实(使用真实环境数据得到环境模型,进而生成了仿真数据)地模拟具有一定复杂限制下(定位可能依赖于GPS,也可能依赖于基站信息),物联网设备的执行状态,进而可进行更为低成本的、有针对性的测试。
[0083] 进一步地,根据本发明的一个优选实施例,还提供了用于模拟真实物理环境的仿真数据生成方法,该方法可用于所述仿真物联网资源服务系统的数据层,以便通过对少量真实数据的回归分析,建立指定场景下的环境模型以生成资源执行所需数据。
[0084] 该仿真数据生成方法包括下列步骤:
[0085] 步骤1:解析环境配置文件。环境配置文件定义了原始输入的节点个数、位置信息、采集频率,输出对应的个数、位置、频率,以及模型计算时所依赖的参数等信息。本实施例的仿真数据生成方法旨在利用真实节点采集到的环境信息,对真实数据点的拟合生成环境信息模型,从而实现批量生成物理环境的仿真数据的目的。为了实现真实环境数据的采集,首先解析环境配置文件,通过配置文件中所需求的数据点的数量、时间与部署信息开始规划任务。例如,在一个实例中配置文件的定义内容为:配置10个前端设备节点产生数据作为原始输入(即下文中所生成仿真数据的原始输入数据),设备采集的时刻为从8:00到10:00,采集的间隔为10分钟;配置拟输出100个位置的仿真数据,时刻仍为8:00到10:00,这些仿真数据的输出间隔为1分钟。
[0086] 步骤2:采集真实物理环境数据。采集真实数据的过程依托真实物理环境数据采集系统实现,该系统通常是一个能够采集多个位置点的一种或多种物理环境参量的传感器网络。所采集真实物理环境数据就是多个位置点在不同时刻下的真实物理环境参量值。所述的物理环境参量可以是温度、湿度等。物理环境参量的采集时间段、采集时刻的间隔、每个位置点所需采集的数据点的个数均可通过环境配置文件得出。
[0087] 步骤3:对真实物理环境数据的采集时间段进行时间区间切分。根据每个数据点的采集时刻将真实物理环境数据点所组成的整体数据集划分到多个等长度的小时间片段(即切分时间区间)。由于后续步骤需要根据同一时刻不同位置的真实物理环境数据值建立空间模型,因此,在切分时间区间时,需保证每个时间区间有足够样本点,以防止数据过少难以保证模型精度。另外,在实际的传感器网络中,往往难以做到同一时刻采集多个不同位置的数据,因此,在本实施例中同一个时间区间内的不同位置的数据点被视为在同一时刻采集。
[0088] 例如,假设在整个任务执行过程中共计生成M个时间区间。划分时间区间时,使用时间长度作为划分依据。假设第k个时间区间为[t1,tC],记其中数据点的采集时刻依次为t1,t2,…,tC。为了将时刻t1到tc的所有数据点合并到一个时间区间进行计算,取该区间内所有数据点时刻的平均作为该时间区间的代表时刻,即第k个时间区间的代表时刻可以记为Tk=(t1+t2+,…,+tC)/C。然后将该时间区间内所有数据点的时刻均以该时间区间的代表时刻替代。
[0089] 步骤4:空间数据回归建模。使用高斯过程模型对每个时间区间内空间位置对应的环境数据进行建模(获得每个时间区间对应的环境数据空间分布),生成指定位置的环境数据。高斯过程是指所有随机变量均满足高斯分布的随机过程。自然界中数据在观测时会受白噪声干扰,高斯过程可对这类特性进行准确的表达,所以常用于环境数据的建模。使用建模结果对环境数据进行分析和预测,即可完成特定输入下(即不同空间位置下)环境数据的估计。
[0090] 本步骤以该时间区间的代表时刻Tk的观测数据(即已观测到的不同位置x及其对应的环境数据y),以及一个指定位置x*作为输入。输出为x*对应的预测环境数据y*。需要指出的是x*由用户在环境配置文件中的输出部分进行了规定。
[0091] 一个实施例中,高斯过程模型的计算过程可通过选择超参数、对超参数的估计和带入求解公式三步完成。
[0092] 首先,选择高斯过程核函数,最为常用的核函数为平方指数核函数,其表达形式为:K(x,x')=σ2exp(-(x-x')2/2l2)。其中,σ表示高斯过程中随机变量的方差,x是核函数的自变量,x'是已知的参考位置,l是缩放系数。σ和l可视为高斯过程核函数的超参数[0093] 其次,使用极大似然估计法确定高斯过程核函数的超参数σ和l。极大似然估计的输入为观测数据,即已知的位置x及其环境参量值y,极大似然估计的似然函数为:
[0094]
[0095] 其中,K为高斯过程核函数矩阵,该矩阵由多个核函数构成,其中,每个核函数在矩阵中所处的位置与该核函数中的参考位置x'对应。式(1)中,Ky=K+σ2I。通过对(1)求对超参数σ和l的偏导数,并令偏导数为0,可以计算超参数σ和l的极大似然估计值。
[0096] 最后,套用高斯过程计算公式,公式包括高斯过程均值函数m(x*)和方差函数v(x*)的计算公式。均值函数m(x*)的实际意义为在输入为x*时,最可能出现的环境数据为m(x*),方差函数v(x*)的实际意义为,在输入为x*时,环境数据的方差为v(x*),两者的形式如下:
[0097]
[0098]
[0099] 式中,K**=K(x*,x*),K*=[K(x*,x1),...,K(x*,xN)]T,I为单位阵。公式(2)(3)中的未知量均已确定。高斯过程模型的具体细节可参考文献:Rasmussen,Carl Edward."Gaussian processes for machine learning."(2006)pp.15-17.,本文中不再赘述。
[0100] 通过公式可以获得任意待预测位置x*对应的环境数据的均值m(x*),在一个例子中,认为y*可由均值m(x*)就是位置x*对应的环境参量的估计值,这样既可达到数据生成的目的。
[0101] 进一步地,在一个优选实施例中,使用不同位置信息x与该位置对应的温度数据y形成的多个二元组(x,y)作为观测数据作为输入,将用户在环境配置文件中的输出需求,即待估计位置x*作为输入。将默认使用平方指数核函数,并使用式(1),将多组x与y作为输入,估计超参数σ。之后将超参数σ、观测数据序列x与y、待估计位置x*作为输入,带入公式(2)(3),从而得到该物理环境参量的空间分布,进而计算指定位置的环境参量的均值m(x*)和方差v(x*),然后根据均值m(x*)和方差v(x*)构造随机函数,再引入随机数生成位置x*的环境参量值。此时,所生成的环境参量值是夹带噪声干扰的。
[0102] 步骤5:时间趋势回归建模。对于每一个位置,根据已获得的该位置的不同时刻的数据值,基于多项式拟合方法进行时间趋势建模,获得指定物理环境参量在该位置下的时间趋势函数,进而估计出该位置下任意时刻的数据值。
[0103] 假设以T1,T2,…,TM代表M个时间区间的代表时刻,那么对于任意一个目标位置,可分别根据步骤4所得的T1,T2,…,TM时刻的环境参数空间分布函数获得该目标位置在T1,T2,…,TM时刻的指定物理环境参量的数据值。然后多项式拟合方法即可获得该目标位置的时间趋势函数,基于这个时间趋势函数就可以获得任一时刻下目标位置的指定物理环境参量的数据值。
[0104] 在一个实施例中,出于计算开销和精度的考虑,使用了五阶多项式回归模型对时间趋势函数进行拟合。根据不同时间区间相同位置对应的数值,可以使用最小二乘法快速计算出多项式回归模型的多项式系数,从而获得时间趋势函数。基于这个时间趋势函数,可以快速计算出某个指定时刻下目标位置的针对指定物理环境参量的仿真数据数值。对于不同的目标位置,重复上述操作,即可获得任意位置任意时刻的仿真数据数值。如前文所述,所指定的物理环境参量的可以是温度、湿度等常见表征环境状态的物理量。
[0105] 步骤6:生成仿真数据并进行数据推送。在一个实施例中,生成仿真数据点,该仿真数据点包括:位置标识、时间标签和数据值。当物理环境参量有多种时,所述仿真数据点还可以包括:物理环境参量类型,例如温度、湿度等。根据配置文件的定义,将所生成的仿真数据点直接存入到对应的数据库中用于存放输出数据的表结构中。该实施例同时支持直接使用第三方消息中间件的消息投递机制发送数据到其他系统,在具体实现上采用开源键值对存储技术(例如Redis技术,可参考http://redis.io)实现消息中间件。
[0106] 进一步地,根据本发明的一个实施例,还提供了一种相应的仿真数据生成系统,该仿真数据生成系统由外设部分和后台部分构成。外设部分由若干的采集真实环境数据的嵌入式节点和网关构成,用于提供原始输入,作为对物理环境变化规律进行建模的依据。
[0107] 其中,采集真实环境数据的嵌入式节点是物联网前端感知设备,硬件上由MCU、内部存储、各类不同传感器等模块以及支持射频传输的通讯模块构成。网关设备是感知数据接入公网的入口,由处理能力较强的嵌入式硬件设备实现。物联网前端感知设备(即节点设备)在采集到环境数据后,通过无线射频的方式发送到网关设备,统一转发到后台系统的数据库中。在使用时,用户通过环境配置接口修改环境配置文件,从而一次性配置外界真实节点的工作形式,如设定诸如设备采样间隔、设备通讯包格式内容等。
[0108] 在一个实施例中,节点设备使用包含温度与湿度传感器的射频节点,运行TinyOS系统,使用802.15.4协议进行数据传输。网关设备运行ucLinux系统,支持802.15.4协议和WiFi。该系统由多个感知节点和1个网关组成的外设部分与后台部分(也可称为后台系统)构成。感知节点与网关节点使用802.15.4通讯,网关使用WiFi连接到公网AP,将数据发送到后台系统。
[0109] 特别地,为了说明步骤4与步骤5中方法的有效性,发明人使用真实环境数据集(参考http://db.csail.mit.edu/labdata/labdata.html)进行了三折交叉验证,即将原始数据(包括统一时刻的多组空间位置x和环境数据y)分为三份,每次使用其中两份作为训练数据集,计算高斯过程模型,并计算第三份的空间位置x对应的数据值y',之后使用第三份的数据值y与数据值y'进行对比作为验证,结果的百分误差在5%以内。
[0110] 在一个实施实例中,后台系统从网关接收真实环境数据,运行数值拟合方法,根据用户需求,将数据库中少量的原始数据扩展成为海量仿真数据,最后将数据通过第三方消息中间件实时发送给用户。用户通过配置文件使用XML形式指定数据生成任务相关的参数,如生成数据的时间间隔、生成数据在对应场景中的位置等。后台使用MySQL数据库作为数据接收的中介存储,以Java程序解析用户配置信息,实现环境场景的建模和仿真数据的生成,最终使用Redis作为第三方消息中间件,对外发送仿真数据。
[0111] 最后应说明的是,以上实施例仅用以描述本发明的技术方案而不是对本技术方法进行限制,本发明在应用上可以延伸为其它的修改、变化、应用和实施例,并且因此认为所有这样的修改、变化、应用、实施例都在本发明的精神和教导范围内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈