陳雯雯,周 杰
?
高性能網絡接入服務器框架的設計
陳雯雯,周 杰
(南京信息工程大學電子與信息工程學院,江蘇南京 210044)
本文分析了高性能網絡接入服務器框架的功能需求,討論了其設計目標,闡述了系統總體架構,給出了人工影響天氣作業中實時智能指揮系統采用網絡接入服務器的系統實例。實踐表明,本文給出的高性能網絡接入服務器框架的設計思想有良好的應用意義。
網絡接入服務器;功能需求;設計目標;系統架構;高性能
現在,大部分網絡接入服務器基本是創建在某個特別制定的需求分析上,這樣的開發方法會把詳細的業務性能和最基本的關鍵性能緊緊地結合起來,適用性、延伸性和移植性都很弱,同時底層的基本關鍵性能多次創建會使開發時間延長,容易出現錯誤,利用資本高。
性能好較強系統開發可以達到高內聚低耦合,系統的單元之間的相互依賴性減弱,進而提高系統構架的可延伸性能與植入性能。
本文使用近年來開發的應用服務器框架技術,給出高性能網絡接入服務器框架的設計思想,增強適用軟件服務器模塊的重用性與延伸性,從體系中把服務器的基本關鍵性能和管控邏輯分離出來,避免開發者多次開發。
網絡接入服務器又能叫做接入服務器,是一種能在很大范圍內進行請求的連接應用,可以讓客戶端使用互聯網傳輸它的連接請求。它具有2個方面的作用:一個是對從用戶那邊傳過來的接入申請進行操作;另一個是對用戶所需要的服務申請進行操作。然后分離出這一種應用使用中的網絡傳送操作單元和一些服務申請,就形成了大多數情況都能應用的網絡接入服務器模形。經過對公共的連接口進行設置,就可以提供各種處理數據方法的許多種類的服務,來進一步達到系統的可延伸性。
本文把這種模形作為基本原理,構想出了另一種網絡接入服務器框架,它的功能是對使用互聯網傳輸服務申請的應用進行操作,使它的基本關鍵性能實現,讓開發者可以運用一種很快的操作方式。服務器程序創建者僅要承接和事例化架構中的組成部件,就能完成底部傳輸功能,然后開發者就能把大部分時間放在處理數據邏輯上的創建,就可以在較短時間內創建出一個網絡連接服務器。為具備上述條件,網絡接入服務器框架要具有下面的三個關鍵部分:網絡通信,消息處理,服務管理。
網絡通信部分需要包括下面幾個性能:
1)可以高效率管理控制客戶端的接入請求,接收無誤的接入請求傳送接入事件通知,同時拒絕錯誤的接入請求;
2)管理客戶端對應的上下文信息以及所有的客戶端狀態;
3)能主動關閉相應或者所有的客戶端;
4)向指定的某一或者所有的客戶端發送消息;
5)實時對客戶端的狀態進行測試,把掉線或者已經接入很長時間但沒有傳送請求服務的客戶端關閉,把這個業務消息傳到外面同時登記;
6)對非局部信息進行管理控制和計數,比如接進來的有多少、接受數據計數和傳輸數據計數、用戶接入信息等,在信息狀態有變化時就對這個事件進行響應,同時發出通知;
消息處理部分應包括以下功能:
1)可以挑選的消息協議機制,專門面對不一樣的要求制定許多消息協議,盡可能地符合框架的延伸性;
2)具有數據包完整性檢查功能;
3)多個路徑的消息分離機制,依照不一樣的消息請求類形和不一樣的消息內容樣式來分離消息,然后把消息發送到對應的加工模塊和加工隊列里面,同時調取有關的邏輯需求處理。
服務管理部分應包括以下功能:
1)給與相同的服務連接路徑,依照各種程序給與相同的服務連接路徑,使程序創建更容易;
2)把服務分散開并且對它進行設置,非靜態地設置服務。結合信息協議的分析結論,創立有關的服務目標實際案例,對服務申請進行操作。
開發者經過調取和承接本框架的結構組件和架構真實案例,可以方便地對網絡通信應用服務器單元繼續進行創建,這樣就能很快地創建出性能較強的網絡信息傳輸程序。因此性能較強的網絡連接服務器框架的創立目標必須包括下面幾部分:
1)功能結構模塊化
可多次使用性是框架十分重要的性能,因此要把框架構思成許多相互聯系的模塊,把接口設置成一致,這樣可以讓框架很方便地被延伸,減小與應用層之間的藕合性,確保框架具備高內聚低藕合的特征。
2)能有效應對海量并發請求
如今互聯網速度發展很快,服務器相對的客戶端的個數是在不斷增加的。所以在對許多用戶一起傳送的申請進行操作時,服務器的伸展收縮性一定要強。
3)能有效的管理客戶端
網絡通信軟件的服務一般都是連接距離遠使用時間少。在保持眾多的用戶接入時,一定要達到可以很快地追蹤登記和管理控制用戶狀況的體制,用它對客戶端狀態的改變進行檢測,同時對這種檢測進行事件響應并調取有關的操作。并且,運用心跳包體制可以檢查出用戶非人為因素斷線和在線意圖不軌等操作,可以方便管理控制連接的信息。
4)靈活的消息協議
通信框架要對各種各樣的網絡通信程序的要求進行操作,這會讓通信框架能達到對各種各樣的信息協議進行操作。能夠在信息傳輸單元中完成對字節流、XML流和JSON流都進行操作。讓用戶定制更加簡便。
5)有效的數據包
因為TCP協議僅僅可以確保接收的是有順序和無誤的數據,并不可以確保一次傳輸的是沒有丟失數據包也不會確保一次傳輸的數據包的數量。這種現象就是很多人都了解的黏包和半包。想要創建一個性能強大的網絡通信框架就必須要對傳送的數據包的排列次序重新整合,務必使傳輸給業務邏輯層的數據包是沒有缺失的。
6)消息事件多路分離機制
消息處理層會運用信息協議把數據包進行重新組合,分析成沒有缺損的信息,然后把各種類形的消息存儲各種類形的信息序列里,同時調取有關的服務請求單元來操作。
7)靈活性
相同的創建連接路徑和可以延伸的網絡傳輸框架都要使框架和應用程序的處理數據的邏輯分散開,這樣會讓開發者把更多的精力放在業務邏輯開發上,避免在基本性能上的多次開發。這樣會使應用程序不容易受到框架改變的影響,更有助于延伸框架和應用程序。
8)穩定性
穩定性對所有服務器來講都是非常關鍵的。它可以判定出一個服務器性能的好壞。網絡接入服務器框架必須要具有底層通信性能,要想使創建在框架上面開發的服務器具有較強的穩定性,必須要使它的框架穩定。因此一個較好的網絡接入服務器框架一定要有較強的穩定性。
根據上面介紹的框架設計原理,同時依據軟件工程設計中的高內聚、低耦合原則,本文提出了圖1所示的高性能網絡接入服務器框架的系統架構。主要包括3個重要功能模塊:底層網絡通信模塊、消息處理模塊和服務管理模塊。

