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

一種內外網數據交互系統的設計與實現

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

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

關鍵詞:WebSocket;內外網數據交互;SpringBoot

中圖分類號:TP311 ? ? 文獻標識碼: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)

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

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

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

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

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

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

3 ? 系統設計(System design)

3.1 ? 系統總體架構設計

為便捷的實現內外網數據交互共享,系統采用B/S模式,在總體架構上分為外網服務管理端、內網數據服務端和通用數據調用客戶端三個部分。充分利用外網WebSocket服務作為“橋梁”打通調用客戶端與內網客戶端的數據通道,從而 “穿透”內網數據的訪問,最終實現數據交互和共享。系統體系結構圖如圖2所示。

3.2 ? 系統功能設計

系統在功能上劃分為外網WebSocket服務管理子系統和內網數據服務子系統,外網WebSocket服務管理子系統提供系統的核心服務,實現了內外網數據“橋梁”并提供統一Web服務;內網數據服務子系統整合了內網WebSocket客戶端和內網Web服務,提供內網統一數據傳輸業務接口。系統功能結構圖如圖3所示。

系統主要功能模塊如下:

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

(2)連接監控模塊。實現對已接入系統進行數據交互的WebSocket連接進行動態監控和管理。

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

(4)系統日志模塊。記錄系統用戶訪問、操作、數據連接與傳輸等各種吸入事件記錄。

(5)數據傳輸監控模塊。實現對系統中所有數據傳輸類型、數據大小等信息進行監控。

(6)數據源管理模塊。實現對內網可訪問數據源的配置和設置,未經配置的數據源用戶無法進行訪問。

(7)連接配置模塊。實現與外網WebSocket服務管理子系統的對接的服務地址、登錄信息等配置。

(8)數據日志模塊。實現內網數據傳輸日志記錄和管理。

4 ? 系統實現(System implementation)

4.1 ? 系統技術選型

系統采用SpringBoot框架進行實現,通過SpringBoot整合Web服務和WebSocket服務。SpringBoot是目前業界最為流行的Java EE一站式解決方案,具有快速構建、自動配置等特點,使Spring更加易于開發和維護[7]。

SpringBoot對WebSocket服務端提供了良好的支持,只需要在Maven配置文件中加入WebSocket依賴即可,開發者在實現過程中只需關注業務需求的實現,可有效降低系統實現難度和提升開發效率。

4.2 ? 系統鑒權的實現

為更好的保障數據安全,系統采用Token機制來實現WebSoket連接安全認證,即用戶在登錄成功后會得到一個Token,每次建立WebSocket連接必須在首次握手中對Token進行驗證,無Token或無效Token將導致服務端直接斷開,以此來保證系統的安全性。系統鑒權流程如圖4所示。

4.3 ? 外網子系統核心功能實現

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

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

@Component

public class WebSocketServer {

//存放每個客戶端對應的WebSocketServer對象

private static CopyOnWriteArraySet webSocketSet = new CopyOnWriteArraySet();

//建立連接時驗證Token

@OnOpen

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

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

}

//接受數據并轉發給指定客戶端

@OnMessage

public void onMessage(String message, Session session) {

//根據用 戶ID進行收發數據

}

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

4.4 ? 內網子系統核心功能實現

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

public class DataTransWebSocketClient extends WebSocketClient{

//首次握手回調

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

//收到并處理數據

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

//發送數據到WebSocket服務器

public void send(String data) {//發送數據}

}

數據交互業務接口采用SpringBoot Web技術和Spring Data JPA技術進行構建和實現。

5 ? 結論(Conclusion)

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

參考文獻(References)

[1] 孟威,喬林,劉穎,等.基于電力企業移動辦公的內外網數據交互[J].計算機科學與探索,2017(11):480-482.

[2] 何鈺,李瑞祥.實現內外網數據交互安全[J].網絡安全和信息化,2017(9):127-129.

[3] 萬可達.基WebSocket的水泥廠動設備的全平臺狀態監測系統的研究[D].杭州:浙江大學,2018.

[4] 潘峰,王笑天.基于Redis與WebSocket的戰場態勢實時推送方案設計及實現[J].軟件導刊,2018(7):143-146.

[5] 曹文彬,譚新明,劉備,等.基于事件驅動的高性能WebSocket服務器的設計與實現[J].計算機應用與軟件,2018(1):20-27.

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

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

作者簡介:

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

主站蜘蛛池模板: 国产在线精品99一区不卡| 国产人免费人成免费视频| 国产成人欧美| 国产丝袜第一页| 亚洲天堂网站在线| 中文一区二区视频| 91久久精品国产| 国产成人综合久久精品尤物| 亚洲AⅤ综合在线欧美一区| 波多野结衣第一页| 亚洲国产中文欧美在线人成大黄瓜| 黄网站欧美内射| 国产综合精品日本亚洲777| 亚洲日产2021三区在线| 一本无码在线观看| 国产激情国语对白普通话| 久久这里只有精品23| 亚洲动漫h| 91精品国产情侣高潮露脸| 国产精品一区二区久久精品无码| 91免费国产在线观看尤物| AV在线麻免费观看网站| 老熟妇喷水一区二区三区| 在线视频97| 亚洲福利一区二区三区| 亚洲国产精品日韩av专区| 国产精品欧美激情| 国产人免费人成免费视频| 久久综合五月婷婷| 四虎精品国产永久在线观看| 亚洲午夜福利在线| 波多野结衣在线se| 亚洲性视频网站| 国产裸舞福利在线视频合集| 69国产精品视频免费| 欧美影院久久| 免费看av在线网站网址| 欧亚日韩Av| 日韩久久精品无码aV| 亚洲日韩久久综合中文字幕| 国产成人a在线观看视频| 青草午夜精品视频在线观看| 又粗又硬又大又爽免费视频播放| 九九精品在线观看| 亚洲91精品视频| 欧美日本在线一区二区三区| 日韩成人在线网站| 国产成人免费视频精品一区二区| 欧美亚洲一二三区| 久久婷婷五月综合色一区二区| 久久精品女人天堂aaa| 日本一区二区三区精品国产| 在线va视频| 亚洲国产日韩在线观看| 欧美日韩专区| 丁香五月婷婷激情基地| 午夜国产精品视频黄| 国产福利观看| 国产手机在线小视频免费观看| 狠狠色婷婷丁香综合久久韩国 | 91精品专区国产盗摄| 国产日韩av在线播放| 91外围女在线观看| 欧美国产日产一区二区| 人人91人人澡人人妻人人爽 | 国产乱人激情H在线观看| 高潮毛片免费观看| 亚洲综合九九| 国产91成人| 日本久久久久久免费网络| 欧美a级在线| 久久影院一区二区h| 国产农村妇女精品一二区| 亚洲无码免费黄色网址| 亚洲Av综合日韩精品久久久| 亚洲日韩AV无码精品| 国产精品第一区在线观看| 在线国产你懂的| 亚洲成年人片| 亚洲综合在线最大成人| 天堂在线www网亚洲| 伊在人亚洲香蕉精品播放|