Подтвердить что ты не робот

В чем разница между SOA и ROA

Как я знаю, SOA (Service Oriented Architecture) основана на коллекциях дискретных программных модулей, известных как сервисы. Эти службы могут обмениваться информацией с любой другой услугой, находящейся в пределах досягаемости сети без взаимодействия с человеком. SOA использует протокол SOAP или REST для передачи документов XML или JSON между различными службами.

Но я запутался с ROA (Resource Oriented Architecture) и о том, какая разница между двумя архитектурами.

Любая помощь будет оценена, исправьте меня, если я ошибаюсь.

4b9b3361

Ответ 1

Поскольку термины подразумевают, что сервис-ориентированная архитектура ориентирована на службы, а ориентированная на ресурсы архитектура ориентирована на ресурсы. Различия между A и B часто лучше объясняются путем определения сущности A и B, поэтому дело доходит до вопроса, что такое "сервис", и что такое "ресурс"?

Я оставлю это в основном читателю, так как большинство разработчиков, вероятно, имеют представление о том, что есть. Хотя на самом деле это не так просто, поскольку одно можно было увидеть как в качестве службы, так и в качестве ресурса (подобно классической двойственности света Wave-Particle в физика). Например, Flickr - это сервис, который предоставляет вам фотографии, но также можно рассматривать как ресурс для фотографий. Но в основном ресурс представляет собой более статические данные (например, фото), а услуга - большая часть обработки (например, доставка фотографии или изменение размера фотографии, чтобы они могли показывать ее миниатюру).

Я понимаю разницу лучше всего, глядя на то, как приложение реализует его "функциональность":

  • Приложение, построенное с Архитектурой сервисов Orient Architecture, больше Facade ', например. он объединяет или составляет его исходящую функциональность, основанную на функциональности, которая находится в сервисах, которые она использует "за экранами". Например. его основная обработка состоит в вызове внешних служб, предоставлении им параметров и объединении результатов для пользователя.
  • Приложение, построенное с Resource Oriented Architecture, выполняет внутреннюю обработку (например, в отличие от вызова внешних компонентов, возможно, по сети), но использует внешние ресурсы в качестве входных данных. Например. его основная обработка состоит из извлечения статических ресурсов и последующего выполнения внутренних вычислений.

Ответ 2

Сначала я исправлю:)

В целях этого ответа позвольте сказать, что REST - это способ организации ресурсов и операций, которые вы выполняете на них.

SOA использует протокол SOAP или REST для передачи документов XML или JSON между различными службами.

Абсолютно нет. REST не является протоколом. SOAP - это протокол, это правда. Он часто используется в архитектурах SOA, особенно для реализации SOAP через HTTP или SOAP поверх JMS. Однако SOA не подразумевает SOAP. Вы можете использовать любой другой протокол. То же самое относится к XML и JSON. Вы можете использовать любой другой язык или диалект.

Теперь объяснение. SOA - это сервис-ориентированная архитектура. Поэтому вся система состоит из служб, которые обычно выполняют некоторые операции. Архитектура основана на этом. Представьте себе облако серверов, в каждом из которых есть хотя бы одна служба, например WeatherPredictor, ForexCalculator и т.д.

Против этого у вас есть ресурсо-ориентированная архитектура ROA, где система состоит из ресурсов. Представьте себе облако серверов, где каждый из них представляет один или несколько ресурсов, например, Weather, Euro, Dollar,...

ROA обычно используется в больших открытых системах из-за преимуществ, которые он приносит. В архитектурах ROA вы обычно найдете службы RESTfull. Службы RESTfull в настоящее время обычно реализуются только с JSON через HTTP или XML через HTTP.

SOA используется повсюду. В SOA вы обычно находите SOAP через HTTP, SOAP поверх JMS и т.д.

Но в какой-то день вы можете столкнуться с веб-сервисом RESTfull, который по какой-то странной причине использует SOAP (возможно, разработчикам необходимо было встроить сообщение в конверт SOAP по какой-то неясной причине). Я думаю, вы не найдете этот пример в реальной жизни, но просто для того, чтобы показать вам, что SOA или ROA не подразумевают использование протокола, в данном случае SOAP.

Надеюсь, это поможет.

Ответ 3

Основываясь на моем опыте, я понимаю следующее:

ROA - это API-оболочки для моделей данных, SOA - API по функциональным модулям.

ROA используется для предоставления операций CRUD. SOA используется для связывания модулей во время выполнения.

ROA изолирует потребителей API от изменений в моделях данных. SOA позволяет отказаться от замены модулей, упрощая развертывание и настройку.

Ответ 4

ROA (Resource Oriented Architecture) - просто причудливое имя для SOA (сервис-ориентированная архитектура) с использованием служб REST.

  • Основным преимуществом SOA over ROA является более зрелая поддержка инструментов, безопасность типов XML-запросов.
  • Основным преимуществом ROA является простота внедрения, гибкость дизайна и легкий подход к вещам.

Для Далее