Разработка распределенных приложений в 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

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

Поддержка транзакций в веб службах ожидается в ближайшее время. 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.  Возможное применение технологий построения распределенных систем


Выводы по применению промежуточных сред NET Framework




Доступные при использовании .NET Framework 2.0 технологии построения распределенных систем позволяют создавать прикладные вычислительные системы, отвечающие предъявленным требованиям к распределенным приложениям. Основным недостатком рассмотренных технологий является различный подход к использованию разных промежуточных сред (например, WS и COM+), что может привезти к созданию программного кода, который сложно переориентировать с одной технологии на другую. Предположительно предназначенная для решения данной проблемы технология Remoting уступает остальным рассмотренным технологиям с точки зрения большинства требований к распределенным системам. В следующих версиях .NET Framework будет изменен механизм доступа к промежуточным средам, что, вероятно, может решить указанную проблему различных интерфейсов промежуточных сред.



Взаимосвязь промежуточных сред


Доступные при использовании .NET Framework промежуточные среды не существуют оторвано друг от друга. На рис. 10.1 показана взаимосвязь рассмотренных сред (с учетом приведенного ранее примера Remoting / MSMQ). RPC на рис. 10.1 –стандартный для Windows NT 5.* механизм удаленного вызова процедур, недоступный для управляемого кода. Для простоты не показано возможное применение безопасных транспортных протоколов.


Рис. 10.1.  Взаимосвязь промежуточных сред и транспортных протоколов