引言?
隨著科技的不斷發(fā)展,傳統(tǒng)的面授教學已遠遠不能滿足當今社會教育的需要。Internet的不斷發(fā)展與普及,為改革教育模式提供了契機。傳統(tǒng)的面授教育模式受到地理空間,優(yōu)秀教員人數(shù)與其他資源短缺等的限制。遠程教育作為教學的一種輔助手段,是教學形式的一場革命。它利用現(xiàn)代網(wǎng)絡技術,實現(xiàn)了教與學的交互性,遠距離授課及有效的利用各種有限資源的能力。在遠程教學過程中,教員與學員在空間上是分離的,因此需要通過Internet來實現(xiàn)這種交流。在傳統(tǒng)教學中,一位優(yōu)秀教員一次只能對幾十個學員進行授課,而通過遠程教學,全國各地成百上千個個學員都能有幸聽到他精彩的講課。要是實現(xiàn)以上目的,必須開發(fā)一個遠程教學平臺,以提供各種遠程教學支持。?
1? 系統(tǒng)設計原則?
系統(tǒng)設計首先應當符合實用性和通用性原則。也就是說開發(fā)出的系統(tǒng)應當符合用戶實際需求,操作界面簡單易用。而且應當采用最流行的開發(fā)平臺和軟件,和最通用的文件格式,使之具有通用性和實用性。?
系統(tǒng)設計應當符合的第二條原則是可擴展性和易維護性。由于用戶需求有可能隨時間而發(fā)生變化,可能需要增加新的功能,需要將新的更先進的技術融入其中,或某些地方需要予以完善和修正。具備可擴展性和易維護性的系統(tǒng)才是一個具有較長生命周期的系統(tǒng)。?
此外,系統(tǒng)設計還應符合安全性原則。對于運行于網(wǎng)絡的系統(tǒng),安全性是絕不可少的。一個缺少安全性的系統(tǒng)很難保證用戶資源不受到破壞,用戶機密信息不被竊取,有時甚至連系統(tǒng)正常運行都有困難。安全性是企業(yè)和用戶利益的保障。?
2? 為什么選用J2EE技術開發(fā)遠程教學系統(tǒng)?
目前用于開發(fā)網(wǎng)絡平臺的技術有多種。比較著名的有微軟的.NET技術和Sun的SUN ONE。J2EE技術是SUN ONE的核心。.NET技術理論上可支持多種語言,但它只能在Windows上運行。對于遠程教學平臺需要很高的穩(wěn)定性與安全性,需要支持大量客戶并行訪問,此時客戶可能選擇Unix或Linux操作系統(tǒng)而非WindowsNT。而且雖然.NET中的有些技術(比如SOAP)是公開的機制,但它的核心技術都不公開。J2EE則可運行于任何有JVM的平臺。J2EE的所有標準都是公開的,許多廠商都可提供兼容的產(chǎn)品和開發(fā)工具。在WEB應用程序的開發(fā)中,人有選用JSP與JavaBean相結(jié)合來開發(fā),采用這種方法開發(fā)WEB應用程序比較簡單,但它只適合用于開發(fā)中小型的應用程序。對于大型WEB應用系統(tǒng),需要考慮處理大量對數(shù)據(jù)庫并發(fā)訪問的高效性以及很高的安全性,穩(wěn)定性和可擴展性。這些都是采用JSP與Jav-aBean技術無法很好的實現(xiàn)的。?
使用J2EE平臺開發(fā)具有以下優(yōu)勢:?
* 簡化的結(jié)構和開發(fā)過程。?
* 適應各種變化要求的可伸縮性?
* 與先有信息系統(tǒng)的集成。?
* 對服務器、工具和組件的選擇。?
* 靈活的安全模型。?
采用J2EE技術來開發(fā)遠程教學平臺,能更好地實現(xiàn)安全性與可擴展性,而且,所有EJB容器都提供對事務和EJB組件的生命周期管理的自動化支持。所以,采用J2EE技術開發(fā)遠程教學平臺是一個很好的選擇。?
3? J2EE程序設計簡介?
3.1J2EE平臺簡介?
J2EE的設計目的是提供對服務端和客戶端的支持從而推動企業(yè)及企業(yè)眾多層應用程序的發(fā)展。一般來說,這些應用程序都有一個客戶層以提供用戶界面,一個或多個中間層模塊用來提供客戶服務以及應用程序所要用到的商務邏輯,另外還有一個后端的企業(yè)信息系統(tǒng)用來提供數(shù)據(jù)管理。圖1描述了組成一個典型的J2EE環(huán)境的各種組件和服務。?
3.2 EJB的設計?
J2EE平臺的EJB層提供了一種標準服務器端分布式組件模型,它可以大大簡化編寫商務邏輯的任務。要使用J2EE平臺提供的服務,商務對象必須由企業(yè)bean來實現(xiàn)。有兩種主要的企業(yè)bean:實體bean和會話bean。?
實體bean的特性:表示持續(xù)數(shù)據(jù)、提供多個客戶的并行訪問、表示一個數(shù)據(jù)的邏輯性紀錄、提供健壯的、可以長時間存在的持續(xù)性數(shù)據(jù)管理。?
??????
有狀態(tài)會話bean的特性:保存特定客戶的狀態(tài)、表示非持續(xù)性對象、表示商務對象間的工作流程。?
無狀態(tài)會話bean的特性:模型化可重用的服務對象、提供高性能、同時對多行進行操作、提供數(shù)據(jù)的過程視圖。例如,課程目錄可設計為無狀態(tài)會話bean。它可以查找數(shù)據(jù)庫中有關課程目錄的表,得到相應的課程目錄,并將其顯示給客戶。?
4? 使用MVC設計應用程序?
4.1MVC結(jié)構簡介?
開發(fā)遠程教學系統(tǒng)時,可采用MVC(Model-View-Controller)應用體系結(jié)構來分析分布式應用程序的特性。該抽象有助于將一個應用程序分割為更易于重構的邏輯組件。這種設計體系結(jié)構允許商務邏輯、數(shù)據(jù)和表示邏輯清晰地分離開來,也使內(nèi)容提供者和應用程序開發(fā)者只需關注那些他們擅長的領域。?
* 模型是應用程序數(shù)據(jù)和用來改變這些數(shù)據(jù)的商務規(guī)則的一種軟件抽象。一個模型可被所有的應用程序客戶端共享。?
* 視圖用來顯示模型的內(nèi)容。它訪問來自模型的數(shù)據(jù),并指定如何顯示數(shù)據(jù)。?
* 控制器定義應用程序的行為,它解釋用戶的行為并把他們應射程可以由模型完成的動作。每個呈現(xiàn)不同功能的客戶都需要單獨的控制器。控制器維護模型中的數(shù)據(jù),并確保視圖所表示的數(shù)據(jù)于相應的模型一致。?
4.2使用MVC設計應用程序功能模塊?
根據(jù)MVC設計思想,可設計跟學員有關的應用程序功能模塊如圖2。?
?????
圖2當中的Model部分包括了幾個企業(yè)javaBean。根據(jù)EJB的設計原則,可將課程目錄模塊設計為Entity bean。每個課程目錄實例對應數(shù)據(jù)庫中課程表的一條記錄。在線學習以及網(wǎng)上考試都應設計為有狀態(tài)Session bean。因為每個學員都是根據(jù)自己的需要選擇不同的內(nèi)容學習,特定的用戶有自己特定的狀態(tài),而且該狀態(tài)只在用戶進行該門課程學習時保持,當用戶離開,也就是這一Session過程結(jié)束時,該狀態(tài)不再有效,不需要將剛才的狀態(tài)保存到數(shù)據(jù)庫中,因此設計為Bession bean。網(wǎng)上考試同理。每個學員可根據(jù)自己的學習情況,選擇適合自己深度的不同測試試卷進行測試。在線答疑模塊可設計為無狀態(tài)Session bean。不需要單獨對每個學員設計自己的答疑狀態(tài),每個學員登陸該界面后,應該既可看到自己的答疑內(nèi)容,也可看到別的學員的的疑問及解答,也許別人的問題也正是自己的問題。用戶賬號應當保存到數(shù)據(jù)庫中,所以應為Entity bean。?
View部分包含了呈現(xiàn)于客戶端的多個界面。用戶選擇不同的功能就會有不同的界面。這些界面可稱之為視圖。用戶視圖可用JSP來設計。在涉及時,可將界面的共同部分設計為一個或多個單獨的模版,并使用JSP的include語句將其加入到界面相應的位置。如:<%include file='beader.JSP'%> 究竟當前應該選擇顯示哪個界面,則是由Controller控制的。Controller部分有一個專門用于控制視圖的模塊View Controller,它接收來自客戶端的HTTP請求,將該請求的參數(shù)傳遞給另一個Controller模塊EJBController。該模塊根據(jù)參數(shù)調(diào)用Model中相應的模塊,執(zhí)行相應的動作,再將結(jié)果參數(shù)傳遞給View Controller,由它調(diào)用相應的JSP文件生成相應的視圖。View Controller可由Servlet來實現(xiàn),因此它應屬于Web tier中。Servlet可以通過HTTPSession和Servelet Context對象保存應用程序狀態(tài),可以很方便的接收和傳遞來自客戶端的HTTP請求。?
由于Model中有多個模塊,使用Session Fa?ade可為客戶端的調(diào)用提供一個統(tǒng)一的接口,它使得Model中的各模塊的細節(jié)問題對于客戶端被隱藏,增加了安全性,并使EJBController操作更容易。?
當跨層訪問數(shù)據(jù)時,由于數(shù)據(jù)很多,會造成網(wǎng)絡交通繁忙。為了減輕大量數(shù)據(jù)對網(wǎng)絡線路造成的壓力,可采用粗粒度訪問數(shù)據(jù)的方法。即采用Value Object將相應的多個數(shù)據(jù)封裝到一個值對象當中。設計Value Object時,應使其實現(xiàn)Seriliable,并將它設計得相對小一些,以減少額外的類帶來的程序復雜度。?
目前數(shù)據(jù)庫有多種,訪問不同的數(shù)據(jù)庫有不同的策略,對數(shù)據(jù)庫的操作也有多種,比較復雜,尤其是當采用BMP設計數(shù)據(jù)庫時更為復雜,應此有必要設計一個單獨的類作為一個專門操縱數(shù)據(jù)庫的工具。DAO的作用就在于此。?
結(jié)束語?
遠程教學系統(tǒng)有著非常廣闊的前景,必將對傳統(tǒng)教學模式產(chǎn)生深遠影響?;贘2EE技術的遠程教學系統(tǒng)在穩(wěn)定性,完全性和可擴展性方面都有著使用其他技術不可比擬的優(yōu)勢。遠程教學系統(tǒng)是一個系統(tǒng)工程,本文針對開發(fā)系統(tǒng)應使用何種技術以及開發(fā)該系統(tǒng)的設計模式作了一些論述。本文僅在我們工作的基礎上對這一問題作了初步的探討,怎樣更好地利用網(wǎng)絡資源,怎樣使教員與學員、學員與學員、教員與教員間的交流更為方便、快捷,怎樣在遠程教學中引入人工智能技術等等,這些問題還有待進一步研究。對于如何更好地利用網(wǎng)絡資源,如何使遠程教學實現(xiàn)智能化,使教員與學員、學員與學員、教員與教員間的交流更為方便,這些問題還有待進一步研究。?
參考文獻?
1.Mark Johson J2EE Platform Design Patterns for Enterprise Applications JWEE BluePrints Sun Microsystems,Inc?