HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Távoli eljáráshívás (RPC)



Gyakran hallani nem csak a Windows, hanem más operációs rendszerek kapcsán is a "Távoli eljáráshívás" ("Remote Procedure Call") fogalmát, illetve látni az RPC rövidítést. Vajon mit takar ez a kifejezés? Miért van rá szükség? Működhet-e az operációs rendszer nélküle? Fontos-e egyáltalán, hogy használjuk? Az alábbiakban ezeknek a kérdéseknek járunk utána.

A távoli eljáráshívás során egy másik, hálózatba kapcsolt számítógépen levő eljárást hívunk meg, nem arról van szó, hogy a távoli gépről letöltődik az eljárás futtatható kódja és a helyi processzor azt megpróbálja végrehajtani. A távoli eljáráshívás során a hívó program felfüggesztődik, majd a hívott alprogramnak átadásra kerülnek a paraméterek, és az elkezd futni mialatt a hívó futása leáll. A hívott alprogram befejeződése után a visszatérési értékét átadja a hívónak, ami azután folytathatja a futását. A távoli eljáráshívás esetén a hívó és a hívott alprogram nem feltétlenül ugyanazon a számítógépen helyezkedik el, így a paraméterátadásra valamilyen hálózati kommunikációs eszközt kell igénybe venni (például a TCP vagy az UDP protokollt).
A módszer számos problémát felvet, ami helyi eljáráshívás esetén nem merül fel; egyrészt azért, mert a hálózat nem tökéletesen megbízható, másrészt pedig az egyes számítógépek belső adatábrázolási formája eltérő (gondoljunk arra, hogy a több bájtos egészeket alkotó bájtokat az Intel 80386 és a Motorola 68030 más-más sorrendben tárolja), sőt a bonyolultabb adattípusok belső ábrázolása sem kell, hogy megegyezzen! A távoli eljáráshívás esetén a pointer-átadás is egy igen problémás témakör (gondoljuk csak meg, hogy a hívott alprogram egy másik gépen is futhat, más memóriatérképpel rendelkezik: a memóriacímeknek (így a pointereknek is) csak egy programon belül lehet valami információhordozó szerepe).
A távoli eljáráshívási rendszereket - attól függően, hogy hogyan reagálnak a hálózat hibájából eredő hatásokra - három kategóriába szokás sorolni:
  • legalább egyszer,
  • legfeljebb egyszer illetve az
  • egyéb kategóriákba.
A legalább egyszer történő eljárás végrehajtási szemantikával rendelkező rendszerek a távoli eljárás végrehajtását szükség esetén egészen addig ismétlik, amíg egy nyugtát nem kapnak a távoli eljárást futtató számítógéptől az eljárás sikeres lefutásáról. Itt történhetnek félreértések is: ha a távoli eljárás végrehajtódott, de az ezt jelző nyugta elveszik vagy később jön, mint az a hívó eljárás várja, akkor a hívó nem tudja, hogy mi történt (hogy egyáltalán elindult-e a távoli eljárás vagy sikeresen végre lett hajtva, és ,,csak'' a nyugta veszett el). Ekkor a művelet újraindítása veszélyes lehet, hacsak nem egy idempotens műveletről van szó, amit akárhányszor végre lehet hajtani. Például nem idempotens művelet egy bankszámláról 1000 forint levétele: ha ezt a műveletet kétszer végrehajtjuk, akkor már 2000 forintot veszünk le a bankszámláról; idempotens művelet például egy bankszámla állapotának lekérdezése (ezt akárhányszor megismételhetjük; nem ártunk vele senkinek - legfeljebb a hálózati forgalmat növelhetjük vele).
A legfeljebb egyszer történő eljáráshívási szemantikájú rendszerek a távoli eljáráshívást egyszer végrehajtják, és többször meg sem próbálják. Nyilvánvalóan a pontosan egyszer történő végrehajtás lenne az elérendő cél, de ez általában nem megvalósítható (a hálózat hibáival mindig számolni kell, és jól működő hálózat esetén is nehéz egy értelmes időkorlátot adni arra vonatkozóan, hogy a távoli eljárás végrehajtásáról visszaküldött nyugta legkésőbb mennyi idő múlva kell, hogy megérkezzen).
A távoli eljáráshívás terminológiájában a hívót nevezik kliensnek, a hívott alprogramot pedig szervernek. A szerver nem feltétlenül azon a számítógépen fut, amely a klienst futtatja, így a kliensnek a távoli eljárás végrehajtása előtt meg kell keresnie azt, hogy melyik számítógép szolgáltatja a számára szükséges távoli eljárásokat. Ezt a folyamatot, amikor a kliens megkeresi a szervert és felveszi vele a kapcsolatot, kötésnek nevezik.
Az RPC és a Windows
A távoli eljáráshívást a Windows operációs rendszerek aktívan használják. Olyannyira aktívan, hogy RPC nélkül nem működik az operációs rendszer. Ha például nem tud elindulni az RPC szolgáltatás a rendszerindítási fázisban, akkor nemhogy nem lehet bejelentkezni, de a rendszer leállítja saját magát. Ha menet közben kapcsoljuk ki, akkor ugyanez történik (a Windows XP már nem is engedélyezi a felhasználói felületről történő leállítást).
Könnyen beláthatjuk a szolgáltatás fontosságát, ha eltallózunk a következő helyre:
Vezérlőpult > (Teljesítmény és karbantartás) > Felügyeleti eszközök > Szolgáltatások (Control Panel > (Performance and Maintenance) > Administrative Tools > Services).
Megkeressük a szolgáltatás listában a "Távoli eljáráshívás (RPC)" ("Remote Procedure Call (RPC)") elemet. Rákattintunk a jobboldali egérgombbal és a "Tulajdonságok" ("Properties") menüre lépünk. A megjelenő ablak "Függőségek" ("Dependencies") oldalán látható, hogy egyéb szolgáltatások működése múlik az RCP-n. A lista tetemes.

