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

Веб-служба

Веб-служба (веб-сервис, англ. web service) — это программный компонент, доступ к которому осуществляется по сети с использованием веб-технологий, в первую очередь протокола HTTP, и который предоставляет стандартизированный интерфейс для взаимодействия между различными приложениями. Веб-службы предназначены для обеспечения машинно-машинного взаимодействия (M2M) в гетерогенных средах, позволяя программам, написанным на разных языках и работающим на различных платформах, обмениваться данными и вызывать функции друг друга.

История

Концепция удалённого вызова процедур (RPC) существовала с 1980-х годов, однако её реализация была привязана к конкретным технологиям (например, CORBA, DCOM, Java RMI). С распространением интернета и веба возникла потребность в универсальном, не зависящем от платформы протоколе обмена данными.

Ключевым этапом стало появление в конце 1990-х годов языка разметки XML и протокола SOAP (Simple Object Access Protocol). В 2000 году компании Ariba, IBM и Microsoft опубликовали спецификации SOAP 1.1, WSDL (Web Services Description Language) и UDDI (Universal Description, Discovery and Integration), которые легли в основу «большой тройки» стандартов веб-служб. Этот подход, ориентированный на SOAP, доминировал в начале 2000-х годов, особенно в корпоративной среде.

Параллельно развивался альтернативный, более лёгкий подход, основанный на архитектурном стиле REST (Representational State Transfer), сформулированном Роем Филдингом в его докторской диссертации в 2000 году. REST-сервисы используют стандартные методы HTTP (GET, POST, PUT, DELETE) и часто обмениваются данными в формате JSON, который менее требователен к ресурсам, чем XML. Начиная с середины 2000-х годов, REST-сервисы стали доминировать в веб-разработке, особенно в публичных API (программных интерфейсах приложений) крупных интернет-компаний, таких как Twitter, Facebook (организация Meta признана экстремистской и запрещена в РФ) и Google.

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

Основу взаимодействия веб-служб составляет модель «клиент-сервер». Клиент (потребитель) отправляет запрос серверу (поставщику), который обрабатывает его и возвращает ответ. Существует два основных архитектурных подхода.

SOAP-сервисы (WS-*)

SOAP — это протокол обмена структурированными сообщениями в формате XML. Сообщение SOAP состоит из конверта (Envelope), который содержит заголовок (Header) и тело (Body). Тело содержит собственно данные запроса или ответа. Для описания интерфейса веб-службы используется язык WSDL, который определяет доступные операции, форматы сообщений и точки подключения (endpoints). Для обнаружения служб в сети использовался реестр UDDI, но на практике он не получил широкого распространения.

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

REST-сервисы (RESTful API)

REST — это архитектурный стиль, а не протокол. RESTful сервисы трактуют каждый ресурс (например, пользователя, товар, заказ) как объект, идентифицируемый уникальным URL. Взаимодействие с ресурсами осуществляется через стандартные методы HTTP:

Данные обычно передаются в формате JSON (JavaScript Object Notation) или XML. Ключевыми принципами REST являются: отсутствие состояния (stateless — каждый запрос содержит всю необходимую информацию для его обработки), кэширование ответов, единообразие интерфейса и многоуровневая архитектура.

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

gRPC

Относительно новая технология, разработанная компанией Google, которая использует протокол HTTP/2 и бинарный формат сериализации данных Protocol Buffers (protobuf). gRPC обеспечивает высокую производительность, поддерживает потоковую передачу данных и двунаправленную связь. Он часто применяется в микросервисных архитектурах и системах реального времени.

Форматы обмена данными

Применение

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

Критика и ограничения

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

Примеры

Источники

  1. Fielding, R. T. (2000). Architectural Styles and the Design of Network-based Software Architectures (Doctoral dissertation, University of California, Irvine).
  2. W3C. (2004). SOAP Version 1.2 Part 1: Messaging Framework. W3C Recommendation.
  3. W3C. (2001). Web Services Description Language (WSDL) 1.1. W3C Note.
  4. Richardson, L., & Ruby, S. (2007). RESTful Web Services. O'Reilly Media.
  5. Google. (2020). gRPC: A high performance, open source universal RPC framework. Документация проекта.
  6. Фаулер, М. (2015). Микросервисы. Статья на сайте martinfowler.com.

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

На главную BFOmetr →