Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
TEKhNOLOGII_RAZRABOTKI_RASPREDELENN_Kh_PRILOZhE...doc
Скачиваний:
10
Добавлен:
12.11.2019
Размер:
201.73 Кб
Скачать
  1. Rpc. Промежуточная среда msmq. Особенности, достоинства, недостатки (в т.Ч. С точки зрения требований к распределенным системам).

RPC (Remote Process Call)

Механизм RPC позволяет создавать приложения, состоящие из произвольного числа процедур, часть из которых распределены на локальном компьютере, а часть на удаленном. Технология RPC ориентирована на вызовы удаленных процедур, а не на пересылку сообщений.

Основная программа RPC может вызывать процедуры либо библиотеки процедур, распределенные на удаленном компьютере, однако для приложения RPC все процедуры кажутся локальными. В процессе работы приложение RPC вызывает как локальные, так и удаленные функции.

Интерфейсная процедура имеет те же параметры и имя, что и удаленная, только в отличие от нее не выполняет действия, а производит упаковку параметров и преобразует их для передачи по сети (маршалинг), затем обращается к библиотеке RPC времени исполнения, которая находится на удаленном компьютере, на котором расположена удаленная процедура. Далее происходит вызов удаленной функции, интерфейсная библиотека RPC выполняет анмаршалинг (распаковку параметров) и вызывает необходимую функцию. После получения результата ответ отправляется клиенту аналогичным образом.

Существует синхронная и асинхронная реализация RPC.

RPC интегрирован с компонентами защиты, что позволяет Клиенту и Серверу выполнять аутентификацию и шифрование передаваемой по сети информации.

Промежуточные среды

Промежуточная среда берет на себя функции удовлетворения требований, предъявляемых к распределенным приложениям. Представительский, сеансовый уровни OSI берут на себя функции среды. В одном приложении может быть несколько промежуточных сред. Существует несколько промежуточных сред, но универсальной не существует, это объясняется тем, что требования, предъявляемые к распределенным системам, противоречивы.

Гетерогенная распределенная система – это система, которая содержит различные промежуточные среды или различное ПО (ОС, СУБД) или различное аппаратное обеспечение.

Гомогенная распределенная система – это система, которая содержит одинаковые промежуточные среды или одинаковое ПО (ОС, СУБД) или одинаковое аппаратное обеспечение.

MSMQ (Очереди сообщений)

Несколько основных технологий:

  • Sun (Java System Message Queue)

  • IBM Web Sere MQ

  • Oracle Advanced Queuing

  • Microsoft Message Queue

MSMQ – разработка Microsoft по асинхронной отправке сообщений внутри локальной сети. Появилось в NT.

При отправке необходимо указать имя компьютера (куда) имя очереди.

Варианты:

  1. Сообщение доставляется сразу в указанную при отправке очередь (прямая доставка).

  2. Сообщение отправляется в некоторую промежуточную очередь, определяемую маршрутизатором службы сообщений.

  3. MSMQ определяет, что сообщение необходимо отправить в несколько очередей.

Может быть несколько компьютеров с промежуточной очередью. Компьютер определяется по UDP пакета. Если компьютер доступен, то служба обмена сообщений каждые 5 с пытается ему отправить сообщение, иначе каждые 5 мин маршрутизатор MSMQ пытается найти промежуточный узел, через который можно отправить сообщение.

Пересылка сообщения продолжается до тех пор, пока оно не достигнет целевой очереди.

MSMQ поддерживает асинхронную передачу сообщений.

Случаи использования MSMQ:

  1. Необходимость параллельной обработки заявок несколькими компьютерами

  2. Одна компонента отправляет запросы другой без получения на него ответа

  3. Компьютеры, участвующие во взаимодействии могут находиться вне сети.

  4. Сообщения имеют приоритеты.

  5. Требуется интеграция с другими реализациями службы обмена сообщений.

2 вида очередей:

  1. Общие (public)

  2. Частные (private)

Оба вида очередей могут использовать транзакции, что указывается при создании очереди.

Очереди находятся в Active Directory.

Имя общей очереди:

  • имя компьютера\имя очереди

  • .\имя очереди (на локальном)

