基于J2EE的校園一卡通系統(tǒng)平臺的設(shè)計與實現(xiàn)
文章出處:http://m.dipdnbxp.cn 作者: 人氣: 發(fā)表時間:2011年09月08日
J2EE是SUN公司為開發(fā)企業(yè)級應(yīng)用程序提供的強大的平臺,是用來簡化企業(yè)解決方案的開發(fā)、部署和管理相關(guān)的復(fù)雜問題的體系結(jié)構(gòu)。在這個體系結(jié)構(gòu)中,應(yīng)用開發(fā)者的注意力集中在封裝商業(yè)邏輯和商業(yè)規(guī)則上,而一切與基礎(chǔ)結(jié)構(gòu)服務(wù)相關(guān)的問題及底層分配問題都由應(yīng)用程序容器或服務(wù)器來處理。作為J2EE一部分的企業(yè)Java組件(Enterprise Java Bean,EJB)是一種服務(wù)器端組件體系結(jié)構(gòu),它簡化了用Java開發(fā)企業(yè)級的分布式組件應(yīng)用程序的過程。EJB被設(shè)計為支持應(yīng)用程序可移植性和可重用性,這些特性適用于任何廠商的企業(yè)中間件服務(wù)。
Weblogic是J2EE的純Java實現(xiàn),長期以來被認為是市場最好的J2EE工具之一。Weblogic的高性能、可靠性、跨平臺能力、多功能性、對J2EE標(biāo)準(zhǔn)的支持以及Jbuilder對Weblogic良好的支持,使得Weblogic與Jbuilder的組合成為J2EE應(yīng)用開發(fā)的最佳選擇。
校園一卡通的主要應(yīng)用包括2大方面:①校園消費:食堂消費、機房上機、超市消費等;②身份認證:門禁、考勤系統(tǒng)、學(xué)籍管理、醫(yī)療、圖書館等。在學(xué)校的管理中,如果能開發(fā)一個系統(tǒng)使得教師和學(xué)生能夠僅僅憑一張CPU卡就能完成以上日常事務(wù),這將大大方便師生員工以及管理者的管理。
1 一卡通系統(tǒng)的開發(fā)
一卡通系統(tǒng)采用EJB有以下好處:EJB服務(wù)器提供了諸如事務(wù)和安全之類中間件服務(wù),應(yīng)用開發(fā)人員只需關(guān)注于業(yè)務(wù)邏輯的實現(xiàn)而不是底層的實現(xiàn)機制;可擴展性:EJB可以根據(jù)您應(yīng)用的增長而擴展,EJB服務(wù)器往往還提供了負載均衡并考慮到記錄數(shù)據(jù)的突發(fā)性、時間集中性以及對系統(tǒng)要求的穩(wěn)定性和安全性,利用CMB(容器管理Bean)來完成這項重要的任務(wù)是一個較好的選擇。
1.1 EJB的基本思想
EJB的實現(xiàn)是基于RMI—IIOP,其基本思想?yún)⒖磮D1,具體如下:①客戶端調(diào)用本地stub;②stub將參數(shù)整理成適合網(wǎng)絡(luò)傳輸形式;③stub通過網(wǎng)絡(luò)與Skeleton連接;④Skeleton將參數(shù)整理成適合Java的形式;⑤Skeleton調(diào)用EJB對象;⑥EJB對象完成所需的中間件服務(wù);⑦企業(yè)Bean完成工作后以上步驟將在返回Home途中重復(fù)執(zhí)行。
圖1 EJB基本思想
1.2 EJB的應(yīng)用
EJB 2.0規(guī)范里,Bean分為3類,分別是EntityBean(實體Bean)、Session Bean(會話Bean)和Mes—sageDrive Bean(消息驅(qū)動Bean)。
根據(jù)EJB實例是否保存客戶端的狀態(tài),會話Bean還可分為有狀態(tài)會話Bean和無狀態(tài)會話Bean。實體Bean可分為BMP(Bean管理持久Bean)和CMP(容器管理持久Bean),兩者的區(qū)別在于數(shù)據(jù)存儲的實現(xiàn)方式。前者由Bean開發(fā)人員指定,后者則由容器自動實現(xiàn)。
在本系統(tǒng)中,EJB模塊由1個會話Bean和2個實體Bean組成,分別為無狀態(tài)會話bean:Record—Ses,2個容器管理Bean:Schedule和CheckRecord。采用這樣的設(shè)計模式有以下好處:使用1個會話Bean作為前端可以隱藏實體Bean提供的功能,客戶端不知道您在使用實體Bean,以后可以更換為其他技術(shù),對客戶端影響最??;與使用實體Bean相比,使用會話Bean的成本較小。本文以考勤終端子系統(tǒng)為例,闡述基于J2EE應(yīng)用系統(tǒng)的方法??记诮K端子系統(tǒng)部署圖見圖2。
圖2 考勤終端子系統(tǒng)部署圖
1.3 數(shù)據(jù)庫設(shè)計
定義考勤項目時,同一時間段,如有同一個人在不同地點需要考勤的情況,則在考勤記錄表(見表1)中設(shè)置其考勤狀態(tài)為沖突(StatusID=4);考勤項目表(見表2)要定義一些時間字段以確定師生在不同時間打卡時的狀態(tài)(遲到、早退等);師生每一次打卡僅僅在其需要考勤的時間段才有效,否則不予記錄。
表1 考勤記錄表
表2 考勤項目定義表
1.4 EJB開發(fā)
1.4.1 開發(fā)的準(zhǔn)備工作 按照Borland的白皮書[ 《E]B Development Using Borland JBuilder 8and Oracle9i Application Server)進行Jbuilder和Weblogic的配置。新建項目指定應(yīng)用服務(wù)器為Weblogic 7.0添加EJB模塊。引入數(shù)據(jù)庫模式,其中數(shù)據(jù)源名設(shè)為RecordDataSource,分別為考勤記錄表和考勤項目定義表。創(chuàng)建容器管理實體Bean,分別為Check—Record和Schedule,再添加一個無狀態(tài)會話Bean:RecordSes。在Weblogic創(chuàng)建數(shù)據(jù)源條目,包括一個數(shù)據(jù)連接池和一個事務(wù)數(shù)據(jù)源。數(shù)據(jù)源名為RecordData—Source。
1.4.2 實體Bean的關(guān)系對于每個教師的每一個考勤項目,需要2次打卡,另外還有教師多次打卡的情況,因此,考勤項目定義表與考勤記錄表是1對多的關(guān)系,相應(yīng)的,這樣的關(guān)系也映射到了兩個實體Bean上。右鍵點擊Schedule,創(chuàng)建一個關(guān)系,只需將鼠標(biāo)移動到CheckRecord上就可以建立好。點擊新建的關(guān)系,然后編輯數(shù)據(jù)庫關(guān)系,將一個表中的SchedulelD和Staff1D拖到另一表中就定義好了數(shù)據(jù)庫的關(guān)系。
1.4.3 處理自動增長字段ScheduleRecord的主鍵是自動增加的,必須要在部署描述里注明,以使得容器正確處理數(shù)據(jù)得持久化。這可以在開發(fā)工具Jbuilder里可視化地實現(xiàn)。在項目控制面板Projectpane雙擊ScheduleRecord,然后點擊Weblogic 7.XGeneral標(biāo)簽,找到Automatic key generation,輸入以下信息:Generator type:SQL廣SERVER,Generatorname:SchedulelD,Key cache size:1。
1.4.4 主要方法 客戶端需要調(diào)用會話Bean的addRecord方法來實現(xiàn)添加記錄的功能。會話Bean里的addRecord方法要做以下工作:查找合適的考勤項目,創(chuàng)建考勤記錄,根據(jù)打卡時間設(shè)定持卡人的狀態(tài)。因此,實體Bean Schedule需要一個查找合適的考勤項目的定位器方法和一個創(chuàng)建(Create)方法。在Jbuilder里添加方法,然后在查詢(Query)窗口寫上Ejb_Ql語言即可。
1.5 客戶端
JBuilder根據(jù)所編寫的Bean提供一個向?qū)В瑤椭蛻舳藖頊y試編寫好的Bean。作為一個包裝類,只需要將這個客戶端測試類進行一些符合自己要求的改動就可以直接使用。一般需要以下步驟:實例化這個類,調(diào)用類的Create方法,調(diào)用類的方法,這個方法實現(xiàn)的是在會話Bean里編寫的方法,它們具有相同的名稱。
2 一卡通平臺和其他平臺的集成
2.1 基于J2EE的系統(tǒng)平臺的體系架構(gòu)
校園一卡通系統(tǒng)平臺體系架構(gòu)見圖3。
圖3 校園一卡通系統(tǒng)平臺的體系架構(gòu)
系統(tǒng)平臺采用J2EE標(biāo)準(zhǔn),基于J2EE標(biāo)準(zhǔn)開發(fā)的應(yīng)用可以跨平臺移植,并提供了企業(yè)計算中需要的各種服務(wù);J2EE中多數(shù)標(biāo)準(zhǔn)定義了接口,例如JNDI,JDBC等,因此可以和許多廠商的產(chǎn)品配合,容易得到廣泛支持;J2EE樹立了一個廣泛而通用的標(biāo)準(zhǔn),大大簡化了應(yīng)用開發(fā)和部署過程。操作系統(tǒng)可以使用基于MS Windows或者UNIX、LUNIX等操作系統(tǒng)。
在系統(tǒng)平臺層之上是系統(tǒng)的數(shù)據(jù)層,數(shù)據(jù)庫可以使用XML。XML具有良好的可擴展性,語言簡單有效,可自行定義標(biāo)記;內(nèi)容與形式的分離,主要刻畫數(shù)據(jù)內(nèi)容,不考慮顯示效果;有嚴格的語法要求,便于分析統(tǒng)一和與數(shù)據(jù)庫信息轉(zhuǎn)換,便于傳輸,為純文本形式,可通過Http協(xié)議直接傳輸,可跨越防火墻等。系統(tǒng)還可以采用MS SQL Server、DB2、MySql等其他數(shù)據(jù)庫。
在系統(tǒng)平臺層和數(shù)據(jù)層的支持下,系統(tǒng)通過服務(wù)層對整個平臺提供服務(wù),提供應(yīng)用的支持和標(biāo)準(zhǔn)化的應(yīng)用接口。用戶認證中心就建立在服務(wù)層,給每一個用戶一個建立用戶標(biāo)識,并負責(zé)對每一個登錄客戶進行系統(tǒng)認證。
在服務(wù)層之上系統(tǒng)構(gòu)架了應(yīng)用層。應(yīng)用層包括校園內(nèi)的其他各種綜合應(yīng)用系統(tǒng),如指揮自動化網(wǎng)、政治工作宣傳網(wǎng)、財務(wù)網(wǎng)等。由于系統(tǒng)提供標(biāo)準(zhǔn)化接口,因此,單位內(nèi)部已有的應(yīng)用系統(tǒng)和以后開發(fā)的應(yīng)用只要使用標(biāo)準(zhǔn)化接口,就可以方便、無縫地構(gòu)架在系統(tǒng)平臺應(yīng)用中。
整個多層次結(jié)構(gòu)組成了的系統(tǒng)的整體,通過多層次的結(jié)構(gòu)應(yīng)用,系統(tǒng)的擴展性和靈活性都得以保證,并且具有更廣闊的適用性。
2.2 系統(tǒng)間互操作的要領(lǐng)
在數(shù)字化校園中,數(shù)據(jù)層面所需的信息集中存儲,并給各應(yīng)用子系統(tǒng)共享,有效防止了信息的冗余和不一致,保證數(shù)據(jù)的準(zhǔn)確性和可靠性;可以方便地實現(xiàn)核心數(shù)據(jù)的集中管理與備份,提高系統(tǒng)的安全性,減少設(shè)備的投資和管理的人力成本。數(shù)據(jù)中心在數(shù)據(jù)級對“一卡通”和其他系統(tǒng)的數(shù)據(jù)進行無縫集成,便于信息的共享、交流和各項業(yè)務(wù)的協(xié)作。
一卡通系統(tǒng)應(yīng)該充分使用統(tǒng)一共享數(shù)據(jù)平臺提供的公共數(shù)據(jù)編碼、身份信息等數(shù)據(jù),而不應(yīng)該單獨維護一套獨立、非標(biāo)準(zhǔn)的信息。同時,一卡通系統(tǒng)擁有自己的業(yè)務(wù)數(shù)據(jù)庫,將其他應(yīng)用系統(tǒng)需要的信息納入共享數(shù)據(jù)庫的統(tǒng)一設(shè)計中,實現(xiàn)校園一卡通系統(tǒng)數(shù)據(jù)對整個數(shù)字化校園的共享。通過數(shù)字化校園應(yīng)用建設(shè),形成一套符合高校自身實際的管理信息化標(biāo)準(zhǔn),也是數(shù)字化校園建設(shè)中的一項重要內(nèi)容。筆者結(jié)合大量案例,根據(jù)學(xué)校信息化現(xiàn)狀提出信息代碼編碼標(biāo)準(zhǔn)、軟硬件平臺標(biāo)準(zhǔn)、應(yīng)用系統(tǒng)規(guī)范、業(yè)務(wù)流程規(guī)范和數(shù)據(jù)交換標(biāo)準(zhǔn)等,為今后的應(yīng)用系統(tǒng)的建設(shè)制定了規(guī)范。一卡通作為重要的應(yīng)用系統(tǒng)必須符合整體標(biāo)準(zhǔn)。
為了集成,一卡通使用的公共信息字典必須遵循學(xué)校的信息編碼規(guī)范,數(shù)據(jù)模式必須遵循數(shù)據(jù)庫第三范式,一卡通使用的用戶及其信息必須與業(yè)務(wù)系統(tǒng)提供的信息一致,可以相互關(guān)聯(lián),以保證一卡通的數(shù)據(jù)和學(xué)校的其他信息數(shù)據(jù)同時進行查詢、分析、統(tǒng)計。針對于卡的門戶應(yīng)用,共享數(shù)據(jù)中心的數(shù)據(jù)既要能展示相關(guān)的信息,如校園卡選課后學(xué)生的選課課程、選課的繳費等,又能統(tǒng)計相關(guān)的信息,如不同專業(yè)的學(xué)生費用使用總計及平均消費情況等,這些都需要充分的集成設(shè)計。
3 結(jié)語
一卡通系統(tǒng)是以非接觸卡為信息載體,適用于各式各樣消費和管理的多功能網(wǎng)絡(luò)系統(tǒng),目前已實現(xiàn)就餐收費管理、圖書借閱管理、醫(yī)療收費管理、上機計時收費管理、校內(nèi)消費管理、早操出勤管理等,本文簡要說明了利用JBuilder和Weblogie快速開發(fā)基于J2EE的應(yīng)用。由于采用了容器管理的持久性(Container-Managed Persistent,CMP),由容器負責(zé)將entity beans的更新同步(保存)到數(shù)據(jù)庫,即由容器負責(zé)entity beans的持久性管理,開發(fā)人員只需考慮業(yè)務(wù)邏輯,大大減輕了開發(fā)人員的負擔(dān),而且還提供了良好的事務(wù)與安全保障;JBuilder是個功能強大的工具,熟練掌握這個開發(fā)工具,可以大大提高J2EE應(yīng)用的開發(fā)效率。(文/楊志和 上海電機學(xué)院電子信息學(xué)院)
參考文獻:
[1] Girdley M.J2EE應(yīng)用與BEA Weblogic Server EM].邢國慶,譯.北京:電子工業(yè)出版社,2003.
[2] 楊芙清,梅宏,李克勤.軟件復(fù)用與軟件構(gòu)件技術(shù)EJ].電子學(xué)報,1999,27(2):68—75.
[3] 趙芳,韋群.基于構(gòu)件的軟件工程研究I-J].裝備指揮技術(shù)學(xué)院學(xué)報,2002,13(4):56-58、
[4]劉海巖,梁建龍.基于中間件的分布式系統(tǒng)開發(fā)過程的研究[J].計算機應(yīng)用研究,2004(1):85—87.
[5]楊志和,李業(yè)榮.基于Web Services的企業(yè)電子商務(wù)應(yīng)用集成技術(shù)的研究[J].廣西科學(xué)院學(xué)報,2006,22(3):161— 163.
[6]楊志和.RFID系統(tǒng)與第三方應(yīng)用的信息集成技術(shù)[J].華東理工大學(xué)學(xué)報:自然科學(xué)版,2007,33(增刊):141— 144.
[7]楊志和.基于Web Services的教育資源共享平臺的設(shè)計與研究EJ].上海電機學(xué)院學(xué)報,2007,10(1):49—52.
[8]楊志和,李業(yè)榮.基于中間件和RFID技術(shù)的第三方物流MIS的應(yīng)用研究I-J].計算機應(yīng)用研究,2006(增刊):592—593.