前言:想要寫出一篇引人入勝的文章?我們特意為您整理了中間件在計費系統中的運用范文,希望能給你帶來靈感和參考,敬請閱讀。
本文作者:王秀敏、袁曉紅、趙麗娜 單位:渤海大學信息科學與工程學院、首都師范大學信息工程學院
0引言
中間件[1]是設計用來在分布式系統中管理復雜性和異構性的軟件技術,介于操作系統(OS,OperatingSystem)和應用程序之間,提供獨立于OS和硬件的公共應用程序接口(API),比OS提供的如sockets的API高級,允許運行于分布式系統中一個或多個機器上的若干進程通過網絡互相作用,通過數據管道連接分布式應用的各個部分并在它們之間傳送數據,不僅解決了異構系統平臺間的通訊和資源共享問題,還緩解了單調乏味和易于出錯的編程工作,顯著減輕了應用程序員的負擔,見圖1。
從20世紀90年代到現在,中間件技術發展日趨成熟,最初只是在支持客戶/服務器(Client/Server)兩層(Two-Tier)體系結構方面提供互用性,后來是多層體系結構(Multi-Tier),被廣泛宣傳的是OSF(theOpenSoftwareFoundation)的DCE(DistributedComputingEnvironment),OMG(ObjectManagementGroup)的CORBA(CommonObjectRequestBrokerArchitecture),和微軟的COM/DCOM/COM+。現在中間件已經以服務器平臺的面目出現,如BEA的Tuxedo[2,3],IBM的CICS(CustomerInformationControlSystem)TransactionServer等。
1中間件種類和優點
中間件,掩藏了分布式系統[4~6]的程序員所必須處理的異構性,完全掩藏了硬件和網絡的異構性,大部分中間件還掩藏了OS或編程語言或二者全部的異構性,有些中間件,如CORBA,都不必關心是誰實現和提供的,連同種中間件標準的不同供應商實現的不同都掩藏了。這些都使得復雜并且困難的分布式系統的異構性完全消失,對程序員透明,最終通過使用中間件,開發人員及用戶等都不必再關心諸如位置、并發性復制、故障和機動性等。
1.1中間件種類
已經開發出來的中間件具有如下幾類:
(1)分布式表(DT,DistributedTuples)應用最廣泛的是分布式關系數據庫,其SQL允許程序員操縱這些表的集合。分布式關系數據庫還提供了多重事務處理。事務進程監視器(TPM,TransactionProcessingMonitors),為開發和運用分布式應用提供工具和環境。
(2)面向消息的中間件(MOM,Message-OrientedMiddleware),通過消息隊列提供程序間數據交換,從此可于網絡上建立分布式的應用程序。如OS的Mailbox。
(3)遠程過程調用(RPC,RemoteProcedureCall),使網絡上的應用成為分布式的。不過,RPC通常是同步的,只有使用多線程才可以實現并行機制,而且,其處理異常的能力有限。
(4)分布式目標中間件(DO,DistributedObject/ORB,ObjectRequestBrokers/SOA,service-orientedarchitecture/SRB,ServiceRequestBrokers),使得異構網絡上包含應用的目標成為分布式的和共享的。如CORBA(CommonObjectRequestBrokerArchitecture),由OLE(ObjectLinkingandEmbedding)和COM(ComponentObjectModel)發展而來的DCOM/COM+,基于XML和HTTP(HyperTextTransferProtocols)的SOAP(SimpleObjectAccessProtocol),JAVA的RMI(RemoteMethodInvocation)等。
各種類別和資源管理的關系,見表1。
中間件大體可分為幾個范疇(1)面向數據的,如上DT;(2)面向消息的,如上MOM;(3)面向請求的,如TPM,RPC,DO/ORB;(4)面向服務的,如上SOA。但是,它們之間的界限并非很明顯,有的甚至互相交叉。今天,我們正在面臨諸如分布式軟件,應用集成,多樣性平臺,多樣化協議,多樣化設備,Internet等等復雜困難,SOA技術為此提供了基本解決方案。中間件如BEA的Tuxedo(類似于SRB),和IBM的CICSTransactionServer,都具有面向服務的體系結構。
1.2中間件的優點
中間件提供了比OS和網絡服務更有效的功能,基本優如下(1)在網絡上應用和服務間交互時位置透明;(2)所提供的支持異構平臺的同步,異步和對話消息等應用接口,全部透明,使應用獨立于OS和網絡服務及硬件,從而簡化了分布式應用開發工作,使應用易于維護和管理,易于擴展,適應性增強,開發周期縮短但使用壽命延長;(3)使用數據依賴性路由機制,可以基于消息上下文和優先權調整其路由,從而維持事務處理的有效性和保證最佳效率及靈活性,在營業和技術環境中,縮短響應時間;(4)基于系統實時負載和吞吐量,通過復制分布式網絡上的應用服務和動態平衡所有有效資源負載,使應用可以在不同的分布式的節點上,并行處理請求和多重事務,并且其事務隊列,允許分布式應用一起異步工作,保證最高可靠性和吞吐量及應用的效率。①通過多層體系結構,優化異構環境下的事務處理,提高處理效率和改善資源管理;②通過強有力的基于標準的API,可以整合和充分利用已存在的資源;③持續提升計算平臺和開發工具而不影響應用;④通過在多層次重復使用,減低開發成本,提高程序員生產力;⑤由于其可靠,安全,有效,準確,易維護,易管理,從而提升應用軟件質量。
1.3使用中間件時面臨的問題及其解決辦法
中間件主要解決的是分布式應用的連接和異構問題,但中間件并非萬能,如:(1)理論與實踐有相當的差距,開發者必須依賴于中間件生產商;(2)大量不合理的中間件成為使用中間件的障礙,開發者必須慎重選擇;(3)當中間件服務提升編程分布式應用級別時,應用開發者就面臨很大困難;(4)解決這三個問題的關鍵是必須明白應用問題和使之成為分布式應用的中間件服務的價值,為此,開發者須清楚哪些功能是需要的,這有三類a.分布式系統服務,這包括通訊,程序交互,數據管理等服務,這類有RPC,MOM,ORB;b.使應用能夠存取基于網絡資源的服務,這類有TPM,RDBMS服務如SQL,ODBC,X/OpenCLI等;c.中間件管理服務,可持續監視應用和系統的功能,以保證分布式環境的最佳性能。
中間件在計費系統中的應用越來越廣泛,比如對于前臺客戶服務端的應用,使用其獨立于OS和網絡服務及硬件的API,可以輕易使交互界面整齊一致,和擴展應用的功能。
2.1兩層與多層體系結構的差異
在使用中間件過程中,Client/Server的兩層體系結構在實際應用中已暴露出一些問題。由于在這種體系結構下,客戶端程序直接訪問系統資源,很容易造成網絡上數據流量過大,甚至導致系統癱瘓,而且可維護性差、不易擴展。相比之下,多層體系結構有著明顯的好處。進程和資源管理:通過對服務進程的管理,使得系統能夠用盡量少的服務進程處理盡量多的請求,減少進程的啟動/終止次數,控制服務進程的總數,使得服務器在設定的負載下高效地工作,而且,當請求服務的數量超過了服務器的處理速度時,中間件還可以把請求排隊進行緩沖。對于數據庫系統,任何服務進程訪問數據庫都要和數據庫建立連接,通過長駐服務進程,保持和復用與數據庫的連接,可以大大減少啟動/終止與數據庫連接的次數和時間。事務優先級:通過指定事務優先級,保證優先級高的事務能盡快得到響應。
2.2計費系統面臨的問題
在計費系統中,無論是前臺客戶端的交互程序,還是后臺的批處理程序,對數據庫的訪問都是極其頻繁的,因而對數據庫系統的吞吐量的要求極高,僅就前臺而言,如果客戶端直接(或通過存儲過程即StoredProcedure)訪問數據庫,則不僅不利于安全控制,難以防止黑客的惡意攻擊,同時,由于網絡流量太大,容易形成網絡瓶頸和數據庫訪問瓶頸,而且,數據庫連接數會過多,從而影響數據庫系統的響應速度,降低系統性能。
2.3解決途徑
(1)使用中間件將系統分為三層(或多層),使事務邏輯和用戶界面分離,以此優化系統結構。事務邏輯放在應用服務層,則軟件的維護集中在應用服務層,而客戶端用戶界面則可以整齊一致,易于管理。而且由于是使用中間件的獨立于OS和網絡服務及硬件的API,增強了系統的可維護性和擴充能力。
(2)將客戶端與系統資源(如數據庫)隔離開來,由中間件負責進行鑒別管理,鑒定服務和授權服務,客戶端無權限直接訪問數據庫,從而保證數據私有性。
(3)劃分出事務級權限,通過中間件的安全機制控制其訪問。雖然數據庫的權限有DDL和DML,但都屬于數據庫表級的權限,而實際應用中往往以事務或角色為主,采用三層體系結構可更加靈活、有效地實現事務級權限控制。
(4)采用三層體系結構,通過應用服務器,避免了客戶端與數據庫直接連接。應用服務器與數據庫服務器可方便地采用寬帶網連接,也就解決了數據庫訪問瓶頸及網絡瓶頸。
(5)通過增加應用服務器來分擔部分應用服務工作,可直接提高系統性能和處理速度,而原來的應用服務器基本不受影響,而且可有效地解決客戶訪問服務層的瓶頸。
(6)利用中間件的路由機制、平衡負載功能,提高系統的整體性能和工作效率。除此之外,采用三層應用體系結構,原有性能較差的設備可以更好地加以利用,不僅可以充分利用原有系統資源,而且使整個系統性能得到提高。
3結語
中間件的應用越來越廣泛,特別是在分布式異構平臺和網絡環境下,它使得極其復雜的分布式應用開發問題變得特別簡單,不僅提高了應用軟件的開發速度,而且,最大限度地保證了軟件質量,提高了可靠性,由于獨立于開發平臺和硬件環境,從而保證了所開發軟件的可重復使用,可移植性和可擴展性,大大降低了開發成本。電訊業發展迅速,對計費系統性能要求越來越高,功能要求越來越多,選擇合適的中間件將對開發者有著重大影響。