
- •Указатели
- •2 Сервера, 2 клиента (один из них – средний и сервер (для клиента запрашиваемого данные) и клиент (для сервера, у которого он эти данные потом запрашивает).
- •2.4.1. Сохранность и синхронность
- •Во взаимодействиях
- •2.4. Связь посредством сообщений 127
- •128 Глава 2. Связь
- •2.4. Связь посредством сообщений 129
- •2.4. Связь посредством сообщений 131
- •Синхронизация
- •Алгоритм Беркли
- •Логические часы. Временные отметки Лэмпорта:
- •Отказоустойчивость
128 Глава 2. Связь
работу. Аналогично, у приложения, принимающего сообщения, также нет необходимости
находиться в рабочем состоянии во время отправки сообщения.
Система сохранной связи сравнима по принципу работы с почтовой системой
Pony Express (рис. 2.20). Отправка письма начинается с доставки его в местное
почтовое отделение. Почтовое отделение отвечает за сортировку почты в зависимости
от того, в какое следующее почтовое отделение на пути к конечному пункту
доставки ее нужно отправить. В нем также хранят соответствующие сумки
с почтой, отсортированной по месту назначения, PI ждут появления лошади со
своим всадником. В пункте назначения письма вновь сортируются в зависимости
от того, заберут ли их адресаты прямо здесь или нужно передать эти письма
следующему почтальону. Отметим, что письма никогда не теряются и не пропадают.
Несмотря на то что средства доставки, так же как и средства сортировки
писем, за прошедшую сотню лет изменились, принципы сортировки, хранения
и пересылки почты остались неизменными.
В противоположность сохранной связи при нерезиде71тной связи (transient
communication) сообщение хранится в системе только в течение времени работы
приложений, которые отправляют и принимают это сообщение. Точнее говоря
(если опять отталкиваться от рис. 2.20), мы имеем дело с такой ситуацией, когда
коммуникационный сервер, не имея возможности передать сообщение следующему
серверу или получателю, просто уничтожает его. Обычно все коммуникационные
службы транспортного уровня поддерживают только нерезидентную
связь. В этом случае коммуникационный сервер соответствует традиционному
маршрутизатору «получил — передал». Если маршрутизатор не в состоянии переслать
сообщение следующему маршрутизатору или принимающему хосту, сообщение
просто теряется.
Помимо сохранной и нерезидентной связи существует деление на синхронную
и асинхронную связь. Характерной чертой асинхронной связи (asynchronous
communication) является немедленное после отправки письма продолжение работы
отправителя. Это означает, что письмо сохраняется в локальном буфере передающего
хоста или на ближайшем коммуникационном сервере. В случае синхронной
связи (synchronous communication) отправитель блокируется до того момента.
2.4. Связь посредством сообщений 129
пока его сообщение не будет сохранено в локальном буфере принимающего хоста
или доставлено реальному получателю. Наиболее жесткая форма синхронного
взаимодействия предполагает, что отправитель остается блокированным и на
время обработки его сообщения получателем.
На практике применяются различные комбинации этих типов взаимодействия.
В случае сохранной асинхронной связи сообщение сохраняется в буфере либо
локального хоста, либо первого коммуникационного сервера. Этот вид связи
обычно используется в системах электронной почты. В случае сохранной синхронной
связи сообщения хранятся только на принимающем хосте. Отправитель
блокируется до момента сохранения сообщения в буфере получателя. Отметим,
что приложение, принявшее сообщение, не обязано сохранять его на своем локальном
хосте. «Усеченный» вариант сохранной синхронной связи состоит в том,
что отправитель блокируется до момента сохранения сообщения на коммуникационном
сервере, соединенном с принимающим хостом.
Нерезидентная асинхронная связь характерна для служб дейтаграмм транспортного
уровня, таких как UDP. Когда приложение отправляет сообщение, оно
временно сохраняется в локальном буфере передающего хоста, после чего отправитель
немедленно продолжает работу. Параллельно коммуникационная система
направляет сообщение в точку, из которой, как ожидается, оно сможет достигнуть
места назначения, возможно, с сохранением в локальном буфере. Если
получатель в момент прихода сообщения на принимающий хост этого получателя
неактивен, передача обрывается. Другой пример нерезидентной асинхронной
связи — асинхронный вызов RPC.
Нерезидентная синхронная связь существует в различных вариантах. В наиболее
слабой форме, основанной на подтверждениях приема сообщений, отправитель
блокируется до тех пор, пока сообщение не окажется в локальном буфере
принимающего хоста. После получения подтверждения отправитель продолжает
свою работу. В ориентированной на доставку нерезидентной синхронной связи
отправитель блокируется до тех пор, пока сообщение не будет доставлено получателю
для дальнейшей обработки. Мы рассматривали эту форму синхронного
поведения при обсуждении асинхронных вызовов RPC. При асинхронных вызовах
RFC клиент синхронР13ируется с сервером, ожидая, пока его запрос будет
принят на дальнейшую обработку. Наиболее жесткая форма — ориентированная
на ответ нерезидентная синхронная связь — предполагает блокировку отправителя
до получения ответного сообщения с другой стороны, как в поведении запрос-
ответ при взаимодействии клиент-сервер. Эта схема характерна также для
механизмов RFC и RMI.
Все сочетания сохранности и синхронности при взаимодействиях показаны
на рис. 2.21. Другая, но схожая классификация обсуждается в [445].
До недавнего времени множество распределенных систем поддерживали
только ориентированную на ответ нерезидентную синхронную связь, реализованную
через вызов удаленных процедур или через обращения к удаленным объектам.
После того как стало ясно, что этот вид связи не всегда самый подходящий,
были созданы средства для менее жестких форм нерезидентной синхронной связи,
таких как асинхронные вызовы RFC (см. рис. 2.13) или отложенные синхронные
операции.
В корне отличный подход применен в системах передачи сообщений, использующих
как отправную точку нерезидентную асинхронную связь и в качестве
дополнительной возможности содержащих средства синхронной связи. Однако
во всех вариантах передачи сообщений взаимодействия также предполагаются
прозрачными. Другими словами, задействуются только те средства связи, кото-