圖1 高性能網絡接入服務器框架的體系結構
3.1 網絡通信模塊
面對眾多用戶的接入申請,接受數據包、加工數據包、把數據包傳輸給信息處理單元、傳輸應用邏輯層加工之后的數據包進行操作。包括:
套接字監聽:套接字監聽的作用是把服務器端監測到用戶接入申請的Socket破壞掉,依照事先設定好的制度對用戶的連接申請進行操作。
對象池:把一段時間內不工作的接入目標調取出來,然后進行處理。這樣多次使用不工作的目標就能降低資源浪費,同時可以更方便迅速地實現創建和銷毀工作。
線程池:線程池的作用是來存儲I/O工作線程經過對許多工作多次使用線程,創建線程所需的工作量可以讓許多業務同時進行。當有申請的時候線程己存在,這樣會促進體系的響應效率。
I/O工作線程:其主要工作是對I/O請求的種類的區分然后調取有關目標來操作。
3.2 消息處理模塊
該模塊依據信息協儀對數據流進行操作,把它存儲在信息序列里,接著依據信息的種類調取有關的服務事例或者單元來操作。消息處理模塊的特性有以下幾部分:
消息協議:消息協議是一種通信機制,主要用在用戶與服務器、用戶跟與用戶之間。它是把許多種類的分析方式整合起來,并且給與相同的協議分析原理。開發者僅用使用繼承消息協議類同時改變它里面的方法,就能達到使數據包流和應用邏輯層的數據可以互相轉換。
消息隊列:消息隊列的作用是來存儲網絡通信模塊中接受到的消息,并且調取I/O工作線程依照先進先出的規則來對消息進行處理,然后把處理完的信息分發到服務管理模塊。它的作用主要是在服務管理模塊和網絡通信模塊中進行緩沖。
3.3 服務管理模塊
用于把全部操作和服務特性集合起來進行控制。服務管理給與了相同的接入路徑,同時能夠非靜態地設置服務和操作信息。功能主要有:
配置管理:把全部的服務和處理功能集中起來進行管理和配置,主要工作有初始化、恢復和終止等,同時能夠使用服務列表來查詢服務。
服務工廠:依照消息處理模塊處理分析得到的結論,調取有關的服務案例來進行處理,同時把處理成果傳回到消息處理模塊。
服務接口:網絡接入服務器框架給開發者提供一致的服務連接口,全部的服務功能都是經過這個接口完成的,使開發應用更加簡便,對達到服務的非靜態動態加載功能有促進作用。
3.4 示例
圖2是人工影響天氣實時智能指揮系統,由三部分組成:PC指揮機、作業點客戶端(手機)以及網絡接入服務器。衛星云圖在屏幕上顯示,決策人員通過分析得出最新數據資料,然后利用得到的關于作業點區域和雷達的數據選擇適合的工作區域,指揮PC指揮機自動的生成相關的數據包指令。如果省向當地空軍的空域申請得到批準,則PC機可以發送指令通過在網絡上接入服務器。智能手機上安裝客戶端程序,利用WIFI網絡與服務器進行連接,獲取和轉發數據包,最后把結果顯示在手機屏幕上。操作人員根據得到的指令參數現場進行作業,并利用數據包,視頻和圖片形式把現場的實際情況接入到網絡服務器中,最后反饋給PC指揮機。

