國外物聯網平台(3):IBM Watson IoT


國外物聯網平台(3)
——IBM Watson IoT

馬智

 

平台定位

提供全面管理的雲托管服務,旨在簡化並從 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秘鑰

 

創建設備類型

 

添加設備

 

設備認證令牌

 

設備事件


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM