1.引言?
????J2EE技術(shù)自推出以來經(jīng)過不斷擴展和完善,實踐證明它所具有的特性正適應(yīng)了目前網(wǎng)絡(luò)計算模式發(fā)展的需要。其特點主要有:?
?1.可擴展性?
??? J2EE技術(shù)的核心是EJB,EJB技術(shù)把業(yè)務(wù)邏輯獨立出來,作為系統(tǒng)“組件”。當(dāng)業(yè)務(wù)邏輯需要修改時,只需要對相應(yīng)組件進行添加或修改。?
?2.高穩(wěn)定性?
??? J2EE通過EJB來進行數(shù)據(jù)庫操作,而J2EE容器成為了處理事務(wù)的主要負(fù)責(zé)者,這使得開發(fā)人員不必考慮死鎖,多線程等問題。同時容器對可能發(fā)生的錯誤有對應(yīng)的處理方法,保證數(shù)據(jù)處理的ACID。?
?3.標(biāo)準(zhǔn)化?
????J2EE逐漸成為分布式計算模式的標(biāo)準(zhǔn),使得各系統(tǒng)之間的聯(lián)系更加方便。?
2.系統(tǒng)概述?
??? 學(xué)校數(shù)據(jù)實體的核心是學(xué)生,學(xué)生在整個在校過程中的各方面數(shù)據(jù)由不同部門管理,而這些部門之間常常需要對方的數(shù)據(jù)來處理自己的業(yè)務(wù)。例如:公寓管理中心在新生入校時需要教務(wù)處提供學(xué)生名單用于分配宿舍;學(xué)生工作部在對學(xué)生進行考核時需要公寓管理中心提供學(xué)生生活檔案。?

??? 這些數(shù)據(jù)的交換,傳統(tǒng)方式是通過紙張表格來傳遞。這種方式不僅效率低下,而且不能保證是最新的。?
??? 目前大多數(shù)高校已經(jīng)有自己的數(shù)據(jù)庫,校園網(wǎng)也達(dá)到了一定規(guī)模。為校園信息化建設(shè)創(chuàng)造了硬件條件。方案的最終目的是建成一個校園網(wǎng)內(nèi)的信息交換的數(shù)據(jù)處理平臺,使各部門的數(shù)據(jù)有機聯(lián)系起來,提高工作效率和減少不必要的失誤。?
??? 同時,由于J2EE的“功能組件”化的特性,對于某些模塊可以作為開源(OpenSource)項目,吸引廣大同學(xué)參與開發(fā)。這樣不僅提高了廣大同學(xué)對Java學(xué)習(xí)的積極性,也降低了系統(tǒng)維護和更新的開銷。?
3.系統(tǒng)具體設(shè)計實現(xiàn)?
??? 針對北京信息工程學(xué)院的軟硬件情況,將部分?jǐn)?shù)據(jù)庫集中于校園網(wǎng)絡(luò)中心數(shù)據(jù)庫中,對于擁有自己獨立數(shù)據(jù)庫服務(wù)器的不部門可以通過部署EJB來與整個系統(tǒng)連接。?
??? 現(xiàn)就其中公寓管理系統(tǒng)子模塊的實現(xiàn)做具體討論。?
3.1? 系統(tǒng)結(jié)構(gòu)及功能
??? 系統(tǒng)中對每一個實體對應(yīng)一個CMP EntityBean,采用Stateless SessionBean 來實現(xiàn)具體業(yè)務(wù)邏輯,表示層采用Jsp。系統(tǒng)實現(xiàn)了公寓管理自動化,管理員可通過系統(tǒng)分配宿舍,進行物品管理,保修處理等。?

3.2 ?采用一些良好的設(shè)計模式來優(yōu)化系統(tǒng) ?
??? (1)?Value Object?
我們知道EJB 的調(diào)用使用了遠(yuǎn)程方法,它的效率一般要遠(yuǎn)低于本地方法的?
調(diào)用,這樣我們要讀取一個對象,如果使用他的 setXX 方法就多次調(diào)用了遠(yuǎn)?
程,效率很低,如果一次性讀到值對象,這就減少了遠(yuǎn)程調(diào)用。例如對學(xué)生數(shù)據(jù)創(chuàng)建StudentInf對象,在EntityEJB中用 changeInf(StudentInf stu) 代替以前的 changeInf(String id, String name…….)。這樣也增強了代碼的可讀性。?
??? (2)?Data Access Object?

圖4? DAO模式?
????對于系統(tǒng)中可能用到返回大量結(jié)果的查詢采用這種模式可以節(jié)省EJB方法調(diào)用的時間。同時設(shè)計DAO工廠,這樣當(dāng)數(shù)據(jù)庫改變時只須改變相應(yīng)的DAO類,無須在SessionBean中做任何修改。?
3.3?系統(tǒng)開發(fā)中用到的一些技巧??
??? (1)?在安排宿舍的頁面中,Page2需要得到Page1,Page3中的用戶選擇信息,再將它們提交到處理頁面。

圖五 分配宿舍功能頁面?
??? 在此我采用了動態(tài)創(chuàng)建form的方法。首先在page2中創(chuàng)建一個空form 命名為arrange。將其他兩個頁面中的選擇信息作為其子節(jié)點加到form中,最后提交。
?????????????? 
}?
???? i++; …………………….?
???? (2)???????? 在查詢學(xué)生信息程序中,會遇到需要根據(jù)用戶輸入組合查詢條件,我采用動態(tài)生成SQL語句的方法。?
??????????????????? 
4.總結(jié)和展望?
??? 目前此公寓管理系統(tǒng)已經(jīng)在校園網(wǎng)上運行。教材管理,保衛(wèi)處檔案管理,遠(yuǎn)程教學(xué)系統(tǒng)也正在開發(fā)過程中。由于EJB技術(shù)良好的可擴展性和組件性,使得系統(tǒng)開發(fā)中的一些EJB可以得到復(fù)用,而且在以后的開發(fā)中只需要修改、添加EJB來維護。同時開源項目的引入使得整個系統(tǒng)處于不斷壯大和完善過程中。希望經(jīng)過幾屆同學(xué)的努力,逐漸形成一個完善的、基于J2EE的校園信息化平臺。?
參考文獻?
[1] Rahim Adatia, Faiz Armi 等著,EJB 編程指南,電子工業(yè)出版社,2002?
[2] Mike Jasnowski,Java,XML和Web服務(wù)寶典,電子工業(yè)出版社,2002?
[3] Deepak Alur,John Crupi,J2EE核心模式,機械工業(yè)出版社,2002?
[4] Kevin Mukhar, Todd Lauinger,JAVA數(shù)據(jù)庫應(yīng)用編程指南,電子工業(yè)出版社,2002?
[5] Todd Cook,Mastering JSP,電子工業(yè)出版社,2003?
