摘 要:使用Java語言,綜合運用Struts2+Mybatis+Spring框架構(gòu)建基于B/S架構(gòu)的移動移動維護工作評價系統(tǒng)。系統(tǒng)使用Oracle數(shù)據(jù)庫、web容器采用Tomcat5.5、使用阿里巴巴研發(fā)的druid連接池技術(shù),移動手機端使用基于Android系統(tǒng)開發(fā)的客戶端。
關(guān)鍵詞:Java;B/S;SMS
中圖分類號:TP311.52
隨著計算機和網(wǎng)絡(luò)的普及,現(xiàn)在越來越多的系統(tǒng)進入了電子化、系統(tǒng)化、集成化的程度。采用人工紙質(zhì)記錄的系統(tǒng),因費時、費力、成本高等缺點,已經(jīng)越來越多的被信息化的系統(tǒng)所取代。Java語言是現(xiàn)今web開發(fā)的主流開發(fā)語言,以其優(yōu)良的穩(wěn)定性、跨平臺性被越來越多的應(yīng)用于B/S架構(gòu)系統(tǒng)的開發(fā)中。框架技術(shù)正是Java語言封裝性、集成性的體現(xiàn)。因移動數(shù)據(jù)的量比較大,加上數(shù)據(jù)安全性的要求,所以需要解決大數(shù)據(jù)優(yōu)化問題以及存儲問題、備份還原問題等。
1 系統(tǒng)總體設(shè)計
1.1 維護工作評價系統(tǒng)網(wǎng)絡(luò)拓撲結(jié)構(gòu)
圖1 網(wǎng)路拓撲圖
圖中移動設(shè)備服務(wù)器就是web服務(wù)器,該服務(wù)器具有雙網(wǎng)卡,因移動機房對網(wǎng)絡(luò)安全要求比較高,外網(wǎng)服務(wù)器是不能接入內(nèi)網(wǎng),所以在移動服務(wù)器一張網(wǎng)卡連接內(nèi)網(wǎng),用來與互聯(lián)網(wǎng)通信,另外一張網(wǎng)卡與內(nèi)網(wǎng)相連,同時Oracle數(shù)據(jù)庫服務(wù)器也是在內(nèi)網(wǎng)中,web服務(wù)器與Oracle數(shù)據(jù)庫服務(wù)器之間有硬件防火墻、網(wǎng)閘等安全設(shè)備,保證內(nèi)部網(wǎng)絡(luò)的安全。
1.2 系統(tǒng)架構(gòu)設(shè)計
本系統(tǒng)除采用JavaWeb主流的三層架構(gòu)搭建,即:DAO層(數(shù)據(jù)訪問層)、Service(業(yè)務(wù)層)、表示層,與傳統(tǒng)的三層有所不同的是,在DAO層下面增加了數(shù)據(jù)庫連接池技術(shù),保證對數(shù)據(jù)庫操作的最優(yōu)化處理。在Web前端即表示層采用基于MVC架構(gòu)的Struts2框架,此框架在開發(fā)效率、穩(wěn)定性以及可擴展性方面都比Struts1.x和其他web框架要優(yōu)異。
1.3 數(shù)據(jù)庫連接池工作原理簡介
數(shù)據(jù)庫連接池在初始化時將創(chuàng)建一定數(shù)量的數(shù)據(jù)庫連接放到連接池中,這些數(shù)據(jù)庫連接的數(shù)量是由最小數(shù)據(jù)庫連接數(shù)來設(shè)定的。無論這些數(shù)據(jù)庫連接是否被使用,連接池都將一直保證至少擁有這么多的連接數(shù)量。連接池的最大數(shù)據(jù)庫連接數(shù)量限定了這個連接池能占有的最大連接數(shù),當應(yīng)用程序向連接池請求的連接數(shù)超過最大連接數(shù)量時,這些請求將被加入到等待隊列中。Druid首先是一個數(shù)據(jù)庫連接池。Druid是目前最好的數(shù)據(jù)庫連接池,在功能、性能、擴展性方面,都超過其他數(shù)據(jù)庫連接池,包括DBCP、C3P0、BoneCP、Proxool、JBossDataSource。Druid已經(jīng)在阿里巴巴部署了超過600個應(yīng)用,經(jīng)過一年多生產(chǎn)環(huán)境大規(guī)模部署的嚴苛考驗。
2 系統(tǒng)功能概述以及解決方案
系統(tǒng)分為系統(tǒng)配置模塊、包機人模塊、故障模塊、報表模塊和日常工作模塊等組成。系統(tǒng)配置模塊主要包括賬號配置、機房配置、網(wǎng)元配置、考核配置等。其中賬號配置部分考慮到數(shù)據(jù)的安全性問題,賬號密碼部分采用不可逆的MD5加密。具體功能如下圖所示:
權(quán)限控制部分基于角色和操作的權(quán)限設(shè)計,因本系統(tǒng)要求不同權(quán)限的人登錄系統(tǒng)所能進行的操作不同,普通的系統(tǒng)設(shè)計采用屏蔽用戶操作界面,即在用戶登錄進去之后將相應(yīng)的操作菜單隱藏,從而達到控制用戶操作的權(quán)限。但是這種操作是有弊端的,比如用戶如果知道了訪問的URL地址,可以采用模擬用戶請求的方式,這樣就繞過了剛才的權(quán)限限制。為此本系統(tǒng)在設(shè)計上考慮到此問題,在action前面通過增加攔截器,捕捉用戶請求的URL以及用戶的當前會話對象,根據(jù)用戶的賬號取出該賬號的操作權(quán)限,通過數(shù)據(jù)處理得到用戶的操作權(quán)限。
雖然現(xiàn)在信息化程度已經(jīng)突飛猛進,但是訪問一些企業(yè)網(wǎng)站,經(jīng)常會發(fā)現(xiàn)網(wǎng)頁打開的速度非常慢,經(jīng)常出現(xiàn)網(wǎng)頁空白很長一段時間,IE顯示出網(wǎng)頁的加載速度非常慢,減低了用戶的體驗。為了彌補這個不足,本系統(tǒng)在設(shè)計上采用ajax(AsynchronousJavaScript+XML)異步請求技術(shù),Ajax不是一個技術(shù),它實際上是幾種技術(shù),每種技術(shù)都有其獨特這處,合在一起就成了一個功能強大的新技術(shù)。Ajax是結(jié)合了Java技術(shù)、XML以及JavaScript等編程技術(shù),可以讓開發(fā)人員構(gòu)建基于Java技術(shù)的Web應(yīng)用,并打破了使用頁面重載的慣例。Ajax是使用客戶端腳本與Web服務(wù)器交換數(shù)據(jù)的Web應(yīng)用開發(fā)方法。這樣,Web頁面不用打斷交互流程進行重新加裁,就可以動態(tài)地更新。使用Ajax,用戶可以創(chuàng)建接近本地桌面應(yīng)用的直接、高可用、更豐富、更動態(tài)的Web用戶界面。
Struts2框架應(yīng)用在表示層,他可以使用攔截器進行權(quán)限的控制,另外Struts2框架是線程安全的,不會造成數(shù)據(jù)的臟讀。Mybatis框架是現(xiàn)如今比較流行的持久化層的框架,他比Hibernate優(yōu)勢的地方在于,該框架是一個半JDBC半ORM的框架,這樣的好處可以使程序員可以從數(shù)據(jù)庫操作底層對數(shù)據(jù)庫進行操作,靈活性更強,而且操作的效率比單純的ORM框架效率要高,他避免了每次進行對象操作到SQL操作的轉(zhuǎn)化,節(jié)省了資源和運行時間。Spring框架在整個項目中充當粘合劑的功能,本系統(tǒng)主要使用了Spring框架的依賴注入和聲明式事務(wù)的兩大特點,Spring框架在中間充當管家的角色,所有bean對象的管理都由Spring來控制,比如Struts需要得到對象,需要向Spring申請,由Spring集中管理對象,并且Spring還可以保證對象的單例特點,避免生成中間的垃圾對象。
手機客戶端部分采用Android系統(tǒng)開發(fā),手機端程序通過WebService技術(shù)與服務(wù)器進行信息交互,比如故障檢修,工作人員可以通過手機上報檢修情況,服務(wù)器如果有新任務(wù)下達也可以通過接口將信息傳輸?shù)绞謾C端。通信的數(shù)據(jù)庫格式采用xml語法預(yù)先定義。
3 總結(jié)
利用Java中的Struts2+Mybatis+Spring實現(xiàn)移動移動維護工作評價系統(tǒng),是在B/S領(lǐng)域的一次成功的應(yīng)用。系統(tǒng)中采用了現(xiàn)今比較流行的技術(shù),使用Oralce數(shù)據(jù)庫作為作為數(shù)據(jù)庫服務(wù)器,使用CentOS系統(tǒng)為web服務(wù)器的操作系統(tǒng),相信這種組合模式肯定會使系統(tǒng)不論在可擴展性、穩(wěn)定性、安全性方面有明顯的優(yōu)勢。
參考文獻:
[1]田海利,姚丹霖.Struts框架技術(shù)在J2EE中的研究和應(yīng)用[J].計算機與信息技術(shù),2005(12).
[2]陶維.基于SSH多架構(gòu)Web系統(tǒng)設(shè)計及其應(yīng)用[J].科技和產(chǎn)業(yè),2009(03).
[3]劉子林,王敬芬,韓新民.基于框架的小型通用收費系統(tǒng)設(shè)計[J].信息系統(tǒng)工程,2011(05).
[4]潘衛(wèi)華,潘衛(wèi)紅,孫蘇琪.移動Agent技術(shù)在分布式數(shù)據(jù)庫系統(tǒng)中的應(yīng)用[J].華北電力大學(xué)學(xué)報,2003,1,22:1-30.
[5]符光寶,邵定宏,李蘭友.基于Struts框架的檔案管理系統(tǒng)應(yīng)用研究[J].計算機工程與設(shè)計,2008(13).
[6]劉雅正,陳受凱,唐向陽.基于簡化MD5的TFIDF算法[J].科學(xué)技術(shù)與工程,2012(31).
作者單位:濰坊工程職業(yè)學(xué)院,山東青州 262500