- 物聯網系統開發:從0到1構建IoT平臺(第2版)
- 付強 傅靜濤
- 1643字
- 2025-08-07 15:10:07
Preface
前言
為什么要寫這本書
2011年我在硅谷的時候,曾經參與設計和開發了一個物聯網平臺。這個平臺的目的是為各種物聯網設備提供統一的通信接口,以及提供數據存儲和分析功能,降低物聯網設備商的開發和運營成本。不過,由于物聯網設備的異構性太強,同時平臺的愿景過于超前,而當時物聯網應用的發展包括資本的投入都遠不及現在,這個項目不得不半路中止。
2015年,我在國內和朋友聯合創辦了一家物聯網相關的公司。為了支持公司的硬件產品,我們開發了一個提供統一通信和數據服務的物聯網平臺,不過吸取了之前的教訓,這個平臺只對同一組織(公司)里的多個產品提供支持。當時各大云服務商,比如阿里云,提供了非常成熟的物聯網套件,我們將這些物聯網套件中的一些功能移植到了自研的物聯網平臺上。這個平臺從技術層面很好地支持了公司從0到1、從1到N持續盈利的全流程。
在這個過程中我遇到過一些問題,也總結出一些非常有用的經驗。在此期間,我也加入了一些物聯網開發者的社區。在日常的技術交流里,我發現一些開發人員對常用的物聯網協議的理解是有問題的,對一些功能應該在協議層面實現還是在業務層面實現不是很清楚。我曾在互聯網上搜索過相關的技術文章,發現系統性講解協議的規范和特性的文章非常少,不是只對一兩個功能進行介紹,就是只翻譯協議規范,缺乏代碼示例。
在這種情況下,我在GitChat的專欄寫了我的第一篇文章《MQTT協議快速入門》,詳細地講解了物聯網應用中最常見的MQTT協議的規范和特性,并對每一個特性附以豐富的代碼示例。
加入專欄文章的讀者交流群后,我又發現讀者還有很多關于設計、業務架構的疑問,深入理解MQTT協議并不能解決這些問題。這讓我意識到,物聯網應用開發并不像Web開發那樣有成熟的設計模式和框架可以使用,開發者往往都是從協議級別開始往上搭,重復地造輪子。
因此,我覺得有必要把我們在開發物聯網平臺中遇到的困難和總結的經驗分享出來,從協議開始講起,再覆蓋物聯網后臺開發中常見的設計模式和最佳實踐,讓其他的物聯網開發者少走一些彎路,少造一些輪子,進而更快速、更高效地上線自己的產品。
讀者對象
?物聯網應用開發人員
?物聯網架構師
?物聯網平臺開發人員
?對物聯網感興趣的開發人員
?有一定經驗的IM平臺、移動推送平臺開發人員
?渴望學習更多物聯網實際開發經驗的人員
如何閱讀本書
本書涵蓋物聯網應用開發80%的場景,理論和實戰并重。本書內容分為三大部分。
第一部分(第1~2章)為物聯網基礎知識介紹,涵蓋物聯網的概念和常用協議。
第二部分(第3~6章)為MQTT協議詳解,通過詳盡的示例代碼對MQTT 3.1.1和MQTT 5.0協議的規范和特性進行講解。
第三部分(第7~14章)為物聯網平臺開發實戰,從零開始用開源的組件搭建一個名為Maque IotHub的物聯網平臺,在這個過程中講解物聯網后臺開發中常見的設計模式和最佳實踐。
本書最后補充有結語與附錄。結語總結了本書講到的相關系統與知識體系,附錄介紹了運行Maque IotHub的方法和步驟。
如果你對MQTT協議已經非常了解,可以直接從第三部分開始看起,第二部分可作為協議規范參考指南。
如果你是一名初學者,請務必從第1章的基礎知識開始學習。
勘誤和支持
由于作者的水平有限,書中難免會出現一些錯誤或者不準確的地方,懇請讀者批評指正。
書中大量的實例代碼都可以從我的GitHub站點(https://github.com/sufish)下載。你也可以關注我在GitChat的專欄(https://gitbook.cn/gitchat/author/59ed8409991df70ecd5a0f8f),并加入專欄讀者群進行交流。如果你有更多的寶貴意見,也歡迎發郵件到yfc@hz.cmpbook.com。期待能夠得到你們的真摯反饋。
致謝
首先要感謝EMQX的開發者和貢獻者,開發和維護一款強大的開源MQTT Broker非常不易。
感謝GitChat提供平臺并促成了本書的出版。
感謝在寫作過程中很多人的支持與幫助,他們是:趙華振、李斌鋒、鄧斌、戚祥、于偉、皮文星、陳育春、陸正武、虞曉東、張恒汝、高喆、劉威、劉冉、付志濤、宗杰、王大平、李振捷、李波、張鵬、管西京、閆芳、王玉芹、王秀明、楊振珂。
感謝公司的全體同人,大家的共同努力才給我提供了一個能夠實踐自己想法的機會。
最后感謝關心我的家人,尤其是我的妻子和女兒,她們的支持是我完成本書的動力!
謹以此書獻給我最親愛的家人,以及廣大物聯網開發者!
付強
- 自己動手寫搜索引擎
- Web Scraping with Python
- Vue.js前端開發基礎與項目實戰
- Java應用開發與實踐
- Mastering Python Scripting for System Administrators
- Python自然語言處理(微課版)
- Hands-On GPU:Accelerated Computer Vision with OpenCV and CUDA
- Java程序設計:原理與范例
- PhoneGap:Beginner's Guide(Third Edition)
- UML 基礎與 Rose 建模案例(第3版)
- Yii Project Blueprints
- 細說Python編程:從入門到科學計算
- Spring+Spring MVC+MyBatis從零開始學
- jQuery技術內幕:深入解析jQuery架構設計與實現原理
- Scratch編程入門與算法進階(第2版)