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

摘   要: 以學(xué)校的數(shù)字化校園建設(shè)為背景,基于面向?qū)ο蠹夹g(shù)和學(xué)習(xí)內(nèi)容管理技術(shù),提出了一個(gè)面向網(wǎng)絡(luò)教學(xué)的學(xué)習(xí)資源模型,并基于該模型采用JSF框架設(shè)計(jì)和實(shí)現(xiàn)了一個(gè)通用的學(xué)習(xí)內(nèi)容管理系統(tǒng)。
關(guān)鍵詞: 學(xué)習(xí)內(nèi)容管理; 學(xué)習(xí)資源; JSF框架

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

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

 在學(xué)習(xí)內(nèi)容管理系統(tǒng)中,系統(tǒng)登錄、學(xué)習(xí)內(nèi)容信息的查詢、添加、修改、生成、內(nèi)容發(fā)布都要通過(guò)JSP頁(yè)面與用戶交互。由于JSF提供了標(biāo)簽庫(kù),大部分的頁(yè)面利用JSF標(biāo)簽庫(kù)的標(biāo)簽就可實(shí)現(xiàn)。在JSP文件的開(kāi)始部分,首先要引入標(biāo)簽。
    <%@ 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標(biāo)簽了。在contentEditor.jsp中,主要使用了<h:form>、<t:inputHtml>、<h:commandButton>標(biāo)簽。部分代碼如下:
    <h:form>
      <t:inputHtml value=”#{editor.text}” style=”height: 60ex;” />
      <h:commandButton value=”保存” action=”#{editor.save}”type=”submit”/>
  </h:form>
    JSF使用受管理bean來(lái)實(shí)現(xiàn)界面設(shè)計(jì)與業(yè)務(wù)邏輯的分離。在上面的代碼中,標(biāo)簽就使用了一個(gè)名為editor的受管理bean將界面設(shè)計(jì)與業(yè)務(wù)邏輯分割開(kāi)。<t:inputHTML/>標(biāo)簽在界面上顯示為一個(gè)HTML輸入?yún)^(qū),同時(shí)把輸入數(shù)據(jù)與editor的text屬性相關(guān)聯(lián)。<h:commandButton/>標(biāo)簽在界面上為一個(gè)名為“保存”的命令按鈕,同時(shí)利用標(biāo)簽的action屬性把標(biāo)簽與editor的save方法關(guān)聯(lián)起來(lái)。
  按照J(rèn)SF框架的定義,受管理bean是在faces-config.xml配置文件中定義的,這個(gè)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的部分代碼,表示:構(gòu)造mtn.gfkd.lcms.web.EditorFace類的一個(gè)對(duì)象,命名為editor,并且在session期間一直保持激活狀態(tài),也就是說(shuō)它用來(lái)處理來(lái)自相同客戶端的請(qǐng)求。完成受管理bean的定義后,JSF標(biāo)簽就可以訪問(wèn)editor的屬性和方法。
2.2 EJB層實(shí)現(xiàn)
  系統(tǒng)的EJB層主要由5個(gè)無(wú)狀態(tài)會(huì)話Bean和ServiceLocator單例類[8]組成,5個(gè)EJB分別是Learning
ObjectEJB、 LearningResourceEJB、ContentPublishEJB、Course
EJB和UserEJB。系統(tǒng)的業(yè)務(wù)邏輯是由EJB處理Web層EJBService傳遞過(guò)來(lái)的用戶請(qǐng)求,調(diào)用DaoManager來(lái)實(shí)現(xiàn)的。
     以LearningObjectEJB為例,這個(gè)EJB主要處理的是學(xué)習(xí)資源模型中的模型對(duì)象。由于學(xué)習(xí)資源模型分為3個(gè)層次,其中涉及到的模型對(duì)象多,模型對(duì)象間的關(guān)系復(fù)雜,因此在此應(yīng)用建造者模式來(lái)創(chuàng)建這些模型對(duì)象。LearningObjectEJB的結(jié)構(gòu)如圖2所示。

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

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。

相關(guān)內(nèi)容