亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于WebSocket和Redis的移動(dòng)目標(biāo)軌跡跟蹤系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

        2021-09-05 05:05:01魏江東涂繼輝賴少東高夢(mèng)然
        計(jì)算機(jī)時(shí)代 2021年8期

        魏江東 涂繼輝 賴少東 高夢(mèng)然

        摘 ?要: 針對(duì)物聯(lián)網(wǎng)系統(tǒng)中監(jiān)控移動(dòng)目標(biāo)位置和軌跡信息的需求,設(shè)計(jì)和實(shí)現(xiàn)了一種基于Websocket和Redis移動(dòng)目標(biāo)軌跡跟蹤系統(tǒng)。該系統(tǒng)主要分為三個(gè)部分:首先利用手機(jī)App客戶端采集移動(dòng)目標(biāo)的軌跡信息,然后利用Webocket將軌跡信息傳輸?shù)竭h(yuǎn)程服務(wù)器進(jìn)行保存,最后服務(wù)端將傳送的軌跡信息保存在Redis+MySQL數(shù)據(jù)庫中,并根據(jù)客戶需要實(shí)現(xiàn)軌跡信息的查詢和在地圖上進(jìn)行軌跡重現(xiàn)。經(jīng)過測(cè)試表明,該系統(tǒng)能夠準(zhǔn)確、實(shí)時(shí)地獲取移動(dòng)目標(biāo)的軌跡信息,并進(jìn)行有效的存儲(chǔ),這為物聯(lián)網(wǎng)移動(dòng)目標(biāo)的軌跡跟蹤提供了較好的解決方案。

        關(guān)鍵詞: 移動(dòng)目標(biāo)跟蹤; WebSocket; 軌跡重現(xiàn); Redis

        中圖分類號(hào):TN919.3;TP311.1 ? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A ? ? 文章編號(hào):1006-8228(2021)08-76-05

        Design and implementation of moving target tracking system

        based on WebSocket and Redis

        Wei Jiangdong, Tu Jihui, Lai Shaodong, Gao Mengran

        (Electronic Information Collage of Yangtze University, Jingzhou, Hubei 434023, China)

        Abstract: In response to the need to monitor the location and trajectory information of moving targets in the Internet of Things system, a moving target trajectory tracking system is designed and implemented based on Websocket and Redis. The system includes three parts, collecting the trajectory information of the moving target by using the mobile App client, transmitting the trajectory information to the remote server for storage by using Webocket and saving the transmitted trajectory information in the server with Redis+MySQL database, which realizes the tracking information query and the trajectory replay on map according to the needs of customer. Tests show that the system can accurately obtain the trajectory information of the moving target in real time and store it effectively, which provides a better solution for the trajectory tracking of moving target in the Internet of Things system.

        Key words: moving target tracking; WebSocket; trajectory replay; Redis

        0 引言

        物聯(lián)網(wǎng)作為新一代互聯(lián)網(wǎng)信息技術(shù)已經(jīng)應(yīng)用到我們生活中的各個(gè)領(lǐng)域,而移動(dòng)目標(biāo)的軌跡信息跟蹤和監(jiān)控是物聯(lián)網(wǎng)技術(shù)中非常重要的環(huán)節(jié),它能較好的了解物聯(lián)網(wǎng)中終端節(jié)點(diǎn)的位置信息以及移動(dòng)情況,因此,實(shí)時(shí)、準(zhǔn)確和高效地對(duì)移動(dòng)目標(biāo)軌跡信息進(jìn)行跟蹤和保存是物聯(lián)網(wǎng)系統(tǒng)研究的熱點(diǎn)。

        目前應(yīng)用廣泛的移動(dòng)目標(biāo)軌跡跟蹤系統(tǒng)多以車載GPS終端與基于B/S的Web方式實(shí)現(xiàn),系統(tǒng)中傳統(tǒng)的HTTP請(qǐng)求方式帶來了大量的無效請(qǐng)求,造成了服務(wù)器資源的不必要開銷,同時(shí),傳統(tǒng)的MySQL數(shù)據(jù)庫存取數(shù)據(jù)較慢,交互方式存在一定的延遲,而基于PC端查詢物流、巡邏等工作移動(dòng)目標(biāo)軌跡跟蹤的系統(tǒng),無法滿足用戶實(shí)時(shí)性、便攜性的需求,小規(guī)模企業(yè)與零散客戶也難以承擔(dān)類似系統(tǒng)的開發(fā)成本[1-2]。

        針對(duì)以上問題,本文設(shè)計(jì)并實(shí)現(xiàn)了基于WebSocket和Redis的移動(dòng)目標(biāo)軌跡跟蹤系統(tǒng),以Android App作為客戶端,提高了系統(tǒng)在物聯(lián)網(wǎng)中使用的便捷性,實(shí)現(xiàn)了高效的通信機(jī)制與數(shù)據(jù)存儲(chǔ)方式。

        1 系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)

        本文設(shè)計(jì)的移動(dòng)目標(biāo)軌跡跟蹤系統(tǒng)如圖1所示,整個(gè)系統(tǒng)主要分為三個(gè)部分:移動(dòng)目標(biāo)軌跡采集和顯示模塊、數(shù)據(jù)傳輸和接收模塊以及服務(wù)端存儲(chǔ)模塊。移動(dòng)目標(biāo)軌跡采集和顯示模塊主要是在Android平臺(tái)利用手機(jī)App結(jié)合百度地圖實(shí)現(xiàn),數(shù)據(jù)傳輸和接收模塊主要是利用WebSocket方式進(jìn)行通信,服務(wù)端采用Redis+MySQL數(shù)據(jù)庫進(jìn)行數(shù)據(jù)的存儲(chǔ)。系統(tǒng)總體結(jié)構(gòu)如圖1所示。

        2 系統(tǒng)具體實(shí)現(xiàn)

        2.1 移動(dòng)終端模塊實(shí)現(xiàn)

        移動(dòng)終端作為用戶與物聯(lián)網(wǎng)移動(dòng)目標(biāo)軌跡跟蹤系統(tǒng)交互的入口,選擇Android App作為客戶端,需要實(shí)現(xiàn)用戶信息、照片處理和軌跡跟蹤三個(gè)功能模塊。三個(gè)功能模塊的UI界面設(shè)計(jì)都是采用Android基本布局中的相對(duì)布局RelativeLayout、線性布局LinearLayout、表格布局TableLayout相結(jié)合的形式??蛻舳说墓δ苣K如圖2所示。

        在用戶信息模塊中,包括用戶注冊(cè)、登錄、個(gè)人信息編輯。用戶注冊(cè)時(shí),先填寫個(gè)人信息,然后客戶端將用戶信息提交到服務(wù)器,服務(wù)器判斷數(shù)據(jù)庫中用戶表中是否已存在該賬戶,若存在,則顯示“該用戶名已存在,請(qǐng)修改”,若不存在,則新增用戶到數(shù)據(jù)庫中。用戶登錄時(shí),用戶需提前設(shè)置服務(wù)器地址及端口,當(dāng)用戶登錄后,客戶端將登錄信息發(fā)送至服務(wù)器,由服務(wù)器與數(shù)據(jù)庫交互核對(duì)數(shù)據(jù)并給予反饋。個(gè)人信息編輯則是對(duì)個(gè)人信息的完善,比如上傳圖片、填寫地域信息等。

        照片處理模塊為用戶在移動(dòng)過程中,通過拍照或上傳相冊(cè)照片來主動(dòng)反饋?zhàn)约旱奈恢眯畔?。此模塊實(shí)現(xiàn)了拍照加載圖片、本地照片加載、圖片裁剪處理與圖片上傳功能。圖片的加載部分都是先通過裁剪圖片的uri獲取Bitmap對(duì)象,然后使用ImageView組件的方法setImageBitmap()將圖片加載顯示出來。圖片的裁剪處理采用android系統(tǒng)自帶的裁剪功能,通過intent.putExtra設(shè)置合適的裁剪框形狀和大小。同時(shí),本文借助了網(wǎng)絡(luò)請(qǐng)求庫OkHttp,使用HTTP協(xié)議的POST方法實(shí)現(xiàn)圖片上傳功能。

        軌跡跟蹤模塊主要是依托百度地圖SDK [3]進(jìn)行開發(fā)。在使用百度地圖免費(fèi)API接口提供的各種功能之前,先要在百度地圖官網(wǎng)申請(qǐng)一個(gè)百度地圖開發(fā)密鑰,才能在程序中使用百度地圖提供的地圖服務(wù)、定位服務(wù)及數(shù)據(jù)服務(wù)等。在滿足實(shí)時(shí)定位的基本功能后,該模塊的關(guān)鍵問題是對(duì)軌跡點(diǎn)信息的采集,本文利用百度地圖SDK自定義一個(gè)定位監(jiān)聽類LocationListener,并實(shí)現(xiàn)其中的方法來獲取用戶的位置。其中,定位方式有網(wǎng)絡(luò)定位和GPS定位兩種,使得定位更加精確。而對(duì)于移動(dòng)目標(biāo)軌跡點(diǎn)的采集時(shí)間,本文設(shè)置為每隔一秒采集一次,主要考慮其時(shí)間過長導(dǎo)致軌跡不夠完整,過短則造成采集頻繁,產(chǎn)生不必要的數(shù)據(jù)消耗。定位中利用location.getLatitude()、location.getLongitude()方法分別獲取該軌跡點(diǎn)的緯度和經(jīng)度,最后將所有的軌跡點(diǎn)信息保存到點(diǎn)集合List中。當(dāng)用戶提交軌跡信息時(shí),使用WebSocket協(xié)議上傳到服務(wù)器,服務(wù)器將軌跡信息保存到Redis數(shù)據(jù)庫中[4]。軌跡重現(xiàn)主要是服務(wù)器將數(shù)據(jù)庫中獲取類型為List的軌跡信息點(diǎn)集合發(fā)送給客戶端,然后通過客戶端創(chuàng)建地圖覆蓋物OverlayOptions對(duì)象來設(shè)置繪制折線的相關(guān)屬性,并將軌跡點(diǎn)添加到地圖上,同時(shí)將這些軌跡點(diǎn)依次使用折線相連,在百度地圖上進(jìn)行繪制,最終實(shí)現(xiàn)物聯(lián)網(wǎng)中移動(dòng)目標(biāo)的軌跡重現(xiàn)。

        為了優(yōu)化客戶端與服務(wù)端之間的通信,減少HTTP協(xié)議的無效請(qǐng)求[5],本系統(tǒng)的通信協(xié)議主要采用WebSocket協(xié)議[6]。WebSocket是一款html5推出的協(xié)議標(biāo)準(zhǔn),它是一種在單個(gè)TCP連接上進(jìn)行全雙工通信的協(xié)議[7],解決了傳統(tǒng)Ajax輪詢、Comet技術(shù)的弊端,它能主動(dòng)使服務(wù)器向客戶端推送消息,解決了服務(wù)器資源消耗的問題[8]。在構(gòu)建客戶端的WebSocket接口時(shí),本文采用WebSocket的開源框架Java-WebSocket。首先創(chuàng)建一個(gè)WebSocketClient類對(duì)象,然后重寫該類中的四個(gè)方法onOpen()、onMessage()、onClose()、onError(),分別在WebSocket連接開啟時(shí)、接收消息時(shí)、連接斷開時(shí),以及連接出錯(cuò)時(shí)調(diào)用。重寫的onMessage()方法中包含客戶端上傳信息至服務(wù)端以及處理服務(wù)端反饋的代碼,其中客戶端上傳的字符串信息需要轉(zhuǎn)化為更加輕量、簡潔的Json格式進(jìn)行傳輸,同時(shí)自定義了java bean類以方便客戶端對(duì)Json信息進(jìn)行解析。對(duì)于服務(wù)端的接口,本文采用高性能的PHP Socket服務(wù)框架Workerman進(jìn)行構(gòu)建。在加載完Workerman的相關(guān)文件后,創(chuàng)建一個(gè)Worker對(duì)象,搭建起移動(dòng)終端與服務(wù)端之間的通道,然后調(diào)用函數(shù)onMessage與客戶端進(jìn)行通信。

        2.2 服務(wù)端的實(shí)現(xiàn)

        服務(wù)端主要包括PHP服務(wù)器和Redis+MySQL數(shù)據(jù)庫兩部分。

        PHP服務(wù)器部分主要是對(duì)客戶端傳來的數(shù)據(jù)進(jìn)行處理和反饋,同時(shí)與Redis數(shù)據(jù)庫交互,實(shí)現(xiàn)對(duì)數(shù)據(jù)的存取,然后將數(shù)據(jù)持久化到MySQL當(dāng)中。客戶端傳來的請(qǐng)求主要分為五類,分別是注冊(cè)信息的存儲(chǔ)、登錄信息的驗(yàn)證、軌跡信息的存儲(chǔ)、軌跡信息的查詢以及圖片的上傳。如圖3所示,客戶端的每種請(qǐng)求對(duì)應(yīng)一種狀態(tài)state,然后服務(wù)器根據(jù)傳入的狀態(tài)調(diào)用相應(yīng)的方法對(duì)請(qǐng)求進(jìn)行處理。同時(shí)為了防止用戶密碼信息泄露,本文還對(duì)用戶密碼使用了Crypt加密。

        Redis+MySQL數(shù)據(jù)庫部分負(fù)責(zé)對(duì)數(shù)據(jù)進(jìn)行緩存并實(shí)現(xiàn)持久化,首先Redis是基于內(nèi)存的數(shù)據(jù)庫[9],讀取速度快,同時(shí)其支持的數(shù)據(jù)結(jié)構(gòu)很適合軌跡信息的存儲(chǔ),因此將系統(tǒng)的熱點(diǎn)軌跡信息緩存其中,能夠大幅度提升系統(tǒng)的性能;然后,將重要的數(shù)據(jù)存放于MySQL數(shù)據(jù)庫中實(shí)現(xiàn)持久化,防止由于Redis數(shù)據(jù)庫帶來的內(nèi)存增長速度過快,達(dá)到最大內(nèi)存限制,從而導(dǎo)致的數(shù)據(jù)丟失。對(duì)于Redis數(shù)據(jù)庫,本文針對(duì)用戶信息和軌跡信息的特點(diǎn),分別采用字符串和hash數(shù)據(jù)結(jié)構(gòu)來緩存數(shù)據(jù)[10]。用戶信息的存儲(chǔ)結(jié)構(gòu)模型如圖4所示,鍵users:count采用字符串結(jié)構(gòu)記錄用戶的個(gè)數(shù);鍵user.to.id采用hash結(jié)構(gòu),作用是記錄用戶名和id之間的映射關(guān)系;鍵user:id也是采用hash結(jié)構(gòu)保存用戶的詳細(xì)信息,包含用戶名、密碼、email、車牌號(hào)等,其中存儲(chǔ)的密碼是加密后的結(jié)果。軌跡信息的存儲(chǔ)結(jié)構(gòu)模型如圖5所示,鍵tracks:count采用字符串結(jié)構(gòu)保存軌跡信息的個(gè)數(shù);鍵track:id采用hash結(jié)構(gòu),存儲(chǔ)著軌跡信息的名稱、提交時(shí)間、所屬用戶的id、軌跡點(diǎn)坐標(biāo)等。對(duì)于重要或者訪問不頻繁的數(shù)據(jù),我們將其持久化到MySQL數(shù)據(jù)庫中,以varchar類型進(jìn)行存儲(chǔ),從而能夠容納更多的數(shù)據(jù),同時(shí)保證數(shù)據(jù)存儲(chǔ)的可靠性。

        3 系統(tǒng)測(cè)試

        3.1 測(cè)試環(huán)境

        在整個(gè)測(cè)試中安排了50名大學(xué)生進(jìn)行參與,學(xué)生以自行車騎行的方式自由繞行整個(gè)校園參與測(cè)試。對(duì)于客戶端,測(cè)試過程中采用版本Android 7.1的智能手機(jī),而服務(wù)端的系統(tǒng)設(shè)計(jì)環(huán)境為Centos 7操作系統(tǒng),開發(fā)工具為PHP 5.6+Redis 5.0+MySQL 5.7,兩者通過4G網(wǎng)絡(luò)進(jìn)行通信。

        3.2 測(cè)試結(jié)果

        移動(dòng)目標(biāo)軌跡跟蹤系統(tǒng)的移動(dòng)終端部分操作界面如圖6所示。

        圖6(a)是終端的登錄界面,用戶在填寫服務(wù)器地址后,輸入賬號(hào)和密碼登錄。圖6(b)是登錄成功后跳轉(zhuǎn)到地圖界面,實(shí)時(shí)顯示當(dāng)前位置為經(jīng)度112.219674,緯度30.33881,用戶點(diǎn)擊地圖界面左下方的開始按鈕進(jìn)行軌跡記錄,然后點(diǎn)擊結(jié)束來命名軌跡并提交給服務(wù)端,若用戶需要查看軌跡,只需在上方的搜索框進(jìn)行搜索,此次保存的軌跡信息為(112.219674 30.33881|112.219754 30.338599|112.219830 30.33827…),并在地圖上實(shí)現(xiàn)軌跡的重現(xiàn),如圖6(c)所示。

        經(jīng)過反復(fù)實(shí)驗(yàn),用戶系統(tǒng)的客戶端界面操作性好,功能完善,測(cè)試人員可以通過此系統(tǒng)了解物聯(lián)網(wǎng)中移動(dòng)目標(biāo)的實(shí)時(shí)位置,掌握目標(biāo)的軌跡路線,極大幫助了管理人員對(duì)移動(dòng)目標(biāo)軌跡路線的評(píng)估與分析。

        4 結(jié)束語

        本文設(shè)計(jì)和實(shí)現(xiàn)的移動(dòng)目標(biāo)軌跡跟蹤系統(tǒng),以WebSocket協(xié)議和Redis數(shù)據(jù)庫為基礎(chǔ),解決了物聯(lián)網(wǎng)系統(tǒng)中管理人員對(duì)移動(dòng)目標(biāo)實(shí)時(shí)位置和軌跡路線掌握難的問題??紤]到現(xiàn)有市場(chǎng)安卓手機(jī)的占有率,該系統(tǒng)以Android App為移動(dòng)客戶端,實(shí)現(xiàn)了高效的PHP服務(wù)器,同時(shí)結(jié)合了HTTP協(xié)議來解決客戶端與服務(wù)端之間的實(shí)時(shí)性雙向通信問題。經(jīng)過測(cè)試,該系統(tǒng)并發(fā)量高,交互性強(qiáng),操作簡便,為物聯(lián)網(wǎng)中移動(dòng)目標(biāo)的實(shí)時(shí)定位和軌跡監(jiān)測(cè)提供了解決方案,具有良好的市場(chǎng)應(yīng)用前景。

        參考文獻(xiàn)(References):

        [1] 張舒.面向公路物流的車輛追蹤系統(tǒng)設(shè)計(jì)、實(shí)現(xiàn)與優(yōu)化[D].南京理工大學(xué),2018.

        [2] 鐘波,陶智勇.基于WebSocket的車輛GPS信息實(shí)時(shí)推送系統(tǒng)的實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2017.25(13):48-52

        [3] 滿紅任.基于Android平臺(tái)的車道偏離預(yù)警系統(tǒng)的實(shí)現(xiàn)[D].東南大學(xué),2015.

        [4] Xiongfei Liu,Jiakang Liu,Beiping Liao,Yunyi Zhu,Huimin

        Liu. Design of IoT Web Server Communication Platform based on Netty and WebSocket[A]. Wuhan Zhicheng Times Cultural Development Co.,Ltd.Proceedings of 3rd International Conference on Mechatronics Engineering and Information Technology(ICMEIT 2019)[C].Wuhan Zhicheng Times Cultural Development Co,2019:7.

        [5] 覃家皓.基于WebSocket的即時(shí)通信研究及其性能分析[J].移動(dòng)通信,2017.41(12):44-48

        [6] 李先懿,郭正光.基于Websocket的車聯(lián)網(wǎng)報(bào)警推送系統(tǒng)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2020.29(3):127-131

        [7] Benfano Soewito, Christian, Fergyanto E. Gunawan, et al.Websocket to Support Real Time Smart Home Applications,2019.157:560-566

        [8] 惠苗,賴道健.基于WebSocket協(xié)議的即時(shí)通訊系統(tǒng)的開發(fā)[J].榆林學(xué)院學(xué)報(bào):自然科學(xué)版,2019.29(6):76-79

        [9] 馬豫星.Redis數(shù)據(jù)庫特性分析[J].物聯(lián)網(wǎng)技術(shù),2015.5(3):105-106

        [10] 曾超宇,李金香.Redis在高速緩存系統(tǒng)中的應(yīng)用[J].微型機(jī)與應(yīng)用,2013.32(12):11-13

        [11] 涂繼輝,趙劍.基于WebService的通信實(shí)驗(yàn)設(shè)備排隊(duì)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].長江大學(xué)學(xué)報(bào):自然科學(xué)版,2015.12(10):44-47,4

        [12] 李明珠.基于Android手機(jī)的軌跡導(dǎo)航系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].長安大學(xué),2013.

        [13] 郝帥,程德福.基于Android的航跡指示儀的設(shè)計(jì)與實(shí)現(xiàn)[J].湘潭大學(xué)自然科學(xué)學(xué)報(bào),2018.40(2):50-53

        收稿日期:2021-02-04

        基金項(xiàng)目:國家自然科學(xué)基金(No.61901059);湖北省高等學(xué)校大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計(jì)劃項(xiàng)目(2019)

        作者簡介:魏江東(1996-),男,湖北宜昌人,碩士研究生,主要研究方向:深度學(xué)習(xí),模式識(shí)別,自然語言處理。

        通信作者:涂繼輝(1979-),男,湖北武漢人,博士,副教授,主要研究方向:圖像處理與模式識(shí)別,深度學(xué)習(xí),計(jì)算機(jī)網(wǎng)絡(luò)。

        全免费a级毛片免费看网站| 亚洲人成7777影视在线观看| 亚洲精品成人av观看| 亚洲天堂色婷婷一区二区| 日韩精品视频免费网站| 国产精品视频免费播放| 久久精品国产日本波多麻结衣| 欧美日韩色| 国产在线视频网站不卡| 白色白在线观看免费2| 中文字幕第一页人妻丝袜| 亚洲女同一区二区| 久久免费看少妇高潮v片特黄| 久久99久久99精品观看| 日韩av免费一区二区| 乱色精品无码一区二区国产盗| av大片在线无码免费| 亚洲色成人网一二三区| 求网址日韩精品在线你懂的| 青青草手机在线观看视频在线观看| 黑人巨茎大战俄罗斯美女| 国产欧美日韩a片免费软件| 久久婷婷国产综合精品| 99精品国产综合久久麻豆| 久久亚洲av无码西西人体 | 麻豆蜜桃av蜜臀av色欲av| 亚洲国产高清在线观看视频| 激情内射亚洲一区二区| 91精品国产色综合久久| 人人妻人人澡人人爽精品欧美| 亚洲中久无码永久在线观看软件 | 国产高清女人对白av在在线| 久久亚洲中文字幕乱码| 无码国产福利av私拍| 中文字幕久无码免费久久| 日本午夜伦理享色视频| 久久人妻av一区二区软件| 国产一区二区三区美女| 亚洲高清一区二区三区视频| 国产不卡视频在线观看| 亚洲裸男gv网站|