La trucada de procediment remot o RPC és una tècnica potent per construir aplicacions distribuïdes basades en client-servidor. També es coneix com una trucada de funció o una trucada de subrutina. Una trucada de procediment remot és quan un programa informàtic fa que un procediment s'executi en un espai d'adreces diferent, codificat com a trucada de procediment local, sense que el programador indiqui explícitament els detalls de la interacció remota. El programador escriu essencialment el mateix codi tant si la subrutina és local del programa en execució com si és remota. Aquesta és una forma d'interacció client-servidor implementada mitjançant un sistema de pas de missatges de petició-resposta.
El model RPC implica transparència d'ubicació que els procediments de trucada són en gran part els mateixos, ja siguin locals o remots. Normalment, no són idèntics, de manera que les trucades locals es poden distingir de les trucades remotes. Les trucades remotes solen ser ordres de magnitud més lentes i menys fiables que les trucades locals, per la qual cosa és important distingir-les.
Els RPC són una forma de comunicació entre processos (IPC), ja que els diferents processos tenen diferents espais d'adreces. Tenen diferents espais d'adreces virtuals a la mateixa màquina amfitriona, tot i que l'espai d'adreces físiques és el mateix. Mentre que si es troben en amfitrions diferents, l'espai d'adreces física és diferent.
Com fer una trucada de procediment remot
L'entorn de trucada se suspèn, els paràmetres del procediment es transfereixen a través de la xarxa a l'entorn on s'ha d'executar el procediment i el procediment s'executa allà.
Quan el procediment acaba i produeix els seus resultats, es torna a transferir a l'entorn de trucada, on l'execució es reprèn com si tornés d'una trucada de procediment normal.
NOTA: RPC és especialment adequat per a la interacció client-servidor (per exemple, consulta-resposta) en què el flux de control alterna entre la persona que truca i la persona que crida. Conceptualment, el client i el servidor no s'executen simultàniament; en comptes d'això, el fil d'execució salta de la persona que truca a la persona que truca i després torna de nou.
Tipus de RPC
Hi ha tres tipus de trucades de procediment remot (RPC) en un sistema operatiu, com ara:
1. RPC de devolució de trucada
Aquest tipus de RPC possibilita un paradigma P2P entre processos participants. Ajuda que un procés sigui tant servei de client com de servidor. Callback RPC té les funcions següents, com ara:
quina col·lecció en java
- Problemes d'aplicacions interactives processats de forma remota.
- Ofereix servidor amb maneig de clients.
- La devolució de trucada fa esperar el procés del client.
- Gestioneu els bloquejos de devolucions de trucada.
- Facilita un paradigma peer-to-Peer entre els processos participants.
2. Emissió RPC
Broadcast RPC és una sol·licitud d'un client emesa a la xarxa, processada per tots els servidors amb el mètode per processar aquesta sol·licitud. Broadcast RPC té les funcions següents, com ara:
windows.open javascript
- Permet especificar que el missatge de sol·licitud del client s'ha de difondre.
- Podeu declarar ports de difusió.
- Ajuda a reduir la càrrega a la xarxa física.
3. RPC en mode per lots
L'RPC en mode per lots ajuda a posar en cua les sol·licituds RPC separades en un buffer de transmissió del costat del client i, a continuació, enviar-les a la xarxa en un sol lot al servidor. RPC en mode per lots té les funcions següents, com ara:
- Redueix al mínim la sobrecàrrega que comporta l'enviament d'una sol·licitud enviant-les per la xarxa en un sol lot al servidor.
- Aquest tipus de protocol RPC només és eficient per a una aplicació que necessita tarifes de trucades més baixes.
- Necessita un protocol de transmissió fiable.
Què fa RPC?
Quan les instruccions del programa que utilitzen el marc RPC es compilen en un programa executable, s'inclou un taló al codi compilat que representa el codi del procediment remot.
Quan s'executa el programa i s'emet la trucada de procediment, el taló rep la sol·licitud i la reenvia a un programa d'execució del client a l'ordinador local. La primera vegada que s'invoca el taló del client, es posa en contacte amb un servidor de noms per determinar l'adreça de transport on resideix el servidor.
El programa d'execució del client sap com adreçar-se a l'ordinador remot i l'aplicació del servidor i envia el missatge a través de la xarxa que sol·licita el procediment remot. De la mateixa manera, el servidor inclou un programa d'execució i un taló que s'interfaça amb el propi procediment remot, i els protocols de sol·licitud de resposta es retornen de la mateixa manera.
Característiques de RPC
En un sistema operatiu, la trucada de procediment remot (RPC) té les característiques següents, com ara:
- RPC amaga la complexitat del procés de pas de missatges a l'usuari.
- RPC només utilitza capes específiques del model OSI com la capa de transport.
- Els clients poden comunicar-se amb el servidor utilitzant idiomes de nivell superior.
- RPC funciona bé tant amb entorns locals com amb entorns remots.
- El programa de RPC està escrit en codi senzill i el programador l'entén fàcilment.
- El sistema operatiu pot gestionar fàcilment processos i fils implicats en RPC.
- El sistema operatiu amaga les abstraccions de RPC de l'usuari.
Com funciona RPC?
Quan s'invoca una trucada de procediment remot, l'entorn de trucada se suspèn, els paràmetres del procediment es transfereixen a través de la xarxa a l'entorn on s'ha d'executar el procediment i, a continuació, el procediment s'executa en aquest entorn.
Quan finalitza el procediment, els resultats es transfereixen de nou a l'entorn de trucada, on l'execució es reprèn com si tornés d'una trucada de procediment normal.
Una trucada de procediment remot (RPC) funciona en els passos següents en un sistema operatiu:
atoi c
Pas 1: El client, el taló del client i el temps d'execució RPC s'executen a la màquina client.
Pas 2: Un client inicia un procés de taló de client passant paràmetres de la manera habitual. S'anomena l'empaquetament dels paràmetres del procediment repartiment . El taló del client s'emmagatzema dins de l'espai d'adreces del propi client i també demana al temps d'execució RPC local que l'enviï de nou al taló del servidor.
Pas 3: En aquesta etapa, l'usuari pot accedir a RPC fent una trucada de procediment local regular. RPC Runtime gestiona la transmissió de missatges entre la xarxa a través del client i el servidor, i també realitza la tasca de retransmissió, reconeixement, encaminament i xifratge.
Pas 4: Després de completar el procediment del servidor, torna al taló del servidor, que empaqueta (marshalls) els valors de retorn en un missatge. A continuació, el taló del servidor envia un missatge a la capa de transport.
Pas 5: En aquest pas, la capa de transport envia de nou el missatge de resultat a la capa de transport del client, que retorna un missatge al taló del client.
Pas 6: En aquesta etapa, el taló del client demarshalls (desempaqueta) els paràmetres de retorn del paquet resultant i el procés d'execució torna a la persona que truca.
Problemes de la trucada de procediment remot (RPC)
En un sistema operatiu, la trucada de procediment remot o RPC s'enfrontava a alguns problemes que s'han de resoldre, com ara:
1. Temps d'execució RPC
El sistema d'execució RPC és una biblioteca de rutines i serveis que gestionen les comunicacions de xarxa que subjauen al mecanisme RPC. En el transcurs d'una trucada RPC, el codi dels sistemes d'execució del costat del client i del servidor gestiona l'enllaç, estableix comunicacions mitjançant un protocol adequat, passa les dades de trucada entre el client i el servidor i gestiona els errors de comunicacions.
2. Taló
La funció del taló és proporcionar transparència al codi de l'aplicació escrit pel programador.
3. Enquadernació
llista d'enllaços en java
Com sap el client a qui trucar i on resideix el servei?
La solució més flexible és utilitzar l'enllaç dinàmic i trobar el servidor en temps d'execució quan es fa l'RPC per primera vegada. La primera vegada que s'invoca el taló del client, es posa en contacte amb un servidor de noms per determinar l'adreça de transport on resideix el servidor. L'enquadernació consta de dues parts:
4. La semàntica de crida associada a RPC
Es classifica principalment en les opcions següents,
Característiques de RPC
Aquestes són les característiques essencials de la trucada de procediment remot:
- El procediment anomenat es troba en un altre procés, que és probable que resideixi en una altra màquina.
- Els processos no comparteixen espai d'adreces.
- Els paràmetres només es passen per valors.
- RPC s'executa dins de l'entorn del procés del servidor.
- No ofereix accés a l'entorn del procediment de trucada.
Avantatges de RPC
Aquests són alguns avantatges o beneficis de RPC, com ara:
- El mètode RPC ajuda els clients a comunicar-se amb els servidors mitjançant l'ús convencional de trucades de procediment en idiomes d'alt nivell.
- El mètode RPC es basa en la trucada de procediment local, però és més probable que el procediment s'executi en un procés diferent i normalment en un ordinador diferent.
- RPC admet models orientats a processos i fils.
- RPC fa que el mecanisme intern de pas de missatges s'oculti a l'usuari.
- L'esforç necessari per reescriure i tornar a desenvolupar el codi és mínim.
- Les trucades de procediments remots es poden utilitzar per a la distribució i l'entorn local.
- Compromesa moltes de les capes de protocol per millorar el rendiment.
- RPC proporciona abstracció. Per exemple, la naturalesa de transmissió de missatges de la comunicació en xarxa roman oculta a l'usuari.
- RPC permet l'ús de les aplicacions en un entorn distribuït que no només és a l'entorn local.
- Amb el codi RPC, es minimitzen els esforços de reescriptura i desenvolupament.
- Models orientats a processos i orientats a fils compatibles amb RPC.
Inconvenients de RPC
Aquests són alguns desavantatges o inconvenients d'utilitzar RPC, com ara:
- La trucada de procediment remot passa paràmetres només per valors i valors de punter, cosa que no està permesa.
- El temps de trucada (i de retorn) del procediment remot (és a dir, les despeses generals) pot ser significativament inferior al d'un procediment local.
- Aquest mecanisme és molt vulnerable a la fallada ja que implica un sistema de comunicació, una altra màquina i un altre procés.
- El concepte RPC es pot implementar de diferents maneres, cosa que no és estàndard.
- No ofereix cap flexibilitat en RPC per a l'arquitectura de maquinari, ja que es basa principalment en la interacció.
- El cost del procés augmenta a causa d'una trucada de procediment remot.