Representational State Transfer (REST)
Alexander Kolosov
Web-приложение как распределенное приложениеslide
Web-приложение как распределенное приложениеslide
Web-приложение как распределенное приложениеslide
Web-приложение как распределенное приложениеslide
Абстрактная архитектура распределенного приложения на основе протокола без сохранения состоянияslide
- Диссертация Роя Филдинга «Architectural Styles and the Design of Network-based Software Architectures», 2000 г.
- Описание абстрактной модель взаимодействия элементов распределенного приложения с помощью протокола без сохранения состояния — «передача репрезентативного состояния» (representational state transfer, ReST).
- REST по сути является теоретическим обоснованием способов взаимодействия в World Wide Web.
Архитектура распределенного приложения в стиле RESTslide
Рой Филдинг сформулировал набор ограничений на архитектуру распределенного приложения, построенногона базе концепции REST.
- Клиент-серверная модель сетевого взаимодействия.
- Сервер не хранит информацию о состоянии клиента. Каждый запрос пользователя несет в себе всю информацию о контексте выполняемой операции.
- Клиент может кешировать ответы от сервера. Каждый ответ от сервера должен содержать в себе информацию о том, можно ли его кешировать.
- Клиент может взаимодействовать не напрямую с сервером, а с произвольным количеством промежуточных узлов. Это взаимодействие происходит прозрачно.
- Опционально сервер может расширять функциональность клиента передавая ему исполняемый код, реализующий новые возможности.
- Унифицированный интерфейс между компонентами распределенного
приложения.
- Hypermedia as the Engine of Application State (HATEOAS). Набор ресурсов, предоставляемых сервером и способов их обработки определяется только в ходе взаимодействия с этим сервером.
Достоинства REST-архитектурыslide
- Производительность (за счет использования кеша).
- Масштабируемость (за счет отсутствия необходимости хранения состояния на серверах).
- Простота интерфейсов.
- Модифицируемость компонентов «на лету».
- Простота переносимости компонентов.
- Надежность.
Применение REST-архитектуры в Web-приложенияхslide
- В основном архитектура World Wide Web уже основана на принципах
REST:
- User Agent <-> Web-server (клиент-сервер).
- Используется протокол HTTP не предполагающий сохранения состояния.
- Возможность кеширования учтена в HTTP.
- HTTP описывает многоуровневую иерархию промежуточных узлов (origin server, proxy, gateways, tunnels).
- HTTP, URI и MIME образуют унифицированный интерфейс взаимодействия между компонентами распределенной системы.
- Принцип HATEOAS должен реализовываться конкретным приложением.
Пример REST-архитектурыslide
TODO