Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Сохранная связь на основе сообщений↑ ⇐ ПредыдущаяСтр 10 из 10 Содержание книги
Поиск на нашем сайте
Ну вот мы и подошли к важному классу ориентированных на сообщения служб промежуточного уровня, известных как системы очередей сообщений {message-queuing systems), или ориентированный на сообщения промежуточный уровень {Message-Oriented Middleware, MOM). Системы очередей сообщений создают расширенную поддержку асинхронной сохранной связи. Смысл этих систем заключается в том, что они предоставляют возможность промежуточного хранения сообщений, не требуя активности во время передачи сообщений ни от отправителя, ни от получателя. Их существенное отличие от сокетов Беркли и интерфейса MPI состоит в том, что системы очередей сообщений обычно предназначены для поддержки обмена сообщениями, занимающего минуты, а не секунды или миллисекунды. В начале мы рассмотрим общий подход к системам очередей сообщений, а закончим этот пункт сравнением их с традиционными системами, под которыми мы понимаем системы электронной почты Интернета. Модель очередей сообщений Основная идея, лежащая в основе систем очередей сообщений, состоит в том, что приложения общаются между собой путем помещения сообщений в специальные очереди. Эти сообщения передаются по цепочке коммуникационных серверов и в конце концов достигают места назначения, даже в том случае, если получатель в момент отправки сообщения был неактивен. На практике большинство коммуникационных серверов напрямую соединены друг с другом. Другими словами, сообщение обычно пересылается непосредственно на сервер получателя. В принципе каждое приложение имеет собственную очередь, в которую могут посылать сообщения другие приложения. Очередь может быть прочитана только связанным с ней приложением, при этом несколько приложений могут совместно использовать одну очередь. Важный момент в системах очередей сообщений состоит в том, что отправитель обычно в состоянии гарантировать только попадание сообщения — рано или поздно — в очередь получателя. Никакие гарантии относительно того, будет ли сообщение действительно прочитано, невозможны, это полностью определяется поведением получателя. Подобная семантика определяет слабосвязанное взаимодействие. Именно поэтому у получателя нет необходимости быть активным в то время, когда сообщение пересылается в его очередь. Точно так же нет нужды и в активности отправителя во время обработки сообщения получателем. Отправитель и получатель могут выполняться абсолютно независимо друг от друга. На самом деле, как только сообщение поставлено в очередь, оно будет оставаться в ней до удаления, независимо от того, активен его отправитель или его получатель. Это, в зависимости от состояния отправителя и получателя, дает нам четыре комбинации, показанные на рис. 2.23.
На рис. 2.23, а как отправитель, так и получатель в ходе всего процесса передачи сообщения находятся в активном состоянии. На рис. 2.23, б активен только отправитель, в то время как получатель отключен, то есть находится в состоянии, исключающем возможность доставки сообщения. Тем не менее отправитель все же в состоянии отправлять сообщения. Комбинация из активного получателя и пассивного отправителя приведена на рис. 2.23, в. В этом случае получатель может прочитать сообщения, которые были посланы ему ранее, наличия работающих отправителей этих сообщений при этом совершенно не требуется. И наконец, на рис. 2.23, г мы наблюдаем такую ситуацию, когда система сохраняет и, возможно, передает сообщения, даже при неработающих отправителе и получателе. Сообщения в принципе могут содержать любые данные. Единственно важный момент — они должны быть правильно адресованы. На практике адресация осуществляется путем предоставления уникального в пределах системы имени очереди, в которую направляется письмо. В некоторых случаях размер сообщений может быть ограничен, несмотря на то, что, возможно, базовая система в состоянии разбивать большие сообщения на части и собирать их обратно в единое целое абсолютно прозрачно для приложений. Эффект подобного подхода — в том, что базовый интерфейс, предоставляемый приложениям, в результате можно сделать потрясающе простым. Это иллюстрирует табл. 2.3.
Примитив put вызывается отправителем для передачи сообщения базовой системе, где оно будет помещено в соответствующую очередь. Как мы объясняли, это неблокирующий вызов. Примитив get — это блокирующий вызов, посредством которого авторизованный процесс может извлечь самое старое сообщение из определенной очереди. Процесс блокируется только в том случае, если очередь пуста. Варианты этого вызова включают в себя поиск в очереди определенного сообщения, например, с использованием приоритетов или образца для сравнения. Неблокирующий вариант представлен примитивом poll. Если очередь пуста или искомое сообщение не найдено, вызвавший этот примитив процесс продолжает свою работу. И, наконец, большинство систем очередей сообщений поддерживают также процесс вставки дескриптора функции обратного вызова {callback function), которая автоматически вызывается при попадании сообщения в очередь. Обратные вызовы могут быть также использованы для автоматического запуска процесса, который будет забирать сообщения из очереди, если ни один процесс в настоящее время не запущен. Подобное поведение обычно реализуется при помощи демона на стороне получателя, который постоянно проверяет очередь на наличие входящих сообщений и поступает в соответствии с результатами проверки. Общая архитектура системы очередей сообщений Давайте теперь рассмотрим поближе, как выглядит обобщенная система очередей сообщений. Одно из первых ограничений, которые мы сделаем, будет состоять в том, что сообщения могут быть помещены только в локальные очереди отправителя, то есть в очереди, находящиеся на той же самой машине или, во всяком случае, не дальше, чем на соседней, то есть машине, входящей в ту же локальную сеть. Подобная очередь называется исходящей очередью {source queue). Аналогично, прочитаные сообщения могут быть только из локальных очередей. Сообщение, помещенное в очередь, содержит описание очереди назначения {destination queue), в которую оно должно быть перемещено. В обязанности системы очередей сообщений входит предоставление очередей отправителям и получателям и обеспечение перемещения сообщений из исходящих очередей в очереди назначения. Важно понимать, что набор очередей разнесен по множеству машин. Соответственно, для того чтобы система очередей сообщений могла перемещать сообщения, она должна поддерживать отображение очередей на сетевые адреса. На практике это означает, что она должна поддерживать базу данных (возможно, распределенную) имен очередей {queue names) в соответствии с их сетевым местоположением, как показано на рис. 2.24. Отметим, что это отображение полностью анало-
2.4. Связь посредством сообщений 139 гично использованию системы доменных имен (DNS) для электронной почты Интернета. Так, например, для отсылки почты на логический почтовый адрес steen@cs.vu.nl почтовая система запрашивает у DNS сетевой адрес (то есть IP-адрес) почтового сервера получателя, чтобы затем использовать его для передачи сообщений. Очереди управляются менеджерами очередей (queue managers). Обычно менеджер очередей взаимодействует непосредственно с отправляющими и принимающими сообщения приложениями. Существуют, однако, и специализированные менеджеры очередей, которые работают как маршрутизаторы, или ретрансляторы: они перенаправляют приходящие сообщения другим менеджерам очередей. Таким образом, система очередей сообщений может постепенно вырасти до законченной оверлейной сети (overlay network) прикладного уровня поверх существующей компьютерной сети. Этот подход схож с ранней конструкцией системы МВоnе поверх Интернета, в которой обычные пользовательские процессы конфигурировались для маршрутизации групповых рассылок. В наши дни многие маршрутизаторы сами поддерживают групповые рассылки и необходимость в оверлейных групповых рассылках сильно сократилась. Ретрансляторы могут быть удобны по нескольким причинам. Так, во многих системах очередей сообщений не существует общих служб именования, которые могли бы динамически поддерживать отображение имен на адреса. Вместо этого топология сети с очередями сделана статической, а каждый менеджер очередей имеет копию отображения очередей на адреса. Нельзя не сказать, что в крупномасштабных системах очередей сообщений подобный подход легко может привести к трудностям в управлении сетью. Одним из решений этой проблемы является использование нескольких маршрутизаторов, имеющих информацию о топологии сети. Когда отправитель А помещает в локальную очередь сообщение для получателя В, это сообщение первым делом передается на ближайший маршрутизатор R1, как показано на рис. 2.25. При этом маршрутизатор знает, что делать с этим сообщением, и передает его в направлении В. Так, R1 может понять по имени В, что сообщение следует передать на маршрутизатор R2. Таким образом, при добавлении или удалении очере-
140 Глава 2. Связь дей обновление информации потребуется только маршрутизаторам, в то время как остальным менеджерам очередей достаточно будет знать только местоположение ближайшего маршрутизатора. Следовательно, маршрутизаторы могут помочь в создании масштабируемых систем очередей сообщений. Однако по мере роста сети очередей сообщений становится ясно, что ручное конфигурирование этой сети скоро станет невозможным. Единственным решением будет использование динамической схемы маршрутизации, такой же как в компьютерных сетях. В этом отношении легкое удивление вызывает тот факт, что подобные решения до сих пор не встроены в какие-нибудь популярные системы очередей сообщений. Другой причиной использования ретрансляторов является их способность производить вторичную обработку сообщений. Так, например, в целях безопасности или защиты от сбоев может быть необходимо ведение журнала сообщений. Специальный тип ретрансляторов, о котором мы поговорим в следующем пункте, в состоянии работать как шлюз, преобразуя сообщения в удобный для получателя вид. И, наконец, ретрансляторы могут использоваться для групповой рассылки. В этом случае входящее сообщение просто помещается в каждую из исходящих очередей. Брокеры сообщений Важнейшей областью применения систем очередей сообщений является интеграция существующих и новых приложений в единые согласованные распределенные информационные системы. Интеграция требует, чтобы приложения понимали сообщения, которые они получают. На практике это означает, что от-
|
|||||||||
Последнее изменение этой страницы: 2016-09-19; просмотров: 274; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 52.14.7.103 (0.01 с.) |