平台定位

提供全面管理的云托管服务,旨在简化并从 IoT 设备中获得价值。

  • Watson IoT Platform 提供对 IoT 设备和数据的强大应用程序访问,可快速编写分析应用程序、可视化仪表板和移动 IoT 应用程序。
  • Watson IoT Platform可以执行强大的设备管理操作,并存储和访问设备数据,连接各种设备和网关设备。Watson IoT Platform 通过使用 MQTT 和 TLS,提供与设备之间的安全通信。
  • Watson IoT Platform使应用程序与已连接的设备、传感器和网关进行通信并使用由它们收集的数据。应用程序可以使用实时 API 和 REST API 来与设备进行通信。

架构

平台API

连接类API

  • MQTT API for applications
  • MQTT API for devices
  • MQTT API for gateways
  • HTTP API for applications
  • HTTP API for devices

实时分析类API

信息管理类API

风险管理类API

  • IBM Blockchain API
  • Open Blockchain API

认知计算类API

自然语言处理

  • Natural Language Classifier
  • Concept Expansion (Beta)
  • Dialog
  • Language Translation
  • Relationship Extraction (Beta)
  • Text to Speech
  • Speech to Text
  • Retrieve and Rank

图像分析

  • Alchemy Vision
  • Visual Recognition (Beta)

文本分析

  • Alchemy Language
  • Relationship Extraction (Beta)

相关概念

  • 组织:向 Watson IoT Platform 注册时提供组织标识,确保仅可从设备和应用程序访问组织自己的数据。
  • 设备:设备可以是连接到因特网并具有放入云中的数据的任何对象。设备必须先进行注册,然后才能连接到 Watson IoT Platform。设备将使用认证令牌向 Watson IoT Platform 唯一表明自身身份。设备分为受管设备和非受管设备。
  • 应用程序:连接到因特网并且希望与来自设备的数据进行交互和/或以某种方式控制这些设备的行为的任何对象。应用程序使用 API 密钥和唯一应用程序标识向 Watson IoT Platform 表明自身身份。
  • 网关设备:网关是设备的专用类。它们兼具应用程序和设备的功能,使其能够充当访问点,为无法直接连接的其他设备提供与服务的连接。
  • 事件:事件是设备将数据发布到 Watson IoT Platform 所采用的机制。设备控制事件的内容,并为其发送的每个事件分配名称。Watson IoT Platform 接收到事件时,将使用凭证来确定从哪个设备发送了该事件。由于使用这种体系结构,设备将无法模拟其他设备。
  • 命令:命令是应用程序可用于与设备进行通信的机制。仅应用程序可发送命令,命令必须向特定设备发出。
  • 设备注册表:管理库存,配置安全性以及存储数百万设备的元数据。定义设备类型以表示各设备型号,并将缺省元数据应用于该类型的所有设备。
  • 连接:通过 MQTT 将设备、网关和应用程序安全地直接连接到 Watson IoT Platform。将设备中的数据作为事件进行建模,并控制事件进入应用程序的流程。
  • 网关支持:在许多情况下,无法在服务和设备之间进行直接连接,Watson IoT Platform 允许可为多个设备提供间接连接的网关设备进行连接。
  • 设备管理:通过在设备中实现对 Watson IoT Platform 设备管理协议的支持,允许 Watson IoT Platform 管理设备的生命周期。
  • 外部服务集成:Watson IoT Platform 支持与外部服务的集成,以将其他联机设备支持的数据和操作引入到平台中,从而使应用程序和设备开发人员能够一直轻松利用 Watson IoT Platform API 与这些服务无缝交互。
  • 历史记录:配置 Watson IoT Platform 以存储设备生成的事件记录。
  • 上次事件高速缓存:API 现在可以返回特定设备的上次记录的 event-id 值,或者特定设备报告的每个 event-id 的上次记录值。上次事件高速缓存仅适用于过去 30 天内发送的值。

