《電子技術應用》
您所在的位置:首頁 > 其他 > 设计应用 > 基于JSF框架的学习内容管理系统设计与实现
基于JSF框架的学习内容管理系统设计与实现
来源:微型机与应用2010年第10期
吴 洲1, 曹 伟2, 陈 俊3
1. 广东松山职业技术学院 计算机系, 广东 韶关512126;2. 湖南商学院 信息系, 湖南 长
摘要: 以学校的数字化校园建设为背景,基于面向对象技术和学习内容管理技术,提出了一个面向网络教学的学习资源模型,并基于该模型采用JSF框架设计和实现了一个通用的学习内容管理系统。
Abstract:
Key words :

摘   要: 以學校的數字化校園建設為背景,基于面向對象技術和學習內容管理技術,提出了一個面向網絡教學的學習資源模型,并基于該模型采用JSF框架設計和實現(xiàn)了一個通用的學習內容管理系統(tǒng)。
關鍵詞: 學習內容管理; 學習資源; JSF框架

    內容是一切交互活動的基礎:“Content is king[1]”。內容是一個比數據、文檔和信息更廣的概念。數據通常是指結構化的、由傳統(tǒng)關系數據庫處理的對象,文檔通常指非結構化信息,常常由類似全文信息管理以及類似Lotus Domino等應用軟件來管理,而信息通常包括結構化的數據和非結構化的文檔。內容除了一般的文字、文檔、多媒體、流媒體外,還包括Web網頁、廣告、程序(如JavaScript)和軟件等一切數字資源,內容是各種結構化數據、非結構化文檔、信息的聚合。內容管理所涵蓋的信息廣泛,從網絡教學的角度來進行分類,可以分為運行內容,如報表、排課單、選課單等;教學內容,如電子教材、學習檔案、作業(yè)、練習與答疑;Web內容,如HTML與XML等格式的信息;以及多媒體內容,如聲音、影片、圖形等。
 管理就是施加在“內容”對象上的一系列處理過程,包括收集、確認、批準、整理、定位、轉換、分發(fā)、更新、存檔等,目的是為了使“內容”能夠在正確的時間、以正確的形式傳遞到正確的地點和人。內容管理本質上是采用內容的索引、編碼、存單、恢復和個性化的發(fā)布服務等先進的技術手段,將網絡的優(yōu)勢與相關應用進行巧妙的結合[2]。簡而言之,內容管理即管理網上需要發(fā)布的各種信息。內容管理涉及的內容不僅僅是對文件、數據的管理,還包括資料獲取、存儲方法、訪問權限、檢索方法等方方面面[3-4]。目前,內容管理更多的是應用于企業(yè)內容管理和網站內容管理,而內容管理在網絡教學中的應用主要是學習內容管理系統(tǒng)。
 學習內容管理系統(tǒng)結合了學習管理系統(tǒng)的學習追蹤、管理和內容管理系統(tǒng)的內容創(chuàng)建、發(fā)布、管理等思想,在學習對象和相關網絡學習技術標準的基礎上,提供了一個沒有編程經驗的內容制作者也能制作、存儲、組合和發(fā)布基于學習對象的個性化學習內容的網絡化教學應用系統(tǒng)[5-6]。不同的學習內容管理系統(tǒng)開發(fā)商提供的系統(tǒng)不盡相同,但是,每個學習內容管理系統(tǒng)都應具有以下4個基本構件:學習對象倉庫(Learning object repository)、學習內容創(chuàng)作編輯(Automated authoring application)、學習內容的動態(tài)發(fā)布接口(Dynamic delivery interface)和系統(tǒng)管理應用(Administrative application)。
 發(fā)展網絡教育,擁有大量高質量的、可共享的網絡學習資源至關重要,沒有資源,網絡教學就成了無源之水。學習對象的提出為提高網絡學習資源的可重用性、可共享性以及互操作提供了一種思路?;谛染W絡教學的特點及需求,借鑒學習對象的思想,結合 XML技術的應用,參照國際學習資源相關標準[7],提出了一個面向網絡教學的學習資源模型。模型由內容組件模型、元數據模型和內容包裝模型三部分構成。內容組件用于按層次重構學習資源,解決學習資源重復使用和共享問題;元數據模型用于描述內容組件的各類公共屬性,解決學習資源的檢索、交換等問題;內容包裝模型用于對學習資源組織和打包,提供在不同的學習環(huán)境中交換學習資源的機制。
 本文結合J2EE技術設計的特點,提出了一個面向網絡教學的學習資源模型,基于該模型采用JSF框架設計并實現(xiàn)了一個通用的學習內容管理系統(tǒng)。
1 學習內容管理系統(tǒng)設計
 (1)系統(tǒng)組成:學習內容管理系統(tǒng)分成6個子系統(tǒng)、分別是學習對象管理系統(tǒng)、內容發(fā)布系統(tǒng)、學習資源庫管理系統(tǒng)、課程管理系統(tǒng)、用戶管理系統(tǒng)和其他支持系統(tǒng)。另外,從系統(tǒng)邏輯上看,可以分為3個層次,分別是用戶界面層、系統(tǒng)業(yè)務層和物理存儲層。
   (2)系統(tǒng)體系結構:根據應用的實際要求,學習內容管理系統(tǒng)J2EE架構規(guī)范,構建典型的B/S應用。學習內容管理系統(tǒng),在邏輯上基于采用JSF(Java Server Faces)的開發(fā)平臺,業(yè)務上共分為3層結構,客戶端層、Web服務端和應用服務端。其中客戶端主要形成學習內容的界面體現(xiàn)形式,Web服務端用于動態(tài)生成客戶端需要的界面,應用服務端主要用來進行學習內容管理系統(tǒng)的業(yè)務處理,負責與后臺的數據庫打交道。系統(tǒng)體系結構如圖1所示。

   (3)數據模型設計:將數據分為兩個部分,一是學習內容管理系統(tǒng)需要使用到的基礎數據,二是各個子系統(tǒng)使用的數據。學習內容管理系統(tǒng)的基礎數據主要由學習資源模型的3層數據組成。首先是與學習素材有關的數據表,這些數據表用來保存與學習素材物理存儲有關的信息;其次是與學習內容對象有關的數據表,最后是與應用對象有關的數據表。
2 關鍵技術
2.1基于JSF的Web層實現(xiàn)

 在學習內容管理系統(tǒng)中,系統(tǒng)登錄、學習內容信息的查詢、添加、修改、生成、內容發(fā)布都要通過JSP頁面與用戶交互。由于JSF提供了標簽庫,大部分的頁面利用JSF標簽庫的標簽就可實現(xiàn)。在JSP文件的開始部分,首先要引入標簽。
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
  <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
  <%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>
  這樣,JSP文件就可以使用JSF標簽了。在contentEditor.jsp中,主要使用了<h:form>、<t:inputHtml>、<h:commandButton>標簽。部分代碼如下:
    <h:form>
      <t:inputHtml value=”#{editor.text}” style=”height: 60ex;” />
      <h:commandButton value=”保存” action=”#{editor.save}”type=”submit”/>
  </h:form>
    JSF使用受管理bean來實現(xiàn)界面設計與業(yè)務邏輯的分離。在上面的代碼中,標簽就使用了一個名為editor的受管理bean將界面設計與業(yè)務邏輯分割開。<t:inputHTML/>標簽在界面上顯示為一個HTML輸入區(qū),同時把輸入數據與editor的text屬性相關聯(lián)。<h:commandButton/>標簽在界面上為一個名為“保存”的命令按鈕,同時利用標簽的action屬性把標簽與editor的save方法關聯(lián)起來。
  按照JSF框架的定義,受管理bean是在faces-config.xml配置文件中定義的,這個XML配置文件放置在/WEB-INF目錄下面。
  <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN" "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
  <faces-config>
          … …    
          <managed-bean>
              <managed-bean-name>editor</managed-bean-
            name>
              <managed-bean-class>mtn.gfkd.lmcs.web.
            EditorFace
             </managed-bean-class>
              <managed-bean-scope>session</managed-
            bean-scope>
          </managed-bean>
      … …
      </faces-config>
    上面是faces-config.xml的部分代碼,表示:構造mtn.gfkd.lcms.web.EditorFace類的一個對象,命名為editor,并且在session期間一直保持激活狀態(tài),也就是說它用來處理來自相同客戶端的請求。完成受管理bean的定義后,JSF標簽就可以訪問editor的屬性和方法。
2.2 EJB層實現(xiàn)
  系統(tǒng)的EJB層主要由5個無狀態(tài)會話Bean和ServiceLocator單例類[8]組成,5個EJB分別是Learning
