• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            牽著老婆滿街逛

            嚴以律己,寬以待人. 三思而后行.
            GMail/GTalk: yanglinbo#google.com;
            MSN/Email: tx7do#yahoo.com.cn;
            QQ: 3 0 3 3 9 6 9 2 0 .

            ICE通信簡介

            轉載自:http://blog.csdn.net/lihuayong/article/details/9257709

            參考《Ice分布式程序設計馬維達 譯

            一、簡介

                Ice 是一種針對客戶端和服務器進行通信的面向對象的中間件平臺。Ice 為構建面向對象的客戶-服務器應用提供了工具、API 和庫支持。客戶和服務器通信雙方可以用不同的編程語言編寫,目前最新的版本支持的語言包括C++.NETJavaPythonObjective-CRubyPHP and ActionScript客戶和服務器可以分別部署可以運行在不同的操作系統和機器架構

                Ice 核心為遠地通信提供了客戶端和服務器端運行時支持。其中的大量代碼所涉及的是網絡通信、線程、字節序,以及其他許多與網絡有關的問題,我們應用代碼應該與這些問題隔離開來。

                Ice 提供了一種RPC 協議,既可以把TCP/IP、也可以把UDP 用作底層傳輸機制。客戶和服務器代碼都不需要了解底層的傳輸機制(你可以通過一個配置參數選擇所需的傳輸機制)。

                Ice 還允許你把SSL 用作傳輸機制,讓客戶與服務器間的所有通信都進行加密。通過SSL 強加密,可以使客戶和服務器完全安全地進行通信,這樣,應用可以使用不安全的網絡安全地進行通信。

                Ice 提供了同步和異步的操作調用和分派。

               客戶端采用異步方法調用,可以不需要等到服務器做出答復,Ice run time 等待答復的同時,客戶端發出調用的線程不會阻塞。發出調用的線程可以繼續進行各種活動,當答復最終到達時, Ice run time 會通知應用

               服務器可以采用異步方法分配,一個服務器在同一時刻所能支持的同步請求數受到Ice run time 的服務器線程池的尺寸限制。如果所有線程都在忙于分派長時間運行的操作,那么就沒有線程可用于處理客戶端發送過來的新的請求,客戶端就會出現不可接受的無響應狀態

               在使用異步方法分配時,服務器可以接收一個請求,然后先將此請求放入任務池中,讓其他的線程處理,以盡快釋放分派線程。當處理結果已得出時,服務器要使用Ice run

            time 提供的回調對象,顯式地發送響應到客戶端,告知客戶端請求處理的結果

            二、Ice 服務

                Ice 核心為分布式應用開發提供了一個完善的客戶-服務器平臺。但現實應用需要的常常不止是遠地通信能力:你通常還需要擁有這樣的能力:隨需啟動服務器、把代理分發給客戶、分發異步事件、配置你的應用、分發應用補丁,等等。

               在Ice 中有一些服務, 能夠提供上述特性及其他一些特性。

            1. IcePack

                IcePack Ice 的定位服務,用于在使用間接綁定時把符號性的適配器名解析為協議-地址對。 也就是說應用程序中只需要提供字符串(一個對象的標示符),將此字符串在ICE中注冊就行了,不需要將通信的IP、端口等信息硬編碼在程序代碼中,或者說在配置文件中手動指定IP和端口信息。客戶端和服務器通信時,客戶端就可以使用字符串先到注冊的映射表中查詢出相應的IP和端口等信息,再進行通信。

            1.服務器在啟動時,服務器向定位器注冊它的對象和對象適配器。

            2.在創建使用間接綁定的代理時,客戶端的Ice run time 調用定位器上的方法,獲取與某個對象標識或對象適配器標識符相關聯的端點。

            3.在為代理獲取了端點之后,客戶直接建立一個通向服務器的連接。客戶不會再次詢問定位器,除非發生連接錯誤。

                除了這樣的定位服務, IcePack 還提供了其他特性:

            • IcePack 允許你注冊服務器,進行自動啟動:當客戶發出請求時,服務器無需在運行, IcePack 會在第一個客戶請求到達時,隨需啟動服務器。
            • IcePack 支持部署描述符,能讓你輕松地配置含有若干服務器的復雜應用。
            • IcePack 提供了一種簡單的對象查找服務,客戶可用來獲取它們感興趣的對象的代理。

            2. IceBox

                IceBox 是一種簡單的應用服務器,可用于協調許多服務的啟動和停止。一個通用的IceBox 服務器取代了你通常編寫的整體式Ice 服務器。你通過屬性為IceBox 服務配置它負責加載和管理的應用特有的服務,并且可以對它進行遠地管理。

            要把自己編寫的服務配置進IceBox 服務器中,只需使用一個屬性。下面是這個屬性的格式:

                IceBox.Service.name=entry_point [args]

                name 部分是服務名entry_point指出服務具體的類路徑,args指出開啟服務是需要的一些參數。

            3. IceStorm

                IceStorm 是一種發布-訂閱服務,能夠解除客戶與服務器的耦合。在本質上, IceStorm 充當的是事件分發交換機。發布者把事件發給這個IceStorm服務,由它發給訂閱者。這樣,發布者發布的單個事件就可以發送給多個訂閱者。事件按照主題進行分類,訂閱者會指定它們感興趣的主題。只有那些與訂閱者感興趣的主題相吻合的主題才會發給這個訂閱者。這個服務允許你指定服務質量標準, 讓應用在可靠性和性能之間進行適當的折衷。

                如果你需要把信息分發給大量應用組件, IceStorm 就會特別有用(一個典型的例子是,擁有大量訂閱者的證券報價應用)。IceStorm 能解除信息的發布者與訂閱者的耦合,并負責重新分發已發布的信息。此外,IceStorm還可以作為聯盟服務運行,也就是說,服務的多個實例可以在不同的機器上運行,使處理負載分攤到許多CPU 上。

                應用常常需要把信息分發給多個接收者。例如,假定我們在開發一個氣候監測應用,用于收集來自氣象塔的觀測數據,比如風速和溫度,并把它們周期性地發布給氣候監視站。我們一開始考慮使用圖中的架構。

                但這種構架有一個很大的缺點,它把收集器及其監視器緊密地耦合在一起,要求收集器實現去管理監視器的注冊細節、觀測數據遞送,以及出錯恢復,從而變得無謂的復雜化。如圖所示,我們可以把IceStorm 結合進我們的應用中,使我們擺脫這些瑣碎的工作。

              

                IceStorm 使收集器與監視器解除耦合,極大地簡化了收集器實現。作為發布訂閱服務,IceStorm 充當的是收集器發布者與監視器訂閱者)之間的“中間人”,它提供了若干好處:

            • 當收集器準備好分發一組新的觀測數據時,它會向IceStorm 服務器發出一個請求。IceStorm 服務器會負責把請求遞送給監視器,包括處理由于訂閱者的行為有問題或訂閱者不存在所造成的異常。收集器不再需要關注它的監視器,甚至不需要知道此時是否有監視器。
            • 與此類似,監視器會與IceStorm 服務器交互,完成像訂閱和取消訂閱這樣的任務,從而讓收集器專注于它自己的應用特有的職責,而不是管理上的瑣事。
            •  要把IceStorm 結合進來,收集器和監視器應用所需做出的改動非常少。

            4. IcePatch

                IcePatch 是一種軟件修補服務。 你可以用它來輕松地把軟件更新分發給客戶。客戶可以簡單地連接到IcePatch,請求獲得特定應用的更新。這個服務會自動檢查客戶的軟件的版本,并以一種壓縮形式下載任何更新過的應用組件,從而節省帶寬。你可以用Glacier 服務來保護軟件補丁,只讓得到授權的客戶下載軟件補丁。

            5. Glacier

                Glacier Ice 防火墻服務:它能讓客戶與服務器通過防火墻安全地進行通信,且又不犧牲安全性。 客戶-服務器之間的通信數據使用公鑰證書進行了完全的加密,并且是雙向的。Glacier 支持相互認證,以及安全的會話管理。

            6. Freeze

                Ice 擁有內建的對象持久服務,叫作FreezeFreeze 能夠讓我們輕松地在數據庫中存儲對象狀態Freeze 使用Berkeley DB作為它的缺省數據庫。也可以使用其他的數據庫。Ice 還提供了一些工具,能讓我們更輕松地管理數據庫

            7. IceSSL 

                無論是在企業內部網中,還是在像Internet 這樣的非受信網絡上,安全性對于許多分布式應用而言,都是一個重要的考慮事項。保護敏感信息、確保其完整性、檢驗各通信方的標識,這些能力對開發安全的應用而言必不可少。考慮到這些目標, Ice 提供了IceSSL 插件,能夠通過SSL協議提供這些能力。

            posted on 2016-11-19 23:51 楊粼波 閱讀(656) 評論(0)  編輯 收藏 引用

            久久无码人妻一区二区三区 | 亚洲AV无码久久精品成人| 久久免费视频6| 久久久久久久免费视频| 久久久久亚洲AV成人片| 91久久精品国产成人久久| 三级韩国一区久久二区综合| 亚洲综合精品香蕉久久网| 国产精品美女久久久久网| 久久久久九九精品影院| 久久99热只有频精品8| 国产无套内射久久久国产| 亚洲国产另类久久久精品小说| 久久婷婷综合中文字幕| 热久久国产欧美一区二区精品| 久久久久亚洲Av无码专| 一本大道久久香蕉成人网| 久久亚洲欧美日本精品| 中文字幕无码免费久久| 久久亚洲国产精品五月天婷| 国产一久久香蕉国产线看观看| 亚洲国产精品成人久久蜜臀| 国产精品一区二区久久精品| 成人综合久久精品色婷婷| 狠狠色伊人久久精品综合网 | 久久久国产精华液| 欧美无乱码久久久免费午夜一区二区三区中文字幕 | 久久久精品波多野结衣| 麻豆久久| 色综合久久中文字幕综合网| 久久777国产线看观看精品| 国产精品一区二区久久不卡| 久久婷婷五月综合国产尤物app| 精品久久人人做人人爽综合 | 97视频久久久| 久久丫忘忧草产品| 久久久久久精品免费免费自慰| 久久久国产一区二区三区| 久久久久亚洲av成人无码电影| 国产高潮国产高潮久久久91| 久久免费精品一区二区|