Общие очереди в отличие от частных могут использовать все узлы сети. Все узлы сети могут осуществлять поиск общей очереди по заданным критериям.

Имя частной очереди:

  • имя компьютера\private$\имя очереди

  • .\private$\имя очереди (на локальном)

Приложение не имеет возможности ни создавать, ни проверять наличие частной очереди на другом компьютере.

MSMQ может работать в составе Active Directory и без него, но появляются ограничения:

  • Не поддерживаются общие очереди

  • Не поддерживается автоматическое шифрование передаваемых сообщений

  • Не поддерживается маршрутизация и групповая рассылка сообщений

Структура передаваемого сообщения может быть произвольной:

  • xml файл

  • Записи ADO

  • Word’овский файл

Рассмотрим возможности MSMQ с точки зрения требований, предъявляемых к распределенным системам.

Открытость – выполняется частично, поскольку используя в качестве сообщения xml-документ можно добиться открытости передаваемых данных. Хотя сама технология MSMQ открытой не является.

Безопасность – при наличии Active Directory поддерживается шифрование передаваемых сообщений. MSMQ поддерживает списки доступа ACL.

Обеспечение целостности данных – MSMQ поддерживает возможность использования транзакций.

Расширяемость – MSMQ позволяет разрабатывать масштабируемые приложения, так как не ограничено количество компьютеров, считывающих/записывающих сообщения в очереди.

Устойчивость – возможность считывания сообщений из очереди несколькими серверами (дублирование функций).

MSMQ – это такая промежуточная среда, которая не позволяет асинхронно передавать сообщения даже тогда, когда один из компонент находится вне сети, но при этом имеются ограничения:

Пересылка сообщений происходит непрозрачно для приложения

  • Неудобно использовать вне локальных сетей.

  • Поскольку очередь расположена на некотором компьютере, она становится «узким местом».

Методы MSMQ:

Статические методы для администрирования очередей сообщений: create, delete, exists, purge;

Методы поиска общих очередей: get public Queues, get public Queues by label;

Методы для работы с сообщениями: send (отправить), receive (прочитать 1е сообщение и удалить его), peek (прочитать 1е сообщение).

  1. Веб-службы. Архитектура, используемые стандарты, возможности, WSE, преимущества и недостатки (в т.ч. с точки зрения требований к распределенным системам). Основные принципы технологии WCF. Предпосылки появления WCF. WCF-сервисы и клиенты. Параметры точки доступа. Преимущества и недостатки по сравнению с веб-службами.

Web – services

Программная компонента, которая предоставляет вызов метода удалённого объекта, на основе стандартов WSI(Web service Interoperability). Основными из которых являются стандарты:

  • SOAP –протокол передачи сообщений

  • WSDL (WS Description Language) – язык описания интерфейса.

  • XML – описание схемы передаваемых данных

  • HTTP – транспортный протокол.

ASP.net – служба на основе этих стандартов организует сервис удалённого вызова, публикует описание веб сервиса на языке WSDL, на основе интерфейса класса удалённого объекта, обрабатывает приходящий от пользователя SOAP сообщения, извлекает из них необходимые параметры, и вызывает необходимый метод удалённого объекта, а затем передаёт клиенту результат вычисления, SOAP сообщением.

Полное название данной промежуточной среду - веб службы asp.net

Доступ к каким либо полям удалённого объекта запрещён.

Хотя с точки зрения прикладного программиста, веб сервисы, кажутся реализацией вызова методов удалённых объектов через сеть интернет, однако это не так, поскольку данная промежуточная среда, в основе имеет расширяемую технологию обмена сообщениями SOAP, которая может быть настроена так, что она будет независима от транспортного уровня.

SOAP имеет такое расширение которое позволяет, производить маршрутизацию передаваемых сообщений, что предаёт данной промежуточной среде, характеристики службы передачи сообщений. Расширение функциональности веб сервисов, может происходить как по мере принятия новых стандартов, так и по мере необходимости реализации нестандартных решений. Это осуществляется благодаря фильтрам SOAP которые отвечают за обработку SOAP сообщений. В .net frame за преобразование сообщения пришедшего по HTTP отвечает ASP.net, а за организацию расширяемого набора фильтров расширение WSE(Web Services Enhacement).

В качестве клиента веб сервиса, может выступать приложение созданное на платформе .net frame work. Либо какое-либо другое приложение, которое поддерживает перечисленные ранее стандарты. Веб сервисы получили широкое распространение в качестве одной из технологий разработки распределённых гетерогенных систем. Стандарт WS Transaction позволяет использовать распределённые транзакции, в которой может участвовать сразу несколько сервисов.

Преимуществом расширения WSE является возможность отделения политики доступа к веб службе от самой веб службы. Политика доступа ограничивает доступ идентифицированных клиентов, к удалённым объектам. При этом используются списки удалённого доступа ОС WIN (ACL),политика доступа может изменяться например с помощью конфигурационных файлов.

Рассмотрим возможности веб служб с точки зрения предъявляемых требований к распределённым системам:

  1. Открытость – поскольку веб службы используют обзепринятые стандарты, то данная промежуточная среда является открытой. При этом веб службы могут использоваться поверх транспортных протаколов.

  2. Масштабируемость – веб службы позволяют разрабатывать масштабируемые распределённые приложения.

  3. Логическая целостность данных - веб службы используют WS transaction для создания распределённых транзакций.

  4. Безопасность – поддерживаемый все стандарт WS –Security, позволяет реализовать различные способы аунтификации клиентов веб служб, с возможностью шифрования передаваемых сообщений.

  5. Эффективность – на разбор SOAP сообщений тратится некоторые временные и вычислительные ресурсы, однако это является умеренной платой, за создание открытых приложений.

К недостаткам можно отнести, не возможности локального взаимодействия, не затрагивающее протоколов TCP\IP.

WCF – service (Windows Communication Foundation).

Вместе с .net frame майкрософт предоставляет .net Remoating и web srevices, при этом с помощью .net remoting может смоделировать работу веб сервиса, если хостом этого сервиса будет IIS(Internet Information Server), в качестве форматоров, будет выбраны форматоры SOAP, для определения структуры будет использоваться SOAP, в качестве транспортного протокола, протокол HTTP. Но при этом этот сервис не будет иметь расширение WSE, которое необходимо при реализации нестандартного взаисодействия между веб сервисами. Кроме того при использовании .net Remoting, надо чтобы на клиенте был установлен .net Frame.

Веб сервисы плохи тем что они лишены гибкости среды Remoting, в выборе средств коммуникации. И реализует лишь один способ взаимодействия через http/SOAP. Кроме того, хостом обязан быть IIS.

WCF сервисы призваны интегрировать эти промежуточные среды в одно целое, при этом устраняя их недостатки. Основным действующим лицом является WCF сервис который распологается на сервере, хостом WCF сервиса может быть любое приложение написанное на .net frame. Либо приложение написанное на другой платформе, либо приложение не на ОС win.

Другим основным действующим лицом является клиент, который может быть как другим WCF сервисом, так простым приложением. Для задания веб сервиса необходимо задать точку доступа erd- point, которая характеризуется 3 параметрами, называемыми алфовитом

  1. Адрес(Address) – определяет где находится сервис (URI)

  2. Связывание(Binding) – связывание определяет каким образом происходит соединение с сервисом. Определяет какой транспортный протакол юзается и каким образом происходит обмен сообщениями.

  3. Контракт(Contract) – описание интерфейса сервиса и его параметров на языке WSDL.

WCF предлагает следующий набор стандартных плюшек:

  • Basic HttpBinding – используют для форматирования протола. Связывание SOAP поверх HTTP.

  • WsHttpBinding – связывание WS стандартов поверх HTTP.

  • WsDualHttpBinding – связывание WS стандартов поверх Http, но учитывая дуальной связи.

  • NetTcpBinding – Бинарное форматирование поверх TCP.

  • NetNamedPipeBinding – Бинарное форматирование поверх именованных каналов.

  • NetMsngBinding – Бинарное форматирование с использованием служб обмена сообщениями (MSnQ)

Отличия WCF сервисов от веб сервисов:

  • Расширенная поддержка стандартов WSI.

  • В качестве хоста может выступать не только сервер IIS, но и любое другое приложение либо сервис.

  • Множество точек доступа, если веб сервис мог иметь только одну точку доступа, то точки WCF могут отличаться любыми своими компонентами.

  • Поддержка различных стандартов, появляется возможновть использования таких стандартов как HTTP,TCP,MSMQ,UDP.

