<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Cyh的博客

    Email:kissyan4916@163.com
    posts - 26, comments - 19, trackbacks - 0, articles - 220

    什么是中間件(轉)

    Posted on 2009-06-18 23:59 啥都寫點 閱讀(195) 評論(0)  編輯  收藏 所屬分類: 中間件

    一、為什么要中間件

    計算機技術迅速發展。從硬件技術看,CPU速度越來越高,處理能力越來越強;從軟件技術看,應用程序的規模不斷擴大,特別是Internet及WWW的出現,使計算機的應用范圍更為廣闊,許多應用程序需在網絡環境的異構平臺上運行。這一切都對新一代的軟件開發提出了新的需求。在這種分布異構環境中,通常存在多種硬件系統平臺(如PC,工作站,小型機等),在這些硬件平臺上又存在各種各樣的系統軟件(如不同的操作系統、數據庫、語言編譯器等),以及多種風格各異的用戶界面,這些硬件系統平臺還可能采用不同的網絡協議和網絡體系結構連接。如何把這些系統集成起來并開發新的應用是一個非?,F實而困難的問題。

    二、什么是中間件

    為解決分布異構問題,人們提出了中間件(middleware)的概念。中間件是位于平臺(硬件和操作系統)和應用之間的通用服務,如圖1所示,這些服務具有標準的程序接口和協議。針對不同的操作系統和硬件平臺,它們可以有符合接口和協議規范的多種實現。

    圖1 中間件



    也許很難給中間件一個嚴格的定義,但中間件應具有如下的一些特點:

    滿足大量應用的需要
    運行于多種硬件和OS平臺
    支持分布計算,提供跨網絡、硬件和OS平臺的透明性的應用或服務的交互
    支持標準的協議
    支持標準的接口

    由于標準接口對于可移植性和標準協議對于互操作性的重要性,中間件已成為許多標準化工作的主要部分。對于應用軟件開發,中間件遠比操作系統和網絡服務更為重要,中間件提供的程序接口定義了一個相對穩定的高層應用環境,不管底層的計算機硬件和系統軟件怎樣更新換代,只要將中間件升級更新,并保持中間件對外的接口定義不變,應用軟件幾乎不需任何修改,從而保護了企業在應用軟件開發和維護中的重大投資。

    三、主要中間件的分類

    中間件所包括的范圍十分廣泛,針對不同的應用需求涌現出多種各具特色的中間件產品。但至今中間件還沒有一個比較精確的定義,因此,在不同的角度或不同的層次上,對中間件的分類也會有所不同。由于中間件需要屏蔽分布環境中異構的操作系統和網絡協議,它必須能夠提供分布環境下的通訊服務,我們將這種通訊服務稱之為平臺?;谀康暮蛯崿F機制的不同,我們將平臺分為以下主要幾類:

    遠程過程調用(Remote Procedure Call)
    面向消息的中間件(Message-Oriented Middleware)
    對象請求代理(Object Request Brokers)

    它們可向上提供不同形式的通訊服務,包括同步、排隊、訂閱發布、廣播等等,在這些基本的通訊平臺之上,可構筑各種框架,為應用程序提供不同領域內的服務,如事務處理監控器、分布數據訪問、對象事務管理器OTM等。平臺為上層應用屏蔽了異構平臺的差異,而其上的框架又定義了相應領域內的應用的系統結構、標準的服務組件等,用戶只需告訴框架所關心的事件,然后提供處理這些事件的代碼。當事件發生時,框架則會調用用戶的代碼。用戶代碼不用調用框架,用戶程序也不必關心框架結構、執行流程、對系統級API的調用等,所有這些由框架負責完成。因此,基于中間件開發的應用具有良好的可擴充性、易管理性、高可用性和可移植性。

    下面,針對幾類主要的中間件分別加以簡要的介紹。

    1、遠程過程調用

    遠程過程調用是一種廣泛使用的分布式應用程序處理方法。一個應用程序使用RPC來“遠程”執行一個位于不同地址空間里的過程,并且從效果上看和執行本地調用相同。事實上,一個RPC應用分為兩個部分:server和client。server提供一個或多個遠程過程;client向server發出遠程調用。server和client可以位于同一臺計算機,也可以位于不同的計算機,甚至運行在不同的操作系統之上。它們通過網絡進行通訊。相應的stub和運行支持提供數據轉換和通訊服務,從而屏蔽不同的操作系統和網絡協議。在這里RPC通訊是同步的。采用線程可以進行異步調用。

    在RPC模型中,client和server只要具備了相應的RPC接口,并且具有RPC運行支持,就可以完成相應的互操作,而不必限制于特定的server。因此,RPC為client/server分布式計算提供了有力的支持。同時,遠程過程調用RPC所提供的是基于過程的服務訪問,client與server進行直接連接,沒有中間機構來處理請求,因此也具有一定的局限性。比如,RPC通常需要一些網絡細節以定位server;在client發出請求的同時,要求server必須是活動的等等。

    2、面向消息的中間件

    MOM指的是利用高效可靠的消息傳遞機制進行平臺無關的數據交流,并基于數據通信來進行分布式系統的集成。通過提供消息傳遞和消息排隊模型,它可在分布環境下擴展進程間的通信,并支持多通訊協議、語言、應用程序、硬件和軟件平臺。目前流行的MOM中間件產品有IBM的MQSeries、BEA的MessageQ等。消息傳遞和排隊技術有以下三個

    主要特點:

    通訊程序可在不同的時間運行程序不在網絡上直接相互通話,而是間接地將消息放入消息隊列,因為程序間沒有直接的聯系。所以它們不必同時運行。消息放入適當的隊列時,目標程序甚至根本不需要正在運行;即使目標程序在運行,也不意味著要立即處理該消息。

    對應用程序的結構沒有約束在復雜的應用場合中,通訊程序之間不僅可以是一對一的關系,還可以進行一對多和多對一方式,甚至是上述多種方式的組合。多種通訊方式的構造并沒有增加應用程序的復雜性。

    程序與網絡復雜性相隔離

    程序將消息放入消息隊列或從消息隊列中取出消息來進行通訊,與此關聯的全部活動,比如維護消息隊列、維護程序和隊列之間的關系、處理網絡的重新啟動和在網絡中移動消息等是MOM的任務,程序不直接與其它程序通話,并且它們不涉及網絡通訊的復雜性。

    3、對象請求代理

    隨著對象技術與分布式計算技術的發展,兩者相互結合形成了分布對象計算,并發展為當今軟件技術的主流方向。1990年底,對象管理集團OMG首次推出對象管理結構OMA(Object Management Architecture),對象請求代理(Object Request Broker)是這個模型的核心組件。它的作用在于提供一個通信框架,透明地在異構的分布計算環境中傳遞對象請求。CORBA規范包括了ORB的所有標準接口。1991年推出的CORBA 1.1 定義了接口描述語言OMG IDL和支持Client/Server對象在具體的ORB上進行互操作的API。CORBA 2.0 規范描述的是不同廠商提供的ORB之間的互操作。

    對象請求代理(ORB)是對象總線,它在CORBA規范中處于核心地位,定義異構環境下對象透明地發送請求和接收響應的基本機制,是建立對象之間client/server關系的中間件。ORB使得對象可以透明地向其他對象發出請求或接受其他對象的響應,這些對象可以位于本地也可以位于遠程機器。ORB攔截請求調用,并負責找到可以實現請求的對象、傳送參數、調用相應的方法、返回結果等。client對象并不知道同server對象通訊、激活或存儲server對象的機制,也不必知道server對象位于何處、它是用何種語言實現的、使用什么操作系統或其他不屬于對象接口的系統成分。

    值得指出的是client和server角色只是用來協調對象之間的相互作用,根據相應的場合,ORB上的對象可以是client,也可以是server,甚至兼有兩者。當對象發出一個請求時,它是處于client角色;當它在接收請求時,它就處于server角色。大部分的對象都是既扮演client角色又扮演server角色。另外由于ORB負責對象請求的傳送和server的管理,client和server之間并不直接連接,因此,與RPC所支持的單純的Client/Server結構相比,ORB可以支持更加復雜的結構。

    4、事務處理監控

    事務處理監控(Transaction processing monitors)最早出現在大型機上,為其提供支持大規模事務處理的可靠運行環境。隨著分布計算技術的發展,分布應用系統對大規模的事務處理提出了需求,比如商業活動中大量的關鍵事務處理。事務處理監控界于client和server之間,進行事務管理與協調、負載平衡、失敗恢復等,以提高系統的整體性能。它可以被看作是事務處理應用程序的“操作系統”??傮w上來說,事務處理監控有以下功能:

    進程管理,包括啟動server進程、為其分配任務、監控其執行并對負載進行平衡。
    事務管理,即保證在其監控下的事務處理的原子性、一致性、獨立性和持久性。
    通訊管理,為client和server之間提供了多種通訊機制,包括請求響應、會話、排隊、訂閱發布和廣播等。
    事務處理監控能夠為大量的client提供服務,比如飛機定票系統。如果server為每一個client都分配其所需要的資源的話,那server將不堪重負(如圖2所示)。但實際上,在同一時刻并不是所有的client都需要請求服務,而一旦某個client請求了服務,它希望得到快速的響應。事務處理監控在操作系統之上提供一組服務,對client請求進行管理并為其分配相應的服務進程,使server在有限的系統資源下能夠高效地為大規模的客戶提供服務。

    圖2 事務處理監控



    四、面臨的一些問題

    中間件能夠屏蔽操作系統和網絡協議的差異,為應用程序提供多種通訊機制;并提供相應的平臺以滿足不同領域的需要。因此,中間件為應用程序了一個相對穩定的高層應用環境。然而,中間件服務也并非“萬能藥”。中間件所應遵循的一些原則離實際還有很大距離。多數流行的中間件服務使用專有的API和專有的協議,使得應用建立于單一廠家的產品,來自不同廠家的實現很難互操作。有些中間件服務只提供一些平臺的實現,從而限制了應用在異構系統之間的移植。應用開發者在這些中間件服務之上建立自己的應用還要承擔相當大的風險,隨著技術的發展他們往往還需重寫他們的系統。盡管中間件服務提高了分布計算的抽象化程度,但應用開發者還需面臨許多艱難的設計選擇,例如,開發者還需決定分布應用在client方和server方的功能分配。通常將表示服務放在client以方便使用顯示設備,將數據服務放在server以靠近數據庫,但也并非總是如此,何況其它應用功能如何分配也是不容易確定的。



                                                                                                           --    學海無涯
            

    主站蜘蛛池模板: 国产成人3p视频免费观看| 亚洲性线免费观看视频成熟| 国产zzjjzzjj视频全免费| 亚洲一区二区三区无码国产| 久久久久久国产精品免费无码| 亚洲第一AAAAA片| 最近免费mv在线观看动漫| 亚洲系列中文字幕| 香蕉成人免费看片视频app下载| 亚洲精品无码不卡在线播HE| 野花香高清视频在线观看免费 | 四虎成人免费网站在线| 亚洲综合av一区二区三区不卡| 免费av欧美国产在钱| 亚洲AV女人18毛片水真多| 又大又黄又粗又爽的免费视频| 最新亚洲人成无码网站| 亚洲区小说区图片区| 中国国语毛片免费观看视频| 亚洲av综合色区| 中文字幕无码播放免费| 亚洲av无码成人精品国产| 亚洲人AV永久一区二区三区久久| 丁香花在线视频观看免费| 亚洲一区影音先锋色资源| 在人线av无码免费高潮喷水| 亚洲欧美日韩久久精品| 亚洲午夜精品一级在线播放放| 好紧我太爽了视频免费国产| 亚洲伊人色一综合网| 免费成人在线观看| 久久久免费的精品| 亚洲av无码专区在线电影天堂| 久久亚洲中文字幕精品一区四| 久久ww精品w免费人成| 精品无码专区亚洲| 亚洲AV无码码潮喷在线观看| 国色精品卡一卡2卡3卡4卡免费| 男女超爽视频免费播放| 久久久久久a亚洲欧洲AV| 日韩免费视频观看|