文章來自:百度文庫
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通信器特性所專門使用的機制。
(插件是一段可執行程序,可以單獨編譯和測試,但不能單獨執行,它由主程序根據功能需要“既插既用”的調用。插件與主程序相對獨立,只要保證一致的接口,雙方內部的改動互不影響。)