ObjectEJB、 LearningResourceEJB、ContentPublishEJB、Course
EJB和UserEJB。系統(tǒng)的業(yè)務邏輯是由EJB處理Web層EJBService傳遞過來的用戶請求,調用DaoManager來實現(xiàn)的。
     以LearningObjectEJB為例,這個EJB主要處理的是學習資源模型中的模型對象。由于學習資源模型分為3個層次,其中涉及到的模型對象多,模型對象間的關系復雜,因此在此應用建造者模式來創(chuàng)建這些模型對象。LearningObjectEJB的結構如圖2所示。

2.3 基于Hibernate的數據層實現(xiàn)
  數據層的實現(xiàn)主要是把實體類映射到數據庫表,并對實體類對象進行添加、修改、刪除、查詢等操作,用DAO模式封裝這些操作,采用Hibernate實現(xiàn)O/R映射及對象管理。持久層實現(xiàn)步驟如下,均按照Hibernate的規(guī)范[9]進行:編寫持久實體類,O/R映射配置,編寫業(yè)務代碼操作持久對象。
2.4 Java NIO應用
  為了解決一個線程綁定模式造成過分消耗資源的問題,可以采取使用非阻塞I/O操作來管理源自一個線程的大量通信,也可以采取服務器使用一個可配置的線程池,從而充分利用多處理器計算機的優(yōu)勢。這兩種方法的核心在于可選擇I/O(selectable I/O)的概念[10]。如果無法進行高效的輪詢來完成工作,那么僅有非阻塞I/O操作(nonblocking I/O)是不夠的。NIO包是在 JDK 1.4 中引入的。NIO 彌補了原來的I/O不足,它在標準 Java 代碼中提供了高速的、面向塊的 I/O。通過定義包含數據的類,以及通過以塊的形式處理這些數據,NIO 不用使用本機代碼就可以利用低級優(yōu)化,這是原來的 I/O 包所無法做到的。NIO通過使用可選擇通道提供了高效的輪詢機制??蛇x擇通道允許向一種特殊類型的監(jiān)聽者注冊,這種監(jiān)聽者稱為選擇器(selector),它可以檢查通道是否準備好以完成諸如讀寫、接受或創(chuàng)建網絡連接等操作。
  通過使用NIO包重新編寫上傳程序,新的學習內容管理系統(tǒng)在處理客戶端上傳大容量文件的時候,解決了原來的過分消耗資源的問題,在網絡條件良好的情況下,系統(tǒng)能夠順利地接收客戶端上傳100 MB以上的文件,并且能夠保證系統(tǒng)整體性能處于良好狀態(tài)。
  本系統(tǒng)采用JSF框架的體系結構,它集學習內容開發(fā)、內容管理、內容發(fā)布于一體,使得教師可以快速地制作、發(fā)布學習內容;遵循IMS標準,系統(tǒng)生成的內容交換包可以在符合IMS標準的不同教學平臺間交換。
參考文獻
[1]  MAYBERRY E. Basics of CMS implementation,http://www.learningcircuits.org.2002/may2002/mayberry.html,2002.
[2]  MINH L D,LYDIA L. An open architecture for ontologyenabled content management systems: a case study in  managing learning objects. Proceedings Lecture Notes in Computer Science,2006.
[3]  BROOKS C, PANESAR R,GREER J. Awareness and  collaboration in the iHelp courses content management  system. Innovative Approaches for Learning and Knowledge  Sharing, Proceedings Lecture Notes in Computer Science,2006.
[4]  韓嘯,曹輝.內容管理的關鍵技術[J]. 中國傳媒科技,2004(5).
[5]  孔維宏. 基于學習設計規(guī)范的學習內容管理系統(tǒng)設計[D].    華南師范大學碩士論文,2004.
[6]  付琴.標準化的學習內容管理系統(tǒng)研究[D].華中科技大學碩士論文,2002.
[7]  付琴,程文青,楊宗凱.SCORM——可共享對象參考模型的研究[C]. 中國遠程教育,2003(1).
[8]  ALUR D,CRUPI J,MALKS D. J2EE核心模式(第2版)[M]. 北京:機械工業(yè)出版社,2005.
[9]  孫衛(wèi)琴. 精通Hibernate:Java對象持久化技術詳解[M]. 北京:電子工業(yè)出版社,2005.
[10]  彭晨陽. Java 實用系統(tǒng)開發(fā)指南.北京:機械工業(yè)出版社,2005.

此內容為AET網站原創(chuàng),未經授權禁止轉載。