
- •1. Модели взаимодействия компонентов рис
- •2. Обмен сообщениями
- •3. Удаленный вызов процедур
- •3.1. Вызов распределенных процедур.
- •4. Механизм работы rpc
- •5. Обращение к удаленным объектам (rmi)
- •6. Связь на основе потоков данных
- •7. Архитектура распределённых приложений
- •7.1. Принципы создания системы обработки информации в масштабе предприятия
- •7.2. Парадигма распределенных вычислений
- •8. Архитектура распределенных приложений
- •9. Физическая структура распределенных приложений
- •10. Распределение бизнес-логики по уровням распределенного приложения
- •11. Уровень представления данных
- •12. Уровень обработки данных
- •13. Уровень управления данными
- •14. Уровень хранения данных
- •15. Расширения базовых уровней
РИС Л.2. гр.445 (20-15).
План
1. Модели взаимодействия компонентов РИС……………………………………2
2. Обмен сообщениями……………………………………………………………..3
3. Удаленный вызов процедур……………………………………………………..6
3.1. Вызов распределенных процедур……………………………………………..9
4. Механизм работы RPC…………………………………………..………….…..12
5. Обращение к удаленным объектам (RMI)……………………………………..13
6. Связь на основе потоков данных……………………………………………….17
7. Архитектура распределённых приложений……………………………………18
7.1. Принципы создания системы обработки информации в масштабе предприятия……………………………………………………………………..…18
7.2. Парадигма распределенных вычислений…………………………………....20
8. Архитектура распределенных приложений…………………………………...24
9. Физическая структура распределенных приложений…………………………27
10. Распределение бизнес-логики по уровням распределенного приложения..28
11. Уровень представления данных………………………………………………....30
12. Уровень обработки данных……………………………………………………....31
+-,,+--
-+
13. Уровень управления данными…………………………………………………...34
14. Уровень хранения данных……………………………………………………….36
15. Расширения базовых уровней……………………………………………….…..37
Для выполнения сформулированных выше требований к распределенным системам функции сеансового и представительского уровня должна взять на себя промежуточная среда (middleware), называемая так же промежуточным программным обеспечением
(рис. 3).
Рис. 7 Модель взаимодействия вычислительных систем
Промежуточная среда должна помочь создать разработчиками открытые, масштабируемые и устойчивые распределенные системы.
Для достижения этой цели промежуточная среда должна обеспечить службы для взаимодействия компонент распределенной системы.
К таким службам относятся:
– обеспечение единого и независимого от операционной системы механизма использования одними программными компонентами служб других компонент;
– обеспечение безопасности распределенной системы: аутентификация и авторизация всех пользователей сервисов компоненты и защита передаваемой между компонентами информации от искажения и чтения третьими сторонами;
– обеспечение целостности данных: управление транзакциями, распределенными между удаленными компонентами системами;
– балансировка нагрузки на серверы с программными компонентами;
– обнаружение удаленных компонент.
В пределах одной распределенной системы может использоваться несколько видов промежуточных сред. При хорошем подходе к проектированию системы каждая распределенная ее компонента предоставляет свои сервисы посредством единственной промежуточной среды, и использует службы других компонент посредством так же единственной промежуточной среды, однако эти среды могут быть различными.
Выделение промежуточного уровня несколько изменяет базовую модель OSI.
Сеансовый уровень и уровень представления заменены одним промежуточным уровнем, который содержит не зависящие от приложений протоколы.
1. Модели взаимодействия компонентов рис
Ключевым сервисом промежуточной среды для создания РИС является обеспечение обмена данными между компонентами распределенной системы.
В настоящий момент существуют две концепции взаимодействия программных компонент:
1) обмен сообщениями между компонентами;
2) и вызов процедур или методов объекта удаленной компоненты по аналогии с локальным вызовом процедуры(удалённый вызов).
Поскольку в настоящее время любое взаимодействие между удаленными компонентами в конечном итоге основано на сокетах TCP/IP, первичным с точки зрения промежуточной среды является низкоуровневый обмен сообщениями на основе сетевых сокетов, сервис которых никак не определяет формат передаваемого сообщения.
Сокеты обеспечивают примитивы низкого уровня для непосредственного обмена потоком байт между двумя процессами
На базе протоколов TCP или HTTP могут быть построены прикладные протоколы обмена сообщений более высокого уровня абстракции для реализации более сложного обмена сообщениями или удаленного вызова процедур.
Удаленный вызов является моделью, происходящей от языков программирования высокого уровня, а не от реализации интерфейса транспортного уровня сетевых протоколов.
Поэтому протоколы удаленного вызова должны обязательно базироваться на какой-либо системе передачи сообщений, включая как непосредственное использование сокетов TCP/IP, так и основанные на нем другие промежуточные среды для обмена сообщениями.
Реализация высокоуровневых служб обмена сообщениями, в свою очередь, может использовать удаленный вызов процедур, основанный на более низкоуровневой передаче сообщений, использующей, например, непосредственно сетевые сокеты.
Таким образом, одна промежуточная среда может использовать для своего функционирования сервисы другой промежуточной среды, аналогично тому, как один протокол транспортного или сетевого уровня может работать поверх другого протокола.
2. Обмен сообщениями
Явный обмен сообщениями между процессами является основой многих РИС.
Существует два метода передачи сообщений от одной удаленной системы к другой:
– непосредственный обмен сообщениями
- и использование очередей сообщений.
В случае непосредственного обмена сообщениями:
1. Передача происходит напрямую,
2.Передача возможна только в том случае, если принимающая сторона готова принять сообщение в этот же момент времени.
В случае использование очередей сообщений используется посредник – менеджер очередей сообщений.
Алгоритм работы менеджера сообщений:
1. Компонент посылает сообщение в одну из очередей менеджера.
2. Менеджер начинает свою работу.
3. Получающая сторона извлекает сообщение из очереди менеджера и приступает к его обработке.
Простейшей реализацией непосредственного обмена сообщениями является использование транспортного уровня сети через интерфейс сокетов, минуя какое-либо промежуточное программное обеспечение.
Однако такой способ взаимодействия обычно не применяется в системах автоматизации предприятия, поскольку в этом случае реализация всех функций промежуточной среды ложится на разработчиков приложения.
При таком подходе сложно получить расширяемую и надежную распределенную систему, поэтому для разработки прикладных распределенных систем обычно используются системы очередей сообщений.
К разработкам в области промежуточного программного обеспечения, реализующим высокоуровневые сервисы для обмена сообщениями между программными компонентами относятся:
Microsoft Message Queuing,
IBM MQ Series
Sun Java System Message Queue.
Такие системы дают возможность приложениям использовать следующие базовые примитивы по использованию очередей:
– добавить сообщение в очередь;
– взять первое сообщение из очереди, процесс блокируется до появления в очереди хотя бы одного сообщения;
– проверить очередь на наличие сообщений;
- установить обработчик, вызываемый при появлении сообщений в очереди.
Менеджер очереди сообщений в таких системах может находиться на компьютере, отличном от компьютеров с участвующими в обмене компонентами.
В этом случае сообщение:
1) первоначально помещается в исходящую очередь на компьютере с посылающей сообщения компонентой,
2) затем сообщение пересылается менеджеру требуемой компоненты.
Для создания крупных систем обмена сообщениями может использоваться маршрутизация сообщений.
При маршрутизация сообщений сообщения не передаются напрямую менеджеру, поддерживающему очередь, а проходят через ряд промежуточных менеджеров очередей сообщений (рис.1).
Рис.1. Системы очередей сообщений
Использование очередей сообщений ориентировано на асинхронный обмен данными.
Основные достоинства таких систем:
– время функционирования сервера может быть не связано со временем работы клиентов;
– независимость промежуточной среды от средства разработки компонент и используемого языка программирования;
– считывать и обрабатывать заявки из очереди могут несколько независимых компонент, что дает возможность достаточно просто создавать устойчивые и масштабируемые системы.
Недостатки систем очередей сообщений являются продолжением их достоинств:
– необходимость явного использования очередей распределенным приложением;
- сложность реализации синхронного обмена;
– определенные накладные расходы на использование менеджеров очередей;
– сложность получение ответа: передача ответа может потребовать отдельной очереди на каждый компонент, посылающий заявки.