Главная страница

Архитектура распределенных систем программного обеспечения. Учебное пособие издано при поддержке образовательной программы Формирование


Скачать 1 Mb.
НазваниеУчебное пособие издано при поддержке образовательной программы Формирование
АнкорАрхитектура распределенных систем программного обеспечения
Дата13.01.2023
Размер1 Mb.
Формат файлаdocx
Имя файлаmdwrbook.docx
ТипУчебное пособие
#885216
страница30 из 36
1   ...   26   27   28   29   30   31   32   33   ...   36

Бизнес активности


Чтобы иметь возможность управлять длительными бизнес транзакциями, выполняемыми сетевыми службами, и при этом не блокировать ресурсы использованием протокола двухфазного подтверждения, стандарт WS-Transaction определяет другой координационный тип, называемый бизнес активностью. Этот координационный тип содержит два протокола: бизнес соглашение с завершением участника и бизнес соглашение с завершениемкоординатора.

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

Протокол бизнес соглашения с завершением координатора похож на протокол бизнес соглашения с завершением участника, он отличается тем, что каждый участник в данном случае уверен, что координатор предварительно оповестит его, что получил все запросы на выполнение работ в рамках данной бизнес активности. Это дает возможность участнику подготовиться к следующим за этим операциям завершения или компенсации. На Рис. 4.23 и Рис. 4.24 приведены диаграммы состояний протоколов бизнес активностей.

Координатор в соответствии со стандартом должен иметь две пары типов портов (одна пара – для соглашения с завершением участника, а вторая для соглашения с завершением координатора). Один из пары типов портов позволяет координатору выполнять протоколы в качестве координатора, а второй – в качестве участника (как и раньше, это необходимо для организации координационных цепочек, когда координаторы взаимодействуют друг с другом). Сетевые службы должны реализовывать только один или два типа портов, в зависимости от типа используемого протокола.

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

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




Рис.4.23.Диаграммасостоянийпротоколабизнессоглашениясзавершением участника.




Рис.4.24.диаграммасостоянийпротоколабизнессоглашениясзавершением координатора.
  1. Композиция сетевых служб


Если координация служб позволяет нескольким службам участвовать в одном разговоре между собой, то их композиция обеспечивает службам возможность одновременно вести несколько разговоров с разными службами (Рис. 5.1). Композиция сетевых служб напоминает процессы, происходящие в системах управления рабочим потоком, где бизнес логика интегрированного приложения реализуется композицией других, автономных крупноблочных приложений. При этом, в общем случае, различные сетевые службы могут поддерживать разные протоколы, следовательно, клиент должен сам реализовывать все протоколы, необходимые для обращения к службам.




Рис.5.1.Клиентымогутучаствоватьвразличныхразговорахсразнымисетевыми службами.

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

В отличие от традиционных композиционных структур (как в программировании, так и производственной деятельности) композиция сетевых служб не предполагает физической интеграции компонентов. Сетевые службы это не библиотеки прикладных программ, которые надо

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

Компания А

Компания Б





Компания В





Компания Г



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

Рис.5.2.Вотсутствиесистемнойподдержкикомпозициисетевыхслужб,реализация композитной службы проводится традиционными средствами.

Для композиции сетевых служб требуется системнаяподдержка. В настоящее время наиболее широко распространен подход, когда программирование композитных сетевых служб ведется средствами традиционных языков, например, языка Java. Сетевые службы более всего используются в качестве мостов между гетерогенными системными платформами, а в подобном окружении разработка служб и их композиция традиционно выполняется непосредственно программированием на некотором языке. Однако языки программирования разрабатывались, не имея в виду потребности композиции сетевых служб. В получающихся программах бизнес логика оказывалась перемешанной с низкоуровневыми деталями, что означало сложности не только в процессе разработке композиции, но и при сопровождении (Рис.5.2). Сложившаяся ситуация

привела к осознанию необходимости моделей высокого уровня, и для композиции сетевых служб было предложено много разных языков (XL, WSFL, BPML, BPEL).
    1. 1   ...   26   27   28   29   30   31   32   33   ...   36


написать администратору сайта