Eric Newcomer, presidente da OSGi Alliance Enterprise Expert Group e antigo CTO da IONA Technologies, postou uma resposta para a questão “Qual é a diferença entre transações RESTful e transações Web Services?”
Eric prepara o contexto diferenciando transações em transações locais e globais, dizendo que transações locais não são particularmente interessantes já que elas trabalham da mesma forma em ambos os casos.
A questão portanto realmente pertence a transações globais – aquelas que envolvem mais do que um banco de dados, potencialmente em computadores diferentes – já que é ali que as coisas são muito diferentes.
Ele avisa que já que Web services são uma tecnologia, e REST é uma abordagem arquitetural a comparação pode não ser exata. No entanto ele atribui as diferenças em implementações de transações às diferentes suposições decorrentes da infraestrutura básica, especialmente relacionadas ao acesso distribuido a dados compartilhados, ou estado compartilhado.
Transações Web services ([…]WS-Transactions[…]) tem intenção de ser compatíveis com infraestrutura de TP [Transaction Processing] existentes. A abordagem REST, por outro lado, evolui da Web.
Como resultado ele diz que as diferenças chave entre os dois tipos de transações são baseadas em:
1. Como as transações são coordenadas entre sistemas participantes
Para compatibilidade com mecanismos de estado compartilhado existentes, transações Web services propagam o contexto transacional compartilhado entre participantes em uma transação global de forma que o acesso de cada participante ao estado compartilhado possa ser coordenado com os outros. Transações baseadas em REST assumem que apenas uma parte de uma transação global acessa o estado compartilhado em um determinado momento, algo como a passagem de um token. […] Eles são responsáveis apenas em saber o que têm que fazer quando eles recebem o estado compartilhado – quando é a vez deles.
2. Como os sistemas lidam com falha e recuperação de transações
Sistemas RESTful requerem um design muito diferente para tratamento de falha e recuperação, já que isso não pode ser automatizado, a escolha de um nível adicional de design e código de aplicação mostra resultado em um sistema mais bem situado para as pressuposições da Web.
Tenha certeza de verificar o artigo original.