Apel de procedură la distanță
Apel de procedură la distanță
punerea în aplicare
Există multe tehnologii care oferă RPC:
Ideea de a solicita procedurile la distanță (RPC) este de a extinde mecanismul bine-cunoscut și ușor de înțeles pentru transferul de control și de date într-un program care rulează pe o singură mașină pentru a transfera controlul și datele prin rețea. Aparatele de apel de procedură de la distanță sunt concepute pentru a facilita organizarea computerelor distribuite și crearea de sisteme informatice distribuite client-server. Utilizarea cea mai eficientă a RPC este realizată în acele aplicații în care există o conexiune interactivă între componentele la distanță, cu un timp de răspuns scurt și o cantitate relativ mică de date transmise. Astfel de aplicații sunt numite RPC-orientate.
Caracteristicile caracteristice ale procedurilor locale de apelare sunt:
- Asimetria, adică una dintre părțile interacționiste, este inițiatorul;
- Sincronizarea, adică executarea procedurii de apelare, este suspendată din momentul emiterii cererii și se reia numai după revenirea din procedura chemată.
Implementarea apelurilor la distanță este mult mai dificilă decât implementarea apelurilor la procedurile locale. Puteți identifica următoarele probleme și sarcini pe care trebuie să le rezolvați atunci când implementați RPC:
subsisteme
- gestionarea conexiunilor de ieșire și de intrare. - sprijin pentru conceptul de "limită a mesajului" pentru protocoalele de transport care nu îl suportă direct (TCP). - Asigurarea livrării garantate pentru protocoalele de transport care nu o suportă direct (UDP).
În unele implementări ale RPC (.NET Remoting) limitele subsistemului sunt interfețe polimorfe deschise și este posibil să se scrie propria implementare a aproape tuturor subsistemelor enumerate. În alte implementări (DCE RPC în Windows) acest lucru nu este cazul.
Apel de procedură la distanță (RPC) Conceptul de apel la procedură la distanță
Ideea de a solicita procedurile la distanță (RPC) este de a extinde mecanismul bine-cunoscut și ușor de înțeles pentru transferul de control și de date într-un program care rulează pe o singură mașină pentru a transfera controlul și datele prin rețea. Aparatele de apel de procedură la distanță sunt concepute pentru a facilita organizarea calculului distribuit. Cea mai mare eficiență este atins utilizarea RPC în acele aplicații în care există o comunicare interactivă între componente de la distanță, cu un timp de răspuns mic și o cantitate relativ mică de date transmise. Astfel de aplicații sunt numite RPC-orientate.
Caracteristicile caracteristice ale procedurilor locale de apelare sunt:
- Asimetria, adică una dintre părțile interacționiste, este inițiatorul;
- Sincronizarea, adică executarea procedurii de apelare, este suspendată din momentul emiterii cererii și se reia numai după revenirea din procedura chemată.
În plus, există mai multe probleme asociate cu eterogenitatea limbaje de programare și medii de operare: structurile și procedurile de apel de date structură acceptate în orice limbaj de programare una care nu este acceptat în același fel în toate celelalte limbi.
Aceste și alte probleme sunt rezolvate de tehnologia RPC extinsă, care stă la baza multor sisteme de operare distribuite. Operații RPC de bază
Pentru a înțelege funcționarea RPC, mai întâi considerăm că executarea unui apel local de procedură într-o mașină normală care rulează autonom. Lăsați-o, de exemplu, să fie un apel de sistem
count = citește (fd, buf, nbytes);
unde fd este un număr întreg, buf este o serie de caractere, nbytes este un număr întreg.
Dacă un pointer către o variabilă este trecut la procedura chemată, atunci modificarea valorii acestei variabile de către procedura apelată determină modificarea valorii acestei variabile pentru procedura de apelare. Acest fapt este foarte important pentru RPC.
Decizia asupra mecanismului de trimitere a parametrilor de utilizat este făcută de dezvoltatorii de limbi. Uneori aceasta depinde de tipul de date transmise. În C, de exemplu, datele întregi și alte date scalare sunt întotdeauna transmise prin valoare, iar matricele sunt transmise prin referință.
cerere
O parte semnificativă a instrumentelor pentru gestionarea de la distanță a sistemului de operare Windows (Event Viewer, Server Manager, gestionarea imprimării, liste de utilizatori) utilizează DCE RPC ca mijloc de comunicare prin rețea între serviciul gestionat și aplicația de administrare a interfeței utilizator. Suportul pentru DCE RPC a fost prezent în Windows NT încă de la prima versiune 3.1. Clienții DCE RPC au fost de asemenea sprijiniți în linia ușoară a sistemului de operare Windows 3.x / 95/98 / Me.
Bibliotecile de sisteme Windows care oferă astfel de capabilități de gestionare și care servesc drept nivel de bază pentru gestionarea aplicațiilor interfeței utilizator (netapi32.dll și parțial advapi32.dll) conțin de fapt codul client al interfețelor DCE RPC care implementează această gestionare.
În plus față de DCE RPC, Windows folosește în mod activ tehnologia DCOM. De exemplu, este folosit ca mijloc de comunicare între instrumentele de administrare ale serverului web IIS și serverul administrat corect. Interfața full-featured pentru a comunica cu sistemul de mail MS Exchange Server - MAPI - se bazează, de asemenea, pe DCOM.