摘要:如今計算機技術迅速發展,為了解決分布式環境問題,使得中間件技術受到人們廣泛的關注。該文根據實際的引用環境,針對具體的應用系統——汽車客運聯網售票系統設計和實現方案進行研究,并提出了基于中間件技術的技術方案,解決了汽車客運聯網售票系統中的諸如:難以擴充、不易維護、異構環境下難以互操作等問題。
關鍵詞:中間件技術;分布式環境;汽車客運聯網售票系統
中圖分類號:TP302文獻標識碼:A文章編號:1009-3044(2010)05-1219-02
The Application of Middleware Technology in Online Ticket-booking System
FU Chun1, LIAO Li1, XU Yi2
(1.Software College,Hunan University,Changsha 410082,China;2.Changsha social work college,Changsha 410004,China)
Abstract: With the quick development of the computer technology,middleware has deserved more and more concerning as its application in the distributed system.This paper made a research on an application system,that is,the design and realization of on-line ticket-booking of passenger transport according to actual referencing environment. Also,a solution based on the middleware technology has been proposed to solve the questions such as being difficult to expand,being hard to defend or being difficult to handle mutually under isomerism environment.
Key words: middleware technology; distributed environment; online ticket-booking system
計算機技術迅速發展,許多應用程序需在網絡環境的異構平臺上運行。這一切都對新一代的軟件開發提出了新的需求。在這種分布異構環境中,通常存在多種硬件系統平臺(如PC,工作站,小型機等),在這些硬件平臺上又存在各種各樣的系統軟件(如不同的操作系統、數據庫、語言編譯器等),以及多種風格各異的用戶界面,這些硬件系統平臺還可能采用不同的網絡協議和網絡體系結構連接。如何把這些系統集成起來并開發新的應用是一個非常現實而困難的問題。為解決分布異構問題,人們提出了中間件(middleware)的概念。中間件將網絡上傳統的C/S模式擴展為三層C/S結構,也就是在客戶層和服務器層之間添加一個中間層。該結構中有三個邏輯層:客戶層、業務邏輯層和數據服務層。[1]
本文以汽車客運聯網售票系統為依托,在開發過程中采用中間件技術,使得系統軟件架構變得靈活,可擴展性變強,同時也滿足了采用分布式數據庫技術實現多站點聯網售票與調度的需求。
1 實現中間件的必要性
中間件能夠將應用系統相對的獨立于計算機軟硬件平臺,為大型分布式應用系統搭建起一個標準的平臺,把企業分散的技術組合在一起,從而實現企業應用軟件系統的集成。中間件具有標準的程序接口和協議,它可以使不同硬件和操作系統平臺上分布式應用的數據共享和互操作。中間件在操作系統、網絡和數據庫之上,應用軟件之下,總的用途是為處于自己上層的應用軟件提供運行和開發環境,幫助用戶靈活、高效的開發和集成復雜的應用軟件。
2 中間件技術的作用
采用中間件主要可以實現兩個方面的作用:一是實現應用程序與系統軟件平臺的無關性,企業的應用程序可以不加修改地跨平臺運行;二是中間件提供了許多原本必須由應用程序實現的一些基礎性功能,如:網絡通信服務,數據庫連接,事務控制,安全控制,負載平衡等。這樣,在中間件之上開發企業的應用,許多功能可以利用中間件來實現,大大減少了程序開發量。
3 中間件的設計與實現
3.1 汽車客運聯網售票系統的體系結構
聯網售票調度系統、客運站售票系統,采用多層結構模式。即Application客戶端+應用服務器(中間件)+數據庫。
網上訂票系統,采用多層應用結構模式,即瀏覽器+Web服務器+應用服務器(中間件)+數據庫。
根據網上訂票用戶地域分布廣的特點,并考慮到系統的擴展性,在設計時采用了Web架構,基于Internet/Intranet網絡技術,按Web三層網絡結構的要求,設計成一個集用戶接口、WEB應用服務器、ORACLE數據庫于一體的現代化的聯網售票調度系統,以應對未來業務發展的需要。其架構模式如圖1所示。
1)主要應用邏輯集成在中間層——應用服務器中;
2)商業邏輯和表示邏輯分離,使得商業邏輯可重用,可以支持多種客戶端;
3)支持多種分布式通訊協議、提供完整的分布式服務;
4)跨平臺、支持異構數據庫;
5)提供連接池的功能,極大地緩解了大量客戶請求造成的壓力;
6)分布式事務處理;
7)完善的安全解決方案,保證企業商業秘密,保證用戶網絡支付的安全;
8)提供負載均衡的能力,使得企業應用能夠適應企業不同規模的需要;
9)對Internet全面支持,適應于企業電子商務的需要。
3.2 站務應用接口
為了實現聯網售票與調度,達到信息共享、綜合利用的目標,各客運站通過“站務應用接口”實現聯網售票與調度管理。
3.2.1 中心售票組件模型
票務處理相關業務的界面都部署在客戶端,通過客戶端的業務代表(MasterBusDelegate)與中心票務代理(MasterBusAgent)交互,完成業務處理申請并接收處理結果。
中心票務代理與本地票務代理(LocalBusProxy)和中心票務服務(MasterTicketManager)完成票務相關業務處理。
本地業務代理(LocalBusProxy)操作客運站數據庫,完成相關的票務業務處理。本地業務代理的實現,通過J2EE應用服務器操作客運站數據庫。
中心售票,需要保證中心、車站兩個數據庫數據的一致性。
3.2.2 本地售票組件模型
本地售票組件是運行在客運站客戶端的組件,客運站通過使用本地售票組件完成售本站票和售異站票等相關票務處理業務。
票務處理相關業務的界面都部署在客戶端,通過客戶端的業務代表(LocalBusDelegate)與本地票務代理(LocalBusProxy)交互,完成業務處理申請并接收處理結果。
本地票務代理通過與本地票務服務(LocalTicketManager)完成售本站票;本地票務代理通過與本地票務服務和中心業務代理(MasterBusAgent)完成售異站票,在此過程中,中心業務代理通過調用異站票務代理完成售異站票。
客運站售異站票,需要保證本地、中心、異站三個數據庫數據的一致性。
3.2.3 實現方法
結合上述原理,根據實際需要實現本地業務代理LocalBusProxy,我們將LocalBusProxy設計成一個符合EJB 2.0規范的無狀態會話Bean,它包含了Bean類、Home類和遠程接口類,用以實現所規定的各個方法。中心業務代理(MasterBusAgent)通過調用本地業務代理的這些方法,實現售票、退票、銷票相關的票務處理。
在LocalBusProxy中通過調用中心業務代理(MasterBusAgent)的相關方法,實現異站售票。
1)建立本地業務代理(LocalBusProxy)
如前所述,LocalBusProxy是一個符合EJB2.0規范的無狀態會話Bean,包含了Bean類、Home接口類和遠程接口類三個類。
方法(Method):
·處理他站、售票點用戶的售票請求sellTicketForMaster
·處理售票點用戶的補票請求sellLateTicketForMaster
·本地記錄售異站票信息completeSellTicket
·處理他站、售票點用戶的退票請求returnTicketForMaster
·本地記錄退異站票信息completeReturnTicket
·處理他站、售票點用戶的取消退票請求cancelReturnTicketForMaster
·本地記錄取消退異站票信息completeCancelReturnTicket
·處理他站、售票點用戶的銷票請求clearTicketForMaster
·本地記錄銷異站票信息completeClearTicket
·處理他站、售票點用戶的取消銷票請求cancelClearTicketForMaster
·本地記錄取消銷異站票信息completeCancelClearTicket
2)建立中心業務代理(MasterBusAgent)
MasterBusAgent也是一個符合EJB2.0規范的無狀態會話Bean,包含了Bean類、Home接口類和遠程接口類三個類。
中心業務代理負責處理客運站業務代理和中心客戶端發出票務業務處理請求。
方法:
·處理售票點售票sellTicketForLocal
·處理退票returnTicketForLocal
·取消退票cancelReturnTicketForLocal
·銷票(廢票)處理clearTicketForLocal
·取消銷票(廢票)處理cancelClearTicketForLocal
4 結論
總的來說,中間件帶給應用系統的不只是開發的簡單、開發周期的縮短,也減少了系統的維護、運行和管理的工作量,還減少了計算機總體費用的投入。中間件作為新層次的基礎軟件,其重要作用是將不同時期、在不同操作系統上開發應用軟件集成起來,彼此像一個天衣無縫的整體協調工作,這是操作系統、數據庫管理系統本身做不了的。中間件的這一作用,在技術不斷發展之后,使以往在應用軟件上的勞動成果仍然物有所用,節約了大量的人力、財力投入。
參考文獻:
[1] 朱衛平,陳英.基于J2EE中間件技術的分布式系統建模[J].電腦知識與技術,2007(21):5-13.
[2] 李朝霞,馮世文.關于軟件中間件技術的研究[J].科技信息:科學教研,2008(11):77.