崔偉寧,畢明光,金傳洋
(裝甲兵工程學院,北京 100072)
裝備保障信息系統是裝備保障信息化建設的重要內容,對提高裝備保障效率、實現“精確保障”具有重要作用。由于裝備保障業務本身涉及了裝備、人員、器材、維修、設備設施等多個保障對象,決定了裝備保障信息系統是一個復雜的信息管理系統,涵蓋了裝備管理、人員管理、器材保障、維修管理、保障訓練管理等多個方面,業務覆蓋面廣,信息種類多[1-4]。因此,建立一個完善的裝備保障信息系統通常需要多部門聯合,由多個開發團隊共同完成。隨著WEB技術的發展,采用WEB方式實現裝備保障信息系統成為發展的趨勢。而傳統的WEB開發方式在系統整合和集成方面存在操作繁瑣、界面風格難以統一、維護升級困難等缺點,限制了WEB技術在裝備保障信息系統中的應用。而Portal技術在Web資源整合、個性化定制等方面具有特有的優勢[5],并且在開發上支持多個團隊分散開發,集成方式簡單,維護容易。筆者通過參與的基于WEB的裝備保障信息平臺(Quipment Support Information Platform on WEB,ESIP-WEB)建設,研究了Portal技術的應用,探討了其在裝備保障信息系統建設中的可行性和優勢,分析了應用前景。
Portal技術是近年來廣泛應用的構建企業統一信息門戶的技術,提供個性化定制、認證、不同來源的內容聚合,以及信息展示[6]。與通常Web頁面不同的是,Portal展現在用戶面前的是由一系列Portlet構成的Portal頁面。Portlet是一種可插拔的用戶接口組件,由Portlet容器管理,根據客戶端的請求,生成各種動態內容,并可在不同的Portal頁面中重用[7-8]。可見,Portlet在 Web 開發上,類似于組件或插件,一個Portal頁面由多個Portlet渲染生成,因此在設計和開發時可以專注于每個Portlet的功能,通過Portal把各個Portlet聚合形成一個完整的系統。Portal、Portlet、Portlet容器三者的處理過程如圖1所示。

圖 1 Portal、Portlet、Portlet容器關系圖[6]
由圖1可見,當用戶訪問Portal頁面上的Portlet時,會觸發對Portlet的動作,而在處理這個動作的過程中,會引起其它Portlet進行相應事件的處理,從而最終展現給用戶一個新的頁面。新頁面的內容是Portlet處理用戶請求而產生的動態內容。因此,對于裝備保障信息系統,可以采用Portal技術實現不同的業務處理和系統整合。
ESIP-WEB體系結構如圖2所示,共分為5層。其中最底層為數據庫層,區分為基礎數據庫、共享數據庫和業務數據庫三類。基礎數據庫存放單位、人員、數據字典等公用基礎信息,共享數據庫存放業務共享數據,業務數據庫存放業務數據。其中基礎數據庫和共享數據庫統一設計和實現,并且相對穩定不變。業務數據庫由各業務系統具體實現,可由不同開發組按照數據庫設計規范自行設計。這樣設計即不僅保證了公用數據和交互共享數據的集成統一,也保證了可以滿足不同業務數據處理的特殊要求。
數據訪問層支持Hibernate和JDBC的數據訪問。其中Hibernate提供關系/對象映射,以對象方式操作數據庫,可以顯著提高開發效率。
基礎服務層由應用程序服務器提供EJB管理、Portal管理、WEB服務等各種基礎服務。ESIP-WEB選擇了JBoss服務器作為應用程序服務器,選用Liferay Portal作為Portal容器。
業務應用層提供業務應用的基礎服務,包括公用基礎服務和業務基礎服務。公用基礎服務包括集成服務、消息服務、數據服務等,各業務模塊均可使用,且與具體業務無關。業務基礎服務包括裝備管理、人員管理、訓練管理等,是各業務實現的基礎。
界面表現層通過封裝JSP、Struts、JQuery、GWT等界面技術,利用瀏覽器實現各業務子系統。

圖2 ESIP-WEB體系結構圖
ESIP-WEB的Portal框架設計如圖3所示,共分為3層。其中,核心框架層包括Web框架、Portal管理、EJB管理、安全服務、認證服務、日志服務等,由JBoss和Liferay Portal提供。這些服務也是Java EE要求的標準服務,對應于體系結構中的基礎服務層各種服務。

