摘要:基于J2EE框架,采用B/S網(wǎng)絡(luò)的計算模式,對網(wǎng)絡(luò)和網(wǎng)絡(luò)教學(xué)支撐平臺綜合策劃設(shè)計,實(shí)現(xiàn)具有交互性高、跨平臺、開源和可擴(kuò)展性好等特點(diǎn),為我國西北部地區(qū)教育信息化建設(shè)中網(wǎng)絡(luò)教學(xué)平臺構(gòu)建工作的進(jìn)一步研究提供參考。
關(guān)鍵詞:遠(yuǎn)程教育;J2EE;Struts;ibatis;Spring
中圖分類號:TP393文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2009)04-0911-02
Research and Designing of Distance Education based on J2EE
ZENG Fan-gui,Wushour
(Institute of Information Science and Engineering of Xinjiang University,Urumqi 830046,China)
Abstract: Based on the J2EE, and using B/S network computing model forthe network curriculum and teaching support network platform so as to perform such characteristics asintegrated planning design, and bring up the features such as interactive, inter-Platform, open source etc, to provide reference for thefurther study of the digitalization of the education of China's north western region.
Key words:distance eductaion;J2EE;struts;ibatis;spring
1 引言
遠(yuǎn)程教育系統(tǒng)是實(shí)施網(wǎng)絡(luò)教學(xué)的技術(shù)基礎(chǔ),按照遠(yuǎn)程教育技術(shù)標(biāo)準(zhǔn)設(shè)計實(shí)現(xiàn)的網(wǎng)絡(luò)教學(xué)平臺,有相同的教學(xué)資源格式、數(shù)據(jù)傳輸和消息傳輸?shù)耐ㄐ艆f(xié)議、學(xué)習(xí)者模型和學(xué)習(xí)過程記錄方式,將極大地推動遠(yuǎn)程教育的發(fā)展。同時,如何利用價格低廉、高性能的軟硬件技術(shù)縮小我國西北部欠發(fā)達(dá)地區(qū)存在的數(shù)字鴻溝,構(gòu)建一個高效率的現(xiàn)代遠(yuǎn)程教育系統(tǒng)是我國教育系統(tǒng)中一個非常重要的課題。
2 系統(tǒng)概述
遠(yuǎn)程教學(xué)系統(tǒng)是一套提供網(wǎng)絡(luò)環(huán)境下教學(xué)服務(wù)的系統(tǒng)軟件。通過提供一套切實(shí)可用的網(wǎng)絡(luò)教育支撐工具,以支持網(wǎng)絡(luò)輔助教學(xué)活動的各個環(huán)節(jié)。通過給學(xué)習(xí)者提供包括學(xué)習(xí)導(dǎo)航、答疑、查詢、討論、作業(yè)布置等手段,提高網(wǎng)絡(luò)教學(xué)過程中學(xué)習(xí)者的學(xué)習(xí)效率。
3 開發(fā)環(huán)境和整體框架
系統(tǒng)開發(fā)環(huán)境選擇Eclipse+MyEclipse作為系統(tǒng)開發(fā)平臺(IDE),開發(fā)語言為面向?qū)ο笳Z言java。以J2EE應(yīng)用服務(wù)器技術(shù)、工作流中間件、消息中間件技術(shù)、采用開放技術(shù)標(biāo)準(zhǔn),便于與基于不同開發(fā)技術(shù)實(shí)現(xiàn)的各種內(nèi)外部系統(tǒng)互聯(lián)互通.
1) 數(shù)據(jù)庫服務(wù)器。數(shù)據(jù)庫服務(wù)器為客戶應(yīng)用提供系統(tǒng)數(shù)據(jù)的錄入,查詢以及多用戶管理等功能。后臺數(shù)據(jù)庫服務(wù)器采用的是Oracle10g,通過數(shù)據(jù)分區(qū)技術(shù)實(shí)現(xiàn)與其他系統(tǒng)數(shù)據(jù)在同一個數(shù)據(jù)庫服務(wù)器上的獨(dú)立存儲;
2) 應(yīng)用服務(wù)器。應(yīng)用服務(wù)器采用的是Tomcat6.0,它及時響應(yīng)用戶提出的請求,保證更大的用戶連接與穩(wěn)定性,使頁面訪問速度更快。
4 系統(tǒng)的功能模型圖
圖1為系統(tǒng)的功能模型圖。
5 實(shí)現(xiàn)技術(shù)
5.1 Struts技術(shù)
Struts是Apache組織的一個項(xiàng)目,像其他的Apache組織的項(xiàng)目一樣,它也是開放源碼項(xiàng)目。Struts是一個比較好的MVC框架提供了對開發(fā)MVC系統(tǒng)的底層支持,它采用的主要技術(shù)是Servlet,JSP和custom tag library。
作為一個MVC的框架,Struts對Model、View和Controller都提供了對應(yīng)的實(shí)現(xiàn)組件:
1) Controller:控制器的作用是從客戶端接受請求,并且選擇執(zhí)行相應(yīng)的業(yè)務(wù)邏輯,然后把響應(yīng)結(jié)果送回到客戶端。在Struts中Controller功能由圖中ActionServlet和ActionMapping對象構(gòu)成:核心是一個Servlet類型的對象ActionServlet,它用來接受客戶端的請求。ActionServlet包括一組基于配置的ActionMapping對象,每個ActionMapping對象實(shí)現(xiàn)了一個請求到一個具體的Model部分中Action處理器對象之間的映射。
2) Model: MVC系統(tǒng)中的Model部分從概念上可以分為兩類--系統(tǒng)的內(nèi)部狀態(tài),和改變系統(tǒng)狀態(tài)的動作。Struts為Model部分提供了Action和ActionForm對象:所有的Action處理器對象都是開發(fā)者從Struts的Action類派生的子類。Action處理器對象封裝了具體的處理邏輯,調(diào)用業(yè)務(wù)邏輯模塊,并且把響應(yīng)提交到合適的View組件以產(chǎn)生響應(yīng)。Struts提供的ActionForm組件對象,它可以通過定義屬性描述客戶端表單數(shù)據(jù)。開發(fā)者可以從它派生子類對象,利用它和Struts提供的自定義標(biāo)記庫結(jié)合可以實(shí)現(xiàn)對客戶端的表單數(shù)據(jù)的良好封裝和支持,Action處理器對象可以直接對它進(jìn)行讀寫,而不再需要和request、response對象進(jìn)行數(shù)據(jù)交互。通過ActionForm組件對象實(shí)現(xiàn)了對View和Model之間交互的支持。Struts通常建議使用一組JavaBean表示系統(tǒng)的內(nèi)部狀態(tài),根據(jù)系統(tǒng)的復(fù)雜度也可以使用像Entity EJB 和 Session EJB等組件來實(shí)現(xiàn)系統(tǒng)狀態(tài)。Struts建議在實(shí)現(xiàn)時把\"做什么\"(Action)和\"如何做\"(業(yè)務(wù)邏輯)分離。這樣可以實(shí)現(xiàn)業(yè)務(wù)邏輯的重用。
3) View:Struts應(yīng)用中的View部分是通過JSP技術(shù)實(shí)現(xiàn)的。Struts提供了自定義的標(biāo)記庫可以使用,通過這些自定義標(biāo)記可以非常好地和系統(tǒng)的Model部分交互,通過使用這些自定義標(biāo)記創(chuàng)建的JSP表單,可以實(shí)現(xiàn)和Model部分中的ActionForm的映射,完成對用戶數(shù)據(jù)的封裝,同時這些自定義標(biāo)記還提供了像模板定制等多種顯示功能。
5.2 ibatis持久化技術(shù)
本系統(tǒng)采用了輕量級O/R Mapping工具ibtais進(jìn)行數(shù)據(jù)持久化的工作。相對Hibernate和Apache OJB等“一站式”O(jiān)RM解決方案而言,ibatis 是一種“半自動化”的ORM實(shí)現(xiàn)。所謂“半自動”,可能理解上有點(diǎn)生澀??v觀目前主流的 ORM,無論 Hibernate 還是Apache OJB,都對數(shù)據(jù)庫結(jié)構(gòu)提供了較為完整的封裝,提供了從 POJO 到數(shù)據(jù)庫表的全套映射機(jī)制。程序員往往只需定義好了POJO 到數(shù)據(jù)庫表的映射關(guān)系,即可通過 Hibernate或者 OJB 提供的方法完成持久層操作。程序員甚至不需要對 SQL 的熟練掌握,
Hibernate/OJB 會根據(jù)制定的存儲邏輯,自動生成對應(yīng)的 SQL 并調(diào)用 JDBC 接口加以執(zhí)行。使用ibatis 提供的ORM機(jī)制,對業(yè)務(wù)邏輯實(shí)現(xiàn)人員而言,面對的是純粹的 Java對象,這一層與通過 Hibernate 實(shí)現(xiàn) ORM 而言基本一致,而對于具體的數(shù)據(jù)操作,Hibernate會自動生成SQL 語句,而ibatis 則要求開發(fā)者編寫具體的 SQL 語句。相對Hibernate等“全自動”O(jiān)RM機(jī)制而言,ibatis 以 SQL開發(fā)的工作量和數(shù)據(jù)庫移植性上的讓步,為系統(tǒng)設(shè)計提供了更大的自由空間。作為“全自動”O(jiān)RM實(shí)現(xiàn)的一種有益補(bǔ)充,ibatis 的出現(xiàn)顯得別具意義。
5.3 Spring技術(shù)
核心容器提供Spring框架的基本功能。核心容器的主要組件是BeanFactory,它是工廠模式的實(shí)現(xiàn)。BenaFactory使用控制反轉(zhuǎn)(IOC)模式將應(yīng)用程序的配置和依賴性規(guī)范與實(shí)際的應(yīng)用程序代碼分開。Spring上下文是一個配置文件,向Spring框架提供上下文信息。Spring上下文包括企業(yè)服務(wù),例如JNDI、EJB、電子郵件、國際化、校驗(yàn)和調(diào)度功能。通過配置管理特性,SpringAOP模塊直接將面向方面的編程功能集成到Spring框架中。通過使用SpringAOP,不用依賴EJB組件,就可以將聲明性事務(wù)管理集成到應(yīng)用程序中。JDBCDAO抽象層提供了有意義的異常層次結(jié)構(gòu),異常層次結(jié)構(gòu)簡化了錯誤處理,并且極大地降低了需要編寫的異常代碼數(shù)量。SpringDAO的面向JDBC的異常遵從通用的DAO異常層次結(jié)構(gòu)。
6 小結(jié)
按照上面框架開發(fā)的新疆遠(yuǎn)程教育系統(tǒng),不僅能夠提供很好的資源共享平臺,而且系統(tǒng)有較好的可擴(kuò)展性和可維護(hù)性。
參考文獻(xiàn):
[1] 范會禮.基于J2EE的網(wǎng)絡(luò)選課系統(tǒng)設(shè)計[J].計算機(jī)應(yīng)用研究,2006(9):0172-03.
[2] 鄧曉輝.交互式遠(yuǎn)程網(wǎng)絡(luò)教學(xué)平臺的設(shè)計和應(yīng)用[D].華中科技大學(xué).2006.
[3] 趙金海.基于Web的自動答疑技術(shù)研究及系統(tǒng)實(shí)現(xiàn)[D].重慶大學(xué).2007.
[4] 石利平.網(wǎng)絡(luò)在線教學(xué)系統(tǒng)的自動答疑系統(tǒng)的研究與開發(fā)[D].華南理工大學(xué),2005.
[5] 陳天河.Struts、Hibernate、Spring集成開發(fā)寶典[M].北京:電子工業(yè)出版社,2006.