關于工業(yè)物聯(lián)網約束應用程序協(xié)議實現(xiàn)的分析調查研究
物聯(lián)網是新一代信息技術的重要組成部分,是在互聯(lián)網的基礎上延伸和擴展的一種網絡,其用戶端延伸和擴展到了任何物品之間,彼此進行信息交換和通信,目的是實現(xiàn)所有物品與網絡的連接,從而方便識別、管理和控制。在過去的幾年里,物聯(lián)網的使用途徑和實現(xiàn)手段也在不斷發(fā)展與完善。物聯(lián)網內許多協(xié)議,具有其自身的特點和要求,選擇更適合的每個應用程序具體要求的協(xié)議進行實施至關重要。在網絡通信協(xié)議的條款的擴展中,IETF的CoRE工作組提出了一種基于REST架構的受限制的應用協(xié)議(CoAP)。由于物聯(lián)網中的很多設備都是資源受限型的,即只有少量的內存空間和有限的計算能力,所以傳統(tǒng)的HTTP協(xié)議應用在物聯(lián)網上就顯得過于龐大而不適用。
本研究針對CoAP的特點與目標對實現(xiàn)CoAP的七個開放源代碼庫(libcoap, smcp, microcoap,FreeCoAP, Californium, h5.coapnode-coap,CoAPthon,CoAPy)進行比較分析。首先,調查當前協(xié)議的實現(xiàn),并比較了它們在內置核心,擴展,目標平臺,編程語言的互操作性。通過比較,我們確認libcoap,SMCP,microcoap,freecoap,Californium,node-coap和coapthon是可互操作的。接著,本文對代碼庫的延遲、內存和CPU消耗方面的性能在一個工業(yè)場景的真實測試中進行真實的比較。比較結果顯示,在服務器的性能方面,基于C語言的CoAP實現(xiàn)效果最突出,libcoap和smcp成為了最快的代碼庫。在客戶端方面,java,js和Python實現(xiàn)的速度與libcoap和smcp驚人地接近。因此,作為更高層次的編程語言的Californium(Java),CoAPthon (Python),h5.coap 和node-coap(Node.js)會被推薦給有關CoAP的客戶。
文章對實現(xiàn)CoAP的七個代碼庫進行評估具有一定的研究價值。一方面,提出了像基于ARM Cortex-M架構的代碼庫評估,基于 Java、Python或 Node.js編程語言的代碼庫可以克服C語言代碼庫在大場景中的表現(xiàn)。另一方面,為其他通信協(xié)議(如MQTT,AMQP和DDS)的內部實現(xiàn)的方式比較提供了有價值的參考與建議。
刊名:Procedia Computer Science
刊期:2017年109C期
作者:Markel Iglesias-Urkia et al.
編譯:劉瑞琦