《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 其他 > 業(yè)界動(dòng)態(tài) > 基于J2EE技術(shù)的遠(yuǎn)程教學(xué)系統(tǒng)設(shè)計(jì)

基于J2EE技術(shù)的遠(yuǎn)程教學(xué)系統(tǒng)設(shè)計(jì)

2009-01-14
作者:張玉強(qiáng)

引言?

隨著科技的不斷發(fā)展,,傳統(tǒng)的面授教學(xué)已遠(yuǎn)遠(yuǎn)不能滿足當(dāng)今社會(huì)教育的需要,。Internet的不斷發(fā)展與普及,,為改革教育模式提供了契機(jī)。傳統(tǒng)的面授教育模式受到地理空間,,優(yōu)秀教員人數(shù)與其他資源短缺等的限制。遠(yuǎn)程教育作為教學(xué)的一種輔助手段,,是教學(xué)形式的一場(chǎng)革命,。它利用現(xiàn)代網(wǎng)絡(luò)技術(shù),實(shí)現(xiàn)了教與學(xué)的交互性,,遠(yuǎn)距離授課及有效的利用各種有限資源的能力,。在遠(yuǎn)程教學(xué)過(guò)程中,教員與學(xué)員在空間上是分離的,,因此需要通過(guò)Internet來(lái)實(shí)現(xiàn)這種交流,。在傳統(tǒng)教學(xué)中,一位優(yōu)秀教員一次只能對(duì)幾十個(gè)學(xué)員進(jìn)行授課,,而通過(guò)遠(yuǎn)程教學(xué),,全國(guó)各地成百上千個(gè)個(gè)學(xué)員都能有幸聽(tīng)到他精彩的講課。要是實(shí)現(xiàn)以上目的,,必須開(kāi)發(fā)一個(gè)遠(yuǎn)程教學(xué)平臺(tái),,以提供各種遠(yuǎn)程教學(xué)支持。?

1? 系統(tǒng)設(shè)計(jì)原則?

系統(tǒng)設(shè)計(jì)首先應(yīng)當(dāng)符合實(shí)用性和通用性原則,。也就是說(shuō)開(kāi)發(fā)出的系統(tǒng)應(yīng)當(dāng)符合用戶實(shí)際需求,,操作界面簡(jiǎn)單易用。而且應(yīng)當(dāng)采用最流行的開(kāi)發(fā)平臺(tái)和軟件,,和最通用的文件格式,,使之具有通用性和實(shí)用性,。?

系統(tǒng)設(shè)計(jì)應(yīng)當(dāng)符合的第二條原則是可擴(kuò)展性和易維護(hù)性。由于用戶需求有可能隨時(shí)間而發(fā)生變化,,可能需要增加新的功能,,需要將新的更先進(jìn)的技術(shù)融入其中,或某些地方需要予以完善和修正,。具備可擴(kuò)展性和易維護(hù)性的系統(tǒng)才是一個(gè)具有較長(zhǎng)生命周期的系統(tǒng),。?

此外,系統(tǒng)設(shè)計(jì)還應(yīng)符合安全性原則,。對(duì)于運(yùn)行于網(wǎng)絡(luò)的系統(tǒng),,安全性是絕不可少的。一個(gè)缺少安全性的系統(tǒng)很難保證用戶資源不受到破壞,,用戶機(jī)密信息不被竊取,,有時(shí)甚至連系統(tǒng)正常運(yùn)行都有困難。安全性是企業(yè)和用戶利益的保障,。?

2? 為什么選用J2EE技術(shù)開(kāi)發(fā)遠(yuǎn)程教學(xué)系統(tǒng)?

