摘 要:分析市場主要網絡設備模擬器的特點,開發出基于瀏覽器/服務器(Browser/Server)架構的、面向網絡實踐教學或培訓的網絡設備模擬器軟件系統,并就開發中的關鍵技術進行了詳細的闡述。模擬器前端使用Flash的ActionScript提取設備命令信息,后臺采用Java語言開發仿真引擎,通過XML進行前、后端信息的傳遞。模擬器具有多用戶、快速響應、通用設備等特點。
關鍵詞:網絡設備模擬器;B/S結構;RIA;Java;XML
中圖分類號:TP311 文獻標識碼: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 引 言
隨著計算機網絡的高速發展,對各類網絡人才的需求使得各類網絡培訓蓬勃發展。其中的網絡設備操作培訓需要使用昂貴的網絡設備,這無論對培訓機構還是對培訓學員都是沉重的經濟負擔。用軟件來模擬網絡設備的工作過程是解決問題的途徑之一。目前已經有了很多網絡設備模擬器,其中比較好的有針對Cisco的網絡設備模擬器(如:NetSim)和針對華為的網絡設備模擬器(如:RouteSim),前者的功能齊全,針對性強,而后者只能限于網絡初學者,功能較為簡單。這些網絡設備模擬器多數是單機版的形式,并只針對一種類型的設備,常用于指定企業上崗培訓。
為此,我們根據高校計算機網絡實踐教學和培訓的實際,設計開發一種基于B/S結構的網絡設備模擬器,以實現多用戶的同時使用和協作學習。模擬器還能實現同種類型設備的不同型號(CISCO,華為等)的互連和指令支持,實現通用設備,有利于培訓學員全面掌握網絡設備操作技能。
2 模擬器系統分析與設計
2.1 模擬器概述
網絡設備模擬器的是一種通過計算機軟件技術模擬現實中的各類網絡設備及其操作。利用軟件進行模擬可以讓學員在計算機終端上完成模擬多臺路由器、交換機的工作,而不用像在真實實驗環境中那樣不斷地往返于不同設備間,頻繁地切換端口接線,方便了網絡實踐課程的教學。另外用軟件進行模擬,省去昂貴的設備采購和維護費用,節約了教學成本。
目前市場上的網絡設備模擬器種類繁多,制作技術和難度也繁簡不一。如華為的網絡設備模擬器,他可支持的技術從以太網接入、各種路由協議的配置到安全認證非常全面,而模擬出的設備可以是一臺,也可以是幾十臺,有時所模擬出的網絡拓撲結構還可以達到電信級的規模。但他們同時存在著一些問題:首先不同廠商所開發的網絡設備模擬器都是針對本產品的模擬,通用性上存在不足;其次都采用單機版結構,在一定程度上降低了可控制性,不利于分散培訓;最后就是現有模擬器的可擴展和自配置性差,像華為模擬器就不允許用戶自添加一些命令規則。
因此,針對網絡培訓需求,我們設計開發了基于B/S模式的、能通用設備的、可擴展的網絡設備模擬器。
2.2 系統結構
模擬器系統采用瀏覽器/服務器(Browser/Server)架構(如圖1)。整合Web 2.0技術,體現富互聯網應用(Rich Internet Application,RIA)思想,運用前臺的Flash應用程序與用戶交互,豐富用戶體驗,增強系統可用性。后臺從邏輯功能上分為Web服務器和Java應用服務器:Web服務器主要響應用戶的Web 請求,包括注冊、登錄等;Java應用服務器主要響應前臺Flash播放器的XML Socket通訊請求、通過調用專家知識實現指令解析、生成連通信息并返還給前臺客戶端。專家知識庫系統是建立的針對特定網絡設備的指令知識庫,通過XML技術和正則表達式技術對指令格式和領域知識進行形式化,同時建立知識庫維護子系統,主要負責知識的維護和更新。

2.3 主要問題和流程
網絡設備模擬器的設計和開發需要解決以下問題:
(1) 網絡設備指令格式和領域知識的形式化和正則表示,形成指令庫,并能實現指令的動態增刪。
(2) 后臺仿真引擎各功能組件的形式化描述、建模,引擎的設計開發;
(3) 前臺設備隱性連接信息的提取,信息描述的傳遞,相應XML文件的自動生成等;
(4) 基于XMLSocket的前后臺通訊協議和功能實現。
相應的功能實現流程如圖2所示。

3 模擬器開發
3.1 技術路線
從系統結構圖和功能實現流程圖中可以看出,模擬器開發中最重要的部分在于前臺用戶交互界面的設計和實現、后臺知識庫的建立、命令解析和處理功能的實現以及前臺和后臺的實時通訊。為此,我們采用了Flash+XML+Application的系統架構,利用RIA技術提高用戶的操作體驗;利用跨平臺的Java語言來編寫仿真引擎,檢索設備指令知識庫;利用Flash的ActionScript提取設備連接信息,自動轉換成XML文件來進行信息的傳遞。
(1) 基于Flash的前端表現技術
網絡模擬器前端主要展現命令的輸入,相關信息的提示,模擬各個網絡組件的拖動、組合等操作,并且要具有與后臺通信的能力。本著美觀易用的目標,我們選擇了Flash來展現人機交互。引入RIA技術,提高用戶的網絡操作體驗。
(2) 基于Java的后臺實現技術
網絡模擬器的核心功能由后臺處理程序完成,主要完成命令解析、命令處理、與前端通信等功能,因此選擇一種易使用、開發效率高、網絡處理能力強、XML處理能力強的語言是有必要的,最終我們選擇了Java。Java應用程序運行在異質的機器、異質的操作系統之上,通過TCP/IP進行信息的交流;Java應用程序之間既可以交換消息,也可以交換程序(如一個applet);Java的開源特性又為組件帶來更多的可選擇性,在對XML處理上,既可以選擇JDK自帶的處理包,也可以采用開源包,因此在一定程度上具有比較多的可選擇性。
(3) 基于XML的信息通信技術
在網絡設備模擬器的實現過程中,涉及到后端服務器和前端Flash通信的要求,也就是要求基于Java的應用要和基于Flash的應用通信,如何表示通信信息的約定是一個重要的問題,這個通信約定必須是被雙方認可并能識別,XML正是這樣一種信息表示載體。
XML(Extensible Markup Language,可擴展的標記語言)是一套定義語義標記的規則,這些標記將文檔分成許多部件并對這些部件加以標識。在網絡設備模擬器的通信約定中首先定義一系列通信協議,這些協議以XML形式表示,接受端在接收完通信協議后用XML解析器解析XML協議,這樣就能很好的識別各種情況。因此,XML在這里作為連通前端和后端的橋梁。
3.2 RIA技術
考慮到C/S架構在部署和更新方面的缺點,我們使用了B/S架構來搭建系統。但B/S架構的系統因受HTML的限制,無法像C/S那樣使用豐富的效果來展示數據,用戶體驗比較差。另外,網絡中斷將使B/S程序無法運行,因此需要有穩定的客戶端/服務器連接。網絡設備模擬器既需要有C/S那樣豐富的客戶端數據展現和穩定的系統功能,又需要有B/S強大的服務器端和使用、維護的方便快捷,RIA為我們找到了在客戶端和服務器端進行更好的平衡的方法。
RIA是集桌面應用程序的最佳用戶界面功能與Web應用程序的普遍采用和快速、低成本布署以及互動多媒體通信的實時快捷于一體的新一代網絡應用程序。RIA中的 Rich Client提供可承載已編譯客戶端應用程序的運行環境,客戶端應用程序使用異步客戶/服務器架構連接現有的后端應用服務器,這是一種安全、可升級、具有良好適應性的新的面向服務模型,這種模型由采用的Web服務所驅動。結合了聲音、視頻和實時對話的綜合通信技術使RIA具有前所未有的網上用戶體驗。

在實現RIA的各種技術中,我們選用基于Flash的RIA,因為系統有個非常復雜的用戶交戶,需要展現大量的圖形、圖像,以及要進行大量的矢量操作。FlashRIA在界面美觀程度、多媒體表現、開發便捷及很多開發細節上有很大的優勢。
4 結 語
采用B/S架構設計和開發網絡設備模擬器,可以把復雜的網絡設備操作命令和過程同時展現在多個客戶端,方
[CM(21*2]便網絡課程實踐教學,節省設備開支,有利于網絡實踐知[CM)]
識的普及。在模擬器的客戶端,采用RIA技術,構建了直觀、易用、反應迅速并可以脫機使用的,具有良好客戶體現的前端應用程序;在服務器端,開發了豐富的和可擴展的命令解析程序和指令庫,實現多種網絡產品的互連和通用,并使用RIA和XML實現前后端信息的異步交互,在保證信息傳送正確的前提下,在無刷新頁面之下提供快捷的界面響應時間,增強了用戶體驗。
本文創新點:在B/S架構下搭建網絡設備模擬器,可以方便用戶使用和進行管理;在開發實現過程中,利用RIA來改善系統的網絡性能,改善用戶的體驗;利用JAVA開發仿真引擎,集成多種網絡設備和產品,實現通用設備;系統在受限的網絡實踐教學或培訓中得到了很好的應用。
參 考 文 獻
[1]周林,謝峰.基于RIA架構的應用開發改進方案[J].微計算機信息,2007(6):221-223.
[2]陳再良,徐德智,陳學工,等.基于鏈式結構XML文檔的生成方法[J].計算機工程,2006,32(20):59-61.
[3]曹曉軍.虛擬機技術的應用研[J].甘肅廣播電視大學學報,2006(2):75-77.
[4]祝義,朱暉.基于虛擬機的虛擬實驗網絡[J].計算機與現代化,2004(4):87-89.
[5]肖漢.基于Java平臺的通用構件庫的研究與設計[J].計算機工程與設計,2006(15):2 737-2 743.
[6]周翔.關于當前若干主流網絡仿真軟件的綜述及實例應用分析\\[EB/OL\\].http://www.cisconet.cn.2006.
作者簡介 曾 雋 男,1971年出生,浙江龍游人,浙江省教育裝備與勤工儉學管理中心工程師。主要從事現代教育技術的研究。