ПоставщикамБлог

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

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

Сервис-ориентированная архитектура (SOA, англ. service-oriented architecture) — модульный подход к разработке программного обеспечения, основанный на использовании распределённых, слабо связанных (англ. loose coupling) заменяемых компонентов, оснащённых стандартизированными интерфейсами для взаимодействия по стандартизированным протоколам.

Программные комплексы, разработанные в соответствии с сервис-ориентированной архитектурой, обычно реализуются как набор веб-служб, взаимодействующих по протоколу SOAP, но существуют и другие реализации (например, на базе jini, CORBA, на основе REST).

Интерфейсы компонентов в сервис-ориентированной архитектуре инкапсулируют детали реализации (операционную систему, платформу, язык программирования) от остальных компонентов, таким образом обеспечивая комбинирование и многократное использование компонентов для построения сложных распределённых программных комплексов, обеспечивая независимость от используемых платформ и инструментов разработки, способствуя масштабируемости и управляемости создаваемых систем.

Архитектура не привязана к какой-либо определённой технологии. Она может быть реализована с использованием широкого спектра технологий, включая такие технологии как REST, RPC, DCOM, CORBA или веб-сервисы. SOA может быть реализована, используя один из этих протоколов и, например, может использовать дополнительно механизм файловой системы для обмена данными.

Главное, что отличает SOA — это использование независимых сервисов с чётко определёнными интерфейсами, которые для выполнения своих задач могут быть вызваны неким стандартным способом, при условии, что сервисы заранее ничего не знают о приложении, которое их вызовет, а приложение не знает, каким образом сервисы выполняют свою задачу.

SOA также может рассматриваться как стиль архитектуры информационных систем, который позволяет создавать приложения, построенные путём комбинации слабосвязанных и взаимодействующих сервисов. Эти сервисы взаимодействуют на основе какого-либо строго определённого платформенно-независимого и языково-независимого интерфейса (например, WSDL). Определение интерфейса скрывает языково-зависимую реализацию сервиса.

Таким образом, системы, основанные на SOA, могут быть независимы от технологий разработки и платформ (таких как Java, .NET и т. д.). К примеру, сервисы, написанные на C#, работающие на платформах .Net и сервисы на Java, работающие на платформах Java EE, могут быть с одинаковым успехом вызваны общим составным приложением. Приложения, работающие на одних платформах, могут вызывать сервисы, работающие на других платформах, что облегчает повторное использование компонентов.

SOA может поддерживать интеграцию и консолидацию операций в составе сложных систем, однако SOA не определяет и не предоставляет методологий или фреймворков для документирования сервисов.

Языки высокого уровня, такие как BPEL, или спецификации, такие как WS-CDL и WS-Coordination, расширяют концепцию сервиса, предоставляя метод оркестрации, для объединения мелких сервисов в более обширные бизнес-сервисы, которые, в свою очередь, могут быть включены в состав технологических процессов и бизнес-процессов, реализованных в виде составных приложений или порталов.

Использование компонентной архитектуры (SCA) для реализации SOA — это область текущих исследований.

Наиболее популярные продукты категории Сервис-ориентированная архитектура и Web-сервисы Все продукты категории

SAP NETWEAVER
SAP
2
11
IBM WEBSPHERE Enterprise Service Bus (ESB)
IBM
11
13

F.A.Q. Сервис-ориентированная архитектура и Web-сервисы

Что такое сервис-ориентированная архитектура?

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

  1. Создание архитектурной модели, определяющей цели приложений и методов, которые помогут достичь этих целей.
  2. Определение спецификаций реализации, связанные через WSDL (язык описания веб-сервисов) и SOAP (протокол простого доступа к объектам).

Принципы сервис-ориентированной архитектуры состоят из девяти основных элементов:

  1. Стандартизированный договор на обслуживание, в котором определяются услуги, облегчающие для клиентских приложений понимание цели услуги.
  2. Слабая связь - это способ соединения компонентов в системе или сети, чтобы компоненты могли зависеть друг от друга в наименьшей степени приемлемой. При изменении функциональности или настроек службы не происходит простоев или сбоев в работе приложения.
  3. Сервисная абстракция скрывает логику того, что делает приложение. Он передает клиентскому приложению только то, что оно делает, а не то, как оно выполняет действие.
  4. Повторное использование сервисов разделяет сервисы с целью повторного использования, насколько это возможно, чтобы избежать затрат ресурсов на создание одного и того же кода и конфигураций.
  5. Сервисная автономия обеспечивает логику задачи или выполнения запроса в коде.
  6. Служба безгражданства, при которой службы не скрывают информацию из одного состояния в другое в клиентском приложении.
  7. Обнаружение службы через реестр служб.
  8. Составляемость службы разбивает большие проблемы на более мелкие элементы, сегментируя службу на модули, делая ее более управляемой.
  9. Функциональная совместимость услуг регулирует использование стандартов (например, XML) для обеспечения большей простоты использования и совместимости.

Как работает сервис-ориентированная архитектура?

Сервис-ориентированная архитектура (SOA) работает как поставщик компонентов сервисов приложений для других компонентов по сети. Сервис-ориентированная архитектура облегчает программным компонентам работу друг с другом в нескольких сетях.

Сервис-ориентированная архитектура реализована с помощью веб-сервисов (на основе WSDL и SOAP), чтобы быть более доступной по стандартным интернет-протоколам на независимых платформах и языках программирования.

Сервис-ориентированная архитектура имеет 3 основных цели, каждая из которых фокусируется на частях цикла приложений:

  1. Структурируйте процессы и программные компоненты как сервисы - упростив для разработчиков программного обеспечения последовательное создание приложений.
  2. Предоставить способ публикации доступных сервисов (функциональность и требования ввода/вывода) - позволяя разработчикам легко включать их в приложения.
  3. Контролировать использование этих сервисов в целях безопасности - главным образом вокруг компонентов в архитектуре и обеспечения безопасности соединений между этими компонентами.

Программное обеспечение архитектуры микросервисов является в значительной степени обновленной реализацией сервис-ориентированной архитектуры (SOA). Компоненты программного обеспечения создаются как сервисы, которые используются через API-интерфейсы, обеспечивающие безопасность и лучшие практики, как в традиционных сервис-ориентированных архитектурах.

Каковы преимущества сервис-ориентированной архитектуры?

Основными преимуществами сервис-ориентированных архитектурных решений являются:

  • Расширяемость - легко может расширяться или дополняться.
  • Возможность многократного использования - возможность повторного использования многоцелевой логики.
  • Ремонтопригодность - возможность поддерживать его в актуальном состоянии без необходимости переделки и повторного построения архитектуры с теми же конфигурациями.
Материалы