Являются ли веб-службы RESTful правильным способом повторного использования инфраструктуры? - PullRequest
4 голосов
/ 16 декабря 2009

Существует одно противоречие, которое я вижу при использовании Web API (RESTful service) для доступа к удаленной инфраструктуре. Буду признателен, если вы это прокомментируете. Рекомендация, исходящая из статьи «Веб-службы RESTful и« большие »веб-службы: принятие правильного архитектурного решения» [1], состоит в том, чтобы использовать веб-API, а не для специальной интеграции (a la 'mashup) и быстрое прототипирование. Эмпирические исследования, проведенные в [2], показывают, что эти рекомендации выполняются в случае повторного использования существующей информации и функциональности. Однако повторное использование инфраструктуры с веб-API не вписывается в задачу специальной интеграции. У меня сложилось впечатление, что инфраструктура обычно повторно используется в сценариях, где имеющиеся у меня ресурсы плохо масштабируются для решения проблемы, которую я хочу решить: большое количество данных, высокая пропускная способность, высокий уровень параллелизма. Тем не менее, Amazon предоставляет удаленный доступ к своей инфраструктуре (пространство хранения, очередь сообщений) как:

  • классические SOAP Web-сервисы (так называемые Big Web-сервисы) и
  • легкие веб-службы RESTful (так называемые веб-API).

Хотя ничего не написано, используют ли клиенты (описанные в тематических исследованиях Amazon Web Services) большие Web-сервисы или веб-API, тот факт, что Amazon предоставляет доступ к своей инфраструктуре в виде веб-API в качестве альтернативы, должен иметь значение.

Знаете ли вы, что может быть их мотивация? Известны ли вам случаи, когда люди повторно использовали инфраструкцию только для быстрого прототипирования? Или, может быть, для тестирования? Другими словами, если я хотел бы повторно использовать инфраструктуру, предлагаемую Amazon, в каком стиле API я должен использовать SOAP или REST в каких примерах ситуаций?

РЕДАКТИРОВАТЬ: В данном случае под инфраструктурой я имел в виду: пространство для хранения, вычислительную мощность, пропускную способность интернета. Поэтому мне интересно, используются ли такие ресурсы в специальной интеграции.


  1. Чезаре Паутассо, Олаф Циммерманн, Фрэнк Лейманн, Веб-сервисы RESTful против «больших» веб-сервисов: принятие правильного архитектурного решения , с. 805-814, Джинпенг Хуай, Робин Чен, Сяо-Уэнь Хон, Юньхао Лю, Вэй-Ин Ма, Эндрю Томкинс, Сяодун Чжан (ред.), Материалы 17-й Международной конференции World Wide Web , ACM Press, Пекин, Китай, апрель 2008 г.

  2. Хартманн, Бьорн и Дурли, Скотт и Клеммер, Скотт Р., Хакинг, смешивание, склеивание: понимание оппортунистического дизайна , IEEE Pervasive Computing , vol. 7, нет. 3, 46-54 (2008).

Ответы [ 3 ]

2 голосов
/ 16 декабря 2009

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

Обычно я хотел бы представить системы RESTful как те, которые я могу протестировать, просто вызвав команду через командную строку браузера. Приложения RESTful действительно легко тестировать, и, как правило, они очень подходят для тестирования с помощью насмешек.

1 голос
/ 17 декабря 2009

REST бесконечно проще в использовании, чем SOAP. FWIW, Google больше не использует SOAP, это все ОТДЫХ.

Единственное преимущество SOAP заключается в том, что вы получаете объекты для использования прямо из коробки. В REST вам либо понадобится инфраструктура, например JAX-RS, для создания этих объектов, либо анализ их вручную.

Еще одно огромное преимущество REST - вы можете видеть запросы в журналах доступа. Большинство SOAP запрашивает POST к одной и той же конечной точке, поэтому гораздо сложнее определить, что вы пытаетесь сделать. С другой стороны, REST обычно отправляет сообщения на определенные конечные точки, поэтому вы можете использовать их в своем веб-браузере без необходимости в модном приложении.

1 голос
/ 16 декабря 2009

Я думаю, что когда люди говорят об использовании существующей инфраструктуры с веб-сервисами RESTful, они имеют в виду, что они могут использовать существующие вещи, предназначенные для Интернета, а не использовать программное обеспечение, специально разработанное для веб-сервисов. Например, если у меня есть веб-сервис, использующий REST, я могу воспользоваться такими вещами, как прокси-серверы HTTP-кэширования, где для получения эквивалентной функциональности с SOAP мне понадобится нечто специализированное.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...