Файл: Учебное пособие издано при поддержке образовательной программы Формирование.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 05.05.2024
Просмотров: 261
Скачиваний: 0
СОДЕРЖАНИЕ
Введение в распределенные системы программного обеспечения 1
Способы взаимодействия в распределенных системах
Основные механизмы в распределенных системах
Принципы реализации удаленного вызова процедур
Протоколы подтверждения транзакции
Транзакционный удаленный вызов процедуры
Объектно-ориентированный подход к распределенной обработке информации
Динамический выбор и динамическое обращение к службе
Взаимодействие с системой очередей сообщений
Модель взаимодействия "публикация/подписка"
Модель комплексно интегрированного предприятия
Поддержка презентационного слоя
Основные технологии сетевых служб
Внешняя архитектура сетевых служб
Инфраструктура координационных протоколов
Основные элементы системной поддержки композиции сетевых служб
расширенную поддержку асинхронной сохранной связи. Смысл этих систем заключается в том, что они предоставляют возможность промежуточного хранения сообщений, не требуя активности во время передачи ни от отправителя, ни от получателя. Их существенное отличие от поддержки транспортного уровня состоит в том, что системы очередей сообщений обычно предназначены для поддержки обмена сообщениями, занимающего минуты, а не секунды или миллисекунды.
- 1 ... 9 10 11 12 13 14 15 16 ... 36
Модель очередей сообщений
При описании модели часто используются термины "клиент" и "сервер", но при обмене сообщениями это различие исчезает, по крайней мере, с точки зрения системной платформы. Разница между "клиентом" и "сервером" ("поставщиком службы") имеет чисто прикладной характер, и может ощущаться только теми, кто знаком с семантикой сообщений и процесса обмена ими. Это контрастирует с формами взаимодействия, описанными ранее, где объекты, действовавшие как клиенты, обращались к методам, предоставляемым другими объектами, действовавшими как серверы.
Модель очередей сообщений формирует основу, на которой разрабатываются многие полезные концепции и свойства, существенно упрощая разработку приложений, способных взаимодействовать друг с другом, и предоставляя поддержку для управления ошибочными ситуациями и системными сбоями. Среди таких концепций одна из наиболее важных абстракций является абстракция "очередь сообщений".
Основная идея, лежащая в основе систем очередей сообщений, состоит в том, что приложения общаются друг с другом путем помещения сообщений в специальные очереди. Очереди обычно идентифицируются по именам, обычно они связаны с определенным получателем. Эти сообщения передаются по цепочке коммуникационных серверов и, в конце концов, достигают места назначения, даже в том случае, если получатель в момент отправки был неактивен. Как только получатель освободится для обработки нового сообщения, он обратится к нужной функции системы MOM и извлечет из очереди первое сообщение (Рис. 2.16). Очередь может быть прочитана только связанным с ней приложением, при этом несколько приложений могут совместно использовать одну очередь.
Важный момент в системах очередей сообщений состоит в том, что отправитель обычно в состоянии гарантировать только попадание сообщения в очередь получателя, не гарантируя времени попадания. Какие-либо гарантии, что сообщение будет прочитано и обработано получателем также не даются, это зависит только от самого получателя.
После того, как сообщение
попало в очередь, оно будет оставаться в ней до удаления, независимо от того, активен его отправитель или его получатель.
Рис.2.16.Модельсистемыочередей сообщений.
Сообщения должны быть правильно адресованы и могут содержать любые данные. Обычно адресация осуществляется путем указания уникального системного имени очереди, в которую направляется сообщение. В некоторых случаях размер сообщения может быть ограничен, но базовая система в состоянии разбивать большие сообщения на части и собирать их обратно в единое целое абсолютно прозрачно для приложений.
Большинство систем очередей сообщений поддерживают процесс вставки дескриптора функции обратного вызова, которая автоматически вызывается при попадании сообщения в очередь. Обратные вызовы (сервер вызывает клиента) используются для автоматического запуска процесса, который будет забирать сообщения из очереди, если ни один такой процесс не был запущен заранее.
Слабая связанность отправителя и получателя сообщений имеет много преимуществ. Получатели имеют полную свободу выбора момента обработки сообщений. Извлечение сообщений из очереди может производиться только тогда, когда получатель может или должен их обработать. Важным следствием из этого является то, что системы очередей устойчивы к системным сбоям, поскольку от них не требуется поддерживать работоспособность в момент отправки сообщения. Если приложение выключено или не имеет возможности получать сообщения, они будут просто накапливаться в очереди сообщений, а после включения приложения в работу будут доставлены по назначению.
Помещенные в очередь сообщения могут иметь связанные с ними даты или временные интервалы действия. Если сообщение не извлекается из очереди до указанного времени, оно уничтожается. Очереди могут быть разделяемыми среди нескольких приложений. Этот подход часто используется, когда нужно иметь несколько приложений, обращающихся за одной и той же услугой, что позволяет распределить между ними нагрузку и повысить производительность. Система контролирует доступ к очереди и дает гарантию, что сообщение попадет только одному
приложению.
- 1 ... 10 11 12 13 14 15 16 17 ... 36
Взаимодействие с системой очередей сообщений
Подход, применяемый в системах очередей, принципиально асинхронный. Обычно системы очередей предоставляют пользователям прикладной программный интерфейс, который удобен для использования в некотором конкретном программном окружении. Например, программисты, использующие язык Java, могут использовать стандартный интерфейс Java Message Service (JMS): отправители (получатели) сначала привязываются к очереди, то есть идентифицируют очередь, в которую они хотят послать (из которой хотят получить) сообщение, указывая имя очереди, а затем могут приступать к отправке (получению) сообщений.
JMS – это прикладной интерфейс, его реализация возлагается на пользователей или поставщиков готовых систем. Не все МОМ-системы совместимы со службой JMS, которая может быть реализована как отдельная система или модуль внутри сервера приложений.
-
Транзакционные очереди
В рамках абстракции транзакционных очередей системы очередей дают гарантию, что отправленное сообщение обязательно будет доставлено приложению получателя один и только один раз, даже если сама система обмена сообщениями выйдет из строя в период между объявлением о сообщении и его доставкой. Сообщения записываются в сохранную память и, следовательно, становятся снова доступными, когда система снова становится работоспособной.
В дополнение к гарантированной доставке транзакционные очереди обеспечивают защиту от сбоев. Получатель может объединять набор чтений и уведомлений в одном атомарном действии. Атомарное действие объединяет в себе набор операций, обладающий свойством "все-или- ничего": либо все операции набора выполняются успешно, либо не выполняется ни одна операция. В случае возникновения сбоя в момент, когда еще не все операции из атомарного набора выполнились, происходит
откат всех завершенных действий, что соответствует обратному помещению сообщения в очередь, так что оно может быть снова прочитано тем же приложением, либо каким-нибудь другим. С точки зрения отправителя транзакционность очереди означает, что сообщения,