Главная страница
Библиотека (скачать книги)
Скачать софт
Введение в программирование
Стандарты для C++
Уроки по C#
Уроки по Python
HTML
Веб-дизайн
Ассемблер в среде Windows
ActiveX
Javascript
Общее о Линукс
Линукс - подробно
Линукс - новое
Delphi
Паскаль для начинающих
Турбопаскаль
Новости
Партнеры
Наши предложения
Архив новостей





Поддержка транзакций

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

 

Сервер очередей тесно интегрирован с Microsoft Transaction Server, и все вызовы от ActiveX-компонентов, участвующих в транзакциях, автоматически включаются в активную транзакцию MTS. Когда приложения используют транзакции для "упаковки" сообщений, сервер очередей гарантирует, что каждое сообщение будет доставлено только один раз и сообщения внутри транзакции будут доставлены в том порядке, в котором они были посланы.

 

Администрирование

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

Вся система администрирования сервера очередей концентрируется вокруг индивидуальных менеджеров очередей. Сообщения перемещаются между менеджерами очередей посредством очередей передачи (transmission queue). Менеджеры очередей группируются в узлы (sites) и связаны не "каждый с каждым", а через общее сетевое пространство предприятия. Информация об узлах и связях является разделяемой и используется всеми компонентами, участвующими в процессе. Это служит гарантией того, что сообщения будут маршрутизироваться корректно и оптимально.

 

Конфигурация

Сервер очередей может быть сконфигурирован в одной из трех модификаций: сервер, рабочая станция и клиент (рис. 1.28).

Рис. 1.28. Схема конфигурации сервера очередей


MSMQ как сервер

Сервер (рис. 1.28) поддерживает все доступные функции. Сервер способен:
- обслуживать API-вызовы от приложений, выполняющихся на той же самой машине;
- выступать как клиентский "прокси-сервер" (client proxy server) от имени клиентов сервера очередей на других машинах;
- сохранять сообщения в очередях на машине, где выполняется сервер очередей;
- выполнять функции маршрутизации сообщений;
- поддерживать соединения с другими платформами через MSMQ Connector.

Кроме того, серверная конфигурация поддерживает MSMQ Information service — каталог для информации о маршрутизации и конфигурации, и MSMQ
Explorer — основную административную консоль.

 

MSMQ как рабочая станция

В конфигурации "рабочая станция", или MSMQ Independent Client (рис. 1.29), сервер очередей может обслуживать API-вызовы от приложений, выполняющихся на той же машине, и способен обслуживать локальные очереди сообщений, т. е. сообщения хранятся на той же машине, где он выполняется. Рабочая станция MSMQ не содержит служб маршрутизации, "прокси", или служб MSMQ Information Services. Обычно рабочая станция MSMQ выступает как клиент "полного" сервера очередей.

Рис. 1.29. MSMQ в конфигурации"рабочая станция"

Если отказала сеть или клиент вовсе не подключен к сети (например, мобильный пользователь), приложения могут продолжать отправлять и принимать сообщения из локальной очереди.
После восстановления или инициализации соединения рабочая станция MSMQ отправляет все накопленные в локальной очереди сообщения, предназначенные для другой машины.

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

Рабочая станция MSMQ может выполняться в среде Windows 95, Windows NT Workstation и Windows NT Server.

 

MSMQ как клиент

Конфигурация "клиент", или MSMQ Dependent Client (рис. 1.30), предоставляет все API серверу очередей (такие как Open, Close, Send, Receive) для приложений, выполняющихся на машинах, не имеющих ни сервера, ни рабочей станции для обслуживания очередей. Когда приложение выполняет API-вызов, клиент осуществляет пересылку этого вызова к клиентской "прокси"-машине, на которой исполняется серверная конфигурация сервера очередей (конфигурация "рабочая станция" не может обслуживать запросы от MSMQ-клиентов). Клиентская "прокси"-машина повторяет API-вызов к серверу очередей, который на этот раз исполняется применительно к конкретной очереди. В данной ситуации сервер отвечает за все вопросы, связанные с управлением сообщениями, хранением и маршрутизацией.

Рис. 1.30. Схема работы MSMQ-клиента


Основным преимуществом использования MSMQ-клиентов являются минимальные требования к дисковому пространству и объему памяти. Однако при отказе сети ни одно приложение не сможет выполнить вызов к API сервера.

Конфигурация "клиент" поддерживается на Windows 95, Windows NT Workstation и Windows NT Server.

В прежние времена относительно идеи выполнения одних и тех же программных модулей на различных платформах Microsoft занимала резко отрицательную позицию, но теперь она активно ратует за кроссплатформенность. Почему? Microsoft поняла значение Интернета в жизни мирового сообщества и принялась активно адаптироваться к меняющимся условиям, внедряя поддержку для протоколов Интернета в свои продукты. Недавно Microsoft также высказалась в поддержку открытых стандартов.

Фактически, Microsoft направила части ActiveX в Open Group (TOG), в комитет Х/Open и Open Software Foundation. Многие наблюдатели интерпретируют это как желание Microsoft всяческим образом расширить применение своего Active Desktop, оставляя только за собой право совершенствования и модификации API и DCOM, которые являются первичными компонентами всего корпуса технологий ActiveX.

Это приводит к проблеме использования ActiveX на различных платформах. Хоть Microsoft и обещает сделать ActiveX кроссплатформенной, никто ни минуты не сомневается, что предпочтения самой фирмы всегда будут оставаться на стороне Windows. То есть Windows всегда будет выполнять некоторые функциональные вещи лучше, чем реализации технологии ActiveX для MacOS и Unix, которые останутся неподдерживаемыми (undersupported) и лишенными многих из замечательных возможностей?

     
 

Библиотека программиста. 2009.
Администратор: admin@programmer-lib.ru