蒲加永,鄒本振
(西南交通大學信息科學與技術學院, 成都610031)
TMIS提高了鐵路運輸信息化的整體水平,為鐵路運輸、生產作業和信息化管理提供了及時準確的信息和技術保障。在現有的TMIS中,車站管理信息系統是構建TMIS的重要一環,它實現了車站內生產作業的管理,為TMIS中央系統和其他系統提供車站運輸信息,是TMIS工程的建設基礎,為鐵路的高效運輸做出了重要貢獻。現有的TMIS中,大站的車站管理系統普遍實現了車站作業計劃的制定和信息上報,但小站管理信息系統還存在著一些缺點,比如,由于采用C/S模式構架,導致信息上報困難,出現信息盲點,對鐵路局調度、大型編組站的推流等工作造成了影響,同時還存在升級維護困難和成本太高等問題。為了提升全路的信息化水平,健全TMIS,迫切需要改進小站集中管理信息系統。
為了解決上述問題,并且克服傳統B/S模式對服務器頻繁訪問等缺點,本文提出了一種基于富互聯網應用程序(RIA)技術的新型小站集中管理信息系統。
RIA概念于2002年3月第1次正式提出[1],這個概念是為了將桌面應用程序豐富的表現力與Web應用程序網絡互聯的特性結合在一起而提出。RIA是一種可以在本地運行的客戶端技術的應用,是一種安全、可升級、具有良好適應性的新的面向服務模型,它包含豐富的用戶界面顯示和用戶交換邏輯,提供承載已編譯的客戶端應用程序的運行環境。這種運行環境使得用戶的大多數交互都可以在客戶端直接處理,而不必向服務器提出遠程請求,只有需要數據請求時才進行遠程訪服務器。
RIA是集桌面應用程序的最佳用戶界面功能與Web應用程序的采用和快速、低成本部署以及互動多媒體通信的實時快捷于一體的新一代網絡應用程序[2]。RIA應用程序運行于傳統的瀏覽器上,它采用分層結構,利用中間層來避免傳統的頁面頻繁刷新問題。RIA將整個系統劃分為客戶層、表示層、業務層、集成層和資源層。各個層次之間明確劃分了責任,使系統易于維護和擴展。
EJB(Enterprise JavaBeans)是基于Java的面向對象構件標準,是一個用于分布式業務應用的標準服務端組件模型,是構造可移植、可重用和可伸縮的業務應用程序的平臺[3]。EJB框架的核心思想在于將業務邏輯與復雜的底層服務分開,而這些服務在很多開發模式下都具有通用性,由EJB容器去管理和提供這些服務,開發者只需要通過注解或者部署配置文件,通知容器如何使用這些服務,而無需從頭開發或者重復開發,實現了重用。
EJB定義了3種企業Bean,分別是會話Bean(Session Bean)、消息驅動Bean(Message-driven Bean,MDB)和實體Bean(Entity Bean)。其中,會話Bean和消息驅動Bean是業務方法的提供者,用來處理業務邏輯,容器管理,并提供服務;而實體Bean獨立于EJB容器之外,由持久化提供器通過EntityManager接口進行管理。
(1)會話Bean是建模業務處理或者操作的可重用組件。它使用業務邏輯,利用數據和系統資源實現用戶的目的。會話Bean是EJB框架中唯一可以被客戶端直接調用的EJB組件。每個會話Bean實現具有兩個獨特部分:1個或多個接口和1個Bean實現類??蛻舳送ㄟ^調用業務接口訪問會話Bean,而不能直接訪問Bean實現類,實現了開發的松散耦合。會話Bean分為有狀態會話Bean和無狀態會話Bean,前者用于建模不維護會話狀態的任務,而后者則要保證維護會話狀態。
(2)消息驅動Bean是用于處理來自客戶端消息請求的組件。MDB是一種無狀態會話Bean,但沒有本地和遠程接口,它接收異步的JMS(Java Message Service)消息,MDB類實現Message Listener 接口進行消息的處理,實現業務邏輯。
(3)實體Bean是持久化數據組件,表示了存儲器中的業務對象。通常每個實體Bean對應關系數據庫中的一張表。EJB利用持久化將實體Bean包含的數據自動存儲到數據庫,持久化提供器可以插入到容器內,開發的時候只需要建立相互之間的調用依賴關系即可。
新型小站集中管理信息系統采用3層分布式的體系結構,包括客戶端、Web服務器和數據庫服務器。圖1為小站集中管理信息系統的硬件結構。該系統是一個多客戶端的系統,在每個車站的一個具體崗位就是一個客戶端。一般一個車務段(或者鐵路局)下的所有車站公用一個Web應用服務器,這個Web服務器為其提供數據訪問服務,中心服務器通過防火墻與鐵路局的服務器相連,實現數據的及時更新,隨時保持數據的一致性。

圖1 小站集中管理信息系統硬件體系圖
為了實現系統的低耦合,提高軟件的可維護性和重用性,小站集中管理信息系統采用基于RIA模式的4層軟件體系,如圖2,包括Flex表現層、EJB業務邏輯層、JPA持久化層和數據庫層。
2.2.1 Flex表現層設計
表現層處于系統的頂層,主要實現界面顯示,響應用戶的請求,將請求發送給業務層,并返回業務層處理的結果,將結果顯示給用戶。本系統表現層采用Flex技術,由MXML、AactionScri3.0及Flex類庫3部分組成,并采用MVC模式。

