《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 其他 > 業(yè)界動(dòng)態(tài) > 用J2EE構(gòu)建校園信息化平臺(tái)

用J2EE構(gòu)建校園信息化平臺(tái)

2009-01-06
作者:曲徑

1.引言?

????J2EE技術(shù)自推出以來(lái)經(jīng)過(guò)不斷擴(kuò)展和完善,實(shí)踐證明它所具有的特性正適應(yīng)了目前網(wǎng)絡(luò)計(jì)算模式發(fā)展的需要。其特點(diǎn)主要有:?

?1.可擴(kuò)展性?

??? J2EE技術(shù)的核心是EJB,EJB技術(shù)把業(yè)務(wù)邏輯獨(dú)立出來(lái),作為系統(tǒng)“組件”。當(dāng)業(yè)務(wù)邏輯需要修改時(shí),只需要對(duì)相應(yīng)組件進(jìn)行添加或修改。?

?2.高穩(wěn)定性?

??? J2EE通過(guò)EJB來(lái)進(jìn)行數(shù)據(jù)庫(kù)操作,而J2EE容器成為了處理事務(wù)的主要負(fù)責(zé)者,這使得開(kāi)發(fā)人員不必考慮死鎖,多線程等問(wèn)題。同時(shí)容器對(duì)可能發(fā)生的錯(cuò)誤有對(duì)應(yīng)的處理方法,保證數(shù)據(jù)處理的ACID。?

?3.標(biāo)準(zhǔn)化?

????J2EE逐漸成為分布式計(jì)算模式的標(biāo)準(zhǔn),使得各系統(tǒng)之間的聯(lián)系更加方便。?

2.系統(tǒng)概述?

??? 學(xué)校數(shù)據(jù)實(shí)體的核心是學(xué)生,學(xué)生在整個(gè)在校過(guò)程中的各方面數(shù)據(jù)由不同部門管理,而這些部門之間常常需要對(duì)方的數(shù)據(jù)來(lái)處理自己的業(yè)務(wù)。例如:公寓管理中心在新生入校時(shí)需要教務(wù)處提供學(xué)生名單用于分配宿舍;學(xué)生工作部在對(duì)學(xué)生進(jìn)行考核時(shí)需要公寓管理中心提供學(xué)生生活檔案。?

??? 這些數(shù)據(jù)的交換,傳統(tǒng)方式是通過(guò)紙張表格來(lái)傳遞。這種方式不僅效率低下,而且不能保證是最新的。?

??? 目前大多數(shù)高校已經(jīng)有自己的數(shù)據(jù)庫(kù),校園網(wǎng)也達(dá)到了一定規(guī)模。為校園信息化建設(shè)創(chuàng)造了硬件條件。方案的最終目的是建成一個(gè)校園網(wǎng)內(nèi)的信息交換的數(shù)據(jù)處理平臺(tái),使各部門的數(shù)據(jù)有機(jī)聯(lián)系起來(lái),提高工作效率和減少不必要的失誤。?

??? 同時(shí),由于J2EE的“功能組件”化的特性,對(duì)于某些模塊可以作為開(kāi)源(OpenSource)項(xiàng)目,吸引廣大同學(xué)參與開(kāi)發(fā)。這樣不僅提高了廣大同學(xué)對(duì)Java學(xué)習(xí)的積極性,也降低了系統(tǒng)維護(hù)和更新的開(kāi)銷。?

3.系統(tǒng)具體設(shè)計(jì)實(shí)現(xiàn)?

??? 針對(duì)北京信息工程學(xué)院的軟硬件情況,將部分?jǐn)?shù)據(jù)庫(kù)集中于校園網(wǎng)絡(luò)中心數(shù)據(jù)庫(kù)中,對(duì)于擁有自己獨(dú)立數(shù)據(jù)庫(kù)服務(wù)器的不部門可以通過(guò)部署EJB來(lái)與整個(gè)系統(tǒng)連接。?

??? 現(xiàn)就其中公寓管理系統(tǒng)子模塊的實(shí)現(xiàn)做具體討論。?

3.1? 系統(tǒng)結(jié)構(gòu)及功能