功能

  • 连接、配置和管理设备
    • 在Bluemix连接Watson IoT ,配置和管理IoT设备和数据,创建应用程序、可视化仪表板和移动 IoT 应用程序。
  • 可视化归集事件
    • Bluemix以可视化的方式收集IoT事件到逻辑流程图中,使用Node-Red进行拖拽式流程编排。
    • 收集和管理时间序列视图的数据,准实时地在数据可视化面板中查看IoT设备状态。
  • 实时分析
    • 使用Analytics Real-Time Insights执行IoT设备数据的实时分析,观察设备健康度和操作状态。
  • 应用认知计算
    • 使用文字和语音进行自然的交互
    • 图像和场景识别
    • 对传感器输入进行模式匹配
    • 与外部数据进行关联,如天气和Twitter
  • 应用区块链
    • 使用风险管理平台,包括区块链,存储数据到共享且无法擦除的分类账,为所有参与者提供安全的交易数据链访问。
  • 设备管理
    • 通过使用设备管理服务,执行各种设备操作,例如,重新引导或更新固件、接收设备诊断和元数据,或者执行批量设备添加和移除。
  • 响应式可扩展连接
    • 使用业界标准的 MQTT 协议(经 OASIS 批准)连接设备和应用程序。MQTT 旨在与设备实时、高效地交换数据。
  • 安全通信
    • 从设备中安全接收数据并向设备发送命令。通过将 MQTT 与 TLS 结合使用来完成此操作,保护设备与服务间的所有通信。
  • 存储和访问数据
    • 有权访问来自设备的实时数据,并将数据存储一段时间,从而有权访问设备的历史数据和实时数据。

Bluemix

  • Bluemix是基于 Cloud Foundry 开源项目的平台即服务 (PaaS) 产品。
  • Bluemix提供了流行的运行时和庞大的服务目录,且支持基于 Docker 的容器和 VM 部署。
  • Bluemix用于快速创建、托管、扩展服务和应用程序,开发者只需要关注应用程序逻辑和应用程序设计。
  • Bluemix提供了对物联网设备和数据的应用程序访问,功能简单而强大。

外部服务集成

  • Jasper 是一个用于 SIM 设备的管理平台。Jasper 已集成到 Watson IoT Platform 仪表板中,从而可通过 Watson IoT Platform 组织仪表板来管理 Jasper 设备。
    • 查看总体 Jasper 数据
      • 显示:状态、套餐、本月至今数据使用情况、本月至今 SMS 使用情况、本月至今语音使用情况、超额限制、添加日期和修改日期。
    • 更改 SIM 激活状态
      • 选择:库存、可随时激活、已激活、已取消激活和已废弃
    • 查看 SIM 使用情况
      • 显示:周期开始日期、计费数据和数据总量、计费 SMS 和 SMS 总量、计费语音和语音总量。
      • 可以使用 YYYY-MM-DD 格式设置周期开始日期。
    • 将 SMS 发送到 SIM
    • 更改套餐
  • 与IBM Analytics for Hadoop 集成
    • 使用 IBM Hadoop 分布式文件系统 (HDFS) 节点,应用程序执行创建、读取、附加和删除操作。
  • 与Mobile Application Security 和 Push 集成
    • 使用 Bluemix 中的应用程序向移动设备发送通知,以响应从 Internet of Things Foundation 传感器设备收到的数据。

Analytics Real-Time Insights

  • 提供实时分析引擎和分析编写功能,支持对 IoT 设备数据进行监控并赋予语境,能加快了解当前情况,改进决策并更好地响应出现的问题。
  • 使用基于规则的简单组合模型以及可扩展框架,将IoT设备数据与主资产数据相组合,分析上下文中的情境,以及自动响应以改进运营并提高可用性和服务级别。
  • 获取实时设备数据订阅源。入局数据通过虚拟数据模型进行解释,此模型可使用来自资产管理系统的主资产数据进行扩充。
  • 用户定义的规则会应用于实时流式采集数据,以确定需要关注的情况。通过操作引擎,定义对检测到的情况的自动响应,例如发送电子邮件、触发 IFTTT 配方、执行 Node-RED 工作流程或使用 Webhook 来连接到各种 Web Service。
  • 实时数据显示在 IoT 设备位置、数据、度量值和警报一览视图的可配置仪表板。

  • 通过 Analytics Real-Time Insights,对来自设备的实时数据执行分析,并深入了解这些设备的运行状况以及总体运营状况。
  • 设置 Watson IoT Platform 服务将分析引擎连接到设备后,才能开始使用 Analytics Real-Time Insights。
  • 使用现有 Watson IoT Platform 服务,也可以创建新服务。
  • 要快速启动并运行此服务,将手机应用程序及其关联的 Watson IoT Platform 服务部署到组织。

