低容量存储节点的异构云存储系统中数据封装与传输方法与流程

文档序号:16063488发布日期:2018-11-24 12:26阅读:316来源:国知局

本发明涉及数据传输领域,尤其是一种针对多厂家、异构的传感器设备,基于容器封装技术,提供一种通用的数据封装、转换、传输、存储的方法,解决异构物联网(internetofthings,iot)中传感器节点与通用存储管理平台间对接与数据传输问题。

背景技术

近年来,云存储系统广泛应用于数据密集型数据管理中。对于前端对计算能力要求不高且采集数据的动作非常频繁,但数据的分析处理可以延迟处理的这类应用,一般,可以采用低容量存储节点作为前端的云计算架构来构建相应的系统。物联网(iot)便是这种具有低容量前端节点的云存储系统的典型代表。另一方面,在物联网(iot)中所必需的无线模块、传感器和微控制器等相关技术和构件的商品化进程的推动下,由于其成本不高,且获取方法简单、便捷,因此,通用iot服务平台在公有云上部署的快速增长的趋势非常明显,iot服务在实际生产环境中的应用得到了广泛的推广而且发展迅速。

在这类系统中,前端节点与后端的iot服务平台通信时,需要指定传输协议和存储接口协议。但目前业界并没有形成统一的协议,而是仍然处于各类私有协议混合并存的状态。通常情况下,iot系统业务处理的基本流程主要涉及到三个功能模块:1)连接设备管理,负责传感器的认证、连接、数据转换和设备管理。2)数据存储与数据分析,解决采集数据的存储、分析与处理。3)垂直行业分析应用,解决iot系统在某一具体领域应用中的数据分析、数据的可视化展示及数据的再利用等与具体业务相关的问题,iot系统的通用架构如图1所示。

如果iot系统中的iot传感器、iot网关以及后端的存储与分析处理模块以及业务平台,均是由单一的厂商端到端提供的,则称该iot系统处于同构模式。同构模式的iot系统处理业务的过程中,各节点间,以及节点与后端服务平台之间不存在协议差异,因此不需要进行协议适配和数据格式转换等处理。

但是,随着iot系统应用的需求快速增长,一方面iot联网设备的供应商、联网设备种类、数量的急剧增加,不同厂家的产品很有可能在数据模型、存储格式、传输协议都有所不同;另一方面,在一个特定的iot配置场景内部,由于存在对温度、重力、湿度、气体探测等条件不同的需求,致使系统必须同时需要多种不同种类、有不同特点的供应商提供的传感器;第三,iot系统应用领域逐渐扩大也同样导致后端提供类型各异的应用服务平台的厂商也越来越多。因此,在这种复杂的各异iot系统中,同构处理模式显然无法胜任管理工作。针对这样的系统,需要解决三个关键问题:1)解决不同供应商传感器的数据格式的标准化、传输协议的标准化问题,进而利用云计算平台,用单一程序做分析处理。2)提供传输过程中的安全性保障机制,统一应对不同厂商各异的签名算法等安全处理机制。3)根据不同厂商提供的程序对异构传感器内置处理模块的定期更新。

目前典型的解决办法是在网关中提供对iot网关编程的软件开发工具包(softwaredevelopmentkit,sdk),实现协议适配和数据转换,如微软的azure平台。这种方法需要各个传感器生产厂商要根据特定的sdk来设计实现自家传感器的数据格式,通信协议等。显然,采用这种方法对于传感器厂商的限制非常大,这种限制来自于操作系统、程序语言以及sdk本身的数据格式、协议类型等诸多方面,这使得传感器本身以及平台应用服务的升级、进化都受到制约且工作量大,致使更新发布很不方便;同时,由于无法适用于多个sdk平台,传感器产品的通用性也会受到限制,进而导致iot系统兼容性差,因此也影响了iot系统本身的扩展性。



技术实现要素:

为了克服现有技术的不足,针对iot系统同构模式和异构系统中采用sdk处理方式的不足之处,本发明提出一种运用容器技术实现的通用管理平台替代sdk的功能,实现对容器镜像和容器实例的对应管理,由传感器厂家自主实现与传感器设备相关的数据转换,并以容器的方式进行封装、发布、注册、发现、更新和运行。传感器发布时,仅加载一个通用代理(agent,即容器镜像的运行环境),无需提供面向所有平台服务厂商的基础镜像和协议程序,从而更好地适应节点低容量的特点,使通用管理平台与具体实现相分离,达到具体实现与环境封装打包的目的。

本发明解决其技术问题所采用的技术方案包括以下步骤:

步骤1:通用管理平台初始化

在后端的通用管理平台中,初始化管理平台信息总表、已注册节点信息表、已注册平台服务信息表和镜像仓库的镜像信息表,并初始化容器镜像仓库,设置监听机制,即周期性检测后端通用管理平台服务和前端节点的相关请求,所述请求包括但不仅限于注册、更新和删除;

步骤2:后端通用管理平台服务注册

平台服务提供商向后端通用管理平台发出注册申请,后端通用管理平台接受注册申请的请求后,在对应的信息表中登记,并在容器镜像仓库中存储平台服务商上传的基础镜像和协议处理程序,后端通用管理平台监听前端节点的注册及后端平台服务的注册请求;

步骤3:前端节点注册

步骤3.1:在给定的前端节点的微处理设备或一组同构传感器的ip使能网关中,内置一个足以使微处理设备或同构传感器运行的容器运行环境,即为通用代理;

步骤3.2:用户根据自身设备类型和业务需要通过通用代理选择后端平台的服务类型,并启动容器运行环境,运行对应目标平台服务类型的一个容器镜像,随后,前端节点的通用代理向后端通用管理平台发送“注册”请求;

步骤3.3:后端通用管理平台根据前端节点的“注册”请求,更新平台信息总表和已注册节点表,修改容器镜像表中对应节点数域,在已注册平台服务信息表中对应平台服务节点中追加节点的id,建立节点与平台服务以及在容器镜像仓库中对应的容器镜像之间的关联,打包目标容器镜像,并通知前端节点;

步骤3.4:前端节点根据后端通用管理平台返回的通知,从容器仓库中下载所需的容器镜像包,本地的通用代理启动该容器镜像包,形成镜像实例;该镜像实例按照平台服务定义的协议完成两端连接的建立和数据的传输格式转换以及加密处理,建立数据传输和处理的通道,向后端通用管理平台服务发送传感器存储的本地数据;

步骤4:展开业务

首先,节点初始化完成后,传感器设备进行数据采集,通用代理根据从获取的协议定义对数据进行格式转换,并将标准化的数据加密传输到后端通用管理平台;后端通用管理平台的数据接收模块,在接收到数据后,对接收到的数据进行解密,根据平台服务应用的具体需求,对数据进行清洗、分析处理,并存储到云存储或云数据库中;最后,平台服务中对应的应用服务,根据具体服务的内容从云存储中获取数据并处理;

步骤5:更新、变更处理

后端通用管理平台周期性监听前端节点和后端平台服务的更新和变更请求,通过维护后端通用管理平台中的各个信息表以及存储区,完成更新镜像仓库、增删前端节点和升级平台服务。

本发明的有益效果通过分层打包的方式,实现不同层之间的隔离以及各层的独立更新。实现前端传感器功能通用化,无需针对具体iot平台预先编程,通过获取不同的容器镜像,使数据处理环境可以更加无缝地适配。iot系统可以更便捷地构建和修改,节省系统构建和维护的成本以及硬件的投入。

附图说明

图1是iot系统业务处理基本流程的示意图。

图2是本发明的容器镜像分层打包的逻辑示意图。

图3是本发明的容器镜像key的构成内容示意图。

图4是本发明平台管理中维护的主要的表及其相互关系示意图。

