摘 要: 電子信息技術(shù)的蓬勃發(fā)展促進(jìn)了社會(huì)發(fā)展模式的轉(zhuǎn)變,為推動(dòng)經(jīng)濟(jì)、文化、軍事等領(lǐng)域又好又快發(fā)展奠定了良好的基礎(chǔ)。在這樣的大背景下,電子軍務(wù)應(yīng)運(yùn)而生。同時(shí)J2EE平臺(tái)的產(chǎn)品幾乎能夠在任何操作系統(tǒng)和硬件配置上運(yùn)行。本文設(shè)計(jì)了一個(gè)基于J2EE架構(gòu)的電子軍務(wù)系統(tǒng)。根據(jù)J2EE架構(gòu)的多層應(yīng)用程序方案和電子軍務(wù)的特點(diǎn),系統(tǒng)采用以WEB為中心的應(yīng)用程序方案。該系統(tǒng)可以極大地提高軍務(wù)處理的效率。
關(guān)鍵詞: J2EE WEB 多層應(yīng)用 電子軍務(wù)
隨著信息化技術(shù)應(yīng)用越來(lái)越廣泛,電子軍務(wù)已經(jīng)成為解決部隊(duì)管理、信息服務(wù)的基礎(chǔ),也是信息化條件下部隊(duì)發(fā)展的支撐。
根據(jù)軍事機(jī)構(gòu)的業(yè)務(wù)形態(tài),通常電子軍務(wù)的主要包括四個(gè)應(yīng)用領(lǐng)域[1]。
(1)軍務(wù)信息查詢(xún):面向各級(jí)軍事機(jī)關(guān)及廣大基層單位,為其提供政策、法規(guī)、條例和流程的查詢(xún)服務(wù);
(2)公共軍務(wù)辦公:借助軍網(wǎng)實(shí)現(xiàn)軍事機(jī)構(gòu)辦公,例如申請(qǐng)、申報(bào)等,提高軍務(wù)的運(yùn)作效率,增加透明度;
(3)軍務(wù)辦公自動(dòng)化:以信息化手段提高軍務(wù)機(jī)構(gòu)內(nèi)部辦公的效率,例如公文報(bào)送、信息通知和信息查詢(xún)等。
(4)專(zhuān)項(xiàng)應(yīng)用系統(tǒng):軍事活動(dòng)、軍事訓(xùn)練、軍事指揮等專(zhuān)業(yè)系統(tǒng)網(wǎng)絡(luò)化。
1.相關(guān)技術(shù)
1.1J2EE平臺(tái)
1.1.1跨平臺(tái)。J2EE能夠開(kāi)發(fā)部署在異構(gòu)環(huán)境中的可移植程序?;贘2EE平臺(tái)的應(yīng)用程序可被部署到各種操作系統(tǒng)、中間件、硬件上,具有“一次編寫(xiě),隨處運(yùn)行”的特性。Java的平臺(tái)無(wú)關(guān)性使得人們易于在大量架構(gòu)與平臺(tái)的計(jì)算環(huán)境中應(yīng)用Java程序。它通常具有以下特點(diǎn):
1.1.2可重用性。代碼重用是所有程序設(shè)計(jì)的目的之一。要達(dá)到重用目的,方法之一就是把應(yīng)用的商業(yè)需求劃分為不同的組件,而采用面向?qū)ο蠓绞椒庋b公用功能是另外一種方法,J2EE采用了這兩種方法。
1.1.3模塊化。當(dāng)開(kāi)發(fā)一個(gè)完整的服務(wù)器端應(yīng)用程序時(shí),程序會(huì)迅速變大、復(fù)雜化。應(yīng)該是把應(yīng)用劃分為相對(duì)獨(dú)立的模塊,每個(gè)模塊負(fù)責(zé)處理一個(gè)具體的任務(wù),按照這種方式,理解和維護(hù)應(yīng)用程序就會(huì)變得容易。
1.2STRUTS技術(shù)
Struts是一組由相互協(xié)作的類(lèi)、servlet和JSP標(biāo)記組成的一個(gè)可重用的MVC2設(shè)計(jì)。Struts由以下幾部分組成。一是Client browser(客戶(hù)瀏覽器),來(lái)自客戶(hù)瀏覽器的每個(gè)HTTP請(qǐng)求創(chuàng)建一個(gè)事件。Web容器將用一個(gè)HTTP響應(yīng)作出響應(yīng)。二是Controller(控制器),控制器接收來(lái)自瀏覽器的請(qǐng)求,并決定將這個(gè)請(qǐng)求發(fā)往何處。就Struts而言,控制器是以servlet實(shí)現(xiàn)的一個(gè)命令設(shè)計(jì)模式。struts-config.xml文件配置控制器命令。三是業(yè)務(wù)邏輯,業(yè)務(wù)邏輯更新模型的狀態(tài),并幫助控制應(yīng)用程序的流程。就Struts而言,這是通過(guò)作為實(shí)際業(yè)務(wù)邏輯“瘦”包裝的Action類(lèi)完成的。四是Model(模型)的狀態(tài),模型表示應(yīng)用程序的狀態(tài)。業(yè)務(wù)對(duì)象更新應(yīng)用程序的狀態(tài)。ActionForm bean在會(huì)話(huà)級(jí)或請(qǐng)求級(jí)表示模型的狀態(tài),而不是在持久級(jí)。JSP文件使用JSP標(biāo)記讀取來(lái)自ActionForm bean的信息。五是View(視圖),視圖就是一個(gè)JSP文件。其中沒(méi)有流程邏輯,沒(méi)有業(yè)務(wù)邏輯,也沒(méi)有模型信息,只有標(biāo)記。標(biāo)記是使Struts有別于其他框架(如Velocity)的因素之一。
2.電子軍務(wù)系統(tǒng)的需求分析與設(shè)計(jì)
2.1性能需求分析
考慮到電子軍務(wù)建設(shè)的現(xiàn)狀和實(shí)現(xiàn)難度,以及對(duì)電子軍務(wù)核心平臺(tái)提出的更高要求,電子軍務(wù)系統(tǒng)采取J2EE架構(gòu)帶來(lái)的優(yōu)勢(shì)如下。
2.1.1建立可擴(kuò)充的電子軍務(wù)平臺(tái)。當(dāng)連接的業(yè)務(wù)系統(tǒng)很少時(shí),平臺(tái)可以很小,當(dāng)然投資也很少;當(dāng)連接的業(yè)務(wù)系統(tǒng)很多時(shí),平臺(tái)也同時(shí)擴(kuò)充,完全可以支撐各類(lèi)復(fù)雜的應(yīng)用連接。因此,所選平臺(tái)首先要滿(mǎn)足的就是可擴(kuò)充性。
2.1.2平臺(tái)可以承接各種原有技術(shù)標(biāo)準(zhǔn)的業(yè)務(wù)系統(tǒng),支持未來(lái)各項(xiàng)XML數(shù)據(jù)標(biāo)準(zhǔn),花很少的投入就可以與技術(shù)保持標(biāo)準(zhǔn)同步。為什么要實(shí)現(xiàn)軍務(wù)辦公自動(dòng)化,實(shí)現(xiàn)電子軍務(wù)?就是要實(shí)現(xiàn)真正意義上的資源共享,從而才能讓決策者、領(lǐng)導(dǎo)者及時(shí)根據(jù)各方面的數(shù)據(jù)做出準(zhǔn)確的判斷和把握。
2.1.3有足夠的靈活性和可操作性,支持不斷的業(yè)務(wù)變化。這一點(diǎn)是基于操作層面而言的。要求平臺(tái)能適應(yīng)軍隊(duì)系統(tǒng)的各種靈活性。
2.1.4開(kāi)放式架構(gòu),支持各類(lèi)主流操作系統(tǒng)、數(shù)據(jù)庫(kù)和中間件產(chǎn)品。軍務(wù)系統(tǒng)不可能只是建立在一種操作系統(tǒng)下的系統(tǒng),有時(shí)候?yàn)榱讼到y(tǒng)的安全性考慮,會(huì)更多地采用非圖形化界面的操作系統(tǒng),這就要求電子軍務(wù)選用的平臺(tái)應(yīng)該是跨平臺(tái)的。此外,當(dāng)前國(guó)外諸多廠(chǎng)商提供了豐富的性能優(yōu)越的中間件產(chǎn)品和數(shù)據(jù)產(chǎn)品,因此,平臺(tái)不能局限于只能使用某一家廠(chǎng)商的產(chǎn)品[3]。
2.2功能需求分析與設(shè)計(jì)
從功能上看,電子軍務(wù)主要包括三個(gè)方面:對(duì)外門(mén)戶(hù)平臺(tái)、內(nèi)部辦公平臺(tái)和后臺(tái)管理系統(tǒng)。下面就從這三個(gè)方面進(jìn)行進(jìn)一步分析。
2.2.1對(duì)外門(mén)戶(hù)平臺(tái)是軍務(wù)部門(mén)統(tǒng)一發(fā)布各類(lèi)軍務(wù)信息、提供軍事人員在網(wǎng)上辦理有關(guān)事務(wù)的門(mén)戶(hù)平臺(tái)。
2.2.2內(nèi)部業(yè)務(wù)平臺(tái)是部隊(duì)單位內(nèi)部辦公的主要平臺(tái)。根據(jù)功能,主要分為部門(mén)辦公、公文交換、行政辦公、領(lǐng)導(dǎo)決策、系統(tǒng)管理和專(zhuān)項(xiàng)業(yè)務(wù)管理等六個(gè)部分。部門(mén)辦公是提供給部門(mén)的工作空間。同一個(gè)部門(mén)的人員可以共享這個(gè)資源,要存放一些部門(mén)的聯(lián)系電話(huà)、部門(mén)內(nèi)部資料等基本信息,還提供給部門(mén)內(nèi)部做周、月等工作計(jì)劃和總結(jié)等,為部門(mén)內(nèi)部管理提供方便。
2.2.3后臺(tái)管理提供部門(mén)管理,用戶(hù)管理和身份認(rèn)證等功能,系統(tǒng)以U盤(pán)方式識(shí)別操作者。系統(tǒng)為后臺(tái)提供靈活的數(shù)據(jù)備份、維護(hù)、更改設(shè)置、授權(quán)等功能,如行政事項(xiàng)、受理要件的增刪,承諾書(shū)模板的更改,等等。利用系統(tǒng)的數(shù)據(jù)庫(kù),開(kāi)發(fā)決策分析輔助系統(tǒng)。例如,根據(jù)行政事項(xiàng)各記錄間的關(guān)聯(lián),可推導(dǎo)出辦事流程、外部要件,并提示優(yōu)化的關(guān)鍵。
2.3系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
此系統(tǒng)可以使用三層結(jié)構(gòu),由WEB層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪(fǎng)問(wèn)層組成,如圖:
2.3.1Web層采用Struts框架實(shí)現(xiàn)MVC模式,頁(yè)面數(shù)據(jù)展示采用了Ajax和自定義的標(biāo)簽庫(kù),通過(guò)CEIP框架自定義的動(dòng)態(tài)Model進(jìn)行數(shù)據(jù)傳遞,控制層由Struts控制器組成,通過(guò)控制層調(diào)度業(yè)務(wù)邏輯。解耦了表現(xiàn)與控制邏輯的關(guān)系,使維護(hù)擴(kuò)展比較方便,同時(shí)便于團(tuán)隊(duì)開(kāi)發(fā)。
2.3.2業(yè)務(wù)邏輯層的實(shí)現(xiàn)采用的是POJO對(duì)象。高質(zhì)量的J2EE/JavaEE系統(tǒng)標(biāo)準(zhǔn)實(shí)際就是OO設(shè)計(jì)的標(biāo)準(zhǔn),松耦合是OO設(shè)計(jì)的主要追求目標(biāo)之一,解耦性是衡量J2EE/JEE質(zhì)量的首要標(biāo)準(zhǔn)。所以本系統(tǒng)框架沒(méi)有沿用經(jīng)典的J2EE架構(gòu),EJB的容器依賴(lài)性和API侵入性嚴(yán)重影響了OO設(shè)計(jì),而且其容器依賴(lài)性使單元測(cè)試代價(jià)太高,而系統(tǒng)本身也不具有非分布式要求,所以,本系統(tǒng)選擇用POJO對(duì)象實(shí)現(xiàn)業(yè)務(wù)接口。
2.3.3數(shù)據(jù)訪(fǎng)問(wèn)層采用CEIP框架的統(tǒng)一數(shù)據(jù)驅(qū)動(dòng),集成了數(shù)據(jù)查詢(xún)、數(shù)據(jù)更新、事務(wù)管理一系列數(shù)據(jù)訪(fǎng)問(wèn)功能。CEIP框架的數(shù)據(jù)訪(fǎng)問(wèn)采取直接對(duì)JDBC進(jìn)行包裝的形式,使數(shù)據(jù)訪(fǎng)問(wèn)的接口直接支持原生SQL語(yǔ)句,這大大降低了應(yīng)用復(fù)雜度,提高了程序編寫(xiě)的質(zhì)量和效率。
應(yīng)用服務(wù)器與數(shù)據(jù)庫(kù),出于穩(wěn)定和可靠的要求,本系統(tǒng)應(yīng)用服務(wù)器采用BEA的WebLogic,數(shù)據(jù)庫(kù)采用Oracle。
2.4CEIP框架
CEIP框架是一種自行開(kāi)發(fā)的基于并擴(kuò)展自Struts的JAVA應(yīng)用框架,其核心思想是采用動(dòng)態(tài)的數(shù)據(jù)模型和分頁(yè)對(duì)象模型,采用統(tǒng)一的數(shù)據(jù)訪(fǎng)問(wèn)層,通過(guò)自定義頁(yè)面標(biāo)簽,達(dá)到快速的數(shù)據(jù)訪(fǎng)問(wèn)和數(shù)據(jù)展示。(EIP=Enterprise Information Portal)思想構(gòu)建一個(gè)全面、穩(wěn)定、開(kāi)放、安全、可擴(kuò)展的教育信息平臺(tái)(CEIP=China Education Information Platform);使得所有應(yīng)用系統(tǒng)在統(tǒng)一的教育信息平臺(tái)上集成和協(xié)同,并完成各個(gè)系統(tǒng)之間的數(shù)據(jù)傳輸、安全認(rèn)證、用戶(hù)統(tǒng)一管理和共享等功能,保證電子軍務(wù)系統(tǒng)安全、高效、可靠運(yùn)行。CEIP框架最大的優(yōu)勢(shì)在于其具有強(qiáng)大的數(shù)據(jù)存取能力,支持?jǐn)?shù)據(jù)緩存,標(biāo)準(zhǔn)化了與數(shù)據(jù)庫(kù)的接口,通過(guò)數(shù)據(jù)訪(fǎng)問(wèn)的結(jié)果自動(dòng)包裝功能,數(shù)據(jù)結(jié)果被自動(dòng)包裝成各種動(dòng)態(tài)值對(duì)象或者XML供表示層進(jìn)行解析、處理或顯示。同時(shí)CEIP框架整合并擴(kuò)展了Struts,使Struts的XML文件定義更加清晰、簡(jiǎn)單。
使用Struts+CEIP框架進(jìn)行WEB應(yīng)用開(kāi)發(fā),WEB層采用擴(kuò)展的Struts實(shí)現(xiàn)MVC模式,后臺(tái)業(yè)務(wù)邏輯層使用CEIP的數(shù)據(jù)驅(qū)動(dòng)。在業(yè)務(wù)邏輯中采用SQL語(yǔ)句,所以其數(shù)據(jù)驅(qū)動(dòng)具有良好的可插拔性;采用注入技術(shù),可以根據(jù)不同數(shù)據(jù)庫(kù)采用相應(yīng)的數(shù)據(jù)接口,支持各種數(shù)據(jù)庫(kù)應(yīng)用。
CEIP框架的總體結(jié)構(gòu)如圖所示:
下面介紹利用CEIP框架快速的開(kāi)發(fā)基于Struts的WEB應(yīng)用:
首先要做的是跟普通的Struts定義一樣,在web.xml中定義請(qǐng)求分發(fā)器,CEIP框架擴(kuò)展了原來(lái)的定義,配置文件寫(xiě)法更加清晰,啟動(dòng)的Serverlet如下:
在WEB控制層里調(diào)用業(yè)務(wù)邏輯層的業(yè)務(wù)方法,業(yè)務(wù)方法通過(guò)數(shù)據(jù)驅(qū)動(dòng)進(jìn)行數(shù)據(jù)訪(fǎng)問(wèn),調(diào)用CEIP框架的核心數(shù)據(jù)訪(fǎng)問(wèn)層,只要給出相應(yīng)的數(shù)據(jù)庫(kù)操作語(yǔ)句,操作數(shù)據(jù)就如同上面代碼所示一樣簡(jiǎn)單,JDBC的API完全被隱藏。
通過(guò)CEIP數(shù)據(jù)驅(qū)動(dòng)的進(jìn)行數(shù)據(jù)訪(fǎng)問(wèn),可以減少業(yè)務(wù)邏輯與數(shù)據(jù)訪(fǎng)問(wèn)的耦合關(guān)系,采用原生SQL語(yǔ)句作為訪(fǎng)問(wèn)參數(shù)。在進(jìn)行數(shù)據(jù)訪(fǎng)問(wèn)時(shí),CEIP會(huì)自動(dòng)將數(shù)據(jù)訪(fǎng)問(wèn)包裝在事務(wù)中,將事務(wù)與業(yè)務(wù)邏輯分離,極大地簡(jiǎn)化了業(yè)務(wù)邏輯層代碼。在遇到多條SQL語(yǔ)句組成一個(gè)事務(wù)時(shí),CEIP數(shù)據(jù)驅(qū)動(dòng)的推薦使用存儲(chǔ)過(guò)程進(jìn)行事務(wù)處理,這就巧妙地解決了事務(wù)的合并問(wèn)題。所以,采用Struts+CEIP框架進(jìn)行WEB應(yīng)用開(kāi)發(fā),不但擁有了數(shù)據(jù)訪(fǎng)問(wèn)簡(jiǎn)單的優(yōu)勢(shì),還為形成一個(gè)標(biāo)準(zhǔn)的業(yè)務(wù)邏輯層提供了架構(gòu)支持。
該框架還增加了自定義標(biāo)記庫(kù)、權(quán)限管理組建和日志等功能。
3.結(jié)語(yǔ)
系統(tǒng)基于J2EE平臺(tái)進(jìn)行開(kāi)發(fā),采用B/S結(jié)構(gòu),并且充分考慮到了系統(tǒng)的實(shí)用性、安全性和可擴(kuò)展等因素。具體表現(xiàn)在以下方面。
3.1實(shí)用性和易操作性。
系統(tǒng)在功能上緊緊圍繞機(jī)關(guān)部門(mén)的基礎(chǔ)工作和日常工作,實(shí)現(xiàn)計(jì)算機(jī)智能化管理。界面設(shè)計(jì)采用WEB風(fēng)格,界面友好,結(jié)構(gòu)清晰明了,輸入、查詢(xún)、統(tǒng)計(jì)采用全屏幕編輯,針對(duì)不同的幫助主題進(jìn)行全程在線(xiàn)幫助,每次操作后系統(tǒng)給予提示信息,保證用戶(hù)操作的方便性。
3.2先進(jìn)性。
為使系統(tǒng)達(dá)到理想的使用壽命,并體現(xiàn)國(guó)際最新技術(shù),我們使用的各種平臺(tái)不僅是現(xiàn)階段成熟的先進(jìn)產(chǎn)品,而且是國(guó)際同類(lèi)產(chǎn)品的主流,符合今后的發(fā)展方向。在應(yīng)用軟件開(kāi)發(fā)思想上,嚴(yán)格按照軟件工程的標(biāo)準(zhǔn)和面向?qū)ο蠹霸O(shè)計(jì)模式的理論來(lái)設(shè)計(jì)、管理及開(kāi)發(fā),保證系統(tǒng)開(kāi)發(fā)高起點(diǎn)和系統(tǒng)技術(shù)與業(yè)務(wù)的先進(jìn)性。
3.3規(guī)范性。
標(biāo)準(zhǔn)化是大型信息系統(tǒng)的基礎(chǔ),也是與其他系統(tǒng)兼容及以后對(duì)系統(tǒng)進(jìn)行升級(jí)的保證。對(duì)一個(gè)好的系統(tǒng)來(lái)說(shuō),系統(tǒng)設(shè)計(jì)、數(shù)據(jù)的規(guī)范性和標(biāo)準(zhǔn)化工作非常重要,它為系統(tǒng)的開(kāi)放性和數(shù)據(jù)的共享提供了保證。
設(shè)計(jì)統(tǒng)一、規(guī)范的數(shù)據(jù)庫(kù)字典;
統(tǒng)一辦公業(yè)務(wù)中各種統(tǒng)計(jì)表格、報(bào)表格式;
統(tǒng)一的設(shè)計(jì)風(fēng)格、界面風(fēng)格和操作模式;
建立驗(yàn)收的標(biāo)準(zhǔn)和測(cè)試規(guī)范;
建立完善的安全控制機(jī)制;
建立辦公自動(dòng)化流程自動(dòng)控制機(jī)制;
采用XML進(jìn)行數(shù)據(jù)傳輸與交換。
3.4標(biāo)準(zhǔn)性和開(kāi)放性。
信息系統(tǒng)的開(kāi)放性是系統(tǒng)生命力的表現(xiàn)。只有開(kāi)放的系統(tǒng)才能不斷發(fā)展完善,真正實(shí)現(xiàn)數(shù)據(jù)共享,使各系統(tǒng)軟件和應(yīng)用軟件有很好的兼容性、可升級(jí)性,為進(jìn)一步發(fā)展打下堅(jiān)實(shí)的基礎(chǔ)。
3.5動(dòng)態(tài)擴(kuò)充性。
可與不同的外部系統(tǒng)集成。
系統(tǒng)采用靈活的流程自定義方法,并且實(shí)現(xiàn)流程自定義的圖形化控制,使流程路徑智能流轉(zhuǎn),動(dòng)態(tài)跟蹤每個(gè)流程。各種辦公流程及相關(guān)文檔、資料格式需要變化時(shí),能夠進(jìn)行動(dòng)態(tài)修改、擴(kuò)充等,既保證了動(dòng)態(tài)條件下業(yè)務(wù)流程的正確性,又保留了足夠的業(yè)務(wù)可擴(kuò)充性。
參考文獻(xiàn):
[1]李春偉.基于J2EE的電子軍務(wù)研究與開(kāi)發(fā),[碩士學(xué)位論文].太原:太原理工大學(xué),2006.
[2]曹鳴鵬.J2EE技術(shù)及其實(shí)現(xiàn),計(jì)算機(jī)工程與應(yīng)用,2003,21,(15).
[3]胡海燕,賀貴明.J2EE的安全機(jī)制及其應(yīng)用研究,計(jì)算機(jī)應(yīng)用,2003,23.
[4]孫衛(wèi)琴.精通Struts:基于MVC的JavaWeb設(shè)計(jì)與開(kāi)發(fā)電子工業(yè)出版社.
[5]林上杰,林康司.JSP2.0技術(shù)手冊(cè)電子工業(yè)出版社.