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

?

基于Docker 的在線虛擬仿真實驗容器系統(tǒng)設計與應用實踐

2019-07-25 08:03陶銘曲超
現(xiàn)代計算機 2019年17期
關鍵詞:工單管理員容器

陶銘,曲超

(東莞理工學院計算機科學與技術學院,東莞523808)

0 引言

“新工科”建設背景下,需要培養(yǎng)復合型人才和創(chuàng)新性人才,這就需要培養(yǎng)學生將所學理論知識應用于實踐的能力,以及將所學的專業(yè)知識創(chuàng)造性地應用于新的領域或跨多重領域,進行研發(fā)或創(chuàng)新的能力[1]。因此,實驗教學成為培養(yǎng)學生這些能力的重要環(huán)節(jié)。然而,現(xiàn)有的實驗教學模式受到場地、設備及師資等多方面的影響,嚴重制約著實驗教學水平的提升以及學生實踐能力的培養(yǎng)。

近年來,逐步發(fā)展起來的虛擬仿真實驗作為物理實驗的一種替代技術,以其低成本等特點,已被廣泛應用于實驗教學,且被證明是應用信息技術解決高校實驗教學環(huán)節(jié)中存在問題的可行途徑。然而,目前虛擬仿真實驗的開發(fā)利用相對比較初步,研究重點主要集中于實驗功能的實現(xiàn),往往僅局限于物理實驗的替代,而極少地進一步發(fā)揮其信息處理能力,并且在擴展能力和集成能力等方面存在嚴重的不足,如:缺乏遠程訪問和并發(fā)服務能力。虛擬仿真軟件往往是一個純客戶端軟件,可以在單機上運行,實驗人員往往需要分別下載并各自運行。既不能運程訪問,也不具備并發(fā)服務能力,難以同其他軟件進行直接交互,無法直接進行在線實驗[2]。

為此,為更充分地發(fā)揮虛擬仿真實驗的優(yōu)勢,更好地培養(yǎng)學生實踐創(chuàng)新的能力,以及提升學生“學以致用”的水平,本文基于輕量級的操作系統(tǒng)虛擬化解決方案Docker[3],設計并實現(xiàn)了一種在線虛擬仿真實驗容器系統(tǒng)。系統(tǒng)實現(xiàn)了后臺服務器系統(tǒng)、資源服務器、客戶端、管理員等功能模塊,旨在通過圖形化界面,結合Docker 的相關指令以及其他輔助功能,降低用戶使用容器過程中的門檻,提高用戶進行在線虛擬仿真實驗的便捷性。

1 系統(tǒng)功能需求分析

本系統(tǒng)的用戶有兩種:普通用戶和管理員。普通用戶的主要功能包括兩大模塊:容器和工單。容器模塊包括申請、管理及使用,用例圖如圖1 所示。用戶申請容器通過填寫并提交表單來執(zhí)行。用戶對容器的管理包括開啟、關閉及刪除。用戶對容器的使用分為容器內的文件操作、服務管理。容器內的文件操作包括在容器中上傳、創(chuàng)建、刪除、重命名、移動、復制文件以及新建、刪除文件夾;服務管理中的“服務”指的是Linux 命令,Linux 命令保存為服務后,點擊執(zhí)行可以在容器內執(zhí)行該命令,對容器外的環(huán)境沒有影響。服務管理還包括修改服務、刪除服務、添加默認服務。

圖1 容器模塊用例圖

工單模塊包括了創(chuàng)建、回復、查看、搜索、關閉,用例圖如圖2 所示。工單是作為用戶和管理員交流溝通的重要途徑。用戶填寫工單后,管理員能夠接收到用戶發(fā)出的消息,進而回復并跟進用戶提出的問題,用戶也能在工單中與管理員繼續(xù)反饋。關閉工單功能是給用戶在認為已經解決問題后,手動將工單狀態(tài)設置為關閉。

圖2 (普通用戶)工單模塊用例圖

管理員的主要功能包括以下模塊:用戶、控制臺、容器、工單。用戶模塊包括顯示用戶信息列表、顯示用戶操作記錄,用例圖如圖3 所示。用戶信息列表中是用戶的基本信息,包括其學號、用戶名等。用戶操作記錄指用戶登錄、申請容器、使用容器、創(chuàng)建工單、回復工單等操作。用戶在進行這些操作時會被系統(tǒng)記錄,并形成日志文件便于分析。

圖3 管理員端用戶模塊用例圖

控制臺模塊包括顯示當前用戶數(shù)、顯示當前容器數(shù)、顯示當前未讀消息數(shù)、顯示當前資源服務器的CPU及內存占用情況、定時處理過期容器,用例圖如圖4 所示。未讀消息指的是未查看的工單回復,若是剛創(chuàng)建的工單,工單內的第一條消息也被認為是未讀消息。

圖4 控制臺模塊用例圖

管理員端容器模塊包括顯示容器列表、顯示容器詳情、容器管理、容器信息統(tǒng)計,用例圖如圖5 所示。容器管理包括開啟、關閉、刪除。容器信息統(tǒng)計是從容器創(chuàng)建日期分布、已開啟容器數(shù)量、鏡像使用分布這些角度進行統(tǒng)計。

圖5 管理員端容器模塊用例圖

管理員端工單模塊包括查看工單列表、新建工單、查看工單詳情、回復工單,用例圖如圖6 所示。工單列表能夠突出顯示有未讀消息的工單,表現(xiàn)為該工單標題后有個帶數(shù)字的徽章,徽章內數(shù)字表示當前未讀消息的數(shù)量。

圖6 管理員端工單模塊用例圖

2 系統(tǒng)設計

2.1 系統(tǒng)體系結構設計

本系統(tǒng)在體系結構上分為三部分:界面表示層、業(yè)務邏輯層以及數(shù)據(jù)與資源層[4],如圖7 所示??蛻舳撕凸芾韱T端為界面表示層,為普通用戶和管理員展示所需要的界面,并顯示從后臺獲取的數(shù)據(jù);后臺服務器系統(tǒng)屬于業(yè)務邏輯層,作為一個中間層,既負責為客戶端和管理員端提供必要數(shù)據(jù)和業(yè)務邏輯,又負責管理數(shù)據(jù)與資源層;數(shù)據(jù)與資源層有資源服務器和數(shù)據(jù)庫,其中,資源服務器是安裝有Docker 的Linux 宿主機。

圖7 系統(tǒng)體系結構示意圖

2.2 系統(tǒng)功能設計

基于上述對普通用戶及管理員的功能需求分析,將分別展示申請容器、開啟容器、上傳文件、復制文件及添加自定義服務的功能時序圖。其他的功能在流程上與上述功能有相似之處。

申請容器是根據(jù)收集填寫的信息并創(chuàng)建容器,其功能時序圖如圖8 所示。

開啟容器操作除了在資源服務器中開啟容器外,還會收集容器的相關信息,其功能時序圖如圖9 所示,操作流程如圖10 所示。關閉容器和刪除容器與其類似,只是少了向資源服務器查詢容器信息的步驟。

圖8 申請容器功能時序圖

圖9 開啟容器功能時序圖

圖10 開啟容器的流程圖

添加自定義服務的功能時序圖如圖11 所示。編輯服務、刪除服務在流程上與其類似。而添加默認服務與其不同點在于服務的信息是通過檢索數(shù)據(jù)庫獲得。

圖11 添加自定義服務功能時序圖

3 系統(tǒng)實現(xiàn)及應用

本系統(tǒng)的實現(xiàn)基于ThinkPHP 框架,遵循MVC 架構,采用HTML、CSS、jQuery、PHP 等進行開發(fā)[5],如圖12 所示。具體地,前端采用HTML 語言顯示基本內容,使用CSS 對頁面進行格式排版,使用ThinkPHP 框架的View 視圖層進行封裝;業(yè)務處理采用ThinkPHP框架的Controller 控制器,在對客戶請求進行處理時,調用相應的業(yè)務邏輯層函數(shù)完成相應的功能;采用ThinkPHP 框架的數(shù)據(jù)庫擴展功能實現(xiàn)MySQL 數(shù)據(jù)庫的連接,并采用ThinkPHP 框架的Model 數(shù)據(jù)模型層實現(xiàn)PHP 代碼與MySQL 數(shù)據(jù)庫表連接,以面向對象的方式處理數(shù)據(jù)庫。本文以《Web 前端開發(fā)實踐》課程中搭建一個基于Apache 的Web 服務器為例,介紹Docker容器的應用效果。

