Diferència entre RPC i RMI

Autora: Laura McKinney
Data De La Creació: 1 Abril 2021
Data D’Actualització: 15 Ser Possible 2024
Anonim
Diferència entre RPC i RMI - Tecnologia
Diferència entre RPC i RMI - Tecnologia

Content


RPC i RMI són els mecanismes que permeten a un client invocar el procediment o mètode des del servidor mitjançant l'establiment de la comunicació entre el client i el servidor. La diferència comuna entre RPC i RMI és que RPC només és compatible programació procedimental mentre que RMI és compatible programació orientada a objectes.

Una altra gran diferència entre ambdues consisteix en què consisteixen els paràmetres aprovats a procediments remots estructures de dades ordinàries. D'altra banda, els paràmetres que passen al mètode remot consisteixen en objectes.

  1. Gràfic de comparació
  2. Definició
  3. Diferències claus
  4. Conclusió

Gràfic de comparació

Bases per a la comparacióRPCRMI
SuportsProgramació procedimental
Programació orientada a objectes
ParàmetresLes estructures de dades ordinàries es passen a procediments remots.Els objectes es passen a mètodes remots.
EficiènciaInferior a la RMIMés que RPC i recolzat en un enfocament de programació modern (és a dir, paradigmes orientats a objectes)
Gastos generalesMés
Menys comparativament
Els paràmetres d’entrada són obligatoris.No necessàriament
Disposició de facilitat de programació
Alt
baix


Definició de RPC

Trucada de procediment remot (RPC) és una característica de llenguatge de programació dissenyada per a la computació distribuïda i basada en semàntica de procediment local trucades Es tracta de les formes més comunes de servei remot i es va dissenyar com una manera d'abstrair el mecanisme de trucada de procediment per utilitzar entre sistemes connectats a través d'una xarxa. És similar al mecanisme IPC on el sistema operatiu permet als processos gestionar dades compartides i tractar amb un entorn on s’executen diferents processos en sistemes separats i necessiten necessàriament una comunicació basada en.

Entenem com es implementa RPC mitjançant els passos donats:

  • El procés de client fa una crida amb paràmetres al client i la seva execució se suspèn fins que es finalitzi la trucada.
  • Els paràmetres es tradueixen a una forma independent de la màquina mitjançant l'enviament a través de la tija del client. A continuació, es prepara el que conté la representació dels paràmetres.
  • Per trobar la identitat del lloc, el client s'intercomunicarà amb el servidor del nom en el qual existeix el procediment remot.
  • Si feu servir el protocol de bloqueig, el client es dirigeix ​​al lloc on hi ha una trucada de procediment remota. Amb aquest pas, es deté la recuperació del client fins a obtenir-ne una resposta.


  • El lloc del servidor rep l'enviament des del costat del client i el converteix en format específic per a màquina.
  • Ara, el servidor de correus executa una trucada al procediment del servidor juntament amb els paràmetres, i la discoteca del servidor es deixa d’acabar fins que s’hagi completat el procediment.
  • El procediment del servidor retorna els resultats generats a la cadena del servidor i els resultats es converteixen en format independent de la màquina a la tija del servidor i en generen els resultats.
  • El resultat s'envia a la plataforma de client que es converteix de nou en format específic per a màquines adequat per a la discoteca.
  • Per últim client, stub retorna els resultats al procés del client.

Definició de RMI

Invocació de mètodes remots (RMI) és similar a RPC, però és específic del llenguatge i una característica de java. Es pot anomenar un fil per trucar al mètode en un objecte remot. Per mantenir la transparència del client i del servidor, implementa objectes remots mitjançant palets i esquelets. L’estub resideix amb el client i per a l’objecte remot es comporta com a proxy.

Quan un client truca a un mètode remot, s’anomena stub del mètode remot. La tija del client és responsable de la creació i ingesta de la parcel·la que conté el nom d'un mètode i els paràmetres marcats, i l'esquelet és responsable de la recepció.

L’esquelet desmarca els paràmetres i invoca el mètode desitjat al servidor. L’esquelet mariscalitza el valor donat (o excepcions) amb la parcel·la i s’explica a la tija del client. La tija torna a muntar el paquet de devolució i el remet al client.

A Java, els paràmetres es passen als mètodes i es retornen en forma de referència. Pot ser problemàtic per al servei RMI, ja que no tots els objectes són mètodes remots. Per tant, ha de determinar quin es pot passar com a referència i quina no.

Java utilitza el procés anomenat com serialització on els objectes es passen com a valor. L’objecte remot es localitza per valor de pas. També pot passar un objecte per referència passant una referència remota a l'objecte juntament amb l'URL de la classe stub. El pas per referència restringeix un toc per a l'objecte remot.

  1. RPC admet paradigmes de programació procedimentals, per tant, es basa en C, mentre que RMI suporta paradigmes de programació orientats a objectes i es basa en java.
  2. Els paràmetres passats a procediments remots en RPC són les estructures de dades ordinàries. Per contra, RMI transita objectes com a paràmetre al mètode remot.
  3. RPC es pot considerar com la versió anterior de RMI, i s'utilitza en els llenguatges de programació que admeten la programació processal, i només es pot utilitzar el mètode pass per valor. En contraposició, la instal·lació RMI està dissenyada basant-se en un enfocament de programació modern, que podria utilitzar el valor per valor o referència. Un altre avantatge de RMI és que es poden canviar els paràmetres passat per referència.
  4. El protocol RPC genera més despeses que RMI.
  5. Els paràmetres aprovats en RPC han de ser "dins fora"Que significa que el valor passat al procediment i el valor de sortida han de tenir els mateixos tipus de dades. En canvi, no hi ha cap compulsió de passar "dins fora”Paràmetres en RMI.
  6. A RPC, les referències no podrien ser probables, ja que els dos processos tenen un espai d’adreces distint, però és possible en el cas de RMI.

Conclusió

Tant RPC com RMI compleixen el mateix propòsit, però s'utilitzen en llenguatges que suporten diferents paradigmes de programació, per tant tenen característiques diferents.