1 從ICE的物件講起

2021-07-10 14:42:14 字數 1063 閱讀 8580

從網路節點層面看,網路中的通訊實體是以計算機為單位。從tcp程式設計的角度看,通訊實體是以socket為單位。從ice的角度看,通訊實體以物件為單位。

ice認為分布式系統是由物件構成的,所以對分布式系統建模的時候採用的是物件導向設計方法。ice中的物件和物件導向領域裡的物件概念上沒有什麼本質區別,只是ice中的物件只包含操作,所以ice中的物件又叫做介面型別的物件。

定義物件之間通訊協議的時候,也就是.ice檔案裡面命名時,物件的型別用的是inte***ce這個關鍵字,而不是class。

既然通訊實體有了,要完成點和點通訊這個業務,必須要傳輸通訊的資訊才行。從網路節點層面看,通訊資訊需要通過計算機網絡卡傳輸才行。從tcp程式設計角度看,通訊資訊(也就是二進位制資料流)的傳輸需要通訊的雙方通過呼叫read和write才行。從ice的角度看,通訊資訊的傳輸只需要呼叫物件中的操作就可以實現。

所以說ice本質就是個rpc呼叫,只不過原來大多的rpc呼叫是個全域性函式,不便於管理。ice為了便於管理,加了一層抽象,現在變成是類中的成員函式罷了。這麼做帶來好處跟物件導向程式設計帶來的好處是一樣的,當然帶來的壞處是一樣的。

下面這個圖是最初ice對分布式系統建模時所用的模型,很簡單,就是物件和物件在進行通訊。隨著認識的深入,後面對分布式系統中各個元件的劃分也會越來越細。

每個ice 物件都有乙個唯一的物件標識(object identity)。物件標識是用於把乙個物件與其他所有物件區別開來的標識值。ice 物件模型假定物件標識是全域性唯一的,也就是說,在乙個ice 通訊域中,不會有兩個物件具有相同的物件標識。這個也是ice物件作為通訊實體的基本性質。

每個ice 物件具有乙個特殊的介面,稱為它的主介面。此外, ice 物件還可以提供零個或更多其他介面,稱為facets (面)。客戶可以在某個物件的各個facets 之間進行挑選,選出它們想要使用的介面。提出這個概念主要是為了對通訊資訊進行一級分類,其實我覺得沒必要對通訊資訊進行一級分類,因為沒有什麼卵用。如果需要用到對通訊資訊的一級分類,為什麼不搞另乙個ice物件呢?

從pr的最簡工作流開始講起

1 pr的用途 2 專案視窗 3 序列視窗 按alt鍵並滾動滑輪可以縮放時間軸的顯示比例,在音訊軌按alt鍵並滾動滑輪可以放大音訊的波形 4 預覽視窗 用於實時預覽時間線上的素材效果 5 效果控制項視窗 可以對素材的基本屬性做出調整,也可以調整新增在素材上的效果引數 6 效果視窗 pr中需要用到的各...

從最基礎的講起如何做到均勻的生成隨機數

題目描述 470.用 rand7 實現 rand10 因為是第一次接觸到這樣的題目,毫無思緒,對官方題解也是 不知道為什麼要這麼做 看過一些題解之後才逐漸明白,現在讓我自己來寫題解,我打算先從簡單的開始講起。假設已知rand2 可以均勻的生成 1,2 的隨機數,現在想均勻的生成 1,4 的隨機數,該...

從1開始的python

寫在前面 回到這次記錄的本身,因為之前我在公司寫了不少指令碼,然後分享給同事們參考使用,由於本身屬於額外的嘗試並且過程中沒有及時溝通和留下文件,所以沒有編碼經驗的同事會反饋比較頭大。因此所涉及到的常用功能會結合python語法進行分解,還是那句話,指令碼語言屬於用多了就能熟練的工具。先從需要什麼功能...