
- •Конспект лекций модуля № 4 "Целевой курс" дисциплины "Распределенные программные системы и технологии" Тема 11. Системы параллельных вычислений
- •11.1.1. Общие понятия
- •11.1.2. Функции управления задачами
- •11.1.3. Взаимодействие задач
- •11.1.3.1 Типы взаимодействия
- •11.1.3.2 Выполнение взаимодействия
- •11.1.4. Синхронизация работы задач
- •11.2.1. Общие сведения
- •11.2.2. Основные понятия
- •11.2.3. Функции mpi
- •11.2.4. Функции управления процессами
- •11.2.3. Взаимодействие процессов
- •11.2.3.1 Прием/передача сообщений с блокировкой
- •11.2.3.2 Прием/передача сообщений без блокировки
- •11.2.3.3 Объединение запросов на взаимодействие
- •11.2.3.4 Совмещенные прием/передача сообщений
- •11.2.3.5 Коллективные взаимодействия процессов
- •12.1.2. Уровень заглушки и скелета
- •12.1.3. Уровень удаленных ссылок
- •12.1.4. Транспортный уровень
- •12.1.2. Взаимодействие
- •2.1.3 Идентификация объектов
- •2.1.4. Синхронизация вызовов методов
- •2.1.5. Безопасность
- •Тема 13. Сервисно-ориетированные архитектуры
- •13.1.1. Стандарт Web - сервисов
- •13.1.2. Взаимодействие Web-служб
- •13.1.3. Идентификация служб
- •13.1.5. Отказоустойчивость Web-служб
- •13.1.6. Безопасность Web-служб
- •13.2. Сервисно-ориентированная архитектура
- •13.2.1. Концепция soa
- •13.2.2. Характеристики соа
- •13.2.3. Компоненты соа
- •13.3. Оркестровка Web - сервисов
- •13.3.1. Основные понятия
- •13.3.2. Организация основанная на потоках работ
- •13.3.3. Язык bpel
- •Тема 14. Многоагентные системы
- •14.1. Определение агента
- •14.2. Применение агентов
- •14.2. Стандарты технологии мобильных агентов
- •14.2.1. Стандарт masif
- •14.2.2. Стандарт fipa
- •14.3. Языки взаимодействия агентов.
- •Тема 15. Распределенные базы данных
- •15.1. Определение Дэйта.
- •15.2. Свойства распределенных бд
- •15.2.1 Целостность данных
- •15.2.2 Прозрачность расположения
- •15.2.3 Обработка распределенных запросов
- •15.2.4 Межоперабельность
- •15.2.5 Технология тиражирования данных
- •15.2.6 Архитектура "клиент-сервер"
- •15.3.1 Концепция ejb
- •15.3.2. Компоненты ejb
- •15.3.3 Этапы создания ejb-проектов
- •Тема 16. Аппаратное обеспечение распределенных встроенных систем
- •16.1. Перспективы развития и области применения распределенных встроенных систем
- •16.2. Функциональная классификация микропроцессоров
- •16.2.1. Процессоры общего назначения и специализированные процессоры
- •16.2.2. Микроконтроллеры
- •16.2.3. Процессоры цифровой обработки сигналов
- •16.2.4. Конфигурируемые процессоры и перепрограммируемы системы на кристалле
- •16.2.5. Эволюция микропроцессоров
13.2.2. Характеристики соа
Архитектура, ориентированная на сервисы (SOA), имеет следующие характерные особенности:
Архитектура является распределенной. Функциональные модули приложение (системы) могут быть распределены по множеству вычислительных систем и способны к взаимодействию с использованием локальных или глобальных сетей.
Интерфейс функциональных модулей таков, что использование модулей не зависит от технологии или платформы, в рамках которой они реализованы.
Возможен динамический поиск и подключение нужных функциональных модулей.
Архитектура базируется на общепринятых отраслевых стандартах.
13.2.3. Компоненты соа
Основу архитектуры, ориентированной на сервисы, составляет взаимодействие трех участников:
поставщика сервиса;
потребителя сервиса;
реестра сервисов.
Это взаимодействие представлено на рисунке 1.
Рисунок 1. Компоненты архитектуры SOA
Взаимоотношение участников включает следующие основные аспекты:
публикация сервиса;
поиск сервиса;
подключение и использование.
Для реализации SOA необходимы три типа соглашения:
Транспортное соглашение: о форматах и протоколах взаимодействия.
Соглашение об описании функциональности сервиса, в виде, пригодном для автоматической генерации кода, который определяет процесс взаимодействия между клиентом и поставщиком сервиса.
Соглашение о способе обнаружения сервиса.
Программные комплексы, разработанные в соответствии с СОА, часто реализуются как набор веб-сервисов, интегрированных при помощи известных стандартных протоколов (SOAP, WSDL, и т. п.) -
архитектура веб-сервисов (Web Services Architecture - WSA).
13.3. Оркестровка Web - сервисов
13.3.1. Основные понятия
Концепция веб-сервисов подразумевает, что отдельные веб-сервисы обладают определенной ограниченной функциональностью. А для решения более-менее сложных задач требуется использовать функциональность нескольких сервисов. Поэтому в ходе развития архитектуры веб-сервисов возникли понятия "композиция Web-сервисов" (Web-services composition) и "поток Web-сервисов" (Web-services flow), в последнее время взамен этих понятий используют соответственно "оркестровка" (Web Service Choreography) и "хореография" (Web Service Choreography) веб-сервисов. Эти понятия отражают взаимодействие сервисов и последовательность их выполнения. Другими словами, приложения, построенные с использованием веб-сервисов, рассматривают как приложения, основанные на потоках работ (Workflow-based applications).
13.3.2. Организация основанная на потоках работ
При рассмотрении приложений, основанных на потоках работ, выделяют три уровня как это показано на рисунке 3 [4].
Рисунок 3. Приложение, основанное на потоках работ
Веб-сервисы являются функциональными блоками и соответствуют единицам работ в терминах потоков работ. Способы нахождения, подключения, использования единиц работы (т.е., веб-сервисов) обеспечиваются стеком технологий, который был описан выше и представлен на рисунке 2.
В настоящий момент актуальной проблемой является разработка стандартизованного способа организации приложения на уровне модели бизнес-процесса, а также связанная с ней проблема методик анализа, разработки, мониторинга бизнес-процессов, использующих в своей работе веб-сервисы, или даже построенных преимущественно на веб-сервисах.
Веб-сервисы широко используются для интеграции, в том числе для взаимодействия бизнес-процессов компаний-партнеров. Это повышает важность механизма организации веб-сервисов.
Для описания систем и приложений, построенных по архитектуре веб-сервисов, на уровне модели бизнес-процесса ведущими IT-компаниями предлагались различные проекты стандартов:
Wf-XML (от Workflow Management Coalition),
WSFL (IBM Web Services Flow Language),
XLANG (Microsoft's XLANG: Business modeling language for BizTalk),
PIPs (RosettaNet's Partner Interface Process), а также некоторые другие.
К настоящему моменту наибольший вес имеют:
BPEL4WS (Business Process Execution Language for Web Services), подготовленный IBM, Microsoft и BEA Systems,
WSCI (Web Service Choreography Interface) корпорации Sun Microsystems.
Оба этих проекта были приняты в организации, стандартизирующие технологии архитектуры веб-сервисов:
WSCI с 2002 года развивается рабочей группой консорциума W3C (организована рабочая группа Web Services Choreography Working Group) [7];
для развития BPEL4WS в 2003 году в консорциуме OASIS был создан технический комитет - OASIS Web Services Business Process Execution Language TC (WS-BPEL TC) [6].
WSCI отражает концепцию хореографии сервисов. BPEL4WS предназначен для реализации оркестровки сервисов.
Стандарты хореографии и оркестровки опираются на стандартизованное описание веб-сервисов - WSDL. Веб-сервисы, участвующие во взаимодействии, представлены своими интерфейсами.
Архитектура веб-сервисов (и более общая концепция - архитектура, ориентированная на сервисы) является динамически развивающимся направлением в информационных системах и ПО. Имеющийся набор отраслевых стандартов уже сегодня позволяет решать задачи интеграции (в том числе, даже на уровне бизнес-процессов).