Удаленное взаимодействие .NET
.NET Remoting — это Microsoft интерфейс прикладного программирования (API) для межпроцессного взаимодействия, выпущенный в 2002 году вместе с версией .NET Framework 1.0 . Это одна из серии технологий Microsoft, которая началась в 1990 году с первой версии связывания и внедрения объектов (OLE) для 16-разрядной версии Windows . Промежуточными шагами в развитии этих технологий были объектная модель компонентов (COM), выпущенная в 1993 году и обновленная в 1995 году как COM-95, объектная модель распределенных компонентов (DCOM), выпущенная в 1997 году (и переименованная в ActiveX ), и COM+ с ее транзакциями Microsoft. Сервер (МТС), выпущенный в 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]
Ссылки
[ редактировать ]- ^ Дорожная карта программных технологий (2001). «Объектная модель компонентов и связанные с ней возможности» . Институт программной инженерии Карнеги-Меллона. Архивировано из оригинала 15 мая 2008 г.
- ^ Маклин, Скотт; Нафтель, Джеймс; Ким, Уильямс (2002). Удаленное взаимодействие Microsoft .NET . Майкрософт Пресс. ISBN 9780585476445 .
- ^ Раммер, Инго; Шпуста, Марио (2005). Расширенное удаленное взаимодействие .NET . Апресс. ISBN 9781590594179 .
- ^ Jump up to: а б с «Обзор удаленного взаимодействия .NET» . Проверено 23 октября 2007 г.
- ^ Jump up to: а б с д и ж «Архитектура удаленного взаимодействия .NET» . Проверено 23 октября 2007 г.
- ^ "Безопасность" . MSDN . Проверено 23 октября 2007 г.
Внешние ссылки
[ редактировать ]