張寶龍
?
C/S模式網(wǎng)管系統(tǒng)向B/S模式的遷移與優(yōu)化①
張寶龍
(西安工程大學計算機科學學院, 西安 710048)
在傳統(tǒng)C/S(客戶端/服務器)模式的網(wǎng)絡管理系統(tǒng)中, 存在網(wǎng)絡管理便利性差和維護麻煩的缺點, 因此提出基于B/S(瀏覽器/服務器)模式的網(wǎng)絡管理系統(tǒng), 將原有C/S模式的網(wǎng)管系統(tǒng)轉(zhuǎn)為B/S模式, 并且對系統(tǒng)結(jié)構(gòu)進行了優(yōu)化, 有助于客戶方便可靠地監(jiān)測和管理網(wǎng)絡資源. 該系統(tǒng)以原網(wǎng)管系統(tǒng)服務端暴露的接口為基礎, 利用RMI(遠程方法調(diào)用)技術(shù)調(diào)用服務端接口與Web服務器實現(xiàn)數(shù)據(jù)通信, 并且整個系統(tǒng)采用負載均衡策略將來自多個瀏覽器的訪問請求均衡地分配至各Web服務器進行處理, 同時對單一的負載均衡器進行了雙機熱備處理, 從而大大提升了網(wǎng)絡管理系統(tǒng)的整體性能和可靠性.
網(wǎng)絡管理; C/S; B/S; 負載均衡; 雙機熱備
目前, 大多數(shù)的網(wǎng)管系統(tǒng)都是基于網(wǎng)絡管理協(xié)議進行網(wǎng)絡資源的管理, 傳統(tǒng)的網(wǎng)管軟件均采用C/S結(jié)構(gòu), 管理模式集中化[1], 這種結(jié)構(gòu)的優(yōu)點在于網(wǎng)絡管理系統(tǒng)服務高度集中, 易于作出全面判斷和決策; 由于所有數(shù)據(jù)均連接到統(tǒng)一的中央數(shù)據(jù)庫, 易于管理、維護和擴容[2]. 但是C/S結(jié)構(gòu)需要在客戶端桌面安裝相應的軟件, 對客戶端硬件有一定的的要求, 并且操作不太便利; 并且由于互聯(lián)網(wǎng)規(guī)模日益龐大, 應用程序的功能不斷豐富和復雜, 表現(xiàn)出靈活性差、移植困難、開發(fā)成本高、維護麻煩、升級難度大和新技術(shù)不能輕易應用的缺陷[1], 不能夠滿足現(xiàn)代網(wǎng)絡管理操作便捷、適應性廣和低成本的要求.
為了解決以上問題, 本文提出基于Web方式的網(wǎng)絡管理系統(tǒng), 利用Web技術(shù)平臺與語言無關(guān)的優(yōu)勢, 以原C/S模式網(wǎng)管系統(tǒng)服務端提供的接口為基礎, 通過多臺Web服務器組成的集合, 采用三層結(jié)構(gòu)的局部負載均衡技術(shù), 構(gòu)建一種較為可靠的B/S模式網(wǎng)絡管理系統(tǒng), 方便客戶對網(wǎng)絡設備的監(jiān)控和管理; 并且對單一的負載均衡器進行了雙機熱備處理, 有效地提高了網(wǎng)管系統(tǒng)的穩(wěn)定性和響應速度.
網(wǎng)絡管理是利用網(wǎng)絡管理協(xié)議對網(wǎng)絡資源進行拓撲發(fā)現(xiàn)、監(jiān)控、調(diào)試以及圖形化展示. 基于 Web的網(wǎng)絡管理WBM(Web-Based Management)[3]就是將Web技術(shù)集成到網(wǎng)管系統(tǒng)中, 從而使網(wǎng)絡管理更加便捷和高效, 它從實現(xiàn)方式上分為代理和嵌入式兩種. 基于代理的方案是在網(wǎng)絡管理之上疊加一個Web服務器[4], 使其成為瀏覽器用戶的網(wǎng)絡管理的代理者, 該方式支持對多種網(wǎng)絡設備的管理, 同時支持與其他應用的擴展融合; 嵌入式方案是將Web能力嵌入到被管設備中[4], 該方案對設備有限制, 擴展性不好.
由于原網(wǎng)管系統(tǒng)采用了代理的實現(xiàn)方式, 所以也就決定了本文基于Web的網(wǎng)絡管理是使用代理的方式對支持網(wǎng)絡管理協(xié)議的網(wǎng)絡資源進行管理. 與C/S模式相比, 采用B/S模式的網(wǎng)絡管理系統(tǒng)擁有如下三點優(yōu)勢:
第一, 易于維護和升級. 系統(tǒng)的核心功能均在Web服務器上運行, 客戶端不需要安裝相應軟件, 在任何平臺下直接使用瀏覽器就可以操作網(wǎng)絡管理系統(tǒng), 系統(tǒng)升級時只需升級服務器端, 便于系統(tǒng)的開發(fā)、維護和操作.
第二, 優(yōu)秀的系統(tǒng)性能. 基于Web的網(wǎng)管系統(tǒng)中大量的計算和存儲任務都在服務器端完成, 而瀏覽器只負責顯示和交互, 特別是由于AJAX技術(shù)的出現(xiàn), 它能使程序在用戶瀏覽器上進行局部實時刷新, 從而大大的減輕了服務器的壓力, 提升了系統(tǒng)的響應速度和整體性能.
第三, 基于Web方式的網(wǎng)絡管理系統(tǒng)容易構(gòu)建一種分布式的系統(tǒng), 容易擴展, 不僅改善了傳統(tǒng)的集中式管理模式的網(wǎng)絡負荷大和服務器負載重的缺陷, 而且增強了網(wǎng)絡管理系統(tǒng)的健壯性.
本文采用Web方式的網(wǎng)絡管理系統(tǒng)分為客戶端瀏覽器、負載均衡模塊、Web服務器集合和原網(wǎng)管系統(tǒng)服務器四部分, 如圖1所示. 由于B/S模式的核心功能部署在服務器端, 這種“瘦客戶端/胖服務器”的模式使得客戶端的負荷較輕, 服務器端的負荷卻較重, 然而單臺服務器的處理能力又有限, 不能夠同時處理大量的訪問請求, 因此我們對客戶端、負載均衡器和Web服務器采用了三層結(jié)構(gòu)的局部負載均衡技術(shù), 將來自瀏覽器的訪問請求均勻地分配至不同的Web服務器進行處理[5], 從而平衡各個Web服務器的負載, 使系統(tǒng)達到最佳的狀態(tài). 這種基于Web服務器的負載均衡結(jié)構(gòu)客戶端應用不需要做特殊修改, 透明的中間層將請求均衡的分布到不同的服務器處理[4], 而請求的應答則不需要經(jīng)過負載均衡器.
圖1 Web網(wǎng)管系統(tǒng)整體架構(gòu)圖
從圖1中可以看出, 所有的瀏覽器請求均會通過負載均衡器被轉(zhuǎn)發(fā)到Web服務器節(jié)點進行處理, 因此為了避免負載均衡器發(fā)生單點故障, 從而使整個網(wǎng)絡管理系統(tǒng)發(fā)生癱瘓, 故使用了雙機熱備的方式, 使某臺負載均衡器發(fā)生故障后另一臺能夠繼續(xù)為系統(tǒng)提供正常的服務. 如果Web服務器集合中的某臺服務器出現(xiàn)故障時, 負載均衡器便會自動檢測出出現(xiàn)問題的服務器, 并暫停對該服務器的請求訪問, 將其任務轉(zhuǎn)發(fā)至其他正常工作的服務器, 從而保證系統(tǒng)為用戶提供正常的服務[6].
3.1 B/S模式網(wǎng)管系統(tǒng)架構(gòu)
Web網(wǎng)管服務器采用模型-視圖-控制器(MVC)結(jié)構(gòu)的分層設計模式[7], 它主要通過分離模型、視圖以及控制器在應用程序中分擔的角色將業(yè)務邏輯從界面中解耦, 這種分離讓它們更容易進行定制. 而Spring框架提供了構(gòu)建Web應用程序的全功能MVC模塊, 并且具有高度的可配置性和擴展性, 故我們使用Spring mvc輕量級框架構(gòu)建Web網(wǎng)管項目.
B/S網(wǎng)管系統(tǒng)的請求處理流程如圖2所示, 當客戶端瀏覽器向Web網(wǎng)管服務器發(fā)出HTTP請求時, 該請求首先會被負載均衡器分配給負載較輕的Web服務器, 由服務器中DispatcherServlet(Spring控制器)對請求的URL進行解析, 通過一個或者多個處理程序映射, 將每個請求映射到處理程序中(Controller); 處理程序在執(zhí)行時, 即實現(xiàn)業(yè)務邏輯, 會通過RMI遠程方法調(diào)用原網(wǎng)管服務器服務接口進行數(shù)據(jù)通信, 控制器處理完業(yè)務請求后, 會將ModelAndView對象返回給DispatcherServlet, 最后再通過瀏覽器進行呈現(xiàn)用戶.
圖2 B/S網(wǎng)管系統(tǒng)架構(gòu)圖
3.2 負載均衡模塊
由于本系統(tǒng)對服務器的并發(fā)請求數(shù)量不是特別巨大, 并且對負載均衡器進行了雙機備份處理, 為了降低開發(fā)難度和成本, 故選用集中式的軟件負載均衡實現(xiàn)方式, 軟件選擇Nginx. Nginx是一款開源的、輕量級的Web服務器/反向代理服務器[7]. 其特點是占有內(nèi)存少, 運行可靠, 并發(fā)能力強, 我們采用反向代理負載均衡方式和默認的輪詢調(diào)度算法.
反向代理是一種通過在繁忙的Web服務器和外部網(wǎng)絡之間增加一個高速的Web緩沖服務器來降低實際的Web服務器的負載的一種技術(shù)[7]. 通過在nginx.config中進行配置, 反向代理服務器將來自外部網(wǎng)絡的多個請求均勻地分配給內(nèi)部網(wǎng)絡上的各個服務器結(jié)點進行處理[8], 減輕服務器的負載壓力, 從而使整個網(wǎng)管系統(tǒng)實現(xiàn)負載均衡, 達到最佳狀態(tài).
Nginx內(nèi)置5種負載均衡算法, 分別是輪詢、weight、ip_hash、fair和url_hash; 輪詢算法的基本原理是當請求發(fā)送到系統(tǒng)前端的負載均衡器時, 負載均衡器將每個訪問請求按響應的時間順序依次分配到不同的后端服務器[9], 當后端服務器down掉后, 就自動刪除, 簡單易行且通用性較強, 由于本網(wǎng)管系統(tǒng)無特殊需求, 故采用此算法.
3.3 雙機熱備
我們使用Nginx+Keepalived的雙機熱備處理方式[10], 即使用兩臺均安裝Nginx的設備充當負載均衡服務器同時對外提供服務, 并通過Keepalived軟件檢測負載均衡器的狀態(tài), 當某臺負載均衡器發(fā)生故障時, Keepalived就會檢測出出現(xiàn)故障的負載均衡器, 該負載均衡器便會立即釋放虛擬IP, 由另一臺負載均衡器綁定該虛擬IP, 同時Keepalived還會向網(wǎng)關(guān)發(fā)送 Arping 包, 保證網(wǎng)關(guān)上的IP和MAC地址對應的關(guān)系能隨之更新[11], 從而使負載均衡器能夠強行接管虛擬IP并繼續(xù)為系統(tǒng)提供服務.
首先構(gòu)建的Web工程, 通過修改web.xml文件并添加Spring配置文件構(gòu)建Spring MVC項目, 然后添加RMI配置文件, 實現(xiàn)RMI遠程調(diào)用原網(wǎng)管系統(tǒng)暴漏的接口, 根據(jù)業(yè)務需求劃分系統(tǒng)功能模塊, 從而逐個實現(xiàn)各模塊的系統(tǒng)功能.
由于整個Web網(wǎng)絡管理系統(tǒng)功能較多, 且大多都是通過瀏覽器的http請求到Web服務器, 然后使用RMI調(diào)用原網(wǎng)管服務端暴漏的接口實現(xiàn)數(shù)據(jù)通信, 最后展現(xiàn)到瀏覽器端, 從而實現(xiàn)網(wǎng)絡管理. 各模塊相似度較高, 故僅以性能管理模塊描述基于Web方式的網(wǎng)絡管理系統(tǒng)的實現(xiàn).
4.1 性能管理模塊
性能管理模塊分為任務管理、實時性能監(jiān)測和歷史性能查詢?nèi)糠? 首先根據(jù)需求對照原網(wǎng)管系統(tǒng)客戶端使用easyUI做出靜態(tài)頁面.
① 任務管理: 通過原網(wǎng)管系統(tǒng)提供的接口對本區(qū)域任務進行管理, 包括任務的查看、添加、編輯、開始、暫停和刪除, 主頁面默認以列表顯示已添加的任務信息. 其中添加和編輯任務需要使用JQuery彈窗, 選擇要添加或編輯的輪詢?nèi)蝿疹愋?、輪詢時間和要監(jiān)視的設備, 以及各任務所對應的告警門限設置, 這里需要對輸入的告警門限值進行校驗, 最后將這些設置通過ajax請求調(diào)用接口保存到數(shù)據(jù)庫中, 并將該任務信息顯示到列表中; 而開始、暫停和刪除功能只需要調(diào)用相應的接口, 對輪詢?nèi)蝿兆鞒鱿鄳奶幚? 并修改列表上該任務的狀態(tài)即可. 在任務輪詢時, 當輪詢結(jié)果超過設置的門限值時便會以彈框的形式產(chǎn)生告警.
② 實時性能監(jiān)視: 主頁面默認顯示所有輪詢?nèi)蝿找烟砑拥脑O備, 在查看該設備的實時性能時, 通過JQuery彈窗以不同的tab頁將該設備已添加的所有任務展示出來, 各tab頁的任務視圖利用JFreeChart將該輪詢結(jié)果以折線圖的形式展現(xiàn)出來, 并且按任務的輪詢時間, 將采集端采集的輪詢結(jié)果通過服務端使用JMS發(fā)送到Web服務器, 接收后解析加入到該設備對應的任務緩存中, 然后刷新圖表, 雙擊圖表可通過任務緩存查看該任務視圖的詳情, 包括當前值、最大值、和平均值, 關(guān)閉頁面后任務緩存釋放.
③ 歷史性能查詢: 主頁面默認以tab頁形式顯示所有的輪詢?nèi)蝿? 每個輪詢?nèi)蝿盏膖ab頁可通過選擇區(qū)域和該區(qū)域下已添加該輪詢?nèi)蝿盏脑O備, 然后選定時間節(jié)點查詢該設備的日視圖、周視圖和月視圖, 各視圖均采用JFreeChart將查詢結(jié)果以折線圖的形式展現(xiàn)出來; 并可將結(jié)果導出到excel中.
4.2 界面對比
以任務管理為例, 對比圖3和圖4可見, B/S結(jié)構(gòu)與C/S結(jié)構(gòu)用戶界面基本相似, 實現(xiàn)功能完全相同, 達到了預期的目的.
圖4 B/S結(jié)構(gòu)的任務管理界面
本文C/S模式網(wǎng)管系統(tǒng)向B/S模式的遷移是在使用原C/S網(wǎng)管系統(tǒng)服務端的基礎上, 使用Spring MVC框架構(gòu)建Web服務器, 利用服務端暴漏的接口通過RMI(遠程方法調(diào)用)與原有網(wǎng)管系統(tǒng)進行數(shù)據(jù)通信, 從而實現(xiàn)B/S網(wǎng)管系統(tǒng)功能; 通過對多臺Web服務器利用Nginx軟件實現(xiàn)負載均衡, 平衡各個Web服務器的負載, 并對單一的負載均衡器進行了雙機熱備, 消除網(wǎng)絡瓶頸, 也能起到冗余作用, 提高網(wǎng)絡服務的靈活性和可用性[12].
1 袁俊.基于Web的網(wǎng)絡管理模型及實現(xiàn)技術(shù)研究.河南科技, 2014,4:23–24.
2 顧慧娟.構(gòu)建企業(yè)級WEB分布式網(wǎng)絡管理系統(tǒng)的研究[學位論文].無錫:江南大學,2009.
3 Yao L, Sheng QZ, Dustdar S. Web-based management of the internet of things. IEEE Internet Computing, 2015, 19(4): 60–67.
4 鄧江安,金晟.基于Web和SNMP的網(wǎng)絡用戶管理系統(tǒng).計算機與網(wǎng)絡,2014,23:58–60.
5 Yang K, Song X, Li X. Parallel web server load balancing technology of cloud computing environments. Guidance, Navigation and Control Conference. IEEE. 2014.
6 周博.WEB服務器負載均衡系統(tǒng)設計與實現(xiàn)[碩士學位論文].成都:電子科技大學,2014.
7 付文超.WEB服務器負載均衡技術(shù)研究[學位論文].天津:河北工業(yè)大學,2008.
8 Semchedine F, Bouallouche-Medjkoune L, Sayeh O, et al. DNS-based load balancing with cache for geographically distributed web server systems. Computer & Information Technology(GSCIT), 2014 Global Summit. IEEE. 2014. 1–6.
9 Chi X, Liu B, Niu Q, et al. Web load balance and cache optimization design based nginx under high-concurrency environment. International Conference on Digital Manufacturing & Automation. IEEE Computer Society. 2012. 1029–1032.
10 肖佳,王古城,楊旭,晁勇.雙機熱備與負載均衡的設計與實現(xiàn).電子設計工程,2015,18:176–179.
11 李彬,朱亞興.Nginx在實現(xiàn)網(wǎng)站負載均衡方面的研究.信息與電腦(理論版),2013,11:49–50.
12 巴哈提亞爾,聶波,宋子龍.網(wǎng)絡負載均衡技術(shù)研究和應用. 中國管理信息化,2014,3:68–70.
Migration and Optimization of C/S Model Network Management System to B/S Model
ZHANG Bao-Long
(School of Computer Science, Xi’an Polytechnic University, Xi’an 710048, China)
There are some defects such as inconvenience and maintenance trouble for network management in the traditional C/S (client/server) model of network management system. Therefore, we put forward a network management system that based on B/S (browser/server) model, in which the original C/S model of network management system is turned to B/S model, and the structure of system is optimized which helped the customers to conveniently and reliably monitor and manage the network resource. This system is based on the interface that the original network management system server exposed, uses the RMI (remote method invocation) technology call server interface to realize data communication with Web server, and the whole system adopts the load balancing strategy to balance the access requests from multiple browser to each Web server for processing. Meanwhile, the system adopts the hot standby process on the single load balancer, thus greatly improves the overall performance and reliability of the network management system.
network management system; C/S; B/S; load balancing; hot standby
2016-04-06;收到修改稿時間:2016-05-16
[10.15888/j.cnki.csa.005528]