图5是本发明平台管理中各表中节点的数据结构图。

具体实施方式

下面结合附图和实施例对本发明进一步说明。

本发明的实现步骤如下:

步骤1:通用管理平台初始化

在后端的通用管理平台中,初始化管理平台信息总表、已注册节点信息表、已注册平台服务信息表和镜像仓库的镜像信息表,各表的逻辑关系以及各表中具体内容的数据结构参见图4和图5所示,并初始化容器镜像仓库,设置监听机制,即周期性检测后端通用管理平台服务和前端节点的相关请求,所述请求包括但不仅限于注册、更新和删除;

步骤2:后端通用管理平台服务注册。

平台服务提供商向后端通用管理平台发出注册申请,后端通用管理平台接受注册申请的请求后,在对应的信息表中登记,并在容器镜像仓库中存储平台服务商上传的基础镜像和协议处理程序,后端通用管理平台监听前端节点的注册及后端平台服务的注册请求;

步骤3:前端节点注册

步骤3.1:在给定的前端节点的微处理设备或一组同构传感器的ip使能网关中,内置一个足以使微处理设备或同构传感器运行的容器运行环境,即为通用代理;

步骤3.2:用户根据自身设备类型和业务需要通过通用代理选择后端平台的服务类型,并启动容器运行环境,运行对应目标平台服务类型的一个容器镜像,随后,前端节点的通用代理向后端通用管理平台发送“注册”请求;

步骤3.3:后端通用管理平台根据前端节点的“注册”请求,更新平台信息总表和已注册节点表,修改容器镜像表中对应节点数域,在已注册平台服务信息表中对应平台服务节点中追加节点的id,建立节点与平台服务以及在容器镜像仓库中对应的容器镜像之间的关联,打包目标容器镜像,并通知前端节点;

步骤3.4:前端节点根据后端通用管理平台返回的通知,从容器仓库中下载所需的容器镜像包,本地的通用代理启动该容器镜像包,形成镜像实例;该镜像实例按照平台服务定义的协议完成两端连接的建立和数据的传输格式转换以及加密处理,建立数据传输和处理的通道,向后端通用管理平台服务发送传感器存储的本地数据;

步骤4:展开业务

首先,节点初始化完成后,传感器设备进行数据采集,通用代理根据从获取的协议定义对数据进行格式转换,并将标准化的数据加密传输到后端通用管理平台;后端通用管理平台的数据接收模块,在接收到数据后,对接收到的数据进行解密,根据平台服务应用的具体需求,对数据进行清洗、分析处理,并存储到云存储或云数据库中;最后,平台服务中对应的应用服务,根据具体服务的内容从云存储中获取数据并处理;

步骤5:更新、变更处理。

后端通用管理平台周期性监听前端节点和后端平台服务的更新和变更请求,通过维护后端通用管理平台中的各个信息表以及存储区,完成更新镜像仓库、增删前端节点和升级平台服务。

本发明主要内容包含以下两大部分:

第一部分

在后端的iot网关中,实现一个通用管理平台。平台中维护一个容器镜像仓库并定义容器镜像的元数据,用以实现对容器镜像与平台服务以及前端设备之间映射关系的管理,该管理平台负责容器镜像的注册、发现、更新、删除等相关的管理和维护的操作,并控制管理数据业务处理的过程。

第二部分

如图2和图3所示,实现在容器中对iot系统前端设备的数据进行抽象封装与转换,即实现完整的容器镜像处理。该部分将镜像的处理分为四层:第一层在容器镜像的底层封装好基础镜像(即thinoperatingsystem,是精简的操作系统,以下简称tos);第二层负责控制和处理通用代理的工作;第三层负责网关协议通讯、设备发现、注册、认证、更新、删除等管理工作;第四层完成传感器设备的数据抽取、转换和封装。其中,第一层和第三层的处理工作由通用管理平台完成,提供对容器镜像的生成并完成打包;第二层和第三层由各厂家根据自家的传感器设备的类型、数据模型进行封装,在通用代理环境中完成。

