999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Redis與WebSocket的戰場態勢實時推送方案設計及實現

2018-09-26 11:30:48潘峰王笑天宋鈺濤丁冬
軟件導刊 2018年7期

潘峰 王笑天 宋鈺濤 丁冬

摘要:戰場態勢信息系統在信息化戰爭中具有十分重要的作用。為確保態勢信息的準確性和時效性,設計一套可靠高效的信息實時推送方案以提供支撐。基于Redis與WebSocket的實時推送方案,不僅操作簡單,而且能夠兼容Windows和Linux兩大軟件平臺,支持從C/C++或Java程序中引接數據,同時向C/C++或js前端進行推送,滿足絕大多數系統開發及維護需要。此外,通過采用訂閱與分發機制,保證方案高效運行。在指定硬件條件下,分別使用不同長度的模擬消息和不同數量的終端進行性能測試,能夠滿足戰場態勢信息系統的需要。

關鍵詞:戰場態勢信息系統;實時推送;Redis;WebSocket

DOI:10.11907/rjdk.181593

中圖分類號:TP319

文獻標識碼:A文章編號:1672-7800(2018)007-0143-04

Abstract:Battlefieldsituationinformationsystemplaysaveryimportantroleininformationwarfare.WiththerapiddevelopmentofInternettechnology,theresearchofbattlefieldsituationinformationsystembasedonB/Sarchitecturehasmadegreatprogress.Inordertoensuretheaccuracyandtimelinessofsituationinformation,wemustdesignareliableandefficientinformationpushschemetoprovidesupport.ThispaperintroducesaninformationpushschemebasedonRedisandWebSocket,whichisnotonlysimple,butalsocompatiblewithtwomajorplatformsofwindowsandLinux.Atthesametime,itsupportsthetwomainstreamdevelopmentlanguagesofC/C++andJavatomeettheneedsofthedevelopmentandmaintenanceofthevastmajorityofthesystems.Inaddition,thesubscriptionanddistributionmechanismisadoptedtoensuretheefficientoperationofthescheme.Underthespecifiedhardwareconditions,thesimulationmessageswithdifferentaveragelengtharetestedrespectivelytoverifythefeasibilityofthescheme.

KeyWords:battlefieldsituationinformationsystem;informationpush;Redis;WebSocket

0引言

戰場態勢信息系統是以戰場地理環境數據與作戰態勢數據為管理和處理對象,并對戰場態勢信息數據進行接收、管理、存儲、查詢、統計、分析和共享的綜合性系統[1]。它是具有交互式作戰空間態勢感知及共享能力的最有效工具和手段,其根本目的是獲得相對信息優勢,打贏信息化戰爭[2,3]。近些年,隨著互聯網技術的快速發展,基于B/S架構的戰場態勢信息系統研究取得了長足進步。尤其是得益于B/S架構在安裝部署和升級維護等方面的優勢,其已基本具備“指揮所開設到哪里、戰場態勢服務就支撐到哪里”的能力[4]。

眾所周知,戰場態勢瞬息萬變,作戰時機稍縱即逝,因此為了確保態勢信息的準確性和時效性,設計一套可靠高效的信息實時推送方案提供支撐。同時考慮到系統的開放性和兼容性,盡可能支持不同軟件平臺、開發語言。雖然在民用領域,一些國內外知名廠商如Google、阿里、騰訊都給出了信息實時推送的解決方案[5,6],但是一方面考慮到軍用系統的安全性和保密性要求,所有軟件必須自主可控,另一方面這些體系化的解決方案大多太過重量級,對硬件環境與軟件部署有較多要求和限制,暫時不能滿足戰場態勢信息系統機動靈活部署的需求。本文介紹一種基于Redis和WebSocket的實時推送方案,不僅操作簡單,而且能夠兼容Windows和Linux兩大軟件平臺,支持C/C++和Java兩種開發語言,滿足絕大多數系統開發與維護需要。此外,通過采用訂閱與分發機制,保證方案高效運行。在指定硬件條件下,分別使用不同長度的模擬消息和不同數量的終端進行測試,驗證該方案性能。

