王輝+吳華+任長(zhǎng)林+王學(xué)龍
摘要:
利用網(wǎng)絡(luò)教學(xué)平臺(tái)進(jìn)行高校教學(xué)改革已經(jīng)成為教育領(lǐng)域的潮流與共識(shí),因此開(kāi)源Sakai網(wǎng)絡(luò)教學(xué)平臺(tái)與高校信息系統(tǒng)資源整合逐漸受到研究者的廣泛關(guān)注。針對(duì)資源整合面臨的認(rèn)證分離、教務(wù)數(shù)據(jù)難以復(fù)用的問(wèn)題,提出A&EI(Authentication & Educational Integration)實(shí)現(xiàn)方案。該方案以搭建源碼Sakai平臺(tái)為基礎(chǔ),結(jié)合數(shù)字校園三大平臺(tái)中的CAS認(rèn)證技術(shù)與共享數(shù)據(jù)中心,利用Sakai登錄管理工具接口實(shí)現(xiàn)統(tǒng)一身份認(rèn)證,開(kāi)發(fā)教務(wù)工具接口并使用ODI數(shù)據(jù)集成實(shí)現(xiàn)教務(wù)數(shù)據(jù)共享。實(shí)驗(yàn)結(jié)果表明,該方案可以有效實(shí)現(xiàn)Sakai平臺(tái)的統(tǒng)一身份認(rèn)證與教務(wù)集成。
關(guān)鍵詞:
網(wǎng)絡(luò)教學(xué);Sakai平臺(tái);統(tǒng)一身份認(rèn)證;教務(wù)集成
DOIDOI:10.11907/rjdk.172084
中圖分類(lèi)號(hào):TP319
文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào)文章編號(hào):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ā)展,越來(lái)越多高校嘗試采用網(wǎng)絡(luò)教學(xué)與傳統(tǒng)教學(xué)相結(jié)合的模式開(kāi)展教學(xué)改革與創(chuàng)新工作。網(wǎng)絡(luò)教學(xué)作為一種現(xiàn)代教學(xué)方式,具有交互性、共享性、開(kāi)放性與協(xié)作性等特點(diǎn),是有效提升教學(xué)質(zhì)量、促進(jìn)教學(xué)改革的有力推手。網(wǎng)絡(luò)教學(xué)平臺(tái)分為商業(yè)化平臺(tái)和免費(fèi)開(kāi)源平臺(tái),目前市場(chǎng)上的商業(yè)化產(chǎn)品主要包括BB(Black-Board)、WebCT等,開(kāi)源教學(xué)平臺(tái)主要有Sakai、Moodle、Dokeos、Claroline、Atutor、OLAT等[1]。Sakai平臺(tái)是一個(gè)使用J2EE架構(gòu)的具有成長(zhǎng)性與開(kāi)放性的教學(xué)平臺(tái),其具備嚴(yán)格的分層結(jié)構(gòu),每層采用不同技術(shù),可以分為表示層、業(yè)務(wù)邏輯層與數(shù)據(jù)存取層,這種結(jié)構(gòu)可以有效實(shí)現(xiàn)層與層之間的“高內(nèi)聚,低耦合”。當(dāng)前國(guó)內(nèi)外眾多高校將Sakai作為研究與二次開(kāi)發(fā)的網(wǎng)絡(luò)教學(xué)平臺(tái)[2]。Sakai平臺(tái)在高校通常作為課程站點(diǎn)進(jìn)行訪問(wèn),提供的功能模塊主要有課程大綱、課程內(nèi)容、課程管理、課程討論、作業(yè)管理、練習(xí)測(cè)驗(yàn)、成績(jī)發(fā)布與查詢(xún)、資源上傳下載、班級(jí)管理、課程日程、站點(diǎn)統(tǒng)計(jì)等,各功能模塊均可使用可視化界面靈活添加或刪除[3]。
高校使用Sakai網(wǎng)絡(luò)教學(xué)平臺(tái)作為研究對(duì)象,一般首先需要編譯并部署Sakai源代碼,然后在此基礎(chǔ)上集成學(xué)校統(tǒng)一的身份認(rèn)證服務(wù)和教務(wù)數(shù)據(jù)。研究者通過(guò)將該平臺(tái)與當(dāng)前校園網(wǎng)的認(rèn)證、教務(wù)平臺(tái)進(jìn)行資源整合,不僅能夠避免教學(xué)系統(tǒng)封閉的黑盒現(xiàn)象,而且可以消除不同平臺(tái)之間數(shù)據(jù)流動(dòng)性差的問(wèn)題。A&EI方案本質(zhì)上是在Sakai源碼網(wǎng)絡(luò)教學(xué)平臺(tái)基礎(chǔ)上,通過(guò)定制工具的二次開(kāi)發(fā)滿(mǎn)足Sakai平臺(tái)與高校的統(tǒng)一身份認(rèn)證和教務(wù)集成。該方案結(jié)合數(shù)字校園的認(rèn)證平臺(tái)與共享數(shù)據(jù)中心,使用CAS認(rèn)證、Maven web項(xiàng)目構(gòu)建,并采用ODI數(shù)據(jù)集成技術(shù),最終實(shí)現(xiàn)校園網(wǎng)建設(shè)Sakai平臺(tái)的統(tǒng)一身份認(rèn)證管理、教務(wù)資源共享與整合。Sakai平臺(tái)下統(tǒng)一身份認(rèn)證與教務(wù)集成框架如圖1所示。
1Sakai網(wǎng)絡(luò)教學(xué)平臺(tái)部署及運(yùn)行
1.1Sakai平臺(tái)運(yùn)行環(huán)境部署
Sakai平臺(tái)使用JAVA作為開(kāi)發(fā)語(yǔ)言,使用Apache Maven進(jìn)行項(xiàng)目管理,Web服務(wù)器使用Tomcat,同時(shí)需要穩(wěn)定的數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)。Sakai平臺(tái)可以部署在Linux、Windows、Mac OS操作系統(tǒng)上,針對(duì)不同操作系統(tǒng),預(yù)先準(zhǔn)備相應(yīng)的運(yùn)行環(huán)境。以Windows與Sakai 11為例,Sakai平臺(tái)運(yùn)行環(huán)境需要部署JDK 8、Maven 3.0與Tomcat 8。Sakai11支持的數(shù)據(jù)庫(kù)服務(wù)器有MySQL 5.1.x、MySQL 5.5.x、Oracle 10g、Oracle 11g,本文數(shù)據(jù)庫(kù)以O(shè)racle 11g部署為例進(jìn)行說(shuō)明。上述所有工具可以在對(duì)應(yīng)官網(wǎng)下載并安裝,平臺(tái)依賴(lài)的運(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)語(yǔ)言等,修改%TOMCAT_HOME%/conf/server.xml的Connector屬性,增加對(duì)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首頁(yè)跳轉(zhuǎn)路徑;④將Oracle JDBC驅(qū)動(dòng)拷貝至%TOMCAT_HOME%/common/lib目錄。endprint
1.2源碼編譯部署
Sakai平臺(tái)源碼可以通過(guò)兩種方式獲取,一種是在官網(wǎng)直接下載*.zip或者*tar.gz壓縮包,另一種是利用分布式版本控制工具Git從代碼倉(cāng)庫(kù)檢出Sakai源碼。在Sakai平臺(tái)sakai.properties中配置各個(gè)數(shù)據(jù)庫(kù)選項(xiàng),注意配置username@javax.sql.BaseDataSource、password@javax.sql.BaseDataSource需要與Oracle數(shù)據(jù)庫(kù)的用戶(hù)名密碼保持一致,首次運(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ù)起停與訪問(wèn)
在%TOMCAT_HOME%/bin運(yùn)行startup.bat啟動(dòng)Sakai服務(wù),運(yùn)行shutdown.bat停止服務(wù),成功啟動(dòng)服務(wù)后,在任意瀏覽器通過(guò)http://localhost:8080訪問(wèn)Sakai[4]。
2統(tǒng)一身份認(rèn)證
將Sakai平臺(tái)接入高校統(tǒng)一身份認(rèn)證服務(wù)器,目的是實(shí)現(xiàn)Sakai用戶(hù)的統(tǒng)一身份認(rèn)證與單點(diǎn)登錄功能[5]。在Sakai平臺(tái)與業(yè)務(wù)系統(tǒng)間使用CAS接口實(shí)現(xiàn)認(rèn)證是Sakai推薦的一種認(rèn)證集成方式,使用該認(rèn)證接口可以適配JAVA、PHP、.NET等多種語(yǔ)言開(kāi)發(fā)的應(yīng)用程序。將客戶(hù)端認(rèn)證接口開(kāi)發(fā)包部署在Sakai服務(wù)器上,修改平臺(tái)登錄工具調(diào)用的配置文件,然后調(diào)整代碼在用戶(hù)登錄和退出時(shí),用集成之后的方式重定向到統(tǒng)一身份認(rèn)證地址。
在Sakai登錄工具Pom.xml中增加CAS客戶(hù)端認(rèn)證包c(diǎn)as-client-core的依賴(lài)關(guān)系,統(tǒng)一身份認(rèn)證通過(guò)配置文件sakai.properties修改登錄參數(shù):設(shè)置top.login=false移除原有登錄框,設(shè)置container.login=true與loggedOutUrl,使用戶(hù)通過(guò)CAS進(jìn)行統(tǒng)一身份認(rèn)證登錄與退出。Web-INF目錄的web.xml是登錄管理工具初始化時(shí)執(zhí)行的配置文件,通過(guò)配置監(jiān)聽(tīng)器、CAS認(rèn)證過(guò)濾器、票據(jù)校驗(yàn)過(guò)濾器、HttpServletRequest包裹請(qǐng)求過(guò)濾器與各個(gè)過(guò)濾器映射,實(shí)現(xiàn)用戶(hù)統(tǒng)一身份認(rèn)證與單點(diǎn)登錄功能。其中監(jiān)聽(tīng)器使用Sakai項(xiàng)目的SakaiContextLoaderListener與ToolListener,CAS認(rèn)證過(guò)濾器配置初始化參數(shù)casServerLoginUrl與serverName,校驗(yàn)過(guò)濾器配置參數(shù)casServerUrlPrefix與serverName,HttpServletRequest包裹請(qǐng)求過(guò)濾器使用CAS默認(rèn)的HttpServletRequestWrapperFilter,最后在web.xml文件頭配置請(qǐng)求過(guò)濾器,將訪問(wèn)請(qǐng)求轉(zhuǎn)發(fā)到Sakai容器進(jìn)行處理。
統(tǒng)一身份認(rèn)證平臺(tái)使用LDAP管理賬戶(hù)信息,Sakai平臺(tái)與統(tǒng)一身份認(rèn)證平臺(tái)集成使用容器處理CAS登錄與退出請(qǐng)求。sakai-login-tool是Sakai的登錄管理工具,ContainerLogin.java與ContainerLogout.java分別是Sakai使用容器登錄與退出時(shí)的處理文件,通過(guò)ServerConfigurationService、Session類(lèi)獲取相關(guān)跳轉(zhuǎn)地址,使用UsageSessionService的login與logout方法處理HttpServletRequest的相應(yīng)請(qǐng)求,并使用AuthenticationManager的authenticate方法對(duì)用戶(hù)進(jìn)行登錄認(rèn)證,最后針對(duì)認(rèn)證結(jié)果,采用HttpServletResponse的sendRedirect方法對(duì)訪問(wèn)請(qǐng)求執(zhí)行地址重定向響應(yīng)。
3Sakai平臺(tái)與教務(wù)集成應(yīng)用
3.1Sakai平臺(tái)教務(wù)工具開(kāi)發(fā)
Sakai是采用J2EE框架的基于工具與組件開(kāi)發(fā)的應(yīng)用平臺(tái),使用工具實(shí)現(xiàn)表示層的用戶(hù)交互和界面展示,使用組件實(shí)現(xiàn)業(yè)務(wù)邏輯層與數(shù)據(jù)存取層的業(yè)務(wù)處理、邏輯規(guī)則并進(jìn)行數(shù)據(jù)持久化,Sakai平臺(tái)負(fù)責(zé)對(duì)工具與組件進(jìn)行注冊(cè)并提供公共服務(wù)。Sakai工具開(kāi)發(fā)支持表示層技術(shù)JSP、JSF與Velocity等,組件開(kāi)發(fā)由組件接口模塊、組件功能實(shí)現(xiàn)模塊與測(cè)試模塊組成,通過(guò)Spirng容器對(duì)bean的管理支持Sakai組件的創(chuàng)建與維護(hù)。
Sakai平臺(tái)教務(wù)工具開(kāi)發(fā)首先需要定義課程站點(diǎn)創(chuàng)建、課程管理數(shù)據(jù)訪問(wèn)對(duì)象、課程站點(diǎn)管理等Java接口,然后在對(duì)應(yīng)接口中實(shí)現(xiàn)新建站點(diǎn)、數(shù)據(jù)庫(kù)表查詢(xún)、站點(diǎn)增刪用戶(hù)等功能,通過(guò)業(yè)務(wù)邏輯、數(shù)據(jù)訪問(wèn)、數(shù)據(jù)模型與控制器等接口進(jìn)行開(kāi)發(fā),實(shí)現(xiàn)各學(xué)院師生根據(jù)學(xué)年、學(xué)期建立課程的教務(wù)工具。教務(wù)工具配置文件主要有Spring格式的配置文件components.xml、工具上下文applicationContext.xml、Web工程的web.xml與教務(wù)工具注冊(cè)文件tools/toolname.xml,其中components.xml用于配置Spring上下文訪問(wèn)組件功能,工具上下文能夠自動(dòng)匯入全局共享Spring上下文中,保證Sakai組件提供的服務(wù)在Spring被直接引用,在web.xml中可配置教務(wù)工具啟動(dòng)時(shí)的加載項(xiàng)目,并在工具注冊(cè)文件中配置該工具的ID、名稱(chēng)、描述與使用范圍等信息。Sakai平臺(tái)支持用戶(hù)根據(jù)需要定制教務(wù)工具,首先使用Maven編譯部署教務(wù)工具并重啟Sakai服務(wù),進(jìn)入站點(diǎn)管理選擇需要集成教務(wù)工具的站點(diǎn),然后點(diǎn)擊添加/編輯頁(yè)面選項(xiàng)選擇新頁(yè)面,填寫(xiě)頁(yè)面標(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平臺(tái)教務(wù)工具與高校教務(wù)系統(tǒng)之間的數(shù)據(jù)集成,數(shù)據(jù)集成按照集成方式可分為全量集成與增量集成。全量集成是指數(shù)據(jù)集成被觸發(fā)時(shí),所有數(shù)據(jù)源數(shù)據(jù)均被同步到目標(biāo)庫(kù)中;增量集成是指每次觸發(fā)數(shù)據(jù)集成時(shí),只將業(yè)務(wù)系統(tǒng)變更的數(shù)據(jù)(如數(shù)據(jù)新增或修改)集成至目標(biāo)庫(kù)中,從而減輕業(yè)務(wù)系統(tǒng)服務(wù)器與數(shù)據(jù)庫(kù)服務(wù)器的負(fù)擔(dān)。按照技術(shù)實(shí)現(xiàn)方法,增量集成方式可分為標(biāo)志位、觸發(fā)器、差異對(duì)比與日志位方式。
通過(guò)共享數(shù)據(jù)中心完成Sakai教務(wù)工具與教務(wù)系統(tǒng)集成,建立數(shù)據(jù)庫(kù)共享用戶(hù),重構(gòu)和開(kāi)放Sakai教務(wù)工具需要的教務(wù)系統(tǒng)中的部分?jǐn)?shù)據(jù)表或視圖權(quán)限,設(shè)置代理和定時(shí)同步任務(wù),使用ODI工具完成數(shù)據(jù)的推送共享。Sakai平臺(tái)教務(wù)工具數(shù)據(jù)庫(kù)中,課程信息對(duì)應(yīng)CM_MEMBER_CONTAINER_T,學(xué)生信息對(duì)應(yīng)SAKAI_USER、SAKAI_USER_ID_MAP,學(xué)院、學(xué)期分別對(duì)應(yīng)CM_MEMBER_CONTAINER_T與CM_ACADEMIC_SESSION_T,站點(diǎn)與用戶(hù)使用SAKAI_SITE_USER進(jìn)行關(guān)聯(lián)。
Sakai平臺(tái)教務(wù)集成流程如圖2所示,通過(guò)數(shù)據(jù)交換平臺(tái)ODI技術(shù),教務(wù)系統(tǒng)將課程信息表、本科生基本信息表、課程安排表與教師任課信息表等推送到數(shù)字校園共享數(shù)據(jù)中心[6],根據(jù)Sakai平臺(tái)教務(wù)工具數(shù)據(jù)庫(kù)表結(jié)構(gòu)建立共享數(shù)據(jù)視圖,將該視圖推送到Sakai平臺(tái)教務(wù)工具數(shù)據(jù)庫(kù),用于展示Sakai課程或站點(diǎn)教務(wù)數(shù)據(jù)的課程編號(hào)、課程名稱(chēng)、學(xué)生編號(hào)、學(xué)生姓名、所在學(xué)院、學(xué)年學(xué)期等信息。
4結(jié)語(yǔ)
網(wǎng)絡(luò)教學(xué)逐漸成為高校提升教學(xué)質(zhì)量的重要手段與創(chuàng)新點(diǎn)。本文以Sakai網(wǎng)絡(luò)教學(xué)平臺(tái)認(rèn)證、教務(wù)資源整合為例,提出A&EI實(shí)現(xiàn)方案,該方案包括從開(kāi)源平臺(tái)的搭建到使用CAS認(rèn)證接口實(shí)現(xiàn)Sakai統(tǒng)一身份認(rèn)證,再到開(kāi)發(fā)Sakai平臺(tái)教務(wù)工具,并利用ODI工具進(jìn)行教務(wù)系統(tǒng)數(shù)據(jù)集成,最終實(shí)現(xiàn)了開(kāi)源Sakai平臺(tái)的統(tǒng)一身份認(rèn)證及教務(wù)系統(tǒng)相關(guān)數(shù)據(jù)在Sakai平臺(tái)的展示。
參考文獻(xiàn):
[1]王莉,蘇波.基于Sakai平臺(tái)的混合式教學(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ì)語(yǔ)言課程教學(xué)管理系統(tǒng)[J].中國(guó)教育信息化,2015(15):9-11.
[4]何英高,黃曄華.搭建Sakai復(fù)旦共享版的Eclipse開(kāi)發(fā)環(huán)境[J].科技資訊,2014(9):24-25.
[5]何苗.統(tǒng)一身份認(rèn)證在開(kāi)源Sakai教學(xué)平臺(tái)中的實(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