使用 WebSphere MQ Telemetry 提供安全的物联网连接解决方案

简介: 本文介绍了如何使用 WebSphere MQ Telemetry 提供的基于安全的 MQTT 连接,实现数据交互从传感器,检测设备,控制设备等域后台中心处理系统的物联网通用场景。通过 SSL 以及 JAAS,OAM 等机制的支撑达到物联网中边缘设备(传感器,RFID 读取器等)安全接入后台中心系统。 WebSphe...显示全部

简介: 本文介绍了如何使用 WebSphere MQ Telemetry 提供的基于安全的 MQTT 连接,实现数据交互从传感器,检测设备,控制设备等域后台中心处理系统的物联网通用场景。通过 SSL 以及 JAAS,OAM 等机制的支撑达到物联网中边缘设备(传感器,RFID 读取器等)安全接入后台中心系统。

WebSphere MQ Telemetry Transport (MQTT) 是一项消息传递技术,是 IBM 在分析了他们的客户在其业务中使用 WebSphere MQ 消息传递的情况(包括通过它传递数据)之后专门为物联网所定制的重要的轻量级消息传输协议。IBM 发现,数据经常是在企业外部的远程位置生成的,而且数据在从远程位置到达企业之前通常要经历一个复杂的过程。这时往往将数据人工输入计算机,然后只能通过 WebSphere MQ Enterprise 消息传递系统传输。而 MQTT 的开发将 WebSphere MQ 消息传递的应用范围延伸到这些远程位置。

WebSphere MQ 遥测传输 (MQTT) 是轻量级基于代理的发布 / 订阅的消息传输协议,设计思想是开放、简单、轻量、易于实现。这些特点使它适用于受限环境。例如,但不仅限于此:

网络代价昂贵,带宽低、不可靠。在嵌入设备中运行,处理器和内存资源有限。

该协议的特点有:

使用发布 / 订阅消息模式,提供一对多的消息发布,解除应用程序耦合。对负载内容屏蔽的消息传输。使用 TCP/IP 提供网络连接。有三种消息发布服务质量:“至多一次”,消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。“至少一次”,确保消息到达,但消息重复可能会发生。“只有一次”,确保消息到达一次。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的结果。小型传输,开销很小(固定长度的头部是 2 字节),协议交换最小化,以降低网络流量。使用 Last Will 和 Testament 特性通知有关各方客户端异常中断的机制。

WebSphere MQ Telemetry 简介

WebSphere MQ Telemetry 是 IBM 最新发布的,用来将 MQ 的传输能力扩展到边缘网络,提供边缘网络的传感器等设备的接入能力,使得物联网的构建连接基础,更为便捷,可靠,经济的一组功能组件包。它提供了物联网中不对等子网的连接解决方案,使得以前相对较低的,较复杂的,不可靠的异构网络平滑可靠经济的接入到较成熟的基于先进 SOA,ESB 架构的企业级高级网络成为可能。它使边缘网络的传感设备从较低的地位提高到和中心处理系统同级,使得两端网络得以对等,从而实现根本意义上的端(传感器)到端(后台中心处理系统)的集成。

WebSphere MQ Telemetry 中包括下列组件:

安装程序

可以使用 GUI 或者命令行安装程序来安装 WebSphere MQ Telmetry。SDK 的 Java 组件是作为 Eclipse 功能部件来安装的。SDK 的 C 语言组件是作为压缩文件提供的。

遥测通道

使用遥测通道来管理 MQTT 客户机与 WebSphere MQ 的连接。遥测通道使用新的 WebSphere MQ 对象(例如,SYSTEM.MQTT.TRANSMIT.QUEUE)与 WebSphere MQ 进行交互。

遥测服务

MQTT 客户机使用遥测服务(也称为 WebSphere MQ eXtended Reach (MQXR))连接至遥测通道。

WebSphere MQ Telemetry 的 WebSphere MQ 资源管理器支持

可以使用 WebSphere MQ 资源管理器来管理 WebSphere MQ Telemetry。未提供 MQSC 或 PCF 命令。

客户机软件开发工具箱(SDK)

客户机 SDK 具有以下四个部件:

用于 Java SE 和 Java ME 的 MQTT V3 客户机库。使用 Java 库为支持 Java SE 或 Java ME 的设备编写 Java 客户机。用于 C 语言的 MQTT V3 库。使用 C 库为许多平台编写 C 语言客户机。设备的 WebSphere MQ Telemetry 守护程序,这是一个使用 C 语言编写的高级客户机,它运行于许多平台上。MQTT V3 协议。已发布 MQTT V3 协议,并且可供复用。使用此协议并参考 MQTT 客户机实现为为不同的平台和语言编写 MQTT 客户机。文档

V7.0.1.3 以上的标准 WebSphere MQ 信息中心提供了 WebSphere MQ Telemetry 文档。还随 WebSphere MQ Telemetry 功能部件一起提供了此文档,并且提供了 WebSphere MQ 资源管理器的文档扩展。在此信息中心中以 Javadoc 和 HTML 文档形式提供了 Java 和 C 语言客户机的 SDK 文档。

WebSphere MQ Telemetry 提供的一部分小型客户机库,可以将这些客户机库嵌入到运行于许多不同的设备平台上的智能设备中。使用客户机构建的应用程序使用 MQ Telemetry Transport(MQTT)和 WebSphere MQ Telemetry 服务并借助 WebSphere MQ 来可靠地发布和预定消息。

