Головна

Механізм виклику віддалених процедур - RPC | Принципи побудови протоколу. | подання даних | Як це працює? | client.c |

передача параметрів

  1. Алгоритм розрахунку параметрів схеми
  2. безоплатна передача
  3. Введення установок (опцій) команд
  4. Верхня передача в Стрибки
  5. Верхня передача двома руками
  6. Взаємозв'язок змісту основних параметрів особистості
  7. види параметрів

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

Зв'язування (binding)

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

- Знаходження віддаленого хоста з необхідним сервером

- Знаходження необхідного серверного процесу на даному хості

Для знаходження хоста можуть використовуватися різні підходи. Можливий варіант - створення так званого централізованого довідника, в якому хости анонсують свої сервери, і де клієнт при бажанні може вибрати відповідні для нього хост і адреса процедури.

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

Таким чином, коли клієнт хоче викликати віддалену процедуру, йому необхідно знати номери програми, версії і процедури, що надає необхідний сервіс.

Для передачі запиту клієнта також необхідно знати мережеву адресу хоста і номер порту, пов'язаний з програмою-сервером, що забезпечує необхідні процедури. Для цього використовується демон portmap (IM) (в деяких системах він називається rpcbind (IM)). Демон запускається на хості, який надає сервіс віддалених процедур, і використовує загальновідомий номер порту. При ініціалізації процесу-сервера він реєструє в portmap (IM) свої процедури і номери портів. Тепер, коли компанія HP вимагає знати номер порту для виклику конкретної процедури, він посилає запит на сервер portmap (IM), який, в свою чергу, або повертає номер порту, або перенаправляє запит безпосередньо сервера віддаленої процедури і після її виконання повертає клієнту відгук. У будь-якому випадку, якщо необхідна процедура існує, клієнт отримує від сервера portmap (IM) номер порту процедури, і подальші запити може робити вже безпосередньо на цей порт.

Обробка особливих ситуацій (exception)

Обробка особливих ситуацій при виклику локальних процедур не представляє особливої ??проблеми. UNIX забезпечує обробку помилок процесів таких як розподіл на нуль, звернення до неприпустимою області пам'яті і т. Д. У разі виклику віддаленої процедури ймовірність виникнення помилкових ситуацій збільшується. До помилок сервера і заглушок додаються помилки, пов'язані, наприклад, з одержанням помилкового мережевого повідомлення.

Наприклад, при використанні UDP в якості транспортного протоколу проводиться повторна передача повідомлень після певного тайм-ауту. Клієнту повертається помилка, якщо, через певне число спроб, відгук від сервера так і не було отримано. У разі, коли використовується протокол TCP, клієнту повертається помилка, якщо сервер обірвав TCP-з'єднання.

 



Програмний інтерфейс високого рівня. | семантика виклику
© um.co.ua - учбові матеріали та реферати