1Redis

Redis(RemoteDictionaryServer)是一個完全開源免費、遵守BSD協議、基于Key-Value鍵值對的持久化數據庫存儲系統,于2009年首次發布[7]。Redis采用C語言編寫,提供多種語言訪問接口,包括C/C++、Java、PHP、JavaScript、Python等。Redis采用Key-Value模型,使用Hash表實現Key與Value間的映射關系,因此可以通過Key值高效地對數據進行檢索。同時Redis本身支持master-slave(主從)同步,可有效提高系統的可靠性,并且可以通過讀寫分記提高性能。與其它常見的Key-Value緩存系統相比,Redis主要有性能極高、數據類型豐富、操作原子性、可持久化4個特點[8,9]。

(1)性能極高。根據官方給出的bench-mark性能測試數據,Redis讀的速度可以達到110000次/s,而寫的速度則可以達到81000次/s。在相同硬件環境下,Redis與業界最常用的Memcached系統性能非常接近,能夠完全滿足各式應用需要。

(2)數據類型豐富。Redis支持5種數據類型:string(字符串)、hash(哈希)、list(列表)、set(集合)和zset(sortedset,有序集合)。string是Redis最基本的類型,支持最大存儲512MB內容,并且為安全的二進制,可以包含任何數據,比如jpg圖片或序列化對象。hash是一個string類型field和value映射表,特別適合用于存儲對象。list是簡單的字符串列表,能夠按照插入順序進行排序。set是string類型的無序集合。zset在set類型基礎上為每個插入記錄增加一個浮點類型的score屬性,該屬性在插入記錄時指定,每次插入記錄后,集合中的數據按照各記錄的score屬性重新排序。

(3)操作原子性。Redis所有操作都是原子性的,即每一次操作要么成功執行,要么失敗完全不執行。同時,Redis也提供簡單的事務控制機制,通過MUTIL/EXEC命令將多個Redis操作打包起來作為一個命令執行。Redis能夠保證來自不同客戶端的命令串行執行,即在一個命令執行結束前不會執行其它客戶端的命令,從而保證打包在一起執行的命令不會被其它客戶端命令干擾,進而提供了數據操作的隔離性。

(4)數據持久化。Redis支持數據的持久化,能夠將內存中的數據保存在磁盤中,重啟時再次加載使用。

2WebSocket技術

WebSocket協議[10]是基于TCP的一種新的網絡協議。它實現了瀏覽器端與服務器端之間的全雙工(full-duplex)通信,因而也支持服務器端主動發送信息給瀏覽器端。在WebSocket中,需要先通過瀏覽器發出WebSocket連接請求,服務器端收到后立刻作出回應,這個過程通常被稱為“握手”。而后,瀏覽器端與服務器端之間形成一條雙向快速通道,兩者之間通過該條通道可直接傳送數據,如圖1所示。

與傳統的輪詢方式相比,WebSocket主要有以下幾點優勢:①響應及時。對于傳統的輪詢方式,由于客戶端不知道服務端的數據何時更新,因此不能確保服務端消息在第一時間傳送給客戶端。WebSocket因為在服務端與客戶端之間創建了一條可以多次使用的通道,所以一旦通道建成,就可以在一段時間內保證服務端與客戶端之間的數據實時同步,滿足應用需求;②網絡帶寬占用少。在傳統的輪詢方式中,無論服務端數據是否發生變化,每一個客戶端都會定時發起請求,服務端接收后視情況予以應答,因此網絡上會存在很多無效或無意義的輪詢請求和應答,而WebSocket只在服務端數據變化時才發出通知消息,對網絡帶寬的占用會大大降低;③服務器負載小。在傳統的輪詢方式中,服務端需要定時響應每一個客戶端的請求,給出適當應答,而WebSocket服務端只需要保持與每一個客戶端連接即可,能夠節約很多處理開銷[11,12]。

3方案設計

3.1實時推送方案

在戰場態勢信息系統中,需要從眾多形態不一的業務系統引接各類原始信息,通過消息總線服務和實時推送服務送至戰場態勢融合服務,經加工處理后生成統一的綜合態勢信息,再通過消息總線服務和實時推送服務送至各終端更新顯示,如圖2所示。

