王輝+吳華+任長林+王學(xué)龍
摘要:
利用網(wǎng)絡(luò)教學(xué)平臺進(jìn)行高校教學(xué)改革已經(jīng)成為教育領(lǐng)域的潮流與共識,因此開源Sakai網(wǎng)絡(luò)教學(xué)平臺與高校信息系統(tǒng)資源整合逐漸受到研究者的廣泛關(guān)注。針對資源整合面臨的認(rèn)證分離、教務(wù)數(shù)據(jù)難以復(fù)用的問題,提出A&EI(Authentication & Educational Integration)實(shí)現(xiàn)方案。該方案以搭建源碼Sakai平臺為基礎(chǔ),結(jié)合數(shù)字校園三大平臺中的CAS認(rèn)證技術(shù)與共享數(shù)據(jù)中心,利用Sakai登錄管理工具接口實(shí)現(xiàn)統(tǒng)一身份認(rèn)證,開發(fā)教務(wù)工具接口并使用ODI數(shù)據(jù)集成實(shí)現(xiàn)教務(wù)數(shù)據(jù)共享。實(shí)驗(yàn)結(jié)果表明,該方案可以有效實(shí)現(xiàn)Sakai平臺的統(tǒng)一身份認(rèn)證與教務(wù)集成。
關(guān)鍵詞:
網(wǎng)絡(luò)教學(xué);Sakai平臺;統(tǒng)一身份認(rèn)證;教務(wù)集成
DOIDOI:10.11907/rjdk.172084
中圖分類號:TP319
文獻(xiàn)標(biāo)識碼:A文章編號文章編號:1672-7800(2018)001-0172-03
Abstract:The use of network teaching platform for teaching reform has become the trend and consensus in the field of education. The resources integration of open source Sakai network teaching platform and information system has attracted much attention of the researchers. In view of the separation of authentication and the difficulty of reusing educational data, the A&EI (Authentication & Educational Integration) solution is proposed. Based on the Sakai platform, the solution applies the CAS authentication technology and the shared data center in digital campus platform, and implements the uniform identity authentication by using Sakai login interface and the educational data sharing by developing the educational tool interface and using ODI data integration. Experimental results show that the solution can effectively implement the uniform identity authentication and educational integration based on Sakai platform.
Key Words:network teaching; Sakai platform; uniform identity authentication; educational integration
0引言
隨著信息與網(wǎng)絡(luò)技術(shù)的發(fā)展,越來越多高校嘗試采用網(wǎng)絡(luò)教學(xué)與傳統(tǒng)教學(xué)相結(jié)合的模式開展教學(xué)改革與創(chuàng)新工作。網(wǎng)絡(luò)教學(xué)作為一種現(xiàn)代教學(xué)方式,具有交互性、共享性、開放性與協(xié)作性等特點(diǎn),是有效提升教學(xué)質(zhì)量、促進(jìn)教學(xué)改革的有力推手。網(wǎng)絡(luò)教學(xué)平臺分為商業(yè)化平臺和免費(fèi)開源平臺,目前市場上的商業(yè)化產(chǎn)品主要包括BB(Black-Board)、WebCT等,開源教學(xué)平臺主要有Sakai、Moodle、Dokeos、Claroline、Atutor、OLAT等[1]。Sakai平臺是一個(gè)使用J2EE架構(gòu)的具有成長性與開放性的教學(xué)平臺,其具備嚴(yán)格的分層結(jié)構(gòu),每層采用不同技術(shù),可以分為表示層、業(yè)務(wù)邏輯層與數(shù)據(jù)存取層,這種結(jié)構(gòu)可以有效實(shí)現(xiàn)層與層之間的“高內(nèi)聚,低耦合”。當(dāng)前國內(nèi)外眾多高校將Sakai作為研究與二次開發(fā)的網(wǎng)絡(luò)教學(xué)平臺[2]。Sakai平臺在高校通常作為課程站點(diǎn)進(jìn)行訪問,提供的功能模塊主要有課程大綱、課程內(nèi)容、課程管理、課程討論、作業(yè)管理、練習(xí)測驗(yàn)、成績發(fā)布與查詢、資源上傳下載、班級管理、課程日程、站點(diǎn)統(tǒng)計(jì)等,各功能模塊均可使用可視化界面靈活添加或刪除[3]。
高校使用Sakai網(wǎng)絡(luò)教學(xué)平臺作為研究對象,一般首先需要編譯并部署Sakai源代碼,然后在此基礎(chǔ)上集成學(xué)校統(tǒng)一的身份認(rèn)證服務(wù)和教務(wù)數(shù)據(jù)。研究者通過將該平臺與當(dāng)前校園網(wǎng)的認(rèn)證、教務(wù)平臺進(jìn)行資源整合,不僅能夠避免教學(xué)系統(tǒng)封閉的黑盒現(xiàn)象,而且可以消除不同平臺之間數(shù)據(jù)流動(dòng)性差的問題。A&EI方案本質(zhì)上是在Sakai源碼網(wǎng)絡(luò)教學(xué)平臺基礎(chǔ)上,通過定制工具的二次開發(fā)滿足Sakai平臺與高校的統(tǒng)一身份認(rèn)證和教務(wù)集成。該方案結(jié)合數(shù)字校園的認(rèn)證平臺與共享數(shù)據(jù)中心,使用CAS認(rèn)證、Maven web項(xiàng)目構(gòu)建,并采用ODI數(shù)據(jù)集成技術(shù),最終實(shí)現(xiàn)校園網(wǎng)建設(shè)Sakai平臺的統(tǒng)一身份認(rèn)證管理、教務(wù)資源共享與整合。Sakai平臺下統(tǒng)一身份認(rèn)證與教務(wù)集成框架如圖1所示。
1Sakai網(wǎng)絡(luò)教學(xué)平臺部署及運(yùn)行
1.1Sakai平臺運(yùn)行環(huán)境部署
Sakai平臺使用JAVA作為開發(fā)語言,使用Apache Maven進(jìn)行項(xiàng)目管理,Web服務(wù)器使用Tomcat,同時(shí)需要穩(wěn)定的數(shù)據(jù)庫存儲數(shù)據(jù)。Sakai平臺可以部署在Linux、Windows、Mac OS操作系統(tǒng)上,針對不同操作系統(tǒng),預(yù)先準(zhǔn)備相應(yīng)的運(yùn)行環(huán)境。以Windows與Sakai 11為例,Sakai平臺運(yùn)行環(huán)境需要部署JDK 8、Maven 3.0與Tomcat 8。Sakai11支持的數(shù)據(jù)庫服務(wù)器有MySQL 5.1.x、MySQL 5.5.x、Oracle 10g、Oracle 11g,本文數(shù)據(jù)庫以O(shè)racle 11g部署為例進(jìn)行說明。上述所有工具可以在對應(yīng)官網(wǎng)下載并安裝,平臺依賴的運(yùn)行環(huán)境配置如下:①配置JAVA環(huán)境變量JAVA_HOME、PATH;②配置Maven環(huán)境變量MAVEN_HOME、PATH,配置參數(shù)MAVEN_OPTS為-Xms512m-Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m,以增加Maven使用的內(nèi)存量,避免編譯Sakai時(shí)內(nèi)存溢出;③配置Tomcat環(huán)境變量CATALINA_HOME、PATH,配置%TOMCAT_HOME%/bin/setenv.bat的JAVA_OPTS,以調(diào)整JVM內(nèi)存分配與默認(rèn)語言等,修改%TOMCAT_HOME%/conf/server.xml的Connector屬性,增加對UTF-8字符的支持,在%TOMCAT_HOME%/conf/catalina.propertie中的common.loader、shared.loader選項(xiàng)分別增加MYM{catalina.home}/common/lib/*.jar、{catalina.base}/shared/lib/*.jar,在%TOMCAT_HOME%/webapps下創(chuàng)建ROOT目錄,并在該目錄下建立index.html,增加Sakai首頁跳轉(zhuǎn)路徑;④將Oracle JDBC驅(qū)動(dòng)拷貝至%TOMCAT_HOME%/common/lib目錄。endprint
1.2源碼編譯部署
Sakai平臺源碼可以通過兩種方式獲取,一種是在官網(wǎng)直接下載*.zip或者*tar.gz壓縮包,另一種是利用分布式版本控制工具Git從代碼倉庫檢出Sakai源碼。在Sakai平臺sakai.properties中配置各個(gè)數(shù)據(jù)庫選項(xiàng),注意配置username@javax.sql.BaseDataSource、password@javax.sql.BaseDataSource需要與Oracle數(shù)據(jù)庫的用戶名密碼保持一致,首次運(yùn)行需將auto.ddl置為true,以自動(dòng)創(chuàng)建數(shù)據(jù)表。初次編譯部署Sakai時(shí),先在master目錄執(zhí)行命令mvn clean install,然后在頂層Sakai源碼目錄執(zhí)行mvn install sakai:deploy-Dmaven.tomcat.home=%TOMCAT_HOME%-Dmaven.test.skip=true,編譯并部署Sakai源碼。
1.3服務(wù)起停與訪問
在%TOMCAT_HOME%/bin運(yùn)行startup.bat啟動(dòng)Sakai服務(wù),運(yùn)行shutdown.bat停止服務(wù),成功啟動(dòng)服務(wù)后,在任意瀏覽器通過http://localhost:8080訪問Sakai[4]。
2統(tǒng)一身份認(rèn)證
將Sakai平臺接入高校統(tǒng)一身份認(rèn)證服務(wù)器,目的是實(shí)現(xiàn)Sakai用戶的統(tǒng)一身份認(rèn)證與單點(diǎn)登錄功能[5]。在Sakai平臺與業(yè)務(wù)系統(tǒng)間使用CAS接口實(shí)現(xiàn)認(rèn)證是Sakai推薦的一種認(rèn)證集成方式,使用該認(rèn)證接口可以適配JAVA、PHP、.NET等多種語言開發(fā)的應(yīng)用程序。將客戶端認(rèn)證接口開發(fā)包部署在Sakai服務(wù)器上,修改平臺登錄工具調(diào)用的配置文件,然后調(diào)整代碼在用戶登錄和退出時(shí),用集成之后的方式重定向到統(tǒng)一身份認(rèn)證地址。
在Sakai登錄工具Pom.xml中增加CAS客戶端認(rèn)證包c(diǎn)as-client-core的依賴關(guān)系,統(tǒng)一身份認(rèn)證通過配置文件sakai.properties修改登錄參數(shù):設(shè)置top.login=false移除原有登錄框,設(shè)置container.login=true與loggedOutUrl,使用戶通過CAS進(jìn)行統(tǒng)一身份認(rèn)證登錄與退出。Web-INF目錄的web.xml是登錄管理工具初始化時(shí)執(zhí)行的配置文件,通過配置監(jiān)聽器、CAS認(rèn)證過濾器、票據(jù)校驗(yàn)過濾器、HttpServletRequest包裹請求過濾器與各個(gè)過濾器映射,實(shí)現(xiàn)用戶統(tǒng)一身份認(rèn)證與單點(diǎn)登錄功能。其中監(jiān)聽器使用Sakai項(xiàng)目的SakaiContextLoaderListener與ToolListener,CAS認(rèn)證過濾器配置初始化參數(shù)casServerLoginUrl與serverName,校驗(yàn)過濾器配置參數(shù)casServerUrlPrefix與serverName,HttpServletRequest包裹請求過濾器使用CAS默認(rèn)的HttpServletRequestWrapperFilter,最后在web.xml文件頭配置請求過濾器,將訪問請求轉(zhuǎn)發(fā)到Sakai容器進(jìn)行處理。
統(tǒng)一身份認(rèn)證平臺使用LDAP管理賬戶信息,Sakai平臺與統(tǒng)一身份認(rèn)證平臺集成使用容器處理CAS登錄與退出請求。sakai-login-tool是Sakai的登錄管理工具,ContainerLogin.java與ContainerLogout.java分別是Sakai使用容器登錄與退出時(shí)的處理文件,通過ServerConfigurationService、Session類獲取相關(guān)跳轉(zhuǎn)地址,使用UsageSessionService的login與logout方法處理HttpServletRequest的相應(yīng)請求,并使用AuthenticationManager的authenticate方法對用戶進(jìn)行登錄認(rèn)證,最后針對認(rèn)證結(jié)果,采用HttpServletResponse的sendRedirect方法對訪問請求執(zhí)行地址重定向響應(yīng)。
3Sakai平臺與教務(wù)集成應(yīng)用
3.1Sakai平臺教務(wù)工具開發(fā)
Sakai是采用J2EE框架的基于工具與組件開發(fā)的應(yīng)用平臺,使用工具實(shí)現(xiàn)表示層的用戶交互和界面展示,使用組件實(shí)現(xiàn)業(yè)務(wù)邏輯層與數(shù)據(jù)存取層的業(yè)務(wù)處理、邏輯規(guī)則并進(jìn)行數(shù)據(jù)持久化,Sakai平臺負(fù)責(zé)對工具與組件進(jìn)行注冊并提供公共服務(wù)。Sakai工具開發(fā)支持表示層技術(shù)JSP、JSF與Velocity等,組件開發(fā)由組件接口模塊、組件功能實(shí)現(xiàn)模塊與測試模塊組成,通過Spirng容器對bean的管理支持Sakai組件的創(chuàng)建與維護(hù)。
Sakai平臺教務(wù)工具開發(fā)首先需要定義課程站點(diǎn)創(chuàng)建、課程管理數(shù)據(jù)訪問對象、課程站點(diǎn)管理等Java接口,然后在對應(yīng)接口中實(shí)現(xiàn)新建站點(diǎn)、數(shù)據(jù)庫表查詢、站點(diǎn)增刪用戶等功能,通過業(yè)務(wù)邏輯、數(shù)據(jù)訪問、數(shù)據(jù)模型與控制器等接口進(jìn)行開發(fā),實(shí)現(xiàn)各學(xué)院師生根據(jù)學(xué)年、學(xué)期建立課程的教務(wù)工具。教務(wù)工具配置文件主要有Spring格式的配置文件components.xml、工具上下文applicationContext.xml、Web工程的web.xml與教務(wù)工具注冊文件tools/toolname.xml,其中components.xml用于配置Spring上下文訪問組件功能,工具上下文能夠自動(dòng)匯入全局共享Spring上下文中,保證Sakai組件提供的服務(wù)在Spring被直接引用,在web.xml中可配置教務(wù)工具啟動(dòng)時(shí)的加載項(xiàng)目,并在工具注冊文件中配置該工具的ID、名稱、描述與使用范圍等信息。Sakai平臺支持用戶根據(jù)需要定制教務(wù)工具,首先使用Maven編譯部署教務(wù)工具并重啟Sakai服務(wù),進(jìn)入站點(diǎn)管理選擇需要集成教務(wù)工具的站點(diǎn),然后點(diǎn)擊添加/編輯頁面選項(xiàng)選擇新頁面,填寫頁面標(biāo)題,并可選版面設(shè)計(jì)、是否彈出等項(xiàng)目,最后點(diǎn)擊工具選項(xiàng)選擇新工具,選中教務(wù)集成工具ID即完成該工具的定制。endprint
3.2教務(wù)系統(tǒng)數(shù)據(jù)集成
教務(wù)系統(tǒng)數(shù)據(jù)集成是指Sakai平臺教務(wù)工具與高校教務(wù)系統(tǒng)之間的數(shù)據(jù)集成,數(shù)據(jù)集成按照集成方式可分為全量集成與增量集成。全量集成是指數(shù)據(jù)集成被觸發(fā)時(shí),所有數(shù)據(jù)源數(shù)據(jù)均被同步到目標(biāo)庫中;增量集成是指每次觸發(fā)數(shù)據(jù)集成時(shí),只將業(yè)務(wù)系統(tǒng)變更的數(shù)據(jù)(如數(shù)據(jù)新增或修改)集成至目標(biāo)庫中,從而減輕業(yè)務(wù)系統(tǒng)服務(wù)器與數(shù)據(jù)庫服務(wù)器的負(fù)擔(dān)。按照技術(shù)實(shí)現(xiàn)方法,增量集成方式可分為標(biāo)志位、觸發(fā)器、差異對比與日志位方式。
通過共享數(shù)據(jù)中心完成Sakai教務(wù)工具與教務(wù)系統(tǒng)集成,建立數(shù)據(jù)庫共享用戶,重構(gòu)和開放Sakai教務(wù)工具需要的教務(wù)系統(tǒng)中的部分?jǐn)?shù)據(jù)表或視圖權(quán)限,設(shè)置代理和定時(shí)同步任務(wù),使用ODI工具完成數(shù)據(jù)的推送共享。Sakai平臺教務(wù)工具數(shù)據(jù)庫中,課程信息對應(yīng)CM_MEMBER_CONTAINER_T,學(xué)生信息對應(yīng)SAKAI_USER、SAKAI_USER_ID_MAP,學(xué)院、學(xué)期分別對應(yīng)CM_MEMBER_CONTAINER_T與CM_ACADEMIC_SESSION_T,站點(diǎn)與用戶使用SAKAI_SITE_USER進(jìn)行關(guān)聯(lián)。
Sakai平臺教務(wù)集成流程如圖2所示,通過數(shù)據(jù)交換平臺ODI技術(shù),教務(wù)系統(tǒng)將課程信息表、本科生基本信息表、課程安排表與教師任課信息表等推送到數(shù)字校園共享數(shù)據(jù)中心[6],根據(jù)Sakai平臺教務(wù)工具數(shù)據(jù)庫表結(jié)構(gòu)建立共享數(shù)據(jù)視圖,將該視圖推送到Sakai平臺教務(wù)工具數(shù)據(jù)庫,用于展示Sakai課程或站點(diǎn)教務(wù)數(shù)據(jù)的課程編號、課程名稱、學(xué)生編號、學(xué)生姓名、所在學(xué)院、學(xué)年學(xué)期等信息。
4結(jié)語
網(wǎng)絡(luò)教學(xué)逐漸成為高校提升教學(xué)質(zhì)量的重要手段與創(chuàng)新點(diǎn)。本文以Sakai網(wǎng)絡(luò)教學(xué)平臺認(rèn)證、教務(wù)資源整合為例,提出A&EI實(shí)現(xiàn)方案,該方案包括從開源平臺的搭建到使用CAS認(rèn)證接口實(shí)現(xiàn)Sakai統(tǒng)一身份認(rèn)證,再到開發(fā)Sakai平臺教務(wù)工具,并利用ODI工具進(jìn)行教務(wù)系統(tǒng)數(shù)據(jù)集成,最終實(shí)現(xiàn)了開源Sakai平臺的統(tǒng)一身份認(rèn)證及教務(wù)系統(tǒng)相關(guān)數(shù)據(jù)在Sakai平臺的展示。
參考文獻(xiàn):
[1]王莉,蘇波.基于Sakai平臺的混合式教學(xué)模式研究與實(shí)踐[J].大學(xué)教育,2016(10):9-11.
[2]王麗萍.基于Sakai系統(tǒng)的物流網(wǎng)絡(luò)教學(xué)資源整合研究[J].物流科技,2017(3):141-143.
[3]蔡向高,劉華泓.基于Sakai的程序設(shè)計(jì)語言課程教學(xué)管理系統(tǒng)[J].中國教育信息化,2015(15):9-11.
[4]何英高,黃曄華.搭建Sakai復(fù)旦共享版的Eclipse開發(fā)環(huán)境[J].科技資訊,2014(9):24-25.
[5]何苗.統(tǒng)一身份認(rèn)證在開源Sakai教學(xué)平臺中的實(shí)現(xiàn)[J].科技展望,2016(31):292.
[6]王華東,李亞娟.一種云網(wǎng)絡(luò)學(xué)習(xí)空間的設(shè)計(jì)與實(shí)現(xiàn)[J].鄭州輕工業(yè)學(xué)院學(xué)報(bào):自然科學(xué)版,2014,29(4):96-99.
(責(zé)任編輯:黃?。〆ndprint