圖2 小站集中管理信息系統軟件體系
(1)視圖層設計
視圖層主要用Flex的UI組件以及Layout組件設計實現,組件的顯示只與所綁定的數據源有關,這些數據源從模型層獲得。當數據源改變時,組件顯示的內容會自動更新;需要增加新的業務時,只需要傳入新的數據源。
(2)模型層設計
模型層中封裝了系統的核心數據模型和邏輯關系。模型層的改變會導致視圖層顯示的變化,它會根據當前系統的狀態選擇適當的數據模型與之聯系。
(3)控制層設計
控制層組件根據用戶提出的業務需求時產生的事件觸發,執行相應的業務邏輯,根據結果刷新視圖層顯示或者更新模型層的數據。
2.2.2 業務邏輯層
系統的業務邏輯層和數據持久化層是由EJB框架構建。其中,會話Bean和消息驅動Bean構造了業務邏輯層,而數據持久化層由實體Bean建模。
業務層采用基于Facade模式的服務調用框架設計,Flex客戶端主要通過RPC服務中的Remote-Object組件遠程訪問EJB方法。業務層提供了本地接口和遠程接口兩種訪問途徑,其中遠程接口是當客戶端調用服務器的業務邏輯處理函數時使用,在相同容器實例中的函數相互調用則用訪問本地接口實現。
在小站集中管理信息系統服務器端的開發中,業務邏輯用無狀態會話Bean構造,實體與數據庫表之間的映射關系用JPA建立,會話Bean通過持久化提供器實現數據的檢索和修改。
2.2.3 數據持久層設計
持久化實體對象(EO)是介于具體應用和數據庫之間的一層數據,負責應用和數據庫之間的交互,持久化實體對象用來維護數據庫表的記錄,與數據庫表的字段相對應。JPA實體并不屬于EJB容器管理,而是由持久化提供器(Persistence Provider)通過EntityMana-ger接口管理并實現其功能,數據庫對用戶來說是完全透明的。
以EJB為核心的服務器端的程序組織結構如圖3。在J2EE服務器端,JavaToFlex是一個服務代理,起到Flex客戶端和EJB容器的一個中間件作用;smisEJB是EJB工程,是業務邏輯實現的核心;smisEJBClient為外部組件訪問會話Bean實體類提供了業務接口,包含本地接口和遠程接口;smisJPA用于JPA持久化層的開發。而smisEAR是一個EJB容器工程,它負責管理smisEJB、smisEJBClient和smisJPA這3個資源工程。

圖3 J2EE端程序組織結構
2.2.4 數據庫層設計
數據庫層由存儲持久化對象的關系數據庫構成,它根據與持久化層的映射關系,通過業務層持久化層對數據進行修改和查詢。
小站集中管理信息系統包含了確報庫、現車庫、鉤計劃庫、統計庫和知識庫這些相關的數據表。其中,現車庫是現車子系統的核心部分,包含有關站場、站場股道、站場現車基本信息的數據表,如場目錄(BCml),股道目錄(BGdml)等;確報庫存放著從其它車站鐵路局轉來的原始到報、到報、發報信息;鉤計劃庫中保存了車站的編調車作業組計劃,主要包括鉤計劃目錄(CqzGjhml)和鉤計劃正文(CqzGjhzw)這兩個數據表。
作為一個以數據為核心的信息管理系統,特別是基于Web開發的應用系統,響應速度的快慢會影響到軟件的使用價值,而響應速度的快慢在很大程度上又取決于對數據庫的訪問次數?;赗IA模式的開發特點,為了提高數據庫的訪問速度,減少對數據庫的訪問次數,小站集中管理信息系統采用了提前加載的方法。對于大量的只讀數據,或者很少修改的數據,在用戶登錄時就將其全部讀入內存。當用戶只需要查詢這些數據時,直接從內存中讀??;如果需要對數據進行修改或保存,進行一次數據庫訪問,修改數據庫中的值,同時更新內存中的數據。這樣的方式可以節省大量的數據庫訪問次數,提高系統的響應效率。
本文針對現在TMIS中車站管理信息系統存在的問題,提出基于RIA模式的車站管理信息系統,它改變了原有系統的C/S結構,便于擴展和維護,有效地降低了維護的工作量和成本,同時實現了車站信息及時上報鐵路局。本文對RIA的相關技術進行了介紹,同時分析了軟件的體系結構,并針對數據庫訪問和保存這兩方面對系統的性能提升進行了探討。本文提出的方案目前已經在一些小站進行試用并取得了理想的效果。
[1] STEVE WEBSTER,ALISTAIR MCLEOD.Developing rich clients with macromedia flex[M] .Michigan:Macromedia Press,2004: 331-332.
[2] 王林. RIA技術概覽[J] .程序員,2005(2).
[3] Debu Panda,Reza Rahman,Derek Lane. EJB 3 in Action[M] . 馬朝暉. 北京:人民郵電出版社,2008,7:3-15.