Разработка распределенных приложений в Microsoft.NET Framework
Сравнение технологий создания распределенных систем
В качестве некоторого итога предлагается таблица со сравнением всех описанных ранее технологий построения распределенных систем. Среда COM+ рассматривается при использовании модели единственного вызова объекта (JIT activation). Среда .NET Remoting в таблице рассмотрена в трех вариантах:
при использовании HTTP, SOAPFormatter, IIS и режима единственного вызова;
при использовании TCP, BinaryFormatter, вне IIS и в режиме единственного вызова;
при использовании TCP, BinaryFormatter, вне IIS и в режиме активации объектов клиентом.
В графе безопасности указан вид сети, при применении в которой данная промежуточная среда может считаться безопасной:
WAN – сеть общего доступа;
AD – домен Active Directory внутри LAN/VPN;
VPN – развернутая для обеспечения безопасного обмена между компонентами виртуальная сеть.
Таблица 10.1. Сравнение промежуточных сред
Требования
Откры-
тость
Эффективность
Масшта-
бируемость
Транзакции
Устой-
чивость
Безопас-
ность
Технологии
MSMQ
+
+
+
+
AD
COM+ (JIT)
–
+
+
+
+
AD
Remoting/HTTP/SOAP/IIS
+
+
+
-
+
WAN
Remoting/TCP
+
+
–
–
VPN
Remoting, актив. клиентом
–
–
–
–
VPN
WS
+
+
+
+
WAN
Пустые ячейки в таблице вызваны следующими причинами.
Поддержка транзакций в веб службах ожидается в ближайшее время.
MSMQ сложно отнести как к закрытым (можно использовать открытые спецификации сообщений), так и к открытым (внутренняя разработка фирмы Microsoft) средам.
Это же касается и среды Remoting с бинарным форматированием: сама спецификация является стандартизированной, но клиенту желательно иметь доступ к сборке с объектом, и данную среду невозможно использовать вне различных реализаций CLI.
Из таблицы 10.1 видно, что наименьшим списком достоинств обладает единственная "родная" для .NET технология создания распределенных приложений – .NET Remoting. Также можно сделать вывод, что клиентская активация удаленных объектов не должна применяться в распределенных системах, отличных от экспериментальных.
Все рассмотренные промежуточные среды могут найти то или иное применение в распределенной системе.
Среда . Net Remoting может быть использована для скоростного обмена данными в доверенной сети, с возможностью безболезненного перехода на использование вместе с IIS. Применение вместе с IIS позволяет применять технологию Remoting в любой локальной сети и в сетях общего доступа, хотя и уступает WSE с точки зрения безопасности и поддержки стандартов веб служб.
Среда MSMQ может использоваться для обмена сообщениями между программными компонентами в домене Active Directory и как транспорт для сред Remoting и COM+. Использование MSMQ вместе с IIS ограничивается записью в очередь и вряд ли найдет широкое применение.
Среда Enterprise Services / COM+ позволяет использовать распределенные транзакции в локальной сети, однако она основана на технологии, разработанной для неуправляемого кода. Можно предположить, что данная технология уже в настоящий момент может рассматриваться как устаревшая. Тем не менее она может быть использована при необходимости в применении распределенных транзакций и компенсирующих менеджерах ресурсов, слабо связанных событий или асинхронного взаимодействия на основе отложенных компонент.
Среда веб служб ASP.NET / WSE является наиболее перспективной при создании распределенных систем. В настоящий момент в веб службах ASP.NET нет поддержки транзакций и возможности асинхронного взаимодействия, и в этом она уступает среде COM+. Из всех рассмотренных технология она является наиболее предпочтительной для организации публичных сервисов в интернете.
На рис. 10.2 приведено возможное использование рассмотренных в курсе технологий как при создании распределенных систем внутри предприятия, так и распределенных систем, объединяющих несколько предприятий. Для взаимодействия различных организаций может использоваться технология веб служб (ASP.NET или Remoting), а также MSMQ через HTTP.
Рис. 10.2. Возможное применение технологий построения распределенных систем