Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Обмен сообщениями. Сообщение – это блок информации, отформатированный процессом-отправителем так, чтобы он был понятен процессу получателю




Сообщение – это блок информации, отформатированный процессом-отправителем так, чтобы он был понятен процессу получателю. Клиент посылает сообщение-запрос, сервер реагирует с помощью сообщения-ответа.

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

Заголовок в свою очередь содержит:

· Адреса процесса-отправителя и процесса-получателя,

· Последовательный номер, или идентификатор сообщения, который используется для выявления потерянных сообщений,

· поле типа данных,

· поле длины набора данных в байтах.

Процессы взаимодействуют посредством передачи примитивов (сообщений) send и receive. На рис. 5.3 представлена схема компонентов сетевого ПО, участвующих во взаимодействии процессов.

Рис. 5.3 – Взаимодействие процессов посредством передачи сообщений

Синхронизация процессов обмена сообщениями определяется типом примитивов send и receive, которые могут быть блокирующими (рис. 5.4 а) и неблокирующими (рис.5.4 б).

Рис. 5.4 – Синхронизация процессов обмена сообщениями при использовании

а) блокирующих б) неблокирующих примитивов

При использовании блокирующего примитива send процесс-отправитель останавливает свою работу до получения сообщения-подтверждения от процесса получателя. При этом может возникнуть так называемый клинч (clinch - смертельное объятие) – ситуация, когда сообщение утеряно или процесс-получатель завершился. Для устранения возможного клинча используется механизм тайм-аута.

При использовании неблокирующих примитивов send и receive управление возвращается процессу-отправителю немедленно.

Если оба примитива send и receive блокирующие, то процессы взаимодействуют синхронно. В противном случае процессы взаимодействую асинхронно.

Вызов удаленных процедур (Remote Procedure Call, RPC) – технология распределенных вычислений, функции которой реализуются в ОС в виде надстройки над системой обмена сообщениями.

При использовании такой надстройки механизм передачи управления и данных внутри программы, выполняющейся на одном компьютере, распространяется на передачу управления и данных через сеть. Механизм RPC эффективен, если передается относительно малое количество данных, время ответа невелико, а его вычисление трудоемко.

В реализации RPC участвуют два процесса, выполняемые на разных компьютерах – вызывающий (на клиентском компьютере) и вызываемый (на сервере). Данные процессы имеют разные адресные пространства и обязательно используют нижележащую систему обмена сообщениями, хотя это обстоятельство должно быть скрыто от пользователя.

Для пользователя сети вызов удаленной процедуры должен выглядеть так же, как вызов локальной процедуры (рис. 5.5).

Рис. 5.5 – Вызов удаленных процедур

В библиотеку процедур клиентского компьютера помещается другая версия процедуры – клиентский стаб (stub – заглушка). Он формирует сообщение, содержащее имя вызываемой процедуры и ее параметры. Это называется упаковкой параметров. На удаленном компьютере помещается серверный стаб.

Существуют два варианта генерации стабов: вручную и автоматически с помощью языка определения интерфейсов IDL (Interface definition Language).




Поделиться с друзьями:


Дата добавления: 2014-01-20; Просмотров: 521; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.013 сек.