国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Web的虛擬網(wǎng)絡(luò)實驗室的設(shè)計

2015-12-25 11:54任元超吳許俊董奇王巍
軟件 2015年7期

任元超++吳許俊++董奇++王巍

摘要:針對專業(yè)實驗室網(wǎng)絡(luò)設(shè)備的功能不足以及模擬器的使用限制,提出采用面向?qū)ο蟪绦蛟O(shè)計方法設(shè)計一個B/S結(jié)構(gòu)的虛擬網(wǎng)絡(luò)實驗室。本文分析了國內(nèi)外部分虛擬實驗室的典型案例和開發(fā)技術(shù),介紹了虛擬網(wǎng)絡(luò)實驗室的系統(tǒng)組成、體系架構(gòu)和PHP開發(fā)的關(guān)鍵技術(shù),闡述了IOU系統(tǒng)的的組件與工作原理,以及仿真實驗的操作流程。本系統(tǒng)實現(xiàn)了遠程開展虛擬網(wǎng)絡(luò)實驗的功能,具有一定的實際使用價值。

關(guān)鍵詞:虛擬化技術(shù);虛擬網(wǎng)絡(luò)實驗室;B/S結(jié)構(gòu);Web編程

中圖分類號:TP391.9

文獻標識碼:A

DOI:10.3969/j.issn.1003-6970.2015.07.006

0 引言

虛擬化(Virtualization)技術(shù)可以將宿主計算機的實體資源進行抽象、轉(zhuǎn)換后供多個邏輯表示,得到了廣泛應(yīng)用。使用Boson NetSim、Packet Trancer、Dynamips等模擬器已經(jīng)成為學(xué)生自主學(xué)習計算機網(wǎng)絡(luò)技術(shù)的常用手段,也是實驗室教學(xué)資源的有益補充。但是,模擬器也有很多局限,如不同模擬器的運行環(huán)境和操作方法差別較大,模擬較多虛擬設(shè)備時會導(dǎo)致宿主計算機性能降低,虛擬設(shè)備不支持遠程操作等。

虛擬實驗室(Virtual Laboratory)最早于1989年由美國的William Wulf教授提出,用來描述一個計算機網(wǎng)絡(luò)化的虛擬實驗室環(huán)境。虛擬實驗室本質(zhì)是一個在線實驗平臺。使用在線實驗平臺有助于突破傳統(tǒng)實驗教學(xué)模式進行創(chuàng)新,提升實驗教學(xué)水平和學(xué)生的實踐能力。虛擬實驗室的構(gòu)建技術(shù)已經(jīng)受到國內(nèi)外學(xué)者的廣泛關(guān)注和研究。

通過分析國內(nèi)外虛擬實驗室的典型案例和開發(fā)技術(shù),本文提出采用面向?qū)ο蟪绦蛟O(shè)計方法設(shè)計一個B/S結(jié)構(gòu)的虛擬網(wǎng)絡(luò)實驗系統(tǒng)。

1 相關(guān)研究

國外學(xué)者率先采用虛擬化技術(shù)成功構(gòu)建了很多虛擬實驗室。其中代表性的有,美國Gentral Florida大學(xué)的虛擬系統(tǒng)實驗室(Virtual Systems Laboratory,VSL)、UCB的MASH系統(tǒng)、MIT的微電子網(wǎng)絡(luò)實驗室(Microelectronics WebLab)、CMU的虛擬實驗室(Virtual Lab)、UNC的虛擬物理實驗室(Learn AnytimeAnywhere Physics,LAAP)以及德國JHU的虛擬工程與科學(xué)實驗室(Virtual Engineering/Science Laboratory)等。

