Главная страница

Архитектура распределенных систем программного обеспечения. Учебное пособие издано при поддержке образовательной программы Формирование


Скачать 1 Mb.
НазваниеУчебное пособие издано при поддержке образовательной программы Формирование
АнкорАрхитектура распределенных систем программного обеспечения
Дата13.01.2023
Размер1 Mb.
Формат файлаdocx
Имя файлаmdwrbook.docx
ТипУчебное пособие
#885216
страница4 из 36
1   2   3   4   5   6   7   8   9   ...   36

Способы взаимодействия в распределенных системах


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


период блокировки
взаимодействию. Сервер, получив запрос от одного из своих клиентов, может, обрабатывая запрос, работать параллельно другим своим клиентам, синхронность же относится к работе запрашивающего обслуживания клиента и того процесса в сервере, который этот запрос обрабатывает. Если работа клиента на время обработки запроса сервером приостанавливается – это синхронное взаимодействие. Если вместо блокировки клиент после выдачи запроса выполняет другие действия – это взаимодействие асинхронное.






Рис.1.3.Синхронныйвызовтребуетзаблокироватьвызывающийпроцессдополучения ответа.

Синхронное взаимодействие (Рис. 1.3) обладает преимуществом простоты. Обрабатывая запрос, сервер может быть уверен, что состояние клиента во время этой обработки не изменится. В результате синхронное взаимодействие применяется в подавляющем большинстве систем промежуточного слоя. Эти преимущества являются одновременно и недостатками. Синхронное взаимодействие приводит к существенным потерям времени, а значит и производительности. Ожидающий процесс может, вообще, быть удален из оперативной памяти, что приведет к еще большим потерям времени.

Однако не всегда требуется работать синхронно. Один из примеров асинхронной связи – электронная почта. Асинхронные распределенные системы строятся аналогичным образом. Вместо вызова и ожидания ответа выполняется отправка сообщения (Рис. 1.4), а через некоторое время программа может проверить, прибыл ли ответ. Это позволяет программе выполнять другие работы и делает ненужной какую-либо координацию между сторонами взаимодействия.


процесс остается активным







поместить в очередь







выбрать из очереди



















выбрать из очереди







поместить в очередь



очередь
















очередь

Рис.1.4.Асинхронныйвызовпозволяетвызывающемупроцессупродолжитьработу, пока его запрос обрабатывается.

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

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

На практике применяются различные комбинации этих типов взаимодействия. В случае сохранной асинхронной связи(Рис. 1.5-а) сообщение сохраняется в буфере сервера. Именно этот вид связи используется в системах электронной почты. В случае сохраннойсинхроннойсвязи(Рис.1.5-б) сообщения хранятся только на принимающем прикладном комплексе. Отправитель блокируется на все время, пока сообщение не попадет в этот буфер. Усеченный вариант сохранной синхронной связи заключается в том, что блокировка отправителя осуществляется до доставки сообщения серверу получателя.



Рис.1.5.Сохраннаяасинхроннаяисохраннаясинхроннаясвязьмежду подсистемами А и Б.

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




Рис.1.6.Несохраннаяасинхроннаясвязьинесохраннаясинхроннаясвязьмежду подсистемами А и Б распределенной системы, ориентированная на прием.

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

сообщений (Рис. 1.6-б), отправитель блокируется до тех пор, пока сообщение не окажется в локальном буфере принимающего комплекса. После получения подтверждения отправитель продолжает свою работу. Другая форма этой связи, ориентированная на доставку(Рис. 1.7-а), предполагает, что отправитель должен быть заблокирован до момента доставки сообщения самому получателю, который продолжит свою часть работы по его обработке. Наиболее жесткий вариант синхронной несохранной связи, ориентированный на ответ(Рис. 1.7-б), предполагает блокировку отправителя до получения ответного сообщения с другой стороны, как при работе систем клиент/сервер в режиме запрос/ответ. Эта же схема взаимодействия характерна и для систем, построенных на базе моделей удаленного вызова процедуры и удаленного обращения к методу. Каждый вид связи находит свое применение в распределенных системах на том или ином уровне составляющих их компонентов.




Рис.1.7.ВидынесохраннойсинхроннойсвязимеждуподсистемамиАиБ распределенной системы.
  1. 1   2   3   4   5   6   7   8   9   ...   36


написать администратору сайта