前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >技术流派:物联网IoT的技术落地

技术流派:物联网IoT的技术落地

作者头像
魏新宇
发布2018-06-25 15:30:16
1.3K0
发布2018-06-25 15:30:16
举报

前言

本文仅代表笔者的个人观点;

文中内容仅供技术探讨,不能作为生产环境的技术指导;

一、物联网是个啥

根据百度百科的定义:

物联网是新一代信息技术的重要组成部分,也是“信息化”时代的重要发展阶段。其英文名称是:“Internet of things(IoT)”。顾名思义,物联网就是物物相连的互联网。这有两层意思:其一,物联网的核心和基础仍然是互联网,是在互联网基础上的延伸和扩展的网络;其二,其用户端延伸和扩展到了任何物品与物品之间,进行信息交换和通信,也就是物物相息。物联网通过智能感知、识别技术与普适计算等通信感知技术,广泛应用于网络的融合中,也因此被称为继计算机、互联网之后世界信息产业发展的第三次浪潮。物联网是互联网的应用拓展,与其说物联网是网络,不如说物联网是业务和应用。因此,应用创新是物联网发展的核心,以用户体验为核心的创新2.0是物联网发展的灵魂。

在物联网应用中有三项关键技术

1、传感器技术:这也是计算机应用中的关键技术。大家都知道,到目前为止绝大部分计算机处理的都是数字信号。自从有计算机以来就需要传感器把模拟信号转换成数字信号计算机才能处理。

2、RFID标签:也是一种传感器技术,RFID技术是融合了无线射频技术和嵌入式技术为一体的综合技术,RFID在自动识别、物品物流管理有着广阔的应用前景。

3、嵌入式系统技术:是综合了计算机软硬件、传感器技术、集成电路技术、电子应用技术为一体的复杂技术。经过几十年的演变,以嵌入式系统为特征的智能终端产品随处可见;小到人们身边的MP3,大到航天航空的卫星系统。嵌入式系统正在改变着人们的生活,推动着工业生产以及国防工业的发展。如果把物联网用人体做一个简单比喻,传感器相当于人的眼睛、鼻子、皮肤等感官,网络就是神经系统用来传递信息,嵌入式系统则是人的大脑,在接收到信息后要进行分类处理。这个例子很形象的描述了传感器、嵌入式系统在物联网中的位置与作用。

既然物联网这么神奇,从技术侧,它是如何落地的呢?

二、物联网的技术落地

物联网的技术落地,需要一个端到端的解决方案。

同样,在开源社区具有完备的IoT生态,目前有很多厂商参与:

如下四个参与者已经可以提供端到端的IoT方案:

参与者一:Eclipse 拥有Kapua项目,他提供:

模块化的物联网云平台,管理和集成设备及其数据,这也是物联网服务的坚实集成基础:

Eclipse Kapua是物联网设备和智能传感器的模块化集成平台,它将操作技术与信息技术结合在一起。

而目前参与了Kapua项目的其他两个厂商:EUROTECH和Redhat:

参与者二:EUROTECH提供Everyware Cloud™:

简化了数据、设备和嵌入式应用程序管理。通过将分布式设备连接到企业应用程序。

参与者三:Cloudera的CDH

CDH是Cloudera的100%个开源平台分布,包括Apache Hadoop,并专门构建以满足企业需求。CDH提供了你所需要的企业使用权。通过集成Hadoop和十几个其他关键的开源项目,Cloudera创建了一个功能先进的系统,帮助您执行端到端的大数据工作流。

参与者四:Redhat,领导参与众多开源项目,提供PaaS平台和中间件平台:

目前,四个参与者提供IoT端到端解决方案之一如下:

下图从左到右:连接设备=>IoT网关=>IoT集成Hub=>数据管理和分析平台=>企业级应用

IoT网关的作用:

  • 设备连接
  • 数据转换
  • 智能路由
  • 商业逻辑
  • 边缘分析和实时决策

IoT网关将遥测数据传递给物联网集成HUB,物联网集成HUB的作用:

  • 设备管理,安全性和访问控制
  • 数据聚合
  • 事件处理
  • 集成服务

接下来,IoT集成hub将遥感数据传递给数据管理和分析平台,这个平台的作用:

  • 数据摄取
  • 流/批处理
  • 安全的数据存储
  • 机器学习和实时分析

接下来,数据管理和分析平台将应用数据发给企业应用平台,这个平台的作用:

  • 应用生命周期管理
  • 集成服务
  • 自助服务配置
  • 通过容器实现混合云可移植性

