標籤:style blog http java 使用 os io strong
最近項目中運用到了ICE檔案傳輸。第一課(ICE的介紹)
一、 介紹ICE
ICE(Internet Communications Engine)是Zeroc提供的一款高效能的中介軟體。使用ICE能使得(C#、php、c++、java或python)與java,c++,.net,python等進行互動。基於ICE可以實現電信級的解決方案。 ICE ,是一種流行的物件導向的中介軟體,用來作網路通訊引擎。
二、ICE 的好處
- 物件導向的語義,所有的操作調用都使用遲後綁定。
- 支援同步和非同步訊息傳遞,提供了同步和非同步操作調用和指派,提供了發布——訂閱訊息傳遞機制。
- 與硬體架構無關,用戶端及伺服器與底層的硬體架構屏蔽開來。對於應用代碼而言,像位元組序和填充這樣的問題都隱藏了起來。
- 與上層的程式設計語言無關,用戶端和伺服器可以分別部署,所用語言也可以不同,支援C#、C++、Java語言,用戶端支援PHP語言。
- 與採用的作業系統無關,ICE完全是可移植的,同樣的源碼能夠在Windows、Linux、MacOS和UNIX上編譯和運行。
- 完全是線程化的,其API是安全執行緒的。
- 採用TCP、IP 和UDP作為傳輸協議,用戶端和伺服器代碼都不需要瞭解底層的傳輸機制。
- 伺服器的位置是對使用者透明的,ICE常式負責定位對象,並管理底層的傳輸機制,比如開啟和關閉串連。客戶與伺服器之間的互動顯得像是不需連線的。伺服器可以遷移到不同的物理地址,而不會使客戶持有的代理失效,而客戶完全不知道對象實現是怎樣分布在多個伺服器處理序上的。
三、為什麼要使用中介軟體?
設想一個這樣的情境:對於一個大型網站來說,往往有很多個web伺服器,每個web伺服器都存在很多對於資料庫的操作。如果直接在程式上直接操作資料庫,那麼勢必要在每台web
伺服器都設定資料庫的使用者名稱,密碼等資訊,這是極度不安全的。並且如果我們要統一對資料庫的操作進行管理和修改等,那麼久要去每個web伺服器上修改。因此,這時候中介軟體就產
了。
它是基於SOA(面向服務架構)的思想,將對資料庫的操作統一成一個服務,放置於一台服務機上,每個web伺服器要對資料庫進行操作,就可以直接存取這個提供中介軟體服務的服務
器。還有一點,考慮到效能問題,這裡的提供服務的機子我們不使用html和xml傳輸資料,一般使用TCP,UDP這層的通訊。因此ICE就是現在非常流行的網站開發中介軟體之一。
四、ICE通訊結構圖
ICE有分為提供服務的一方Server和尋求服務的一方Client,兩台機子上都需要安裝ICE組件,他們的通訊結構如下:
Client端應該事Crowdsourced Security Testing道Server端能提供的服務是什麼,有什麼格式?這就是圖中的Proxy Code,在Proxy Code中定義好了類和介面。Server端中介面定義的就是Skeleton,具體實現接
口的是Server Application,Server Application可以是C++,java,C#等寫的,但是ICE不提供PHP寫Server端。