
- •Разработка распределенных приложений на платформе Microsoft.Net Framework План
- •Задачи построения рис
- •2. Объектная архитектура распределенных систем. Понятие о технологии .Net Основы платформы .Net Framework
- •3. Введение в среду Common Language Runtime
- •4 Преимущества платформы ms.Net
- •Поддержка средств распределенной разработки
- •7. Среда Microsoft Message Queuing (msmq)
- •Применение службы сообщений msmq в распределенных системах
- •1) Либо дожидается ответа сервера в течение одного своего вызова другими компонентами,
- •2) Либо не нуждается в ответе вообще.
- •Использование очередей сообщений msmq в .Net Framework
- •Выводы по использованию msmq
- •3. Технология ejb для построения распределенных систем
Применение службы сообщений msmq в распределенных системах
Рассмотрим возможности, предоставляемые службой MSMQ как промежуточным программным обеспечением с точки зрения требований, предъявляемых к распределенной системе:
1. Открытость. Требование выполняется частично: используя в качестве сообщения XML-документ с заданной XSD-схемой, можно добиться открытости передаваемых данных. Однако сама технология MSMQ является закрытой и одноплатформенной.
2. Безопасность. MSMQ поддерживает обычные для Windows NT списки управлением доступа (ACL) для каждой очереди, а при наличии домена AD – прозрачное шифрование сообщений. Таким образом, система, использующая MSMQ, может являться безопасной при развертывании в пределах домена Active Directory.
3. Расширяемость. MSMQ позволяет создавать масштабируемые системы, поскольку не накладывает ограничений на число машин, считывающих сообщения из одной очереди.
Если время обработки сообщения удаленным приложением несравнимо больше времени на его пересылку между очередями, то возможен линейный рост производительности при увеличении числа компьютеров, считывающих и обрабатывающих сообщения из очереди.
4. Обеспечение целостности данных. MSMQ поддерживает внутренние транзакции, распределенные транзакции среды COM+ и транзакции из System.Transactions.
Внутренние транзакции гарантируют, что некоторая последовательность операций компоненты с очередями (например, получение сообщение и отправка ответа на него) будет либо выполнена полностью, либо не выполнена вообще.
Транзакции среды COM+ и пространства имен System.Transactions используют координатор распределенных транзакций (MS DTC).
При их использовании в последовательность операций, образующих транзакцию, кроме действий с очередями сообщений могут входить операции с любыми службами, поддерживающие распределенные транзакции.
Кроме использования транзакций, для повышения надежности в MSMQ следует использовать механизм восстанавливаемых сообщений, который повышает вероятность того, что после принятия службой MSMQ сообщение не будет потеряно при аварийном отключении питания.
5. Устойчивость. Основной особенностью MSMQ является возможность использования нескольких читающих из очереди серверов. Кроме того, при использовании общих очередей возможен выбор того или иного компьютера с требуемой очередью. В силу этого при использовании очередей сообщений можно избежать возникновения уникальной точки уязвимости.
Таким образом, с точки зрения требований к распределенной системе технология MSMQ обладает многочисленными достоинствами.
Однако данная технология промежуточного ПО также имеет ряд важных недостатков:
– необходимость явного использования очередей распределенным приложением;
- сложность реализации синхронного обмена.
Службы очередей сообщений находят наилучшее применение в случаях, когда какая-либо компонента распределенной системы посылает заявки, не требующие ответа (модель «запрос»).
Если же компонента получает некоторые ответы в асинхронном режиме (модель «запрос-ответ»), то она должна поддерживать собственный список ожидающих ответов заявок. Это означает наличие у компоненты некоторого внутреннего состояния, которое должно сохраняться в течение длительного времени. Наличие такого состояния является недостатком с точки зрения концепции распределенной системы как набора сервисов, не сохраняющих историю своих вызовов.
С точки зрения этой концепции использующая MSMQ компонента: