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

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

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






Ідея, що стоїть за 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; просмотров: 873. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

Признаки классификации безопасности Можно выделить следующие признаки классификации безопасности. 1. По признаку масштабности принято различать следующие относительно самостоятельные геополитические уровни и виды безопасности. 1.1. Международная безопасность (глобальная и...

Прием и регистрация больных Пути госпитализации больных в стационар могут быть различны. В цен­тральное приемное отделение больные могут быть доставлены: 1) машиной скорой медицинской помощи в случае возникновения остро­го или обострения хронического заболевания...

ПУНКЦИЯ И КАТЕТЕРИЗАЦИЯ ПОДКЛЮЧИЧНОЙ ВЕНЫ   Пункцию и катетеризацию подключичной вены обычно производит хирург или анестезиолог, иногда — специально обученный терапевт...

Условия, необходимые для появления жизни История жизни и история Земли неотделимы друг от друга, так как именно в процессах развития нашей планеты как космического тела закладывались определенные физические и химические условия, необходимые для появления и развития жизни...

Метод архитекторов Этот метод является наиболее часто используемым и может применяться в трех модификациях: способ с двумя точками схода, способ с одной точкой схода, способ вертикальной плоскости и опущенного плана...

Примеры задач для самостоятельного решения. 1.Спрос и предложение на обеды в студенческой столовой описываются уравнениями: QD = 2400 – 100P; QS = 1000 + 250P   1.Спрос и предложение на обеды в студенческой столовой описываются уравнениями: QD = 2400 – 100P; QS = 1000 + 250P...

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