Отличия WCF от .net remouting:

  • WCF сервисы не требует наличия Frame на клиенте.

  • WCF сервисы поддерживают расширеный стандарт WSI.

  1. Технология .Net Remoting. Архитектура, возможности, расширяемость, виды маршализируемых классов, преимущества и недостатки (в т.ч. с точки зрения требований к распределенным системам). Основные принципы технологии WCF. Предпосылки появления WCF. WCF-сервисы и клиенты. Параметры точки доступа. Преимущества и недостатки по сравнению с .Net Remoting.

.Net Remoting – промежуточная среда, предоставляющая доступ к методам удаленных объектов. Благодаря расширяемой архитектуре, .Net Remoting работает практически со всеми каналами связи.

Стандартными средствами .Net Remoting охватывает разработку web-сервисов (для Интернет)

Разработку Клиентов, работающих в локальной сети на основе бинарного формирования.

CLR (Common Language Runtime) – виртуальная машина

CLI (Common Language Interstructure) – специф

С точки зрения .Net Framework все классы CLR можно разделить на 3 типа:

  1. Классы, маршрутизируемые по значению

  • Экземпляры этих классов могут копироваться между приложениями, если для них определена операция сериализация/десериализация;

  • При выполнении операции десериализации на Клиенте создается копия удаленного объекта, никак не связанная с объектом-оригиналом.

  1. Классы, маршрутизируемые по ссылке

  • Наследуются от класса System.marshal.object;

  • Объекты этих классов не покидают приложение-Сервер;

  • На Клиенте создается прозрачный объект, позволяющий получить доступ к удаленным методам объекта.

  1. Немаршрутизируемые классы

  • Не определена операция сериализации.

В отличие от MSMQ .Net Remoting не зависит от системных служб Windows.

Переносимость между различными CLI.

Архитектура .Net Remoting имеет сложную структуру:

С одной стороны позволяет разработчику полностью контролировать и модифицировать доступ к удаленному объекту, что облегчает использование .Net Remoting с различными способами форматирования и каналами передачи данных;

С другой стороны модификации .Net Remoting – нетривиальная задача, которая может привести к созданию нестандартных решений, не отвечающих всем требованиям распределенной системы.

Для передачи сообщений об удаленном объекте и создании на Клиенте прозрачного посредника используется класс System.Runtime.Object.RN.

Процессс создания посредника на рисунке

При сериализации объекта по ссылке вместо них передается сериализованный объект obj.ref, который после сериализации становится посредником на Клиенте.

.Net Remoting позволяет синхронные и асинхронные вызовы удаленных объектов, маршализируемых как по ссылке, так и по значению. Асинхронный вызов осуществляется с атрибутом Oneway attribute, при этом вызов осуществляется по методу «выстрелил и забыл». Одной из проблем является определение времени уничтожения ссылки. Поскольку хранение только локальных ссылок на объект является недостаточным. Для решения проблемы используется подход займов. С некоторым периодом времени Сервер просит подтвердить Клиентов необходимость использования объекта. Если ни одного подтверждения Сервером получено не было и не существует локальных ссылок на объект, то его можно удалить. Существует возможность отделить объекты от способа передачи данных.

Возможности .Net Remoting с точки зрения требований, предъявляемых к распределенным системам:

  1. Открытость

При бинарном формировании .Net Remoting можно использовать только с CLI приложениями, однако, если использовать стандарт SOAP можно разработать открытую систему.

  1. Масштабируемость

Плохо масштабируются приложения с .Net Remoting

  1. Поддержание логической целостности данных

.Net Remoting не содержит стандартных средств использования распределенных транзакций.

  1. Устойчивость

.Net Remoting не содержит средств повышения устойчивости приложения.

  1. Безопасность

IIS(Internet Information Services) при интеграции с MSMQ можно воспользоваться функциями безопасности промежуточной среды.

  1. Эффективность

По оценкам при бинарном форматировании .Net Remoting является наиболее быстрой промежуточной средой.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]