Протокол віддаленого виклику процедури (RPC) у розподіленій системі
Що таке RPC?
Віддалений процедурний виклик (RPC) це техніка міжпроцесного спілкування. Повною формою RPC є віддалений виклик процедури. Він використовується для додатків клієнт-сервер. Механізми RPC використовуються, коли комп’ютерна програма змушує процедуру або підпрограму виконуватися в іншому адресному просторі, який кодується як звичайний виклик процедури без спеціального кодування програмістом деталей для віддаленої взаємодії.
Цей виклик процедури також керує транспортним протоколом низького рівня, таким як протокол дейтаграм користувача, Transmission Протокол керування/Інтернет-протокол тощо. Використовується для передачі даних повідомлень між програмами.
Типи RPC
Є три типи RPC:
- Зворотний виклик RPC
- Трансляція RPC
- Пакетний режим RPC
Зворотний виклик RPC
Цей тип RPC забезпечує парадигму P2P між процесами-учасниками. Це допомагає процесу бути як клієнтськими, так і серверними службами.
Функції зворотного виклику RPC:
- Дистанційно оброблені проблеми інтерактивної програми
- Пропонує сервер з обслуговуванням клієнтів
- Зворотний виклик змушує процес клієнта чекати
- Керуйте тупиками зворотного виклику
- Це полегшує однорангову парадигму між процесами-учасниками.
Трансляція RPC
Широкомовний RPC - це запит клієнта, який транслюється в мережі та обробляється всіма серверами, які мають метод обробки цього запиту.
Функції Broadcast RPC:
- Дозволяє вказати, що повідомлення запиту клієнта має транслюватися.
- Ви можете оголосити широкомовні порти.
- Це допомагає зменшити навантаження на фізичну мережу
Пакетний режим RPC
Пакетний режим RPC допомагає поставити в чергу, розділити RPC-запити в буфері передачі на стороні клієнта, а потім відправити їх у мережі одним пакетом на сервер.
Функції RPC в пакетному режимі:
- Це мінімізує накладні витрати, пов’язані з надсиланням запиту, оскільки надсилає їх через мережу одним пакетом на сервер.
- Цей тип протоколу RPC ефективний лише для програми, яка потребує нижчої швидкості викликів.
- Для цього потрібен надійний протокол передачі.
RPC Archiтектура
Архітектура RPC складається з п'яти компонентів програми:
- Клієнт
- Заглушка клієнта
- RPC Runtime
- Заглушка сервера
- сервер
Як працює RPC?
У процесі RPC виконуються наступні кроки:
Крок 1) Клієнт, заглушка клієнта та один екземпляр середовища виконання RPC виконуються на клієнтській машині.
Крок 2) Клієнт запускає процес заглушки клієнта, передаючи параметри звичайним способом. Заглушка клієнта зберігається у власному адресному просторі клієнта. Він також просить локальну RPC Runtime надіслати назад на заглушку сервера.
Крок 3) На цьому етапі RPC, до якого користувач отримує доступ, виконуючи звичайний локальний процедурний калібр. RPC Runtime керує передачею повідомлень між мережею через клієнта та сервер. Він також виконує роботу з повторної передачі, підтвердження, маршрутизації та шифрування.
Крок 4) Після завершення серверної процедури він повертається до серверної заглушки, яка пакує (маршалює) повернуті значення в повідомлення. Потім заглушка сервера надсилає повідомлення назад на транспортний рівень.
Крок 5) На цьому кроці транспортний рівень надсилає повідомлення результату на транспортний рівень клієнта, який повертає повідомлення на заглушку клієнта.
Крок 6) На цьому етапі заглушка клієнта демаршує (розпаковує) параметри, що повертаються, у результуючому пакеті, і процес виконання повертається до абонента.
Характеристика RPC
Ось основні характеристики RPC:
- Викликана процедура знаходиться в іншому процесі, який, імовірно, знаходиться в іншій машині.
- Процеси не використовують спільний адресний простір.
- Параметри передаються лише значеннями.
- RPC виконується в середовищі серверного процесу.
- Він не пропонує доступ до середовища виклику процедури.
Особливості RPC
Ось важливі функції RPC:
- Простий синтаксис виклику
- Пропонує відому семантику
- Надайте чітко визначений інтерфейс
- Він може обмінюватися даними між процесами на одній або різних машинах
Переваги RPC
Ось плюси/переваги RPC:
- Метод RPC допомагає клієнтам спілкуватися з серверами за допомогою звичайного використання викликів процедур на мовах високого рівня.
- Метод RPC моделюється на основі локального виклику процедури, але викликана процедура, швидше за все, буде виконана в іншому процесі та, як правило, на іншому комп’ютері.
- RPC підтримує моделі процесів і потоків.
- RPC робить внутрішній механізм передачі повідомлень прихованим від користувача.
- Зусилля, необхідні для переписування та повторної розробки коду, мінімальні.
- Віддалені виклики процедур можна використовувати для цілей розподіленого та локального середовища.
- Він фіксує багато рівнів протоколу для підвищення продуктивності.
- RPC забезпечує абстракцію. Наприклад, характер передачі повідомлень мережевого спілкування залишається прихованим від користувача.
- RPC дозволяє використовувати програми в розподіленому середовищі, а не тільки в локальному середовищі.
- З кодом RPC зведено до мінімуму зусилля, пов’язані з переписуванням і розробкою.
- Підтримка процесно-орієнтованих і потоково-орієнтованих моделей через RPC.
Недоліки RPC
Ось мінуси/недоліки використання RPC:
- Виклик віддаленої процедури передає параметри лише за значеннями та значеннями вказівників, що заборонено.
- Час виклику (і повернення) віддаленої процедури (тобто накладні витрати) може бути значно меншим, ніж для локальної процедури.
- Цей механізм дуже вразливий до збою, оскільки він включає систему зв’язку, іншу машину та інший процес.
- Концепція RPC може бути реалізована різними способами, що не може бути стандартним.
- Не пропонує жодної гнучкості в RPC для апаратної архітектури, оскільки здебільшого базується на взаємодії.
- Вартість процесу збільшується через віддалений виклик процедури.
Підсумки
- Віддалений виклик процедури – це міжпроцесовий зв’язок техніка
- Три типи RPC: 1) RPC зворотного виклику, 2) Broadcast RPC і 3) RPC у пакетному режимі
- Архітектура RPC складається з п’яти компонентів програми: 1) клієнт 2) клієнтська заглушка 3) RPC Runtime 4) серверна заглушка та 5) сервер
- У методі RPC процеси не використовують спільний адресний простір
- RPC пропонує простий синтаксис виклику та відому семантику
- Метод RPC допомагає клієнтам спілкуватися з серверами за допомогою звичайного використання викликів процедур на мовах високого рівня.
- Найбільшим недоліком методу RPC є те, що він дуже вразливий до збоїв, оскільки включає систему зв’язку, іншу машину та інший процес.