近些年,國內(nèi)學(xué)者也對虛擬實驗室技術(shù)進行了大量實踐研究。文獻提出了使用VMware和Dynamips等仿真軟件搭建虛擬網(wǎng)絡(luò)實驗室的建設(shè)方案,方法簡單、成本低,究其本質(zhì)是在兩個不同的模擬器中分別開展各自的虛擬網(wǎng)絡(luò)實驗。文獻闡述了計算機網(wǎng)絡(luò)虛擬實驗室的系統(tǒng)結(jié)構(gòu)和主要模塊設(shè)計,使用C#語言開發(fā)實驗管理系統(tǒng),應(yīng)用Flash技術(shù)、VRML插件在網(wǎng)頁中演示不同的實驗?zāi)_本。文獻提出利用Matlab的數(shù)值分析及圖形處理功能,結(jié)合Web服務(wù)器技術(shù),開發(fā)了B/S結(jié)構(gòu)的遠程網(wǎng)絡(luò)虛擬實驗室系統(tǒng)。文獻從理論層面探討了B/S結(jié)構(gòu)的網(wǎng)絡(luò)虛擬實驗室的參考模型、網(wǎng)絡(luò)結(jié)構(gòu)、虛擬器件的建模等技術(shù)。文獻提出以LabVIEW為開發(fā)平臺,利用LabVIEW的網(wǎng)絡(luò)通信功能,構(gòu)建B/S或C/S混合模式的遠程虛擬實驗室,以實現(xiàn)軟件共享和硬件共享。

研究表明,虛擬實驗室大致可以分為兩類:仿真類虛擬實驗室和遠程操作類虛擬實驗室。構(gòu)建虛擬實驗室主要采用了虛擬化技術(shù)、自動控制技術(shù)、網(wǎng)絡(luò)通信技術(shù)和編程技術(shù)。

2 系統(tǒng)設(shè)計

2.1 設(shè)計方案

根據(jù)實現(xiàn)原理,虛擬網(wǎng)絡(luò)實驗室屬于仿真類虛擬實驗室。方案采用思科的虛擬化IOU技術(shù)結(jié)合Web編程技術(shù),構(gòu)建一個分布式環(huán)境下共享的虛擬網(wǎng)絡(luò)實驗室。系統(tǒng)體系采用B/S結(jié)構(gòu)的三層架構(gòu)設(shè)計,如圖1所示。

表示層使用PHP5編寫虛擬實驗室的網(wǎng)站程序和實驗管理,業(yè)務(wù)邏輯層使用IOU仿真服務(wù)器和Apache服務(wù)器分別實現(xiàn)系統(tǒng)的仿真控制功能和響應(yīng)HTTP請求命令,數(shù)據(jù)訪問層使用SQLite數(shù)據(jù)庫實現(xiàn)實驗數(shù)據(jù)的讀取或存儲。

用戶使用瀏覽器訪問虛擬網(wǎng)絡(luò)實驗室,設(shè)置網(wǎng)絡(luò)實驗的參數(shù)和拓撲結(jié)構(gòu)腳本,加載具備IOS特性的IOU軟件,自行啟動或關(guān)閉仿真實驗。用戶使用虛擬終端遠程操作虛擬網(wǎng)絡(luò)設(shè)備?;赪eb的虛擬網(wǎng)絡(luò)實驗室可以彌補實驗室網(wǎng)絡(luò)設(shè)備的性能不足,可以不受時間和地域的限制供學(xué)生自由使用。

2.2 系統(tǒng)構(gòu)成

基于Web的虛擬網(wǎng)絡(luò)實驗室主要有五個組成部分,系統(tǒng)組成結(jié)構(gòu)如圖2所示。

(1) Apache服務(wù)器:用于響應(yīng)瀏覽器端的命令請求。

(2)仿真服務(wù)器:用于運行IOU仿真軟件,處理實驗操作數(shù)據(jù)。

(3) SQLite數(shù)據(jù)庫:用于讀取或存儲實驗數(shù)據(jù)。

(4)(5)瀏覽器端:用于生成網(wǎng)絡(luò)實驗系統(tǒng)的人機對話界面。

(5)虛擬終端:用于遠程登錄虛擬網(wǎng)絡(luò)設(shè)備進行操作。

2.3 系統(tǒng)功能模塊

基于B/S結(jié)構(gòu)的虛擬網(wǎng)絡(luò)實驗室網(wǎng)站主要包括系統(tǒng)登錄、實驗管理、賬號管理、系統(tǒng)維護和數(shù)據(jù)備份等功能模塊,如圖3所示。

3 關(guān)鍵Web技術(shù)

PHP( Hypertext Preprocessor)是一種簡單、輕便的服務(wù)器端腳本語言。PHP5支持面向?qū)ο蟮某绦蛟O(shè)計方法。虛擬網(wǎng)絡(luò)實驗室網(wǎng)站采用PHP5設(shè)計腳本,應(yīng)用了Aj ax、iQuery、PDO、SQLite和IOU等關(guān)鍵技術(shù)。

3.1 Aj ax技術(shù)

Aj ax全稱為Asynchronous Javascript and XML(異步Javascript和XML),是一種支持異步請求、創(chuàng)建交互式網(wǎng)頁應(yīng)用的開發(fā)技術(shù)。Aj ax的核心是Javascript的XmlHttpRequest對象,該對象在IE5中開始支持。XmlHttpRequest對象使用Javascript向服務(wù)器發(fā)送異步請求,從服務(wù)器獲得數(shù)據(jù),然后用Javascript來操作DOM (Document Object Model)更新頁面。通過在后臺與服務(wù)器進行少量數(shù)據(jù)交換,AJAX可以使網(wǎng)頁的局部內(nèi)容實現(xiàn)異步更新。例如本項目中,在PHP網(wǎng)頁中實現(xiàn)異步提交表單信息,通過調(diào)用aj ax.php中腳本實現(xiàn),代碼如下所示:

3.2 iQuery技術(shù)

iQuery是一個開源的小型JavaScript庫。iQuery兼容CSS3,兼容多種瀏覽器,使用戶能夠方便地處理HTML、events、制作動畫效果和AJAX交互。iQuery能夠?qū)崿F(xiàn)頁面中JavaScript代碼和html內(nèi)容的分離,通過調(diào)用iQuery庫定義的方法ID或API。頁面中可以本地調(diào)用從官網(wǎng)下載的iQuery庫,也可以遠程調(diào)用CDN(Content Delivery Network,內(nèi)容分發(fā)網(wǎng)絡(luò))服務(wù)器上的iQuery庫,后者可以提高因特網(wǎng)用戶訪問網(wǎng)站的響應(yīng)速度。使用HTML5重構(gòu)的頁面可省略掉type=”text/javascript”。例如本項目中,使用iQuery庫提示用戶端瀏覽器版本,代碼如下所示:

3.3 SQLite技術(shù)

SQLite是一個開源的輕量型、嵌入式、關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。它占用較少的系統(tǒng)資源,適合在嵌入式設(shè)備中運行。同時能夠支持Windows、Linux、Unix等操作系統(tǒng),能夠支持Tcl、C#、PHP、Java等編程語言,帶有ODBC接口,處理速度比Mysql和PostgreSQL都快。SQLite最新版本是SQLite 3。例如本項目中,使用devices表存儲所有實驗中的虛擬網(wǎng)絡(luò)設(shè)備的信息,查詢結(jié)果如下所示:

sqlite> select * from devices;

3.4 PDO技術(shù)

PDO全稱是PHP Data Objects(PHP數(shù)據(jù)對象),是PHP擴展的訪問數(shù)據(jù)庫的兼容性接口。PDO擴展提供了一個數(shù)據(jù)訪問抽象層,支持多種數(shù)據(jù)庫,通過調(diào)用一致的函數(shù)執(zhí)行查詢和獲取數(shù)據(jù)。PDO擴展本身不能執(zhí)行數(shù)據(jù)庫操作,需要使用一個針對特定數(shù)據(jù)庫的PDO驅(qū)動(database-specific PDO driver)訪問數(shù)據(jù)庫服務(wù)器。PDO在PHP5.1后續(xù)版本中支持,PDO需要在PHP編譯時與特定數(shù)據(jù)庫驅(qū)動一起構(gòu)建為共享擴展,并讓PHP運行時自動加載。例如本項目中,在PHP網(wǎng)頁中使用PDO初始化SQLite數(shù)據(jù)庫,部分代碼如下所示:

try{

$db=new PDO(SQLite:/data/db.sdb);

$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$query=‘CREATE TABLE bin (bin_fa TEXT PRIMARY KEY, bin_name TEXT);';

$statement= $db->prepare($query);

$statement->execute();

} catch (PDOException $e){

error_log(DB: error "'.$e->getMessage()."' (query was….$query.…,);

return false; }

}

3.5 IOU技術(shù)

