ICE各核心工作原理


文章來自:百度文庫

PPT1 運行時環境

Ice作為一個中間件產品,其使用過程中,有運行時(也稱mn time)環境和開發環境兩部分。

圖 Ice核心功能的模塊組成圖

可見,Ice核心功能實際上由六大子系統模塊共同分擔,分別是通信模塊、對象適配模塊、線程模塊、調用/分派模塊、樁和框架模塊和插件模塊。

 

PPT2  通信模塊

Icc的通信子系統主要負責對網絡連接的管理,涉及范圍包括端點、引用、連接及它們的相互關系。

利用端點信息可尋址一台主機,端點信息包括協議類型、尋址信息等。

引用包含了servant的標識:Identity+facet。一個引用包含一個Identity,但可包含多個端點,這意味着,可以選擇任意一個滿足要求的端點定位服務器。

連接一旦被成功構造,對於TCP意味着連接已經建立,對於UDP意味着會話套接字創建完成。

Ice中通過引用獲得連接的方式為負載平衡和容錯提供了基礎。(多台服務器可提供相同的服務,客戶隨機的連接其中一台請求服務,假如有的服務器出了故障無法接受連接,亦可嘗試同其它的服務器建立連接。)(括號里的話作為講述,可不寫在PPT中)

 

PPT3  線程模塊

Ice是多線程的。在服務器端,一個線程池使用領導者一跟隨者模式來分派到來的操作調用。(線程池的尺寸是可以配置的;把線程池尺寸設成1,就可以進行單線程服務器操作)

領導者—跟隨者模型是典型的線程池模型所使用的模式。每次允許一個線程1eader等待在事件源集合上。同時其他線程follower排隊等候成為領導者的機會。leader檢測到事件后,馬上轉入follower並提升一個follower為leader,然后直接處理事件,這時處於processer角色,處理完成后成為follower。

(是否需要隨后的5張圖,需要討論)

 

PPT4  對象適配器模塊

當服務器端收到請求信息時,要將請求分派給合適的senvant,對象適配器就負責由請求信息至請求的對象之間的適配工作。對象適配子系統主要是應用於Ice的服務器端。

圖  servant對象被查找的映射示意圖

 

PPT5  調用分派模塊

Ice支持同步調用、異步調用、單向調用、數據報調用和批調用,但特定的傳輸機制只支持特定的調用類型。

(同步調用:提供“最多一次”語義,往常需要進行非常保守的錯誤恢復,ICE中進行了改進,可以從有些網絡故障中透明地恢復)

(異步調用:客戶提供回調對象,由服務器用於遞送調用的結果)

(單向調用:於任何沒有返回值、out參數或異常的操作,Ice能讓客戶發出單向調用)

(數據報調用:數據報調用可用在需要通過局域網分發大量事件的情況下)

(批調用:Ice允許你成批發出單向和數據報調用。Icc 會把批調用放在客戶端的

緩沖區中,而不是立刻發送它們)

ICE為服務器端提供了同步調用分派模式和異步調用分派模式。

 

PPT6  樁和骨架模塊

對中間件而言,當接口定義編譯時,為客戶端所生成的是樁,為服務器端生成的是骨架,樁和骨架都是把接口的操作定義映射到Icc核心模塊調用的一些輔助類。

(樁:需要進一步查找相關資料)

(骨架:服務器端骨架與客戶端存根對應,客戶端存根用於編組參數、向下調用、解組返回值,服務器端骨架用於解組參數、向上調用、編組返回值。)

 

PPT7  插件模塊

插件是Ice為了擴展Ice通信器特性所專門使用的機制。

(插件是一段可執行程序,可以單獨編譯和測試,但不能單獨執行,它由主程序根據功能需要“既插既用”的調用。插件與主程序相對獨立,只要保證一致的接口,雙方內部的改動互不影響。)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM