本書依托高等學校軟件工程專業(yè)教學指導委員會第一批軟件工程專業(yè)系列教材的建設,并結合國內(nèi)關于物聯(lián)網(wǎng)軟件設計與開發(fā)類課程的教學情況完成編寫。
全書共8章,分別從物聯(lián)網(wǎng)軟件開發(fā)基礎(第1、2章)、物聯(lián)網(wǎng)設備端系統(tǒng)開發(fā)與案例分析(第3~5章)、物聯(lián)網(wǎng)云端系統(tǒng)開發(fā)與案例分析(第6~8章)三個單元展開。其中,設備端部分從嵌入式端、移動端兩個角度進行介紹; 每章末尾部分設置有習題,以便讀者復習鞏固和進一步探索。此外,配套的實驗指導書包含豐富的案例和實驗。
本書既可作為軟件工程、計算機、自動化等相關專業(yè)的本科生和研究生教材,也可供從事物聯(lián)網(wǎng)軟件行業(yè)的研究人員和工程人員閱讀參考。
新一代信息技術是推動國民經(jīng)濟智能化轉型、高端化升級、綠色化發(fā)展的重要力量。黨的二十大報告強調: 必須堅持科技是第一生產(chǎn)力、人才是第一資源、創(chuàng)新是第一動力,深入實施科教興國戰(zhàn)略、人才強國戰(zhàn)略、創(chuàng)新驅動發(fā)展戰(zhàn)略,開辟發(fā)展新領域新賽道,不斷塑造發(fā)展新動能新優(yōu)勢。
物聯(lián)網(wǎng)作為一項國家戰(zhàn)略性新興產(chǎn)業(yè),是我國新型基礎設施建設的重要組成部分,近年來獲得工業(yè)和信息化部等部門在政策、規(guī)劃、生態(tài)、人才等方面的支持。當前,物聯(lián)網(wǎng)技術在智慧家居、智能制造等場景獲得廣泛應用,在連接數(shù)量、經(jīng)濟產(chǎn)值等方面迎來高速增長。萬物互聯(lián)的時代已經(jīng)到來。
物聯(lián)網(wǎng)軟件的設計與開發(fā),涉及通信、軟件、電子等多種學科,嵌入式技術、移動端開發(fā)、云平臺應用等多門知識,以及Arduino、樹莓派、小熊派等多類國內(nèi)外產(chǎn)品。那些熟手們信手拈來的技術和產(chǎn)品,對于初學者往往眼花繚亂。因此,本書面向本科生、研究生和物聯(lián)網(wǎng)開發(fā)愛好者,一方面在系統(tǒng)性上,以物聯(lián)網(wǎng)軟件開發(fā)為引線,將有關的網(wǎng)絡原理、軟件知識、新興技術等串聯(lián)講解,期望讀者不僅能從一本書中初窺物聯(lián)網(wǎng)系統(tǒng)的軟件概貌,還能在設計和開發(fā)的實踐中隨時查詢; 另一方面在前沿性上,以一套典型的物聯(lián)網(wǎng)系統(tǒng)軟件開發(fā)案例為驅動,不僅介紹了傳統(tǒng)的嵌入式端和移動端,還介紹了新興的物聯(lián)網(wǎng)云平臺以及物聯(lián)網(wǎng)關鍵技術的發(fā)展趨勢,從而實現(xiàn)嵌入式、移動端、云端內(nèi)容的融合和貫穿。本書以原理介紹案例分析項目實踐為線索組織內(nèi)容,同時覆蓋了理論學習和實踐應用的需求。
本書共三個單元,分別介紹了物聯(lián)網(wǎng)和軟件的背景知識、物端中嵌入式和移動端的開發(fā)基礎,以及云端開發(fā)的主要概念。其中,第一單元從物聯(lián)網(wǎng)基礎、軟硬件選型兩方面展開,可供初學者根據(jù)專業(yè)類別和先修課程進行選擇性學習; 第二單元從嵌入式、移動端、網(wǎng)絡接入三點展開,是物聯(lián)網(wǎng)系統(tǒng)軟件開發(fā)的主體部分,需要讀者具備一定的軟件開發(fā)基礎; 第三單元從平臺、系統(tǒng)、趨勢等角度介紹了物聯(lián)網(wǎng)云端,可供讀者在學有余力或課時充足時學習。
本書配套教學課件及程序源碼,讀者可從清華大學出版社官方網(wǎng)站下載。同時,還出版了實驗指導教材《物聯(lián)網(wǎng)技術基礎實驗指導》,可與本書配套使用。
本書得到軟件工程教學指導委員會、西北工業(yè)大學教材建設項目(W013121)、國家自然科學基金資助項目(61901388)的支持。感謝吳健、邢建民、王竹平、王麗芳等專家的指導和建議,感謝團隊所有師生對本書編排和修訂的貢獻,感謝所有為本書順利出版提供幫助的各界人士以及所有參閱材料的作者。作者水平有限,書中難免存在疏漏之處,敬請各位讀者、同仁批評指正,作者將不勝感激。
作者2023年8月
第一單元物聯(lián)網(wǎng)軟件開發(fā)基礎
第1章物聯(lián)網(wǎng)基礎
1.1物聯(lián)網(wǎng)的體系架構
1.1.1感知層
1.1.2網(wǎng)絡層
1.1.3應用層
1.2物聯(lián)網(wǎng)的端系統(tǒng)
1.2.1物端
1.2.2移動端
1.2.3云端
1.3本章小結
1.4課后習題
第2章設備選型和技術選型
2.1開發(fā)板設備選型
2.1.1CC3200
2.1.2Arduino
2.1.3樹莓派
2.1.4開發(fā)板小結與比較
2.2通信技術選型
2.2.1物聯(lián)網(wǎng)的典型通信技術
2.2.2有線通信
2.2.3無線短距離通信
2.2.4無線長距離通信
2.3軟件開發(fā)技術選型
2.3.1常見的軟件開發(fā)模型
2.3.2一般開發(fā)流程
2.4本章小結
2.5課后習題
第二單元物聯(lián)網(wǎng)設備端系統(tǒng)開發(fā)與案例分析
第3章嵌入式實時操作系統(tǒng)FreeRTOS原理
3.1FreeRTOS概述
3.2FreeRTOS體系結構
3.2.1任務管理模塊
3.2.2時間管理模塊
3.2.3內(nèi)存管理模塊
3.2.4協(xié)同例程管理模塊
3.3FreeRTOS調度機制
3.3.1任務結構
3.3.2任務調度原理
3.4本章小結
3.5課后習題
目錄
物聯(lián)網(wǎng)技術基礎
第4章移動端Android應用開發(fā)基礎及高級編程
4.1Android系統(tǒng)概述
4.1.1Android的發(fā)展和簡介
4.1.2Android平臺架構及特性
4.2Android基本組件
4.2.1Activity
4.2.2Service
4.2.3ContentProvider
4.2.4BroadcastReceiver
4.3Android事件處理
4.3.1事件處理的基本概念
4.3.2基于監(jiān)聽的事件處理
4.3.3基于回調的事件處理
4.3.4Handler消息傳遞機制
4.4Android應用開發(fā)基礎
4.4.1安裝Android Studio與SDK
4.4.2安裝過程中的常見問題
4.4.3Android 項目組織結構
4.4.4build.gradle文件簡析
4.4.5開始第一個Android應用
4.5Android界面編程
4.5.1基礎控件
4.5.2自定義控件
4.5.3布局管理器
4.5.4案例: 通信軟件界面設計與實現(xiàn)
4.6Android網(wǎng)絡編程
4.6.1基于TCP的網(wǎng)絡通信
4.6.2使用HTTP訪問網(wǎng)絡
4.6.3OkHttp網(wǎng)絡框架
4.7本章小結
4.8課后習題
第5章物聯(lián)網(wǎng)網(wǎng)關協(xié)議基礎
5.1物聯(lián)網(wǎng)網(wǎng)關
5.2HTTP
5.2.1HTTP介紹
5.2.2HTTP的原理
5.2.3HTTP請求及響應
5.2.4示例
5.3MQTT協(xié)議
5.3.1MQTT協(xié)議介紹
5.3.2MQTT協(xié)議的原理
5.3.3示例
5.4LwM2M協(xié)議
5.4.1LwM2M協(xié)議介紹
5.4.2LwM2M協(xié)議的原理
5.4.3示例
5.5Modbus協(xié)議
5.5.1Modbus協(xié)議介紹
5.5.2Modbus協(xié)議的原理
5.5.3示例
5.6本章小結
5.7課后習題
第三單元物聯(lián)網(wǎng)云端系統(tǒng)開發(fā)與案例分析
第6章物聯(lián)網(wǎng)云平臺基礎
6.1物聯(lián)網(wǎng)云平臺概述
6.1.1背景介紹
6.1.2物聯(lián)網(wǎng)云平臺的體系架構與設計要點
6.1.3物聯(lián)網(wǎng)云平臺的主要功能與核心技術
6.2典型的物聯(lián)網(wǎng)云平臺
6.2.1阿里云物聯(lián)網(wǎng)平臺
6.2.2亞馬遜云物聯(lián)網(wǎng)平臺
6.2.3華為云物聯(lián)網(wǎng)平臺
6.2.4典型的物聯(lián)網(wǎng)云平臺對比
6.3物聯(lián)網(wǎng)云平臺的安全問題
6.3.1物聯(lián)網(wǎng)層次安全問題
6.3.2物聯(lián)網(wǎng)安全威脅
6.3.3物聯(lián)網(wǎng)安全展望
6.4基于云平臺的物聯(lián)網(wǎng)軟件開發(fā)趨勢
6.4.1軟件開發(fā)趨勢
6.4.2Kubernetes與物聯(lián)網(wǎng)云平臺
6.4.3Kubernetes的結構與機理
6.5本章小結
6.6課后習題
第7章物聯(lián)網(wǎng)的操作系統(tǒng)
7.1物聯(lián)網(wǎng)操作系統(tǒng)簡介
7.1.1操作系統(tǒng)設備管理
7.1.2操作系統(tǒng)存儲管理
7.1.3操作系統(tǒng)文件管理
7.2物聯(lián)網(wǎng)操作系統(tǒng)的安全技術
7.2.1操作系統(tǒng)的安全體系
7.2.2操作系統(tǒng)的權限管理
7.2.3操作系統(tǒng)的安全問題
7.2.4操作系統(tǒng)的安全技術
7.3物聯(lián)網(wǎng)操作系統(tǒng)的數(shù)據(jù)存儲技術
7.3.1物聯(lián)網(wǎng)海量數(shù)據(jù)存儲需求
7.3.2數(shù)據(jù)存儲的體系結構
7.3.3數(shù)據(jù)查詢的性能優(yōu)化
7.3.4數(shù)據(jù)存儲前沿技術
7.4物聯(lián)網(wǎng)操作系統(tǒng)的開發(fā)技術
7.4.1負載均衡
7.4.2Java Web
7.5本章小結
7.6課后習題
第8章華為鴻蒙介紹
8.1鴻蒙的設計理念
8.1.1面向物聯(lián)網(wǎng)的操作系統(tǒng)
8.1.2全場景發(fā)展戰(zhàn)略
8.1.3超級終端
8.2鴻蒙的關鍵技術
8.2.1分布式架構
8.2.2一次開發(fā),多端部署
8.2.3微內(nèi)核
8.2.4系統(tǒng)流暢
8.3系統(tǒng)安全
8.3.1分布式多端協(xié)同身份認證
8.3.2在分布式終端上構筑可信運行環(huán)境
8.3.3數(shù)據(jù)分類分級管理
8.4系統(tǒng)架構
8.4.1內(nèi)核層
8.4.2系統(tǒng)服務層
8.4.3框架層
8.4.4應用層
8.5多設備虛擬網(wǎng)絡
8.5.1周邊設備自發(fā)現(xiàn)
8.5.2異構網(wǎng)絡組網(wǎng)
8.5.3極簡傳輸協(xié)議
8.6鴻蒙與Android對比
8.7本章小結
8.8課后習題
參考文獻
附錄A縮略詞