Віддалений виклик процедури (RPC) є потужною технікою конструювання розподілені клієнт-серверні програми . Він заснований на розширенні звичайного локального виклику процедури, щоб викликана процедура не повинна існувати в тому самому адресному просторі, що і процедура, що викликає . Ці два процеси можуть бути в одній системі або в різних системах із мережею, що їх з’єднує.
Під час виклику віддаленої процедури:

1. Середовище виклику призупиняється, параметри процедури передаються через мережу в середовище, де процедура має виконуватися, і процедура виконується там.
арійський хан
2. Коли процедура завершується і дає свої результати, її результати передаються назад у викликаюче середовище, де виконання відновлюється так, ніби повертається зі звичайного виклику процедури.
ПРИМІТКА: RPC особливо добре підходить для клієнт-сервер (наприклад, запит-відповідь) взаємодія, в якій відбувається потік кер чергується між абонентом і абонентом . Концептуально, клієнт і сервер не виконуються одночасно. Замість цього потік виконання переходить від абонента до викликаного, а потім назад.
Робота RPC

Під час RPC виконуються наступні кроки:
- Клієнт викликає a процедура заглушки клієнта , передаючи параметри звичайним способом. Заглушка клієнта знаходиться у власному адресному просторі клієнта.
- Заглушка клієнта маршали (пакет) параметри в повідомлення. Маршалінг включає перетворення подання параметрів у стандартний формат і копіювання кожного параметра в повідомлення.
- Клієнтська заглушка передає повідомлення на транспортний рівень, який надсилає його на віддалену серверну машину.
- На сервері транспортний рівень передає повідомлення на заглушку сервера, яка demarshalls (розпакувати) параметри та викликає потрібну програму сервера за допомогою механізму звичайного виклику процедури.
- Після завершення процедури сервера він повертається до заглушки сервера (наприклад, за допомогою повернення звичайного виклику процедури) , який маршалює значення, що повертаються, у повідомлення. Потім заглушка сервера передає повідомлення на транспортний рівень.
- Транспортний рівень надсилає повідомлення результату назад до транспортного рівня клієнта, який повертає повідомлення до заглушки клієнта.
- Заглушка клієнта демаршує параметри, що повертаються, і виконання повертається до викликаючого.
Основні міркування щодо проектування та впровадження систем RPC:
- Безпека: Оскільки RPC включає зв’язок через мережу, безпека є головною проблемою. Щоб запобігти несанкціонованому доступу та захистити конфіденційні дані, необхідно застосувати такі заходи, як автентифікація, шифрування та авторизація. Масштабованість: зі збільшенням кількості клієнтів і серверів продуктивність системи RPC не повинна знижуватися. Методи балансування навантаження та ефективне використання ресурсів важливі для масштабованості. Відмовостійкість: система RPC має бути стійкою до збоїв мережі, збоїв сервера та інших несподіваних подій. Такі заходи, як резервування, відновлення після відмови та плавна деградація, можуть допомогти забезпечити відмовостійкість. Стандартизація: доступно кілька інфраструктур і протоколів RPC, і важливо вибрати стандартизований і загальноприйнятий, щоб забезпечити взаємодію та сумісність між різними платформами та мовами програмування. Налаштування продуктивності: точне налаштування системи RPC для досягнення оптимальної продуктивності є важливим. Це може включати оптимізацію мережевого протоколу, мінімізацію даних, що передаються через мережу, і зменшення затримки та накладних витрат, пов’язаних із викликами RPC.
ПРОБЛЕМИ RPC :
Питання, які необхідно вирішити:
.06 як дріб
1. RPC Runtime:
Система виконання RPC — це бібліотека процедур і набір служб, які обробляють мережеві комунікації, які лежать в основі механізму RPC. Під час виклику RPC обробляється код систем виконання на стороні клієнта та на стороні сервера зв’язування, встановлення зв’язку за відповідним протоколом, передача даних виклику між клієнтом і сервером і обробка помилок зв’язку.
2. Заглушка:
Функція заглушки полягає в тому, щоб забезпечують прозорість коду програми, написаного програмістом .
- На стороні клієнта заглушка обробляє інтерфейс між викликом локальної процедури клієнта та системою виконання, сортуючи та демаршалізуючи дані, викликаючи протокол виконання RPC і, за запитом, виконуючи деякі кроки зв’язування. На стороні сервера заглушка забезпечує подібний інтерфейс між системою виконання та процедурами локального менеджера, які виконуються сервером.
3. Зв'язка: як клієнт дізнається, кому телефонувати та де знаходиться служба?
Найбільш гнучке рішення полягає у використанні динамічного зв’язування та пошуку сервера під час виконання під час першого створення RPC. Під час першого виклику заглушки клієнта він зв’язується з сервером імен, щоб визначити транспортну адресу, на якій знаходиться сервер.
Обв'язка складається з двох частин:
- Ми:
- Розташування:
- Сервер, який пропонує послугу, експортує для неї інтерфейс. Експорт інтерфейсу реєструє його в системі, щоб клієнти могли його використовувати. Клієнт повинен імпортувати (експортований) інтерфейс перед початком зв’язку.
4. Семантика виклику, пов’язана з RPC:
В основному він класифікується на такі варіанти:
- Повідомлення із запитом на повторну спробу –
Чи повторювати спробу надсилання повідомлення із запитом, коли сервер вийшов з ладу або одержувач не отримав повідомлення. Фільтрування дублікатів –
Видаліть повторювані запити на сервер. Повторна трансляція результатів –
Щоб повторно надіслати втрачені повідомлення без повторного виконання операцій на стороні сервера.
ПЕРЕВАГИ:
вибрати з кількох таблиць у sql
- RPC забезпечує АБСТРАКЦІЯ тобто передавання повідомлень у мережевому спілкуванні приховано від користувача.
- RPC часто пропускає багато рівнів протоколу для підвищення продуктивності. Навіть невелике підвищення продуктивності є важливим, оскільки програма може часто викликати RPC.
- RPC дозволяє використовувати програми в розподіленому середовищі, а не тільки в локальному середовищі.
- За допомогою RPC-коду зусилля, пов’язані з переписуванням/розробкою, зведені до мінімуму.
- Процесно-орієнтовані та потоково-орієнтовані моделі, що підтримуються RPC.
Література:
- https://web.cs.wpi.edu/~cs4514/b98/week8-rpc/week8-rpc.html
- https://users.cs.cf.ac.uk/Dave.Marshall/C/node33.html
- Комп’ютерні мережі: підхід зверху вниз від FOROUZAN