| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/04/2007 18:07:45
|
Mauricio Linhares
Moderador
![[Avatar]](/images/avatar/97af07a14cacba681feacf3012730892.jpg)
Membro desde: 09/01/2005 23:28:22
Mensagens: 3611
Localização: João Pessoa, Paraíba - Brasil
Offline
|
O InfoQ fez uma entrevista com o criador do framework Java para criação de aplicações que se baseiam no modelo REST, o Restlet, que acabou de chegar a sua versão 1.0.0. Na entrevista, Jérome comenta sobre a arquitetura REST, fala sobre o framework e ainda tece comentários sobre o suporte a aplicações REST de outros frameworks do mercado, como Rails.
Entrevista: Interview with Jérome Louvel
|
Blog pt-br | Blog en | My Last.fm | Blog de RPG
----------------------------------------
PBJUG - Grupo de Usuários Java da Paraíba | Paraíba.rb - Paraíba Ruby Brigade
How do we tell truths that might hurt? |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/04/2007 21:42:17
|
pcalcado
Moderador
![[Avatar]](/images/avatar/110eec23201d80e40d0c4a48954e2ff5.jpg)
Membro desde: 08/03/2004 17:19:35
Mensagens: 5156
Localização: Sydney - Australia
Offline
|
Fantástico. Tenho que baixar e testar este container
Engraçado que mais uma vez as pessoas estão fazendo as coisas do modo errado. Dos 4 ou 5 sistemas que se dizem REST que eu conheço profuncdamente a maioria é, na verdade, POX.
|
Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/04/2007 02:50:42
|
Mauricio Linhares
Moderador
![[Avatar]](/images/avatar/97af07a14cacba681feacf3012730892.jpg)
Membro desde: 09/01/2005 23:28:22
Mensagens: 3611
Localização: João Pessoa, Paraíba - Brasil
Offline
|
Acho que é aquele mesmo caso dos wenservices, será que o cara realmente precisa usar REST puro? Será que ele não precisa somente ficar mandando um XMLão pra um "cliente rico" mostrar e o usuário poder interagir?
Mas eu acho que a coisa vai terminar indo nesse caminho mesmo, principalmente se o WPF e XUL realmente vierem atrás do Flex, você faz uma interface completa pra sua aplicação ser exportada via REST e os clientes que se virem pra ficar fazendo as requisições HTTP em cima dela.
Engraçado, esse pensamento me deu um sentimento de deja vú
|
Blog pt-br | Blog en | My Last.fm | Blog de RPG
----------------------------------------
PBJUG - Grupo de Usuários Java da Paraíba | Paraíba.rb - Paraíba Ruby Brigade
How do we tell truths that might hurt? |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/04/2007 04:38:43
|
pcalcado
Moderador
![[Avatar]](/images/avatar/110eec23201d80e40d0c4a48954e2ff5.jpg)
Membro desde: 08/03/2004 17:19:35
Mensagens: 5156
Localização: Sydney - Australia
Offline
|
http://fragmental.com.br/blog/?p=331
Fragmental wrote:
POX x REST: Interfaces Padronizadas
April 23rd, 2007
Enquanto o GUJ tem sua massagem noturna eu respondo ao post do Maurício por aqui. O tema é REST x POX, mais especificamente: precisamos usar REST o tempo todo?
Pra você que estava hibernando há uns 12 meses, REST é um estilo arquitetural que se coloca como uma alternativa ao uso de SOAP e padrõesWS -* para criar WebServices. REST é interessante porque este estilo arquitetural é conhecido e utilizado há anos: é o estilo arquitetural que define a Web. Um sistema REST vai usar os métodos HTTP (GET, POST, PUT e DELETE), os content-types, os código de resposta e tudo mais que você ignora solenemente na maioria das aplicações web atuais mas que estão desenvolvidas e especificadas há mais de uma década.
Um possível problema seria de que as pessoas estão dizendo que usam REST quando na verdade apenas usam XML passando por HTTP, o chamadoPOX ( Plain Old XML, um primo do POJO). Este processo é exatamente a mesma coisa que utilizar SOAP com HTTP, exceto pelo fato de que o XML é personalizado (ao invés de 500 envelopes, um dentro do outro) e que não temos umWSDL (o que provavelmente é ruim).
Bom, a pergunta do Maurício é: isso é ruim? A resposta você já sabe: depende, mas depende do quê?
Quando se usa WebServices SOAP ou REST o que se quer é ter uma interface padronizada para um serviço. Há décadas nós temos serviços distribuídos sendoamplamente utilizados, o motivo de existir SOAP e outros é padronizar este ecossistema. Quando você padroniza algo como o protocolo de interface remota de todas as aplicações obviamente você vai pagar um preço em eficiência. Uma aplicação que segue um protocolo genérico como HTTP provavelmente não será tão eficiente em comunicação remota quanto um que segue um protocolo específico e especializado.
A partir do momento que você resolve utilizar uma interface genérica você assina um contrato. Se você me disser que seu sistema éRESTful eu tenho certeza que se eu fizer a requisição de um objeto inexistente seu sistema irá retornar um código de erro 404, e não um código 200 com um XML bonitinho e uma mensagem de erro. 200 pra mimsignifica uma só coisa: ?Ok, o objeto existe e seu conteúdo segue no corpo da mensagem?.
Ao fazer POX você quebra esta regra. Pode ser que seu sistema seja simples e que definir um mini-protocolo baseado em POX seja uma ótima solução, mas você acaba de inventar seu próprio padrão, que é exatamente o que o uso de WebServices tenta evitar. Mesmo para sistemas legados com seus próprios padrões (coisinhas em COBOL, por exemplo), nós temos oESB como tecnologia que converte mensagens para um formato intermediário, de modo que não sejam criados seus próprios padrões. A idéia por trás de REST não é abolir padrões mas sim ter uma especificação simples e eficiente, com um mínimo de primitivas e máxima extensibilidade.
|
Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/04/2007 15:35:55
|
leonardom
Virtual Machine Man
![[Avatar]](/images/avatar/7f5d04d189dfb634e6a85bb9d9adf21e.jpg)
Membro desde: 23/02/2003 11:41:23
Mensagens: 644
Localização: Anywhere
Offline
|
Muito bom texto Shoes!!!
|
"If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas."
George Bernard Shaw (1856 - 1950) - Irish dramatist - Nobel Prize of Literature, 1925 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/04/2007 21:15:33
|
AllMighty
JavaGuru
![[Avatar]](/images/avatar/c900197841211ba608f56.gif)
Membro desde: 16/08/2004 17:21:42
Mensagens: 265
Localização: São Paulo
Offline
|
Eu gosto muito de REST (acho que já disse isso por aqui antes ), mas POX não é nenhuma porcaria não. Só é preciso tomar cuidado para não botar nenhuma ação que não seja safe e idempotente atrás de um GET.
O Don Box tem escreveu coisas interessantes sobre isso.
|
Rafael de F. Ferreira
Blog: http://www.rafaelferreira.net/
Links miscelâneos: http://stoa.usp.br/rafaelferreira |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/04/2007 21:34:26
|
Mauricio Linhares
Moderador
![[Avatar]](/images/avatar/97af07a14cacba681feacf3012730892.jpg)
Membro desde: 09/01/2005 23:28:22
Mensagens: 3611
Localização: João Pessoa, Paraíba - Brasil
Offline
|
Rapaz, o problema todo de POX é que você tem que reinventar mais uma vez a roda do protocolo de comunicação, o que não é nem um pouco interessante do ponto de vista de um cliente REST.
Se você já tem o troço todo pronto lá, inventar pra quê? Até mensagem você pode mandar junto dos erros do HTTP
|
Blog pt-br | Blog en | My Last.fm | Blog de RPG
----------------------------------------
PBJUG - Grupo de Usuários Java da Paraíba | Paraíba.rb - Paraíba Ruby Brigade
How do we tell truths that might hurt? |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/04/2007 22:02:32
|
AllMighty
JavaGuru
![[Avatar]](/images/avatar/c900197841211ba608f56.gif)
Membro desde: 16/08/2004 17:21:42
Mensagens: 265
Localização: São Paulo
Offline
|
100% REST sobre HTTP, com PUT, POST, GET, DELETE, content-types padronizados (e não, application/xml não conta), sem geração de URIs por clientes, suportando e-tags e o c@&@!0 a quatro é excelente. Atompub rules!
Só estruturar seu serviço como recursos (lembrando que o espaço de recursos é potencialmente infinito) também é bom, mesmo se for necessário deixar de lado algumas das restrições REST, p ex, se o serviço não fizer uso de PUT e DELETE ou se depender de formatos de representação não padrões (qq coisa que não passou pelo IETF e não tem um tipo MIME oficial).
Tomando cuidado para evitar violar o HTTP (como o del.icio.us e bloglines fazem) ou botar semântica de ações nas URLs (como o Amazon Web Services faz), até uma solução POX simples é melhor que muita coisa por aí.
PS: Sou ignorante em BBcode, como faz para funcionar a tag [[list]]?
|
Rafael de F. Ferreira
Blog: http://www.rafaelferreira.net/
Links miscelâneos: http://stoa.usp.br/rafaelferreira |
|
|
 |
|
|