Representational State Transfer (REST)

Web-приложение как распределенное приложение   slide

web-as-distr1.png

Web-приложение как распределенное приложение   slide

web-as-distr2.png

Web-приложение как распределенное приложение   slide

web-as-distr3.png

Web-приложение как распределенное приложение   slide

web-as-distr4.png

Абстрактная архитектура распределенного приложения на основе протокола без сохранения состояния   slide

  • Диссертация Роя Филдинга «Architectural Styles and the Design of Network-based Software Architectures», 2000 г.
  • Описание абстрактной модель взаимодействия элементов распределенного приложения с помощью протокола без сохранения состояния — «передача репрезентативного состояния» (representational state transfer, ReST).
  • REST по сути является теоретическим обоснованием способов взаимодействия в World Wide Web.

Архитектура распределенного приложения в стиле REST   slide

Рой Филдинг сформулировал набор ограничений на архитектуру распределенного приложения, построенногона базе концепции 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