?? ?中間件是一種獨立的系統(tǒng)軟件或服務程序,分布式應用軟件借助這種軟件在不同的技術之間共享資源,中間件位于客戶機服務器的操作系統(tǒng)之上,管理計算資源和網(wǎng)絡通信。
?? ?軟件中間件的作用是為處于自己上層的應用軟件提供運行與開發(fā)的環(huán)境,幫助用戶開發(fā)和集成應用軟件。它不僅僅要實現(xiàn)互連,還要實現(xiàn)應用之間的互操作。
中間件是一種獨立的系統(tǒng)軟件或服務程序,可以幫助分布式應用軟件在不同的技術之間共享資源。中間件可以:
1、負責客戶機與服務器之間的連接和通信,以及客戶機與應用層之間的高效率通信機制。
2、提供應用的負載均衡和高可用性、安全機制與管理功能,以及交易管理機制,保證交易的一致性。
3、提供應用層不同服務之間的互操作機制,以及應用層與數(shù)據(jù)庫之間的連接和控制機制。
4、提供多層架構的應用開發(fā)和運行的平臺,以及應用開發(fā)框架,支持模塊化的應用開發(fā)。
5、屏蔽硬件、操作系統(tǒng)、網(wǎng)絡和數(shù)據(jù)庫的差異。
6、提供一組通用的服務去執(zhí)行不同的功能,避免重復的工作和使應用之間可以協(xié)作。
1.分布式中中間件提供的支持
在一個分布式系統(tǒng)中,中間件通常提供兩種不同類型的支持:
1、交互支持,中間件協(xié)調系統(tǒng)中的不同組件之間的交互。
2、提供公共服務,即中間件提供對服務的可復用的實現(xiàn)。這些服務可能會被分布 式系統(tǒng)中的很多組件所需要。公共服務是指被不同組件需求的服務,不管這些組件 的功能是什么。這些服務,你可以把這些服務看做是中間件容器提供的??梢栽谶@ 個容器中部署你的組件并且這些組件可以訪問和使用這些公共服務。?
2.嵌入式中間件
通常,嵌入式中間件沒有統(tǒng)一的架構風格,根據(jù)應用對象的不同可存在多種類型,比較常見的是消息中間件和分布式對象中間件。
2.1消息中間件
消息中間件是在消息的傳輸過程中保存信息的容器。消息中間件再將消息從它的源中繼到它的目標時充當中間人的作用。隊列的主要目的是提供路由并保證消息的傳遞;如果發(fā)送消息時接收者不可用,消息隊列會保留消息,直到可以成功地傳遞它為止,當然,消息隊列保存消息也是有期限的。
消息中間件的特點:
(1)采用異步處理模式。消息發(fā)送者可以發(fā)送一個消息而無須等待響應。消息發(fā)送者將消息發(fā)送到一條虛擬的通道(主題或隊列)上,消息接收者則訂閱或是監(jiān)聽該通道。一條信息可能最終轉發(fā)給一個或多個消息接收者,這些接收者都無需對消息發(fā)送者做出同步回應。整個過程都是異步的。
(2)應用程序和應用程序調用關系為松耦合關系。主要體現(xiàn)在如下兩點:發(fā)送者和接受者不必了解對方、只需要確認消息;發(fā)送者和接受者不必同時在線。比如在線交易系統(tǒng)為了保證數(shù)據(jù)的最終一致,在支付系統(tǒng)處理完成后會把支付結果放到消息中間件里通知訂單系統(tǒng)修改訂單支付狀態(tài)。兩個系統(tǒng)通過消息中間件解耦。
消息中間件的傳輸模式:
(1)點對點模型。點對點模型用于消息生產(chǎn)者和消息消費者之間點到點的通信。消息生產(chǎn)者將消息發(fā)送到由某個名字標識的特定消費者。這個名字實際上對于消費服務中的一個隊列(Queue),在消息傳遞給消費者之前它被存儲在這個隊列中。隊列消息可以放在內存中也可以是持久的,以保證在消息服務出現(xiàn)故障時仍然能夠傳遞消息。
(2)發(fā)布-訂閱模型(Pub/Sub)。發(fā)布者/訂閱者模型支持向一個特定的消息主題生產(chǎn)消息。0或多個訂閱者可能對接收來自特定消息主題的消息感興趣。在這種模型下,發(fā)布者和訂閱者彼此不知道對方。這種模式就好比是匿名公告板。這種模式被概況為:多個消費者可以獲得消息,在發(fā)布者和訂閱者之間存在時間依賴性。發(fā)布者需要建立一個訂閱(subscription),以便能夠消費者訂閱。訂閱者必須保持持續(xù)的活動狀態(tài)及接收消息,除非訂閱者建立了持久的訂閱。
2.2 分布式對象中間件
分布式對象中間件技術是為了解決分布計算和軟件復用過程中存在的異構問題而提出的。CORBA,EJB,COM/DCOM是目前主要的3大中間件技術。
上述3種中間件各有特點,CORBA可以跨各種操作平臺,包括Windows OS ,甚至支持DOS操作系統(tǒng)而DCOM只支持Win 32; 同時CORBA跨多種語言,支持C++,Smalltalk,JAVA,COBOL,Ada等語言。DCOM主要以桌面Wintel同質平臺對象跨應用使用見長,支持帶有指針結構的語言如C,C++而不支持JAVA語言。Enterprise JAVA在Internet環(huán)境下集組件模式、跨異構平臺、兼具事務處理、數(shù)據(jù)庫連接等許多基礎結構服務,但僅限于支持JAVA語言。因此我們利用JAVA語言具有簡單、面向對象、分布式、解釋型、健壯、安全、可移植性的特點結合CORBA的跨異構平臺的特性實現(xiàn)對象的重用。
2.2.1EJB
EJB是企業(yè)級Java構件,用于開發(fā)和部署多層結構的、分布式的、面向對象的Java應用系統(tǒng)。
EJB分為會話Bean、實體Bean和消息驅動Bean。
1、會話Bean:用于實現(xiàn)業(yè)務邏輯,它可以是有狀態(tài)的,也可以是無狀態(tài)的。每當客戶端請求時,容器就會選擇一個會話Bean來為客戶端服務。會話Bean可以直接訪問數(shù)據(jù)庫,但更多時候,它會通過實體Bean實現(xiàn)數(shù)據(jù)訪問。
2、實體Bean:用于實現(xiàn)O/R映射,負責將數(shù)據(jù)庫中的表記錄映射為內存中的實體對象,事實上,創(chuàng)建一個實體Bean對象相當于新建一條記錄,刪除一個實體Bean會同時從數(shù)據(jù)庫中刪除對應記錄,修改一個實體Bean時,容器會自動將實體Bean的狀態(tài)和數(shù)據(jù)庫同步。文章來源:http://www.zghlxwxcb.cn/news/detail-741195.html
3、消息驅動Bean:是EJB3.0中引入的新的企業(yè)Bean,它基于JMS消息,只能接收客戶端發(fā)送的JMS消息然后處理。MDB實際上是一個異步的無狀態(tài)會話Bean,客戶端調用MDB后無需等待,立刻返回,MDB將異步處理客戶請求。這適合于需要異步處理請求的場合,比如訂單處理,這樣就能避免客戶端長時間的等待一個方法調用直到返回結果。文章來源地址http://www.zghlxwxcb.cn/news/detail-741195.html
到了這里,關于關于中間件技術的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!