Web-сервисы являются программными компонентами распределенных приложений, имеющих сервис-ориентированную архитектуру SOA.
Реализация архитектуры SOA с помощью технологии Web-сервисов более приемлема для создания распределенных приложений, компоненты которых взаимодействуют через Интернет, разворачиваются и работают на различных платформах.
В архитектуре SOA распределенные системы состоят из взаимодействующих агентов поставщиков и потребителей сервисов, выполняющих определенные задачи. Агенты распределенной системы не работают в одной и той же среде выполнения и связываются друг с другом с помощью протоколов через сеть.
В распределенных системах скорость выполнения задач зависит от скорости удаленного доступа к агентам, а надежность — от ошибок коммуникации между агентами.
Архитектура SOA характеризуется следующими свойствами.
- Логическое представление. В логическом представлении SOA сервис — это абстрактное, логическое представление реальной программы, базы данных, бизнес-процесса и т. д., определенное в терминах функциональности.
- Сообщения. Сервис определяется в терминах сообщений, участвующих в обмене между агентами поставщиков и потребителей сервиса. Архитектура SOA не определяет внутреннюю структуру агентов, их реализацию, тем самым обеспечивая совместимость между любыми программными компонентами, удовлетворяющими требованиям обмена сообщениями в определении сервиса.
- Описание. Сервисы описываются метаданными, подлежащими компьютерной обработке. Описания сервисов обеспечивают публичность архитектуры
- Степень детализации. Сервисы используют небольшой набор операций с большим набором сообщений.
- Передача по сети. Взаимодействие с сервисами может осуществляться с помощью сетевого соединения.
- Кроссплатформенность. Сообщения, участвующие в обмене с сервисами, имеют стандартный кроссплатформенный XML-формат.
При реализации архитектуры SOA необходимо решать проблемы, связанные с ненадежностью транспортных протоколов, параллельным удаленным доступом, совместимостью программных компонентов, возможными ошибками одного или нескольких компонентов системы, обеспечением достаточной памяти для вызова объектов.
Архитектура SOA может быть реализована с помощью трех типов XML Web- сервисов:
- RESTful Web-сервисы обеспечивают обмен и управление представлениями ресурсов с помощью HTTP-методов GET, PUT, POST и DELETE;
- RPC SOAP Web-сервисы обеспечивают определенный набор операций;
- XML Web-сервисы обеспечивают получение, обработку и отправку сообщений.
Все три типа Web-сервисов имеют URI-идентификаторы и XML-формат сообщений. При этом RESTful и XML Web-сервисы могут использовать HTTP- или
SOAP/HTTP-протоколы для обмена сообщениями, а SOAP Web-сервисы могут использовать SOAP-протокол вместе с транспортными протоколами HTTP, SMTP, FTP и др.