WebSphere MQ Telemetry Transport(MQTT)旨在彻底改变使用 TCP/IP 建立的不可靠并且低带宽的连接。单个队列管理器可以用过使用 MQTT 将大量的设备连接至互联网。MQTT 是一种已发布的协议。已授权您在其他平台上使用其他语言来实现客户机。

一个高级 MQTT 客户机(即,设备中的 WebSphere MQ Telemetry 守护程序)运行于许多平台上。他可以充当一个网络集中器,能够将更多的 MQTT 客户机连接至单个队列管理器。对于在网络发生短暂中断期间无法缓存消息的小型设备,他还可以为这些小型设备提供存储转发功能。

WebSphere MQ Telemetry 将替代 WebSphere Message Broker V7 中已撤销的 SCADA 节点。Telemetry 应用程序使用 WebSphere Message Broker V7 来预定 MQTT 客户机共有的主题。他们使用 MQInput 节点接收来自 MQTT 客户机的发布,然后使用发布节点将它发布到 MQTT 客户机。



图 1. WebSphere MQ Telemetry 遥测服务



通过上述的整合集成架构图,可以了解 WebSphere MQ 通过 Telemetry 提供的遥测服务(MQXR),使得 WebSphere MQ 的通信能力大大扩展,不仅在企业内部提供了很好的消息传输服务,而且扩展到边缘网络的诸多设备,比如:边缘网关,嵌入式控制器,传感器以及执行器等等,使得他们的数据也能高效,可靠,便捷经济的相互传输,很好的解决了物联网中传感设备与后台中心系统之间的数据传输问题。

收起
参与4

查看其它 2 个回答一路向北的回答

基于 MQTT 的物联网连通解决方案

WebSphere MQ Telemetry Transport 是 IBM 在分析了他们的客户在其业务中使用 WebSphere MQ 消息传递的情况(包括通过它传递数据)之后专门为物联网所定制的重要的轻量级消息传输协议。而且这种定制,是基于 IBM 对现有的物联网连通解决方案进行了大量的分析,对其中存在的问题和缺陷做了很好的解决。这些问题集中体现在如下方面:

在网络服务质量方面

现有网络带宽参差不齐

网络稳定性和可靠性低

在终端设备方面

对终端采集和控制设备计算和存储能力要求高

对遗留终端的改造和维护成本高

在数据方面

实时数据监控效果差

大数量终端下,数据处理的能力低下

IBM 针对上面业界方案中的普遍难题,结合 MQTT,提出了更智慧的物联网连通解决方案。


图 2. IBM 物联网联通解决方案



方案中将系统分为四个区域,最右边是企业较成熟的稳定网络下的中心系统域,中间是用来两边交互的前端域,最右边是物联网中大量存在的低质量的边缘域和传感器域。由于传感器域和边缘域与中心系统域之间的网络异构,不对等,暴露出很多我们上面提到的问题。基于这样的网络环境,我们在传感器域嵌入 MQTT 的基本客户机,借助 MQTT 协议自身的优势,实现数据在传感器域与中心系统域之间的平滑交互,并且 WebSphere MQ Telemetry 还提供了更为强大的 Advanced MQTT 客户机(即,WebSphere MQ Telemetry daemon 守护程序),在某些特殊的环境中,比如:有些客户的传感器不支持或者不允许第三方软件嵌入),在网络边缘域构建高级客户机,通过守护程序连接一定数量的传感器实现数据在传感器域,边缘域和中心系统域之间的交互。同时,这种守护程序还能提供很多功能,比如实现消息在两边域之间的缓存过滤,中断自动恢复等等。

分析方案的特点,会发现对于业界物联网联通解决方案中存在的普遍问题,方案能够很好的解决和优化。

对终端系统计算和存储能力要求低

能在 8bit 位处理器上很好的运行

C 的 client 只有 30KB,Java 的 client 只需要 100KB

很好的适应各种复杂网络,特别是受限网络

预期并适应频繁的网络中断

能应对低速、低质量的网络

使按数据流量收费的网络成本最小化

协议被压缩至按比特记的消息头以及可变长度域

最小的消息包大小可为 2 字节

将消息 (“推送”) 传送至应用程序 ( 无需轮询 )

发布 - 订阅的消息通信协议,允许一条消息只发布一次,便可被多个消费端(应用程序 / 设备)所接收

实现系统间松耦合,方便扩展,整合

提供灵活便捷的系统整合能力

使用 MQ,MB 提供可靠系统内系统整合和通信

Cast Iron 强大的系统间整合带来巨大的灵活性

提供丰富的安全性

使用 SSL 提供的认证和加密来保证传输安全性

通过 JAAS 接口提供的身份认证

OAM 用于资源层面的授权

强大的性能提高系统的高可靠性

高连接数下系统低计算资源使用

高连接数下系统高信息处理速度

提供多种消息服务质量

0 :消息最多被传递一次

1 :消息会被传递但可能会重复传递

2 :消息保证传递且仅有一次传递

2012-03-07
浏览853

回答者

一路向北 最近回答过的问题

回答状态

  • 发布时间:2012-03-07
  • 关注会员:1 人
  • 回答浏览:853
  • X社区推广