Из Википедии, свободной энциклопедии
Перейти к навигации Перейти к поиску

.NET Remoting - это интерфейс прикладного программирования (API) Microsoft для межпроцессного взаимодействия, выпущенный в 2002 году вместе с версией 1.0 .NET Framework . Это одна из серии технологий Microsoft, которая началась в 1990 году с первой версии Object Linking and Embedding (OLE) для 16-битной Windows . Промежуточными шагами в развитии этих технологий были Component Object Model (COM), выпущенная в 1993 году и обновленная в 1995 году как COM-95, Distributed Component Object Model (DCOM), выпущенная в 1997 году (и переименованная в Active X), и COM + с его Microsoft. Сервер транзакций (MTS), выпущенный в 2000 году.[1] Сейчас его заменяет Windows Communication Foundation (WCF), которая является частью .NET Framework 3.0 .

Подобно членам его семейства и аналогичным технологиям, таким как Common Object Request Broker Architecture (CORBA) и удаленный вызов методов Java (RMI), .NET Remoting сложен, но его суть проста. С помощью операционной системы и сетевых агентов клиентский процесс отправляет сообщение серверному процессу и получает ответ. [2] [3]

Обзор [ править ]

.NET Remoting позволяет приложению сделать объект (называемый удаленным объектом ) доступным через границы удаленного взаимодействия , который включает в себя различные домены приложений , процессы или даже разные компьютеры, подключенные к сети. [4] Среда выполнения .NET Remoting размещает прослушиватель запросов к объекту в домене приложения серверного приложения. На стороне клиента любые запросы к удаленному объекту проксируются средой выполнения .NET Remoting поверх Channelобъектов, которые инкапсулируют фактический транспортный режим, включая потоки TCP, потоки HTTP и именованные каналы.. В результате, создавая экземпляры подходящих Channelобъектов, приложение .NET Remoting может поддерживать различные протоколы связи без перекомпиляции приложения. Сама среда выполнения управляет процессом сериализации и маршалинга объектов в доменах приложений клиента и сервера. [4]

.NET Remoting делает ссылку на удаленный объект доступной для клиентского приложения, которое затем создает и использует удаленный объект, как если бы он был локальным объектом. [4] Однако фактическое выполнение кода происходит на стороне сервера. Удаленный объект идентифицируется URL-адресами активации и создается при подключении к URL-адресу. [5] Слушатель для объекта создается средой выполнения удаленного взаимодействия, когда сервер регистрирует канал, который используется для подключения к удаленному объекту. На стороне клиента инфраструктура удаленного взаимодействия создаетproxyкоторый заменяет псевдо-экземпляр удаленного объекта. Он не реализует функциональность удаленного объекта, но представляет аналогичный интерфейс. Таким образом, инфраструктура удаленного взаимодействия должна заранее знать общедоступный интерфейс удаленного объекта. Любые вызовы метода, сделанные для объекта, включая идентификатор метода и любые переданные параметры, сериализуются в поток байтов и передаются по протоколу связи, зависящему Channelот протокола связи, прокси-объекту получателя на стороне сервера (« упорядочиваются ») путем записи к транспортной раковине Ла-Манша. [5]На стороне сервера прокси считывает поток из приемника и выполняет вызов удаленного объекта от имени клиента. Результаты сериализуются и передаются через приемник клиенту, где прокси считывает результат и передает его вызывающему приложению. [5] Если удаленному объекту необходимо выполнить обратный вызов клиентскому объекту для некоторых служб, клиентское приложение должно пометить его как удаленное и иметь удаленный хост среды выполнения в качестве слушателя для него. [5] Сервер может подключаться к нему по другому каналу или по уже существующему, если базовое соединение поддерживает двунаправленную связь. [5]Канал может состоять из ряда различных объектов Channel, возможно, с разными разнородными транспортами. Таким образом, удаленное взаимодействие также может работать в системах, разделенных соединением разнородных сетей, включая Интернет. [5] Безопасность типов обеспечивается CTS и средой выполнения .NET Remoting. Вызовы удаленных методов по своей сути синхронны; асинхронные вызовы могут быть реализованы с использованием потоковых библиотек. Аутентификация и контроль доступа могут быть реализованы для клиентов либо с помощью настраиваемых каналов, либо путем размещения удаленных объектов в IIS с последующим использованием системы аутентификации IIS. [6]

Ссылки [ править ]

  1. ^ Дорожная карта программных технологий (2001). «Компонентная объектная модель и связанные возможности» . Институт программной инженерии Карнеги-Меллона. Архивировано из оригинала на 2008-05-15.
  2. ^ Маклин, Скотт; Нафтел, Джеймс; Ким, Уильямс (2002). Удаленное взаимодействие Microsoft .NET . Microsoft Press.
  3. ^ Раммер, Инго; Шпуста, Марио (2005). Расширенный удаленный доступ к .NET . Апресс.
  4. ^ a b c «Обзор .NET Remoting» . Проверено 23 октября 2007 .
  5. ^ a b c d e f "Архитектура удаленного взаимодействия .NET" . Проверено 23 октября 2007 .
  6. ^ «Безопасность» . MSDN7897878979878 . Проверено 23 октября 2007 .

Внешние ссылки [ править ]

  • Официальный сайт
  • Переход с .NET Remoting на WCF