REST vs. SOAP - не поддерживает транзакции? - PullRequest
6 голосов
/ 09 июня 2009

Я едва исследую архитектуру REST и SOAP как SOA в моей архитектуре. Сравнивая их, я слышал, что одним из недостатков REST является то, что он не поддерживает «транзакции» - о чем они говорят? Поскольку я могу сказать, что он поддерживает операции CRUD только из базовых HTTP-протоколов GET, POST, DELETE и т. Д.

Может кто-нибудь уточнить, пожалуйста? Если я выберу REST, сможет ли он поддерживать мое трудоемкое рабочее место с операциями CRUD или мне лучше пойти по SOAP-маршруту?

Ответы [ 4 ]

10 голосов
/ 09 июня 2009

Если вам нужно выполнять транзакции по нескольким вызовам, вам лучше не выбирать ни то, ни другое, например удаленное взаимодействие или выполнение двоичной сериализации в wcf. И REST, и SOAP предназначены для сохранения состояния. Соединение открывается, выполняет действие, а затем снова закрывается. При этом wcf поддерживает транзакционную поддержку через SOAP, поэтому, если вам придется выбирать между двумя, это будет один.

8 голосов
/ 09 июня 2009

Тип транзакции, на которую вы ссылаетесь - это распределенная транзакция. Это позволяет клиенту выполнить несколько вызовов на сервере (или даже на нескольких разных серверах) и заставить их все зафиксировать или выполнить откат.

WCF поддерживает распределенные транзакции по протоколу WS-AtomicTransaction (WS-AT). Этот протокол ориентирован на SOAP. Поэтому для использования транзакций WCF необходимо использовать SOAP, а не REST.

Хотя у вас не будет распределенных транзакций между вызовами с REST, вы все равно можете использовать транзакции базы данных в рамках определенного метода. Например, вы можете реализовать операцию POST, которая отправляет заказ и обновляет таблицы базы данных Order и OrderLine в одной транзакции в этом методе. Таким образом, только то, что ваше приложение интенсивно использует транзакции, не обязательно означает, что тип транзакций распределенных , которые являются проблемой для REST, будет важен в вашей среде.

5 голосов
/ 11 июня 2009

К цитата Рой Филдинг со вчерашнего дня

Я считаю "транзакцию отдыха" оксюморон.

1 голос
/ 11 июня 2009

Взгляните на РЕТРО .

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