圖3 ESIP-WEB Portal框架設計
公共服務層提供報表工具、界面主題、界面庫、即時消息、數據訪問、工作流等獨立于業務的基礎服務。其中報表工具整合了JasperReport,界面主題提供了十幾套不同風格的界面,界面庫提供JQuery、Struts、GWT等常用界面庫,即時消息整合了JMS,數據訪問通過EJB的RMI/IIOP,工作流整合了JBpm。由這些工具整合形成的公共服務層為業務系統層提供了豐富的工具支持,極大地方便了系統的開發。
業務系統層利用上兩層提供的服務,專門針對特定業務實現。為了各業務公用模塊的復用,例如裝備信息、人員信息等,還抽象出了幾十類業務基礎Portlet,例如人員基本信息顯示Portlet,顯示詳細的人員基本信息,如姓名、性別、圖像等,方便需要顯示人員信息的業務模塊調用。
ESIP-WEB通過上述設計,實現了通過配置搭建不同業務子系統的功能,并很好地支持業務領域的開發團隊開發業務專屬功能,解決了采用WEB方式開發大型復雜系統時系統整合和集成方面遇到的各類難題。
數據訪問支持EJB遠程接口訪問和JDBC直接訪問。EJB訪問示例代碼如下:

上述代碼首先構造了遠程訪問接口類名,然后通過上下文環境查找遠程接口,找到后調用業務方法,即完成了對數據的訪問和操作使用。
采用EJB遠程接口訪問數據可以使EJB服務器和Portal應用服務器分開部署,并在數據量和訪問量增大的時候進行集群擴展,提高系統的性能。
Portlet由JSP頁面、Portlet類文件、Portlet配置文件共同實現。其中JSP Portlet類文件核心代碼如下:

上述代碼實現了一個基于JSP頁面的單位管理Portlet。對應的配置文件片斷:

把Portlet以及相關的資源打包成WAR包,即可在JBoss環境下熱部署。部署完畢后,由管理員進入,可以進行系統配置,配置菜單、界面Portlet、圖標、主題等,形成一個完整的Portal應用。圖4是ESIP-WEB實現一個的業務系統界面。

圖4 ESIP-WEB界面
本文研究了采用Portal技術設計基于WEB的裝備保障信息系統的方法,建立了基于Java EE的5層體系結構和3層Portal框架,實現了ESIP-WEB平臺并開發了業務系統,驗證了Portal技術是解決基于WEB的復雜業務系統的有效技術。結合Java EE技術,可以實現靈活部署、分散開發、擴展性強、維護性好WEB應用系統,避免傳統WEB開發的弊端,提高開發效率和維護成本。下一步將深入研究ESIP-WEB的數據集成、集群部署等問題,為ESIP-WEB的大規模應用打下基礎。
[1] 趙占梁,龔傳信.裝備保障信息系統需求分析中的問題及對策[J].計算機工程與設計,2007,28(17):4082-4085.
[2] 張建偉,黎鐵冰.一種裝備保障信息系統綜合集成方法研究[J].艦船電子工程,2009,29(8):23 -25.
[3] 黃丕超,王盼卿.XML技術在裝備保障信息系統集成中的應用[J].四川兵工學報,2008,29(5):50 -52.
[4] 馮玉成,劉曉斌,何國良,等.基于BMD的通用裝備保障信息系統開發策略[J].兵工自動化,2009,28(12):54-56.
[5] 陳芳.基于Portal的企業信息門戶系統研究[J].計算機與數字工程,2009,37(11):115 -117.
[6] Stefan H.Java(TM)Portlet Specification[S/OL].http://jcp.org/en/jsr/detail?id=286,2008-1 -25/2013 -3-21.JCP.JSR 286:Portlet Specification 2.0[EB/OL].http://jcp.org/en/jsr/detail?id=286,2013.3.
[7] 劉毅,湯怡潔,楊銳.基于Liferay Portal的所級圖書館集成信息服務平臺設計與實現[J].現代圖書情報技術,2008(6):72-77.
[8] 高俊,李長云,劉小飛,等.基于Portlet的數字化校園信息門戶的設計[J].計算機工程與設計,2009,30(17):4006-4008.
(責任編輯周江川)