摘要:進程間通訊(IPC):是在多任務操做系統或聯網的計算機之間運行的程序和進程所用的通訊技術。有兩種類型的進程間通訊(IPC)。前端
遠程過程調用原理
進程間通訊(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 提供多供應商提供的系統環境的可移植性和相互操做性。
相關條目:Application Program Interface應用程序編程接口;Connectionless and Connection-Oriented Transaction無鏈接和麪向鏈接事務;Distributed Computing Environment,OSF OSF的分佈式計算環境(DCE);Enterprise Networks企業網;Interprocess Communication進程間通訊;Middleware中間件。程序員