Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Архитектура среды .NET Remoting.

Читайте также:
  1. II Классификация основных видов загрязнителей окружающей среды.
  2. R микросреды посредников
  3. SWOT-анализ как метод анализа внутренней и внешней среды предприятия.
  4. V1: Глобальные проблемы окружающей среды
  5. V2: Патофизиология клетки. Повреждающее действие факторов внешней среды. Патология наследственности.
  6. А1.16 Постоянство внутренней среды организма называется
  7. Адаптации растений к абиотическим факторам среды
  8. Анализ внешней и внутренней среды
  9. Анализ внешней среды при разработке управленческих решений.
  10. Анализ внешней среды, характеристика факторов внешней среды

Среда Remoting имеет достаточно сложную организацию удаленного вызова, которая позволяет разработчику при необходимости полностью контролировать и модифицировать процесс вызова клиентом Remoting метода объекта сервера. Это, с одной стороны, дает возможность после доработок применять среду Remoting практически с любыми каналами передачи информации (например, поверх MSMQ) или для некоторых специальных целей (например, для взаимодействия CLR и COM+). Открытая и изменяемая архитектура среды также делает ее достаточно привлекательной с педагогической точки зрения при изучении механизмов удаленного вызова. С другой стороны, модификация архитектуры Remoting является достаточно нетривиальной задачей, в результате решения которой могут быть получены сложные, нестандартные и недостаточно проверенные, в том числе с точки зрения безопасности, расширения промежуточной среды. Поэтому вопрос о полезности больших возможностей по расширению промежуточной среды конечным разработчиком остается, видимо, открытым.

Архитектура среды Remoting включает в себя следующие основные сущности, реализуемые классами из пространства имен System.Runtime.Remoting и его подпространств.

1. Посредники удаленного объекта. В среде используется два посредника, принадлежащие классам TransparentProxy и RealProxy. Первый из них является классическим посредником и реализует интерфейс удаленного объекта. Второй, «настоящий», посредник получает от «прозрачного» посредника сообщение об удаленном вызове (класс IMessage). «Настоящий» посредник может быть изменен разработчиком для реализации каких то специфических функций, и поэтому посредник удаленного объекта в среде Remoting представлен двумя сущностями.

2. Сообщение проходит по каналу (channel) среды Remoting. Канал состоит из отдельных труб (sinks) и может иметь различную структуру. Как минимум, клиентская сторона канала включает трубу форматирования, преобразующую сообщение об удаленном вызове в поток ввода-вывода, и транспортную трубу, передающую данный поток в канал передачи данных. Серверная сторона канала, в свою очередь, состоит как минимум из транспортной трубы, трубы форматирования и трубы диспетчеризации. Трубы форматирования и транспорта присутствуют на каждой стороне не более чем в одном экземпляре. Канал может содержать и другие трубы, которые оперируют с сообщением или полученным из него потоком.

3. Последняя из труб в серверной части канала должна передать сообщение заглушке удаленного вызова, называемой диспетчером (реализуется методом ChannelServices.DispatchMessage) .

4. Конкретный набор труб, образующий канал Remoting, определяется используемым классом канала. Такой класс реализует интерфейсы IChannel, IChannelSender, IChannelReceiver и должен создавать последовательность труб на стороне клиента и/или сервера, как это будет показано далее в примерах. Среда Remoting сразу «из коробки» содержит три класса канала. Классы HttpChannel и TcpChannel работают с протоколами HTTP и TCP соответственно, а добавленный в .NET Framework 2.0 класс IpcChannel предназначен для эффективного локального взаимодействия процессов (IPC: inter process communication) через именованные каналы. В трубе форматирования любого из трех каналов может использоваться один из двух рассмотренных ранее классов форматирования: BinaryFormatter и SoapFormatter.

Для передачи информации об объекте сервера и создания на клиенте «прозрачного» посредника используется особый класс System.Runtime.Remoting.ObjRef. При попытке сериализации и передачи по каналу маршализируемого по ссылке объекта используется рассмотренный ранее механизм сурогатных селекторов. Благодаря этому механизму при сериализации наследников класса System.MarshalByRefObject по каналу Remoting вместо них передается маршализируемый по значению объект класса ObjRef, который после десериализации становится «прозрачным» посредником на клиенте Remoting.

Таким образом, среда Remoting позволяет организовать синхронный или односторонний удаленный вызов методов объектов, наследованных от класса MarshalByRefObject.

Одной из проблем при использовании распределенных объектов является определение момента их уничтожения сервером. Для автоматического удаления из памяти локальных объектов, используемых удаленным клиентом, недостаточно отслеживания локальных ссылок на них. В среде Remoting для управлением временем жизни таких объектов используется система аренды (lease), которая при использовании активируемых клиентом объектов или объектов единственного экземпляра с некоторым интервалом просит клиента подтвердить необходимость существования объекта.


Дата добавления: 2015-01-30; просмотров: 9 | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2019 год. (0.014 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав