国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于RIA模式的小站集中管理信息系統(tǒng)設(shè)計

2012-08-06 09:38蒲加永鄒本振
鐵路計算機應(yīng)用 2012年7期
關(guān)鍵詞:小站客戶端組件

蒲加永,鄒本振

(西南交通大學(xué)信息科學(xué)與技術(shù)學(xué)院, 成都610031)

TMIS提高了鐵路運輸信息化的整體水平,為鐵路運輸、生產(chǎn)作業(yè)和信息化管理提供了及時準(zhǔn)確的信息和技術(shù)保障。在現(xiàn)有的TMIS中,車站管理信息系統(tǒng)是構(gòu)建TMIS的重要一環(huán),它實現(xiàn)了車站內(nèi)生產(chǎn)作業(yè)的管理,為TMIS中央系統(tǒng)和其他系統(tǒng)提供車站運輸信息,是TMIS工程的建設(shè)基礎(chǔ),為鐵路的高效運輸做出了重要貢獻?,F(xiàn)有的TMIS中,大站的車站管理系統(tǒng)普遍實現(xiàn)了車站作業(yè)計劃的制定和信息上報,但小站管理信息系統(tǒng)還存在著一些缺點,比如,由于采用C/S模式構(gòu)架,導(dǎo)致信息上報困難,出現(xiàn)信息盲點,對鐵路局調(diào)度、大型編組站的推流等工作造成了影響,同時還存在升級維護困難和成本太高等問題。為了提升全路的信息化水平,健全TMIS,迫切需要改進小站集中管理信息系統(tǒng)。

為了解決上述問題,并且克服傳統(tǒng)B/S模式對服務(wù)器頻繁訪問等缺點,本文提出了一種基于富互聯(lián)網(wǎng)應(yīng)用程序(RIA)技術(shù)的新型小站集中管理信息系統(tǒng)。

1 相關(guān)技術(shù)

1.1 RIA構(gòu)架

RIA概念于2002年3月第1次正式提出[1],這個概念是為了將桌面應(yīng)用程序豐富的表現(xiàn)力與Web應(yīng)用程序網(wǎng)絡(luò)互聯(lián)的特性結(jié)合在一起而提出。RIA是一種可以在本地運行的客戶端技術(shù)的應(yīng)用,是一種安全、可升級、具有良好適應(yīng)性的新的面向服務(wù)模型,它包含豐富的用戶界面顯示和用戶交換邏輯,提供承載已編譯的客戶端應(yīng)用程序的運行環(huán)境。這種運行環(huán)境使得用戶的大多數(shù)交互都可以在客戶端直接處理,而不必向服務(wù)器提出遠(yuǎn)程請求,只有需要數(shù)據(jù)請求時才進行遠(yuǎn)程訪服務(wù)器。

RIA是集桌面應(yīng)用程序的最佳用戶界面功能與Web應(yīng)用程序的采用和快速、低成本部署以及互動多媒體通信的實時快捷于一體的新一代網(wǎng)絡(luò)應(yīng)用程序[2]。RIA應(yīng)用程序運行于傳統(tǒng)的瀏覽器上,它采用分層結(jié)構(gòu),利用中間層來避免傳統(tǒng)的頁面頻繁刷新問題。RIA將整個系統(tǒng)劃分為客戶層、表示層、業(yè)務(wù)層、集成層和資源層。各個層次之間明確劃分了責(zé)任,使系統(tǒng)易于維護和擴展。

1.2 EJB技術(shù)

EJB(Enterprise JavaBeans)是基于Java的面向?qū)ο髽?gòu)件標(biāo)準(zhǔn),是一個用于分布式業(yè)務(wù)應(yīng)用的標(biāo)準(zhǔn)服務(wù)端組件模型,是構(gòu)造可移植、可重用和可伸縮的業(yè)務(wù)應(yīng)用程序的平臺[3]。EJB框架的核心思想在于將業(yè)務(wù)邏輯與復(fù)雜的底層服務(wù)分開,而這些服務(wù)在很多開發(fā)模式下都具有通用性,由EJB容器去管理和提供這些服務(wù),開發(fā)者只需要通過注解或者部署配置文件,通知容器如何使用這些服務(wù),而無需從頭開發(fā)或者重復(fù)開發(fā),實現(xiàn)了重用。

