摘 要:隨著Internet技術的發展,中間件技術正成為Web頁面訪問數據庫的有效方案。為此,介紹了中間件技術的概念、中間件的分類和討論了不同中間件技術之間的特色和不足。近幾年來,中間件技術已經在廣東省廣電集團有限公司信息系統開發中得到了廣泛的應用,并在將要進行開發的新一代的ERP系統中,會用到基于EJB,CORBA或DCOM技術的Web應用服務器,即采用全面融合底層服務的中間件技術。
關鍵詞:中間件技術;面向對象;公共對象請求代理
Ontechnologyofmiddleware
Abstract:WiththedevelopmentofInternettechnology,middlewarehasbecomeaneffectiveplanforaccessingdatabaseonWebpage.Thispaperintroducesthedefinition,featuresandclassificationofmiddleware,comparingtheadvantagesanddisadvantagesofvariousmiddlewaretechniques.Inrecentyears,middlewaretechnologyhasbeenwidelyusedindevelopingtheinformationsystemofGPG.AndWebapplicationserverbasedonEJB,CORBAorDCOMtechniqueswillbeusedinthenewERPsystemtobedeveloped,iethemiddlewaretechniqueenablingallbottomlayerserviceswillbeadopted.
Keywords:middlewaretechnology;objectoriented;commonobjectrequestbroker
1中間件技術的概念
中間件(middleware)從最初為實現應用程序和異構數據庫之間的接口到目前的商業產品,已有近20年歷史。20世紀80年代,數據庫中間件(如ODBC)的產生,被認為是最早的一種中間件。隨著Internet技術的發展,該類中間件也成為Web頁面訪問數據庫的有效方案,如通用網關技術(CGI)和JDBC技術等。
1.1中間件的定義
中間件可以定義為:位于硬件、操作系統平臺和應用程序之間的通用服務系統,具有標準的程序接口和協議,可實現不同硬件和操作系統平臺上的數據共享和應用互操作。
1.2中間件的主要特點
1.2.1提供公共的應用通信機制和數據接口
中間件必須提供一個公共的應用通信機制和數據接口。通信機制用來屏蔽各類通信協議之間的差異,完成通信協議間盡可能的完全映射,同時用來控制數據傳輸過程中的流量、加密技術、并發沖突等問題。數據接口用來實現異構、分布式環境中數據的共享,從而做到對象位置與平臺無關性。
1.2.2可靠性保證
不同應用之間的通信,如客戶方和服務器方的請求和應答過程,需要通過中間件才能正確完成,中間件必須提供接管和恢復事務的功能,確保關鍵性事務不被丟失。
1.2.3效率保證
中間件的工作流程是:當客戶端的應用程序需要調用網絡上某個服務器的數據或服務時,中間件系統接收客戶端的請求,由此查找數據源或服務,建立相應服務或數據同相應服務器之間的對應關系。并在發送應用程序重新打包響應,將其傳送回客戶的應用程序。這樣,由于實現了客戶和服務器透明性而增加的請求響應時間,則必須由中間件的工作效率來盡量縮短。因此中間件提供的對服務或數據的查詢效率是至關重要的。
2中間件的類型
目前中間件技術的應用非常廣泛。在不同的應用領域,中間件所提供的功能不盡相同。下面簡要介紹一下中間件的分類。
2.1數據庫中間件
數據庫中間件是產生最早的一種中間件技術,發展到現在已經非常成熟了。該類中間件位于數據庫管理系統和應用程序之間實現了應用程序和異構數據庫之間的統一接口,有效地解決了應用系統在不同數據庫之間的移植問題。例如在開發應用系統過程中,通過ODBC實現應用系統和不同數據庫之間的連接。
2.2基于事件消息的中間件
采用消息中間件機制的系統中,不同的對象之間通過傳遞消息激發對方的事件,來完成相應的操作。目前流行的面向對象的編程開發環境中的大多數都采用這種方式,將對象的相應動作封裝在不同的事件,而這些事件又是由不同的消息所驅動的。消息中間件技術的工作模式既可以是同步的,又可以是異步的。
2.3交易中間件
交易中間件是專門針對聯機交易處理系統(OLAP)而設計的。聯機交易處理系統需要處理大量并發進程,這涉及到操作系統、文件系統、編程語言、數據通信、數據庫系統、系統管理及應用軟件,是一個相當艱巨的任務,但是工作的難度可以通過采用一個交易中間件來簡化。交易中間件就是一組程序模塊,用以大大減少開發一個聯機交易處理系統所需的編程量。X/OPEN組織專門定義了分部式交易處理的標準及參考模型,把一個聯機交易系統劃分成資源管理、交易管理和應用三部分,定義了應用程序、交易管理器、多個資源管理器協同工作的方式。資源管理器是數據庫和文件系統,交易管理器可歸入交易中間件。交易中間件管理有應用聲明和提交的交易,并通過兩階段提交協議等方式保證分部式交易的完整性、控制并發、實現交易路由和均衡負載。交易中間件理論上相對成熟,功能和性能界定清晰,但基本上適用于聯機交易系統,如銀行業務系統、訂票系統等。盡管交易信息也是消息,交易中間件也是基于消息的傳輸,也可支持同步和異步方式,但與消息中間件的定位差距較大,屬于一種較專用的中間件。
2.4面向對象的中間件
分布式技術和面向對象技術的結合,產生了大量基于對象中間標準。由OMG提出的公共對象請求代理機制(ORB)就是在對象之間建立客戶服務器關系的中間件。利用ORB,可以使客戶端能夠透明地調用分布對象上的方法和操作,而無需考慮編程語言、操作系統平臺、通信協議、互連細節的差異性。當客戶端發出請求調用其它對象提供的方法時,ORB截聽這種調用,并負責找到可以執行該請求的對象,傳遞參數和調用方法,最后返回結果。
這種對象請求代理機制和遠程過程調用之間有相似的地方。它們最大區別在于ORB調用的是位于某個特定對象中的特定方法,而其它調用的是某個特定的功能(數據是分開的)。也就是說,同樣的調用可能有不同的結果,取決于接收這個調用的對象,這就是所謂的多態消息接發。
公共對象請求代理機制(ORB)能實現分布環境中位于不同機器上應用之間的互操作以及多對象系統之間的無縫連接。在傳統的客戶服務器模式的應用中,開發者使用自己設計的標準或通用標準來定義設備之間的協議。協議定義與實現的語言、網絡傳輸、消息定義格式及其它因素有關。ORB簡化了這一過程,允許程序員選擇通用操作系統,運行環境和編程語言。
客戶端是一個要對對象進行操作的實體,對象實現(objectimplementation)是實現對象的代碼和數據。ORB負責根據一個請求來定位一個對象,安排對象實現準備接受請求的數據通信。客戶端的接口與對象的位置、實現對象的語言及其它不在對象接口反映出來的方面無關。客戶端使用動態調用接口(dynamicinvocationinterface,DII)或對象管理組(objectmanagementgroup,OMG)接口定義語言(interfacedefinitionlanguage,IDL)方式發送請求。前者與目標對象的接口無關,后者與目標對象接口有關。由于某種原因,客戶端也可以直接與ORB聯系。對象實現使用DII或OMGIDL生成向上傳遞(upcall)的方式接受請求。對象實現也可以調用對象適配器和ORB。可以用兩種方式來定義對象接口:用OMGIDL來定義接口;把接口放入接口池服務(interfacerepositoryservice)中,該服務把接口中的元素描述成一個對象。
任何能實現ORB的軟件中,接口定義語言IDL和接口池具有相同作用。一個客戶端要使用對象引用(objectreference)完成請求,它必須知道對象的類型以及具體的操作。客戶端初始化請求有兩種方法:通過調用目標對象;動態地創造請求。不論使用哪一種方法來發出請求都具有相同的語義,信息的接收者不能分辨出該請求是使用哪一種方法來傳遞的。ORB確定適當的實現代碼,傳遞參數,把控制傳給對象實現。為了完成請求,對象實現可能通過對象適配器使用來自ORB的服務。當完成請求后,控制和輸出結果返回給客戶端。對象實現選擇使用何種對象適配器取決于它所需要的服務種類。
3中間件技術的應用
近幾年來,中間件技術已經在廣東省廣電集團有限公司信息系統開發中得到了廣泛的應用。例如:在“廣電集團有限公司規范化檢修維護信息網站”項目開發中,使用數據庫中間件ODBC完成數據存取;“廣電集團有限公司Internet網站”項目開發中,使用數據庫中間件JDBC;“廣電集團有限公司科技項目管理信息系統”項目開發中,使用了美國BEA公司的中間件產品WebLogicServer;等等。
在廣東省廣電集團公司將要進行開發的新一代的ERP系統中,會用到基于EJB,CORBA或DCOM技術的Web應用服務器(全面融合底層服務的中間件)。這使得基于Internet的應用開發、部署、管理變得更加容易。它可以用一種靈活的方式來代表一個商業過程,把商業過程轉化到一個包含若干階段的框架結構,每一個階段代表對一個商業對象的分離的操作。
4結束語
中間件技術的日趨完善,為軟件的體系結構注入了新鮮的活力,改變了傳統的客戶服務器的兩層應用模式。特別是分布式對象技術、構件技術的發展,使中間件技術有了更大的突破。通過提供中間件的組件模式,簡化了應用程序的開發復雜性,提高了軟件可重用性,促使軟件生產的產業化,使跨企業的分布式應用得到了推廣。
參考文獻
[1]ORFALIR,HARKEYD,EDWARDSJ.InstantCORBA[M].Indianapolis,IN:JohnWiley&Sons,Inc.,1997.