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

一種內(nèi)外網(wǎng)數(shù)據(jù)交互系統(tǒng)的設(shè)計與實現(xiàn)

2020-08-31 01:38吳英賓
軟件工程 2020年8期

摘 ?要:隨著互聯(lián)網(wǎng)的全面普及,手機(jī)、電腦等海量智能終端不斷接入網(wǎng)絡(luò),在公網(wǎng)資源有限的情況下,絕大部分終端設(shè)備均運(yùn)行于內(nèi)網(wǎng),外網(wǎng)一般無法直接訪問內(nèi)網(wǎng)數(shù)據(jù)。本文針對WebSocket技術(shù)的特征,設(shè)計并實現(xiàn)了一種基于WebSocket的內(nèi)外網(wǎng)數(shù)據(jù)交互系統(tǒng),系統(tǒng)通過WebSocket建立內(nèi)外網(wǎng)數(shù)據(jù)通道,實現(xiàn)了數(shù)據(jù)交互共享,為內(nèi)外網(wǎng)數(shù)據(jù)交互應(yīng)用場景提供了一種有效地解決方案。

關(guān)鍵詞:WebSocket;內(nèi)外網(wǎng)數(shù)據(jù)交互;SpringBoot

中圖分類號:TP311 ? ? 文獻(xiàn)標(biāo)識碼:A

Abstract: With the popularity of the Internet, massive smart terminals such as mobile phones and computers have a constant access to the network. However, in the case of limited public network resources, a large majority of terminal devices are operated on the Intranet, the data of which cannot be directly accessible from the Extranet. This paper designs and implements a WebSocket-based internal and external network data interaction system that realizes data interaction sharing by establishing internal and external network data channels through WebSocket. This system provides an effective solution to data exchange application scenarios in Intranet and Extranet.

Keywords: WebSocket; intranet data exchange; SpringBoot

1 ? 引言(Introduction)

隨著移動通信技術(shù)的迅速發(fā)展,互聯(lián)網(wǎng)基本實現(xiàn)了全面普及,手機(jī)、電腦等海量智能終端均已接入了網(wǎng)絡(luò)。在公網(wǎng)資源有限的情況下,絕大部分終端設(shè)備均運(yùn)行于內(nèi)網(wǎng),外網(wǎng)一般無法直接訪問內(nèi)網(wǎng)數(shù)據(jù),因此在保證安全的前提下做到外網(wǎng)下的應(yīng)用與內(nèi)網(wǎng)環(huán)境下的業(yè)務(wù)數(shù)據(jù)進(jìn)行交互[1],實現(xiàn)內(nèi)外網(wǎng)數(shù)據(jù)交互信息共享顯得尤為重要。

內(nèi)網(wǎng)通常指局域網(wǎng),外網(wǎng)是相對內(nèi)網(wǎng)而言,是面向Internet部署的網(wǎng)絡(luò)[2]。傳統(tǒng)的內(nèi)外網(wǎng)數(shù)據(jù)交互方案主要有NAT映射和安裝反向代理軟件,實現(xiàn)NAT映射需要網(wǎng)絡(luò)管理員介入進(jìn)行手工配置,在內(nèi)網(wǎng)設(shè)備動態(tài)接入、數(shù)量多的情況下實施起來非常困難。安裝反向代理軟件雖然簡便快捷,但第三方軟件的介入存在數(shù)據(jù)安全隱患。基于WebSocket的內(nèi)外網(wǎng)數(shù)據(jù)交互系統(tǒng)充分利用了WebSocket技術(shù)安全、高效、全雙工通信的特征,提供了一種易于部署和管理的內(nèi)外網(wǎng)數(shù)據(jù)交互方案。

2 ?WebSocket技術(shù)特征(WebSocket technical features)

WebSocket協(xié)議是HTML5中提出的一種基TCP的新通信協(xié)議[3],其工作過程為通過一次“握手”建立一條長連接,實現(xiàn)了瀏覽器端與服務(wù)器端之間的全雙工(full-duplex)通信[4]。在基于WebSocket的通訊過程中,服務(wù)器端與客戶端完全對等,雙方可以主動互發(fā)消息,解決了HTTP協(xié)議下服務(wù)器端不能主動發(fā)消息給客戶端的問題,真正實現(xiàn)了二者之間快速、高效、全雙工數(shù)據(jù)交互。WebSocket建立連接及通信過程如圖1所示。

WebSocket作為HTML5的標(biāo)準(zhǔn)通信協(xié)議,廣泛應(yīng)用于B/S架構(gòu)的應(yīng)用中,其在建立連接之初使用HTTP協(xié)議發(fā)起“握手”請求,客戶端與服務(wù)器端“握手”完成后便可以建立一條高效、持久、實時的雙向數(shù)據(jù)通道,除非客戶端或服務(wù)器端主動斷開,這條數(shù)據(jù)通道會以長連接形式持久保持,實現(xiàn)生產(chǎn)數(shù)據(jù)實時推送,有效降低了網(wǎng)絡(luò)吞吐量,提高了通信效率[5]。

在安全性方面,WebSocket協(xié)議提供了兩種URI方案供用戶選擇,其中前綴為WS的URI為未加密的一般連接,前綴為WSS的URI為加密的高安全性連接。其中“WSS”連接基于安全傳輸層協(xié)議(Transport Layer Security Protocol,TLSP)確保WebSocket連接的保密性和數(shù)據(jù)完整性[6]。

3 ? 系統(tǒng)設(shè)計(System design)

3.1 ? 系統(tǒng)總體架構(gòu)設(shè)計

為便捷的實現(xiàn)內(nèi)外網(wǎng)數(shù)據(jù)交互共享,系統(tǒng)采用B/S模式,在總體架構(gòu)上分為外網(wǎng)服務(wù)管理端、內(nèi)網(wǎng)數(shù)據(jù)服務(wù)端和通用數(shù)據(jù)調(diào)用客戶端三個部分。充分利用外網(wǎng)WebSocket服務(wù)作為“橋梁”打通調(diào)用客戶端與內(nèi)網(wǎng)客戶端的數(shù)據(jù)通道,從而 “穿透”內(nèi)網(wǎng)數(shù)據(jù)的訪問,最終實現(xiàn)數(shù)據(jù)交互和共享。系統(tǒng)體系結(jié)構(gòu)圖如圖2所示。

3.2 ? 系統(tǒng)功能設(shè)計

系統(tǒng)在功能上劃分為外網(wǎng)WebSocket服務(wù)管理子系統(tǒng)和內(nèi)網(wǎng)數(shù)據(jù)服務(wù)子系統(tǒng),外網(wǎng)WebSocket服務(wù)管理子系統(tǒng)提供系統(tǒng)的核心服務(wù),實現(xiàn)了內(nèi)外網(wǎng)數(shù)據(jù)“橋梁”并提供統(tǒng)一Web服務(wù);內(nèi)網(wǎng)數(shù)據(jù)服務(wù)子系統(tǒng)整合了內(nèi)網(wǎng)WebSocket客戶端和內(nèi)網(wǎng)Web服務(wù),提供內(nèi)網(wǎng)統(tǒng)一數(shù)據(jù)傳輸業(yè)務(wù)接口。系統(tǒng)功能結(jié)構(gòu)圖如圖3所示。

系統(tǒng)主要功能模塊如下:

(1)用戶管理模塊。實現(xiàn)用戶信息、用戶角色和訪問權(quán)限的管理功能,通過用戶鑒權(quán)方可接入系統(tǒng)。

(2)連接監(jiān)控模塊。實現(xiàn)對已接入系統(tǒng)進(jìn)行數(shù)據(jù)交互的WebSocket連接進(jìn)行動態(tài)監(jiān)控和管理。

(3)安全控制模塊。實現(xiàn)對調(diào)用客戶端的IP、訪問頻次等限制性規(guī)則的管理。

(4)系統(tǒng)日志模塊。記錄系統(tǒng)用戶訪問、操作、數(shù)據(jù)連接與傳輸?shù)雀鞣N吸入事件記錄。

(5)數(shù)據(jù)傳輸監(jiān)控模塊。實現(xiàn)對系統(tǒng)中所有數(shù)據(jù)傳輸類型、數(shù)據(jù)大小等信息進(jìn)行監(jiān)控。

(6)數(shù)據(jù)源管理模塊。實現(xiàn)對內(nèi)網(wǎng)可訪問數(shù)據(jù)源的配置和設(shè)置,未經(jīng)配置的數(shù)據(jù)源用戶無法進(jìn)行訪問。

(7)連接配置模塊。實現(xiàn)與外網(wǎng)WebSocket服務(wù)管理子系統(tǒng)的對接的服務(wù)地址、登錄信息等配置。

(8)數(shù)據(jù)日志模塊。實現(xiàn)內(nèi)網(wǎng)數(shù)據(jù)傳輸日志記錄和管理。

4 ? 系統(tǒng)實現(xiàn)(System implementation)

4.1 ? 系統(tǒng)技術(shù)選型

系統(tǒng)采用SpringBoot框架進(jìn)行實現(xiàn),通過SpringBoot整合Web服務(wù)和WebSocket服務(wù)。SpringBoot是目前業(yè)界最為流行的Java EE一站式解決方案,具有快速構(gòu)建、自動配置等特點,使Spring更加易于開發(fā)和維護(hù)[7]。

