最近項目中運用到了ICE文件傳輸。第一課(ICE的介紹)
一、 介紹ICE
ICE(Internet Communications Engine)是Zeroc提供的一款高性能的中間件。使用ICE能使得(C#、php、c++、java或python)與java,c++,.net,python等進行交互。基於ICE可以實現電信級的解決方案。 ICE ,是一種流行的面向對象的中間件,用來作網絡通訊引擎。
二、ICE 的好處
三、為什麼要使用中間件?
設想一個這樣的場景:對於一個大型網站來說,往往有很多個web服務器,每個web服務器都存在很多對於數據庫的操作。如果直接在程序上直接操作數據庫,那麼勢必要在每台web
服務器都配置數據庫的用戶名,密碼等信息,這是極度不安全的。並且如果我們要統一對數據庫的操作進行管理和修改等,那麼久要去每個web服務器上修改。因此,這時候中間件就產
了。
它是基於SOA(面向服務架構)的思想,將對數據庫的操作統一成一個服務,放置於一台服務機上,每個web服務器要對數據庫進行操作,就可以直接訪問這個提供中間件服務的服務
器。還有一點,考慮到性能問題,這裡的提供服務的機子我們不使用html和xml傳輸數據,一般使用TCP,UDP這層的通信。因此ICE就是現在非常流行的網站開發中間件之一。
四、ICE通信結構圖
ICE有分為提供服務的一方Server和尋求服務的一方Client,兩台機子上都需要安裝ICE組件,他們的通信結構如下:
Client端應該事先知道Server端能提供的服務是什麼,有什麼格式?這就是圖中的Proxy Code,在Proxy Code中定義好了類和接口。Server端中接口定義的就是Skeleton,具體實現接
口的是Server Application,Server Application可以是C++,java,C#等寫的,但是ICE不提供PHP寫Server端。
左移運算符(<<)
將一個運算對象的各二進制位全部左移若干位(左邊的二進制位丟棄,右邊補0)。
例:a = a << 2 將a的二進制位左移2位,右補0,
左移1位後a = a * 2;
若左移時捨棄的高位不包含1,則每左移一位,相當於該數乘以2。
右移運算符(>>)
將一個數的各二進制位全部右移若干位,正數左補0,負數左補1,右邊丟棄。
操作數每右移一位,相當於該數除以2。
例如:a = a >> 2 將a的二進制位右移2位,
左補0 or 補1 得看被移數是正還是負。
左移運算符(<<)
將一個運算對象的各二進制位全部左移若干位(左邊的二進制位丟棄,右邊補0)。
例:a = a << 2 將a的二進制位左移2位,右補0,
左移1位後a = a * 2;
若左移時捨棄的高位不包含1,則每左移一位,相當於該數乘以2。
右移運算符(>>)
將一個數的各二進制位全部右移若干位,正數左補0,負數左補1,右邊丟棄。
操作數每右移一位,相當於該數除以2。
例如:a = a >> 2 將a的二進制位右移2位,
左補0 or 補1 得看被移數是正還是負。