為了確保戰場態勢信息的準確性和時效性,使用Redis作消息隊列,經封裝后對外提供消息總線服務。首先,Redis操作原子性的特點可以保證原始信息和綜合態勢信息無損傳遞;其次,Redis的高速讀寫可以為系統提供高吞吐量的處理能力,有效避免信息阻塞甚至是積壓情況出現;第三,Redis支持豐富的數據類型,可以滿足不同信息源對數據格式的要求;第四,支持數據持久化的特性可以讓用戶按需保存原始信息和綜合態勢信息,為總結講評、推演復盤、數據挖掘等活動提供支撐[13]。

至于實時推送服務,則考慮基于WebSocket予以實現。一方面,WebSocket能夠及時感知服務端的數據變化,并在第一時間通知客戶端進行更新,滿足指揮員實時掌握戰場態勢的需求;另一方面,與傳統的輪詢方式相比,WebSocket在帶寬占用和服務端負載方面有明顯優勢,能夠有效降低對系統硬件環境的要求,便于在條件受限的機動式指揮所中安裝部署[14]。同時,隨著網絡技術的飛速發展,WebSocket的兼容性也在不斷提高,其實現復雜度大大降低[15]。

3.2并發吞吐量

為了更好地滿足廣大指戰人員全盤掌握戰場情況、輔助制定作戰決策的需求,戰場綜合態勢信息系統需要從越來越多的業務系統引接原始信息,從而生成更加準確和精細化的綜合態勢,而這必然會導致信息更新頻率越來越高。同時,隨著各種臺式、便攜式、手持終端普及,戰場態勢信息系統的服務對象也日益增多[16]。以上都對實時推送方案的并發吞吐量提出了較高要求。

考慮到不同終端對態勢信息的需求可能不同,采用訂閱和分發機制取代最原始的廣播方式實現信息推送[17]。將態勢信息進行分類,各終端首先向實時推送服務注冊自己感興趣的分類,實時推送服務感知到某類態勢信息更新后,只對相應感興趣的終端進行推送,從而避免網絡中出現無效報文,影響整體傳輸效率。同時,各終端也只會接收到對自己有用的信息,可以減少處理開銷。

當戰場綜合態勢信息系統的信息源和服務用戶數量上升到一定規模時,還可以通過使用Redis官方提供的集群方案以及反向代理服務軟件實現橫向擴展,利用多實例協同運行以及負載均衡等策略,提高系統服務能力[18]。同時,方案也能進一步提高系統的抗毀能力,避免因個別節點故障影響正常使用。

3.3軟件平臺兼容性

為便于開展戰場態勢信息系統的部署應用,必須考慮實時推送方案對軟件平臺的兼容性。雖然Redis本身只支持Linux系統,并不支持直接在Windows系統中使用,但是MicrosoftOpenTechgroup已經在此基礎上開發并對外提供了一個可以在Windows系統中穩定運行的版本,從而解決了Redis服務端的軟件平臺兼容性問題[19]。同時,通過使用hiredis和libWebSocket組件,可以輕松實現從Redis中逐一獲取信息,并通過網絡推送給指定用戶。上述組件都是用純C語言編寫的,代碼完全公開,并且可以完美兼容Linux和Windows兩大軟件平臺[20]。

3.4開發語言支持情況

如前文所述,戰場態勢信息系統一方面要從各業務系統引接原始信息,另一方面還要接收不同終端的訂閱,對綜合態勢信息進行按需分發。而各業務系統信息源管理系統通常不是用C/C++語言就是用Java語言開發的,為了避免其在接入戰場態勢信息系統過程中進行大量適應性改造,消息總線服務應對外提供支持上述兩種開發語言的接口。經過試驗,使用hiredis和Jedis就可以通過簡單的函數調用實現與Redis隊列的交互[21]。此外,為了同時適應客戶端和Web端兩種終端顯示模式,實時推送服務應同時具備向C/C++和js前端推送數據的能力。由于WebSocket是HTML5中定義的一種新協議,在JavaEE7中也實現了該協議,因此通過使用libWebSocket就可以讓系統滿足不同終端的要求。

