Nessa apresentação apresento ambas arquiteturas e mostro que ao invés de escolher entre uma e outra, podemos tirar o que há de melhor em cada e utilizá-las de forma limpa, simples e objetiva.
2. João Gabriel Lima
• Engenheiro da Computação, especialista em
Software e Hardware
• Doutorando em Computação Aplicada
• Pesquisador em Mineração de dado e
Inteligência Computacional
• Professor Universitário
• IT Hacker, agregando novos conhecimentos
todos os dias
3. Como escolher?
Ambas possuem vantagens e desvantagens e
fica na mão do desenvolvedor determinar a
melhor abordagem para cada caso em
particular
REST e SOAP: Usar um dos dois ou ambos? – Prof. João Gabriel Lima
4. Vamos falar de REST
• É simples de entender
• Pode ser adotado em praticamente qualquer cliente ou servidor com
suporte a HTTP/HTTPS
• Facilidade no desenvolvimento
• Aproveitamento da infraestrutura web
• Esforço de aprendizado pequeno
REST e SOAP: Usar um dos dois ou ambos? – Prof. João Gabriel Lima
5. E o SOAP?
Baseado em XML, de três formas:
• O envelope, que define o conteúdo da mensagem e informa como
processá-la;
• Um conjunto de regras de codificação para os tipos de dados;
• O layout para os procedimentos de chamadas e respostas.
REST e SOAP: Usar um dos dois ou ambos? – Prof. João Gabriel Lima
6. E o SOAP?
Esse "envelope" é enviado por meio de (por exemplo) HTTP/HTTPS. E
uma RPC (Remote Procedure Call) é executada, e o envelope retorna
com as informações do documento XML formatado.
REST e SOAP: Usar um dos dois ou ambos? – Prof. João Gabriel Lima
7. E o SOAP: Vantagem
Uma das vantagens é o uso de um método de transporte "genérico".
Enquanto que o REST faz uso de HTTP/HTTPS, o SOAP pode usar
qualquer meio de transporte existente para enviar sua requisição,
desde SMTP até mesmo JMS (Java Messaging Service)
REST e SOAP: Usar um dos dois ou ambos? – Prof. João Gabriel Lima
8. E o SOAP: Desvantagem
O uso de XML tem sua natureza prolixa e o tempo necessário para
analisar o resultado apresentado.
Traz uma carga adicional não encontrada ao usar REST.
REST e SOAP: Usar um dos dois ou ambos? – Prof. João Gabriel Lima
10. REST vs SOAP | REST + SOAP
REST e o SOAP conseguem resolver um grande número de problemas
e desafios na web, e em muitos casos tanto um como o outro podem
ser utilizados para fazer o que querem os desenvolvedores.
Ambas as tecnologias podem ser misturadas e combinadas.
REST e SOAP: Usar um dos dois ou ambos? – Prof. João Gabriel Lima
11. REST + SOAP
REST é fácil de entender e extremamente acessível porém faltam
padrões, e a tecnologia é considerada apenas uma abordagem
arquitetural.
-
SOAP é um padrão da indústria, com protocolos bem definidos e um
conjunto de regras bem estabelecidas
REST e SOAP: Usar um dos dois ou ambos? – Prof. João Gabriel Lima
12. Casos onde o REST funciona bem:
• Situações em que há limitação de recursos e de largura de banda:
• A estrutura de retorno é em qualquer formato definido pelo
desenvolvedor e qualquer navegador pode ser usado.
• O REST usa o padrão de chamadas GET, PUT, POST e DELETE. O REST
também pode usar objetos XMLHttpRequest (a base do velho AJAX)
que a maioria dos navegadores modernos suporta.
REST e SOAP: Usar um dos dois ou ambos? – Prof. João Gabriel Lima
13. Casos onde o REST funciona bem:
• Operações totalmente sem-estado: se uma operação precisa ser
continuada, o REST não será a melhor opção.
• Se forem necessárias operações de CRUD stateless (Criar, Ler,
Atualizar e Excluir), o REST seria a melhor alternativa.
REST e SOAP: Usar um dos dois ou ambos? – Prof. João Gabriel Lima
14. Casos onde o REST funciona bem:
• Situações que exigem cache: se a informação pode ser armazenada
em cache, devido à natureza da operação stateless do REST, esse
seria um cenário adequado para a tecnologia.
REST e SOAP: Usar um dos dois ou ambos? – Prof. João Gabriel Lima
16. E o SOAP?
SOAP é bastante maduro e bem definido e vem com uma
especificação completa.
Já a abordagem REST é apenas isso: uma abordagem. Está totalmente
aberta
REST e SOAP: Usar um dos dois ou ambos? – Prof. João Gabriel Lima
17. Casos onde o SOAP funciona bem:
• Processamento e chamada assíncronos: se o aplicativo precisa de
um nível garantido de confiabilidade e segurança para a troca de
mensagens, então o SOAP 1.2 oferece padrões adicionais para esse
tipo de operação como por exemplo o WSRM (WS-Reliable
Messaging).
REST e SOAP: Usar um dos dois ou ambos? – Prof. João Gabriel Lima
18. Casos onde o SOAP funciona bem:
• Contratos formais: se ambos os lados (fornecedor e consumidor)
têm que concordar com o formato de intercâmbio de dados, então o
SOAP 1.2 fornece especificações rígidas para esse tipo de interação.
REST e SOAP: Usar um dos dois ou ambos? – Prof. João Gabriel Lima
19. Casos onde o SOAP funciona bem:
• Operações stateful: para o caso de o aplicativo precisar de
informação contextual e gerenciamento de estado com coordenação
e segurança, o SOAP 1.2 possui uma especificação adicional em sua
estrutura que apoia essa necessidade (segurança, transações,
coordenação etc.).
• Comparativamente, usar o REST exigiria que os desenvolvedores
construíssem uma solução personalizada.
REST e SOAP: Usar um dos dois ou ambos? – Prof. João Gabriel Lima
20. Considerações
Cada uma das abordagens tem sua utilidade.
Ambas têm problemas nos quesitos de segurança, camadas de
transporte etc.
a melhor abordagem é a flexibilidade, pois não importa qual seja o
problema, no mundo de hoje do desenvolvimento web, conta-se com
excelentes resultados ao fazer uso de um desses padrões
REST e SOAP: Usar um dos dois ou ambos? – Prof. João Gabriel Lima