IOU全稱是IOS On Unix,是在Unix環(huán)境下以用戶模式運行Cisco互聯(lián)網(wǎng)操作系統(tǒng)IOS( Internet OperatingSystem)的仿真程序。IOU早期只在Solaris (SPARC)平臺運行,現(xiàn)在可以在Linux環(huán)境運行。根據(jù)功能特性,IOU有多種軟件版本,虛擬設(shè)備可以模擬真實思科網(wǎng)絡(luò)設(shè)備的功能,甚至可以與GNS3、eNSP仿真實驗中的虛擬設(shè)備進行互聯(lián)。相比其它網(wǎng)絡(luò)模擬器,它的優(yōu)勢顯著,一是運行時占用較少的宿主機系統(tǒng)資源,虛擬設(shè)備數(shù)量沒有嚴格限制,二是支持網(wǎng)卡橋接技術(shù)使得用戶可以使用宿主機的端口號遠程登錄虛擬設(shè)備。

在本系統(tǒng)中,使用IOU管理控制程序Wrapper-linux管理IOU程序的啟動或停止。使用Shell腳本可以一次性啟動多個IOU程序,模擬多個虛擬網(wǎng)絡(luò)設(shè)備,并通過指定啟動參數(shù)來設(shè)置虛擬網(wǎng)絡(luò)設(shè)備的具體狀態(tài),如運行內(nèi)存大小、遠程管理端口號等。例如以用戶模式啟動一個虛擬路由器,設(shè)置Ethernet模塊數(shù)為4,Serial模塊為4,默認內(nèi)存為128M,路由器的進程名為1,Telnet端口為2000,代碼如下所示。

./wrapper-linux -m ./i86bi_linux-adventerprisek9-ms-p 2000-- -e 4-S 4 1

4 仿真實驗的基本原理

4.1 基本服務(wù)組件及其功能

基本服務(wù)組件主要為Iourc、IOS管理器、Wrapper-linux、NETMAP和SQLite。Iourc程序負責錄入系統(tǒng)注冊的License信息,否則系統(tǒng)無法正常運行。IOS管理器負責管理IOU程序。Wrapper-linux為IOU管理控制程序。NETMAP文件是根據(jù)用戶實驗設(shè)置生成的網(wǎng)絡(luò)拓撲鏡像文件,內(nèi)容具有特殊的格式,臨時存儲實驗運行時的網(wǎng)絡(luò)拓撲結(jié)構(gòu)信息。SQLite數(shù)據(jù)庫用于存取系統(tǒng)配置信息和用戶設(shè)置的所有實驗數(shù)據(jù)。各服務(wù)組件與仿真實驗之間的關(guān)系如圖4所示。

4.2 用戶操作流程

用戶通過Web方式登錄虛擬網(wǎng)絡(luò)實驗室,根據(jù)管理員與非管理員的身份差別被賦予不同的操作權(quán)限。假設(shè)以非管理員身份登錄本系統(tǒng),開展虛擬網(wǎng)絡(luò)實驗,用戶操作流程如圖5所示。

5 結(jié)束語

本項目組在對現(xiàn)有虛擬實驗室的典型案例和開發(fā)技術(shù)進行分析、比較的基礎(chǔ)上,詳細介紹了虛擬網(wǎng)絡(luò)實驗室的組成結(jié)構(gòu)和體系結(jié)構(gòu)以及PHP開發(fā)使用的關(guān)鍵技術(shù)。B/S結(jié)構(gòu)的虛擬網(wǎng)絡(luò)實驗室實現(xiàn)了遠程開展思科網(wǎng)絡(luò)實驗的功能,具有一定的實際使用價值。

同德县| 通城县| 黎平县| 轮台县| 含山县| 肇东市| 天镇县| 江油市| 临沂市| 乌兰县| 江陵县| 洛扎县| 庆云县| 乐至县| 孝义市| 龙游县| 岳阳市| 小金县| 渭南市| 张掖市| 抚宁县| 鸡泽县| 潼关县| 巴中市| 兰考县| 瑞金市| 同心县| 淮滨县| 甘南县| 彭阳县| 临海市| 来宾市| 偏关县| 余庆县| 绍兴县| 乌鲁木齐县| 武平县| 蒙自县| 永善县| 元阳县| 万宁市|