Cikksorozat

#IDKategóriaCikk címeSorozat
2591WindowsTippek és trükkök - RAS - Modem csengetési szám állítása1. rész
2622WindowsTippek és trükkök - Program futtatása más felhasználóként2. rész
2640WindowsA Windows ikonméretének megváltoztatása és Windows 2000 Asztaltémák3. rész
2657WindowsTippek és trükkök - Internet Explorer4. rész
2667WindowsTippek és trükkök5. rész
2684WindowsAlapértelmezések állítása, telepítési fájlok helye, intéző nézetek6. rész
2696WindowsBiztonsági trükkök7. rész
2702WindowsWindows XP trükkök8. rész
2729WindowsWindows 2000 és XP tippek, trükkök9. rész
2757WindowsRegistry trükkök10. rész
2784WindowsTippek, trükkök11. rész
2829WindowsTippek, trükkök12. rész
2889WindowsWindows XP tippek13. rész
2909WindowsTippek Windows XP-hez14. rész
2919WindowsWindows tippek15. rész
2924WindowsWindows tippek16. rész
2963WindowsWindows tippek17. rész
2973WindowsWindows Tippek18. rész
2981WindowsWindows tippek19. rész
2990WindowsTippek-trükkök20. rész
3027WindowsIIS tippek21. rész
3034WindowsWindows XP tippek-trükkök22. rész
3088WindowsWindows 2000/XP tippek, trükkök23. rész
3133WindowsWindows XP tippcsokor24. rész
3140WindowsWindows XP tippek, trükkök25. rész
3152WindowsXP és IIS tippek - trükkök26. rész
3158WindowsWindows XP tippek, trükkök27. rész
3168WindowsTippek, trükkök28. rész
3170WindowsRegistry trükkök29. rész
3179WindowsTippek, trükkök30. rész
3197WindowsWindows XP tippek, trükkök31. rész
3205WindowsTippek, trükkök32. rész
3214WindowsTippek, trükkök33. rész
3223WindowsTippek, trükkök34. rész
3233WindowsTippek, trükkök35. rész
3271WindowsTippek, trükkök36. rész
3307WindowsTippek, trükkök37. rész
3370WindowsTippek, trükkök38. rész
3399WindowsTippek, trükkök39. rész
3510WindowsTippek, trükkök40. rész
3611WindowsHardverrel kapcsolatos tippek, trükkök41. rész
3668WindowsRegistry trükkök42. rész
3711WindowsTippek, trükkök43. rész
3771WindowsTippek, trükkök44. rész
3801WindowsTippek, trükkök45. rész
3831WindowsTippek, trükkök46. rész
3891WindowsTippek, trükkök47. rész
3921WindowsTippek, trükkök48. rész
3981WindowsTippek, trükkök49. rész
4041WindowsTippek, trükkök50. rész
4071WindowsTippek, trükkök51. rész
4151WindowsTippek, trükkök52. rész
4171C#Tippek, trükkök53. rész
4211WindowsTippek, trükkök54. rész
4251WindowsTippek, trükkök55. rész
4281WindowsTippek, trükkök56. rész
3589DelphiTippek, trükkök57. rész
3718DelphiTippek, trükkök58. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: Windows Software Offline 2003 évkönyv 191. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |