Arquitetura de aplicações Web 2.0 em Java

18
Arquitetura de aplicações Web 2.0 em Java BRENO AUGUSTO DIAS VITORINO [email protected] http://www.websemlimites.com.br/ I WEB SEM LIMITES 12 e 13 de dezembro de 2008

Transcript of Arquitetura de aplicações Web 2.0 em Java

Page 1: Arquitetura de aplicações Web 2.0 em Java

Arquitetura de

aplicações Web 2.0 em

Java

BRENO AUGUSTO DIAS VITORINO

[email protected]

http://www.websemlimites.com.br/

I WEB SEM LIMITES

12 e 13 de dezembro de 2008

Page 2: Arquitetura de aplicações Web 2.0 em Java

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

Page 3: Arquitetura de aplicações Web 2.0 em Java

Princípios Web 2.0

Informação é tudo!

Ambiente colaborativo

Page 4: Arquitetura de aplicações Web 2.0 em Java

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/

Page 5: Arquitetura de aplicações Web 2.0 em Java

Princípios Web 2.0

Interfaces amigáveis

Conteúdo multimídia

Page 6: Arquitetura de aplicações Web 2.0 em Java

Folksonomy: categorização pública

Page 7: Arquitetura de aplicações Web 2.0 em Java

Para onde vamos?

Page 8: Arquitetura de aplicações Web 2.0 em Java

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

Page 9: Arquitetura de aplicações Web 2.0 em Java

1. Degradação suave (graceful degradation)

• 2 tipos de degradação:

• No lado do cliente (Javascript, HTML, etc.)

• No lado do servidor (Java)

Page 10: Arquitetura de aplicações Web 2.0 em 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" />

Page 11: Arquitetura de aplicações Web 2.0 em Java

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

Page 12: Arquitetura de aplicações Web 2.0 em Java

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

Page 13: Arquitetura de aplicações Web 2.0 em Java

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)

Page 14: Arquitetura de aplicações Web 2.0 em Java

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)

Page 15: Arquitetura de aplicações Web 2.0 em Java

4. AJAX• Recuperar dados do servidor de forma

assíncrona, sem a necessidade de refresh da

página.

Page 16: Arquitetura de aplicações Web 2.0 em Java

Arcabouços para AJAX em Java

Google Web Toolkit

Direct Web Remoting

Page 17: Arquitetura de aplicações Web 2.0 em Java

Conclusão

Precisamos de

pessoal

talentoso e

atualizado para atualizado para

construir as

aplicações Web,

não code

monkeys.

Page 18: Arquitetura de aplicações Web 2.0 em Java

Obrigado!

Contato: http://brenovitorino.wordpress.com