Starpība starp RPC un RMI
Saturs
- Salīdzināšanas tabula
- RPC definīcija
- Ļaujiet saprast, kā RPC tiek ieviests, izmantojot norādītās darbības:
- RMI definīcija
- Secinājums
RPC un RMI ir mehānismi, kas ļauj klientam izsaukt procedūru vai metodi no servera, izveidojot komunikāciju starp klientu un serveri. Kopējā atšķirība starp RPC un RMI ir tā, ka RPC atbalsta tikai procesuālā programmēšana tā kā RMI atbalsta objektorientēta programmēšana.
Vēl viena būtiska atšķirība starp abām ir tā, ka parametri, kas nodoti attālās procedūras izsaukumam, sastāv no parastās datu struktūras. No otras puses, parametri, kas nodoti attālinātai metodei, sastāv no objekti.
- Salīdzināšanas tabula
- Definīcija
- Galvenās atšķirības
- Secinājums
Salīdzināšanas tabula
Salīdzināšanas pamats | RPC | RMI |
---|---|---|
Atbalsta | Procedūras programmēšana | Objektorientēta programmēšana |
Parametri | Parastās datu struktūras tiek nodotas attālinātām procedūrām. | Objekti tiek nodoti attālinātām metodēm. |
Efektivitāte | Zemāks par RMI | Vairāk nekā RPC, un to atbalsta moderna programmēšanas pieeja (t.i., uz objektu orientētas paradigmas) |
Pieskaitāmās izmaksas | Vairāk | Mazāk salīdzinoši |
In-out parametri ir obligāti. | Jā | Nav nepieciešams |
Nodrošina vienkāršu programmēšanu | Augsts | zems |
RPC definīcija
Tālvadības procedūras izsaukums (RPC) ir programmēšanas valodas funkcija, kas paredzēta sadalītai skaitļošanai un balstīta uz vietējā procedūra zvani. Tās ir visizplatītākās attālo pakalpojumu formas un tika izstrādātas kā veids, kā abstrahēt procedūras izsaukuma mehānismu, ko izmantot starp sistēmām, kas savienotas caur tīklu. Tas ir līdzīgs IPC mehānismam, kur operētājsistēma ļauj procesiem pārvaldīt dalītos datus un rīkoties ar vidi, kurā dažādi procesi tiek izpildīti atsevišķās sistēmās un kuriem obligāti nepieciešama komunikācija.
Ļaujiet saprast, kā RPC tiek ieviests, izmantojot norādītās darbības:
- Klienta process izsauc klienta daļu ar parametriem, un tā izpilde tiek apturēta līdz zvana pabeigšanai.
- Pēc tam parametrus pārtulko mašīnā neatkarīgā formā, šķirojot caur klienta stublāju. Tad tiek sagatavots paraugs, kurā ir parametru attēlojums.
- Lai atrastu vietnes identitāti, klienta sprauga sazinās ar vārdu serveri, kurā pastāv attālā procedūra.
- Izmantojot bloķēšanas protokolu, klients piesaista vietnei, kur pastāv attālais procedūras izsaukums. Šis solis aptur klienta nepilnības, līdz tas saņem atbildi.
- Servera vietne saņem nosūtītos no klienta puses un pārveido tos mašīnai specifiskā formātā.
- Tagad servera serbs izpilda izsaukumu uz servera procedūru kopā ar parametriem, un servera serbe tiek pārtraukta, līdz procedūra tiek pabeigta.
- Servera procedūra atgriež ģenerētos rezultātus servera stublājā, un rezultāti servera stublājā tiek pārveidoti mašīnā neatkarīgā formātā un tiek izveidoti rezultāti, kas satur rezultātus.
- Rezultāts tiek nosūtīts klienta daļai, kas tiek pārveidota atpakaļ mašīnai specifiskā formātā, kas piemērots klienta daļai.
- Beidzot klientam sastingums atgriež rezultātus klienta procesā.
RMI definīcija
Attālās metodes izsaukšana (RMI) ir līdzīga RPC, bet ir specifiska valodai un javas iezīme. Vītne ir atļauta, lai izsauktu metodi uz attālu objektu. Lai saglabātu caurspīdīgumu klienta un servera pusē, tas ievieš attālo objektu, izmantojot stublājus un skeletus. Stumbrs atrodas kopā ar klientu, un attālajam objektam tas darbojas kā starpniekserveris.
Kad klients piezvana attālai metodei, tiek saukta attālas metodes iedaļa. Klients ir atbildīgs par pakas izveidi un apvienošanu, kurā ir metodes nosaukums un sakārtotie parametri, un par pakas saņemšanu ir atbildīgs skelets.
Skelets atšifrē parametrus un uz servera izsauc vēlamo metodi. Skelets sakārto norādīto vērtību (vai izņēmumus) ar paku un nosūta to klienta daļai. Stumbrs atkārtoti samontē atpakaļ sūtījumu un nosūta to klientam.Java programmā parametri tiek nodoti metodēm un atgriezti atsauces veidā. Tas varētu būt satraucoši RMI pakalpojumam, jo ne visi objekti, iespējams, ir attālinātas metodes. Tātad ir jānosaka, kuras var nodot kā atsauces un kuras nevar.
Java izmanto procesu ar nosaukumu seriālizēšana kur objekti tiek nodoti kā vērtība. Attālais objekts tiek lokalizēts pēc vērtības. Tas var arī nodot objektu, izmantojot atsauci, novirzot attālinātu atsauci uz objektu kopā ar stublāja klases URL. Braukšana garām ierobežo attālā objekta galu.
- RPC atbalsta procesuālās programmēšanas paradigmas, tātad ir balstīta uz C, savukārt RMI atbalsta uz objektu orientētas programmēšanas paradigmas un ir balstīta uz Java.
- Parametri, kas RPC tiek pārsūtīti uz attālām procedūrām, ir parastās datu struktūras. Tieši pretēji, RMI objektus kā parametru nodod attālajai metodei.
- RPC var uzskatīt par RMI vecāku versiju, un to lieto programmēšanas valodās, kas atbalsta procesuālo programmēšanu, un to var izmantot tikai caurlaišanas vērtības metodi. Pretstatā RMI iespēja ir izstrādāta, balstoties uz mūsdienīgu programmēšanas pieeju, kas varētu izmantot vērtību vai atsauci. Vēl viena RMI priekšrocība ir tā, ka parametrus, kurus nodod atsaucei, var mainīt.
- RPC protokols rada vairāk pieskaitāmu izmaksu nekā RMI.
- RPC nodotajiem parametriem jābūt “iekšā ārāKas nozīmē, ka procedūrai nodotajai vērtībai un izvades vērtībai jābūt vienādiem datu tipiem. Turpretī nav nekādas piespiešanas nokārtot “iekšā ārā”Parametrus RMI.
- RPC atsauces nevarēja būt ticamas, jo abiem procesiem ir atšķirīga adrešu telpa, taču RMI gadījumā tas ir iespējams.
Secinājums
Gan RPC, gan RMI kalpo vienam un tam pašam mērķim, taču valodās tiek izmantotas dažādas programmēšanas paradigmas, tāpēc tām ir atšķirīgas iezīmes.