Remote Procedure Call або RPC — це потужна техніка для створення розподілених додатків на основі клієнт-сервер. Він також відомий як виклик функції або виклик підпрограми. Віддалений виклик процедури — це коли комп’ютерна програма змушує процедуру виконуватися в іншому адресному просторі, закодованому як локальний виклик процедури, без програміста, який явно вказує деталі віддаленої взаємодії. Програміст пише по суті той самий код незалежно від того, чи є підпрограма локальною для виконуваної програми чи віддаленою. Це форма взаємодії клієнт-сервер, реалізована через систему передачі повідомлень запит-відповідь.
Модель RPC передбачає прозорість розташування що процедури виклику в основному однакові, локальні чи віддалені. Зазвичай вони не ідентичні, тому місцеві дзвінки можна відрізнити від віддалених. Віддалені виклики зазвичай на порядки повільніші та менш надійні, ніж місцеві, тому їх важливо розрізняти.
RPC є формою міжпроцесного зв’язку (IPC), оскільки різні процеси мають різні адресні простори. Вони мають різні віртуальні адресні простори на одній хост-машині, навіть якщо фізичний адресний простір однаковий. Хоча якщо вони знаходяться на різних хостах, фізичний адресний простір відрізняється.
Як зробити віддалений виклик процедури
Середовище виклику призупиняється, параметри процедури передаються через мережу в середовище, де процедура має виконуватися, і процедура виконується там.
Коли процедура завершується і дає свої результати, вона повертається до викликаючого середовища, де виконання відновлюється так, ніби повертається зі звичайного виклику процедури.
ПРИМІТКА. RPC особливо добре підходить для взаємодії клієнт-сервер (наприклад, запит-відповідь), у якій потік керування чергується між абонентом і абонентом. Концептуально, клієнт і сервер не виконуються одночасно; натомість потік виконання перескакує від абонента до викликаного, а потім назад.
Типи RPC
В операційній системі існує три типи віддаленого виклику процедури (RPC), наприклад:
1. Зворотний виклик RPC
Цей тип RPC забезпечує парадигму P2P між процесами-учасниками. Це допомагає процесу бути як клієнтськими, так і серверними службами. RPC зворотного виклику має такі функції, як:
що таке автоматичне підключення в java
- Дистанційно оброблені проблеми інтерактивної програми.
- Пропонує сервер з обслуговуванням клієнтів.
- Зворотний виклик змушує процес клієнта чекати.
- Керуйте блокуваннями зворотного виклику.
- Це полегшує однорангову парадигму між процесами-учасниками.
2. Трансляція RPC
Широкомовний RPC — це запит клієнта, який транслюється в мережі та обробляється всіма серверами за допомогою методу обробки цього запиту. Трансляція RPC має такі функції, як:
- Дозволяє вказати, що повідомлення запиту клієнта має бути широкомовним.
- Ви можете оголосити широкомовні порти.
- Це допомагає зменшити навантаження на фізичну мережу.
3. RPC у пакетному режимі
Пакетний режим RPC допомагає поставити в чергу, розділити RPC-запити в буфері передачі на стороні клієнта, а потім відправити їх у мережі одним пакетом на сервер. RPC у пакетному режимі має такі функції, як:
- Це мінімізує накладні витрати, пов’язані з надсиланням запиту, надсилаючи їх через мережу одним пакетом на сервер.
- Цей тип протоколу RPC ефективний лише для програми, яка потребує нижчої швидкості викликів.
- Для цього потрібен надійний протокол передачі.
Що робить RPC?
Коли оператори програми, що використовують структуру RPC, компілюються у виконувану програму, заглушка включається в скомпільований код, що представляє код віддаленої процедури.
Коли програма виконується і виконується виклик процедури, заглушка отримує запит і пересилає його програмі середовища виконання клієнта на локальному комп’ютері. Під час першого виклику заглушки клієнта він зв’язується з сервером імен, щоб визначити транспортну адресу, де знаходиться сервер.
Програма середовища виконання клієнта знає, як звертатися до віддаленого комп’ютера та серверної програми, і надсилає через мережу повідомлення із запитом на віддалену процедуру. Подібним чином сервер містить програму часу виконання та заглушку, яка взаємодіє з самою віддаленою процедурою, і протоколи запиту відповіді повертаються таким же чином.
Особливості RPC
В операційній системі віддалений виклик процедур (RPC) має такі функції, як-от:
- RPC приховує від користувача складність процесу передачі повідомлень.
- RPC використовує лише певні рівні моделі OSI, наприклад транспортний рівень.
- Клієнти можуть спілкуватися з сервером за допомогою мов вищого рівня.
- RPC добре працює як з локальними середовищами, так і з віддаленими середовищами.
- Програма RPC написана простим кодом і легко зрозуміла програмісту.
- Операційна система може легко обробляти процеси та потоки, задіяні в RPC.
- Операційна система приховує абстракції RPC від користувача.
Як працює RPC?
Коли викликається віддалений виклик процедури, середовище виклику призупиняється, параметри процедури передаються через мережу в середовище, де процедура має виконуватися, і процедура потім виконується в цьому середовищі.
Коли процедура завершується, результати передаються назад у середовище виклику, де виконання відновлюється так, ніби повертається зі звичайного виклику процедури.
підрядок java
Виклик віддаленої процедури (RPC) виконується в операційній системі за такими кроками:
Крок 1: Клієнт, заглушка клієнта та час виконання RPC виконуються на клієнтській машині.
метод порівняння java
крок 2: Клієнт запускає процес заглушки клієнта, передаючи параметри звичайним способом. Викликається упаковка параметрів процедури сортування . Заглушка клієнта зберігається у власному адресному просторі клієнта, а також запитує локальне середовище виконання RPC для надсилання назад на заглушку сервера.
крок 3: На цьому етапі користувач може отримати доступ до RPC, здійснивши регулярний локальний процедурний виклик. RPC Runtime керує передачею повідомлень між мережею через клієнта та сервер, а також виконує завдання повторної передачі, підтвердження, маршрутизації та шифрування.
крок 4: Після завершення серверної процедури він повертається до серверної заглушки, яка пакує (маршалює) повернуті значення в повідомлення. Потім заглушка сервера надсилає повідомлення назад на транспортний рівень.
крок 5: На цьому кроці транспортний рівень надсилає повідомлення результату на транспортний рівень клієнта, який повертає повідомлення на заглушку клієнта.
Крок 6: На цьому етапі заглушка клієнта демаршує (розпаковує) параметри, що повертаються, у результуючому пакеті, і процес виконання повертається до абонента.
Проблеми віддаленого виклику процедури (RPC)
В операційній системі віддалений виклик процедури або RPC зіткнувся з деякими проблемами, які необхідно вирішити, наприклад:
1. RPC Runtime
Система виконання RPC — це бібліотека підпрограм і служб, які обробляють мережеві комунікації, які лежать в основі механізму RPC. Під час виклику RPC клієнтські та серверні системи виконання обробляють зв’язки, встановлюють зв’язок за відповідним протоколом, передають дані виклику між клієнтом і сервером і обробляють помилки зв’язку.
f-рядковий пітон
2. Заглушка
Функція заглушки полягає в тому, щоб забезпечити прозорість коду програми, написаного програмістом.
3. Підшивка
Як клієнт дізнається, кому дзвонити і де знаходиться служба?
Найбільш гнучке рішення полягає у використанні динамічного зв’язування та пошуку сервера під час виконання під час першого створення RPC. Під час першого виклику заглушки клієнта він зв’язується з сервером імен, щоб визначити транспортну адресу, на якій знаходиться сервер. Переплет складається з двох частин:
4. Семантика виклику, пов'язана з RPC
В основному він класифікується на наступні варіанти:
Характеристика RPC
Ось основні характеристики віддаленого виклику процедури:
- Викликана процедура знаходиться в іншому процесі, який, імовірно, знаходиться в іншій машині.
- Процеси не використовують спільний адресний простір.
- Параметри передаються лише значеннями.
- RPC виконується в середовищі серверного процесу.
- Він не пропонує доступ до середовища виклику процедури.
Переваги RPC
Ось деякі переваги або переваги RPC, наприклад:
- Метод RPC допомагає клієнтам спілкуватися з серверами за допомогою звичайного використання викликів процедур на мовах високого рівня.
- Метод RPC моделюється на основі локального виклику процедури, але процедура, швидше за все, буде виконана в іншому процесі та, як правило, на іншому комп’ютері.
- RPC підтримує моделі процесів і потоків.
- RPC робить внутрішній механізм передачі повідомлень прихованим від користувача.
- Зусилля, необхідні для переписування та повторної розробки коду, мінімальні.
- Віддалені виклики процедур можна використовувати для розподілу та локального середовища.
- Він фіксує багато рівнів протоколу для підвищення продуктивності.
- RPC забезпечує абстракцію. Наприклад, характер передачі повідомлень мережевого спілкування залишається прихованим від користувача.
- RPC дозволяє використовувати програми в розподіленому середовищі, а не тільки в локальному середовищі.
- Завдяки коду RPC зведено до мінімуму зусилля, пов’язані з переписуванням і розробкою.
- Процесно-орієнтовані та потоково-орієнтовані моделі, що підтримуються RPC.
Недоліки RPC
Ось деякі недоліки або недоліки використання RPC, наприклад:
- Виклик віддаленої процедури передає параметри лише за значеннями та значеннями вказівників, що заборонено.
- Час виклику (і повернення) віддаленої процедури (тобто накладні витрати) може бути значно меншим, ніж локальна процедура.
- Цей механізм дуже вразливий до збою, оскільки він включає систему зв’язку, іншу машину та інший процес.
- Концепція RPC може бути реалізована різними способами, що не може бути стандартним.
- Не забезпечує гнучкості в RPC для апаратної архітектури, оскільки вона здебільшого базується на взаємодії.
- Вартість процесу збільшується через віддалений виклик процедури.