IPC 和 RPC (呵呵,我感觉我应该要钻研到这个深度啦)
上次看到一個網(wǎng)頁,知道牛人們都在作什么時,
我明顯感覺到我的世界和這些世界的差異。
慢慢往前走吧。。
1.有不同的手機終端,如iphone,安卓,Symbian,不同的終端處理不一樣,設計一種服務器和算法實現(xiàn)對不同的終端的處理。
2.設計一種內(nèi)存管理算法。?
3.A向B發(fā)郵件,B收到后讀取并發(fā)送收到,但是中間可能丟失了該郵件,怎么設計一種最節(jié)省的方法,來處理丟失問題。?
4.設計一種算法求出算法復雜度。
~~~~~~~~~~~~~
所以,了解一下IPC和LPC,RPC,算是IT的份內(nèi)之事吧。
遠程過程調(diào)用原理
進程間通信(IPC):是在多任務操作系統(tǒng)或聯(lián)網(wǎng)的計算機之間運行的程序和進程所用的通信技術。有兩種類型的進程間通信(IPC)。
1 本地過程調(diào)用(LPC):LPC用在多任務操作系統(tǒng)中,使得同時運行的任務能互相會話。這些任務共享內(nèi)存空間使任務同步和互相發(fā)送信息。
2 遠程過程調(diào)用(RPC):RPC類似于LPC,只是在網(wǎng)上工作RPC開始是出現(xiàn)在Sun微系統(tǒng)公司和HP公司的運行UNIX操作系統(tǒng)的計算機中。
通過IPC和RPC,程序能利用其它程序或計算機處理的進程??蛻魴C/服務器模式計算把遠程過程調(diào)用與其它技術如消息傳遞一道,作為系統(tǒng)間通信的一種機制??蛻魴C執(zhí)行自己的任務,但靠服務器提供后端文件服務。RPC為客戶機提供向后端服務器申請服務的通信機制,如圖R-4所示。如果你把客戶機/服務器應用程序想作是一個分離的程序,服務器能運行數(shù)據(jù)訪問部分,因為它離數(shù)據(jù)最近,客戶機能運行數(shù)據(jù)表示和與用戶交互的前端部分。這樣,遠程過程調(diào)用可看作是把分割的程序通過網(wǎng)絡重組的部件。LPC有時也稱耦合(Coupling)機制。
用這種方式分割程序,當用戶要訪問數(shù)據(jù)時就無需每次拷貝整個數(shù)據(jù)庫或它的大部分程序到用戶系統(tǒng)。其實,服務器只處理請求,甚至只執(zhí)行一些數(shù)據(jù)計算,把得出的結(jié)果再發(fā)送給用戶。因為當數(shù)據(jù)存放在一個地方時,數(shù)據(jù)庫同步很容易實現(xiàn),所以多個用戶可同時訪問相同的數(shù)據(jù)。
分布式計算環(huán)境是由一個通信系統(tǒng)——網(wǎng)絡連接的計算機集群。很容易把這個網(wǎng)絡看成一個計算平臺,若是對等方式,其中任何一臺計算機都能成為客戶機或服務器。一些處理任務可被分成獨立運行程序在不同的網(wǎng)絡計算機上并行處理,而獨立的程序被交給最適合這個任務的計算機處理。這種策略可利用計算機空閑資源,提高網(wǎng)絡的效益。一個典型的企業(yè)網(wǎng)包括許多運行著不同操作系統(tǒng)的異構(gòu)計算機系統(tǒng)。
遠程過程調(diào)用中間件技術
隨著企業(yè)網(wǎng)的產(chǎn)生,開發(fā)商必須編制可在各種計算機和網(wǎng)絡通信協(xié)議中都能運行的程序?,F(xiàn)在人們正努力使得遠程過程調(diào)用獨立,這意味著開發(fā)商就不用考慮底層的網(wǎng)絡和網(wǎng)絡上數(shù)據(jù)傳輸所用的協(xié)議,下面介紹RPC在開放式軟件基金(OSF)的分布式計算環(huán)境(DCC)中實現(xiàn)的相關方法。RPC工作于多種分布式計算環(huán)境。
SunSoft的開放網(wǎng)絡計算(ONC)的遠過程調(diào)用/外部數(shù)據(jù)表示(RPC/XDR)協(xié)議被廣泛采用。在三百一十萬個運行網(wǎng)絡文件系統(tǒng)(NFS)的系統(tǒng)中,有二百八十萬個使用ONCRPC庫,并在分布式應用中作為客戶機或服務器。ONCRPC被IBM的所有操作系統(tǒng)所支持(除了OS/400)。UNIX系統(tǒng)實驗室把RPC/XDR當作是UNIX System V Release 4的一個標準部分。Novell支持下一代ONC+傳輸自立遠程過程調(diào)用(TI-RPC)技術.TI-RPC 使用運輸層接口(TLI)實現(xiàn)傳輸自立。TLI提供了一種訪問面向連接或非連接傳輸服務的通用方法(這在“STERAMS環(huán)境”中有所敘述)。
Open Software Foundation(OSF)RPC 開放軟件基金會(OSF)的RPC
RPC工具提供了一種編程語言和編譯器,它們使用可看作是本地過程的可運行于客戶機和服務器上的模塊開發(fā)分布式應用程序。運行時設施(run-timefacility)使得分布式應用程序能在多機種異構(gòu)系統(tǒng)上運行,這樣使得底層體系結(jié)構(gòu)和運輸協(xié)議對于應用程序是透明的。
程序員用接口定義語言(IDL)建立接口定義(interface definition)。IDL是程序員用來設計遠程運行的過程的工具。IDL編譯器把IDL接口定義轉(zhuǎn)換成與客戶機和服務器相連的占位程序(stub)??蛻魴C上的占位程序可加入到服務器的過程,而服務器上的占位程序也可加入到客戶機過程。位于客戶機服務器的RPC運行時設施與占位程序合作,來提供RPC操作。
異構(gòu)環(huán)境中使用RPC的一個問題在于,不同的機器有不同的數(shù)據(jù)表示,OSFRPC通過具有調(diào)用機器的基本數(shù)據(jù)表示的特征調(diào)用來解決這個問題。當收到調(diào)用時,若根據(jù)特征知道兩臺機器數(shù)據(jù)表示不同的話,接收器就進行數(shù)據(jù)轉(zhuǎn)換。
RPC運行時設施提供把客戶機請求傳送給服務器和在網(wǎng)上發(fā)送和接收響應的功能。DCERPC運行時設施也和網(wǎng)絡上其它DCE服務相互作用,這些DCE服務有命名、安全和定時服務。運行時設施有下列特征:
1 可在多種網(wǎng)絡上運行。開發(fā)者無需為每個網(wǎng)絡編寫特定的應用程序。
2 提供客戶機或服務器或網(wǎng)絡上的故障恢復。它支持文件系統(tǒng)、數(shù)據(jù)庫和其它傳輸可變長數(shù)據(jù)的服務。
3 提供獨立于任何一個目錄服務的基于名字定位服務器的方法。
4 提供安全工具的接口,以防RPC通信遭受破壞。安全服務保證機密信息的保密性和提供鑒別來保護通信完備性。
5 支持網(wǎng)上并發(fā)或并行處理的多線程調(diào)度,于是一個應用程序就能同時執(zhí)行多個操作
6 提供多供應商提供的系統(tǒng)環(huán)境的可移植性和相互操作性。
?
轉(zhuǎn)載于:https://www.cnblogs.com/aguncn/archive/2013/04/30/3052214.html
總結(jié)
以上是生活随笔為你收集整理的IPC 和 RPC (呵呵,我感觉我应该要钻研到这个深度啦)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HDU 3333 Turing Tree
- 下一篇: 杀死木马进程