O documento discute as arquiteturas de aplicações Web 2.0 em Java, definindo o conceito de Web 2.0 e princípios como informação, colaboração e conteúdo multimídia. Explora aspectos da arquitetura Web como degradação suave, composição de serviços, componentes sem estado e AJAX. Fornece exemplos de arquiteturas escaláveis usadas em sites como eBay e discussões sobre frameworks para AJAX em Java. Conclui que é necessário profissionais talentosos e atualizados para construir aplicações Web.
1. Arquitetura de
aplicações Web 2.0 em
Java
I WEB SEM LIMITES
12 e 13 de dezembro de 2008
BRENO AUGUSTO DIAS VITORINO
brenovit@gmail.com
http://www.websemlimites.com.br/
2. Definição Web 2.0
“Web 2.0 é uma revolução de negócios na indústria
de computadores provocada pela mudança da
Internet como plataforma e pelas tentativas de
entender as regras para o sucesso nessa nova
plataforma”
Tim O'Reilly, criador do termo
8. Arquitetura Web
• Conceito: definição dos componentes de
software de uma aplicação, suas
propriedades e relações.
• Pontos analisados:
1. Degradação suave
2. Composição de serviços
3. Componentes sem estado
4. AJAX
9. 1. Degradação suave (graceful degradation)
• 2 tipos de degradação:
• No lado do cliente (Javascript, HTML, etc.)
• No lado do servidor (Java)
11. 2. Composição de serviços
• Serviço Web (Web service): são um conjunto de APIs
chamadas via mensagens sobre HTTP, na Internet.
• Exemplo (JAX-WS):
@WebMethod(operationName = quot;executeSalequot;)
public SaleResponseTO executeSale(
@WebParam(name = quot;saleRequestquot;) SaleRequestTO
saleRequest, @WebParam(name = quot;terminalquot;) TerminalTO
terminal)
throws AuthorizationFault
12. Exemplo de composição de serviços
Fonte: http://www.msarchitecturejournal.com/pdf/Journal17.pdf
• Duwamish Delivery: entrega internacional de mercadorias
• Contoso Mobile: mensagens SMS
• Fabrikam: monitora o estado de entrega das mercadorias
• Adventure Works: varejo
13. 3. Componentes sem estado
• eBay's Architecture Principles (http://www.se-
radio.net/podcast/2008-09/episode-109-ebay039s-architecture-
principles-randy-shoup)
• Cada componente de software
(item, transação, cliente) não possui estado, para
que o sistema possa ser escalável.
• Lições:
• Sem HttpSession
• Sem Java EE
• Sem JTA (transação distribuída)
14. Arquitetura utilizada em outros sites
Fonte: Why most large-scale Web sites are not
written in Java
(http://natishalom.typepad.com/nati_shaloms_blog/2007/10/why-most-
scalab.html)
15. 4. AJAX
• Recuperar dados do servidor de forma
assíncrona, sem a necessidade de refresh da
página.