投稿邮箱:cngxkj@126.com

网站首页 > 科技创新 > 科技纵横 > 正文

IoT 云服务系统中台的功能定义与架构设计

来源:《中国高新科技》期刊 时间:2021-03-16
  0.引言

  如今的时代,是一个科技飞速发展的时代,是万物互联、智慧涌动的时代。2005年11月,国际电信联盟(ITU)发布了《ITU互联网报告2005:物联网》,正式提出了物联网的概念。物联网(TheInternetofThings,IOT)的概念被提出以来,当今的科技界,从智慧家居服务到智慧城市管理,从智慧健康医疗到智慧学校教育,在与人的智慧生活相关的方方面面,都对物联网技术的发展提出了更高的要求。

  当今构建一种通用的可服务于公众用户和设备的IoT云服务数据中台系统(简称IoT云中台),成为IoT设备服务企业和生产厂家的一种基本要求,一种发展战略。在国际上,对IoT云服务系统的研究也是热潮涌动,百花齐放。通过构建这种通用的IoT云服务系统中台,可以提供标准的基础IoT互联互通能力,设备定义能力,用户管理能力,实时数据通信能力,基础数据的采集与分析能力;可以为基于IoT云服务系统中台的应用研发提供基础的、稳定的、可靠的一站式平台服务,可极大提升IoT应用研发的速度,降低研发人力和成本资源的投入;保障从IoT中台系统到应用功能的综合性研发能力;极大地提升IoT服务企业的应用研发能力和速度,降低成本投入,提升企业的竞争力。

  1.IoT云中台的功能定义

  IoT云中台的功能体系主要服务于设备的接入和数据采集能力要求,服务于用户安全接入和监控管理设备的能力要求,以及大数据存储与决策分析的能力要求。构建IoT云中台,需要从接入设备、云端体系、移动应用、连接链路、数据存储、安全认证和决策分析等多个层面讨论和说明IoT云中台的功能定义和结构体系,并详细定义IoT云中台所应覆盖和提供的功能内容。IoT综合云服务平台的通用系统架构图如图1所示,本文讨论的IoT云中台特指图中的IoT中台部分,简称为IoT中台。


  图1 IoT综合云服务平台的通用系统架构图

  IoT云中台的功能体系可以从以下8个方面进行讨论。

  1.1设备接入能力

  设备接入能力重点指为IoT设备提供数据连接接入的能力,常规采用MQTT协议,也有的采用CoAP协议和HTTP/HTTPS协议。作为企业级IoT中台系统,要求具备以下设备接入能力。

  (1)支持不同网络的设备接入方案,例如4G/5G、WiFi、Bluetooth和ZigBee等,解决企业异构网络设备接入管理的痛点;

  (2)支持Bluetooth,ZigBee等低功耗无线协议通过WiFi/LANGateway的方式接入IoT中台系统;

  (3)支持多种协议的云平台接入方案,例如MQTT、CoAP、HTTP等,这样既能满足设备需要长连接保证实时性的需求,也能满足设备需要短连接降低功耗的需求;

  (4)提供稳定可靠的设备与云平台间的上下行通信连接,以支撑设备上报属性数据以及远程控制指令下发设备的不同场景。

  1.2设备管理能力

  设备管理能力重点为IoT设备提供设备的注册、分组、标签、建模,以及数据采集、远程配置和远程控制等管理能力。这些能力在IoT中台体系中是核心管理能力,是实现设备实时数据动态监控管理和历史数据长期存储及快速查询的关键能力。设备管理能力的关键需求功能具体定义如下。

  (1)设备注册,要求可以由云中台自行定义设备的唯一标识,实现设备的注册和登记。要求支持可以同时批量注册多个需要连接的IoT设备;

  (2)设备分组,要求可以为特定的设备系列创建分组,实现基于分组的搜索,监控,配置或者其他管理IoT设备的能力;

  (3)设备标签,要求可以为不同的设备或者设备组创建并使用标签定义,可以基于标签定义搜索和管理对应的IoT设备;

  (4)设备建模,要求可以在中台上对物理空间中的IoT设备进行数字化建模,定义设备的属性和服务模型,以方便云端应用快速集成云中台提供的设备能力。该建模过程产生的数据模型,在IoT中台中通常称为“物模型”;

  (5)设备状态获取,要求可以实时通过中台服务获取到IoT设备的Online/Offlfflffline状态变更通知,可以获取设备的基本属性数据,如IP/MAC地址,最后一次上线/下线时间,激活时间等;

  (6)设备数据采集,要求可以基于物模型上报设备数据到云中台,并且可以在云中台实现对上报的设备物模型数据进行结构化存储,以及可以随时查询设备的最新上报数据,或者一定时间范围内的历史数据;

  (7)设备禁用与删除,要求可以对可疑或者无用设备进行远程禁用或者删除,对远程禁用或者删除的设备可以启用黑名单管理;

  (8)远程控制,要求提供基于云中台的远程控制能力,对单个或者批量设备下发控制指令,例如重启,重置出厂,激活与去激活等;

  (9)远程配置,要求可以基于云中台提供远程配置能力,对单个或者批量设备下发初始配置数据,实现设备的初始化配置能力;

  (10)快速检索,要求可以支持从海量设备中快速检索到指定名称、ID或者标签的设备,并可以快速检索到指定设备的最新状态或属性数据,以及历史数据,要求简化海量设备管理和操作上的流程,避免在操作上出现高延时问题。

  1.3消息分发服务

  消息分发服务,可以实现把来自设备的特定消息定向分发(转发)给应用层的应用服务。该服务能力实现的是中台层消息的转发服务,用于向应用层服务共享MQTT消息能力,可以针对特定的自定义MQTT主题,把接收到的MQTT消息转发给应用层服务。消息分发服务的功能点具体定义如下。

  (1)MQTT消息订阅,要求可以在中台自由定义上层应用系统需要的MQTT主题,可以针对自定义的MQTT主题订阅消息转发能力;

  (2)转发策略,要求可以定义消息转发的策略,指定转发使用队列服务,还是HTTPREST服务,以及转发消息的过滤条件定义等;

  (3)多向分发,要求可以对来自IoT设备的同一个MQTT消息,多向分发给多个订阅的应用服务。

  1.4用户管理能力

  用户管理服务基于云中台能力提供管理不同用户实体,用户属性和实名认证等服务的能力。用户管理服务的关键功能点具体定义如下。

  (1)基本功能,要求支持用户注册、登录、信息查看及修改(包括账号名、手机号码、邮箱等)、密码重置(根据手机号码找回密码)、用户注销等等基本功能;

  (2)实名认证,要求可以对已注册用户做实名认证及重新实名认证。可以连接微信,支付宝实现实名认证,也可以通过上传身份证件做实名认证;

  (3)OAuth2.0认证管理,要求可以通过标准的OAuth2.0认证服务体系,提供Oauth2.0的鉴权、授权、确权的认证能力。针对不同的用户认证请求,可以生成不同的认证Token信息,实现用户访问各类资源服务时的安全认证能力;

  (4)密码与密钥管理,要求针对具体的用户实体,创建和管理用户登录密码/密钥等安全凭证;

  (5)授权策略,针对具体的用户实体,要求实现基于用户角色的权限授权访问控制策略;要求实现基于细粒度策略(可以精确到具体的操作)的授权控制能力。

  1.5安全体系服务

  IoT平台服务于每一台设备,必须为每一台设备的接入提供安全体系保障,保障设备接入的安全性和私密性。所以要求构建统一的安全服务体系,该体系关键功能包括以下几点。

  (1)设备ID认证管理,为了加强设备接入的安全性,要求针对具体的IoT设备,可以实现基于AK(AccessKeyID)/SK(SecretAccessKey)的签名认证算法,以及以此算法为基础的认证管理机制,这里的AK/SK为云中台用户(租户)在注册时自动生成的访问密钥对,代表了云中台用户(租户)的身份;

  (2)一机一密设备认证机制,要求为每一台IoT设备预分配设备的认证三元组,该认证三元组主要包括ProductKey、DeviceKey和DeviceSecret,并能预烧录到IoT设备的安全区域。在与云平台建立接入连接请求时,必须提供设备的认证三元组数据信息以实现设备的安全认证;

  (3)一型一密设备认证机制,是指设备预烧录的认证数据是只跟产品型号相关的密钥数据,包括设备的ProductKey、ProductSecret,以及依据特定规则生成的DeviceName。要求在设备第一次接入云中台时,需依据产品型号相关的认证数据进行产品认证和激活,激活认证通过后,云中台需为该设备新生成一个DeviceSecret,并下发给设备保存,供后续接入认证使用。本认证机制适用于批量生产时同一产品型号的所有设备烧录相同固件和认证密钥信息的情况;

  (4)身份唯一标识,为每个IoT设备提供全局唯一的标识信息(DeviceKey/AK),防止设备被篡改或仿冒。

  1.6内容管理服务

  在IoT云中台里面,需要提供统一的内容管理服务,为特定的IoT设备提供内容存储服务,比如摄像头设备的视频内容数据,IoT设备固件升级的软件版本数据,还有为终端用户存储的图片数据等。统一的内容管理服务,可以实现数据存储的集中式管理,保障数据的安全性和完备性,可以统一实现内容访问的授权机制,可以提供统一的内容数据访问的接口(API)服务,可以提供统一的CDN加速服务等。内容管理的关键功能包括以下几点。

  (1)内容资源存储与管理,提供图片、视频、文件等内容资源的统一存储和管理能力,提供统一的面向对象的存储管理平台;

  (2)访问授权,对内容资源的管理,需要提供统一完备的授权机制。可以针对具体的单个用户和设备进行授权,即与具体用户或设备相关的所有存储资源可以唯一授权给该用户或者与之关联的IoT设备,只有授权的用户和设备才可以访问和读写其存储的内容资源;

  (3)分类与搜索,要求对所有的内容资源可以方便地进行分类和搜索查找,实现可以快速资源定位,快速访问读写的能力;

  (4)统一的API接口,要求提供统一的内容数据访问的接口(API)服务,要求提供公开的API接口,同时要求提供安全的接入访问机制,保障API接口访问的安全性;

  (5)统一的CDN加速服务,要求提供统一的CDN加速服务,实现内容资源的快速分发,同时可节约中心服务节点占用的资源。

  1.7大数据分析能力

  在IoT中台里面,需要提供集中的大数据分析处理平台和软件架构体系。大数据分析处理平台应该包含有数据分析平台的建设,数据抽取服务,数据展示仓库,数据展示平台,数据池等能力。其关键功能包括以下几点。

  (1)大数据分析平台搭建,要求可以提供统一的大数据分析平台化服务,可以方便地注入原始数据,提供便捷的数据存储服务;可以支持Hadoop,Spark等国际流行的大数据分析工具;

  (2)原始数据抽取,要求提供统一的接口,从IoT设备接入侧的服务中,抽取原始的设备上报数据,采集和抽取设备的原始信息数据,并存入到合适的数据存储中心服务中;

  (3)数据展示仓库,数据展示仓库是用于存储最终的大数据分析结果数据的存储仓库,仓库内存储的是最终的可展示,可制表的多维度结论数据;

  (4)数据展示平台,数据展示平台则可以从数据展示仓库中读取数据,以图表,折线,波形,柱状图等方式进行数据展示的可视化平台,要求可以实现数据的自由展示;

  (5)数据池,提供一种集中的数据存储方式,可以是面向对象的文件式数据存储池,也可以是大型的数据库式存储池(一般为NoSQL数据库)。

  1.8日志集中采集能力

  在IoT中台里,需要提供集中式的日志采集服务,日志存储服务和日志抽取分析服务能力,其关键功能主要包括以下几点。

  (1)日志采集,要求提供统一的接口实现日志采集服务,可以从整个中台服务体系中采集所有设备相关和应用服务相关的日志数据。

  (2)日志存储,要求提供流式日志文件资源的统一存储和管理能力,由于设备众多,导致日志的数据量十分庞大,要求可以使用统一的面向对象的存储平台存储大量设备的日志数据;

  (3)日志抽取与分析,提供统一的数据分析工具,可以抽取日志文件中的数据,可以实现日志数据的归类,过滤,清洗,统计,分析和数据的展示,实现对设备运行状况的监测告警和通知等。

  2.IoT云中台的架构设计

  IoT云中台的功能体系具有高度复杂性。在实现中,需要综合考虑整个平台的架构体系,从云计算支撑能力,数据存储能力,系统微服务,南向接口,北向接口和上层应用接口等诸多方面综合考虑设计。此处所谓南向接口是指IoT云中台系统和IoT终端设备间定义的通信接口,所谓北向接口是指IoT云中台系统和移动手机APP应用间定义的通信接口。一个相对比较完整的IoT云中台系统的架构体系如图2所示。


  图2 IoT云中台的系统参考架构图

  IoT云中台要求可以在公有云平台(华为云、AWS亚马逊云、阿里云等),以及私有云IDC平台上部署并运行,以平台化构架形成一种独立性和普遍适用性的体系,为整个IoT云中台系统的体系性发展提供一种标准化的基础运行环境。这里的标准化的基础运行环境包括公有云和私有云的云计算支撑环境,基于SpringCloud体系架构的微服务研发框架和环境等。

  数据支撑环境则从数据库、共享缓存、面向对象存储3个方面提供支撑能力。持久化数据库存储方面主要包括MySQL、MongoDB、InflfluxDB3类,用于支撑常规的关系型数据库,基于Document模型的NoSQL数据库,以及时间序列数据库的存储需求。共享缓存方面则主要采用Redis实现微服务应用间数据的共享和缓存。面向对象的存储方面则直接使用公有云平台上提供的强大的面向对象的存储能力,如AWS云上的S3存储或者是华为云上的OBS存储能力。如果是在私有云平台上,则可以使用开源的MinIO分布式存储管理系统作为统一的对象存储平台方案,以支撑IoT云中台的面向对象的大容量数据文件的存储需求。

  SpringCloud提供研发的基础微服务架构,提供标准开源成熟可用的配置、事件、负载、容错、路由、监控、安全、OAuth2.0等基础研发环境支持。

  在前述研发环境和数据支撑平台的基础上,可以研发IoT云中台的微服务集群,以提供完整的云中台业务功能体系,包括设备管理、用户管理、登录授权、安全服务、消息服务、日志搜集、OAuth2.0鉴权中心、SSL证书签发管理、大数据采集服务和大数据分析服务等。该IoT云中台的微服务集群可以统称为IoTCore。

  南向接口是指IoT云中台系统和IoT终端设备间定义的通信接口。该接口采用标准的MQTT、HTTPS、CoAP协议,实现IoT云中台系统和IoT终端设备间的实时数据通信。南向接口与IoTCore间使用MessageBus实现接口数据的传递和投送。北向接口是指IoT云中台系统和移动手机APP应用间定义的通信接口。该接口采用标准的MQTT,HTTPS协议。

  北向接口是指 IoT 云中台系统和移动手机 APP 应用间定义的通信接口。该接口采用标准的 MQTT, HTTPS 协议。北向接口与 IoT Core 间使用 API Gateway 实现 API 接口的路由和转接与授权服务。

  IoT云中台系统需提供一序列平台式接口,供上层或者第三方应用系统接入并调用云中台提供的服务,称为上层应用接口。该接口包括上层应用的开发者账户管理,操作使用云中台的Portal,标准定义的OpenAPI接口,消息分发机制,中台访问代理服务,授权策略管理等等功能和接口.

  下面以3个在IoT云中台中非常重要的模块实体为例具体描述其中的模块架构设计,这3个模块实体分别是南桥消息处理模块、北桥API接口处理模块和设备管理处理模块。

  2.1南桥消息处理架构

  南桥消息处理架构,主要是基于MQTT协议实现消息接收与转存的服务能力。南桥消息处理架构如图3所示,其中MQTT消息转存服务从MQTTBroker订阅消息,依据物模型的定义对收到的消息数据进行简单的解析和检查后,分别存储到MongoDB和InflfluxDB中。其中MongoDB提供实时的Document数据存储服务,可以存储设备属性的最新快照数据,InflfluxDB提供时间序列数据存储服务,可以存储设备属性的历史时间序列数据。消息转发包括下行转发命令和控制消息,以及向其他业务系统转发订阅的上行消息。


  图3 南桥消息处理模块参考架构图

  南桥消息处理主要实现与IoT设备间数据通信链路的连接,实现IoT设备上报数据的存储,以及与内部IoTCore模块间的消息接口和控制,实现IoT云中台与IoT设备间的属性数据传递,以及远程设备状态监控,远程控制命令和消息的发送及执行结果监控等功能。

  2.2北桥API接口处理架构

  北桥API接口,主要通过APIGateway,为移动手机用户APP提供统一的访问和控制IoT云中台内各类服务模块功能的接口。北桥API接口以标准的REST格式要求封装其接口定义,重点实现了用户接入API,设备管理API,远程控制API,如图4所示。APIGateway在本架构中主要提供北向接入请求的鉴权,路由和负荷分担能力,而接入请求的授权则由用户授权服务模块负责实现。