圖12 系統(tǒng)實現(xiàn)架構示意圖

3.1 申請容器

用戶填寫相應信息,選擇鏡像、資源文件夾大小、開放端口,程序判斷無誤后即可創(chuàng)建容器。用戶可選擇的連接容器使用AJAX 異步查詢并顯示。收到用戶的申請后,后臺先根據(jù)用戶填寫的需求拼接Docker 操作命令,然后再交由DockerHelper 類執(zhí)行[6]。若在創(chuàng)建容器時選擇了需要資源文件夾,則需要在資源服務器上分配所選容量的文件夾給用戶使用。本系統(tǒng)使用磁盤配額技術限制該文件夾的大小。申請容器的功能界面如圖13 所示,主要代碼實現(xiàn)如下所示。

圖13 申請容器

//通過數(shù)據(jù)庫,生成一個資源文件夾id

if(isset($resSize)&&$resSize!==""&&$resSize!==0){

$res=new Res();

……

$res->data($info);

$res->save();

$res=Res::get($info);

$resId=$res->id;

}else{

$resSize=0;

$resId=-1;

}

//解析要連接容器,并產生真正的容器名

if($linkChoice!==""&&$linkChoice!=="(無)"&&$link-Choice!=="(無)"){

$linkChoice=$account.'-'.$linkChoice;

}else{

$linkChoice="";

}

$helper=$this->getDockerHelper();

//執(zhí)行Docker 中的創(chuàng)建容器命令

$result=$helper->createContainer($account,$imageName,

$cname,$linkChoice,$resSize,$resId,$cportList)->getData();

3.2 容器管理

容器開啟時將連接資源服務器并作如下操作:①查看其端口映射情況,更新數(shù)據(jù)并顯示;②查看硬盤占用情況;③獲取容器默認目錄下的文件。容器管理功能界面如圖14 所示。

圖14 容器管理

4 結語

本文應對在線虛擬仿真實驗在提升學生實踐創(chuàng)新能力方面存在的不足,設計并實現(xiàn)了一種基于Docker的在線虛擬仿真實驗容器系統(tǒng)。該系統(tǒng)實現(xiàn)了后臺服務器系統(tǒng)、資源服務器、客戶端、管理員等功能模塊。在實際的實踐教學環(huán)節(jié)應用過程中,該系統(tǒng)通過圖形化界面,結合Docker 的相關指令及其他輔助功能,可降低用戶使用容器過程中的門檻,提高用戶進行在線虛擬仿真實驗的便捷性,體現(xiàn)出良好的應用效果,在深化信息技術與教育教學的融合發(fā)展中具有明顯的積極意義。

猜你喜歡
工單管理員容器
高職院校計算機類專業(yè)“工單制”教學的研究與探索
基于RPA技術的機器人在配網調度工單發(fā)布工作中的應用
可疑的管理員
難以置信的事情
基于分布式數(shù)據(jù)庫Cedar的高效工單管理系統(tǒng)設計與實現(xiàn)
人工智能新探索 打造銀行智能工單
液體對容器底及容器對桌面的壓力和壓強
讓管理員管不了的名字
取米
當小小圖書管理員
奉化市| 邢台市| 循化| 白水县| 呼图壁县| 通海县| 泗洪县| 铜梁县| 肥乡县| 岳普湖县| 尚志市| 尤溪县| 崇仁县| 长岛县| 荆门市| 菏泽市| 白玉县| 鹤山市| 蚌埠市| 闽清县| 丰台区| 玛曲县| 綦江县| 上饶县| 和田市| 衡阳市| 扶余县| 于田县| 敦化市| 重庆市| 图片| 德清县| 商丘市| 若羌县| 乐亭县| 新沂市| 安陆市| 石城县| 平阳县| 青龙| 天峨县|