??? 系統(tǒng)中對(duì)每一個(gè)實(shí)體對(duì)應(yīng)一個(gè)CMP EntityBean,采用Stateless SessionBean 來(lái)實(shí)現(xiàn)具體業(yè)務(wù)邏輯,表示層采用Jsp。系統(tǒng)實(shí)現(xiàn)了公寓管理自動(dòng)化,管理員可通過(guò)系統(tǒng)分配宿舍,進(jìn)行物品管理,保修處理等。?

3.2 ?采用一些良好的設(shè)計(jì)模式來(lái)優(yōu)化系統(tǒng) ?

??? (1)?Value Object?

我們知道EJB 的調(diào)用使用了遠(yuǎn)程方法,它的效率一般要遠(yuǎn)低于本地方法的?

調(diào)用,這樣我們要讀取一個(gè)對(duì)象,如果使用他的 setXX 方法就多次調(diào)用了遠(yuǎn)?

程,效率很低,如果一次性讀到值對(duì)象,這就減少了遠(yuǎn)程調(diào)用。例如對(duì)學(xué)生數(shù)據(jù)創(chuàng)建StudentInf對(duì)象,在EntityEJB中用 changeInf(StudentInf stu) 代替以前的 changeInf(String id, String name…….)。這樣也增強(qiáng)了代碼的可讀性。?

??? (2)?Data Access Object?

圖4? DAO模式?

????對(duì)于系統(tǒng)中可能用到返回大量結(jié)果的查詢采用這種模式可以節(jié)省EJB方法調(diào)用的時(shí)間。同時(shí)設(shè)計(jì)DAO工廠,這樣當(dāng)數(shù)據(jù)庫(kù)改變時(shí)只須改變相應(yīng)的DAO類,無(wú)須在SessionBean中做任何修改。?

3.3?系統(tǒng)開(kāi)發(fā)中用到的一些技巧??

??? (1)?在安排宿舍的頁(yè)面中,Page2需要得到Page1,Page3中的用戶選擇信息,再將它們提交到處理頁(yè)面。

圖五 分配宿舍功能頁(yè)面?

??? 在此我采用了動(dòng)態(tài)創(chuàng)建form的方法。首先在page2中創(chuàng)建一個(gè)空f(shuō)orm 命名為arrange。將其他兩個(gè)頁(yè)面中的選擇信息作為其子節(jié)點(diǎn)加到form中,最后提交。

??????????????

}?

???? i++; …………………….?

???? (2)???????? 在查詢學(xué)生信息程序中,會(huì)遇到需要根據(jù)用戶輸入組合查詢條件,我采用動(dòng)態(tài)生成SQL語(yǔ)句的方法。?

???????????????????

4.總結(jié)和展望?

??? 目前此公寓管理系統(tǒng)已經(jīng)在校園網(wǎng)上運(yùn)行。教材管理,保衛(wèi)處檔案管理,遠(yuǎn)程教學(xué)系統(tǒng)也正在開(kāi)發(fā)過(guò)程中。由于EJB技術(shù)良好的可擴(kuò)展性和組件性,使得系統(tǒng)開(kāi)發(fā)中的一些EJB可以得到復(fù)用,而且在以后的開(kāi)發(fā)中只需要修改、添加EJB來(lái)維護(hù)。同時(shí)開(kāi)源項(xiàng)目的引入使得整個(gè)系統(tǒng)處于不斷壯大和完善過(guò)程中。希望經(jīng)過(guò)幾屆同學(xué)的努力,逐漸形成一個(gè)完善的、基于J2EE的校園信息化平臺(tái)。?

參考文獻(xiàn)?

[1] Rahim Adatia, Faiz Armi 等著,EJB 編程指南,電子工業(yè)出版社,2002?

[2] Mike Jasnowski,Java,XML和Web服務(wù)寶典,電子工業(yè)出版社,2002?

[3] Deepak Alur,John Crupi,J2EE核心模式,機(jī)械工業(yè)出版社,2002?

[4] Kevin Mukhar, Todd Lauinger,JAVA數(shù)據(jù)庫(kù)應(yīng)用編程指南,電子工業(yè)出版社,2002?

[5] Todd Cook,Mastering JSP,電子工業(yè)出版社,2003?

本站內(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;郵箱:aet@chinaaet.com。