學習了兩天中介軟體,雖然對於中介軟體這個概念還是比較模糊,但也不算白學。
中介軟體(Middleware)是處於作業系統和應用程式之間的軟體,也有人認為它應該屬於作業系統中的一部分。人們在使用中介軟體時,往往是一組中介軟體整合在一起,構成一個平臺(包括開發平臺和執行平臺),但在這組中介軟體中必需要有一個通訊中介軟體,即中介軟體=平臺+通訊,這個定義也限定了只有用於分散式系統中才能稱為中介軟體,同時還可以把它與支撐軟體和實用軟體區分開來。
中介軟體是基礎軟體,處於作業系統(或網路協議)與分散式應用之間。
分類:
訊息中介軟體(MOM:Message-Oriented Middleware)
資料中介軟體(Database Middleware)
http://baike。baidu。com/view/25611。htm
http://www。cnblogs。com/yangy608/archive/2010/11/09/1872823。html
http://www。openfoundry。org/en/tech-column/1325
http://it。china-b。com/zx/mssql/20090609/70440_1。html
遠端過程呼叫中介軟體(RPC:Remote Process Call)
物件請求代理中介軟體(ORB:Object Request Broker)
事務處理中介軟體(TP Monitor:Transaction Process Monitor)
J2EE中介軟體
分散式軟體系統:
1。不同的模組執行在不同的物理位置
2。並行處理同一個請求
分散式物件,實際上是軟體構件:
1、面向物件
2、物件之間的互動,透過訊息交換。(物件方法的呼叫)
3、語言的無關性
4、可插入性強、封裝的更徹底,不關注原始碼的處理
分散式系統中資料交換隻能是流資料(網路上進行傳輸的資料,序列化資料 )。
接觸到幾個概念:
1、構件:
構件是一個嚴格定義的可插入單元:類似於硬體模組,一旦開發完成,就可以方便的用來組裝系統。構件一般是基於物件實現的,但也可以不作為物件實現;
構件將封裝運用到了極限:構件透過封裝來隱藏構件的實現以達到;
構件通常在容器中進行管理:按照上面的討論,構件要遮蔽實現語言、實現方式等,很多實現細節,使用一個構件時可以不關心具體實現和位置;
構件可以從容器中獲得屬性或服務: 如構件可以使用容器的背景色作為自己的背景色;
構件允許對所支援的介面進行動態發現和呼叫: 客戶程式可以在執行狀態下確定一個構件支援何種功能,然後呼叫該功能。
2 中介軟體概念:
終端模擬/螢幕轉換中介軟體:用以實現客戶端圖形使用者介面與已有的字元介面方式的伺服器應用程式的互操作。在該種中介軟體支援下,可以很容易地為原有字元介面的應用程式提供圖形使用者介面。
資料訪問中介軟體:在資料庫管理系統的基礎上,對異構環境下的資料庫實現聯接或檔案系統實現聯接的中介軟體,為應用程式訪問資料庫提供開發支撐。 遠端過程/方法呼叫中介軟體:用以實現遠端過程或方法呼叫的中介軟體。嚮應用程式提供遠端呼叫時的底層通訊支援,幫助應用程式完成編組與解組等工作,程式設計師方便地編寫客戶端應用程式,像呼叫本地過程或物件那樣方便呼叫位於遠端伺服器上的過程或物件方法。
訊息中介軟體:為應用程式提供傳送和接收非同步訊息支援的中介軟體。基於訊息的互動方式提供了基本的非同步程式設計模式,即客戶端可以透過傳送訊息來請求某種服務,在服務端處理請求期間,客戶端不必等待對方完成,可以執行其它操作,服務端完成後會以訊息的形式通知客戶端。在訊息中介軟體的支援下,應用程式可以很容易地實現訊息的傳送和接收,而不必關心訊息交換過程中的具體細節。
事務(交易)中介軟體:提供事務控制機制的中介軟體。事務(交易)管理支援可靠的服務端計算,這在很多關鍵系統中都是必需的。事務的基本特徵是維護一系列操作的原子性,如銀行業務系統中轉賬功能所包含的扣除源賬戶餘額與增加目標賬戶餘額兩個操作, 這兩個操作從業務邏輯上講應該是原子的,即要麼全部都完成,要麼全部都不做。基於事務中介軟體,應用程式可以佷方便地實現事務控制,而不必關心具體事務控制的細節。
構件中介軟體:提供構件化支援的中介軟體。在分佈、異構的網路計算環境中將各種分佈物件有機地結合在一起,完成系統的快速整合,實現物件重用。 有了各種中介軟體的支撐,在應用軟體中用到中介軟體對應的功能時,不需要開發人員自己實現,可直接利用中介軟體將其已實現好的功能快速整合到應用軟體中。
現有的整合中介軟體典型地為三層/多層結構的分散式軟體系統提供各種開發支撐,因為
三層結構的分散式軟體的核心為中間層,因此支撐主要集中在對中間層開發的支撐上。目前
應用最廣泛的整合中介軟體有三類:
基於 OMG(Object Management Group,物件管理組織)CORBA規範的整合中介軟體
基於 Sun JEE(Java Enterprise Edition,Java 企業版)規範的整合中介軟體
基於微軟。NET 架構的整合中介軟體
3互操作:
廣義的互操作包括中間層應用構件與資料庫、客戶層構件與中間層應用構件、中間層應用構件與公共服務構件、中間層應用構件之間的互操作等多個層次,本書主要關注應用構件之間的互操作,即軟體系統開發人員編寫的程式之間的互操作。
在 Stub/Skeleton 結構的支撐下,客戶程式與服務程式按照圖中所示的 8 個步驟完成一次服務的呼叫:
①:客戶程式將呼叫請求傳送給客戶端樁,對於客戶程式來說,樁就是服務程式在客戶
端的代理。
②:客戶端樁負責將遠端呼叫請求進行編組並透過通訊匯流排傳送給服務端。
③:呼叫請求經通訊匯流排傳送到服務端框架。
④:服務端框架將呼叫請求解組並分派給真正的遠端物件實現(服務程式) 。
⑤:服務程式完成客戶端的呼叫請求,將結果返回給服務端框架。
⑥:服務端框架將呼叫結果編組並透過通訊匯流排傳送給客戶端樁。
⑦:客戶端樁將呼叫結果解組並返回給客戶程式。
⑧:客戶程式得到呼叫結果。
物件管理體系結構:CORBA 所基於的概念框架是物件管理體系結構(Object Management Architecture,OMA) ,OMA 描述了一個基於 CORBA 的應用系統的基本結構與構成系統的構件的特性。
2物件請求代理:(Object Request Broker,ORB)是OMA的核心基礎設施,CORBA規範
規定了 ORB的標準體系結構。ORB 負責完成查詢請求的物件實現、讓物件實現準備好接收
請求、傳遞構成請求的資料等完成遠端呼叫時底層通訊任務所需的全部機制。
3 CORBA互操作
CORBA 的目標是支援多個層次的可互操作性,CORBA 規範經過多次改進與發展才達
到這一目標。CORBA支援在可互操作性主要包括如下幾個層次:
(1). 不同平臺(如作業系統)與語言之間的可互操作性:這是早期的 CORBA 版本強
調解決的主要問題, 解決方法包括制定IDL標準以及IDL到程式設計語言的對映。
這使得使用同一供應商的 ORB 產品開發的客戶程式與服務程式之間可以互動, 但
使用不同供應商的 ORB產品開發的客戶程式與服務程式則未必是可互操作的。
(2). 不同廠商 ORB 產品之間的可互操作性:CORBA 2。0 版引入了GIOP 和 IIOP,從而
實現了不同供應商的 ORB 產品之間的可互操作性,所有供應商的 ORB 產品如果
與 CORBA 2。0 相容則彼此之間可互操作。
(3). 不同體系結構之間的可互操作性:更完善的可互操作性還應包括不同體系結構之
間的可互操作, 例如一個CORBA物件可透過協議橋接操作一個DCOM物件, OMG
透過引入ESIOP來解決這一問題。 但ESIOP只能解決CORBA與特定體系結構 (如
DCOM)之間的互操作,並不能透過一套 ESIOP解決所有的問題。
4 CORBA開發過程
(1)編寫分散式物件的介面,利用OMG的IDL編寫物件的規格說明,放到一個文字檔案中稱為IDL檔案。
(2)。編譯IDL檔案生成樁與框架,IDL編譯器為IDL檔案中定義的每一個介面自動生成7個。java檔案。
(3)。編寫物件實現,CORBA應用程式的物件實現最常用、最簡單的實現方式是使用繼承
(4。)編寫服務程式,典型的服務
程式通常執行以下步驟:
① 初始化物件請求代理(ORB) 。
② 用所需策略建立一個可移植物件介面卡(POA) 。程式中的BankPOA是我們為 POA
起的名字,客戶程式必須使用相同的 POA名字。
③ 建立一個提供服務的伺服物件。伺服物件是服務端的本地物件,當伺服物件透過對
象介面卡註冊到 ORB 後,就成為一個可供遠端呼叫的 CORBA物件。
④ 啟用新建立的伺服物件,即利用 POA 將伺服物件以一個字串表示的標識註冊到
ORB 上。
⑤ 啟用 POA管理器
⑥ 等待客戶程式發來請求。
(5)。 編寫客戶程式
① 初始化 ORB。
② 繫結到一個物件。
③ 透過呼叫物件上的方法
(6)編譯應用程式
(7)。執行應用程式
(8)。互操作嘗試
5。設計POA策略
這裡為大家準備了Java學習路線分享給大家,工作中學習,閒暇時間也不要忘記充電。
直接上圖,這裡分為六大塊:
架構師築基:基礎要牢固
開源框架解析:原始碼閱讀
高效能架構:效能最佳化
微服務:必不可少
B2C商城:實戰經驗
高畫質大圖和相關影片資料獲取方式