摘 要:分析市場主要網(wǎng)絡(luò)設(shè)備模擬器的特點(diǎn),開發(fā)出基于瀏覽器/服務(wù)器(Browser/Server)架構(gòu)的、面向網(wǎng)絡(luò)實(shí)踐教學(xué)或培訓(xùn)的網(wǎng)絡(luò)設(shè)備模擬器軟件系統(tǒng),并就開發(fā)中的關(guān)鍵技術(shù)進(jìn)行了詳細(xì)的闡述。模擬器前端使用Flash的ActionScript提取設(shè)備命令信息,后臺(tái)采用Java語言開發(fā)仿真引擎,通過XML進(jìn)行前、后端信息的傳遞。模擬器具有多用戶、快速響應(yīng)、通用設(shè)備等特點(diǎn)。
關(guān)鍵詞:網(wǎng)絡(luò)設(shè)備模擬器;B/S結(jié)構(gòu);RIA;Java;XML
中圖分類號:TP311 文獻(xiàn)標(biāo)識(shí)碼:B
文章編號:1004-373X(2008)11-156-03
Design and Development of Network Equipment Simulator Based on B/S Structure
ZENG Jun,YANG Hongmin
(Zhejiang Province Educational Equipment and Work-study Management Center,Hangzhou,310002,China)
Abstract:By analysing the features of major network equipment simulator,a browser/server-based network simulation software for network practice teaching or training is developed,and the key technologies of development is described.In front of simulator,using flash actionscript to extract equipment order information.In back,using the Java language develop simulation engine.XML is used for passing information between front and back.At last,the simulator has features of multi-user,fast response,common characteristics of equipment.
Keywords:network equipment simulator;B/S structure;RIA;Java;XML
1 引 言
隨著計(jì)算機(jī)網(wǎng)絡(luò)的高速發(fā)展,對各類網(wǎng)絡(luò)人才的需求使得各類網(wǎng)絡(luò)培訓(xùn)蓬勃發(fā)展。其中的網(wǎng)絡(luò)設(shè)備操作培訓(xùn)需要使用昂貴的網(wǎng)絡(luò)設(shè)備,這無論對培訓(xùn)機(jī)構(gòu)還是對培訓(xùn)學(xué)員都是沉重的經(jīng)濟(jì)負(fù)擔(dān)。用軟件來模擬網(wǎng)絡(luò)設(shè)備的工作過程是解決問題的途徑之一。目前已經(jīng)有了很多網(wǎng)絡(luò)設(shè)備模擬器,其中比較好的有針對Cisco的網(wǎng)絡(luò)設(shè)備模擬器(如:NetSim)和針對華為的網(wǎng)絡(luò)設(shè)備模擬器(如:RouteSim),前者的功能齊全,針對性強(qiáng),而后者只能限于網(wǎng)絡(luò)初學(xué)者,功能較為簡單。這些網(wǎng)絡(luò)設(shè)備模擬器多數(shù)是單機(jī)版的形式,并只針對一種類型的設(shè)備,常用于指定企業(yè)上崗培訓(xùn)。
為此,我們根據(jù)高校計(jì)算機(jī)網(wǎng)絡(luò)實(shí)踐教學(xué)和培訓(xùn)的實(shí)際,設(shè)計(jì)開發(fā)一種基于B/S結(jié)構(gòu)的網(wǎng)絡(luò)設(shè)備模擬器,以實(shí)現(xiàn)多用戶的同時(shí)使用和協(xié)作學(xué)習(xí)。模擬器還能實(shí)現(xiàn)同種類型設(shè)備的不同型號(CISCO,華為等)的互連和指令支持,實(shí)現(xiàn)通用設(shè)備,有利于培訓(xùn)學(xué)員全面掌握網(wǎng)絡(luò)設(shè)備操作技能。
2 模擬器系統(tǒng)分析與設(shè)計(jì)
2.1 模擬器概述
網(wǎng)絡(luò)設(shè)備模擬器的是一種通過計(jì)算機(jī)軟件技術(shù)模擬現(xiàn)實(shí)中的各類網(wǎng)絡(luò)設(shè)備及其操作。利用軟件進(jìn)行模擬可以讓學(xué)員在計(jì)算機(jī)終端上完成模擬多臺(tái)路由器、交換機(jī)的工作,而不用像在真實(shí)實(shí)驗(yàn)環(huán)境中那樣不斷地往返于不同設(shè)備間,頻繁地切換端口接線,方便了網(wǎng)絡(luò)實(shí)踐課程的教學(xué)。另外用軟件進(jìn)行模擬,省去昂貴的設(shè)備采購和維護(hù)費(fèi)用,節(jié)約了教學(xué)成本。
目前市場上的網(wǎng)絡(luò)設(shè)備模擬器種類繁多,制作技術(shù)和難度也繁簡不一。如華為的網(wǎng)絡(luò)設(shè)備模擬器,他可支持的技術(shù)從以太網(wǎng)接入、各種路由協(xié)議的配置到安全認(rèn)證非常全面,而模擬出的設(shè)備可以是一臺(tái),也可以是幾十臺(tái),有時(shí)所模擬出的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)還可以達(dá)到電信級的規(guī)模。但他們同時(shí)存在著一些問題:首先不同廠商所開發(fā)的網(wǎng)絡(luò)設(shè)備模擬器都是針對本產(chǎn)品的模擬,通用性上存在不足;其次都采用單機(jī)版結(jié)構(gòu),在一定程度上降低了可控制性,不利于分散培訓(xùn);最后就是現(xiàn)有模擬器的可擴(kuò)展和自配置性差,像華為模擬器就不允許用戶自添加一些命令規(guī)則。
因此,針對網(wǎng)絡(luò)培訓(xùn)需求,我們設(shè)計(jì)開發(fā)了基于B/S模式的、能通用設(shè)備的、可擴(kuò)展的網(wǎng)絡(luò)設(shè)備模擬器。
2.2 系統(tǒng)結(jié)構(gòu)
模擬器系統(tǒng)采用瀏覽器/服務(wù)器(Browser/Server)架構(gòu)(如圖1)。整合Web 2.0技術(shù),體現(xiàn)富互聯(lián)網(wǎng)應(yīng)用(Rich Internet Application,RIA)思想,運(yùn)用前臺(tái)的Flash應(yīng)用程序與用戶交互,豐富用戶體驗(yàn),增強(qiáng)系統(tǒng)可用性。后臺(tái)從邏輯功能上分為Web服務(wù)器和Java應(yīng)用服務(wù)器:Web服務(wù)器主要響應(yīng)用戶的Web 請求,包括注冊、登錄等;Java應(yīng)用服務(wù)器主要響應(yīng)前臺(tái)Flash播放器的XML Socket通訊請求、通過調(diào)用專家知識(shí)實(shí)現(xiàn)指令解析、生成連通信息并返還給前臺(tái)客戶端。專家知識(shí)庫系統(tǒng)是建立的針對特定網(wǎng)絡(luò)設(shè)備的指令知識(shí)庫,通過XML技術(shù)和正則表達(dá)式技術(shù)對指令格式和領(lǐng)域知識(shí)進(jìn)行形式化,同時(shí)建立知識(shí)庫維護(hù)子系統(tǒng),主要負(fù)責(zé)知識(shí)的維護(hù)和更新。
2.3 主要問題和流程
網(wǎng)絡(luò)設(shè)備模擬器的設(shè)計(jì)和開發(fā)需要解決以下問題:
(1) 網(wǎng)絡(luò)設(shè)備指令格式和領(lǐng)域知識(shí)的形式化和正則表示,形成指令庫,并能實(shí)現(xiàn)指令的動(dòng)態(tài)增刪。
(2) 后臺(tái)仿真引擎各功能組件的形式化描述、建模,引擎的設(shè)計(jì)開發(fā);
(3) 前臺(tái)設(shè)備隱性連接信息的提取,信息描述的傳遞,相應(yīng)XML文件的自動(dòng)生成等;
(4) 基于XMLSocket的前后臺(tái)通訊協(xié)議和功能實(shí)現(xiàn)。
相應(yīng)的功能實(shí)現(xiàn)流程如圖2所示。
3 模擬器開發(fā)
3.1 技術(shù)路線
從系統(tǒng)結(jié)構(gòu)圖和功能實(shí)現(xiàn)流程圖中可以看出,模擬器開發(fā)中最重要的部分在于前臺(tái)用戶交互界面的設(shè)計(jì)和實(shí)現(xiàn)、后臺(tái)知識(shí)庫的建立、命令解析和處理功能的實(shí)現(xiàn)以及前臺(tái)和后臺(tái)的實(shí)時(shí)通訊。為此,我們采用了Flash+XML+Application的系統(tǒng)架構(gòu),利用RIA技術(shù)提高用戶的操作體驗(yàn);利用跨平臺(tái)的Java語言來編寫仿真引擎,檢索設(shè)備指令知識(shí)庫;利用Flash的ActionScript提取設(shè)備連接信息,自動(dòng)轉(zhuǎn)換成XML文件來進(jìn)行信息的傳遞。
(1) 基于Flash的前端表現(xiàn)技術(shù)
網(wǎng)絡(luò)模擬器前端主要展現(xiàn)命令的輸入,相關(guān)信息的提示,模擬各個(gè)網(wǎng)絡(luò)組件的拖動(dòng)、組合等操作,并且要具有與后臺(tái)通信的能力。本著美觀易用的目標(biāo),我們選擇了Flash來展現(xiàn)人機(jī)交互。引入RIA技術(shù),提高用戶的網(wǎng)絡(luò)操作體驗(yàn)。
(2) 基于Java的后臺(tái)實(shí)現(xiàn)技術(shù)
網(wǎng)絡(luò)模擬器的核心功能由后臺(tái)處理程序完成,主要完成命令解析、命令處理、與前端通信等功能,因此選擇一種易使用、開發(fā)效率高、網(wǎng)絡(luò)處理能力強(qiáng)、XML處理能力強(qiáng)的語言是有必要的,最終我們選擇了Java。Java應(yīng)用程序運(yùn)行在異質(zhì)的機(jī)器、異質(zhì)的操作系統(tǒng)之上,通過TCP/IP進(jìn)行信息的交流;Java應(yīng)用程序之間既可以交換消息,也可以交換程序(如一個(gè)applet);Java的開源特性又為組件帶來更多的可選擇性,在對XML處理上,既可以選擇JDK自帶的處理包,也可以采用開源包,因此在一定程度上具有比較多的可選擇性。
(3) 基于XML的信息通信技術(shù)
在網(wǎng)絡(luò)設(shè)備模擬器的實(shí)現(xiàn)過程中,涉及到后端服務(wù)器和前端Flash通信的要求,也就是要求基于Java的應(yīng)用要和基于Flash的應(yīng)用通信,如何表示通信信息的約定是一個(gè)重要的問題,這個(gè)通信約定必須是被雙方認(rèn)可并能識(shí)別,XML正是這樣一種信息表示載體。
XML(Extensible Markup Language,可擴(kuò)展的標(biāo)記語言)是一套定義語義標(biāo)記的規(guī)則,這些標(biāo)記將文檔分成許多部件并對這些部件加以標(biāo)識(shí)。在網(wǎng)絡(luò)設(shè)備模擬器的通信約定中首先定義一系列通信協(xié)議,這些協(xié)議以XML形式表示,接受端在接收完通信協(xié)議后用XML解析器解析XML協(xié)議,這樣就能很好的識(shí)別各種情況。因此,XML在這里作為連通前端和后端的橋梁。
3.2 RIA技術(shù)
考慮到C/S架構(gòu)在部署和更新方面的缺點(diǎn),我們使用了B/S架構(gòu)來搭建系統(tǒng)。但B/S架構(gòu)的系統(tǒng)因受HTML的限制,無法像C/S那樣使用豐富的效果來展示數(shù)據(jù),用戶體驗(yàn)比較差。另外,網(wǎng)絡(luò)中斷將使B/S程序無法運(yùn)行,因此需要有穩(wěn)定的客戶端/服務(wù)器連接。網(wǎng)絡(luò)設(shè)備模擬器既需要有C/S那樣豐富的客戶端數(shù)據(jù)展現(xiàn)和穩(wěn)定的系統(tǒng)功能,又需要有B/S強(qiáng)大的服務(wù)器端和使用、維護(hù)的方便快捷,RIA為我們找到了在客戶端和服務(wù)器端進(jìn)行更好的平衡的方法。
RIA是集桌面應(yīng)用程序的最佳用戶界面功能與Web應(yīng)用程序的普遍采用和快速、低成本布署以及互動(dòng)多媒體通信的實(shí)時(shí)快捷于一體的新一代網(wǎng)絡(luò)應(yīng)用程序。RIA中的 Rich Client提供可承載已編譯客戶端應(yīng)用程序的運(yùn)行環(huán)境,客戶端應(yīng)用程序使用異步客戶/服務(wù)器架構(gòu)連接現(xiàn)有的后端應(yīng)用服務(wù)器,這是一種安全、可升級、具有良好適應(yīng)性的新的面向服務(wù)模型,這種模型由采用的Web服務(wù)所驅(qū)動(dòng)。結(jié)合了聲音、視頻和實(shí)時(shí)對話的綜合通信技術(shù)使RIA具有前所未有的網(wǎng)上用戶體驗(yàn)。
在實(shí)現(xiàn)RIA的各種技術(shù)中,我們選用基于Flash的RIA,因?yàn)橄到y(tǒng)有個(gè)非常復(fù)雜的用戶交戶,需要展現(xiàn)大量的圖形、圖像,以及要進(jìn)行大量的矢量操作。FlashRIA在界面美觀程度、多媒體表現(xiàn)、開發(fā)便捷及很多開發(fā)細(xì)節(jié)上有很大的優(yōu)勢。
4 結(jié) 語
采用B/S架構(gòu)設(shè)計(jì)和開發(fā)網(wǎng)絡(luò)設(shè)備模擬器,可以把復(fù)雜的網(wǎng)絡(luò)設(shè)備操作命令和過程同時(shí)展現(xiàn)在多個(gè)客戶端,方
[CM(21*2]便網(wǎng)絡(luò)課程實(shí)踐教學(xué),節(jié)省設(shè)備開支,有利于網(wǎng)絡(luò)實(shí)踐知[CM)]
識(shí)的普及。在模擬器的客戶端,采用RIA技術(shù),構(gòu)建了直觀、易用、反應(yīng)迅速并可以脫機(jī)使用的,具有良好客戶體現(xiàn)的前端應(yīng)用程序;在服務(wù)器端,開發(fā)了豐富的和可擴(kuò)展的命令解析程序和指令庫,實(shí)現(xiàn)多種網(wǎng)絡(luò)產(chǎn)品的互連和通用,并使用RIA和XML實(shí)現(xiàn)前后端信息的異步交互,在保證信息傳送正確的前提下,在無刷新頁面之下提供快捷的界面響應(yīng)時(shí)間,增強(qiáng)了用戶體驗(yàn)。
本文創(chuàng)新點(diǎn):在B/S架構(gòu)下搭建網(wǎng)絡(luò)設(shè)備模擬器,可以方便用戶使用和進(jìn)行管理;在開發(fā)實(shí)現(xiàn)過程中,利用RIA來改善系統(tǒng)的網(wǎng)絡(luò)性能,改善用戶的體驗(yàn);利用JAVA開發(fā)仿真引擎,集成多種網(wǎng)絡(luò)設(shè)備和產(chǎn)品,實(shí)現(xiàn)通用設(shè)備;系統(tǒng)在受限的網(wǎng)絡(luò)實(shí)踐教學(xué)或培訓(xùn)中得到了很好的應(yīng)用。
參 考 文 獻(xiàn)
[1]周林,謝峰.基于RIA架構(gòu)的應(yīng)用開發(fā)改進(jìn)方案[J].微計(jì)算機(jī)信息,2007(6):221-223.
[2]陳再良,徐德智,陳學(xué)工,等.基于鏈?zhǔn)浇Y(jié)構(gòu)XML文檔的生成方法[J].計(jì)算機(jī)工程,2006,32(20):59-61.
[3]曹曉軍.虛擬機(jī)技術(shù)的應(yīng)用研[J].甘肅廣播電視大學(xué)學(xué)報(bào),2006(2):75-77.
[4]祝義,朱暉.基于虛擬機(jī)的虛擬實(shí)驗(yàn)網(wǎng)絡(luò)[J].計(jì)算機(jī)與現(xiàn)代化,2004(4):87-89.
[5]肖漢.基于Java平臺(tái)的通用構(gòu)件庫的研究與設(shè)計(jì)[J].計(jì)算機(jī)工程與設(shè)計(jì),2006(15):2 737-2 743.
[6]周翔.關(guān)于當(dāng)前若干主流網(wǎng)絡(luò)仿真軟件的綜述及實(shí)例應(yīng)用分析\\[EB/OL\\].http://www.cisconet.cn.2006.
作者簡介 曾 雋 男,1971年出生,浙江龍游人,浙江省教育裝備與勤工儉學(xué)管理中心工程師。主要從事現(xiàn)代教育技術(shù)的研究。