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