本書首先概述了當前業(yè)務場景中的物聯網概念。然后,它幫助你在IBM Watson物聯網平臺上開發(fā)自己的設備,并使用Watson and Intel Edison創(chuàng)建你的*個物聯網解決方案。一旦你熟悉了物聯網,你就學會了區(qū)塊鏈技術及其使用案例。你還能夠利用Hyperledger framework平臺開發(fā)你自己的區(qū)塊鏈網絡。隨著學習的深入,你將通過書中對問題解決方案的闡述,學會如何設計你的解決方案架構,以便你能夠創(chuàng)建你自己的集成區(qū)塊鏈和物聯網解決方案。接下來的章節(jié)將講述如何在IBM云平臺利用物聯網來實現端到端的區(qū)塊鏈解決方案。在本書結尾,你將掌握如何將物聯網和區(qū)塊鏈技術融合,利用*佳實踐和驅動程序來開發(fā)實用集成解決方案。
區(qū)塊鏈(blockchain)和物聯網(Internet of Things,IoT)已被證明是當下最受歡迎的技術,雖然其使用也才剛剛開始。目前,區(qū)塊鏈和物聯網的整合已是一些大公司的優(yōu)先事項之一,且少數公司已開始在一些項目中使用它來實施計劃、制定解決方案。
這本書將幫助你用最佳實踐案例開發(fā)區(qū)塊鏈和物聯網解決方案。
讀者對象
本書主要面向負責物聯網基礎設施安全機制的人員,以及希望在IBM Cloud平臺上使用區(qū)塊鏈和物聯網開發(fā)解決方案的IT專業(yè)人員,且必須對物聯網有基本的了解。
本書內容概覽
第1章幫你了解物聯網如何成為改變游戲規(guī)則的平臺,如何使用這項技術,如何在物聯網世界中起步,IBM物聯網平臺提供什么功能,以及在創(chuàng)建物聯網解決方案時如何利用這些特性。
第2章使用平臺和Raspberry Pi鍛煉你的技能,幫你創(chuàng)建一個端到端物聯網解決方案:一個能夠使植物保持充足水分的花園澆水自動化系統(tǒng)。
第3章介紹區(qū)塊鏈,并幫助你了解區(qū)塊鏈如何用賬本為有已知身份的授權網絡記錄交易。
第4章使用Hyperledger Composer創(chuàng)建一個區(qū)塊鏈網絡,并探討如何創(chuàng)建資產、交易功能、訪問控制和查詢定義。
第5章設計和實施一套解決方案,以解決物流難題。你將能夠了解到,在使用物聯網和區(qū)塊鏈解決方案過程中,食品鏈中的食品如何能從農場到餐桌被安全跟蹤溯源。這樣能夠獲得更多國家對該方案的支持,并在幾年后推廣普及這種做法。
第6章針對食品安全運輸難題,設計解決方案架構,即使用區(qū)塊鏈支持分布式賬本網絡和物聯網設備需求,并實現過程跟蹤。
第7章展示如何創(chuàng)建區(qū)塊鏈和物聯網集成解決方案,以解決食品安全運輸問題。通過編碼和測試上一章設計的組件,你將獲得使用區(qū)塊鏈和物聯網平臺的實踐經驗。
第8章幫助你了解行業(yè)趨勢、可從物聯網和區(qū)塊鏈解決方案中創(chuàng)建或派生出哪些新的業(yè)務模型,以及有關這些技術的市場和技術趨勢。
第9章幫助你理解以往類似項目的經驗和場景,以及設計和開發(fā)區(qū)塊鏈和物聯網解決方案的最佳實踐與經驗教訓。
充分利用本書
我們希望你熟悉一種編程語言,并具有為嵌入式平臺(如Raspberry Pi、Arduino、ESP8266或Intel Edison)開發(fā)解決方案的經驗。我們將主要使用Node.js和Hyperledger Composer建模語言。入門級的JavaScript技能是受歡迎的。
下載示例代碼及彩色圖像
本書的示例代碼及所有截圖和樣圖,可以從https://www.packtpub.com通過個人賬號下載,也可以訪問華章圖書官網https://www.hzbook.com,通過注冊并登錄個人賬號下載。
你也可以在GitHub上查閱本書中的代碼,網址為https://github.com/PacktPublishing/Hands-On-IoT-Solutions-with-Blockchain。如代碼有更新,它將在現有的GitHub存儲庫上進行更新。
我們還在https://github.com/PacktPublishing/上提供了豐富的書籍和視頻目錄中的其他代碼包。查一下吧!
本書排版約定
本書使用了許多排版約定。
代碼文本(CodeInText):表示文本、數據庫表名、文件夾名稱、文件名、文件擴展名、路徑名、用戶輸入和Twitter句柄中的代碼。下面是一個示例:“接下來,打開首選項的IDE,創(chuàng)建一個新的Node.js項目,并安裝ibmiotf依賴包!
代碼塊如下:
當我們希望提醒你注意代碼塊的某個特定部分時,相關的行或項以粗體顯示:
任何命令行輸入或輸出如下所示:
粗體:表示一個新的術語,一個重要的單詞。
這個圖標表示警告或重要說明。
這個圖標表示提示和技巧。
馬克西米利亞諾·桑托斯(Maximiliano Santos)是位于圣保羅的IBM Cloud Garage(IBM云車庫)的架構師。他為銀行、房地產、保險、化工和消費品行業(yè)開發(fā)了復雜的軟件架構。Max使用IBM Watson的認知服務、物聯網(IoT)平臺以及機器學習和移動應用設計解決方案。
埃尼奧·莫拉(Enio Moura)是一名企業(yè)架構師,在位于圣保羅的IBM Cloud Garage擔任交付主管。他在IT服務領域有25年的運營和咨詢經驗,在集成系統(tǒng)、云計算、架構設計、區(qū)塊鏈和基礎設施解決方案方面有豐富的經驗,對云應用和移動解決方案也有深入的了解。
譯者序
前言
作者簡介
審稿者簡介
第1章 了解物聯網并在IBM Watson物聯網平臺上開發(fā)1
1.1 什么是物聯網2
1.2 物聯網通用案例3
1.2.1 車互聯3
1.2.2 人互聯3
1.3 物聯網技術要素4
1.3.1 設備4
1.3.2 邊緣計算5
1.3.3 網絡6
1.3.4 應用程序協(xié)議11
1.3.5 分析與人工智能12
1.4 IBM Watson物聯網平臺特性12
1.4.1 儀表盤13
1.4.2 設備、網關和應用14
1.4.3 安全性14
1.5 創(chuàng)建你的第一個物聯網解決方案14
1.5.1 創(chuàng)建網關16
1.5.2 創(chuàng)建應用17
1.5.3 創(chuàng)建設備20
1.6 小結24
1.7 補充閱讀24
第2章 創(chuàng)建物聯網解決方案25
2.1 技術要求26
2.2 園藝解決方案26
2.2.1 需求概述26
2.2.2 解決方案概覽27
2.2.3 設備選擇27
2.2.4 設備布線32
2.3 對設備固件進行編碼33
2.3.1 測量土壤濕度34
2.3.2 檢測環(huán)境溫度36
2.3.3 打開繼電器37
2.3.4 發(fā)布事件38
2.3.5 監(jiān)測事件39
2.3.6 訂閱行動43
2.4 創(chuàng)建后端應用45
2.4.1 在IBM Cloud平臺上創(chuàng)建Cloud Foundry應用程序45
2.4.2 上傳代碼47
2.5 小結50
2.6 補充閱讀51
第3章 區(qū)塊鏈技術概述及使用超級賬本53
3.1 區(qū)塊鏈是什么54
3.2 區(qū)塊鏈和超級賬本56
3.2.1 Hyperledger項目57
3.2.2 Hyperledger Fabric59
3.3 選擇一個經典應用案例64
3.4 小結66
3.5 問答67
3.6 補充閱讀67
第4章 創(chuàng)建自己的區(qū)塊鏈網絡69
4.1 先決條件70
4.2 使用Hyperledger Composer創(chuàng)建自己的區(qū)塊鏈網絡70
4.2.1 獲取Hyperledger Composer70
4.2.2 探討一個區(qū)塊鏈網絡案例的結構72
4.3 使用Hyperledger Fabric和Composer安裝區(qū)塊鏈網絡83
4.3.1 設置Docker83
4.3.2 安裝Hyperledger Composer84
4.3.3 使用Docker安裝HyperledgerFabric 1.3 87
4.3.4 在Kubernetes環(huán)境中部署Hyperledger Fabric 1.388
4.4 小結88
4.5 補充閱讀89
第5章 運用區(qū)塊鏈解決食品安全問題91
5.1 現代食品鏈中的規(guī)則、挑戰(zhàn)和問題91
5.1.1 來自食品安全的挑戰(zhàn)92
5.1.2 食品安全管理體系:ISO 2200092
5.2 區(qū)塊鏈和物聯網如何在食品鏈中發(fā)揮作用93
5.2.1 食品生態(tài)系統(tǒng)94
5.2.2 食品生態(tài)系統(tǒng)中的機遇與挑戰(zhàn)95
5.2.3 食品鏈是物聯網和區(qū)塊鏈技術應用的經典案例嗎102
5.3 小結103
5.4 補充閱讀104
第6章 設計解決方案架構105
6.1 食品產業(yè)105
6.1.1 食品生態(tài)系統(tǒng)的挑戰(zhàn)106
6.1.2 食品加工環(huán)節(jié)107
6.1.3 食品配送環(huán)節(jié)108
6.1.4 食品零售環(huán)節(jié)110
6.2 技術方案111
6.2.1 前端應用112
6.2.2 基于物聯網的資產跟蹤技術113
6.2.3 API/SDK115
6.2.4 Hyperledger Composer—高級概述116
6.3 軟件組件117
6.3.1 Composer REST服務器117
6.3.2 Hyperledger Composer模型121
6.3.3 Hyperledger Composer訪問控制語言123
6.3.4 Hyperledger Composer交易處理函數124
6.4 小結125
6.5 問答126
6.6 補充閱讀127
第7章 創(chuàng)建自己的區(qū)塊鏈和物聯網解決方案129
7.1 技術要求130
7.2 解決方案概覽130
7.3 創(chuàng)建區(qū)塊鏈網絡131
7.3.1 概念和枚舉132
7.3.2 資產定義133
7.3.3 參與者134
7.3.4 為Hyperledger部署和測試業(yè)務網絡134
7.3.5 通過區(qū)塊鏈中的交易操控資產137
7.3.6 創(chuàng)建并導出參與者業(yè)務卡片139
7.3.7 定義訪問控制列表141
7.3.8 升級業(yè)務網絡144
7.3.9 為每個參與者設置Composer REST服務器146
7.4 創(chuàng)建解決方案的物聯網部分147
7.4.1 硬件設置147
7.4.2 固件開發(fā)149
7.4.3 應用開發(fā)150
7.5 端到端測試153
7.5.1 創(chuàng)建食品盒154
7.5.2 將資產移交給運輸者155
7.5.3 運輸時測量溫度156
7.5.4 將資產轉移到倉庫156
7.5.5 創(chuàng)建一個搬運托盤并添加食品盒157
7.5.6 運輸搬運托盤時測量溫度158
7.5.7 跟蹤食品盒158
7.6 小結160
第8章 物聯網、區(qū)塊鏈和工業(yè)4.0161
8.1 工業(yè)4.0162
8.2 作為創(chuàng)新平臺的云計算162
8.2.1 云計算模型162
8.2.2 云計算對于工業(yè)4.0的重要性164
8.3 物聯網165
8.4 區(qū)塊鏈—簡化業(yè)務鏈165
8.5 小結167
第9章 開發(fā)區(qū)塊鏈和物聯網解決方案的最佳實踐169
9.1 開發(fā)云應用170
9.1.1 參考架構171
9.1.2 使用12因子應用模型進行開發(fā)172
9.1.3 無服務器計算173
9.2 使用Hyperledger Composer進行區(qū)塊鏈開發(fā)174
9.2.1 Hyperledger Composer工具包174
9.2.2 Hyperledger ComposerREST服務器174
9.3 小結176
9.4 補充閱讀176