帶你認識中間件(Middleware)
中間件/Middleware 定義
本文引用地址:http://www.eepw.com.cn/article/201706/351388.htm中間件是一種獨立的系統(tǒng)軟件或服務(wù)程序,分布式應(yīng)用軟件借助這種軟件在不同的技術(shù)之間共享資源。中間件位于客戶機/ 服務(wù)器的操作系統(tǒng)之上,管理計算機資源和網(wǎng)絡(luò)通訊。是連接兩個獨立應(yīng)用程序或獨立系統(tǒng)的軟件。相連接的系統(tǒng),即使它們具有不同的接口,但通過中間件相互之間仍能交換信息。執(zhí)行中間件的一個關(guān)鍵途徑是信息傳遞。通過中間件,應(yīng)用程序可以工作于多平臺或 OS 環(huán)境。
簡單的說,中間件是一種計算機軟件連接了軟件部件或者應(yīng)用程序。 這種軟件有一組服務(wù)構(gòu)成,這些服務(wù)包括允許多進程運行在一個或者多個機器上以達到在網(wǎng)絡(luò)中互相交互的目的。
中間件的特點
1、滿足大量應(yīng)用的需要; 2、運行于多種硬件和OS平臺; 3、支持分布式計算,提供跨網(wǎng)絡(luò)、硬件和OS平臺的透明性的應(yīng)用或服務(wù)的交互功能; 4、支持標準的協(xié)議; 5、支持標準的接口。
中間件可以應(yīng)用于以下情形,如連接公司 LAN和早期系統(tǒng)、交換兩個郵件系統(tǒng)間的信息、支持 web 客戶機與數(shù)據(jù)庫服務(wù)器交換信息等。
主要中間件的分類
中間件分類(IDC的分類):大致可分為六類:終端仿真/屏幕轉(zhuǎn)換中間件、數(shù)據(jù)訪問中間件、遠程過程調(diào)用中間件、消息中間件、交易中間件、對象中間件。
中間件所包括的范圍十分廣泛,針對不同的應(yīng)用需求涌現(xiàn)出多種各具特色的中間件產(chǎn)品。但至今中間件還沒有一個比較精確的定義,因此,在不同的角度或不同的層次上,對中間件的分類也會有所不同。由于中間件需要屏蔽分布環(huán)境中異構(gòu)的操作系統(tǒng)和網(wǎng)絡(luò)協(xié)議,它必須能夠提供分布環(huán)境下的通訊服務(wù),我們將這種通訊服務(wù)稱之為平臺?;谀康暮蛯崿F(xiàn)機制的不同,我們將平臺分為以下主要幾類:
1、遠程過程調(diào)用中間件(Remote Procedure Call)2、面向消息的中間件(MesSAge-Oriented Middleware)3、對象請求代理中間件(object RequeST Brokers)
它們可向上提供不同形式的通訊服務(wù),包括同步、排隊、訂閱發(fā)布、廣播等等,在這些基本的通訊平臺之上,可構(gòu)筑各種框架,為應(yīng)用程序提供不同領(lǐng)域內(nèi)的服務(wù),如事務(wù)處理監(jiān)控器、分布數(shù)據(jù)訪問、對象事務(wù)管理器OTM等。平臺為上層應(yīng)用屏蔽了異構(gòu)平臺的差異,而其上的框架又定義了相應(yīng)領(lǐng)域內(nèi)的應(yīng)用的系統(tǒng)結(jié)構(gòu)、標準的服務(wù)組件等,用戶只需告訴框架所關(guān)心的事件,然后提供處理這些事件的代碼。當(dāng)事件發(fā)生時,框架則會調(diào)用用戶的代碼。用戶代碼不用調(diào)用框架,用戶程序也不必關(guān)心框架結(jié)構(gòu)、執(zhí)行流程、對系統(tǒng)級API的調(diào)用等,所有這些由框架負責(zé)完成。因此,基于中間件開發(fā)的應(yīng)用具有良好的可擴充性、易管理性、高可用性和可移植性。
各類型中間件簡要介紹
1、遠程過程調(diào)用
遠程過程調(diào)用是一種廣泛使用的分布式應(yīng)用程序處理方法。一個應(yīng)用程序使用RPC來“遠程”執(zhí)行一個位于不同地址空間里的過程,并且從效果上看和執(zhí)行本地調(diào)用相同。事實上,一個RPC應(yīng)用分為兩個部分:server和Client。server提供一個或多個遠程過程;client向server發(fā)出遠程調(diào)用。server和client可以位于同一臺計算機,也可以位于不同的計算機,甚至運行在不同的操作系統(tǒng)之上。它們通過網(wǎng)絡(luò)進行通訊。相應(yīng)的stub和運行支持提供數(shù)據(jù)轉(zhuǎn)換和通訊服務(wù),從而屏蔽不同的操作系統(tǒng)和網(wǎng)絡(luò)協(xié)議。在這里RPC通訊是同步的。采用線程可以進行異步調(diào)用。
在RPC模型中,client和server只要具備了相應(yīng)的RPC接口,并且具有RPC運行支持,就可以完成相應(yīng)的互操作,而不必限制于特定的server。因此,RPC為client/server分布式計算提供了有力的支持。同時,遠程過程調(diào)用RPC所提供的是基于過程的服務(wù)訪問,client與server進行直接連接,沒有中間機構(gòu)來處理請求,因此也具有一定的局限性。比如,RPC通常需要一些網(wǎng)絡(luò)細節(jié)以定位server;在client發(fā)出請求的同時,要求server必須是活動的等等。
2、面向消息的中間件
MOM指的是利用高效可靠的消息傳遞機制進行平臺無關(guān)的數(shù)據(jù)交流,并基于數(shù)據(jù)通信來進行分布式系統(tǒng)的集成。通過提供消息傳遞和消息排隊模型,它可在分布環(huán)境下擴展進程間的通信,并支持多通訊協(xié)議、語言、應(yīng)用程序、硬件和軟件平臺。目前流行的MOM中間件產(chǎn)品有IBM的MQSeries、BEA的MessageQ等。消息傳遞和排隊技術(shù)有以下三個主要特點:1)、通訊程序可在不同的時間運行 程序不在網(wǎng)絡(luò)上直接相互通話,而是間接地將消息放入消息隊列,因為程序間沒有直接的聯(lián)系。所以它們不必同時運行。消息放入適當(dāng)?shù)年犃袝r,目標程序甚至根本不需要正在運行;即使目標程序在運行,也不意味著要立即處理該消息。2)、對應(yīng)用程序的結(jié)構(gòu)沒有約束 在復(fù)雜的應(yīng)用場合中,通訊程序之間不僅可以是一對一的關(guān)系,還可以進行一對多和多對一方式,甚至是上述多種方式的組合。多種通訊方式的構(gòu)造并沒有增加應(yīng)用程序的復(fù)雜性。3)、程序與網(wǎng)絡(luò)復(fù)雜性相隔離程序?qū)⑾⒎湃胂㈥犃谢驈南㈥犃兄腥〕鱿磉M行通訊,與此關(guān)聯(lián)的全部活動,比如維護消息隊列、維護程序和隊列之間的關(guān)系、處理網(wǎng)絡(luò)的重新啟動和在網(wǎng)絡(luò)中移動消息等是MOM的任務(wù),程序不直接與其它程序通話,并且它們不涉及網(wǎng)絡(luò)通訊的復(fù)雜性。
3、對象請求代理
隨著對象技術(shù)與分布式計算技術(shù)的發(fā)展,兩者相互結(jié)合形成了分布對象計算,并發(fā)展為當(dāng)今軟件技術(shù)的主流方向。1990年底,對象管理集團OMG首次推出對象管理結(jié)構(gòu)OMA(ObjECt Management Architecture),對象請求代理(Object Request Broker)是這個模型的核心組件。它的作用在于提供一個通信框架,透明地在異構(gòu)的分布計算環(huán)境中傳遞對象請求。CORBA規(guī)范包括了ORB的所有標準接口。1991年推出的CORBA 1.1 定義了接口描述語言O(shè)MG IDL和支持Client/Server對象在具體的ORB上進行互操作的API。CORBA 2.0 規(guī)范描述的是不同廠商提供的ORB之間的互操作。
對象請求代理(ORB)是對象總線,它在CORBA規(guī)范中處于核心地位,定義異構(gòu)環(huán)境下對象透明地發(fā)送請求和接收響應(yīng)的基本機制,是建立對象之間client/server關(guān)系的中間件。ORB使得對象可以透明地向其他對象發(fā)出請求或接受其他對象的響應(yīng),這些對象可以位于本地也可以位于遠程機器。ORB攔截請求調(diào)用,并負責(zé)找到可以實現(xiàn)請求的對象、傳送參數(shù)、調(diào)用相應(yīng)的方法、返回結(jié)果等。 client對象并不知道同server對象通訊、激活或存儲server對象的機制,也不必知道server對象位于何處、它是用何種語言實現(xiàn)的、使用什么操作系統(tǒng)或其他不屬于對象接口的系統(tǒng)成分。
值得指出的是client和server角色只是用來協(xié)調(diào)對象之間的相互作用,根據(jù)相應(yīng)的場合,ORB上的對象可以是client,也可以是server,甚至兼有兩者。當(dāng)對象發(fā)出一個請求時,它是處于client角色;當(dāng)它在接收請求時,它就處于server角色。大部分的對象都是既扮演client角色又扮演server角色。另外由于ORB負責(zé)對象請求的傳送和server的管理,client和server之間并不直接連接,因此,與RPC所支持的單純的Client/Server結(jié)構(gòu)相比,ORB可以支持更加復(fù)雜的結(jié)構(gòu)。
4、事務(wù)處理監(jiān)控
事務(wù)處理監(jiān)控(Transaction processing monitors)最早出現(xiàn)在大型機上,為其提供支持大規(guī)模事務(wù)處理的可靠運行環(huán)境。隨著分布計算技術(shù)的發(fā)展,分布應(yīng)用系統(tǒng)對大規(guī)模的事務(wù)處理提出了需求,比如商業(yè)活動中大量的關(guān)鍵事務(wù)處理。事務(wù)處理監(jiān)控界于client和server之間,進行事務(wù)管理與協(xié)調(diào)、負載平衡、失敗恢復(fù)等,以提高系統(tǒng)的整體性能。它可以被看作是事務(wù)處理應(yīng)用程序的“操作系統(tǒng)”??傮w上來說,事務(wù)處理監(jiān)控有以下功能:進程管理,包括啟動server進程、為其分配任務(wù)、監(jiān)控其執(zhí)行并對負載進行平衡。事務(wù)管理,即保證在其監(jiān)控下的事務(wù)處理的原子性、一致性、獨立性和持久性。通訊管理,為client和server之間提供了多種通訊機制,包括請求響應(yīng)、會話、排隊、訂閱發(fā)布和廣播等。
事務(wù)處理監(jiān)控能夠為大量的client提供服務(wù),比如飛機定票系統(tǒng)。如果server為每一個 client都分配其所需要的資源的話,那server將不堪重負(如圖2所示)。但實際上,在同一時刻并不是所有的client都需要請求服務(wù),而一旦某個client請求了服務(wù),它希望得到快速的響應(yīng)。事務(wù)處理監(jiān)控在操作系統(tǒng)之上提供一組服務(wù),對client請求進行管理并為其分配相應(yīng)的服務(wù)進程,使 server在有限的系統(tǒng)資源下能夠高效地為大規(guī)模的客戶提供服務(wù)。
關(guān)鍵詞: 中間件 Niddleware 定義 特點 分類
您可能也感興趣:
今日熱點
為您推薦
8家險企股權(quán)被掛牌轉(zhuǎn)讓,為何險企股權(quán)不再被追捧?
深圳最低工資標準調(diào)整為2360元/月 失業(yè)保險金為2124元/月
遼寧實施失業(yè)保險省級統(tǒng)籌 對缺口核定等作出詳細規(guī)定
更多
- 蕪湖釋放創(chuàng)新“N次方”效應(yīng) 數(shù)字賦能驅(qū)動產(chǎn)業(yè)升級
- 重慶:激發(fā)人才創(chuàng)新活力,到2025年創(chuàng)新要素活躍度顯著增強
- 西寧加快知識產(chǎn)權(quán)強市建設(shè)步伐 去年兌現(xiàn)資助資金200萬元
- 無錫錫山區(qū)全面啟動實施“雙招雙引” 引進高端創(chuàng)新資源
- 重慶巴南區(qū)落實創(chuàng)新驅(qū)動發(fā)展戰(zhàn)略 以科技創(chuàng)新引領(lǐng)五大產(chǎn)業(yè)集...
- 朝陽北票經(jīng)開區(qū)加快推進數(shù)字經(jīng)濟發(fā)展 推動體制機制創(chuàng)新
- 湖北省先進低碳冶金產(chǎn)業(yè)技術(shù)創(chuàng)新聯(lián)合體組建 打造五千億級產(chǎn)...
- 重慶渝北將優(yōu)化創(chuàng)新生態(tài)環(huán)境 培育打造一批引領(lǐng)型的科創(chuàng)載體
更多
- 山東抓投資抓項目 新興領(lǐng)域投資規(guī)模持續(xù)擴大
- 2021年各地引資成績單亮眼 迸發(fā)出巨大經(jīng)濟活力
- 多地重大項目投資規(guī)模力度明顯加大 新基建項目成重要發(fā)力點
- 年內(nèi)湖北新開工城建項目160個 集中在道路交通等方面
- 去年我國對外投資合作平穩(wěn)發(fā)展 境外經(jīng)貿(mào)合作區(qū)建設(shè)成效顯著
- 荊州集中簽約39個項目 重點涵蓋高端裝備制造、電子信息等領(lǐng)域
- 廣東打出一系列穩(wěn)外貿(mào)政策“組合拳” 外貿(mào)逆勢創(chuàng)新高
- 蘭州新區(qū)再獲“最具投資吸引力新區(qū)” 去年新增市場主體5427戶
排行
最近更新
- 蕪湖釋放創(chuàng)新“N次方”效應(yīng) 數(shù)字賦能驅(qū)動產(chǎn)業(yè)升級
- 去年快遞服務(wù)全程時限水平有較大提升 干線運輸時限縮短
- 住建部:推動長江經(jīng)濟帶高質(zhì)量發(fā)展,打造區(qū)域協(xié)調(diào)發(fā)展新樣板
- 江蘇發(fā)布重大項目清單 增資擴產(chǎn)項目明顯增多
- 山東抓投資抓項目 新興領(lǐng)域投資規(guī)模持續(xù)擴大
- Gucci在2月將投放 10 個“SuperGucci”NFT
- 美國銀行:美國CBDC將保持美元作為世界儲備貨幣的地位
- 美股三大指數(shù)尾盤集體轉(zhuǎn)漲
- 光伏發(fā)電概念股有哪些?光伏發(fā)電概念龍頭股一覽
- The new iPad屏幕對比評測
- 電源接通延時器
- 汽車電子穩(wěn)定系統(tǒng)(ESP)詳解
- 聯(lián)想B520一體機拆解
- 焦炭相關(guān)股票有哪些?焦炭概念股票龍頭一覽
- 增強信號 3G無線上網(wǎng)卡改裝拆解全攻略
- 盤點全球五大智能手機生產(chǎn)商 華為聯(lián)想入圍
- 三星新平板 Galaxy Note 10.1全拆解
- 智能監(jiān)控防盜報警系統(tǒng)
- 格力電器未來三年股東回報規(guī)劃:每年累計分紅不低于當(dāng)年凈利潤50%
- 消息稱京東科技計劃2022年在港IPO,募資10億至20億美元
- 恒大集團:呼吁境外債權(quán)人不采取任何激進的法律行動
- 海航董事長劉璐因個人原因辭職,在海航已近28年
- 青青稞酒預(yù)計2021年營收增長30%-40%,四季度凈虧損超1500萬
- 2022年在港上市募資10億美元?京東科技:不予置評
- 財政部修訂出臺《財政行政處罰聽證實施辦法》
- 賣房子需要交什么稅?賣房子必須攜帶哪些證件?
- 醫(yī)保卡的使用范圍有哪些?補牙可以使用醫(yī)保報銷嗎?
- 小產(chǎn)權(quán)房能過戶嗎?購買小產(chǎn)權(quán)房有什么風(fēng)險?
- 奕東電子的實際控制人是誰?奕東電子股票上市了嗎?
- 百合股份是一家什么公司?百合股份的股票何時上市?
今日要聞
- 蕪湖釋放創(chuàng)新“N次方”效應(yīng) 數(shù)字賦能驅(qū)動產(chǎn)業(yè)升級
- 去年快遞服務(wù)全程時限水平有較大提升 干線運輸時限縮短
- 住建部:推動長江經(jīng)濟帶高質(zhì)量發(fā)展,打造區(qū)域協(xié)調(diào)發(fā)展新樣板
- 山東抓投資抓項目 新興領(lǐng)域投資規(guī)模持續(xù)擴大
- Gucci在2月將投放 10 個“SuperGucci”NFT
- 美國銀行:美國CBDC將保持美元作為世界儲備貨幣的地位
- 美股三大指數(shù)尾盤集體轉(zhuǎn)漲
- The new iPad屏幕對比評測
- 電源接通延時器
- 汽車電子穩(wěn)定系統(tǒng)(ESP)詳解