Modular IoT 物联网架构(1)

     

 Modular IoT 模块化物联网架构为物联网应用提供快速,简单的解决方案。让各种数字技术迅速融合到工业领域的各个地方。

Modular-2 IoT 的主要特点

       涵盖从传感器到云端的应用场景

modular-2

     模块化终端设备,将大量传感器,执行部件接入modularIoT平台,基于低成本corex-M 单片机实现,使用Arm 的Mbed OS 物联网操作系统。

  modular-2 实现了应用软件和物理设备的解耦。使用户在不需要了解过多硬件底层技术细节时,就可快速开发应用软件。

modular Edge

 modular  edge 是一个模块化边缘服务器,可以安装在各类工业现场,完成数据采集,控制,数据存储和分析。它基于linux OS,采用基于容器技术和微服务理念实现物联网应用软件的App化。

根据工业应用对计算能力的需要,modular-2 edge可以部署在低成本的Arm 处理器平台上,也可以部署在性能更强大的intel X86 计算机平台。使工业信息系统更加富有弹性。

modular cloud

   modular cloud 是modular edge 软件架构向云端的延申。实现原生云应用。可以接入运行商物联网接入网,也可以通过http,mqtt ,websocket 等多种方式接入。

Modular IoT 物联网架构(1)_第1张图片

应用软件App化

  modularIoT 架构的主要特点之一在边缘设备和云端应用软件实现App化,它采用了容器技术和微服务理念。

云端应用容器和微服务理念具有解构,便于运维,语言中性,多环境并存,快速迭代和部署等诸多优点,但是它主要还是大型云端应用的架构,大量的运维工具比较专业。需要有经验的运维人员才能够使用。modular IoT 提供了一整套软件和规范,使容器的运行和部署更加便捷,客户体验接近手机App。使工业现场维护人员就能够方便地完成App的安装,部署和维护。

通过 modular Iot 上的Appmanager 可以实现类似手机App 的用户体验。为此 modularIot 规范了网络协议,消息系统,webUI ,App 运行管理。用户可以更加便捷地开发各种物联网App,并且快速部署到边缘设备上,或者云端。

Modular IoT 物联网架构(1)_第2张图片

同时,modular Iot 也在不断地开发各种基础服务的微服务,为应用App 提供更强大的支持。比如 运营商物联(中国电信Wind和中国移动OneNet)网接入,时间序列数据库,数字化面板,AI等服务。使应用程序开发人员能够专注于他们的专业领域,迅速开发出各种应用软件。

开发语言中性化

可以使用各种程序设计语言来实现modular IoT 架构下的App,它们可以是C++ ,也可以是基于Node 的Javascript,用于数据分析的Python 。我们更推荐使用Go 语言来开发modularIoT App。modular IoT 在开发的初期,全部程序是采用C++来实现,最近,我们从C++转向了Go。应为使用Go来编写App更加快捷和高效。

 

modular IoT 使用的主要技术

docker 容器管理

modularIoT 的App 和支持微服务都实现容器化,docker 目前是最流行的容器管理技术。

RabbitMQ 消息系统

  modular IoT 内部App 之间的消息交换采用rabbitMQ 消息系统。RabbitMQ 是一个由 Erlang 语言开发的 AMQP 的开源实现。

AMQP :Advanced Message Queue,高级消息队列协议。它是应用层协议的一个开放标准,为面向消息的中间件设计,基于此协议的客户端与消息中间件可传递消息,并不受产品、开发语言等条件的限制。

 

Go 程序设计语言

Go 是google 开发的新型程序设计语言,它的标准库支持大量的网络协议和程序设计的常用库。使用GO 编写物联网应用软件非常高效,快捷。我们推荐使用Go 语言编写modularIoT App程序。

数据库

modular IoT 使用两种数据库:

mongoDB 数据库

 modularIoT 使用mongoDB 实现App 管理。

influxDB 时间序列数据库

protocol Buffer

     Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。相比于XML 和json 而言,protocol Buffer 的处理速度更快,产生的序列化数据更短。这正是物联网应用所需要的。在modularIoT 架构中,rabbitMQ 的消息体采用了protocol buffer 格式

modular IoT 的体系架构

Modular IoT 物联网架构(1)_第3张图片

hub service

  所有外部设备和服务通过 Hub Service 接入modular IoT 。它们包括了modular-2 设备。人员,其它边缘设备和其它服务。比如电信部门的物联网接入平台。

App 管理服务

App 管理使用mongoDB 对App 的参数存储和管理。

 

App 管理

   在moddularIOT平台上,可以建立多个项目,每个项目可能有多个App运行。并且有多个用户使用这些App。

例如,在IOT 平台上,可以运行多个企业的IOT项目,而某个企业的项目中可同时了设备控制,状态检测和设备健康检测三个App。这些App将会有多个人员来使用。

Modular IoT 物联网架构(1)_第4张图片

建立项目

在modularIOT 上运行物联网项目,首先要建立一个项目。在modular-2 edge 上只有一个项目,而在云端,可以运行多个项目。

应用程序

每个项目上可能有多个应用程序(在本文档中简称为“App”)。

管理员

每个项目有一个管理员(在本文档中简称为“admin”),他负责App的建立,运行和运维管理。

用户

每个项目中有多个使用者,他们有项目管理员建立。

管理

在modularIOT 中,App 是一个Docker 化的容器,当一个App 在开发完成以后,需要将该App 的docker 映像上传到modularIOT 的私有仓库中(使用docker push)。同时要在modularIOT 的App manager 中注册。

Modular IoT 物联网架构(1)_第5张图片

App manager 是一个应用程序和用户管理的微服务,它使用 mongoDB 数据库对系统中的项目,App和用户实施管理。

注册

注册时,要提供下列信息:

  -name 名称

  -browsername 浏览器使用的名称

  -port 该App 暴露的端口

  -avatar  该App 的图标

  -imagefile  该App的docker image name

通过App Manager 的程序管理界面,上传这些信息。上传到App Manager 之后,在App Manager 的程序管理页面中会显示出来,状态为“未安装”(uninstall)

安装

  App 安装意味着将该App 的image 建立docker 容器。安装以后,App 自动进入run 状态。

运行

 该App 处于运行状态。

停止,暂停

  App 可以设定为停止,或者暂停状态,这时App 的容器依然在docker 中保留,状态为“stop”

取消

  将该App 的容器移去。但是image 并没有从modularIOT 的私有仓库删除,App manager 中仍然保留该App 的信息。该App 处于未安装状态

删除

  完全将该App 在modularIOT 平台上去除。

未完待续

你可能感兴趣的:(iot)