Студопедия — Заглушки для клієнта і сервера.
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Заглушки для клієнта і сервера.






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

Навіть якщо read - це системний виклик, він проводиться шляхом поміщення параметрів в стек, як показано на рис. 8.б.Таким чином програміст і не взнає що робить read.

RPC організовує свою прозорість аналогічним чином. Якщо read є віддаленою процедурою, в бібліотеку поміщається спеціальна версія read, яка називається клієнтською заглушкою (client stub). Як і оригінальна функція, вона також викликається у відповідністю з послідовністю, що на рис. 8.б. Як і оригінал, вона також виробляє виклик локальної операційної системи, тільки на відмінну від оригінальної функції, клієнтська заглушка не просить дані у операційної системи. Замість цього вона упаковує параметри в повідомлення і шляхом виклику процедури sent вимагає переслати це повідомлення на сервер, як показано на рис. 9.Після виклику процедури sent клієнтська заглушка викликає процедуру receive, блокуючись до отримання відповіді.

Рис.9. Схема RPC між програмами клієнта і сервера.

 

Коли повідомлення приходить на сервер, операційна система сервера передає його серверній заглушці (server stub). Серверна заглушка еквівалентна клієнтській, але працює на стороні сервера. Це фрагмент коду, який перетворює запити які проходять по мережі і виклики локальних процедур. Зазвичай серверна заглушка запускає процедуру receive і блокується, очікуючи вхідних повідомлень. Після отримання повідомлення серверна заглушка розпаковує його, витягуючи параметри, і традиційним способом викликає процедуру сервера. З точки зору сервера це сприймається як прямий виклик клієнта - параметри і адреса повернення знаходяться в стеку, де вони повинні знаходитись. Сервер звичайним порядком повертає результат процедурі, яка робила виклик. Так наприклад, у випадку читання файлу сервер заповнює даними буфер, на який вказує другий параметр. Цей буфер - внутрішній буфер серверної заглушки.

Коли серверна заглушка після закінчення обробки виклику повертає управління програмі яка робила виклик, вона запаковує результати виконання (буфер) в повідомлення і викликає процедуру sent, щоб повернути їх клієнтові. Після цього серверна заглушка знову викликає процедуру receive, переходячи в режим очікування наступного повідомлення.

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

Підіб'ємо підсумки. При віддаленому виклику процедур відбувається наступні дії:

1. Процедура клієнта звичайним чином викликає клієнтську заглушку.

2. Клієнтська заглушка створює повідомлення і викликає локальну операційну систему.

3. Операційна система клієнта пересилає повідомлення віддаленій операційній системі.

4. Дистанційна операційна система передає повідомлення серверній заглушці.

5. Серверна заглушка витягує з повідомлення параметри і викликає сервер.

6. Сервер виконує виклик і повертає результати заглушці.

7. Серверна заглушка запаковує результати в повідомлення і викликає свою локальну операційну систему.

8. Операційна система сервера пересилає повідомлення операційній системі клієнта.

9. Операційна система клієнта приймає повідомлення і передає його клієнтській заглушці.

10. Заглушка витягує результати з повідомлення і передає їх клієнту.

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

 







Дата добавления: 2015-10-15; просмотров: 875. Нарушение авторских прав; Мы поможем в написании вашей работы!



Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Оценка качества Анализ документации. Имеющийся рецепт, паспорт письменного контроля и номер лекарственной формы соответствуют друг другу. Ингредиенты совместимы, расчеты сделаны верно, паспорт письменного контроля выписан верно. Правильность упаковки и оформления....

БИОХИМИЯ ТКАНЕЙ ЗУБА В составе зуба выделяют минерализованные и неминерализованные ткани...

Типология суицида. Феномен суицида (самоубийство или попытка самоубийства) чаще всего связывается с представлением о психологическом кризисе личности...

Схема рефлекторной дуги условного слюноотделительного рефлекса При неоднократном сочетании действия предупреждающего сигнала и безусловного пищевого раздражителя формируются...

Уравнение волны. Уравнение плоской гармонической волны. Волновое уравнение. Уравнение сферической волны Уравнением упругой волны называют функцию , которая определяет смещение любой частицы среды с координатами относительно своего положения равновесия в произвольный момент времени t...

Медицинская документация родильного дома Учетные формы родильного дома № 111/у Индивидуальная карта беременной и родильницы № 113/у Обменная карта родильного дома...

Studopedia.info - Студопедия - 2014-2024 год . (0.012 сек.) русская версия | украинская версия