Arquitetura de
aplicações Web 2.0 em
Java
BRENO AUGUSTO DIAS VITORINO
http://www.websemlimites.com.br/
I WEB SEM LIMITES
12 e 13 de dezembro de 2008
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
Princípios Web 2.0
Informação é tudo!
Ambiente colaborativo
Princípios Web 2.0
Poder para as pessoas!
Fonte: http://www.benderblog.com/2007/09/13/o-senado-tambem-e-a-nossa-vergonha-nacional/
Princípios Web 2.0
Interfaces amigáveis
Conteúdo multimídia
Folksonomy: categorização pública
Para onde vamos?
Arquitetura Web
• Conceito: definição dos componentes de software de uma aplicação, suas propriedades e relações.
• Pontos analisados:• Pontos analisados:1. Degradação suave2. Composição de serviços3. Componentes sem estado4. AJAX
1. Degradação suave (graceful degradation)
• 2 tipos de degradação:
• No lado do cliente (Javascript, HTML, etc.)
• No lado do servidor (Java)
Cluster: Configuração no Tomcat<Cluster
className="org.apache.catalina.ha.tcp.SimpleTcpCluster"channelSendOptions="8">
<ManagerclassName="org.apache.catalina.ha \
session.DeltaManager"expireSessionsOnShutdown="false"expireSessionsOnShutdown="false"notifyListenersOnReplication="true"/>
<Channel className="org.apache.catalina.tribes \
.group.GroupChannel"><Membership
className="org.apache.catalina.tribes.membership.McastService"
address="228.0.0.4"port="45564"frequency="500"dropTime="3000" />
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 = "executeSale")
public SaleResponseTO executeSale(
@WebParam(name = "saleRequest") SaleRequestTO saleRequest, @WebParam(name = "terminal") TerminalTO terminal)
throws AuthorizationFault
Exemplo de composição de serviços
• Duwamish Delivery: entrega internacional de mercadorias
• Contoso Mobile: mensagens SMS
• Fabrikam: monitora o estado de entrega das mercadorias
• Adventure Works: varejo
Fonte: http://www.msarchitecturejournal.com/pdf/Journal17.pdf
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 (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)
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)
4. AJAX• Recuperar dados do servidor de forma
assíncrona, sem a necessidade de refresh da
página.
Arcabouços para AJAX em Java
Google Web Toolkit
Direct Web Remoting
Conclusão
Precisamos de
pessoal
talentoso e
atualizado para atualizado para
construir as
aplicações Web,
não code
monkeys.
Obrigado!
Contato: http://brenovitorino.wordpress.com
Top Related