羅旭 張偉 卜世俊
摘要:物聯(lián)網(wǎng)服務(wù)平臺(tái)是完整的物聯(lián)網(wǎng)應(yīng)用系統(tǒng)的大腦,承擔(dān)著核心的多傳感器數(shù)據(jù)接入、融合、處理、優(yōu)化和控制的功能,它與傳統(tǒng)事務(wù)處理型數(shù)據(jù)中心的區(qū)別和設(shè)計(jì)挑戰(zhàn)主要是如何在保持高并發(fā)的同時(shí)實(shí)現(xiàn)較低延遲的實(shí)時(shí)數(shù)據(jù)處理。該文針對(duì)物聯(lián)網(wǎng)服務(wù)平臺(tái)的設(shè)計(jì)需求,提出了實(shí)時(shí)和非實(shí)時(shí)數(shù)據(jù)通路分離的設(shè)計(jì)方案,并采用發(fā)布/訂閱機(jī)制實(shí)現(xiàn)底層的分布式消息傳輸以實(shí)現(xiàn)高吞吐、低時(shí)延、高靈活性的目標(biāo),該模式可很好的支持服務(wù)平臺(tái)內(nèi)部的多種消息傳輸模式和上層應(yīng)用。原形系統(tǒng)采用Java開發(fā)實(shí)現(xiàn),實(shí)驗(yàn)結(jié)果表明在24GB內(nèi)存的服務(wù)器上達(dá)到9萬(wàn)個(gè)TCP連接,且端到端傳輸時(shí)延平均在10-18ms,結(jié)論上該方案可較好的滿足實(shí)際物聯(lián)網(wǎng)服務(wù)平臺(tái)的技術(shù)需求。
關(guān)鍵詞:物聯(lián)網(wǎng);通用服務(wù)平臺(tái)設(shè)計(jì);實(shí)時(shí)數(shù)據(jù)傳輸;分布式消息服務(wù);性能測(cè)試
中圖分類號(hào):TP311.52 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)35-8379-04
Real-time Data Transmission Design and Performance Test in General Iot Service Platform
LUO Xu, ZHANG Wei, BU Shi-jun
(Department of Control Science and Engineering, School of Electronics and Information Engineering, Tongji University, Shanghai 201804,China)
Abstract:The Service platform is the central brain of a complete Internet-of-Things applications. It fulfills the tasks of sensor data collection, fusion, processing, control and optimization. The design of such IoT service platform differs greatly from traditional transaction-oriented data center such as the credit processing service in the bank. The designer has to balance the high concurrency and low latency requirements. This paper firstly analyzes the requirements of IoT service platform, and proposes a common design pattern which includes separate real-time and non-real-time data path. Furthermore, a publishing/subscribing based low level distributed message service is included to achieve low latency, high throughput and flexibility to support various upper level tasks. The prototype is developed by Java and has been tested with a small network in lab environment. It can accept 90,000 TCP connections simultaneously on a 24GB memory server. The average end to end transmission delay is between 10 and 18ms. The testing indicates the solution can satisfy the requirements of most typical Iot service platforms.
Key words:Internet-of-things; general service platform design; real-time data transmission; distributed message service; performance test
隨著大規(guī)模集成電路、低功耗無(wú)線通信、微型傳感器等支撐技術(shù)的進(jìn)步,物聯(lián)網(wǎng)在繼計(jì)算機(jī)和互聯(lián)網(wǎng)之后,成為IT領(lǐng)域發(fā)展的重點(diǎn),它通過(guò)網(wǎng)絡(luò)技術(shù)互聯(lián)大量的傳感器、物品標(biāo)識(shí)與定位裝置、執(zhí)行器等設(shè)備,實(shí)現(xiàn)物與物之間的信息交互[1-2],并進(jìn)而通過(guò)傳感器與執(zhí)行器擴(kuò)展到與環(huán)境和人的交互,實(shí)現(xiàn)人、機(jī)、物三元世界的融合[3],推動(dòng)整個(gè)世界向著自動(dòng)化、智能化的世界進(jìn)步。
物聯(lián)網(wǎng)服務(wù)平臺(tái)是完整的物聯(lián)網(wǎng)應(yīng)用系統(tǒng)的大腦,承擔(dān)著核心的多傳感器數(shù)據(jù)匯聚、融合、處理、優(yōu)化和控制的功能,它與傳統(tǒng)事務(wù)處理型數(shù)據(jù)中心的區(qū)別和設(shè)計(jì)挑戰(zhàn)主要是如何在保持高并發(fā)的同時(shí)實(shí)現(xiàn)較低延遲的實(shí)時(shí)數(shù)據(jù)處理[3-4],并有能力面向用戶需求提供豐富的通信模式。從提供數(shù)據(jù)通信的功能角度看,物聯(lián)網(wǎng)服務(wù)平臺(tái)連接了大量外圍設(shè)備,本身可抽象為一個(gè)連接了海量設(shè)備的快速消息引擎,因此可充分借鑒傳統(tǒng)分布式消息內(nèi)核設(shè)計(jì)中的發(fā)布/訂閱機(jī)制、輪轉(zhuǎn)調(diào)度機(jī)制等實(shí)現(xiàn)對(duì)各種通信模式和負(fù)載均衡的支持[5],以及提高整個(gè)系統(tǒng)的接入能力以允許海量設(shè)備直接連接。該文據(jù)此思想設(shè)計(jì)設(shè)計(jì)開發(fā)了一套支持物聯(lián)網(wǎng)端到端雙向?qū)崟r(shí)數(shù)據(jù)傳輸?shù)南?nèi)核,實(shí)現(xiàn)了一個(gè)物聯(lián)網(wǎng)服務(wù)平臺(tái)原形系統(tǒng),并對(duì)其性能進(jìn)行了測(cè)試以驗(yàn)證其在大規(guī)模物聯(lián)網(wǎng)系統(tǒng)中應(yīng)用的有效性,可為大規(guī)模物聯(lián)網(wǎng)服務(wù)平臺(tái)的實(shí)時(shí)數(shù)據(jù)傳輸架構(gòu)設(shè)計(jì)提供量化參考。endprint
1 物聯(lián)網(wǎng)系統(tǒng)的基本架構(gòu)
1.1 硬件架構(gòu)
完整的物聯(lián)網(wǎng)應(yīng)用系統(tǒng)的硬件架構(gòu)如圖1所示,主要包括與物理環(huán)境交互的無(wú)線傳感網(wǎng)部分(含無(wú)線傳感器、執(zhí)行器等各種現(xiàn)場(chǎng)設(shè)備)、云端的服務(wù)中心部分和與人交互的智能設(shè)備部分,其中,服務(wù)中心可進(jìn)一步分為負(fù)責(zé)設(shè)備接入的服務(wù)網(wǎng)關(guān)(Gateway Service)、負(fù)責(zé)用戶接入的Web應(yīng)用和各種內(nèi)部服務(wù),且每一個(gè)服務(wù)可在負(fù)載過(guò)大時(shí)引入集群,所有服務(wù)均通過(guò)內(nèi)部的消息總線連接,并且通過(guò)消息總線實(shí)現(xiàn)消息的發(fā)布/訂閱機(jī)制和負(fù)載均衡機(jī)制。
1.2 軟件架構(gòu)
云端的服務(wù)中心[6]是整個(gè)物聯(lián)網(wǎng)系統(tǒng)的中心,如圖1所示,它由多個(gè)服務(wù)組成,且多個(gè)服務(wù)之間通過(guò)分布式消息總線連接以實(shí)現(xiàn)各種模式的消息通信以及負(fù)載均衡。必要時(shí),每個(gè)服務(wù)還可以進(jìn)一步借助集群技術(shù)提高處理能力。因此,分布式消息隊(duì)列是整個(gè)服務(wù)中心底層設(shè)計(jì)開發(fā)的關(guān)鍵。
1.2.1 分布式服務(wù)
典型的云端服務(wù)系統(tǒng)包含:
1) 面向設(shè)備接入的服務(wù)網(wǎng)關(guān)(Gateway):接收來(lái)自傳感網(wǎng)絡(luò)的測(cè)量數(shù)據(jù),例如車輛內(nèi)部溫度、濕度等,并且將接收到的數(shù)據(jù)放入消息隊(duì)列。
2) 面向用戶接入的交互服務(wù)(UIO):包括提供應(yīng)用管控的Web應(yīng)用(Web Application)和與移動(dòng)設(shè)備瀏覽器實(shí)現(xiàn)雙向?qū)崟r(shí)數(shù)據(jù)通信的(IO)兩部分。
3) 實(shí)時(shí)處理服務(wù)(Realtime Service):實(shí)時(shí)數(shù)據(jù)傳輸處理,主要負(fù)責(zé)實(shí)時(shí)顯示變量的新數(shù)據(jù)以及用戶界面的繪圖顯示服務(wù)。
4) 非實(shí)時(shí)處理服務(wù)(Non-Realtime Service):可持久化存儲(chǔ),離線分析,主要負(fù)責(zé)變量歷史數(shù)據(jù)的查詢和增刪改。
5) 警報(bào)服務(wù)(Alert):對(duì)有異常的情況通過(guò)Email或者Short message的方式推送到前端客戶端。
1.2.2 軟件架構(gòu)與模塊分解
服務(wù)端采用JAVA語(yǔ)言,它具有面向?qū)ο?、分布式、平臺(tái)無(wú)關(guān)性等特點(diǎn),采用Eclipse開發(fā)工具,利用maven項(xiàng)目管理工具進(jìn)行系統(tǒng)軟件模塊程序編寫。下面是實(shí)時(shí)信息服務(wù)系統(tǒng)的軟件模塊分解,其中通信機(jī)制主要采用Vert.x框架[7]。
Gateway Service作為網(wǎng)關(guān)服務(wù)程序,在這里的功能相對(duì)簡(jiǎn)單,主要起接受來(lái)自傳感網(wǎng)絡(luò)的數(shù)據(jù),并且直接轉(zhuǎn)發(fā)數(shù)據(jù)。Real-time Service通信模塊信息數(shù)據(jù)傳輸主要是兩個(gè)部分,一部分是負(fù)責(zé)接收和處理與Gateway Service模塊傳輸過(guò)來(lái)的數(shù)據(jù),另外部分負(fù)責(zé)處理與Web Application Service交互信息數(shù)據(jù)。當(dāng)Gateway Servie實(shí)時(shí)數(shù)據(jù)傳輸過(guò)來(lái),我們將其持久化存儲(chǔ)在SSDB Nosql,這是一個(gè)高性能、面向大數(shù)據(jù)存取的非關(guān)系型數(shù)據(jù)庫(kù),另外我們將實(shí)時(shí)數(shù)據(jù)傳遞給Web Application網(wǎng)頁(yè)程序,同樣,網(wǎng)頁(yè)程序給與在Browser實(shí)時(shí)顯示,實(shí)現(xiàn)人機(jī)交互操作。
2 實(shí)時(shí)數(shù)據(jù)傳輸通路的設(shè)計(jì)與開發(fā)
2.1 數(shù)據(jù)通路設(shè)計(jì)
如圖2所見,服務(wù)中心包含兩條主要的雙向數(shù)據(jù)通路,實(shí)時(shí)通路Device-Gateway-Realtime-UIO-Browser和非實(shí)時(shí)數(shù)據(jù)通Device-Gateway-Non-Realtime-UIO-Browser,分別對(duì)傳輸數(shù)據(jù)做持久化和實(shí)時(shí)顯示處理。
出于物聯(lián)網(wǎng)應(yīng)用中實(shí)時(shí)監(jiān)控的需求,這里采用實(shí)時(shí)和非實(shí)時(shí)數(shù)據(jù)通路分開設(shè)計(jì)的方法,實(shí)時(shí)數(shù)據(jù)處理僅記錄有限的歷史數(shù)據(jù),以滿足面向監(jiān)控的報(bào)警生成需求和UIO的監(jiān)控需求為目標(biāo),不求功能的完備,而非實(shí)時(shí)服務(wù)要負(fù)責(zé)數(shù)據(jù)的持久化存儲(chǔ)、檢索、深層次的統(tǒng)計(jì)分析、建模與預(yù)測(cè)等。同時(shí),為了支持來(lái)自UIO的命令下發(fā)和測(cè)試需要,實(shí)時(shí)數(shù)據(jù)通路被設(shè)計(jì)為支持雙向數(shù)據(jù)傳輸。
2.2 分布式消息總線的設(shè)計(jì)與開發(fā)
面向服務(wù)的構(gòu)架(SOA)被越來(lái)越多地應(yīng)用于高性能的實(shí)時(shí)系統(tǒng)[8-9],消息總線是實(shí)時(shí)系統(tǒng)中的動(dòng)脈,是實(shí)現(xiàn)多個(gè)服務(wù)之間多種通信模式的技術(shù)關(guān)鍵[10-11]。
分布式消息總線的通訊模式中常見的通信模式有四類[12-13],傳統(tǒng)的一對(duì)一結(jié)對(duì)通信,只需要支持傳統(tǒng)的TCP Socket模型,經(jīng)常使用的通信模式只有三類。
1) 請(qǐng)求回應(yīng)模型。由請(qǐng)求端倡議請(qǐng)求,并期待回應(yīng)端回應(yīng)請(qǐng)求。從請(qǐng)求端來(lái)看,是一對(duì)對(duì)收發(fā)配對(duì)的;反之,在回應(yīng)端必然是發(fā)收對(duì)。這個(gè)模型的更底層的端點(diǎn)地址是對(duì)上層埋沒(méi)的,每一個(gè)請(qǐng)求都隱含有回應(yīng)地址,而利用則不關(guān)心它。
2) 發(fā)布訂閱模型[14]。這個(gè)模型里,發(fā)布端是單向只發(fā)送數(shù)據(jù)的,且不關(guān)心是否把全部的信息都發(fā)送給訂閱端。如果發(fā)布端開始發(fā)布信息的時(shí)候,訂閱端尚未連接上來(lái),這些信息直接丟棄[15]。不過(guò)一旦訂閱端連接上來(lái),中間會(huì)保證沒(méi)有信息丟失。同樣,訂閱端則只負(fù)責(zé)接收,而不能反饋[16]。圖3是一個(gè)典型的Pub/Sub模型示意圖。
3) 管道模型。這個(gè)模型里,管道是單向的,從 PUSH 端單向的向 PULL 端單向的推送數(shù)據(jù)流。
本文中的消息總線采用基于Java的Vertx技術(shù)開發(fā),并充分利用了Vertx自帶的分布式部署能力以簡(jiǎn)化整個(gè)后端服務(wù)的開發(fā)。在此系統(tǒng)設(shè)計(jì)過(guò)程中,主要有五個(gè)模塊部分之間相互實(shí)時(shí)數(shù)據(jù)信息的傳輸,分別為Gateway Simulator、Gateway Service、Realtime Service、Web Application和瀏覽器Browser,Gateway Simulation與Gateway Service之間采用Tcp通信協(xié)議,Gateway Service、Realtime Service和Web Application之間使用Vert.x的EventBus機(jī)制實(shí)現(xiàn),Web Application和Broswer,則是通過(guò)WebSocket相互傳遞數(shù)據(jù),WebSocket是瀏覽器與服務(wù)器全雙工通信[17] (full-duplex),而Vert.x對(duì)WebSocket也提供了很好的API支持。endprint
3 端到端實(shí)時(shí)數(shù)據(jù)流傳輸?shù)男阅軠y(cè)試評(píng)價(jià)
3.1 實(shí)驗(yàn)測(cè)試環(huán)境
測(cè)試環(huán)境和設(shè)備說(shuō)明本設(shè)計(jì)實(shí)驗(yàn)需要的設(shè)備,在同一個(gè)局域網(wǎng)下的四臺(tái)主機(jī),如表1所示。
在本測(cè)試網(wǎng)絡(luò)性能的時(shí)候,考慮的是實(shí)時(shí)數(shù)據(jù)時(shí)延和服務(wù)器接入能力兩個(gè)性能參數(shù)。我們采用在同一個(gè)局域網(wǎng)下不同的主機(jī)運(yùn)行分別測(cè)試和服務(wù)程序,實(shí)現(xiàn)模擬分布式的運(yùn)行環(huán)境,其中包含同一個(gè)網(wǎng)段下四臺(tái)主機(jī),如圖4所示。當(dāng)連接數(shù)不斷增加時(shí),網(wǎng)絡(luò)性能指標(biāo)參數(shù)也隨之改變,我們需要考慮在不同的連接數(shù)或者連接數(shù)不斷增大的時(shí)候時(shí)延的變化曲線。我們主要選擇端對(duì)端、接入能力這種情況下測(cè)試網(wǎng)絡(luò)性能,獲取指標(biāo)的數(shù)據(jù),并且加以分析和評(píng)價(jià)。
3.2 端對(duì)端傳輸時(shí)延的測(cè)試
3.2.1 測(cè)試環(huán)境部署
端對(duì)端測(cè)試環(huán)境系統(tǒng)部署如圖5所示,模擬物聯(lián)網(wǎng)服務(wù)平臺(tái)系統(tǒng)。
3.2.2 測(cè)試方法
在端對(duì)端時(shí)我們考慮使用定時(shí)器間隔30ms中發(fā)送一次數(shù)據(jù),確保數(shù)據(jù)能在下一次發(fā)送出去,從而不影響下次發(fā)送的狀況,在從Gateway Simulator應(yīng)用程序發(fā)送信息數(shù)據(jù),經(jīng)過(guò)多次傳輸和多個(gè)模塊,最后在Browser接收數(shù)據(jù)并且寫回?cái)?shù)據(jù)給Gateway Simulator,形成之前所示的來(lái)回通道,如此往返的接收,測(cè)試網(wǎng)絡(luò)時(shí)延性能。
3.2.3 測(cè)試結(jié)果
本實(shí)驗(yàn)設(shè)計(jì)總共進(jìn)行11次測(cè)試,試驗(yàn)編號(hào)分別為1-11,并且每次試驗(yàn)記錄10次的往返時(shí)間值,求取每次試驗(yàn)時(shí)延的平均值,測(cè)試結(jié)果如圖6所示,橫軸表示試驗(yàn)編號(hào),縱軸表示每次試驗(yàn)的平均時(shí)延。同時(shí)記錄每次測(cè)試時(shí)延的最大最小值,繪制表格,測(cè)試結(jié)果如表2所示。
通過(guò)上圖我們大致可以知道該設(shè)計(jì)系統(tǒng)中時(shí)延參數(shù),數(shù)值平均在10ms-18ms之間波動(dòng),最小值出現(xiàn)7ms和最大值29ms,這可能出現(xiàn)某次數(shù)據(jù)傳輸?shù)膿頂D與否有關(guān)。時(shí)延作為物聯(lián)網(wǎng)重要參數(shù)指標(biāo),在此設(shè)計(jì)系統(tǒng)中測(cè)試得到的數(shù)值對(duì)于物聯(lián)網(wǎng)需求而言是滿足要求的,能保證物聯(lián)網(wǎng)數(shù)據(jù)低時(shí)延傳輸。
3.3 接入能力測(cè)試
3.3.1 測(cè)試環(huán)境部署
接入能力測(cè)試環(huán)境部署如圖7所示。
3.3.2 測(cè)試方法
在物聯(lián)網(wǎng)平臺(tái)服務(wù)系統(tǒng)中,另外一個(gè)重要參數(shù)指標(biāo)是網(wǎng)絡(luò)的并發(fā)性。該系統(tǒng)基于事件驅(qū)動(dòng)并發(fā)模型,每次客戶端Gateway Simulator應(yīng)用程序不斷提高連接數(shù)去訪問(wèn)服務(wù)器,在網(wǎng)關(guān)服務(wù)端Gateway Service應(yīng)用程序定時(shí)檢測(cè)已連接客戶端的量,繪制曲線圖。測(cè)試環(huán)境:在同一個(gè)局域網(wǎng)下,系統(tǒng)擁有四臺(tái)主機(jī),其中三臺(tái)作為客戶端運(yùn)行客戶端程序去請(qǐng)求連接,一臺(tái)作為客戶連接服務(wù)程序。實(shí)驗(yàn)總共進(jìn)行8次測(cè)試,編號(hào)為1-8。其中圖8表示其中一次試驗(yàn)的連接曲線圖,橫軸表示服務(wù)器運(yùn)行時(shí)間,縱軸表示隨時(shí)間變化的已連接數(shù)。圖9描繪這8次試驗(yàn)在單位時(shí)間內(nèi)每ms客戶端的連接數(shù),其中橫軸表示試驗(yàn)編號(hào),縱軸表示單位時(shí)間內(nèi)每ms服務(wù)器連接數(shù)。表3記錄了8次試驗(yàn)客戶端最大的可連接數(shù),表示該系統(tǒng)的可接入能力,可見在最好的情況下能接近9萬(wàn)的連接數(shù),其余的也在8萬(wàn)左右。
從上圖我們得到,最好的測(cè)試效果能達(dá)到91812可最大連接數(shù),基本上保持多數(shù)能在89100左右,測(cè)試此設(shè)計(jì)系統(tǒng)接入能力滿足物聯(lián)網(wǎng)接入能力的要求,并且可以擴(kuò)展程序的規(guī)模以達(dá)到更高、更好地接入能力以滿足高負(fù)荷的連接。
參考文獻(xiàn):
[1] 胡永利,孫艷豐,尹寶才.物聯(lián)網(wǎng)信息感知與交互技術(shù)[J].計(jì)算機(jī)學(xué)報(bào), 2012,35(6):1147-1163.
[2] 孫其博,劉杰,黎羴,等.物聯(lián)網(wǎng):概念、架構(gòu)與關(guān)鍵技術(shù)研究綜述[J].北京郵電大學(xué)學(xué)報(bào),2010,33(3):1-9.
[3] 劉強(qiáng),崔莉,陳海明,等.物聯(lián)網(wǎng)關(guān)鍵技術(shù)與應(yīng)用[J].計(jì)算機(jī)科學(xué),2010,37(6):1-4,10.
[4] 孫柏林.物聯(lián)網(wǎng)及其電氣應(yīng)用研究[J] .電氣時(shí)代,2010(5) :32-38.
[5] 張玉潔,何明,孟祥武,等.基于用戶需求的內(nèi)容分發(fā)點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)系統(tǒng)研究[J].軟件學(xué)報(bào),2014,25(1):98-117.
[6] 羅俊海,周應(yīng)賓,鄧霄博,等.物聯(lián)網(wǎng)網(wǎng)關(guān)系統(tǒng)設(shè)計(jì)[J].電信科學(xué),2011,27(2):105-110.
[7] Tim Fox,Vert.x 文檔手冊(cè)[DB].Computer communication. http://vertx.io/core_manual_java.html.
[8] Panahi M,Weiran Nie,Kwei-Jay Lin.The Design of Middleware Support for Real-Time SOA[C]//Proc.of 14th IEEE International Symposium 2011.IEEE Press,2011:28-31.
[9] 呂希艷,張潤(rùn)彤.基于SOA的企業(yè)信息資源整合[J].中國(guó)科技論壇,2006(2):103-105.
[10] 盧致杰,覃正,韓景倜,等.SOA體系設(shè)計(jì)方法研究[J].工業(yè)工程,2004,7(6):14-19.
[11] 梅立軍,付小龍,劉啟新,等.基于SOA的數(shù)據(jù)交換平臺(tái)研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2006,27(19):3601-3603,3627.
[12] 蒲鳳平,陳建政.基于ZeroMQ的分布式系統(tǒng)[J].電子測(cè)試,2012(7):24-29,33.
[13] 葉崧,姚健東.基于ZeroMQ & JSON的分布式測(cè)控系統(tǒng)消息通信架構(gòu)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2014(2):105-109.
[14] Ma XK Wang,YJ Qiu,,Q Sun,WD Pei,XQ.Scalable and elastic event matching for attribute-based publish/subscribe system[J].Future generation computer systems-the international journal of grid computing and escience,2013(36):102-119.
[15] 張杰勇,姚佩陽(yáng),王欣,等.網(wǎng)絡(luò)化條件下的態(tài)勢(shì)信息分發(fā)與Pub/Sub通信范型[J].電光與控制,2011,18(2):64-68.
[16] 王廣澤.基于Pub/Sub模式的智能消息中間件研究[J].信息技術(shù),2009(5):171-173.
[17] Tiancheng Chang,Sisi Duan,Hein Meling,Sean Peisert , et al.P2S:A Fault-Tolerant Publish/Subscribe Infrastructure[C]//Proc.of the 8th ACM International Conference on Distributed Event Based Systems (DEBS). ACM Press,2014:189-197.endprint
3 端到端實(shí)時(shí)數(shù)據(jù)流傳輸?shù)男阅軠y(cè)試評(píng)價(jià)
3.1 實(shí)驗(yàn)測(cè)試環(huán)境
測(cè)試環(huán)境和設(shè)備說(shuō)明本設(shè)計(jì)實(shí)驗(yàn)需要的設(shè)備,在同一個(gè)局域網(wǎng)下的四臺(tái)主機(jī),如表1所示。
在本測(cè)試網(wǎng)絡(luò)性能的時(shí)候,考慮的是實(shí)時(shí)數(shù)據(jù)時(shí)延和服務(wù)器接入能力兩個(gè)性能參數(shù)。我們采用在同一個(gè)局域網(wǎng)下不同的主機(jī)運(yùn)行分別測(cè)試和服務(wù)程序,實(shí)現(xiàn)模擬分布式的運(yùn)行環(huán)境,其中包含同一個(gè)網(wǎng)段下四臺(tái)主機(jī),如圖4所示。當(dāng)連接數(shù)不斷增加時(shí),網(wǎng)絡(luò)性能指標(biāo)參數(shù)也隨之改變,我們需要考慮在不同的連接數(shù)或者連接數(shù)不斷增大的時(shí)候時(shí)延的變化曲線。我們主要選擇端對(duì)端、接入能力這種情況下測(cè)試網(wǎng)絡(luò)性能,獲取指標(biāo)的數(shù)據(jù),并且加以分析和評(píng)價(jià)。
3.2 端對(duì)端傳輸時(shí)延的測(cè)試
3.2.1 測(cè)試環(huán)境部署
端對(duì)端測(cè)試環(huán)境系統(tǒng)部署如圖5所示,模擬物聯(lián)網(wǎng)服務(wù)平臺(tái)系統(tǒng)。
3.2.2 測(cè)試方法
在端對(duì)端時(shí)我們考慮使用定時(shí)器間隔30ms中發(fā)送一次數(shù)據(jù),確保數(shù)據(jù)能在下一次發(fā)送出去,從而不影響下次發(fā)送的狀況,在從Gateway Simulator應(yīng)用程序發(fā)送信息數(shù)據(jù),經(jīng)過(guò)多次傳輸和多個(gè)模塊,最后在Browser接收數(shù)據(jù)并且寫回?cái)?shù)據(jù)給Gateway Simulator,形成之前所示的來(lái)回通道,如此往返的接收,測(cè)試網(wǎng)絡(luò)時(shí)延性能。
3.2.3 測(cè)試結(jié)果
本實(shí)驗(yàn)設(shè)計(jì)總共進(jìn)行11次測(cè)試,試驗(yàn)編號(hào)分別為1-11,并且每次試驗(yàn)記錄10次的往返時(shí)間值,求取每次試驗(yàn)時(shí)延的平均值,測(cè)試結(jié)果如圖6所示,橫軸表示試驗(yàn)編號(hào),縱軸表示每次試驗(yàn)的平均時(shí)延。同時(shí)記錄每次測(cè)試時(shí)延的最大最小值,繪制表格,測(cè)試結(jié)果如表2所示。
通過(guò)上圖我們大致可以知道該設(shè)計(jì)系統(tǒng)中時(shí)延參數(shù),數(shù)值平均在10ms-18ms之間波動(dòng),最小值出現(xiàn)7ms和最大值29ms,這可能出現(xiàn)某次數(shù)據(jù)傳輸?shù)膿頂D與否有關(guān)。時(shí)延作為物聯(lián)網(wǎng)重要參數(shù)指標(biāo),在此設(shè)計(jì)系統(tǒng)中測(cè)試得到的數(shù)值對(duì)于物聯(lián)網(wǎng)需求而言是滿足要求的,能保證物聯(lián)網(wǎng)數(shù)據(jù)低時(shí)延傳輸。
3.3 接入能力測(cè)試
3.3.1 測(cè)試環(huán)境部署
接入能力測(cè)試環(huán)境部署如圖7所示。
3.3.2 測(cè)試方法
在物聯(lián)網(wǎng)平臺(tái)服務(wù)系統(tǒng)中,另外一個(gè)重要參數(shù)指標(biāo)是網(wǎng)絡(luò)的并發(fā)性。該系統(tǒng)基于事件驅(qū)動(dòng)并發(fā)模型,每次客戶端Gateway Simulator應(yīng)用程序不斷提高連接數(shù)去訪問(wèn)服務(wù)器,在網(wǎng)關(guān)服務(wù)端Gateway Service應(yīng)用程序定時(shí)檢測(cè)已連接客戶端的量,繪制曲線圖。測(cè)試環(huán)境:在同一個(gè)局域網(wǎng)下,系統(tǒng)擁有四臺(tái)主機(jī),其中三臺(tái)作為客戶端運(yùn)行客戶端程序去請(qǐng)求連接,一臺(tái)作為客戶連接服務(wù)程序。實(shí)驗(yàn)總共進(jìn)行8次測(cè)試,編號(hào)為1-8。其中圖8表示其中一次試驗(yàn)的連接曲線圖,橫軸表示服務(wù)器運(yùn)行時(shí)間,縱軸表示隨時(shí)間變化的已連接數(shù)。圖9描繪這8次試驗(yàn)在單位時(shí)間內(nèi)每ms客戶端的連接數(shù),其中橫軸表示試驗(yàn)編號(hào),縱軸表示單位時(shí)間內(nèi)每ms服務(wù)器連接數(shù)。表3記錄了8次試驗(yàn)客戶端最大的可連接數(shù),表示該系統(tǒng)的可接入能力,可見在最好的情況下能接近9萬(wàn)的連接數(shù),其余的也在8萬(wàn)左右。
從上圖我們得到,最好的測(cè)試效果能達(dá)到91812可最大連接數(shù),基本上保持多數(shù)能在89100左右,測(cè)試此設(shè)計(jì)系統(tǒng)接入能力滿足物聯(lián)網(wǎng)接入能力的要求,并且可以擴(kuò)展程序的規(guī)模以達(dá)到更高、更好地接入能力以滿足高負(fù)荷的連接。
參考文獻(xiàn):
[1] 胡永利,孫艷豐,尹寶才.物聯(lián)網(wǎng)信息感知與交互技術(shù)[J].計(jì)算機(jī)學(xué)報(bào), 2012,35(6):1147-1163.
[2] 孫其博,劉杰,黎羴,等.物聯(lián)網(wǎng):概念、架構(gòu)與關(guān)鍵技術(shù)研究綜述[J].北京郵電大學(xué)學(xué)報(bào),2010,33(3):1-9.
[3] 劉強(qiáng),崔莉,陳海明,等.物聯(lián)網(wǎng)關(guān)鍵技術(shù)與應(yīng)用[J].計(jì)算機(jī)科學(xué),2010,37(6):1-4,10.
[4] 孫柏林.物聯(lián)網(wǎng)及其電氣應(yīng)用研究[J] .電氣時(shí)代,2010(5) :32-38.
[5] 張玉潔,何明,孟祥武,等.基于用戶需求的內(nèi)容分發(fā)點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)系統(tǒng)研究[J].軟件學(xué)報(bào),2014,25(1):98-117.
[6] 羅俊海,周應(yīng)賓,鄧霄博,等.物聯(lián)網(wǎng)網(wǎng)關(guān)系統(tǒng)設(shè)計(jì)[J].電信科學(xué),2011,27(2):105-110.
[7] Tim Fox,Vert.x 文檔手冊(cè)[DB].Computer communication. http://vertx.io/core_manual_java.html.
[8] Panahi M,Weiran Nie,Kwei-Jay Lin.The Design of Middleware Support for Real-Time SOA[C]//Proc.of 14th IEEE International Symposium 2011.IEEE Press,2011:28-31.
[9] 呂希艷,張潤(rùn)彤.基于SOA的企業(yè)信息資源整合[J].中國(guó)科技論壇,2006(2):103-105.
[10] 盧致杰,覃正,韓景倜,等.SOA體系設(shè)計(jì)方法研究[J].工業(yè)工程,2004,7(6):14-19.
[11] 梅立軍,付小龍,劉啟新,等.基于SOA的數(shù)據(jù)交換平臺(tái)研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2006,27(19):3601-3603,3627.
[12] 蒲鳳平,陳建政.基于ZeroMQ的分布式系統(tǒng)[J].電子測(cè)試,2012(7):24-29,33.
[13] 葉崧,姚健東.基于ZeroMQ & JSON的分布式測(cè)控系統(tǒng)消息通信架構(gòu)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2014(2):105-109.
[14] Ma XK Wang,YJ Qiu,,Q Sun,WD Pei,XQ.Scalable and elastic event matching for attribute-based publish/subscribe system[J].Future generation computer systems-the international journal of grid computing and escience,2013(36):102-119.
[15] 張杰勇,姚佩陽(yáng),王欣,等.網(wǎng)絡(luò)化條件下的態(tài)勢(shì)信息分發(fā)與Pub/Sub通信范型[J].電光與控制,2011,18(2):64-68.
[16] 王廣澤.基于Pub/Sub模式的智能消息中間件研究[J].信息技術(shù),2009(5):171-173.
[17] Tiancheng Chang,Sisi Duan,Hein Meling,Sean Peisert , et al.P2S:A Fault-Tolerant Publish/Subscribe Infrastructure[C]//Proc.of the 8th ACM International Conference on Distributed Event Based Systems (DEBS). ACM Press,2014:189-197.endprint
3 端到端實(shí)時(shí)數(shù)據(jù)流傳輸?shù)男阅軠y(cè)試評(píng)價(jià)
3.1 實(shí)驗(yàn)測(cè)試環(huán)境
測(cè)試環(huán)境和設(shè)備說(shuō)明本設(shè)計(jì)實(shí)驗(yàn)需要的設(shè)備,在同一個(gè)局域網(wǎng)下的四臺(tái)主機(jī),如表1所示。
在本測(cè)試網(wǎng)絡(luò)性能的時(shí)候,考慮的是實(shí)時(shí)數(shù)據(jù)時(shí)延和服務(wù)器接入能力兩個(gè)性能參數(shù)。我們采用在同一個(gè)局域網(wǎng)下不同的主機(jī)運(yùn)行分別測(cè)試和服務(wù)程序,實(shí)現(xiàn)模擬分布式的運(yùn)行環(huán)境,其中包含同一個(gè)網(wǎng)段下四臺(tái)主機(jī),如圖4所示。當(dāng)連接數(shù)不斷增加時(shí),網(wǎng)絡(luò)性能指標(biāo)參數(shù)也隨之改變,我們需要考慮在不同的連接數(shù)或者連接數(shù)不斷增大的時(shí)候時(shí)延的變化曲線。我們主要選擇端對(duì)端、接入能力這種情況下測(cè)試網(wǎng)絡(luò)性能,獲取指標(biāo)的數(shù)據(jù),并且加以分析和評(píng)價(jià)。
3.2 端對(duì)端傳輸時(shí)延的測(cè)試
3.2.1 測(cè)試環(huán)境部署
端對(duì)端測(cè)試環(huán)境系統(tǒng)部署如圖5所示,模擬物聯(lián)網(wǎng)服務(wù)平臺(tái)系統(tǒng)。
3.2.2 測(cè)試方法
在端對(duì)端時(shí)我們考慮使用定時(shí)器間隔30ms中發(fā)送一次數(shù)據(jù),確保數(shù)據(jù)能在下一次發(fā)送出去,從而不影響下次發(fā)送的狀況,在從Gateway Simulator應(yīng)用程序發(fā)送信息數(shù)據(jù),經(jīng)過(guò)多次傳輸和多個(gè)模塊,最后在Browser接收數(shù)據(jù)并且寫回?cái)?shù)據(jù)給Gateway Simulator,形成之前所示的來(lái)回通道,如此往返的接收,測(cè)試網(wǎng)絡(luò)時(shí)延性能。
3.2.3 測(cè)試結(jié)果
本實(shí)驗(yàn)設(shè)計(jì)總共進(jìn)行11次測(cè)試,試驗(yàn)編號(hào)分別為1-11,并且每次試驗(yàn)記錄10次的往返時(shí)間值,求取每次試驗(yàn)時(shí)延的平均值,測(cè)試結(jié)果如圖6所示,橫軸表示試驗(yàn)編號(hào),縱軸表示每次試驗(yàn)的平均時(shí)延。同時(shí)記錄每次測(cè)試時(shí)延的最大最小值,繪制表格,測(cè)試結(jié)果如表2所示。
通過(guò)上圖我們大致可以知道該設(shè)計(jì)系統(tǒng)中時(shí)延參數(shù),數(shù)值平均在10ms-18ms之間波動(dòng),最小值出現(xiàn)7ms和最大值29ms,這可能出現(xiàn)某次數(shù)據(jù)傳輸?shù)膿頂D與否有關(guān)。時(shí)延作為物聯(lián)網(wǎng)重要參數(shù)指標(biāo),在此設(shè)計(jì)系統(tǒng)中測(cè)試得到的數(shù)值對(duì)于物聯(lián)網(wǎng)需求而言是滿足要求的,能保證物聯(lián)網(wǎng)數(shù)據(jù)低時(shí)延傳輸。
3.3 接入能力測(cè)試
3.3.1 測(cè)試環(huán)境部署
接入能力測(cè)試環(huán)境部署如圖7所示。
3.3.2 測(cè)試方法
在物聯(lián)網(wǎng)平臺(tái)服務(wù)系統(tǒng)中,另外一個(gè)重要參數(shù)指標(biāo)是網(wǎng)絡(luò)的并發(fā)性。該系統(tǒng)基于事件驅(qū)動(dòng)并發(fā)模型,每次客戶端Gateway Simulator應(yīng)用程序不斷提高連接數(shù)去訪問(wèn)服務(wù)器,在網(wǎng)關(guān)服務(wù)端Gateway Service應(yīng)用程序定時(shí)檢測(cè)已連接客戶端的量,繪制曲線圖。測(cè)試環(huán)境:在同一個(gè)局域網(wǎng)下,系統(tǒng)擁有四臺(tái)主機(jī),其中三臺(tái)作為客戶端運(yùn)行客戶端程序去請(qǐng)求連接,一臺(tái)作為客戶連接服務(wù)程序。實(shí)驗(yàn)總共進(jìn)行8次測(cè)試,編號(hào)為1-8。其中圖8表示其中一次試驗(yàn)的連接曲線圖,橫軸表示服務(wù)器運(yùn)行時(shí)間,縱軸表示隨時(shí)間變化的已連接數(shù)。圖9描繪這8次試驗(yàn)在單位時(shí)間內(nèi)每ms客戶端的連接數(shù),其中橫軸表示試驗(yàn)編號(hào),縱軸表示單位時(shí)間內(nèi)每ms服務(wù)器連接數(shù)。表3記錄了8次試驗(yàn)客戶端最大的可連接數(shù),表示該系統(tǒng)的可接入能力,可見在最好的情況下能接近9萬(wàn)的連接數(shù),其余的也在8萬(wàn)左右。
從上圖我們得到,最好的測(cè)試效果能達(dá)到91812可最大連接數(shù),基本上保持多數(shù)能在89100左右,測(cè)試此設(shè)計(jì)系統(tǒng)接入能力滿足物聯(lián)網(wǎng)接入能力的要求,并且可以擴(kuò)展程序的規(guī)模以達(dá)到更高、更好地接入能力以滿足高負(fù)荷的連接。
參考文獻(xiàn):
[1] 胡永利,孫艷豐,尹寶才.物聯(lián)網(wǎng)信息感知與交互技術(shù)[J].計(jì)算機(jī)學(xué)報(bào), 2012,35(6):1147-1163.
[2] 孫其博,劉杰,黎羴,等.物聯(lián)網(wǎng):概念、架構(gòu)與關(guān)鍵技術(shù)研究綜述[J].北京郵電大學(xué)學(xué)報(bào),2010,33(3):1-9.
[3] 劉強(qiáng),崔莉,陳海明,等.物聯(lián)網(wǎng)關(guān)鍵技術(shù)與應(yīng)用[J].計(jì)算機(jī)科學(xué),2010,37(6):1-4,10.
[4] 孫柏林.物聯(lián)網(wǎng)及其電氣應(yīng)用研究[J] .電氣時(shí)代,2010(5) :32-38.
[5] 張玉潔,何明,孟祥武,等.基于用戶需求的內(nèi)容分發(fā)點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)系統(tǒng)研究[J].軟件學(xué)報(bào),2014,25(1):98-117.
[6] 羅俊海,周應(yīng)賓,鄧霄博,等.物聯(lián)網(wǎng)網(wǎng)關(guān)系統(tǒng)設(shè)計(jì)[J].電信科學(xué),2011,27(2):105-110.
[7] Tim Fox,Vert.x 文檔手冊(cè)[DB].Computer communication. http://vertx.io/core_manual_java.html.
[8] Panahi M,Weiran Nie,Kwei-Jay Lin.The Design of Middleware Support for Real-Time SOA[C]//Proc.of 14th IEEE International Symposium 2011.IEEE Press,2011:28-31.
[9] 呂希艷,張潤(rùn)彤.基于SOA的企業(yè)信息資源整合[J].中國(guó)科技論壇,2006(2):103-105.
[10] 盧致杰,覃正,韓景倜,等.SOA體系設(shè)計(jì)方法研究[J].工業(yè)工程,2004,7(6):14-19.
[11] 梅立軍,付小龍,劉啟新,等.基于SOA的數(shù)據(jù)交換平臺(tái)研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2006,27(19):3601-3603,3627.
[12] 蒲鳳平,陳建政.基于ZeroMQ的分布式系統(tǒng)[J].電子測(cè)試,2012(7):24-29,33.
[13] 葉崧,姚健東.基于ZeroMQ & JSON的分布式測(cè)控系統(tǒng)消息通信架構(gòu)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2014(2):105-109.
[14] Ma XK Wang,YJ Qiu,,Q Sun,WD Pei,XQ.Scalable and elastic event matching for attribute-based publish/subscribe system[J].Future generation computer systems-the international journal of grid computing and escience,2013(36):102-119.
[15] 張杰勇,姚佩陽(yáng),王欣,等.網(wǎng)絡(luò)化條件下的態(tài)勢(shì)信息分發(fā)與Pub/Sub通信范型[J].電光與控制,2011,18(2):64-68.
[16] 王廣澤.基于Pub/Sub模式的智能消息中間件研究[J].信息技術(shù),2009(5):171-173.
[17] Tiancheng Chang,Sisi Duan,Hein Meling,Sean Peisert , et al.P2S:A Fault-Tolerant Publish/Subscribe Infrastructure[C]//Proc.of the 8th ACM International Conference on Distributed Event Based Systems (DEBS). ACM Press,2014:189-197.endprint