Remote procedure call - це

Remote Procedure Call

Remote Procedure Call

реалізації

Існують безліч технологій, що забезпечують RPC:

Ідея виклику віддалених процедур (Remote Procedure Call - RPC) полягає в розширенні добре відомого і зрозумілого механізму передачі управління і даних усередині програми, що виконується на одній машині, на передачу управління і даних через мережу. Засоби віддаленого виклику процедур призначені для полегшення організації розподілених обчислень і створення розподілених клієнт-серверних інформаційних систем. Найбільша ефективність використання RPC досягається в тих додатках, в яких існує інтерактивний зв'язок між віддаленими компонентами з невеликим часом відповідей і відносно малою кількістю переданих даних. Такі додатки називаються RPC-орієнтованими.

Характерними рисами виклику локальних процедур є:

  • Асиметричність, тобто одна з взаємодіючих сторін є ініціатором;
  • Синхронність, тобто виконання викликає процедури припиняється з моменту видачі запиту і відновлюється тільки після повернення з викликається процедури.

Реалізація віддалених викликів істотно складніше реалізації викликів локальних процедур. Можна визначити такі проблеми та завдання, які необхідно вирішити при реалізації RPC:

підсистеми

- управління вихідними і вхідними з'єднаннями. - підтримка поняття «межа повідомлення» для транспортних протоколів, які не підтримують його безпосередньо (TCP). - підтримка гарантованої доставки для транспортних протоколів, які не підтримують її безпосередньо (UDP).

У деяких реалізаціях RPC (.NET Remoting) кордону підсистем є відкритими поліморфними інтерфейсами, і можливо написати свою реалізацію майже всіх перерахованих підсистем. В інших реалізаціях (DCE RPC в Windows) це не так.

Виклик віддалених процедур (RPC) Концепція віддаленого виклику процедур

Ідея виклику віддалених процедур (Remote Procedure Call - RPC) полягає в розширенні добре відомого і зрозумілого механізму передачі управління і даних усередині програми, що виконується на одній машині, на передачу управління і даних через мережу. Засоби віддаленого виклику процедур призначені для полегшення організації розподілених обчислень. Найбільша ефективність використання RPC досягається в тих додатках, в яких існує інтерактивний зв'язок між віддаленими компонентами з невеликим часом відповідей і відносно малою кількістю переданих даних. Такі додатки називаються RPC-орієнтованими.

Характерними рисами виклику локальних процедур є:

  • Асиметричність, тобто одна з взаємодіючих сторін є ініціатором;
  • Синхронність, тобто виконання викликає процедури припиняється з моменту видачі запиту і відновлюється тільки після повернення з викликається процедури.

Крім того, існує ряд проблем, пов'язаних з неоднорідністю мов програмування і операційних середовищ: структури даних і структури виклику процедур, підтримувані в якомусь одному мовою програмування, не підтримуються точно так же у всіх інших мовах.

Ці та деякі інші проблеми вирішує широко поширена технологія RPC, що лежить в основі багатьох розподілених операційних систем. Базові операції RPC

Щоб зрозуміти роботу RPC, розглянемо спочатку виконання виклику локальної процедури у звичайній машині, що працює автономно. Нехай це, наприклад, буде системний виклик

count = read (fd, buf, nbytes);

де fd - ціле число, buf - масив символів, nbytes - ціле число.

Якщо в спричинюється процедуру передається покажчик на змінну, то зміна значення цієї змінної викликається процедурою тягне зміна значення цієї змінної і для викликає процедури. Цей факт дуже істотний для RPC.

Рішення про те, який механізм передачі параметрів використовувати, приймається розробниками мови. Іноді це залежить від типу переданих даних. У мові С, наприклад, цілі та інші скалярні дані завжди передаються за значенням, а масиви - за посиланням.

застосування

Значна частина інструментів віддаленого управління операційною системою Windows (Event Viewer, Server Manager, управління печаткою, списками користувачів) використовує DCE RPC як засіб спілкування по мережі між керованої службою і керуючим додатком призначеного для користувача інтерфейсу. Підтримка DCE RPC була присутня в Windows NT з найпершої версії 3.1. Клієнти DCE RPC підтримувалися і в полегшеної лінії операційних системи Windows 3.x / 95/98 / Me.

Системні бібліотеки Windows, які надають можливості такого управління і служашіе базовим рівнем для управляюшім додатків призначеного для користувача інтерфейсу (netapi32.dll і частково advapi32.dll), на ділі містять в собі клієнтський код інтерфейсів DCE RPC, які здійснюють це управління.

Крім DCE RPC, в Windows активно застосовується технологія DCOM. Так, наприклад, вона використовується як засіб спілкування між інструментами управління веб-сервером IIS і власне керованим сервером. Повнофункціональний інтерфейс спілкування з поштовою системою MS Exchange Server - MAPI - також заснований на DCOM.

Схожі статті