SOA/SOAP e ROA/REST

Boa tarde pessoal, andei lendo sobre SOAP e REST e me interessei pelo assunto a ponto de fazer minha monografia sobre o mesmo.
Mas o problema,como todos sabem é o problema.
Estive pensando e abordar o REST como aternativa ao SOAP na utilização de Web services.

Meu objetivo seria estudar em que casos é possível substituir SOAP pelo REST, colocar os 2 na “balança”.

Minha duvida é: este pensamento estaria correto?
Para quem entende mais do assunto, seria viável esta comparação?

Não conheço o assunto afundo pra ter uma idéia da profundidade do problema rsrsrs.

Abraços

[quote=minin]Boa tarde pessoal, andei lendo sobre SOAP e REST e me interessei pelo asunto a ponto de fazer minha monografia sobre o mesmo.
Mas o problema,como todos sabem é o problema.
Estive penando e abordar o REST como aternativa ao SOAP na utização de web services.

Meu objetivo seria estar em que casos é possível substtuir SOAP pelo REST, colocar os 2 na “balança”.

Minha duvida é: este pensamento estaria correto?
Para quem entende mais do assunto, seria viável esta comparação?

Nâo conheço o assunto afundo pra ter uma idéia da profundidade do problema rsrsrs.

Abraços[/quote]

Sim.

Nao. REST é um padrao arquitetural para sistemas escalaveis, SOAP é um formato binario de transferencia de documentos. Pra fazer sentido a comparacao deve ser entre SOAP vs. HTTP, ou entao SOA vs. REST/ROA.

[quote=cmoscoso]Nao. REST é um padrao arquitetural para sistemas escalaveis, SOAP é um formato binario de transferencia de documentos. Pra fazer sentido a comparacao deve ser entre SOAP vs. HTTP, ou entao SOA vs. REST/ROA.
[/quote]

Não viaja cara!!! Que tal um pouco de iniciativa e uma pesquisa no Google para não falar abobrinha?

http://www.google.com.br/search?q=SOAP+REST&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a

Em se tratando de SOA (Service-oriented architecture) o SOAP (Simple Object Access Protocol) que é protocolo para troca de informações baseado em XML.
Vale a pena dar uma olhadinha nesse artigo do InfoQ http://www.infoq.com/news/2008/06/whoa-woa

Faz um tempão que eu tento colocar REST para integração de sistemas, mas sempre acabo tendo que usar SOAP. Por que? Queria ou não, para coisas simples é mais fácil.

Botão direito, gerar WebServices, gerar client webservice.

Por mim, usava REST mas como tenho que fazer integrações com softwares de outros sistemas desenvolvidos por outras pessoas, a facilidade de uso acaba ganhando :frowning:

Opa pessoal, cada vez que mais leio mais em dúvida fico… surgem novos conceitos WOA, ROA …
Minha leitura em inglês não é la essas coisas…

Li no blog do Guilherme da Globo.com que comparar os dois é “injusto”, que cada um é bom para uma finalidade…

Eu estava pensando em falar em que casos cada altenativa seria mais viável.

Pensei também em falar sobre SOA e ROA ou WOA, mas ROA e WOA so vejo abordagens em meio a alguns artigos… e nada mais concreto.

Abraços

[quote=Rubem Azenha]Faz um tempão que eu tento colocar REST para integração de sistemas, mas sempre acabo tendo que usar SOAP. Por que? Queria ou não, para coisas simples é mais fácil.

Botão direito, gerar WebServices, gerar client webservice.

Por mim, usava REST mas como tenho que fazer integrações com softwares de outros sistemas desenvolvidos por outras pessoas, a facilidade de uso acaba ganhando :([/quote]

REST nao há geracao de cliente logo sua desculpa é furada!

Sem falar que usando SOAP qualquer alteracao no servico necessita gerar um novo cliente. :cry:

Você prestou atenção no que eu escreve? É justamente por REST não ter geração de cliente que eu acho que em alguns casos SOAP é mais “simples”.

[quote=cmoscoso]
Sem falar que usando SOAP qualquer alteracao no servico necessita gerar um novo cliente. :cry: [/quote]
Certo, talvez… mas se vocÊ alterar o serviço, tanto em REST como em SOAP você vai precisar de alguma forma alterar a aplicação.

Vou reformular entao…

Considerando apenas o fato que em REST vc provavelmente nao tera que gerar o cliente, haveria uma reducao de 50% nos cliques de botao para disponibilizar o servico, de acordo com o procedimento por vc descrito.

Se for pra considerar apenas o aspecto tecnico das solucoes e deixarmos de lado os aspectos politicos da substituicao de uma tecnologia ultrapassada e capacidade de escolher as ferramentas apropriadas, REST seria mais simples neste caso.

[quote=Rubem Azenha]
Certo, talvez… mas se vocÊ alterar o serviço, tanto em REST como em SOAP você vai precisar de alguma forma alterar a aplicação.[/quote]

Em relacao a integracao com software de terceiro, geracao de cliente nao te ajuda nada, pelo contrario, imagine se precisassemos reinstalar o GUJ a cada mudanca de layout. Com REST é parecido ja que o servico é descrito na medida em que é acessado.

Com REST eu não tenho que gerar o cliente, eu tenho que ESCREVER o cliente, usando um HttpCommons da vida.

Não estou falando que isso é o fim do mundo, mas que é mais fácil com “generate WSDL client” , é mais fácil…

[quote=cmoscoso]
Em relacao a integracao com software de terceiro, geracao de cliente nao te ajuda nada, pelo contrario, imagine se precisassemos reinstalar o GUJ a cada mudanca de layout. Com REST é parecido ja que o servico é descrito na medida em que é acessado.[/quote]
Com rest se você mudar o formato da resposta (se for, por exemplo, XML e você remover ou alterar uma tag) vai ter que alterar o código do client para fazer o parse da resposta.

Tenho a impressao que esta supervalorizando o cliente gerado por WSDL. Ele nada mais é do que um “stub” para acessar um servico remoto, sem as regras de negocio que pertencem a uma aplicacao cliente. Eventualmente alguem tera que escrever a aplicacao cliente que fara uso final do web service, isso independente de ser ROA ou SOA. REST é diferente na medida que o acesso se da por meio de uma interface generica e por isso praticamente todas as linguagens ja oferecem bibliotecas prontas para o acesso, nao havendo necessidade de escrever um cliente pra cada servico. Consequentemente, o codigo que utiliza o cliente geardo pelo WSDL poderia usar algo pronto como HttpClient para acessar um servico WOA.

[quote=Rubem Azenha]
Com rest se você mudar o formato da resposta (se for, por exemplo, XML e você remover ou alterar uma tag) vai ter que alterar o código do client para fazer o parse da resposta.[/quote]

Creio que REST nao diz nada sobre formatos, fica a criterio da sua implementacao. Mas clientes tem a oportunidade de ignorar aquilo que nao entendem. Por outro lado, servicos descritos por WSDL nao possuem esse privilegio.

Bom pessoal, andei lendo o livro RESTful Serviços Web e em um trecho do livro:

[quote]SOAP como concorrente do REST

Se você envolver-se em debates sobre o serviço web, ouvirá muito falar sobre isto. Você não escutará nada sobre ele aqui, pois isto dá a impressão errada. OS concorrentes principais das arquiteturas REST são as arquiteturas RPC, não tecnologias específicas como o SOAP. È verdade que, basicamente , todo serviço SOAP atual tem uma arquitetura RPC, mas o SOAP é apenas um modo de colocar um documento em um envelope adesivado, como o HTTP. O SOAP está ligado à arquitetura RPC, principalmente, por uma contingência histórica e pela geração atual de ferramentas automatizadas.
[/quote]

Esta comparação REST vs SOAP é digamos inválida, então estive pensando em modificar meu tema para algo em torno de Arquitetura REST/Arquitetura RPC com SOAP.

O que acham?
Abraços