图4 北桥API接口处理模块参考架构图

  2.3设备管理模块架构

  设备管理服务提供的功能,主要是实现设备物模型数据的定义,设备数据的存储和管理,以及设备的分组管理等功能。设备物模型数据的定义主要包括产品属性(设备出厂属性)的定义,设备实体的常规属性与状态属性的定义,以及非常规的可查询属性数据的定义等。设备管理服务对外提供的接口,包括开发者WebPortal后端服务访问接口,以及对移动手机应用APP提供的北向API接口。如图5所示。


图5 设备管理模块参考架构图

  3.结语

  本文通过对IoT云服务中台系统的功能定义,以及云端服务系统实现架构设计内容的讨论,为相关领域的工程设计者和研究者提供了一个较为完整介绍。本文一方面从功能体系的定义出发介绍了IoT云服务中台系统应该提供的服务能力,为IoT云服务中台的建设提供了一个可以参考的需求蓝本。另一方面,从整个IoT云中台的实现架构出发提出了相对完整的架构设计以及重点功能模块的划分和定义,为IoT云服务中台的建设提供了架构上的可参考设计,具有较好的指导意义和学习研究的效应。对于一些有志于构建自身IoT云服务中台的企业,可以本文讨论的内容作为前期的基本参考,逐步细化并建设整个IoT云中台的服务体系。

作者:胡常青 龙世渚

本文刊发于《中国高新科技》杂志2020年第22期

(转载请注明来源)

上一篇:铝轮毂镜面涂装工艺开发及应用
下一篇:工信部“牵线”汽车芯片供需对接

1.凡本网注明“来源:高新科技网”的所有作品,版权均属于高新科技网所有,未经本网授权,任何单位及个人不得转载、摘编或以其它方式使用上述作品。已经本网授权使用作品的,应在授权范围内使用,并注明“高新科技网”。违反上述声明者,本网将追究其相关法律责任。

2.凡本网注明“来源:XXX(非高新科技网)”的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

版权声明:凡注有稿件来源为“中国高新科技网”的稿件,均为中国高新科技网版权稿件,转载必须注明来源为“中国高新科技网”