Разработка распределенных приложений в Microsoft.NET Framework

       

Выводы по использованию NET Remoting


Отличительной особенностью среды Remoting является возможность отделить объекты распределенной системы от способа передачи сообщений удаленного вызова. Одно и тоже распределенное приложение может работать с различными каналами передачи данных и способами форматирования, включая локальный канал IpсChannel. Для смены канала достаточно изменить только файлы конфигурации, используемые на клиентах и серверах системы. Однако, при необходимости использования механизмов безопасности на уровне промежуточной среды это преимущество исчезает – поскольку выбор каналов связи ограничен возможностями IIS.

Рассмотрим среду .NET Remoting с точки зрения требований к распределенным системам. При этом следует рассмотреть два типичных случая использования среды Remoting – как веб службы (далее – Remoting-Soap) и с использованием бинарного форматирования (далее – Remoting-Binary).

  1. Открытость. Среда Remoting-Binary может быть использована только в пределах распределенного приложения, использующего CLI, причем для удобства работы нужно, чтобы клиент имел доступ к сборке с классом удаленного объекта. Среда Remoting Soap является открытой и гетерогенной, основанной на общепринятых стандартах SOAP и WSDL.
  2. Масштабируемость. Приложение, использующее .NET Remoting, являются плохо масштабируемым, если используются активируемые клиентом объекты. Для объектов же единственного вызова существует возможность организовать балансировку нагрузок – при ее поддержке сетевой инфраструктурой или при использовании нестандартного посредника.
  3. Поддержание логической целостности данных. Среда Remoting не содержит штатных средств поддержки распределенных транзакций.
  4. Устойчивость. Среда Remoting не содержит средств повышения устойчивости системы, но для объектов единственного вызова ее можно организовать на основе сетевой инфраструктуры или изменениями в стандартных каналах или посредниках.
  5. Безопасность. Remoting Soap может использовать механизмы безопасности IIS. При использовании вне IIS среда Remoting не предоставляет каких-либо встроенных средств обеспечения безопасности, но может использоваться поверх безопасного транспортного протокола при использовании VPN.
    Кроме того, при создании нестандартного канала Remoting может работать с другими безопасными транспортами, такими как MSMQ.
  6. Эффективность (в узком понимании термина). По имеющимся оценкам, Remoting Binary является наиболее быстродействующей промежуточной средой из всех рассмотренных в курсе.
Среда Remoting имеет гибкую архитектуру, позволяющую при необходимости осуществлять полный контроль за процессом удаленного вызова. Однако, полный контроль за реализацией промежуточный среды, вероятно, важен для достаточно небольшого числа распределенных приложений. Для большей же их части более интересным представляется, например, поддержка отсутствующих в .NET Remoting распределенных транзакций. С другой стороны, при использовании совместно с IIS среда Remoting не имеет заметных преимуществ перед веб службами, причем для веб служб на основе .NET Remoting нет аналогов WSE. Несомненное преимущество использования .NET Remoting вместе с IIS таким образом заключается в возможности быстрого перехода от веб служб HTTP к, например, локальному взаимодействию на основе канала IpcChannel. Для этого достаточно изменить только файлы конфигурации, используемые на клиента и сервере, и заменить IIS на программу, являющуюся сервером .NET Remoting. Вероятным применение Remoting может быть так же высокоскоростной обмен данными в LAN на основе TCP и двоичного форматирования, а также демонстрация реализации удаленного вызова в учебных целях. Возможным доводом в пользу .NET Remoting так же может являться наличие поддержки этой среды в сторонних реализациях CLI.
  1)   При помощи делегатов и BeginInvoke можно асинхронно вызвать любой метод, в данном случае подразумевается асинхронность с точки зрения промежуточной среды


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