SpringBoot對WebSocket服務(wù)端提供了良好的支持,只需要在Maven配置文件中加入WebSocket依賴即可,開發(fā)者在實現(xiàn)過程中只需關(guān)注業(yè)務(wù)需求的實現(xiàn),可有效降低系統(tǒng)實現(xiàn)難度和提升開發(fā)效率。

4.2 ? 系統(tǒng)鑒權(quán)的實現(xiàn)

為更好的保障數(shù)據(jù)安全,系統(tǒng)采用Token機(jī)制來實現(xiàn)WebSoket連接安全認(rèn)證,即用戶在登錄成功后會得到一個Token,每次建立WebSocket連接必須在首次握手中對Token進(jìn)行驗證,無Token或無效Token將導(dǎo)致服務(wù)端直接斷開,以此來保證系統(tǒng)的安全性。系統(tǒng)鑒權(quán)流程如圖4所示。

4.3 ? 外網(wǎng)子系統(tǒng)核心功能實現(xiàn)

外網(wǎng)子系統(tǒng)的核心功能為WebSocket的連接、管理和數(shù)據(jù)收發(fā)。系統(tǒng)過添加spring-boot-starter-websocket依賴來獲得WebSocket服務(wù)端的支持,通過Configuration注解輕松實現(xiàn)配置。利用ServerEndpoint注解可以輕松實現(xiàn)WebScoketServer類。用戶首先通過Web登錄并獲得授權(quán)Token,然后只需通過路徑參數(shù)中攜帶的用戶ID即可通過WebSocketServer輕松與該ID的客戶端進(jìn)行通信。WebSocketServer類主要實現(xiàn)代碼如下:

@ServerEndpoint("/websocket/{userId}")

@Component

