Internet of Things (IoT) Architecture for Beginners
來源:物联网资本论 作者:高一弘
物聯網(IoT)是目前最新最熱的技術熱點之一,也是這個資訊化時代的重要發展節點。
相對於網際網路而言,物聯網的本質在於「萬物相連」。物聯網的核心和基礎,仍然是網路,是在網路基礎上,延伸和擴充套件的網路;其使用者端延伸和擴充套件,到了任何物品與物品之間,進行資訊交換和通訊,也就是物物相連。
物聯網作業系統概述:
儘管物聯網的發展形態,受到普遍看好和關注,但是「連線、區別、辨識、溝通、操作」這五大問題,一直如影隨形,可以說只有這些問題得到很好的解決和兼顧,才能繼續應對安全性、易用性、低成本等問題。
在網路「人與人」之間的資訊交換和共享基礎上,進一步擴充套件實現「物與物」「人與物」之間的資訊交換和共享。
在這樣的大背景下,我們發現物聯網作業系統,與傳統的個人電腦作業系統,和智慧手機類作業系統不同,它具備物聯網應用領域內的以下特點:
1、核心尺寸伸縮性,以及整體架構的可擴充套件性。
物聯網的發展即將進入一個小的爆發期,所以面對一輪輪的技術革新,甚至換代時,整體架構的靈活性和可擴充套件性,可以說決定了一個企業的商業命脈。同時,為了適應不同的應用場景下的技術要求,核心尺寸的伸縮性,也是需要面對的問題。
2、核心的即時性。
對於非搶佔式排程方式的核心,很難滿足關鍵性動作的即時性要求,比如常見的中斷響應,和多工排程等情況下,作業系統的即時性便有了更高的要求,特別是對於大多數的物聯網應用而言,有意義的響應時間決定了市場的接受度。
3、高可靠性 。
在物聯網的應用環境下,面對海量節點可以說裝置一經投入使用,就很難再去維護。所以平均無故障執行時間,和在一些嚴苛環境下的效能表現,就顯得尤為重要。而在一向很注重資訊保全的機密機構的資料安全性,引發了業內關於開源機制、VMM機制等的廣泛討論。
4、低功耗。
由於物聯網的應用場景和網路節點的數量增多,低功耗是一個非常關鍵的指標。所以在整體架構設計的時候,就需要加入一些休眠模式、節能模式、降頻模式等邏輯判斷,以延長續航能力。
物聯網作業系統整體架構和功能:
在最低層的硬體平台之上,有物聯網作業系統核心,和外圍功能模組,加上整合開發環境,這些子系統之間相互配合,共同組成一個完整的面向,各種各樣物聯網應用場景的軟體基礎平台,一起支撐了物聯網的具體應用。
圖2是最抽象的一個物聯網作業系統描述。
具體地說,物聯網作業系統除具備傳統作業系統的裝置資源管理功能外,還具備下列功能:
1、遮蔽物聯網碎片化的特徵,提供統一的程式設計介面;
2、物聯網生態環境培育;
3、降低物聯網應用開發的成本和時間;
4、為物聯網統一管理奠定基礎。
針對物聯網作業系統的外圍功能模組,也有一些特殊的要求:
1、支援應用程式的遠端升級。
上文說到,因為物聯網的種種應用環境和條件限制,遠端升級是物聯網作業系統,在升級方式上的唯一選擇,當然同時也是最為低成本的選擇。
2、外部儲存。
支援硬碟、USB stick、Flash、ROM等常用儲存裝置,以便在網路連線中斷的情況下,起到臨時儲存資料的作用。
3、對物聯網常用的無線通訊功能要內建支援。
在公共網路、近場通訊、桌面網路介面之間,要能夠相互轉換,能夠把從一種協議獲取到的資料包文,轉換成為另外一種協議的報文傳送出去。除此之外,還應支援簡訊息的接收和傳送、語音通訊、視訊通訊等功能;
4、 網路功能。
物聯網作業系統,必須支援完善的TCP/IP協議棧,包括對IPv4和IPv6的同時支援。但TCP/IP協議棧是面向網路設計的通訊協議棧,由於物聯網本身特徵與網路有很大差異,TCP/IP協議棧在應用到物聯網的時候,面臨許多問題和挑戰,需要對TCP/IP協議棧做一番優化改造。
5、支援完善的GUI功能。
圖形使用者介面,一般應用於物聯網的智慧終端中,完成使用者和裝置的互動。GUI應該定義一個完整的框架,以方便圖形功能的擴充套件。同時應該實現常用的使用者介面元素,比如文字框、按鈕、列表等。
物聯網作業系統例項分析
RT-Thread
由開源社群主導開發的開源嵌入式即時作業系統,它包含即時嵌入式系統相關的各個元件:即時作業系統核心,TCP/IP協議棧、檔案系統、libc介面、圖形引擎等。
從圖中對比上文提到的物聯網作業系統抽象架構,可以發現RT-Thread包括了:
1、底層移植、驅動層,這層與硬體密切相關,由Drivers和CPU移植相構成。
2、硬即時核心,這層是RT-Thread的核心,包括了核心系統中物件的實現,例如多執行緒及其排程,訊號量,郵箱,訊息佇列,記憶體管理,定時器等實現。
3、元件層,這些是基於RT-Thread核心基礎上的外圍元件,例如檔案系統,命令列shell介面,lwIP輕型TCP/IP協議棧,GUI圖形引擎等。
Ostro Linux
英特爾這款基於Yocto Project的作業系統Ostro Linux符合IoTivity,支援眾多的無線技術,還提供一種感測器框架。它非常注重物聯網安全,提供作業系統、裝置、應用程式和資料等層面的保護,包括加密和MAC。
在上圖的整體架構中,值得一提的是:
1、程式設計介面: 程式設計介面,是Ostro提供給應用程式開發者使用的,用於開發各種各樣的物聯網應用程式。當前來說,Ostro提供了多種多樣的程式設計介面,供程式設計師根據自己的喜好,和特定應用場景呼叫。
2、物聯網協同框架: Ostro內建了對IoTivity的支援。IoTivity 是一個開源的軟體框架,用於無縫的支援裝置到裝置的互聯,以及人與裝置的簡便互聯。其主要是為了滿足物聯網開發的需要,構建物聯網的生態系統,使得裝置和裝置之間可以安全可靠的連線。而IoTivity 透過提供一系列框架和服務,來加速裝置的互聯應用開發。該專案由 Open Interconnect Consortium (OIC) 組織贊助,相當於是 OIC 標準的一個參考實現。
3、Ostro服務: Ostro服務主要是指,系統級的一些程序或執行緒,這些程序或執行緒負責管理網路連線,載入必要的支撐服務,以及提供程序間通訊(IPC)支援等。在Ostro作業系統中,保留了大部分Linux作業系統所支援的systemd,D-Bus等。
參考對岸中國華為LiteOS
身為中國物聯網技術,尤其是NB-IoT的先驅,華為在物聯網作業系統上也大有作為。其釋出的基於Linux的LiteOS甚至是目前世界上最輕量級的物聯網作業系統,其系統體積輕巧到 10KB 級,具備零配置、自組網、跨平台的能力,可廣泛應用於智慧家居、穿戴式、車聯網、工業等領域。
LiteOS應用廣泛,從基於MCU的裝置,到與安卓相容的應用程式處理系統,不一而足。這款可定製的作業系統擁有諸多功能,比如零配置、自動發現、自動聯網、快速啟動和即時操作,它提供廣泛的無線支援,包括LTE和網狀網路。LiteOS隨華為的敏捷物聯網解決方案交付,它驅動窄頻物聯網(NB-IoT)解決方案。
中興物聯網作業系統
既然提到了華為,那麼順便說一下在2016年中興提出的物聯網作業系統方案。
當時宣稱的亮點包括:
1、連線 ——作業系統整合常見的網路協議棧(TCP/IP、ZigBee、藍芽、WiFi等);
2、遠端管控和簡易配置 ——作業系統整合裝置管理協議(典型的是LWM2M),使得透過管理平台,可以對不同廠商的智慧硬體裝置,進行統一的管理;
3、溝通和互操作 ——作業系統透過整合裝置互聯互通框架(典型的是AllJoyn精簡核心庫),能夠在物和物之間,進行溝通和互操作;雲端的管理和操作,使得物與物、物和人之間的互聯互通不再是障礙;
4、線上開發除錯 ——通過中興CDSP雲平台(Cloud Development & Support Platform),支援物聯網OS軟體的線上開發、編譯和除錯,還可以通過CDSP雲平臺對終端裝置線上升級;實現多種廠商終端裝置的支援。
結語
目前物聯網作業系統的市場情況是:十幾種物聯網作業系統都處在發展初期,產業鏈生態環境對此並未做出積極反映,目前還很少看到和聽到,全球各企業在使用某種物聯網作業系統的資訊。同時,開源Linux和RT作業系統還是主流,活躍在物聯網市場。
作業系統是物聯網時代的策略制高點,今天PC和手機時代的作業系統霸主未必能在物聯網時代延續霸業。
0 comments:
張貼留言