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