Сервис-ориентированная архитектура (СОА) – модульный подход к разработке программного обеспечения, основанный на использовании сервисов (служб) со стандартизированными интерфейсами. Представляет собой стиль создания архитектуры ИТ, направленный на превращение вашего бизнеса в ряд связанных сервисов - стандартных бизнес-задач, которые можно при необходимости вызывать через сеть.
Принципы SOA
1. Архитектура, как таковая, не привязана к какой-то определённой технологии,
2. Независимость организации системы от используемой вычислительной платформы (платформ),
3. Независимость организации системы от применяемых языков программирования,
4. Использование сервисов, независимых от конкретных приложений, с единообразными интерфейсами доступа к ним, 5. Организация сервисов как слабо-связанных компонентов для построения систем
Понятие WEB-сервисов, ключевые технологии Web-сервисов, их назначение и использование (XML, WSDL, SOAP, UDDI). WEB-сервис – программная система, идентифицируемая строкой URI, чьи общедоступные интерфейсы определены на языке XML. Описание этой программной системы может быть найдено другими программными системами, которые могут взаимодействовать с ней согласно этому описанию посредством сообщений, основанных на XML, и передаваемых с помощью интернет-протоколов. Веб-служба является единицей модульности при использовании сервис-ориентированной архитектуры приложения.
Ключевые технологии web-сервисов: * XML: Расширяемый язык разметки, предназначенный для хранения и передачи структурированных данных; * SOAP: Протокол обмена сообщениями на базе XML; * WSDL: Язык описания внешних интерфейсов веб-службы на базе XML. UDDI: Универсальный интерфейс распознавания, описания и интеграции (Universal Discovery, Description and Integration). Каталог веб-служб и сведений о компаниях, предоставляющих веб-службы во всеобщее пользование или конкретным компаниям. SOAP — протокол обмена структурированными сообщениями в распределённой вычислительной среде. Первоначально SOAP предназначался в основном для реализации удалённого вызова процедур (RPC), а название было аббревиатурой: Simple Object Access Protocol — простой протокол доступа к объектам. Сейчас протокол используется для обмена произвольными сообщениями в формате XML, а не только для вызова процедур. SOAP может использоваться с любым протоколом прикладного уровня: SMTP, FTP, HTTP, HTTPS и др. Однако его взаимодействие с каждым из этих протоколов имеет свои особенности, которые должны быть определены отдельно. Чаще всего SOAP используется поверх HTTP.
WSDL
Для того чтобы приложения могли использовать веб-сервисы, программные интерфейсы последних должны быть детально описаны — с этой точки зрения язык
WSDL играет ту же роль, что и язык Interface Definition Language (IDL) в распределенных вычислениях. Описание может включать такую информацию, как протокол, адрес сервера, номер используемого порта, список доступных операций, формат запроса и ответа и т. п.
Как мы видим, описание сервисов представляет собой XML-документ, состоящий из нескольких элементов, в том числе из описания пространства имен (namespace), описания типов и элементов, сообщений, порта, а также возможных операций — запросов и ответов.
UDDI — Universal Description, Discovery and Integration Задача UDDI — предоставить механизм для обнаружения веб-сервисов. UDDI задает бизнес-реестр, в котором провайдеры веб-сервисов могут регистрировать сервисы, а разработчики — искать необходимые им сервисы. UDDI базируется на элементах четырех типов: Business Entity, Business Service, Binding Template и Technology Model. Принципы функционирования web-сервисов:
* лицо, ответственное за веб-сервис, определяет формат запросов к своему веб-сервису и его ответов
* любой компьютер в сети делает запрос к веб-сервису
* веб-сервис обрабатывает запрос, выполняет какое-либо действие, а затем отправляет ответ
Для формирования запросов/ответов используется язык XML, для их передачи протокол SOAP, для описания интерфейса веб-сервиса используется WSDL, описания размещаются в UDDI
Достоинства веб-служб:
* Веб-службы обеспечивают взаимодействие программных систем независимо от платформы
* Веб-службы основаны на базе открытых стандартов и протоколов. Благодаря использованию XML достигается простота разработки и отладки веб-служб
* Использование интернет-протокола обеспечивает HTTP-взаимодействие программных систем через межсетевой экран
Недостатки веб-служб:
* Меньшая производительность и больший размер сетевого трафика по сравнению с технологиями RMI, CORBA, DCOM за счёт использования текстовых XML-сообщений.