李琨 賈立偉 石曉明
摘要:為了解決目前醫(yī)學(xué)高專院校醫(yī)學(xué)專業(yè)課學(xué)習(xí)中存在的問題,該文結(jié)合“互聯(lián)網(wǎng)+教育”的教育模式理念,基于Yii2框架創(chuàng)建滿足醫(yī)學(xué)生學(xué)習(xí)需求的《正常人體功能》課程教育云平臺,為積極探索“互聯(lián)網(wǎng)+教育”模式的實踐之路提供技術(shù)支持。
關(guān)鍵詞:Yii2框架;正常人體功能;校園私有云
中圖分類號:TP391.9 文獻標(biāo)識碼:A
文章編號:1009-3044(2019)08-0051-03
1引言
由于醫(yī)專院校專業(yè)課的學(xué)習(xí)普遍存在著時間緊、任務(wù)重、實驗器材不足等問題,致使教學(xué)和學(xué)習(xí)效果難以達到“高水平醫(yī)學(xué)技能型人才”的培養(yǎng)目標(biāo)[1]。隨著云計算、虛擬現(xiàn)實等計算機技術(shù)的發(fā)展和應(yīng)用,為信息技術(shù)與教學(xué)模式的深度融合提供了技術(shù)支持,為實現(xiàn)“互聯(lián)網(wǎng)+教育”模式的廣泛應(yīng)用提供了可行的解決方法。
近些年來,我國在教育云方面的研究與探索也在積極地實踐著,但適用于醫(yī)學(xué)專業(yè)學(xué)生學(xué)習(xí)的教育云平臺產(chǎn)品比較少。因此,本文結(jié)合“互聯(lián)網(wǎng)+教育”的教育模式理念,基于Yii2框架創(chuàng)建滿足醫(yī)學(xué)專業(yè)學(xué)生需求的《正常人體功能》課程教育云平臺。
2 Yii2框架概述
目前使用PHP語言開發(fā)Web應(yīng)用的主流開源框架有Laravel、Yii等。Yii框架相比于其他框架來說,具有更加高效、簡單的開發(fā)流程。它是一個高性能、安全、專業(yè)的全棧開源Web開發(fā)框架,可以用于快速開發(fā)各種使用PHP語言構(gòu)建的中大型Web應(yīng)用。
Yii框架實現(xiàn)了MVC設(shè)計模式,每個應(yīng)用都通過唯一的一個入口腳本web/index.php文件接受Web 請求并創(chuàng)建控制器實例,該控制器實例創(chuàng)建相應(yīng)的動作實例,在該請求通過系統(tǒng)驗證之后,則執(zhí)行該動作實例。該動作實例再執(zhí)行過程中會加載相應(yīng)的數(shù)據(jù)模型并渲染相應(yīng)的視圖組件返回給相應(yīng)的請求用戶。Yii當(dāng)前包括1.1和2.0這兩個版本,本文采用2.0版本中的basic版本作為系統(tǒng)的開發(fā)框架。
3基于Yii2框架的正常人體功能課程教育云平臺的設(shè)計
3.1教育云平臺的基本需求
1)系統(tǒng)中擁有DBA、教師、學(xué)生三類用戶。系統(tǒng)管理員是擁有最高操作權(quán)限的教師,可對數(shù)據(jù)庫中的所有表進行CRUD操作。
2)教師用戶擁有對開課學(xué)生信息和所開設(shè)的課程所有管理權(quán)限,如開課學(xué)生信息的CRUD操作、設(shè)置課程章節(jié)、發(fā)布課程章節(jié)教學(xué)視頻和資源、回復(fù)學(xué)生提問、發(fā)送通知等功能。
3)學(xué)生用戶除了可以學(xué)習(xí)課程內(nèi)容以外,還擁有教學(xué)資源下載、收藏課程、發(fā)表課程評論和提問的權(quán)限。
4)由DBA承擔(dān)此評論或問題審核功能任務(wù)。學(xué)生對課程發(fā)表的評論或問題先通過審核后才能發(fā)布。
3.2 教育云平臺的功能模塊設(shè)計
根據(jù)需求分析和對系統(tǒng)的整體設(shè)計,該教育平臺主要可分為用戶和權(quán)限管理、課程管理、評論/提問管理以及通知管理四個功能模塊(如圖1所示)。
1) 用戶管理模塊包括DBA信息管理、教師信息管理、學(xué)生信息管理和用戶權(quán)限管理四個子模塊。其中權(quán)限管理模塊使用Yii2框架自身提供的基于角色的權(quán)限管理模塊,通過給三類用戶分配不同的操作角色來獲得相應(yīng)的操作權(quán)限。
2) 課程管理模塊包括課程信息管理、課程章節(jié)管理、選課信息管理、開課信息管理以及課程資源管理等子模塊。其中課程章節(jié)管理模塊除可以對課程章節(jié)的組織結(jié)構(gòu)進行管理以外,還包括在線學(xué)習(xí)視頻或三維圖形文件的CRUD操作。
3) 評論/提問管理模塊包括評論/問題管理以及評論/問題回復(fù)管理兩個管理子模塊。其中DBA可對學(xué)生提交的課程問題或評論進行審核;而評論/問題回復(fù)管理是對教師針對評論/問題回復(fù)信息的管理。
4) 通知管理模塊的主要功能是對教師所發(fā)布的通知進行集中管理的子模塊,用以實施通知信息的CRUD操作。
3.3教育云平臺的概念模型和邏輯模型設(shè)計
根據(jù)需求分析和功能模塊的設(shè)計結(jié)果設(shè)計教育云平臺的概念模型(如圖2所示)。由于Yii2框架提供了基于角色的存取控制機制,只需配置參數(shù)后進行數(shù)據(jù)庫的數(shù)據(jù)遷移即可自動生成權(quán)限管理的關(guān)系模型。根據(jù)教育云平臺的概念模型,將其轉(zhuǎn)換為對應(yīng)的關(guān)系邏輯模型。本系統(tǒng)的關(guān)系邏輯模型設(shè)計如下(此處僅列出關(guān)鍵屬性):
l學(xué)生(學(xué)生ID,姓名,密碼,Email,添加時間,…)
l教師(教師ID,姓名,密碼,職稱,Email,添加時間,部門ID,…)
l課程(課程ID,課程名,課程信息,…)
l部門(部門ID,名稱,描述,…)
l教學(xué)資源(資源ID,名稱,存放地址,…,課程ID)
l章節(jié)(章節(jié)ID,名稱,…,課程ID)
l媒體(媒體ID,名稱,存放地址,…,章節(jié)ID)
l角色權(quán)限(角色權(quán)限名,類型,描述,…)
l授權(quán)(角色權(quán)限名,用戶ID,創(chuàng)建時間,…)
l通知(通知ID,學(xué)生ID,教師ID,通知內(nèi)容,是否已讀,…)
l評論(評論ID,學(xué)生ID,課程ID,評論內(nèi)容,是否審核,…)
l選課(學(xué)生ID,課程ID,選課時間,…)
l收藏(學(xué)生ID,課程ID,收藏時間,…)
l講授(課程ID,教師ID,開課時間,…)
l提問(問題ID,學(xué)生ID,課程ID,教師ID,是否審核,問題內(nèi)容,回復(fù)內(nèi)容,…)
4 《正常人體功能》課程在教育云平臺中的部署
4.1 WebGL技術(shù)在《正常人體功能》課程中的應(yīng)用
由于各課程大部分都采用章節(jié)教學(xué)視頻的方式來組織,故在進行數(shù)據(jù)庫設(shè)計時,在“媒體”關(guān)系模式中僅使用“播放地址”字段來指明某一章節(jié)教學(xué)視頻所存放的位置??墒菍τ凇墩H梭w功能》這門課程來說,除了可以使用視頻來組織教學(xué)以外,還可使用WebGL技術(shù)[2]所創(chuàng)建的三維人體虛擬模型進行教學(xué),但此類教學(xué)資源需要用到3D模型文件、材質(zhì)文件和貼圖文件三類文件。所以為處理一個字段指明三類文件存放位置的問題,本平臺在該類教學(xué)資源文件上傳時,自動按章節(jié)將這三類文件存放在同一個目錄中,并使用同一主文件名命名,利用文件擴展名區(qū)分各文件。在后臺數(shù)據(jù)庫中,“媒體”關(guān)系模式的“播放地址”字段存放的是3D模型文件的位置地址,瀏覽器在對模型文件渲染時首先找到對應(yīng)的3D模型文件,再在該文件所在的目錄中,根據(jù)文件名搜索其他兩類文件,找到后完成3D模型文件在網(wǎng)頁端的渲染顯示任務(wù)。由于在網(wǎng)頁端顯示視頻和3D模型文件這兩類教學(xué)資源的方式不同,故前臺課程學(xué)習(xí)頁面要根據(jù)相應(yīng)的文件資源類型進行判斷。若文件類型是教學(xué)視頻資源文件,則可利用播放器插件直接讀取視頻資源,否則按上述渲染三維虛擬人體模型的方法在網(wǎng)頁中顯示。
4.2 《正常人體功能》課程在教育云平臺中的部署應(yīng)用
此外,該教育平臺是部署在基于OpenStack框架實現(xiàn)的私有云平臺上的實例,為減輕重裝系統(tǒng)給DBA所造成的麻煩。在該教育平臺在部署上線之前,先為其制作操作系統(tǒng)環(huán)境鏡像。本實例采用CentOS-7-x86_64-Minimal版操作系統(tǒng)、Apache服務(wù)器和Mariadb數(shù)據(jù)庫的LAMP組合方案制作系統(tǒng)環(huán)境鏡像。其手動制作系統(tǒng)鏡像步驟如下:
1)下載CentOS-7-x86_64-Minimal鏡像文件到OpenStack控制器節(jié)點中。
2)使用qemu-img命令創(chuàng)建一個格式為qcow2的空鏡像文件。
3)使用virt-install命令并使用CentOS-7-x86_64-Minimal鏡像文件啟動虛擬機安裝,通過設(shè)置name、disk、network、os-type、location等參數(shù)指明虛擬機系統(tǒng)名、磁盤類型、虛擬機網(wǎng)絡(luò)、操作系統(tǒng)類型和CentOS-7-x86_64-Minimal.iso鏡像文件位置。
4)按照CentOS操作系統(tǒng)的安裝步驟依次完成網(wǎng)絡(luò)服務(wù)配置、默認的LVM分區(qū)設(shè)置、root用戶密碼設(shè)置等內(nèi)容,待系統(tǒng)安裝完成后重啟系統(tǒng)。在重啟之后,在OpenStack控制器節(jié)點中運行virsh命令彈出磁盤鏡像并再次重啟系統(tǒng)。
5)為了使OpenStack管理程序能夠重啟或關(guān)閉實例,需在鏡像主機中安裝acpid服務(wù)并設(shè)置開機自啟動。
6)一個實例在啟動時必須與元數(shù)據(jù)進行交互才能啟動執(zhí)行多個任務(wù)(比如實例需要獲取ssh公鑰和用戶的數(shù)據(jù)腳本),因此需要在鏡像主機中安裝cloud-init服務(wù)。
7)安裝cloud-utils-growpart軟件包以使得root分區(qū)可以調(diào)整到合適的大小。
8)為了使實例能夠訪問元數(shù)據(jù)服務(wù),鏡像主機必須使用“echo "NOZEROCONF=yes" >> /etc/sysconfig/network”命令禁用zeroconf路由,并將網(wǎng)卡設(shè)置為開機自啟和動態(tài)分配IP地址。
9)為了能夠讓nova console-log命令在CentOS7上正常工作,需要在鏡像主機上編輯/etc/default/grub文件,并對GRUB_CMDLINE_LINUX選項進行配置,然后運行“grub2-mkconfig -o /boot/grub2/grub.cfg”命令保存更改。
10)在鏡像主機中使用virt-sysprep程序刪除MAC地址引用,以保證每次鏡像啟動時,虛擬網(wǎng)卡都具有不同的MAC地址。
11)在鏡像主機中安裝httpd服務(wù)、mariadb服務(wù)器、php環(huán)境并設(shè)置它們開機自啟,設(shè)置防火墻開啟22、80端口并關(guān)閉selinux設(shè)置。
12)在取消定義libvirt域并關(guān)閉系統(tǒng)之后,使用virt-sparsify命令對鏡像文件進行壓縮后,即可將該鏡像上傳至glance服務(wù)的鏡像服務(wù)中使用。
在系統(tǒng)環(huán)境鏡像制作完成之后,使用該活動鏡像創(chuàng)建虛擬機實例。使用FileZilla客戶端通過22端口連接到虛擬機實例中,將教育平臺上傳至/var/www/html文件夾下并設(shè)置項目文件夾的使用權(quán)限,隨后在mariadb服務(wù)器中導(dǎo)入數(shù)據(jù)庫定義文件,即可完成教育云平臺在私有云平臺上的部署。
5總結(jié)
本項目基于Yii2的PHP開發(fā)框架創(chuàng)建滿足醫(yī)專院校學(xué)生學(xué)習(xí)需求的《正常人體功能》課程教育云平臺,該平臺是一套集備課、授課、資源分享、三維人體仿真于一體的教育云平臺。目前該平臺仍屬實驗階段,待后期硬件設(shè)備采購?fù)瓿芍?,再將其進行大規(guī)模部署,真正實現(xiàn)線上、線下雙學(xué)習(xí)的“互聯(lián)網(wǎng)+教育”教育模式。
參考文獻:
[1] 李琨, 賈立偉, 賈福運. “互聯(lián)網(wǎng)+”時代下Web3D技術(shù)給醫(yī)學(xué)高職高專教學(xué)改革帶來的機遇與挑戰(zhàn)[J]. 甘肅科技, 2017(20):48-50.
[2] 李琨, 賈立偉, 石曉明. 基于WebGL技術(shù)的醫(yī)學(xué)虛擬實驗室的設(shè)計與實現(xiàn)[J]. 電腦知識與技術(shù), 2017(23).
【通聯(lián)編輯:光文玲】