25. Сервис-ориентированная архитектура (Service-Oriented Architecture, SOA), сервисы, Web-сервисы и Web-службы. Основные технологии Webсервисов, используемые для построения Web-сервисов (XML, SOAP, WSDL, UDDI). Технология вызова сервиса.
Се́рвис-ориенти́рованная архитекту́ра (англ. SOA, service-oriented architecture) — модульный подход к разработке программного обеспечения (в дальнейшем ПО), основанный на использовании сервисов (служб) со стандартизированными интерфейсами, которые иденцифицируются web-адресом.
Сервис-ориентированная архитектура (SOA) представляет собой стиль создания архитектуры ИТ, направленный на превращение бизнеса в ряд связанных сервисов - стандартных бизнес-задач, которые можно при необходимости вызывать через сеть.
Архитектура не привязана к какой-то определённой технологии. Она может быть реализована с использованием широкого спектра технологий, включая такие технологии как REST, RPC, DCOM, CORBA или веб-сервисы.
Цели
Для крупных информационных систем уровня предприятия и выше:
- сокращение издержек при разработке приложений, за счёт упорядочивания процесса разработки;
- расширение повторного использования кода;
- независимость от используемых платформ, инструментов, языков разработки;
- повышение масштабируемости создаваемых систем;
- улучшение управляемости создаваемых систем.
Принципы SOA
- Архитектура, как таковая, не привязана к какой-то определённой технологии.
- Независимость организации системы от используемой вычислительной платформы (платформ).
- Независимость организации системы от применяемых языков программирования.
- Использование сервисов, независимых от конкретных приложений, с единообразными интерфейсами доступа к ним.
- Организация сервисов как слабосвязанных компонентов для построения систем.
Web-сервисы (Web-службы) это технология, которая позволяет приложениям взаимодействовать друг с другом независимо от платформы, на которой они развернуты, а также от языка программирования, на котором они написаны. Web-cервис - это программный интерфейс, который описывает набор операций, которые могут быть вызваны удаленно по сети посредством стандартизированных XML сообщений.
Основными технологиями, используемые для построения Web-сервисов являются:
- XML: Extensible Markup Language (расширяемый язык разметки, XML) – это язык разметки, который лежит в основе большинства спецификаций, используемых в Web-сервисах. XML – это исходный язык, с помощью которого можно описать любые данные в структурированном виде, независимо от их представления в конкретном устройстве;
- SOAP: Simple Object Access Protocol (простой протокол доступа к объектам, SOAP) – это сетевой, транспортный и программный язык, а также не зависимый от платформы протокол, позволяющий клиенту вызвать удаленный сервис. Сообщения имеют формат XML;
- WSDL: Web Services Description Language (язык описания Web-сервиса, WSDL) – это интерфейс, основанный на XML, а также язык описания реализации. Поставщик сервиса использует WSDL-документ для описания операций, выполняемых Web-сервисом, а также параметров и типов данных, которые она использует. WSDL- документ также содержит информацию для доступа к сервису;
- WSIL: Web Services Inspection Language (язык обследования Web-сервисов, WSIL) – это спецификация на основе XML, которая позволяет находить Web-сервис без использования UDDI. Тем не менее, WSIL также можно использовать в сочетании с UDDI, т.е. он является не зависимым от UDDI и не подменяет его;
- UDDI: Universal Description, Discovery, and Integration (универсальное описание, поиск и взаимодействие, UDDI) – это клиентский API, а также серверная реализация на основе SOAP, которые можно использовать для хранения и получения информации о поставщиках сервисов и Web-сервисах