Разработка распределенных приложений в 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 COM+ (JIT) Remoting/HTTP/SOAP/IIS Remoting/TCP Remoting, актив. клиентом WS
++++AD
+ + + + AD
+++-+ WAN
++ VPN
VPN
+++ + WAN

Пустые ячейки в таблице вызваны следующими причинами.

  1. Поддержка транзакций в веб службах ожидается в ближайшее время.
  2. MSMQ сложно отнести как к закрытым (можно использовать открытые спецификации сообщений), так и к открытым (внутренняя разработка фирмы Microsoft) средам.
  3. Это же касается и среды Remoting с бинарным форматированием: сама спецификация является стандартизированной, но клиенту желательно иметь доступ к сборке с объектом, и данную среду невозможно использовать вне различных реализаций CLI.

Из таблицы 10.1 видно, что наименьшим списком достоинств обладает единственная "родная" для .NET технология создания распределенных приложений – .NET Remoting. Также можно сделать вывод, что клиентская активация удаленных объектов не должна применяться в распределенных системах, отличных от экспериментальных.

Все рассмотренные промежуточные среды могут найти то или иное применение в распределенной системе.


  1. Среда . Net Remoting может быть использована для скоростного обмена данными в доверенной сети, с возможностью безболезненного перехода на использование вместе с IIS. Применение вместе с IIS позволяет применять технологию Remoting в любой локальной сети и в сетях общего доступа, хотя и уступает WSE с точки зрения безопасности и поддержки стандартов веб служб.
  2. Среда MSMQ может использоваться для обмена сообщениями между программными компонентами в домене Active Directory и как транспорт для сред Remoting и COM+. Использование MSMQ вместе с IIS ограничивается записью в очередь и вряд ли найдет широкое применение.
  3. Среда Enterprise Services / COM+ позволяет использовать распределенные транзакции в локальной сети, однако она основана на технологии, разработанной для неуправляемого кода. Можно предположить, что данная технология уже в настоящий момент может рассматриваться как устаревшая. Тем не менее она может быть использована при необходимости в применении распределенных транзакций и компенсирующих менеджерах ресурсов, слабо связанных событий или асинхронного взаимодействия на основе отложенных компонент.
  4. Среда веб служб ASP.NET / WSE является наиболее перспективной при создании распределенных систем. В настоящий момент в веб службах ASP.NET нет поддержки транзакций и возможности асинхронного взаимодействия, и в этом она уступает среде COM+. Из всех рассмотренных технология она является наиболее предпочтительной для организации публичных сервисов в интернете.
На рис. 10.2 приведено возможное использование рассмотренных в курсе технологий как при создании распределенных систем внутри предприятия, так и распределенных систем, объединяющих несколько предприятий. Для взаимодействия различных организаций может использоваться технология веб служб (ASP.NET или Remoting), а также MSMQ через HTTP.


Рис. 10.2.  Возможное применение технологий построения распределенных систем


Содержание раздела