PIG DATA

SOA и ROA - что это такое и какую роль играет для REST

Сервис-ориентированная архитектура (SOA) и ресурсо-ориентированная архитектура (ROA) — это шаблоны архитектурного проектирования, используемые для реализации надежных масштабируемых архитектур распределенных приложений. Распределенные архитектуры состоят из компонентов, которые используются в сети через четко определенные интерфейсы.

В ROA эти компоненты называются ресурсами, а в SOA — службами. В этой статье представлен обзор ресурсно-ориентированной архитектуры.

Что такое ресурсно-ориентированная архитектура (ROA)?

Ресурсно-ориентированная архитектура (ROA) — это стиль архитектуры, который расширяет архитектурный стиль REST и предлагает более широкую, расширяемую, гибкую и независимую от транспорта архитектуру. Парадигма ресурсно-ориентированной архитектуры (ROA) построена на понятии ресурса. Ресурс — это автономный идентифицируемый объект, имеющий состояние, которому может быть назначен универсальный указатель ресурса (URI). В то время как служба представляет собой выполнение запрошенного действия, ресурс представляет собой распределенный компонент, управляемый через согласованный стандартизированный интерфейс.

Одной из характеристик ресурсо-ориентированной архитектуры является то, что она не зависит от транспорта. Таким образом, должны быть определенные механизмы для раскрытия ресурсо-ориентированных сервисов внешнему миру. Когда потребитель запрашивает унифицированный указатель ресурсов (URL) и указывает метод доступа (например, GET, PUT, POST и DELETE), URL-адрес преобразуется в относительный внутренний URI. Метод доступа претворяется в жизнь.

Ресурсо-ориентированная архитектура основана всего на четырех концепциях:

  1. Ресурсы
  2. URI
  3. Представительства
  4. Ссылки и связность

Вот четыре свойства ресурсно-ориентированной архитектуры:

  • Адресуемость
  • Безгражданство
  • Связность
  • Единый интерфейс

Ресурсо-ориентированная архитектура: ресурсы

Ресурсы являются строительными блоками ROA; ресурс — это логическое представление информации. Например, студент — это абстрактная коллекция точек данных, которые могут быть представлены различными способами, включая XHTML, JSON и XML. Имя ресурса включает в себя следующее:

  • Тип ресурса
  • Идентификатор ресурса
  • Имя ресурса родителя
  • Имя службы API.

Ресурс — это наиболее важная абстракция информации в архитектуре REST или RESTful. Термин «ресурс» относится к любой идентифицируемой информации. Такой информацией может быть документ, компьютер, автомобиль, временная служба (например, «сегодняшняя погода в Огайо»), совокупность других ресурсов, человек, студент и так далее.

Каждое представление неизменяемого ресурса идентифицируется относительным универсальным индикатором ресурса (URI) и может включать подключения к другим ресурсам, а также к другим неизменяемым ресурсам. Обратите внимание, что у ресурса также может быть несколько URI.

Каждый ресурс должен иметь следующие характеристики:

  • должен быть уникален
  • должен иметь как минимум одно представление
  • у него есть атрибуты, схема, к которой можно получить доступ и которая может предоставить контекст

Унифицированный идентификатор ресурса (URI)

Унифицированный идентификатор ресурса (URI) — это последовательность символов, которая содержит имя и адрес ресурса и используется для идентификации логического или физического ресурса. Обратите внимание, что ресурс должен иметь один или несколько URI. Без URI часть информации не считается ресурсом, поскольку на нее нельзя ссылаться или получить к ней доступ. Вы можете использовать URI для идентификации чего угодно, например объектов реального мира, веб-страниц, книг и т. д.

Особенности ресурсно-ориентированных архитектур ROA

Вот четыре основных свойства ресурсно-ориентированных архитектур:

Адресуемость

Адресуемость является важным свойством ресурсо-ориентированных архитектур. Приложение можно считать адресуемым, если оно публикует интересные аспекты своего набора данных в качестве конечных точек службы. Эти сервисы, в свою очередь, могут быть использованы для работы с данными приложения. Поскольку ресурсы в ROA предоставляются с использованием URI, приложение должно предоставлять свои данные с использованием URI.

Отсутствие состояния

Отсутствие состояния — еще одна особенность ресурсо-ориентированных архитектур, подразумевающая, что каждый HTTP-запрос в этой архитектуре выполняется изолированно. Другими словами, когда клиент запрашивает ресурс у сервера, клиент должен предоставить всю информацию, которая может потребоваться серверу для успешного выполнения запроса. Сервер никогда не сохраняет информацию из предыдущих запросов, т. е. на сервере не хранится информация о состоянии. Если серверу требуется информация из более раннего запроса для обработки запроса, клиент должен снова отправить эту информацию в другом запросе.

Связность

В ресурсно-ориентированной архитектуре представления представляют собой гипермедиа: документы, содержащие как данные, так и ссылки на другие ресурсы. RESTful веб-сервисы следуйте принципу Hypermedia As The Engine Of Application State (HATEOS). Это принцип, согласно которому формат данных влияет на состояния перехода в вашем приложении. Ссылки на другие ресурсы встроены в ответ, но они могут различаться для одного и того же ресурса в зависимости от его текущего состояния.

Одной из наиболее важных характеристик сети является ее взаимосвязанность. т. е. практически вся информация в Интернете связана друг с другом посредством гиперссылок. Гиперссылка может использоваться для подключения любого ресурса, доступного в Интернете, к другому ресурсу. Приложение, построенное на основе ROA, должно иметь все свои ресурсы, связанные друг с другом и наоборот. Когда мы выбираем подходящее представление для ресурса, мы можем добиться связности в приложении.

Единый интерфейс
У вас должен быть набор четко определенных методов, которые могут манипулировать ресурсами вашего приложения. Например, HTTP предоставляет следующие общие операции, которые вам обычно необходимо выполнять в любом приложении:

  • HTTP GET — получить ресурс
  • HTTP POST — создание новых ресурсов
  • HTTP PUT — изменить существующий ресурс
  • HTTP DELETE — удалить существующий ресурс

HTTP-методы HEAD и OPTIONS

Вот два других важных метода HTTP, которые вы должны знать:

HTTP HEAD — используется для получения представления ресурса, состоящего только из метаданных.

OPTIONS HTTP — используется для проверки того, какие методы HTTP поддерживаются конкретным ресурсом.

Подведем итог

Ориентированная на ресурсы архитектура не имеет состояния и вращается вокруг ресурса. URI используется для идентификации каждого ресурса. Вы всегда можете иметь несколько копий одного и того же ресурса на своем компьютере одновременно. Вы также можете иметь несколько URI для одного ресурса.

ROA, SOA, разработка, REST
83 просмотра

0 комментариев
Последние

Кликните на изображение чтобы обновить код, если он неразборчив
Комментариев пока нет
PIG DATA
Community о Хрюшах, событиях, технологиях и IT. Создан для людей и маленьких Хрюшек.