天天看點

IPC 和 RPC (呵呵,我感覺我應該要鑽研到這個深度啦)

上次看到一個網頁,知道牛人們都在作什麼時,

我明顯感覺到我的世界和這些世界的差異。

慢慢往前走吧。。

1.有不同的手機終端,如iphone,安卓,symbian,不同的終端處理不一樣,設計一種伺服器和算法實作對不同的終端的處理。

2.設計一種記憶體管理算法。 

3.a向b發郵件,b收到後讀取并發送收到,但是中間可能丢失了該郵件,怎麼設計一種最節省的方法,來處理丢失問題。 

4.設計一種算法求出算法複雜度。

~~~~~~~~~~~~~

是以,了解一下ipc和lpc,rpc,算是it的份内之事吧。

遠端過程調用原理

程序間通信(ipc):是在多任務作業系統或聯網的計算機之間運作的程式和程序所用的通信技術。有兩種類型的程序間通信(ipc)。

1 本地過程調用(lpc):lpc用在多任務作業系統中,使得同時運作的任務能互相會話。這些任務共享記憶體空間使任務同步和互相發送資訊。

2 遠端過程調用(rpc):rpc類似于lpc,隻是在網上工作rpc開始是出現在sun微系統公司和hp公司的運作unix作業系統的計算機中。

通過ipc和rpc,程式能利用其它程式或計算機處理的程序。客戶機/伺服器模式計算把遠端過程調用與其它技術如消息傳遞一道,作為系統間通信的一種機制。客戶機執行自己的任務,但靠伺服器提供後端檔案服務。rpc為客戶機提供向後端伺服器申請服務的通信機制,如圖r-4所示。如果你把客戶機/伺服器應用程式想作是一個分離的程式,伺服器能運作資料通路部分,因為它離資料最近,客戶機能運作資料表示和與使用者互動的前端部分。這樣,遠端過程調用可看作是把分割的程式通過網絡重組的部件。lpc有時也稱耦合(coupling)機制。

用這種方式分割程式,當使用者要通路資料時就無需每次拷貝整個資料庫或它的大部分程式到使用者系統。其實,伺服器隻處理請求,甚至隻執行一些資料計算,把得出的結果再發送給使用者。因為當資料存放在一個地方時,資料庫同步很容易實作,是以多個使用者可同時通路相同的資料。

分布式計算環境是由一個通信系統——網絡連接配接的計算機叢集。很容易把這個網絡看成一個計算平台,若是對等方式,其中任何一台計算機都能成為客戶機或伺服器。一些處理任務可被分成獨立運作程式在不同的網絡計算機上并行處理,而獨立的程式被交給最适合這個任務的計算機處理。這種政策可利用計算機空閑資源,提高網絡的效益。一個典型的企業網包括許多運作着不同作業系統的異構計算機系統。

遠端過程調用中間件技術

随着企業網的産生,開發商必須編制可在各種計算機和網絡通信協定中都能運作的程式。現在人們正努力使得遠端過程調用獨立,這意味着開發商就不用考慮底層的網絡和網絡上資料傳輸所用的協定,下面介紹rpc在開放式軟體基金(osf)的分布式計算環境(dcc)中實作的相關方法。rpc工作于多種分布式計算環境。

sunsoft的開放網絡計算(onc)的遠過程調用/外部資料表示(rpc/xdr)協定被廣泛采用。在三百一十萬個運作網絡檔案系統(nfs)的系統中,有二百八十萬個使用oncrpc庫,并在分布式應用中作為客戶機或伺服器。oncrpc被ibm的所有作業系統所支援(除了os/400)。unix系統實驗室把rpc/xdr當作是unix system v release 4的一個标準部分。novell支援下一代onc+傳輸自立遠端過程調用(ti-rpc)技術.ti-rpc 使用運輸層接口(tli)實作傳輸自立。tli提供了一種通路面向連接配接或非連接配接傳輸服務的通用方法(這在“sterams環境”中有所叙述)。

open software foundation(osf)rpc 開放軟體基金會(osf)的rpc

rpc工具提供了一種程式設計語言和編譯器,它們使用可看作是本地過程的可運作于客戶機和伺服器上的子產品開發分布式應用程式。運作時設施(run-timefacility)使得分布式應用程式能在多機種異構系統上運作,這樣使得底層體系結構和運輸協定對于應用程式是透明的。

程式員用接口定義語言(idl)建立接口定義(interface definition)。idl是程式員用來設計遠端運作的過程的工具。idl編譯器把idl接口定義轉換成與客戶機和伺服器相連的占位程式(stub)。客戶機上的占位程式可加入到伺服器的過程,而伺服器上的占位程式也可加入到客戶機過程。位于客戶機伺服器的rpc運作時設施與占位程式合作,來提供rpc操作。

異構環境中使用rpc的一個問題在于,不同的機器有不同的資料表示,osfrpc通過具有調用機器的基本資料表示的特征調用來解決這個問題。當收到調用時,若根據特征知道兩台機器資料表示不同的話,接收器就進行資料轉換。

rpc運作時設施提供把客戶機請求傳送給伺服器和在網上發送和接收響應的功能。dcerpc運作時設施也和網絡上其它dce服務互相作用,這些dce服務有命名、安全和定時服務。運作時設施有下列特征:

1 可在多種網絡上運作。開發者無需為每個網絡編寫特定的應用程式。

2 提供客戶機或伺服器或網絡上的故障恢複。它支援檔案系統、資料庫和其它傳輸可變長資料的服務。

3 提供獨立于任何一個目錄服務的基于名字定位伺服器的方法。

4 提供安全工具的接口,以防rpc通信遭受破壞。安全服務保證機密資訊的保密性和提供鑒别來保護通信完備性。

5 支援網上并發或并行處理的多線程排程,于是一個應用程式就能同時執行多個操作

6 提供多供應商提供的系統環境的可移植性和互相操作性。