目前用于開(kāi)發(fā)網(wǎng)絡(luò)平臺(tái)的技術(shù)有多種,。比較著名的有微軟的.NET技術(shù)和Sun的SUN ONE。J2EE技術(shù)是SUN ONE的核心,。.NET技術(shù)理論上可支持多種語(yǔ)言,,但它只能在Windows上運(yùn)行。對(duì)于遠(yuǎn)程教學(xué)平臺(tái)需要很高的穩(wěn)定性與安全性,,需要支持大量客戶并行訪問(wèn),,此時(shí)客戶可能選擇Unix或Linux操作系統(tǒng)而非WindowsNT。而且雖然.NET中的有些技術(shù)(比如SOAP)是公開(kāi)的機(jī)制,,但它的核心技術(shù)都不公開(kāi),。J2EE則可運(yùn)行于任何有JVM的平臺(tái)。J2EE的所有標(biāo)準(zhǔn)都是公開(kāi)的,,許多廠商都可提供兼容的產(chǎn)品和開(kāi)發(fā)工具,。在WEB應(yīng)用程序的開(kāi)發(fā)中,人有選用JSP與JavaBean相結(jié)合來(lái)開(kāi)發(fā),,采用這種方法開(kāi)發(fā)WEB應(yīng)用程序比較簡(jiǎn)單,,但它只適合用于開(kāi)發(fā)中小型的應(yīng)用程序。對(duì)于大型WEB應(yīng)用系統(tǒng),,需要考慮處理大量對(duì)數(shù)據(jù)庫(kù)并發(fā)訪問(wèn)的高效性以及很高的安全性,,穩(wěn)定性和可擴(kuò)展性。這些都是采用JSP與Jav-aBean技術(shù)無(wú)法很好的實(shí)現(xiàn)的,。?

使用J2EE平臺(tái)開(kāi)發(fā)具有以下優(yōu)勢(shì):?

* 簡(jiǎn)化的結(jié)構(gòu)和開(kāi)發(fā)過(guò)程,。?

* 適應(yīng)各種變化要求的可伸縮性?

* 與先有信息系統(tǒng)的集成。?

* 對(duì)服務(wù)器,、工具和組件的選擇,。?

* 靈活的安全模型,。?

采用J2EE技術(shù)來(lái)開(kāi)發(fā)遠(yuǎn)程教學(xué)平臺(tái),能更好地實(shí)現(xiàn)安全性與可擴(kuò)展性,,而且,,所有EJB容器都提供對(duì)事務(wù)和EJB組件的生命周期管理的自動(dòng)化支持。所以,,采用J2EE技術(shù)開(kāi)發(fā)遠(yuǎn)程教學(xué)平臺(tái)是一個(gè)很好的選擇,。?

3? J2EE程序設(shè)計(jì)簡(jiǎn)介?

3.1J2EE平臺(tái)簡(jiǎn)介?

J2EE的設(shè)計(jì)目的是提供對(duì)服務(wù)端和客戶端的支持從而推動(dòng)企業(yè)及企業(yè)眾多層應(yīng)用程序的發(fā)展。一般來(lái)說(shuō),,這些應(yīng)用程序都有一個(gè)客戶層以提供用戶界面,,一個(gè)或多個(gè)中間層模塊用來(lái)提供客戶服務(wù)以及應(yīng)用程序所要用到的商務(wù)邏輯,另外還有一個(gè)后端的企業(yè)信息系統(tǒng)用來(lái)提供數(shù)據(jù)管理,。圖1描述了組成一個(gè)典型的J2EE環(huán)境的各種組件和服務(wù),。?

3.2 EJB的設(shè)計(jì)?

J2EE平臺(tái)的EJB層提供了一種標(biāo)準(zhǔn)服務(wù)器端分布式組件模型,它可以大大簡(jiǎn)化編寫(xiě)商務(wù)邏輯的任務(wù),。要使用J2EE平臺(tái)提供的服務(wù),,商務(wù)對(duì)象必須由企業(yè)bean來(lái)實(shí)現(xiàn)。有兩種主要的企業(yè)bean:實(shí)體bean和會(huì)話bean,。?

實(shí)體bean的特性:表示持續(xù)數(shù)據(jù),、提供多個(gè)客戶的并行訪問(wèn)、表示一個(gè)數(shù)據(jù)的邏輯性紀(jì)錄,、提供健壯的,、可以長(zhǎng)時(shí)間存在的持續(xù)性數(shù)據(jù)管理。?

??????

有狀態(tài)會(huì)話bean的特性:保存特定客戶的狀態(tài),、表示非持續(xù)性對(duì)象,、表示商務(wù)對(duì)象間的工作流程,。?

無(wú)狀態(tài)會(huì)話bean的特性:模型化可重用的服務(wù)對(duì)象,、提供高性能、同時(shí)對(duì)多行進(jìn)行操作,、提供數(shù)據(jù)的過(guò)程視圖,。例如,課程目錄可設(shè)計(jì)為無(wú)狀態(tài)會(huì)話bean,。它可以查找數(shù)據(jù)庫(kù)中有關(guān)課程目錄的表,,得到相應(yīng)的課程目錄,并將其顯示給客戶,。?

4? 使用MVC設(shè)計(jì)應(yīng)用程序?

4.1MVC結(jié)構(gòu)簡(jiǎn)介?

開(kāi)發(fā)遠(yuǎn)程教學(xué)系統(tǒng)時(shí),,可采用MVC(Model-View-Controller)應(yīng)用體系結(jié)構(gòu)來(lái)分析分布式應(yīng)用程序的特性。該抽象有助于將一個(gè)應(yīng)用程序分割為更易于重構(gòu)的邏輯組件,。這種設(shè)計(jì)體系結(jié)構(gòu)允許商務(wù)邏輯,、數(shù)據(jù)和表示邏輯清晰地分離開(kāi)來(lái),,也使內(nèi)容提供者和應(yīng)用程序開(kāi)發(fā)者只需關(guān)注那些他們擅長(zhǎng)的領(lǐng)域。?

* 模型是應(yīng)用程序數(shù)據(jù)和用來(lái)改變這些數(shù)據(jù)的商務(wù)規(guī)則的一種軟件抽象,。一個(gè)模型可被所有的應(yīng)用程序客戶端共享,。?

* 視圖用來(lái)顯示模型的內(nèi)容。它訪問(wèn)來(lái)自模型的數(shù)據(jù),,并指定如何顯示數(shù)據(jù),。?

* 控制器定義應(yīng)用程序的行為,它解釋用戶的行為并把他們應(yīng)射程可以由模型完成的動(dòng)作,。每個(gè)呈現(xiàn)不同功能的客戶都需要單獨(dú)的控制器,。控制器維護(hù)模型中的數(shù)據(jù),,并確保視圖所表示的數(shù)據(jù)于相應(yīng)的模型一致,。?

4.2使用MVC設(shè)計(jì)應(yīng)用程序功能模塊?

根據(jù)MVC設(shè)計(jì)思想,可設(shè)計(jì)跟學(xué)員有關(guān)的應(yīng)用程序功能模塊如圖2,。?

?????

圖2當(dāng)中的Model部分包括了幾個(gè)企業(yè)javaBean,。根據(jù)EJB的設(shè)計(jì)原則,可將課程目錄模塊設(shè)計(jì)為Entity bean,。每個(gè)課程目錄實(shí)例對(duì)應(yīng)數(shù)據(jù)庫(kù)中課程表的一條記錄,。在線學(xué)習(xí)以及網(wǎng)上考試都應(yīng)設(shè)計(jì)為有狀態(tài)Session bean。因?yàn)槊總€(gè)學(xué)員都是根據(jù)自己的需要選擇不同的內(nèi)容學(xué)習(xí),,特定的用戶有自己特定的狀態(tài),,而且該狀態(tài)只在用戶進(jìn)行該門(mén)課程學(xué)習(xí)時(shí)保持,當(dāng)用戶離開(kāi),,也就是這一Session過(guò)程結(jié)束時(shí),,該狀態(tài)不再有效,不需要將剛才的狀態(tài)保存到數(shù)據(jù)庫(kù)中,,因此設(shè)計(jì)為Bession bean,。網(wǎng)上考試同理。每個(gè)學(xué)員可根據(jù)自己的學(xué)習(xí)情況,,選擇適合自己深度的不同測(cè)試試卷進(jìn)行測(cè)試,。在線答疑模塊可設(shè)計(jì)為無(wú)狀態(tài)Session bean。不需要單獨(dú)對(duì)每個(gè)學(xué)員設(shè)計(jì)自己的答疑狀態(tài),,每個(gè)學(xué)員登陸該界面后,,應(yīng)該既可看到自己的答疑內(nèi)容,也可看到別的學(xué)員的的疑問(wèn)及解答,,也許別人的問(wèn)題也正是自己的問(wèn)題,。用戶賬號(hào)應(yīng)當(dāng)保存到數(shù)據(jù)庫(kù)中,所以應(yīng)為Entity bean,。?