首先,本发明中涉及到主要名词的具体含义如下。

1)节点:iot系统中作为客户端工作,具有低存储容量和有限计算能力的传感器设备,由不同的厂商生产。节点包括ip类和非ip类两种,前者内置代理,可以直接运行容器实例,后者则需要配置ip使能的网关(在同构系统中,多个传感器可以共用一个网关),并在网关上运行容器实例,为表述方便,本文中将非ip类传感器以及其对应的网关合起来视为一个节点。

2)容器:一个相对独立的运行环境,包括程序和精简的操作系统等。容器不像虚拟机那样彻底地独立。但在容器内,将外界影响控制到最小的范围内。

3)容器镜像:在iot的通用管理平台中,根据平台服务提供商所提供的定义信息,从镜像仓库中获取相应的操作系统和协议等资源而组建生成的容器。包括通用层(已精简的操作系统)和协议转换层,通常会被打包,供节点下载并使用。

4)容器实例:容器实例是指节点根据具体的需求从通用管理平台中下载的容器镜像并开始运行,为传感器运行与后台应用平台匹配的定制程序提供编程和运行环境。容器实例运行在节点上(对于ip类节点,是运行在节点内部;对于非ip类设备,则是运行在网关上。在之后的文字中将统一叙述为“节点上”,不做区分)。

5)容器仓库:在通用管理平台中创建并维护的容器镜像集合。主要包括基础镜像程序集、协议处理程序集以及用于管理和维护的容器镜像元数据等相关信息。

1.新节点的加入

新的传感器设备加入系统,包含两种类型:一种是新节点的加入,指新加入的节点属于已经注册的节点类型;另一种是新产品的加入,要在通用管理平台中进行注册。具体处理如下:

①初始化n_flag=-1,进入步骤②

②新设备向后端的通用管理平台发出“节点加入”请求,通用管理平台根据请求中的服务名称和服务厂商名称信息在已注册平台服务信息表中查找相应的已注册服务元数据记录,如果找到说明该设备为新节点加入,获取该元数据记录中容器镜像id1,并设置n_flag=0,否则为新产品加入,设置n_flag=1。进入步骤③

③若n_flag=0,根据步骤②获得容器镜像id1,在镜像仓库的镜像信息表中查找对应的容器镜像元数据记录mo,直接进入步骤⑦

④若n_flag=1,创建并初始化一个新的节点元数据记录vnew,为vnew分配一个新的节点id,填写vnew的节点id、节点厂商名和注册时间等字段的信息,进入步骤⑤

⑤创建并初始化一个容器镜像元数据记录mnew,为mnew分配一个新的容器镜像id,根据已知信息填写mnew的容器镜像id、容器镜像key等字段,根据服务名称和服务厂商名称在已注册平台服务信息表中查找匹配的平台服务元数据记录so,获取so的服务id和容器镜像id1,将mnew的容器镜像id的值追加到so的容器镜像id列表末尾,进入步骤⑥

⑥根据容器镜像id1,在镜像仓库的镜像信息表中查找对应的容器镜像元数据记录mo,将mo中的协议id、基础镜像id、协议地址、基础镜像地址和镜像版本等字段的值复制到mnew的对应字段,将vnew的节点id值追加到mnew的节点id列表末尾,将镜像版本信息更新到vnew的镜像版本字段,进入步骤⑦

⑦通用服务平台根据mo中的协议和基础镜像信息打包容器镜像,向发出“节点加入”请求的设备返回准备就绪的通知,新设备接收到就绪通知后,下载已打包的容器镜像,并在本地的通用代理中运行,进入步骤⑧

⑧节点准备就绪,可以同后端交互展开业务。

2.容器镜像更新的处理

更新处理中有三种触发类型,一种是仅前端节点更新,一种是仅后端平台服务更新,第三种是前端节点和后端平台服务同时更新。在具体的实施中,可以讲三种类型的更新进行统一处理,具体处理如下:

①设uv_flag=0,us_flag=0,进入步骤②

②当前端节点va的设备升级更新时,该节点的容器镜像实例将向通用管理平台发出节点更新通知,设uv_flag=1,进入步骤③

③当后端平台服务sa的程序升级更新时,该应用项通用管理平台发出镜像更新通知,设us_flag=1,进入步骤④

④若uv_flag=1,通用管理平台根据va在节点信息表中查找对应的节点id,从对应的节点元数据记录中获取容器镜像id和节点厂商名称,并通知节点va将其需要更新的数据标记为待上传数据pkg_v,将待上传数据打包并上传到通用管理平台;进入步骤⑤

⑤若us_flag=1,通用管理平台根据更新通知的平台服务id信息,在平台服务信息表中查找对应的平台服务元数据记录,从该元数据记录中获取容器镜像id列表和服务厂商名称,获取并记录存储平台服务更新的程序的具体地址new_addr,将对应的程序进行打包并标记为pkg_m;根据容器镜像id列表,在镜像仓库的镜像信息表中逐一定位对应的容器镜像元数据记录,将这些容器镜像元数据记录中对应的程序地址(基础镜像地址或协议地址)根据new_addr进行更新,并完成“更新次数”+1,同时更新镜像版本信息;进入步骤⑥

⑥如果us_flag=0,进入步骤⑦;否则,依次扫描已获得的容器镜像id列表中的每容器镜像id,循环地做如下处理:在镜像仓库的镜像信息表中找到当前容器镜像id所对应的容器镜像元数据记录mi,向mi中节点id列表中各节点id对应的所有前端节点发出“镜像更新”通知,各前端节点根据通知下载pkg_m数据包,更新本地的容器镜像,下载完成后向通用管理平台返回下载完成通知。后端根据通知,将mi的字段“下载次数”的值+1,并在已注册节点信息表中查找具有相同节点id的节点元数据记录vj,更改vj中的镜像版本信息,并将字段“镜像更新次数”的值+1,进入步骤⑦

⑦如果uv_flag=0,直接进入步骤⑧;否则,根据步骤④所获得的容器镜像id在镜像仓库的镜像信息表中查找对应的容器镜像元数据记录mv,更新mv的容器镜像key字段中的“设备类型”和“设备版本”两个域的信息,向mv中的节点id列表中各记录所对应的全部前端节点发送“节点更新”通知,各前端节点根据通知下载pkg_v数据包,更新本地节点,并在已注册节点信息表中查找具有相同节点id的节点元数据记录,将该节点元数据记录的字段“节点更新次数”+1,进入步骤⑧

⑧更新处理结束。

3.节点删除处理

具体处理如下:

①前端节点向后端通用管理平台发出删除请求时,通用管理平台根据该节点的节点id信息,在已注册节点信息表中查找对应的记录vd,从vd中获得容器镜像id,进入步骤②

②后端通用管理平台根据容器镜像id的值,在镜像仓库的镜像信息表中查找对应的容器镜像元数据记录md,在md的节点列表中查找与vd匹配的节点id对应的一项。如果该节点id不是节点列表中的唯一项,则仅删除该项;否则,删除整个记录md,进入步骤③

③后端通用管理平台在已注册节点信息表中删除vd的全部信息,并向发出请求的前端节点返回信息表删除完毕的通知,进入步骤④

④前端节点接到返回通知后,停止镜像实例的运行,终止同后端通用管理平台和平台服务的数据交互。节点删除处理完成。

本发明并不局限于前述实施例中,只要是通过高速网络连接设备以一定的计算和存储能力的异构终端设备连接统一的服务平台,平台负责监控管理的应用系统中涉及到相应的设备兼容、适配、数据交换以及更新、维护等问题,本发明均适用。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1