Сервис-ориентированная архитектура (англ. SOA, service-oriented architecture) — модульный подход к разработке программного обеспечения (в дальнейшем ПО), основанный на использовании сервисов (служб) со стандартизированными интерфейсами.
В основе SOA лежат принципы многократного использования функциональных элементов информационных технологий (в дальнейшем ИТ), ликвидации дублирования функциональности в ПО, унификации типовых операционных процессов, обеспечения перевода операционной модели компании на централизованные процессы и функциональную организацию на основе промышленной платформы интеграции.
Компоненты программы могут быть распределены по разным узлам сети, и предлагаются как независимые, слабо связанные, заменяемые сервисы-приложения. Программные комплексы, разработанные в соответствии с SOA, часто реализуются как набор веб-сервисов, интегрированных при помощи известных стандартных протоколов (SOAP, WSDL, и т. п.)
Интерфейс компонентов SOA-программы предоставляет инкапсуляцию деталей реализации конкретного компонента (операционной системы, платформы, языка программирования, вендора, и т. п.) от остальных компонентов. Таким образом, SOA предоставляет гибкий и элегантный способ комбинирования и многократного использования компонентов для построения сложных распределённых программных комплексов.
SOA хорошо зарекомендовала себя для построения крупных корпоративных программных приложений. Целый ряд разработчиков и интеграторов предлагают инструменты и решения на основе SOA (например, платформы Intel SOA Expressway, JBoss SOA Platform, IBM WebSphere, Software AG webMethods, Oracle/BEA Aqualogic, Microsoft Windows Communication Foundation, SAP NetWeaver, TIBCO).
Веб-служба, веб-сервис (англ. web service) — программная система, идентифицируемая строкой URI, чьи общедоступные интерфейсы определены на языке XML. Описание этой программной системы может быть найдено другими программными системами, которые могут взаимодействовать с ней согласно этому описанию посредством сообщений, основанных на XML, и передаваемых с помощью интернет-протоколов. Веб-служба является единицей модульности при использовании сервис-ориентированной архитектуры приложения.
Преимущества web service
-
Web service обеспечивают взаимодействие программных систем независимо от платформы
-
Web service основаны на базе открытых стандартов и протоколов. Благодаря использованию XML достигается простота разработки и отладки Web service
- Использование интернет-протокола обеспечивает HTTP-взаимодействие программных систем через межсетевой экран
ESB, Enterprise Service Bus (сервисная шина предприятия) — подход к построению распределённых корпоративных информационных систем. Обычно включает в себя промежуточное ПО, которое обеспечивает взаимосвязь между различными приложениями по различным протоколам взаимодействия. Одним из стандартов взаимодействия являются веб-сервисы. В популярных реализациях ESB добавляются шлюзы для обмена данными с корпоративным ПО. С использованием ESB может быть реализована сервисно-ориентированная архитектура. Существует некоторое разногласие, что именно считать ESB — архитектуру или программное обеспечение. Обе точки зрения имеют право на существование.
ESB служит удобным зонтичным термином для набора возможностей, которые разные системы могут реализовывать совершенно различными способами. Например, некоторые эксперты придерживаются мнения, что комбинация SOAP и стандарта WS-Addressing и есть ESB. Однако, обычно сообщество выделяет следующие ключевые возможности ESB:
- поддержка синхронного и асинхронного способа вызова сервисов;
- использование защищённого транспорта, с гарантированной доставкой сообщений, поддерживающего транзакционную модель;
- статическая и алгоритмическая маршрутизация сообщений;
- доступ к данным из сторонних информационных систем с помощью готовых или специально разработанных адаптеров;
- обработка и преобразование сообщений;
- оркестровка и хореография сервисов;
- разнообразные механизмы контроля и управления (аудиты, протоколирование и т. п.).