Лекция №26Сервисная архитектура приложений

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

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

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

SOAP-сервисы

SOAP-сервисы используют два базовых стандарта, основанных на XML:

Помимо этих стандартов, для веб-сервисов определены вспомогательные технологии, такие как безопасность данных. Для интеграции SOAP-сервисов разработан язык WS-BPEL (тоже основан на XML), позволяющий запрашивать и обрабатывать данные для произвольного числа сервисов. Средства для реализации и использования сервисов входят, например, в Java EE и Microsoft .NET.

REST

Технология REST (representational state transfer) подразумевает некоторые ограничения на архитектуру сервиса, помогающие добиться лучшей производительности и масштабируемости. Например, REST-сервис при общении с клиентом не должен хранить состояние после выполнения операций (такое поведение отличает сервисы от объектов в ООП). Это позволяет использовать прозрачные для клиента прокси-сервисы, например, с целью балансирования нагрузки. Другая особенность REST-сервисов — полноценное использование протокола HTTP:

REST-сервисы можно легко создавать в рамках веб-приложений при использовании архитектуры Model — View — Controller. Существуют и специализированные средства для разработки (например, JAX-RS в Java EE). Для использования веб-сервисов достаточно реализации HTTP-протокола (например, на основе libcurl) и инструментов для (де)сериализации данных.

Скачать презентацию