Открыть сервис

Веб-сервисы

Веб-сервис — это программный компонент или система, идентифицируемая с помощью универсального указателя ресурсов (URL), чьи публичные интерфейсы и привязки определены, описаны и обнаруживаются с использованием формата на основе XML. Другими словами, это способ взаимодействия двух программных приложений или устройств по сети, обычно через Интернет, с использованием стандартизированных протоколов, независимо от их внутренней архитектуры, платформы или языка программирования. Основная цель веб-сервиса — обеспечить программный доступ к функциям или данным, предоставляемым одним приложением, для другого приложения, без участия человека-пользователя.

История

Концепция удалённого вызова процедур (RPC) существовала задолго до появления современных веб-сервисов, однако стандартизация взаимодействия в гетерогенных средах стала актуальной с ростом популярности Всемирной паутины в середине 1990-х годов. Первым шагом к появлению веб-сервисов стала спецификация XML-RPC, разработанная компанией UserLand Software в 1998 году. Она позволяла кодировать вызовы процедур и их результаты в формате XML и передавать их по протоколу HTTP.

В 2000 году консорциум World Wide Web Consortium (W3C) и другие организации, включая IBM и Microsoft, представили набор спецификаций, лёгших в основу архитектуры SOAP (Simple Object Access Protocol — простой протокол доступа к объектам). SOAP предоставил более строгий и расширяемый формат сообщений, а также ввёл концепцию описания интерфейса сервиса с помощью языка WSDL (Web Services Description Language). Этот подход, известный как «большой» веб-сервис (Big Web Services), стал доминирующим в корпоративном секторе на протяжении 2000-х годов, поскольку он предлагал надёжные механизмы транзакций, безопасности и надёжности сообщений.

Параллельно с SOAP-сервисами развивался альтернативный, более лёгкий подход, основанный на архитектурном стиле REST (Representational State Transfer — передача репрезентативного состояния), сформулированном Роем Филдингом в его докторской диссертации в 2000 году. REST-сервисы (или RESTful-сервисы) используют стандартные методы протокола HTTP (GET, POST, PUT, DELETE) для операций с ресурсами, которые адресуются уникальными URI. Вместо XML они часто используют JSON (JavaScript Object Notation) в качестве формата данных.

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

Архитектура и протоколы

Стек технологий

Взаимодействие веб-сервисов строится на основе стека сетевых протоколов. Базовыми уровнями являются:

Основные архитектурные стили

ХарактеристикаSOAP (Big Web Services)RESTful
ПринципУдалённый вызов процедур (RPC)Управление ресурсами (CRUD)
**Формат данныхТолько XMLЛюбой (JSON, XML, HTML, YAML и др.)
ПротоколHTTP, SMTP, JMSHTTP/HTTPS
СостояниеКак правило, без состояния, но может быть расширенБез состояния (stateless)
ПроизводительностьНиже из-за объёмности XML и сложной обработкиВыше, компактные сообщения (JSON)
КэшированиеHTTP-кэширование не поддерживается напрямуюПолная поддержка HTTP-кэширования
СложностьВысокая, требует обучения и специальных библиотекНизкая, интуитивно понятен
Область примененияСложные корпоративные системы, финансовый сектор, высокая безопасностьОблачные сервисы, мобильные приложения, микросервисы

gRPC и GraphQL

Современная эволюция веб-сервисов привела к появлению альтернатив:

Классификация

Веб-сервисы можно классифицировать по различным признакам:

  1. По типу используемого протокола: SOAP-сервисы, REST-сервисы, XML-RPC, JSON-RPC, gRPC.
  2. По степени открытости:
  1. По выполняемой функции:
  1. По модели развёртывания:

Применение

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

Проблемы безопасности

Использование веб-сервисов порождает ряд проблем безопасности, которые необходимо учитывать при разработке и эксплуатации:

Критика

Несмотря на повсеместное распространение, веб-сервисы подвергаются критике по ряду причин:

Источники

  1. Web Services Architecture. W3C Working Group Note, 2004.
  2. Fielding, R. T. (2000). Architectural Styles and the Design of Network-based Software Architectures (Doctoral dissertation). University of California, Irvine.
  3. SOAP Version 1.2 Part 1: Messaging Framework. W3C Recommendation, 2003.
  4. Richardson, L., & Ruby, S. (2007). RESTful Web Services. O'Reilly Media.
  5. Newman, S. (2015). Building Microservices: Designing Fine-Grained Systems. O'Reilly Media.
  6. RFC 7230 — Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing. IETF, 2014.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →