Сервисно-ориентированная архитектура soa

Архитектура — это формальное описание системы, определяющее ее цели, функции, свойства. Она также включает описание компонентов системы и отношений между ними.

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

Сервисно-ориентированная архитектура является основой построения надежных распределенных систем, которые основываются на сервисах со стандартизованными интерфейсами и на принципе слабой связи между взаимодействующими сервисами.

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

Достоинствами слабой связи являются:

1) Гибкость: сервис может быть расположен на любом сервере, а при необходимости перемещен. Пока ссылка на этот сервис есть в службе регистрации, предполагаемые клиенты будут в состоянии найти и использовать его.

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

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

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

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

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

Rambler.iOS #8: Сервис-ориентированная архитектура


Читать еще…

Понравилась статья? Поделиться с друзьями: