Remote Procedure Call Concept
Ideea de apel de procedură la distanță (Remote Procedure Call - RPC) este de a spori bine-cunoscute și înțelese de cei mecanism de transmitere a datelor și de control în cadrul unui program care rulează pe o mașină, pentru a transfera controlul și date prin intermediul rețelei. Soluții RPC sunt proiectate pentru a facilita organizarea de calcul distribuit.
Cea mai mare eficiență se realizează prin utilizarea RPC în acele aplicații în care există o comunicare interactivă între componente de la distanță, cu un timp de răspuns mic iotnositelno cantitate mică de aplicare dannyh.Takie transmise numit orientate spre RPC.
Caracteristicile sunt apelul de procedură locală:
Asimetria, adică, o parte a comunicării este inițiată;
Sincronicitatea, care efectuează procedura de apel este suspendată de la data emiterii cererii și a fost reluată numai după revenirea procedurii numite.
Punerea în aplicare a apelurilor la distanță sunt mult mai complexe de punere în aplicare a procedurii de apel local.
Deoarece RPC nu se poate baza pe memoria partajată, aceasta înseamnă că parametrii RPC nu trebuie să conțină indicii la celula de memorie și parametrii chtoznacheniya nestekovoy pentru a fi copiate de la un calculator la altul.
2. O altă diferență de la un apel RPC locale este că utilizează întotdeauna sistemul de comunicare care stau la baza. Eton, dar trebuie să fie în mod clar vizibile sau în definirea procedurilor sau a procedurilor propriu-zise.
Distanța introduce provocări suplimentare. Executarea apelantului și procedura locală numită în aceeași mașină vândută în ramkahedinogoprotsessa. Nouă implementare a uchastvuyutkak RPC cel puțin două una protsessa- în fiecare mașină. Dacă unul dintre ei sa prăbușit, pot apărea următoarele situații:
un accident cauzat de procedurile de la distanță apelantului va deveni „orfani“, și
O terminare anormală a procedurii de la distanță va fi „procedura apelantă părinților defavorizați, care va fi în zadar să se aștepte un răspuns de la procedura de la distanță.
În plus, există mai multe probleme asociate cu eterogenitatea limbaje de programare și medii de operare. structuri de date, și apel structura procedurilor, susținute în orice limbă o programare care nu este acceptat în același fel în toate celelalte limbi.
Acestea și alte probleme sunt rezolvate printr-o tehnologie RPC pe scară largă, care stă la baza multor sisteme de operare distribuite.
Ideea care stă la baza RPC, este de a face un apel de procedură la distanță este, de asemenea, caută oportunități ca un apel de procedură locală. Cu alte cuvinte - face RPC transparent: apelantul nu are nevoie să cunoască procedura, că procedura este numit pe o altă mașină, și vice-versa.
RPC realizează transparența prin felul următor. Când procedura numită este într-adevăr la distanță, biblioteca este plasată în locul procedurii locale este o altă variantă a procedurii, numită clientul Stabia (stub - fișă). La fel ca procedura inițială, ciot se numește folosind secvența (ca în figura 3.1) de asteptare, aceeași întrerupere apare la accesarea yadru.Tolko, spre deosebire de procedura inițială, el nu pune parametrii în registre și solicită datele de kernel, în schimb, se generează un mesaj pentru a trimite la kernel-ul mașinii de la distanță.

Fig. 3.2. Remote Procedure Call