MQTT

  • 设备和应用程序用于与Watson IoT Platform 进行通信的主机制为 MQTT;这是设计用于与传感器和移动设备高效交换实时数据的协议。
  • MQTT 通过 TCP/IP 运行,mqtt.org 中提供了一系列范围广泛的 MQTT 客户机库,从 Eclipse Paho project 查找MQTT客户机库。
  • MQTT 3.1 是目前使用最广泛的协议版本。V3.1.1 包含多个次级增强功能,并且已作为 OASIS 标准认可。

MQTT服务质量

  • 最多一次 (QoS0)
    • 消息最多传递一次,也可能根本不会传递。通过网络进行传递未得到确认,并且该消息未存储。如果客户机断开连接或服务器发生故障,那么可能会丢失消息。QoS0 是最快的传输方式。有些时候被称为"发完就忘"。
    • MQTT 协议不需要服务器在 QoS0 级别将发布内容转发给客户机。如果客户机在服务器接收到发布内容时已断开连接,那么根据服务器实施,可能会废弃发布内容。
  • 至少一次 (QoS1)
    • 消息总是至少传递一次。如果在发送方接收到确认之前发生了故障,那么可能会多次传递该消息。该消息必须存储在发送方本地,直到发送方接收到指示接收方已发布该消息的确认为止。在此期间将一直存储该消息,以防必须再次发送该消息。
  • 恰好一次 (QoS2)
    • 消息总是恰好传递一次。该消息必须存储在发送方本地,直到发送方接收到指示接收方已发布该消息的确认为止。在此期间将一直存储该消息,以防必须再次发送该消息。QoS2 是最安全但最慢的传输方式。将使用比 QoS1 更复杂的握手和确认序列,以确保不会出现重复的消息。

应用程序的 HTTP API

  • 查看组织详细信息。
  • 成批设备操作(列出所有、添加、移除)。
  • 设备类型操作(列出所有、创建、删除、查看详细信息、更新)。
  • 设备操作(列出设备、添加、移除、查看详细信息、更新、查看位置、查看管理信息)。
  • 设备诊断操作(清除日志、检索日志、添加日志信息、删除日志、获取特定日志、清除错误代码、获取设备错误代码、添加错误代码)。
  • 连接问题确定(列出设备连接日志事件)。
  • 历史事件检索(查看所有设备的事件、查看某种设备类型的事件、查看特定设备的事件)。
  • 设备管理请求操作(列出设备管理请求、启动请求、清除请求状态、获取请求详细信息、获取每个受影响设备的请求状态列表、获取特定设备的请求状态)。
  • 使用情况管理(检索某段时间内的活动设备数、检索历史事件数据所用的存储量、检索已用数据总量)。
  • 代表设备发布事件(测试)
  • 服务状态查询(为组织检索服务状态)。

应用程序的 MQTT 连接

  • 客户机连接
    • 每个已注册组织具有唯一端点,在连接该组织中应用程序的 MQTT 客户机时必须使用此端点。
    • org_id.messaging.internetofthings.ibmcloud.com
  • MQTT 客户机标识
    • 应用程序必须使用特定格式的客户机标识进行认证
    • a:org_id:app_id
  • MQTT 认证
    • 应用程序需要 API 密钥才能连接到组织。注册 API 密钥时,将生成必须与该 API 密钥配合使用的令牌。
  • 发布设备事件
    • 应用程序在发布事件时可将事件视为如同来自任何已注册设备一样。
    • 发布到主题 iot-2/type/device_type/id/device_id/evt/event_id/fmt/format_string
  • 发布设备命令
    • 应用程序可将命令发布到任何已注册设备。
    • 发布到主题 iot-2/type/device_type/id/device_id/cmd/command_id/fmt/format_string
  • 预订设备事件
    • 应用程序可预订来自一个或多个设备的事件。
    • 预订主题 iot-2/type/device_type/id/device_id/evt/event_id/fmt/format_string
  • 预订设备命令
    • 应用程序可预订将发送到一个或多个设备的命令。
    • 预订主题 iot-2/type/device_type/id/device_id/cmd/command_id/fmt/format_string
  • 预订设备状态消息
    • 应用程序可预订一个或多个设备的监视状态。
    • 预订主题 iot-2/type/device_type/id/device_id/mon
  • 预订应用程序状态消息
    • 应用程序可预订一个或多个应用程序的监视状态。
    • 预订主题 iot-2/app/app_id/mon