EJB定義了3種企業(yè)Bean,分別是會話Bean(Session Bean)、消息驅(qū)動Bean(Message-driven Bean,MDB)和實體Bean(Entity Bean)。其中,會話Bean和消息驅(qū)動Bean是業(yè)務(wù)方法的提供者,用來處理業(yè)務(wù)邏輯,容器管理,并提供服務(wù);而實體Bean獨立于EJB容器之外,由持久化提供器通過EntityManager接口進行管理。

(1)會話Bean是建模業(yè)務(wù)處理或者操作的可重用組件。它使用業(yè)務(wù)邏輯,利用數(shù)據(jù)和系統(tǒng)資源實現(xiàn)用戶的目的。會話Bean是EJB框架中唯一可以被客戶端直接調(diào)用的EJB組件。每個會話Bean實現(xiàn)具有兩個獨特部分:1個或多個接口和1個Bean實現(xiàn)類??蛻舳送ㄟ^調(diào)用業(yè)務(wù)接口訪問會話Bean,而不能直接訪問Bean實現(xiàn)類,實現(xiàn)了開發(fā)的松散耦合。會話Bean分為有狀態(tài)會話Bean和無狀態(tài)會話Bean,前者用于建模不維護會話狀態(tài)的任務(wù),而后者則要保證維護會話狀態(tài)。

(2)消息驅(qū)動Bean是用于處理來自客戶端消息請求的組件。MDB是一種無狀態(tài)會話Bean,但沒有本地和遠(yuǎn)程接口,它接收異步的JMS(Java Message Service)消息,MDB類實現(xiàn)Message Listener 接口進行消息的處理,實現(xiàn)業(yè)務(wù)邏輯。

(3)實體Bean是持久化數(shù)據(jù)組件,表示了存儲器中的業(yè)務(wù)對象。通常每個實體Bean對應(yīng)關(guān)系數(shù)據(jù)庫中的一張表。EJB利用持久化將實體Bean包含的數(shù)據(jù)自動存儲到數(shù)據(jù)庫,持久化提供器可以插入到容器內(nèi),開發(fā)的時候只需要建立相互之間的調(diào)用依賴關(guān)系即可。

2 系統(tǒng)設(shè)計

2.1 硬件設(shè)計

新型小站集中管理信息系統(tǒng)采用3層分布式的體系結(jié)構(gòu),包括客戶端、Web服務(wù)器和數(shù)據(jù)庫服務(wù)器。圖1為小站集中管理信息系統(tǒng)的硬件結(jié)構(gòu)。該系統(tǒng)是一個多客戶端的系統(tǒng),在每個車站的一個具體崗位就是一個客戶端。一般一個車務(wù)段(或者鐵路局)下的所有車站公用一個Web應(yīng)用服務(wù)器,這個Web服務(wù)器為其提供數(shù)據(jù)訪問服務(wù),中心服務(wù)器通過防火墻與鐵路局的服務(wù)器相連,實現(xiàn)數(shù)據(jù)的及時更新,隨時保持?jǐn)?shù)據(jù)的一致性。

圖1 小站集中管理信息系統(tǒng)硬件體系圖

2.2 軟件架構(gòu)設(shè)計

為了實現(xiàn)系統(tǒng)的低耦合,提高軟件的可維護性和重用性,小站集中管理信息系統(tǒng)采用基于RIA模式的4層軟件體系,如圖2,包括Flex表現(xiàn)層、EJB業(yè)務(wù)邏輯層、JPA持久化層和數(shù)據(jù)庫層。

2.2.1 Flex表現(xiàn)層設(shè)計

表現(xiàn)層處于系統(tǒng)的頂層,主要實現(xiàn)界面顯示,響應(yīng)用戶的請求,將請求發(fā)送給業(yè)務(wù)層,并返回業(yè)務(wù)層處理的結(jié)果,將結(jié)果顯示給用戶。本系統(tǒng)表現(xiàn)層采用Flex技術(shù),由MXML、AactionScri3.0及Flex類庫3部分組成,并采用MVC模式。

圖2 小站集中管理信息系統(tǒng)軟件體系

(1)視圖層設(shè)計

視圖層主要用Flex的UI組件以及Layout組件設(shè)計實現(xiàn),組件的顯示只與所綁定的數(shù)據(jù)源有關(guān),這些數(shù)據(jù)源從模型層獲得。當(dāng)數(shù)據(jù)源改變時,組件顯示的內(nèi)容會自動更新;需要增加新的業(yè)務(wù)時,只需要傳入新的數(shù)據(jù)源。

(2)模型層設(shè)計

模型層中封裝了系統(tǒng)的核心數(shù)據(jù)模型和邏輯關(guān)系。模型層的改變會導(dǎo)致視圖層顯示的變化,它會根據(jù)當(dāng)前系統(tǒng)的狀態(tài)選擇適當(dāng)?shù)臄?shù)據(jù)模型與之聯(lián)系。

(3)控制層設(shè)計

控制層組件根據(jù)用戶提出的業(yè)務(wù)需求時產(chǎn)生的事件觸發(fā),執(zhí)行相應(yīng)的業(yè)務(wù)邏輯,根據(jù)結(jié)果刷新視圖層顯示或者更新模型層的數(shù)據(jù)。

2.2.2 業(yè)務(wù)邏輯層

系統(tǒng)的業(yè)務(wù)邏輯層和數(shù)據(jù)持久化層是由EJB框架構(gòu)建。其中,會話Bean和消息驅(qū)動Bean構(gòu)造了業(yè)務(wù)邏輯層,而數(shù)據(jù)持久化層由實體Bean建模。

業(yè)務(wù)層采用基于Facade模式的服務(wù)調(diào)用框架設(shè)計,F(xiàn)lex客戶端主要通過RPC服務(wù)中的Remote-Object組件遠(yuǎn)程訪問EJB方法。業(yè)務(wù)層提供了本地接口和遠(yuǎn)程接口兩種訪問途徑,其中遠(yuǎn)程接口是當(dāng)客戶端調(diào)用服務(wù)器的業(yè)務(wù)邏輯處理函數(shù)時使用,在相同容器實例中的函數(shù)相互調(diào)用則用訪問本地接口實現(xiàn)。

在小站集中管理信息系統(tǒng)服務(wù)器端的開發(fā)中,業(yè)務(wù)邏輯用無狀態(tài)會話Bean構(gòu)造,實體與數(shù)據(jù)庫表之間的映射關(guān)系用JPA建立,會話Bean通過持久化提供器實現(xiàn)數(shù)據(jù)的檢索和修改。

2.2.3 數(shù)據(jù)持久層設(shè)計

持久化實體對象(EO)是介于具體應(yīng)用和數(shù)據(jù)庫之間的一層數(shù)據(jù),負(fù)責(zé)應(yīng)用和數(shù)據(jù)庫之間的交互,持久化實體對象用來維護數(shù)據(jù)庫表的記錄,與數(shù)據(jù)庫表的字段相對應(yīng)。JPA實體并不屬于EJB容器管理,而是由持久化提供器(Persistence Provider)通過EntityMana-ger接口管理并實現(xiàn)其功能,數(shù)據(jù)庫對用戶來說是完全透明的。

以EJB為核心的服務(wù)器端的程序組織結(jié)構(gòu)如圖3。在J2EE服務(wù)器端,JavaToFlex是一個服務(wù)代理,起到Flex客戶端和EJB容器的一個中間件作用;smisEJB是EJB工程,是業(yè)務(wù)邏輯實現(xiàn)的核心;smisEJBClient為外部組件訪問會話Bean實體類提供了業(yè)務(wù)接口,包含本地接口和遠(yuǎn)程接口;smisJPA用于JPA持久化層的開發(fā)。而smisEAR是一個EJB容器工程,它負(fù)責(zé)管理smisEJB、smisEJBClient和smisJPA這3個資源工程。

圖3 J2EE端程序組織結(jié)構(gòu)

2.2.4 數(shù)據(jù)庫層設(shè)計

數(shù)據(jù)庫層由存儲持久化對象的關(guān)系數(shù)據(jù)庫構(gòu)成,它根據(jù)與持久化層的映射關(guān)系,通過業(yè)務(wù)層持久化層對數(shù)據(jù)進行修改和查詢。

小站集中管理信息系統(tǒng)包含了確報庫、現(xiàn)車庫、鉤計劃庫、統(tǒng)計庫和知識庫這些相關(guān)的數(shù)據(jù)表。其中,現(xiàn)車庫是現(xiàn)車子系統(tǒng)的核心部分,包含有關(guān)站場、站場股道、站場現(xiàn)車基本信息的數(shù)據(jù)表,如場目錄(BCml),股道目錄(BGdml)等;確報庫存放著從其它車站鐵路局轉(zhuǎn)來的原始到報、到報、發(fā)報信息;鉤計劃庫中保存了車站的編調(diào)車作業(yè)組計劃,主要包括鉤計劃目錄(CqzGjhml)和鉤計劃正文(CqzGjhzw)這兩個數(shù)據(jù)表。

3 數(shù)據(jù)庫訪問優(yōu)化

作為一個以數(shù)據(jù)為核心的信息管理系統(tǒng),特別是基于Web開發(fā)的應(yīng)用系統(tǒng),響應(yīng)速度的快慢會影響到軟件的使用價值,而響應(yīng)速度的快慢在很大程度上又取決于對數(shù)據(jù)庫的訪問次數(shù)?;赗IA模式的開發(fā)特點,為了提高數(shù)據(jù)庫的訪問速度,減少對數(shù)據(jù)庫的訪問次數(shù),小站集中管理信息系統(tǒng)采用了提前加載的方法。對于大量的只讀數(shù)據(jù),或者很少修改的數(shù)據(jù),在用戶登錄時就將其全部讀入內(nèi)存。當(dāng)用戶只需要查詢這些數(shù)據(jù)時,直接從內(nèi)存中讀取;如果需要對數(shù)據(jù)進行修改或保存,進行一次數(shù)據(jù)庫訪問,修改數(shù)據(jù)庫中的值,同時更新內(nèi)存中的數(shù)據(jù)。這樣的方式可以節(jié)省大量的數(shù)據(jù)庫訪問次數(shù),提高系統(tǒng)的響應(yīng)效率。

4 結(jié)束語

本文針對現(xiàn)在TMIS中車站管理信息系統(tǒng)存在的問題,提出基于RIA模式的車站管理信息系統(tǒng),它改變了原有系統(tǒng)的C/S結(jié)構(gòu),便于擴展和維護,有效地降低了維護的工作量和成本,同時實現(xiàn)了車站信息及時上報鐵路局。本文對RIA的相關(guān)技術(shù)進行了介紹,同時分析了軟件的體系結(jié)構(gòu),并針對數(shù)據(jù)庫訪問和保存這兩方面對系統(tǒng)的性能提升進行了探討。本文提出的方案目前已經(jīng)在一些小站進行試用并取得了理想的效果。

[1] STEVE WEBSTER,ALISTAIR MCLEOD.Developing rich clients with macromedia flex[M] .Michigan:Macromedia Press,2004: 331-332.

[2] 王林. RIA技術(shù)概覽[J] .程序員,2005(2).

[3] Debu Panda,Reza Rahman,Derek Lane. EJB 3 in Action[M] . 馬朝暉. 北京:人民郵電出版社,2008,7:3-15.

猜你喜歡
小站客戶端組件
入口、入心……一杯清茶 三人小站 四成市場
無人機智能巡檢在光伏電站組件診斷中的應(yīng)用
新型碎邊剪刀盤組件
U盾外殼組件注塑模具設(shè)計
如何看待傳統(tǒng)媒體新聞客戶端的“斷舍離”?
小站人的情懷
縣級臺在突發(fā)事件報道中如何應(yīng)用手機客戶端
孵化垂直頻道:新聞客戶端新策略
大樞紐 云平臺 客戶端——中央人民廣播電臺的探索之路
小站
旺苍县| 周宁县| 万盛区| 射洪县| 贵溪市| 乐山市| 涿州市| 台江县| 井陉县| 安泽县| 金湖县| 鹿邑县| 冷水江市| 那曲县| 澄江县| 安顺市| 元阳县| 谢通门县| 日土县| 五指山市| 孝感市| 潞城市| 丹巴县| 县级市| 嵊州市| 普安县| 七台河市| 唐山市| 竹溪县| 丽水市| 云阳县| 即墨市| 类乌齐县| 柳河县| 武穴市| 建水县| 临汾市| 体育| 江津市| 浠水县| 长治县|