蔡麗霞
一種開源的網絡教學平臺
蔡麗霞
選擇良好的體系結構對于網絡教學平臺系統的開發、維護和擴展具有重要的意義。深入研究了Struts、Spring、Hibernate的開源框架,在此基礎上整合基于AJAX技術的DWR框架,采用UML建模的方法,實現了各個功能模塊的設計與開發,重點論述了在線課堂模塊和平臺管理模塊的實現,最后,針對系統中可能出現的性能問題進行技術優化。
網絡教學平臺;SSH;RBAC;上傳下載
如何利用高校已經建好的軟、硬件設施去更廣泛,更深層次的服務于教學,建立一個適合高校自身發展的網絡教學平臺是值得探討的問題。在高校較廣范圍內實現網絡輔助教學,應選擇一個易于使用、穩定性高的開發框架。本文以河南工業工業職業技術學院網絡教學平臺為例,闡述以開SSH框架構建[1,2],如何設計與實現一個開源架構的教學平臺,并對其中的關鍵技術進行了較為深入的探討。
1.1 平臺功能模塊設計
目前河南工業職業技術學院的網絡教學平臺主要為以下4個模塊:在線課堂模塊、教學資源管理模塊、學習交流模塊以及系統管理模塊組成,如下圖1所示:

圖1 網絡教學平臺功能模塊
當用戶注冊后為用戶分配權限;再次登錄時,系統識別登錄信息,用戶根據分配的權限進行相應的操作;實現在線課堂功能,教師可以制作網絡課程內容,學生可以瀏覽、搜索、查詢課程內容,查詢課程教師信息;實現教學資源管理,管理員用戶可以查詢、修改和刪除所有的教學資源,教師可以上傳、修改和刪除自己編輯的教學資源,下載和查詢其它的教學資源,學生可以查詢和下載自己需要的教學資源;實現網上交流,登錄的學生和教師以及學生和學生之間可以實時和非實時的交流;實現系統管理、幫助等功能。
1.2 平臺網絡架構
網絡教學平臺是應用在Internet環境下的系統,因此要在已有的校園網基礎上,根據學院的實際應用需求,結合未來一定時期的發展需求,綜合考慮、科學的制定網絡建設方案,以保證系統的穩定運行。
目前,河南工業職業技術學院的校園網為千兆以太主干網,百兆到桌面的網絡系統,基本可以滿足系統的需求。服務器端系統由中心數據服務器、應用數據服務器、目錄服務器、基礎架構應用服務器、應用系統應用服務器以及其它設備構成。
1.3 平臺開發工具與環境
開發企業級的應用軟件成本比較高,可以選擇一些成熟的開源軟件,解決高成本的問題。河南工業職業技術學院的網絡教學平臺采用目前比較成熟流行的基于SSH框架J2EE[3]的B/S的解決方案,學生可以通過瀏覽器來進行網絡課程的學習,教師和管理員同樣可以使用該方式來應用和管理此系統。
采用Eclipse+Tomcat+MySQL的開發環境和工具,除T omcat外都是著名的開源軟件。
1.4 平臺數據庫的設計
網絡教學平臺的4個功能模塊,每一個功能模塊都要涉及到多張數據表,表以及表與表之間的數據關系是數據庫設計的重點。在對各功能模塊需求分析的基礎上,將平臺涉及到的數據表分為教學資源、系統管理和輔助應用三大類。教學資源類中的數據主要包括有教師課程內容、課件、視頻、圖片、動畫、文檔等數據資源信息。系統管理類中的數據主要包括有用戶組及用戶的信息、系統新聞、系統公告等。輔助應用類中的數據主要包括進行分類查詢或統計用的學科、年級等分類信息。系統中涉及到的重要數據表之間的關系如圖2所示:

圖2 數據庫主要表關系圖
該平臺共有4個功能模塊,下面以幾個重要模塊的實現為例進行說明。
2.1 在線課堂模塊的實現
在線課堂模塊是主要的教學模塊,包含課程制作、課程點播、疑難解答和學生管理等多個子模塊,從而實現網絡課程的制作、瀏覽、課程交流等主要功能。
2.1.1 在線課堂模塊的用例建模
根據需求分析,采用 UML[4]完成模塊建模,該平臺在線課堂模塊的用例圖如下圖3所示:

圖3 在線課堂主要用例圖
2.1.2 在線課堂模塊的實現
1)創建持久層
該模塊的主要功能是完成課程內容的管理,因此實體類主要是課程類Course和課程欄目類CourseCategory。由于采用完全面向對象的思想,只需要考慮對象需要具有哪些屬性即可,然后生成對應的xml文件。根據系統的總體功能,可以創建Course類和CourseCategory,它們具有如下屬性:
Course:id,name(名稱),description(課程描述),c reateDate(創建日期),detp(所屬系部)等。
CourseCategory: id,name(課程欄目名稱),descript ion(課程欄目描述),ordernum(課程欄目排序號)、father Category(該課程欄目的父欄目)、level(課程欄目的深度)等。
2) 業務邏輯層的開發
此模塊中主要設計CourseDAO和CourseCategoryDAO來分別進行課程和課程欄目的增刪改查,主要包括以下一些功能:
public CourseCategory searchTeachers(int courseCatego ryID); //根據課程欄目id查找課程欄目
public void add CourseCategory(CourseCategory c);//增加課程欄目
public void delCourseCategory(CourseCategory c); //刪除課程欄目
public void delCourseCategory(int CourseCategoryId); //根據欄目id刪除課程欄目
public void add Course (Course c);//增加課程
public void updateCourse (Course c);//更新課程
public void delCourse (int CourseCategoryId); //根據課程id刪除課程
在實現過程中,為減少代碼的重復性,定義一個 Base Manager接口,實現基本的Manager功能,其他所有的業務Manager都實現此接口。而業務邏輯類在Spring中的配置都在文件applicationContext-beans.xml中完成,只需配置業務邏輯類和DAO即可。
當教師登錄后進入添加課件界面,可以實現網絡課程的制作、教學組織等。如圖4所示:

圖4 教師添加課件界面
2.2 平臺管理模塊的實現
平臺管理模塊主要實現管理員對系統用戶的管理及權限的設置,用來完成查詢、修改、添加和刪除等操作;還可以實現課程管理和公告管理功能。
2.2.1 平臺管理模塊的動態建模
(1)添加用戶順序圖
該平臺教師用戶和部門管理員用戶的添加,需要通過管理員的審核后才能加入系統;系統管理員在通過權限驗證后,才可以向系統中添加新的用戶,其順序圖如下圖5所示:

圖5 添加用戶順序圖
(2)為用戶授權順序圖
該模塊采用基于角色的權限管理,不同的用戶對不同資源的操作權限是不一樣的,用戶在操作某類資源時要先經過權限的認證,而權限是要通過系統管理員來授權的。在進行角色的定義和權限分配后,就可以進行用戶的授權,授權的動態順序圖如圖6所示:

圖6 用戶授權順序圖
2.2.2 用戶管理模塊的實現
用戶管理模塊的功能是實現用戶的查找、添加、更改、刪除,并為了提升用戶體驗而添加了DWR框架。
(1)持久層的開發
根據功能要求創建POJO類USER,即User.java文件,User對象對應于數據庫中的T_USER表,然后創建User.hb m.xml文件。
(2)控制層的開發
使用Struts來完成,主要使用Struts的Action來完成流程的控制,使用JSP作為呈現,在Action中調用相應的業務邏輯,將處理的結果交給JSP顯示。主要工作是編寫Act ion,然后將Action交給Spring的管理,在struts-config.xml文件中添加Spring的支持。
(3)業務邏輯層的開發
主要是開發業務邏輯類,即manager,UserManager具有以下方法:
public List searchUsers():查找所有的用戶信息,一般提供給管理員來使用;
public Person findUser (int userId):根據用戶ID查找某一用戶;
public void addUser (User user,int groupId):添加一個特定的用戶,但若為用戶指定的組不存在,則不能添加用戶成功;
public void del User (int id):根據用戶id刪除一個用戶。
(4)添加DWR支持
首先加入DWR的支持jar包,在UserDAO中實現根據id完成用戶的刪除功能,即定義函數“deletUser(int id)”;然后在Web.xml中添加對DWR支持的配置文件,該配置文件的作用是只要來自/dwr/的所有請求都交給dwr-invoker處理,為了安全的考慮,只有在該配置文件中聲明的類或方法才能被客戶端直接訪問;最后是在瀏覽器中加入JS引入語句:

通過該JavaScript函數del(Id),就直接調用了服務器端UserDAO中的函數deleteUser(int id)。利用該功能,可以實現無頁面刷新刪除一個用戶。
2.3 優化技術
2.3.1 基于RBAC的權限管理
RBAC(Role-Base Access Control)模型是目前使用廣泛的權限模型,技術中涉及到幾個概念:用戶、角色、權限、資源[5][6]。該平臺先對資源和權限定義,再對用戶進行授權。
資源和權限的定義:根據基本的功能模塊來定義資源,對某些模塊還會繼續細分,例如具有不同權限的用戶看到的界面元素是不同的。
權限管理模塊:進行用戶的授權。該本平臺中添加角色后便可以進行角色授權,只要在相應許可的權限欄中選中C、R、U、D復選框,即可完成添加、刪除、修改、查詢權限的設置,角色授權的對話框如圖7所示:

圖7 系統角色授權對話框
系統角色和權限管理的設置:該平臺根據功能模塊劃分出資源分類,分別對其配置了增、刪、改、查4種操作權限;并劃分出游客、學生、教師、部門管理員、系統管理員等多種角色,對不同的系統資源具有不同的操作權限。在新增一個用戶時只需賦予相應的角色即可。系統角色管理如圖 8所示:

圖8 角色管理
2.3.2 上傳下載技術
在網絡教學平臺中不可避免的會涉及到大量資源的上傳下載工作,例如在線課堂模塊中的課程制作,以及資源模塊中的教學資源的上傳與下載。采用SSH框架則只需通過一些配置,加上少量代碼就能便捷的實現文件的上傳下載問題。
上傳文件解決方案中核心技術默認使用了 Apache的FileUpload的組件,當然也可使用 Servlet3,而不用第三方組件直接支持文件上傳,但需要支持Servlet3的應用服務器支持,如Tomcat8.0以上版本。該平臺中使用FileUpload組件進行文件上傳,Struts對FileUpload進行了封裝,只需要按如下步驟進行操作即可:首先在file上傳表單中,指定表單的屬性 enctype="multipart/form-data",然后在 Struts的 Action處理類中指定和file表單中文件域一致的File類型的字段名,最后就可以使用FileOutStream進行文件的保存,即完成文件的上傳。
本文對網絡教學平臺需求進行分析,明確網絡教學平臺的基本功能和基本結構,采用基于Struts、Spring、Hibernate的開源架構,利用開源代碼軟件平臺實現了系統的主要功能,最終實現一個功能完備,運行穩定的網絡教學平臺,達到了設計的預期目標。
[1]李剛.輕量級 J2EE企業應用實戰-Struts+Spring+Hibe rnate整合開發[M].北京:電子工業出版社,2007:124-128.
[2]張蕾,朱百祥,唐永中.基于SSH框架的企業車輛管理信息系統[J].計算機系統應用,2014,23(4):65-69.
[3]Johnson R. J2EE development frameworks[J].Computer, 2005,38(1):107-110.
[4]邵奇峰,韓玉民,鄭秋生.一種混合授權的RBAC模型及其 UML建模[J].武漢大學學報(理學版).2014(05):419 -423.
[5]吳波,王晶. 基于基本RBAC模型的權限管理框架的設計與實現[J].計算機系統應用,2011,20(4):50-54.
[6]劉強,王磊,何琳.RBAC模型研究歷程中的系列問題分析[J].計算機科學,2012,39(11):13-18.
Open Source Network Teaching Platform
Cai Lixia
(Network management center, Henan Polytechnic Institute, Nayang 473000, China)
Using an excellent framework is vital to the development, maintenance and expansion of network-teaching platform. It uses the UML modeling to realize the design and development of each function module by integrating the DWR framework based on AJAX technology after an in-depth research on the open sources of Struts, Spring, and Hibemate. Then it focuses on the implementation of online classroom and platformmanagement module. Finally it technically optimizes the problems that may occur in the system.
Network Teaching Platform; SSH; RBAC; Upload and Download
TP311
A
2014.12.28)
1007-757X(2015)05-0046-04
蔡麗霞(1979.06-),女,漢,河南南陽人,河南工業職業技術學院,工程師,碩士,研究方向:計算機應用技術,南陽,473000