圖2 系統整體部署
網絡接入服務器起著連接客戶端和指揮機的作用。它負責客戶端與指揮機的網絡接入、數據轉發、負責保持和維護指揮機與客戶端的視頻連接通道,利用多種方式保證網絡連接的實用性和可靠性。在整個人影實時智能指揮系統中起到了非常重要的作用。
現在,大部分網絡接入服務器基本是創建在某個特別制定的需求分析上,這樣的開發方法會把詳細的業務性能和最基本的關鍵性能緊緊地結合起來,適用性、延伸性和移植性都很弱,同時底層的基本關鍵性能多次創建會使開發時間延長,容易出現錯誤,利用資本高。
本文分析了高性能網絡接入服務器框架的功能需求,討論了其設計目標,闡述了系統總體架構,給出了人工影響天氣作業中實時智能指揮系統采用網絡接入服務器的系統實例。實踐表明,本文給出的高性能網絡接入服務器框架的設計思想有良好的應用意義。
[1] 李興. 基于Windows完成端口的高性能服務器框架的研究與實現[D]. 華南理工大學, 2011.
[2] 劉衛濤, 李濤. 基于ACE框架的高效網絡通信的研究[J]. 電腦知識與技術, 2009, 5(16): 79-83.
[3] 李興. 基于Windows完成端口的高性能服務器框架的研究與實現[D]. 華南理工大學, 2011.
[4] 朱凱. 基于多協議的人工影響天氣接入服務器設計與實現[D]. 南京信息工程大學, 2012.
[5] 胡燕祝, 權桁, 艾新波. 復雜網絡全局拓撲相似度計算方法實證研究[J]. 軟件, 2015, 36(9): 16-20.
[6] 張宇飛, 李煒. CWMP 在家庭開放平臺遠程終端管理子系統的應用[J]. 軟件, 2016, 37(01): 85-90.
[7] 董恒競. 一種企業移動應用平臺架構設計[J]. 軟件, 2016, 37(01): 136-138.
[8] 黃啟昭. 基于Agent技術的物流管理信息系統設計研究[J]. 軟件, 2013, 34(8): 34-35.
[9] 王學卿, 程琦峰. 基于UML 高校辦公管理系統的設計研究[J]. 軟件, 2013, 34(11): 36-39.
[10] 張馨躍. 室內可見光通信混合組網方案的設計與實現[J]. 軟件, 2013, 34(11): 43-45
[11] 周唯, 劉冬, 劉會師. 基于無線傳感器網絡拓撲的研究與設計[J]. 軟件, 2013, 34(12): 22-25.
[12] 江濱. 計算機網絡安全系統在氣象通信中的應用分析[J]. 軟件, 2014.35(1): 96-97.
[13] 劉晶, 周磊, 牟群剛. 小型圖書管理系統的設計和實現[J]. 軟件, 2014, 35(2): 28-30.
[14] 閆美玲. 基于VB的檔案管理系統的設計與實現[J]. 軟件, 2013, 34(6): 51-52.
Design of High Performance Network Access Server Framework
CHEN Wen-wen, ZHOU Jie
(College of Electronics and Information Engineering, Naning University of Information, Science and Technology, Nanjing 210044)
This paper analyzes the functional requirements of the high-performance network access server framework, discusses its design goals, expatiates the overall architecture of the system, and gives a system example of real-time intelligent command system using network access server in weather modification operations. The practice shows that the design idea of the high-performance network access server frame given in this paper has good application significance.
Network access server; Functional requirements; Design goals; System architecture; High performance
TP393.02
A
10.3969/j.issn.1003-6970.2017.04.022
本文著錄格式:陳雯雯,周杰. 高性能網絡接入服務器框架的設計[J]. 軟件,2017,38(4):117-120