public class WebSocketServer {

//存放每個客戶端對應(yīng)的WebSocketServer對象

private static CopyOnWriteArraySet webSocketSet = new CopyOnWriteArraySet();

//建立連接時驗證Token

@OnOpen

public void onOpen(Session session,@PathParam("userId") String sid) {

if(verifyToken(session)){ //成功建立連接}

}

//接受數(shù)據(jù)并轉(zhuǎn)發(fā)給指定客戶端

@OnMessage

public void onMessage(String message, Session session) {

//根據(jù)用 戶ID進(jìn)行收發(fā)數(shù)據(jù)

}

為實現(xiàn)對用戶連接的監(jiān)控,可以通過管理連接對象、Session或Token的方式進(jìn)行實現(xiàn)連接的手動管理,另外在onMessage及sendMessage方法中對數(shù)據(jù)進(jìn)行分析和記錄。

4.4 ? 內(nèi)網(wǎng)子系統(tǒng)核心功能實現(xiàn)

內(nèi)網(wǎng)子系統(tǒng)的核心功能為與外網(wǎng)建立WebSocket連接和提供數(shù)據(jù)交互業(yè)務(wù)接口。與服務(wù)器端建立WebSocket連接一般用于前端網(wǎng)頁,本系統(tǒng)為更好的實現(xiàn)對內(nèi)網(wǎng)所有本地、設(shè)備等信息進(jìn)行讀取,采用Java WebSocket實現(xiàn)的WebSocket客戶端,需要在項目的Maven配置中添加org.java-websocket依賴,只需通過繼承WebSocketClient類實現(xiàn)一個WebSocket客戶端,其主要方法代碼如下:

public class DataTransWebSocketClient extends WebSocketClient{

//首次握手回調(diào)

public void onOpen(ServerHandshake arg0) {//握手處理}

//收到并處理數(shù)據(jù)

public void onMessage(String message) {//處理收到數(shù)據(jù)}

//發(fā)送數(shù)據(jù)到WebSocket服務(wù)器

public void send(String data) {//發(fā)送數(shù)據(jù)}

}

數(shù)據(jù)交互業(yè)務(wù)接口采用SpringBoot Web技術(shù)和Spring Data JPA技術(shù)進(jìn)行構(gòu)建和實現(xiàn)。

5 ? 結(jié)論(Conclusion)

隨著互聯(lián)網(wǎng)的全面普及,信息共享變得無處不在,在保證安全的前提下進(jìn)行內(nèi)外網(wǎng)數(shù)據(jù)交互共享有著廣泛的應(yīng)用場景。本文通過對WebSocket技術(shù)特征進(jìn)行分析,設(shè)計了一種兼具安全性、拓展性和靈活性的內(nèi)外網(wǎng)數(shù)據(jù)交互系統(tǒng),采用成熟的Java EE技術(shù)加以實現(xiàn)。系統(tǒng)以公網(wǎng)WebSocket服務(wù)為橋梁,使用登錄和Token機(jī)制進(jìn)行鑒權(quán),內(nèi)網(wǎng)通過配置便可與外網(wǎng)服務(wù)連接進(jìn)行數(shù)據(jù)雙向交互共享,有效降低了內(nèi)外網(wǎng)數(shù)據(jù)交互的使用難度和部署成本,同時保障了系統(tǒng)的數(shù)據(jù)安全。

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

[1] 孟威,喬林,劉穎,等.基于電力企業(yè)移動辦公的內(nèi)外網(wǎng)數(shù)據(jù)交互[J].計算機(jī)科學(xué)與探索,2017(11):480-482.

[2] 何鈺,李瑞祥.實現(xiàn)內(nèi)外網(wǎng)數(shù)據(jù)交互安全[J].網(wǎng)絡(luò)安全和信息化,2017(9):127-129.

[3] 萬可達(dá).基WebSocket的水泥廠動設(shè)備的全平臺狀態(tài)監(jiān)測系統(tǒng)的研究[D].杭州:浙江大學(xué),2018.

[4] 潘峰,王笑天.基于Redis與WebSocket的戰(zhàn)場態(tài)勢實時推送方案設(shè)計及實現(xiàn)[J].軟件導(dǎo)刊,2018(7):143-146.

[5] 曹文彬,譚新明,劉備,等.基于事件驅(qū)動的高性能WebSocket服務(wù)器的設(shè)計與實現(xiàn)[J].計算機(jī)應(yīng)用與軟件,2018(1):20-27.

[6] 劉棟,黃斌,王鋒,等.WebSocket技術(shù)在信息安全系統(tǒng)中的應(yīng)用實現(xiàn)[J].信息安全與通信保密,2016(5):92-94.

[7] 張峰.應(yīng)用SpringBoot改變Web應(yīng)用開發(fā)模式[J].科技創(chuàng)新與應(yīng)用,2017(23):30-31.

作者簡介:

吳英賓(1983-),男,碩士,講師.研究領(lǐng)域:軟件開發(fā).

主站蜘蛛池模板: 黄色网址手机国内免费在线观看| 午夜精品国产自在| 白浆免费视频国产精品视频| 三上悠亚精品二区在线观看| 精品视频一区二区三区在线播| 青青久久91| 无码福利日韩神码福利片| 中文字幕无码av专区久久| 国产成人综合在线视频| 久久青草热| 久久国产V一级毛多内射| www成人国产在线观看网站| 午夜福利在线观看成人| 一级毛片免费高清视频| 久久精品免费看一| 国产一级二级在线观看| 国产一级片网址| 国产亚洲视频免费播放| 久久国产成人精品国产成人亚洲| 国产精品粉嫩| 国产XXXX做受性欧美88| 亚洲美女一级毛片| 色精品视频| 四虎永久在线| 无码AV动漫| 亚洲视频一区在线| 亚洲熟女中文字幕男人总站| 色悠久久久久久久综合网伊人| 在线a网站| 99re这里只有国产中文精品国产精品| 成人福利一区二区视频在线| 91精品伊人久久大香线蕉| 免费不卡视频| 国产性爱网站| 久久综合丝袜日本网| 欧美在线三级| 毛片久久网站小视频| 97视频精品全国免费观看 | jizz国产视频| 九九久久99精品| 久久鸭综合久久国产| 人妻少妇乱子伦精品无码专区毛片| 国产在线观看91精品亚瑟| 亚洲乱码视频| 亚洲视频三级| 国产精品页| 欧洲日本亚洲中文字幕| 999精品视频在线| 91在线日韩在线播放| 蜜臀AV在线播放| 精品一区国产精品| 精品天海翼一区二区| 色综合热无码热国产| 国产精品永久不卡免费视频| 在线观看视频一区二区| 99这里只有精品免费视频| 视频二区中文无码| 国产av剧情无码精品色午夜| 精品久久久久成人码免费动漫| 成人午夜视频免费看欧美| 在线欧美a| 欧美日本在线播放| 91九色最新地址| 久久精品无码一区二区日韩免费| 久久无码av三级| 爱做久久久久久| 国产色婷婷| 国产精品成人AⅤ在线一二三四| 国产91小视频| 久久精品国产一区二区小说| 亚洲成网777777国产精品| 国产99在线| 国产日韩欧美视频| 国产毛片一区| 91成人试看福利体验区| 青青国产在线| 露脸国产精品自产在线播| 免费一极毛片| 亚洲人成人无码www| 欧美日韩久久综合| 凹凸国产分类在线观看| 91午夜福利在线观看精品|