Stateful Web Services

[quote=clone_zealot]

Fonte: http://java.sun.com/developer/technicalArticles/WebServices/restful/

Mas eu entendi oq vc quis dizer: os dois utilizam-se das mesmas palavras. O seu único erro foi vincular fortemente um ao outro.[/quote]

O que tem de tão complicado em entender que REST é uma arquitetura e o S não é de serviço?

Entendido isso fica fácil perceber o engano; implementações são baseadas em padrões arquiteturais, não o contrário.

[quote=mochuara][quote=Emerson Macedo]Antes de postar gostaria de esclarecer os termos que estão sendo usados nesse tópico de forma um pouco confusa:
SOA - Estilo arquitetural que cuida de gestão e integração de aplicações baseado em serviços (que podem ser SOAP ou REST ou qualquer outra coisa)
SOAP - Protocolo para criação de serviços.
REST - Estilo arquitetural baseado totalmente no protocolo HTTP
[/quote]

REST não é uma arquitetura baseada em serviços, portanto REST e SOA nada tem a ver.

REST não é baseado no protocolo HTTP.

[/quote]
É fato que não é necessário usar HTTP mas para o contexto dessa discussão e para as implementações conhecidas REST é sim baseado no protocolo HTTP. Você poderia até aproveitar esse momento pra apresentar-nos a implementação REST sem ser por HTTP que você conhece, pois eu desconheço.

Quanto a REST e SOA, acho que você confundiu um pouco, pois SOA não diz nada sobre como os serviços devem ser implementados e já existe inclusive ESBs que suportam REST e nem sequer precisamos de ESB para termos SOA.

Falar que REST não é uma arquitetura baseada em HTTP que é besteira! você já viu alguma vez REST não ser construído sem ser baseado em HTTP? Agora vamos abrir sockets e começar a trafegar dados usando REST?

Você pode digitar REST no google e não vai uma única fonte que não vai falar de REST com HTTP.

Eu entendi o que você quiz dizer, mas acho que você esta entendendo errado… SOA é para uma coisa, REST é para outra, mas você pode usar REST para implementar SOA.

[quote= mochuara]
Novamente, se informe sobre o assunto ou então cite suas fontes para que possamos discutir.[/quote]

http://www.google.com/search?&q=SOA%2BREST

[quote=clone_zealot]

Fonte: http://java.sun.com/developer/technicalArticles/WebServices/restful/

Mas eu entendi oq vc quis dizer: os dois utilizam-se das mesmas palavras. O seu único erro foi vincular fortemente um ao outro.[/quote]

Realmente não esta acoplado ao HTTP, mas na prática, existe alguma forma de praticar REST sem ser com HTTP?

[quote=mochuara][quote=DaviPiala]Vc não me entendeu, ou melhor dizendo não fui claro o suficiente, eu disse que podemos colocar inteligência no ESB a ponto de ele trocar um serviço por outro serviço, sem o cliente ficar sabendo. ESB também pode alterar os parametros mensagem original para adequar a mensagem para consumir o serviço, esse processo é transparente.

[/quote]

Isso se chama depender de interfaces, não de implementação. Das coisas mais básicas na computação.
[/quote]

Sim, mas no ESB vc tem muito mais suporte que somente isso, vc pode implementar lógica nessa camada.

Exato, o discurso de SOA está muito mais ligado preocupado com o negócio do que com a tecnologia.

Também estou curioso pra ver.

Ficou notório que preciso ler muito mais sobre o assunto.

Na MJ deste mês tem um artigo sobre REST que já li superficialmente (sem me deter nas dúvidas). Porém, me lembro bem (e acabei de ler na Wikipedia) esse termo foi cunhado pelo criador da especificação HTTP, Roy Fielding, em sua tese de doutorado.

Não sei ainda se somente isso seria necessário para um acoplamento REST-HTTP. Entretanto, me parece que os verbos utilizados (GET, PUT, DELETE, etc) são da especificação HTTP, não?

Como costumo dizer, não estou querendo gerar flame. Estou querendo entender mesmo. :wink:

Segue mais uma referência (que ainda não li), essa do pai da criança: http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm

Bom, só pra falarmos um pouco mais de estilo de arquitetura - WOA - http://www.infoq.com/news/2009/06/hinchcliffe-REST-WOA e se pegarem os slides do gartner, o qual criou o acrônimo, verá que é um estilo derivado do SOA. Na prática é SOA, apenas mudaram o acrônimo para representar um estilo definido e vender isso ao mercado.

Também facilita a linguagem entre os desenvolvedores, que é um dos papéis do Pattern :slight_smile:

PS: O tópico ficou doido de vez !! :smiley:

[quote=Kenobi]Bom, só pra falarmos um pouco mais de estilo de arquitetura - WOA - http://www.infoq.com/news/2009/06/hinchcliffe-REST-WOA e se pegarem os slides do gartner, o qual criou o acrônimo, verá que é um estilo derivado do SOA. Na prática é SOA, apenas mudaram o acrônimo para representar um estilo definido e vender isso ao mercado.

Também facilita a linguagem entre os desenvolvedores, que é um dos papéis do Pattern :slight_smile:

[/quote]

Então tá, vamos partir do princípio. De uma forma bem genérica e abstrata, o WOA seria o SOA que usa a WEB como middleware? Ou não? Pois é isso que está sedimentado no meu crânio. Se eu estiver com um conceito errado sedimentado, vai ser um problema entender o resto.

Verdade.
E eu to endoidando junto.

WOA seria o padrão convencionado de utilizar estilo Restful, mais hypermedia entre outros elementos como ATOM, para mensageria…seria um SOA light !!

Blz. Vlw a resposta.

E quem faz o meio de campo?

Eu entendi que o Webber, na primeira palestra no Falando em Java 2009, criticou os ESBs, principalmente pela escalabilidade e o “macarrão” encapsulado, usando justamente esse argumento para defender a WEB como grande middleware. Entendi direito?

Blz. Vlw a resposta.

E quem faz o meio de campo?

Eu entendi que o Webber, na primeira palestra no Falando em Java 2009, criticou os ESBs, principalmente pela escalabilidade e o "macarrão" encapsulado, usando justamente esse argumento para defender a WEB como grande middleware. Entendi direito?[/quote]

Entendeu exatamente certo e o meio de campo é feito por URIs, links através de hypermedia. Agora, como fica governança para o caso de desenvolvimento entre departamentos, falta de contratos e por aí vai , são questões que eu também levantei nesse tópico > http://www.guj.com.br/posts/list/30/127676.java

Bem, vamos fazer uma pausa para o café, e definirmos ALGUNS pontos que nós podemos concluir até agora:

  • Temos SOA, que pode ser implementada com WS, ou não;
  • Temos WS, que pode ser implementado como SOAP, ou REST(tecnologias que dominam o mercado. Alguém pode ter outra, mas desconheço)
  • Temos o HTTP, que é um protocolo de comunicação;
  • Um dos protocolos de comunicação mais usados na WEB é o HTTP;

Após isto, podemos ver que faz bastante sentido fundirmos REST com HTTP, mas, analisando bem, os dois são duas tecnologias que podem viver isoladas.

@celso.martins: e REST não usa como verbos o GET, PUT, POST etc.
Como está no artigo do Sun Developer Network, que a pouco passei: "REST is an analytical description of the existing web architecture, and thus the interplay between the style and the underlying HTTP protocol appears seamless."
Os dois PARECEM ser indisolúveis, mas não necessariamente o são.

E sempre é bom vermos discussões interessantes =)

SOA light parece que é mais fraco ou tem limitações em relação ao SOA “original”. Pode explicar melhor?