View部分包含了呈現(xiàn)于客戶端的多個(gè)界面,。用戶選擇不同的功能就會(huì)有不同的界面,。這些界面可稱之為視圖。用戶視圖可用JSP來(lái)設(shè)計(jì),。在涉及時(shí),,可將界面的共同部分設(shè)計(jì)為一個(gè)或多個(gè)單獨(dú)的模版,并使用JSP的include語(yǔ)句將其加入到界面相應(yīng)的位置,。如:<%include file='beader.JSP'%> 究竟當(dāng)前應(yīng)該選擇顯示哪個(gè)界面,,則是由Controller控制的。Controller部分有一個(gè)專門(mén)用于控制視圖的模塊View Controller,,它接收來(lái)自客戶端的HTTP請(qǐng)求,,將該請(qǐng)求的參數(shù)傳遞給另一個(gè)Controller模塊EJBController。該模塊根據(jù)參數(shù)調(diào)用Model中相應(yīng)的模塊,,執(zhí)行相應(yīng)的動(dòng)作,,再將結(jié)果參數(shù)傳遞給View Controller,由它調(diào)用相應(yīng)的JSP文件生成相應(yīng)的視圖,。View Controller可由Servlet來(lái)實(shí)現(xiàn),,因此它應(yīng)屬于Web tier中。Servlet可以通過(guò)HTTPSession和Servelet Context對(duì)象保存應(yīng)用程序狀態(tài),,可以很方便的接收和傳遞來(lái)自客戶端的HTTP請(qǐng)求,。?

由于Model中有多個(gè)模塊,使用Session Fa?ade可為客戶端的調(diào)用提供一個(gè)統(tǒng)一的接口,,它使得Model中的各模塊的細(xì)節(jié)問(wèn)題對(duì)于客戶端被隱藏,,增加了安全性,并使EJBController操作更容易,。?

當(dāng)跨層訪問(wèn)數(shù)據(jù)時(shí),,由于數(shù)據(jù)很多,會(huì)造成網(wǎng)絡(luò)交通繁忙,。為了減輕大量數(shù)據(jù)對(duì)網(wǎng)絡(luò)線路造成的壓力,,可采用粗粒度訪問(wèn)數(shù)據(jù)的方法。即采用Value Object將相應(yīng)的多個(gè)數(shù)據(jù)封裝到一個(gè)值對(duì)象當(dāng)中,。設(shè)計(jì)Value Object時(shí),,應(yīng)使其實(shí)現(xiàn)Seriliable,,并將它設(shè)計(jì)得相對(duì)小一些,,以減少額外的類帶來(lái)的程序復(fù)雜度。?

目前數(shù)據(jù)庫(kù)有多種,,訪問(wèn)不同的數(shù)據(jù)庫(kù)有不同的策略,,對(duì)數(shù)據(jù)庫(kù)的操作也有多種,比較復(fù)雜,,尤其是當(dāng)采用BMP設(shè)計(jì)數(shù)據(jù)庫(kù)時(shí)更為復(fù)雜,,應(yīng)此有必要設(shè)計(jì)一個(gè)單獨(dú)的類作為一個(gè)專門(mén)操縱數(shù)據(jù)庫(kù)的工具,。DAO的作用就在于此。?

結(jié)束語(yǔ)?

遠(yuǎn)程教學(xué)系統(tǒng)有著非常廣闊的前景,,必將對(duì)傳統(tǒng)教學(xué)模式產(chǎn)生深遠(yuǎn)影響,。基于J2EE技術(shù)的遠(yuǎn)程教學(xué)系統(tǒng)在穩(wěn)定性,,完全性和可擴(kuò)展性方面都有著使用其他技術(shù)不可比擬的優(yōu)勢(shì),。遠(yuǎn)程教學(xué)系統(tǒng)是一個(gè)系統(tǒng)工程,本文針對(duì)開(kāi)發(fā)系統(tǒng)應(yīng)使用何種技術(shù)以及開(kāi)發(fā)該系統(tǒng)的設(shè)計(jì)模式作了一些論述,。本文僅在我們工作的基礎(chǔ)上對(duì)這一問(wèn)題作了初步的探討,,怎樣更好地利用網(wǎng)絡(luò)資源,怎樣使教員與學(xué)員,、學(xué)員與學(xué)員,、教員與教員間的交流更為方便、快捷,,怎樣在遠(yuǎn)程教學(xué)中引入人工智能技術(shù)等等,,這些問(wèn)題還有待進(jìn)一步研究。對(duì)于如何更好地利用網(wǎng)絡(luò)資源,,如何使遠(yuǎn)程教學(xué)實(shí)現(xiàn)智能化,,使教員與學(xué)員、學(xué)員與學(xué)員,、教員與教員間的交流更為方便,,這些問(wèn)題還有待進(jìn)一步研究。?

參考文獻(xiàn)?

1.Mark Johson J2EE Platform Design Patterns for Enterprise Applications JWEE BluePrints Sun Microsystems,Inc?

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章,、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容,、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118,;郵箱:[email protected],。