设备的 HTTP API

  • 发布事件
    • 作为 MQTT 的替代方法,设备可通过 HTTP API 向 IoT Platform 提交事件。设备可以向"https://${orgid}.internetofthings.ibmcloud.com/api/v0002/device/types/${typeId}/devices/${deviceId}/events/${eventId}"提交"POST"请求。
  • 认证
    • 请求必须包含授权头。只支持基本认证方法。通过 API 密钥认证应用程序,在应用程序向 IoT Platform API 发出任何请求时,必须提供 API 作为其凭证:
    • 用户名 ="use-token-auth"
    • 密码 = 认证令牌
  • 服务质量
    • HTTP(S) 协议提供"最多一次"尽力而为的传送,类似于 MQTT 协议提供的 QoS0 服务质量。在使用 QoS0 或 HTTP(S) 等效项传送事件消息时,设备或应用程序必须实现重试逻辑来保证传送。

设备的 MQTT 连接

  • 客户机连接
    • 每个已注册组织具有唯一端点,在连接该组织中设备的 MQTT 客户机时必须使用此端点。
    • org_id.messaging.internetofthings.ibmcloud.com
  • MQTT 客户机标识
    • 设备必须使用以下格式的客户机标识进行认证:
    • d:org_id:device_type:device_id
  • MQTT 认证
    • 用户名
    • 服务当前仅支持针对设备进行基于令牌的认证,因此目前针对设备只有一个有效用户名。值"use-token-auth"向服务表明:设备的认证令牌将作为 MQTT 连接的密码进行传递。
    • 密码
    • 如果使用基于令牌的认证,请在建立 MQTT 连接时,将设备认证令牌作为密码提交。
  • 发布事件
    • 设备只能发布以下格式的事件主题:iot-2/evt/event_id/fmt/format_string
  • 预订命令
    • 设备只能预订以下格式的命令主题:command_id/fmt/format_string。无法预订其他设备的事件,并且将仅接收专门发布到设备自身的命令。
  • 受管设备
    • 设备生命周期管理支持是可选的,IoTF 使用的设备管理协议利用设备已用于事件和命令控制的相同 MQTT 连接。
    • 受管设备可以发布服务质量 (QoS) 级别为 0 或 1 的消息。如果使用 QoS 级别 1,那么在必要时会对来自设备的消息进行排队。来自设备的消息不能是保留消息。
    • IoT Platform 可发布 QoS 级别为 1 的请求以支持消息排队。要在未连接受管设备的情况下让发送的消息排队,该设备应使用"cleansession=false"。

设备管理协议

  • "设备管理"功能可创建新一类的已连接设备,即"受管设备"。受管设备必须包含一个管理代理程序,该代理程序可理解"IoT Platform 设备管理协议",并可向"IoT Platform 设备管理"服务器发送"管理设备"请求。受管设备可以访问设备管理操作。
  • 设备管理协议定义了一组受支持的操作。设备管理代理程序可以支持其中一部分操作,但必须支持"管理设备"和"取消管理设备"操作。支持固件操作的设备还必须支持观察。
  • 设备管理生命周期
    • 在 IoT Platform 中使用仪表板或 API 创建设备及相关设备类型。
    • 设备必须连接到 IoT Platform 并使用"管理设备"操作,才能成为受管设备。
    • 通过设备操作(例如,固件更新和设备重新引导)查看和操纵设备的元数据(如设备模型中所述)。
    • 设备可以通过设备管理协议来传达更新(例如,位置或诊断信息,以及错误代码)。
    • 为了能够在设备众多的情况下处理失效的设备,"管理设备"操作请求中提供了一个可选的生命周期参数。此生命周期参数包含的是一个秒数,设备必须在这段时间内发出另一个"管理设备"请求,才能避免被标记为停止而成为非受管设备。
    • 设备退役后,可以使用仪表板或 REST API 从 IoT Platform 中移除该设备。

Context Mapping

  • Watson IoT Context Mapping 允许应用程序使用地理空间功能,例如,基于全球道路网络的地图匹配和最短路径搜索。
  • 通过 Context Mapping REST API 使用以下功能:
    • 使用道路网络几何图形的准确度高的地图匹配。
    • 处理地图上的实时事件,例如交通。
    • 考虑到实时事件的动态最短路径搜索(路线搜索),例如交通。
    • 检索道路几何图形数据,可以用于在地图上绘制道路形状。
  • Context Mapping 服务使用从 OpenStreetMap 抽取的道路网络数据(以 WGS84 坐标的形式)。只有车辆可通行的道路才用于分析。
    • 使用 Context Mapping 进行地图匹配
    • 使用 Context Mapping 进行路线搜索
    • 使用 Context Mapping 处理交通事件

Driver Behavior

  • 使用 Watson IoT Driver Behavior,通过使用 Driver Behavior API 对驾驶员的行为进行分析,以收集并分析汽车探测数据和前后关联的数据。
  • 在创建和部署未绑定的服务实例之后,将应用程序与 Driver Behavior API 集成。

安全

  • IBM Watson IoT 是一项完全受管的云托管服务,解决了以下方面的安全问题:
    • 认证:查明尝试访问的用户、设备或应用程序的身份。
    • 授权:确保用户、设备和应用程序有权访问组织的信息。
    • 加密:确保数据仅可由授权方读取,并且不会被拦截。

安全 – 组织管理

  • 基于浏览器的 GUI 和 REST API 前均标有 HTTPS,同时带有 DigiCert 签署的证书。
    • GUI:已通过 IBM 标识认证。
    • REST API:通过 GUI 创建 API 密钥后,可将其用于针对组织执行已认证 的REST API 调用。

安全 – 设备和应用程序

  • 注册设备或生成 API 密钥后,认证令牌将使用加密盐 (Salt) 并散列化。
  • 设备凭证和 API 密钥在遭到破坏的情况下可单独进行撤销。

安全 – 连接

  • 设备通过只有用户知道的 clientId 和认证令牌的唯一组合进行连接。
  • 提供了针对通过 TLS (V1.2) 的连接的完全支持。
  • 使用了开放式标准 (MQTT V3.1.1) 以允许在很多平台和语言之间轻松进行互操作。

安全 – 设备之间的数据泄露

  • 设备仅有权发布和预订受限主题空间:
    • /iot-2/evt/+/fmt/+
    • /iot-2/cmd/+
  • 所有设备都使用同一主题空间,防止设备能模仿其它的设备。
  • 假冒其它设备的唯一方式是获取该设备的遭到破坏的安全凭证。

安全 – 防止组织之间的数据泄露

  • 设备和应用程序的主题空间域在单个组织内。
  • 基于客户机认证,使用组织标识变换主题结构,从而使一个组织无法访问另一个组织中的数据。

平台界面

创建Bluemix账户

选择区域

Watson IoT Platform 服务实例

配置用户访问权限

生成API秘钥

创建设备类型

添加设备

设备认证令牌

设备事件

国外物联网平台初探(三) ——IBM Watson IoT的更多相关文章

  1. 国外物联网平台初探(二) ——微软Azure IoT

    平台定位 连接设备.其它 M2M 资产和人员,以便在业务和操作中更好地利用数据. 连接 IoT 设备 将所有设备连接到云,从这些设备接收大规模数据,以及管理这些设备的授权和限制. 在将设备连接到云和处 ...

  2. 国外物联网平台初探(一) ——亚马逊AWS IoT

    平台定位 AWS IoT是一款托管的云平台,使互联设备可以轻松安全地与云应用程序及其他设备交互. AWS IoT可支持数十亿台设备和数万亿条消息,并且可以对这些消息进行处理并将其安全可靠地路由至 AW ...

  3. 国外物联网平台初探(六) ——Electric Imp

    公司背景 Electric Imp成立于2011年,公司设立在美国加利福尼亚州洛斯阿尔托斯和英国剑桥 公司投资者包括:富士康技术集团.PTI创投.Rampart资本.Redpoint创投 定位 Ele ...

  4. 国外物联网平台初探(四):Ayla Networks

    定位 Ayla企业软件解决方案为全球部署互联产品提供强大的工具 功能 Ayla的IoT平台包含3个主要组成部分: (1) Ayla嵌入式代理Ayla Embedded Agents (2) Ayla云 ...

  5. 国外物联网平台初探(五) ——Exosite Murano

    定位 Murano是一个基于云的IoT软件平台,提供安全.可扩展的基础设施,支持端到端的生态系统,帮助客户安全.可扩展地开发.部署和管理应用.服务以及联网产品. 功能 Murano平台简化了整个IoT ...

  6. 国外物联网平台(3):IBM Watson IoT

    国外物联网平台(3)——IBM Watson IoT 马智 平台定位 提供全面管理的云托管服务,旨在简化并从 IoT 设备中获得价值. Watson IoT Platform 提供对 IoT 设备和数 ...

  7. 国外物联网平台(2):微软Azure IoT

    国外物联网平台(2)——微软Azure IoT 马智 平台定位 连接设备.其它 M2M 资产和人员,以便在业务和操作中更好地利用数据. 连接 IoT 设备 将所有设备连接到云,从这些设备接收大规模数据 ...

  8. 国外物联网平台(1):亚马逊AWS IoT

    国外物联网平台(1)——亚马逊AWS IoT 马智 平台定位 AWS IoT是一款托管的云平台,使互联设备可以轻松安全地与云应用程序及其他设备交互. AWS IoT可支持数十亿台设备和数万亿条消息,并 ...

  9. 国内物联网平台初探(八):移动云OneNET

    国内物联网平台初探(八)——移动云OneNET 平台架构 数据模型 使用场景示意图 服务 IOT Paas 基础服务 为IoT开发者提供智能设备自助开发工具.后台技术支持服务,为您提供物联网专网.短彩 ...

随机推荐

  1. 自学Python十 爬虫实战三(美女福利续)

    我又来送福利啦!!!不同于上篇文章,这次我们的爬虫采用了多线程,一直以来被所谓的分布式  多线程  爬虫 给唬的怕怕的.今天就来一发多线程爬虫吧,还能看妹子图,想想就觉得很激动!!! 依然是流程解释: ...

  2. css+js+html实现的遮罩

    ——————页面遮罩(CSS+JS+HTML)—————— HTML: <div id="mask" class="mask"></div&g ...

  3. Python+selenium第一个自动化脚本

    第一个自动化脚本(用Python写的) from selenium import webdriver  #从selenium导入webdriber driver=webdriber.Firefox() ...

  4. js document 触发按键事件

    // 键盘控制 var keyEvent = (function () { document.onkeydown = function (e) { if (e.keyCode === 38) { // ...

  5. 【转载】Jmeter分布式部署测试-----远程连接多台电脑做压力性能测试

    在使用Jmeter进行接口的性能测试时,由于Jmeter 是JAVA应用,对于CPU和内存的消耗比较大,所以,当需要模拟数以万计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至会引起J ...

  6. List分组的两种方式

    java8之前List分组 假设有个student类,有id.name.score属性,list集合中存放所有学生信息,现在要根据学生姓名进行分组. public Map<String, Lis ...

  7. python PIL图像处理-生成图片验证码

    生成效果如图: 代码 from PIL import Image,ImageDraw,ImageFont,ImageFilter import random # 打开一个jpg图像文件: im = I ...

  8. 【剑指Offer】4、重建二叉树

      题目描述:   输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列 ...

  9. win10家庭版转专业版并激活

    之前重装win10的时候没注意,不小心装成家庭版. 本以为家庭版也没什么,后来发现这对程序员来说造成致命打击. 在系统信息页面底部点击“更改密匙”,输入win10升级产品密匙:VK7JG-NPHTM- ...

  10. Java中==和equals()的区别