Модель выбора службы заключается в следующем. Композиционная схема описывает посылаемые и получаемые сообщения, а также порядок, в котором проводятся обмены. Для выполнения композиционной логики мотор должен в дополнение к схеме знать еще, какая служба является получателем сообщения. В композиционных схемах эта информация указывается абстрактно (вместо номера порта указывается его тип или роль получателя). Перед отправкой сообщения все типы портов должны заменяться номерами. Способами привязки к службе могут быть статическое связывание, динамическое связывание по ссылке, динамическое связывание с поиском и динамический выбор операции. Вставка адреса службы в спецификацию композитной службы полезна при построении прототипов и тестировании. При использовании ссылок присваивание указателя переменной происходит в результате выполнения предыдущей операции, его можно извлекать из указателя клиента, обратившегося к композитной службе, он может быть явно задан при установке службы на машине. Если указатель должен быть динамически извлечен из справочника, этому действию надо сопоставить отдельную активность, то есть операцию интерфейса сетевой службы некоторого реестра, которая определяет указатель службы и записывает его в некоторую переменную. Динамическое связывание с поиском позволяет для каждой активности описывать запрос к справочнику. Результат обработки запроса используется для определения службы, которую надлежит вызывать. При этом необходимо формулировать критерии выбора службы из списка. Композиционные модели могут проводить динамическое связывание не только на уровне целых служб, но и на уровне отдельных операций. Такой подход называется динамическим выбором операции. Этот подход усложняет оркестровку, которой становится трудно управлять при росте вариантов выбора. Динамические операции полезны в тех случаях, когда набор параметров операции меняется в зависимости от выбранной службы.
В транзакционной модели поведение композитных служб определяется внедрением в оркестровую схему атомарных областей. На диаграммах такие области окружают наборы активностей, обладающие свойством «все или никто». Атомарность достигается выполнением протоколов 2РС, которые реализуются системой, не требуя программирования от разработчика. Решение проблемы менее строгой транзакционной семантики связано с применением компенсаций, когда результаты подтвержденных операций отменяются выполнением других операции. Применение такого подхода означает, что при возникновении ошибки для осуществления частичного отката операций атомарной области системный слой сетевых служб должен инициировать и выполнить протокол компенсации подтвержденных активностей.
Транзакционная модель позволяет разбивать длительные транзакции на подтранзакции, имеющие традиционные транзакционные свойства и исполняемые в некотором предопределенном порядке. При завершении они подтверждаются, снимая блокировки и показывая результат другим транзакциям. Откат выполняется прерыванием всех активных подтранзакций и компенсацией подтвержденных подтранзакций в порядке, обратном выполнению. Ответственность за реализацию компенсации возлагается на разработчика службы, то есть на стороны компонентов, а не на сторону композиции. Если компонент уже имеет компенсационную логику, разработчик композиции освобождается от ее реализации, а обращается к компенсационной операции.
Резюме
Традиционные подходы к построению распределенных систем и традиционные методы интеграции приложений направлены на интеграцию автономных систем и автоматизацию бизнес-процессов, распространяющихся на некоторое не слишком большое количество таких систем. Применение традиционных подходов требует от участников взаимодействия достижения соглашения по использованию и совместному управлению конкретной системной платформой.
Развитие глобальной сети привело к появлению новых стандартов, протоколов и форматов. В основе работы сетевой службы – Веб-службы – лежит предположение, что функциональность, открываемая некоторым предприятием для взаимодействия с его партнерами, будет проявляться как «услуга», «служба», «сервис». Описание традиционной программной службы основывается на интерфейсе и языке описания интерфейса. При описании сетевых служб применяется стек языков описания, в котором каждый элемент более высокого уровня использует и уточняет описание нижнего уровня. В качестве общего метаязыка в настоящее время обычно используется язык XML. Обмены между службами, проходящие в определенном порядке, называются разговорами. Набор правил, регулирующих разговоры, называется бизнес-протоколом.
Сетевые службы играют ту же роль, что и традиционные промежуточные слои программного обеспечения, но имеют гораздо более широкий масштаб. Сетевые службы основывают взаимодействия на простом протоколе доступа к объектам SOAP. Роль, отведенную в традиционных системах языкам IDL, играет для сетевых служб язык описания WSDL, основанный на XML. Чтобы сетевые службы имели глобальный характер, процесс опубликования сведений о них и их поиск должны быть стандартизованы.
Для организации взаимодействия служб друг с другом необходимо следовать протоколам координации сетевых служб, которые строятся на основе понятия «разговор». Для описания координационных протоколов применяются различные модели, среди которых можно выделить модель диаграмм последовательности и модель диаграмм активности.
Стандарт транзакции сетевых служб определяет набор протоколов, требующих скоординированной работы нескольких сторон и строится на базе протокола координации сетевых служб. Этот стандарт предполагает существование набора сетевых служб, участвующих в транзакции, и одного или нескольких координаторов (централизованных или распределенных). Стандарт транзакции сетевых служб также определяет структуру координационного контекста и стандартные интерфейсы, которые должны реализовываться участниками и координаторами.
Координация работы сетевых служб позволяет нескольким службам участвовать в одном разговоре между собой, их композиция обеспечивает службам возможность одновременно вести несколько разговоров с разными службами.
Видами композиционных моделей сетевых служб являются компонентная модель, оркестровая модель, модель данных и доступа к данным, модель выбора службы, транзакционная модель.
Do'stlaringiz bilan baham: |