4性能測試

為了驗證方案性能,使用普通臺式機部署戰場態勢信息系統,再使用幾臺相同機器模擬業務系統的信息源和終端用戶進行簡單測試。各臺式機配置如下:CPU為Inteli5-3570,主頻3.4GHz,內存4GB,百兆網卡,操作系統采用Windows7旗艦版(SP1)。

考慮到真實環境中態勢信息存在不同長度的情況,分別采用平均長度為10、100、1000字節的模擬消息以及1、5、10個模擬終端對該方案進行測試,結果如圖3所示。

根據測試結果,設計的實時推送方案隨著消息長度和服務用戶增加,其吞吐量會出現比較明顯的下降。但即便是使用平均長度為1000字節的模擬消息同時為10個終端提供服務,仍然可以達到每秒276條的推送速度,完全可以滿足戰場態勢信息系統的需要。

5結語

如前文所述,戰場態勢信息系統由于對準確性和時效性都有較高要求,因此需要設計一套可靠高效的信息實時推送方案以提供支撐。考慮到軍用領域暫無滿足此需求可靈活部署的解決方案,本文介紹一種基于Redis和WebSocket的實時推送方案,不僅操作簡單,而且能夠兼容Windows和Linux兩大軟件平臺,同時支持C/C++和Java兩種開發語言,以滿足絕大多數系統開發和維護需要。此外,通過采用訂閱與分發機制,保證方案高效運行。在指定的硬件條件下,分別使用不同長度的模擬消息和不同數量的終端進行測試,驗證了該方案性能可滿足戰場態勢信息系統的需要。

目前我國軍用網絡出于安全考慮,全部采用物理隔離方式獨立運行,并且針對類似戰場態勢共享的特定應用,往往單獨分配足夠信道資源以保證業務不受影響。因此,實時推送方案的設計尚未涉及如何根據各用戶之間的傳輸質量進一步優化傳輸策略。未來很可能要將綜合態勢信息系統應用在帶寬受限的有線傳輸和無質量保證的無線傳輸環境下,屆時各用戶的信道傳輸條件差異性較大,并會隨著時間推移呈現無規律變化,所以如何充分利用有限的傳輸資源,盡可能及時準確地將用戶感興趣的信息推送至終端是值得進一步研究的課題[22,23]。

參考文獻:

[1]謝衛.基于GIS和RS的戰場態勢信息系統研究[D].成都:西南交通大學,2010.

[2]陳引川.戰場態勢信息系統的研究與實現[D].鄭州:中國人民解放軍信息工程大學,2006.

[3]石子言,趙國林,胡喬林.基于模糊綜合評判法的網絡攻擊效果評估方法研究[J].軟件導刊,2017,16(2):156-159.

[4]張云峰,廖斌.基于B/S架構的校園辦公自動化系統設計與實現[J].軟件導刊,2016,15(8):104-106.

[5]李娜,杜彥輝,陳默.基于短地址混淆和谷歌云推送的移動僵尸網絡的構建[J].計算機應用,2015,35(6):1698-1704.

[6]胡崢輝.基于阿里云的微電網能量監控調度系統[D].廣州:華南理工大學,2016.

[7]曾超宇,李金香.Redis在高速緩存系統中的應用[J].微型機與應用,2013(12):11-13.

[8]楊旸.基于Redis的Thrift緩存機制設計[J].軟件導刊,2016,15(3):29-32.

[9]邱祝文.基于redis的分布式緩存系統架構研究[J].網絡安全技術與應用,2014(10):52-54.

[10]薛隴彬,劉釗遠.基于WebSocket的網絡實時通信[J].計算機與數字工程,2014(3):478-481.

[11]盛平,丁波.基于WebSocket協議的智能溫室測控系統設計與實現[J].軟件導刊,2016,15(8):65-68.

[12]張文,牟艷,高振興,等.WebSocket技術在工業設備數據實時監測中的應用[J].計算機與現代化,2017(11):111-115.

[13]陳曉峰,劉興,高元博,等.基于數據挖掘的海戰場態勢可視化平臺構建[J].火力與指揮控制,2015(4):144-147.

[14]張維,賈愛梅.戰術互聯網在機動式指揮所中的組織應用研究[J].艦船電子工程,2013,33(10):11-12.

[15]胡朝舉,高聰.WebSocket新特性及其安全研究[J].網絡安全技術與應用,2015(11):55-56.

[16]王萬停,華紅勝.便攜式指揮通信終端及控制方法設計[J].無線互聯科技,2017(18):1-2.

[17]錢哨,陳丹.基于數據分發服務的發布訂閱系統[J].電子技術與軟件工程,2017(6):153.

[18]高昕,黃真.Redis集群在有軌電車車載系統中的應用[J].現代城市軌道交通,2018(2):18-20+24.

[19]張威.基于redis的分布式緩存系統架構分析[J].計算機產品與流通,2017(8):252.

[20]丁振凡.基于WebSocket的在線圍棋對弈軟件設計[J].吉首大學學報:自然科學版,2017,38(4):27-33.

[21]徐竟州.基于Redis的高并發搶紅包應用的設計與實現[D].長沙:湖南大學,2016.

[22]周瑩.受限帶寬環境下實時數據分發服務傳輸優化技術研究[D].武漢:中國艦船研究院,2016.

[23]魏暢.無線信道的確定性建模與分析[D].南京:南京郵電大學,2013.

(責任編輯:何麗)

主站蜘蛛池模板: 久99久热只有精品国产15| 亚洲三级成人| 欧美色综合网站| 亚洲成人动漫在线观看| 亚洲精品黄| 一级一级一片免费| 国产一级毛片yw| 高清无码一本到东京热| 午夜国产理论| lhav亚洲精品| 精品国产网| 亚洲免费福利视频| 欧美中日韩在线| 成人一级黄色毛片| 国产精品视频公开费视频| 玩两个丰满老熟女久久网| 国产一级毛片在线| 国产又粗又猛又爽视频| 色呦呦手机在线精品| 国产成人综合久久精品下载| 国产精品久久久久久久久久久久| 精品视频一区二区三区在线播| 精品91自产拍在线| 色妞www精品视频一级下载| 国产一区在线视频观看| 97国产精品视频自在拍| 亚洲精品国产综合99| 日本三区视频| 亚洲丝袜第一页| 欧美亚洲第一页| 亚洲欧美自拍一区| 亚洲AV人人澡人人双人| 久草视频中文| 亚洲一级毛片在线观播放| 久久影院一区二区h| 国产18页| 国内毛片视频| 日韩黄色精品| 久久香蕉国产线| 嫩草在线视频| 天堂网国产| 国产成人av一区二区三区| 日韩成人午夜| 欧美伊人色综合久久天天| 国产精品欧美亚洲韩国日本不卡| 中文字幕在线视频免费| 午夜激情福利视频| 亚洲精品视频网| 国产精品太粉嫩高中在线观看| 国产一区二区网站| 1024你懂的国产精品| 欧美a在线视频| 久久婷婷人人澡人人爱91| 性喷潮久久久久久久久| 久久五月视频| 在线观看精品国产入口| 久久国语对白| 亚洲国产日韩在线成人蜜芽| 久久久久国产精品免费免费不卡| 国产成人免费视频精品一区二区| 日韩第一页在线| 色综合天天综合| 亚洲国模精品一区| 成人免费网站久久久| 欧美成人手机在线观看网址| 91精品国产麻豆国产自产在线| 91亚瑟视频| 国产一级二级三级毛片| 国产亚洲成AⅤ人片在线观看| 高潮爽到爆的喷水女主播视频| 久久精品国产精品青草app| 欧美成人怡春院在线激情| 亚洲欧美不卡| 中文字幕欧美日韩高清| 在线无码九区| 日韩在线永久免费播放| 亚洲视频免费在线看| 亚洲av无码片一区二区三区| julia中文字幕久久亚洲| 国产精品专区第1页| 国产主播在线一区| 日本在线亚洲|