接下来,我们看一个IoT方案的业务架构:

我们查看IoT方案的业务逻辑:

我们查看对应的解决方案:

查看对应的产品,Openshift和中间件承载IoT集成hub上的业务(在IOT网关中也提供BRMS);Cloudera提供奇特数据Hub;EUROTECH提供Everyware Cloud™运行在Openshift中:

三、物联网的技术落地--实验展示

实验环境是在Openshift上部署整套中间件,实现IoT集成Hub功能,架构如下图:

JBoss Fuse集成服务(FIS):通过利用Apache Camel技术来促进消息和协议的集成,路由和转换的工具。

JBoss A-MQ:基于Apache ActiveMQ的消息代理容器映像,用于通过MQTT接收和存储传感器的遥测数据

JBoss BRMS决策服务器:实时处理遥测业务规则

Apache Zeppelin:交互式数据可视化和分析

PostgreSQL:为传感器数据提供持久性

Simulated Software Sensor:模拟温度,振动和GPS传感器数据的简单Spring Boot应用程序

采用的中间件产品,涵盖红帽JBoss的数据集成和数规则引擎:

本实验采用的源码:

https://github.com/lanyushi/brewery

我们查看初始化脚本init.sh,它要依次完成如下组件的安装:

步骤1:clone源码库,并执行初始化脚本:

步骤2:部署postgres:

postgres pod启动成功:

登录postgres数据库,查看数据库:

步骤三:接下来,部署amq:

amq部署成功:

步骤四:S2I部署brms,会先触发一个bc,成功以后再触发dc:

build成功以后,会触发部署:

步骤五:S2I部署fuse,先触发build:

克隆完源码仓库后,下载编译需要的maven-core

执行assemable脚本:

这个脚本负责将外部代码库的代码下载到本地,并且进行编译打包。开始执行assemable脚本,表示源码和building image已经都下载好:

The assemble script is responsible for building the application artifacts from source and placing them into the appropriate directories inside the image. The workflow for the assemble script

[INFO] --- maven-bundle-plugin:2.3.7:install (default-install) @ iot-ocp-routing-service ---

[INFO] Writing OBR metadata

[INFO] Installing com/redhat/examples/iot/iot-ocp-routing-service/0.0.1-SNAPSHOT/iot-ocp-routing-service-0.0.1-SNAPSHOT.jar

[INFO] Writing OBR metadata

[INFO]

[INFO] --- karaf-maven-plugin:4.0.8.redhat-000026:assembly (karaf-assembly) @ iot-ocp-routing-service ---

[INFO] Using repositories: https://repo.fusesource.com/nexus/content/groups/public@id=fusesource.m2,https://repo.fusesource.com/nexus/content/groups/ea@id=fusesource.ea,https://maven.repository.redhat.com/ga@id=redhat.ga,https://repo.eclipse.org/content/repositories/paho-releases@id=paho-mqtt-client,https://repo.maven.apache.org/maven2@id=central

[INFO] Creating work directory

[INFO] Loading kar and features repositories dependencies

[INFO] Generating karaf assembly: /tmp/src/target/assembly

[INFO] Unzipping kars

[INFO] Loading profiles

[INFO] Downloading libraries

[INFO] Writing configurations

[INFO] adding config file: etc/profile.cfg

[INFO] Startup stage

[INFO] Loading repositories

[INFO] Resolving features

环境部署好以后查看zeppelin(交互式数据可视化和分析):

Apache Zeppelin 是一个让交互式数据分析变得可行的基于网页的开源框架。Zeppelin提供了数据分析、数据可视化等功能。Zeppelin 是一个提供交互数据分析且基于Web的笔记本。方便你做出可数据驱动的、可交互且可协作的精美文档,并且支持多种语言,包括 Scala(使用 Apache Spark)、Python(Apache Spark)、SparkSQL、 Hive、 Markdown、Shell等等。

参考文档:

1.https://github.com/sabre1041/iot-ocp

魏新宇

  • "大魏分享"运营者、红帽资深解决方案架构师
  • 专注开源云计算、容器及自动化运维在金融行业的推广
  • 拥有MBA、ITIL V3、Cobit5、C-STAR、TOGAF9.1(鉴定级)等管理认证。
  • 拥有红帽RHCE/RHCA、VMware VCP-DCV、VCP-DT、VCP-Network、VCP-Cloud、AIX、HPUX等技术认证。
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-05-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大魏分享 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
消息队列 TDMQ
消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档