SlideShare uma empresa Scribd logo
1 de 18
Baixar para ler offline
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/
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:
 1. Degradação suave
 2. Composição de serviços
 3. Componentes sem estado
 4. 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=quot;org.apache.catalina.ha.tcp.SimpleTcpClusterquot;
    channelSendOptions=quot;8quot;>

   <Manager
      className=quot;org.apache.catalina.ha 
                 session.DeltaManagerquot;
      expireSessionsOnShutdown=quot;falsequot;
      notifyListenersOnReplication=quot;truequot;/>

   <Channel
      className=quot;org.apache.catalina.tribes 
                  .group.GroupChannelquot;>
      <Membership
         className=quot;org.apache.catalina.tribes
                     .membership.McastServicequot;
         address=quot;228.0.0.4quot;
         port=quot;45564quot;
         frequency=quot;500quot;
         dropTime=quot;3000quot; />
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
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
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)
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
   construir as
   aplicações Web,
   não code
   monkeys.
Obrigado!

Contato: http://brenovitorino.wordpress.com

Mais conteúdo relacionado

Mais procurados

Portlets: Let them make your virtual world
Portlets: Let them make your virtual worldPortlets: Let them make your virtual world
Portlets: Let them make your virtual world
elliando dias
 

Mais procurados (20)

Criando componentes interativos em páginas AMP com amp-bind
Criando componentes interativos em páginas AMP com amp-bindCriando componentes interativos em páginas AMP com amp-bind
Criando componentes interativos em páginas AMP com amp-bind
 
Java Web Fácil com VRaptor
Java Web Fácil com VRaptorJava Web Fácil com VRaptor
Java Web Fácil com VRaptor
 
JSP - Java Serves Pages
JSP - Java Serves PagesJSP - Java Serves Pages
JSP - Java Serves Pages
 
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
 
Workshop Ruby on Rails - Code Girl (Programar meu Futuro), por Gislene Pereir...
Workshop Ruby on Rails - Code Girl (Programar meu Futuro), por Gislene Pereir...Workshop Ruby on Rails - Code Girl (Programar meu Futuro), por Gislene Pereir...
Workshop Ruby on Rails - Code Girl (Programar meu Futuro), por Gislene Pereir...
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToys
 
Web 1.0
Web 1.0Web 1.0
Web 1.0
 
Nadando em Dinheiro com jQuery
Nadando em Dinheiro com jQueryNadando em Dinheiro com jQuery
Nadando em Dinheiro com jQuery
 
Web Standards
Web StandardsWeb Standards
Web Standards
 
Spa com Vue.js
Spa com Vue.jsSpa com Vue.js
Spa com Vue.js
 
Uma Olhada no Netbeans 6
Uma Olhada no Netbeans 6Uma Olhada no Netbeans 6
Uma Olhada no Netbeans 6
 
Guia prático de desenvolvimento front-end para django devs
Guia prático de desenvolvimento front-end para django devsGuia prático de desenvolvimento front-end para django devs
Guia prático de desenvolvimento front-end para django devs
 
Portlets: Let them make your virtual world
Portlets: Let them make your virtual worldPortlets: Let them make your virtual world
Portlets: Let them make your virtual world
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToys
 
Novidades do PHP 5.3 e 6
Novidades do PHP 5.3 e 6Novidades do PHP 5.3 e 6
Novidades do PHP 5.3 e 6
 
Páginas dinâmicas
Páginas dinâmicasPáginas dinâmicas
Páginas dinâmicas
 
.NET Core + MongoDB + Selenium: extração de dados de páginas Web - Databases SP
.NET Core + MongoDB + Selenium: extração de dados de páginas Web - Databases SP.NET Core + MongoDB + Selenium: extração de dados de páginas Web - Databases SP
.NET Core + MongoDB + Selenium: extração de dados de páginas Web - Databases SP
 
Framework web 02 - 2016
Framework web 02 - 2016Framework web 02 - 2016
Framework web 02 - 2016
 
Fundamentos de Programação Front-End
Fundamentos de Programação Front-EndFundamentos de Programação Front-End
Fundamentos de Programação Front-End
 
Introdução ao DotNetNuke
Introdução ao DotNetNukeIntrodução ao DotNetNuke
Introdução ao DotNetNuke
 

Semelhante a Arquitetura de aplicações Web 2.0 em Java

(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScript(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScript
Carlos Santos
 
LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04
Carlos Santos
 
Introdução ao Windows Azure - Sessão 1 (mais teórica)
Introdução ao Windows Azure - Sessão 1 (mais teórica)Introdução ao Windows Azure - Sessão 1 (mais teórica)
Introdução ao Windows Azure - Sessão 1 (mais teórica)
Giovanni Bassi
 
T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)
Carlos Santos
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sites
thiagolima
 
Desenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHPDesenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHP
elliando dias
 
Pagestackr - RejectConf SP 2007
Pagestackr - RejectConf SP 2007Pagestackr - RejectConf SP 2007
Pagestackr - RejectConf SP 2007
George Guimarães
 

Semelhante a Arquitetura de aplicações Web 2.0 em Java (20)

Evolução das arquiteturas para aplicações Web
Evolução das arquiteturas para aplicações WebEvolução das arquiteturas para aplicações Web
Evolução das arquiteturas para aplicações Web
 
(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScript(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScript
 
LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04
 
Workshop Ruby on Rails dia 2 ruby-pt
Workshop Ruby on Rails dia 2  ruby-ptWorkshop Ruby on Rails dia 2  ruby-pt
Workshop Ruby on Rails dia 2 ruby-pt
 
Introdução ao Windows Azure - Sessão 1 (mais teórica)
Introdução ao Windows Azure - Sessão 1 (mais teórica)Introdução ao Windows Azure - Sessão 1 (mais teórica)
Introdução ao Windows Azure - Sessão 1 (mais teórica)
 
Curso ASP.Net - Módulo 1
Curso ASP.Net - Módulo 1Curso ASP.Net - Módulo 1
Curso ASP.Net - Módulo 1
 
T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sites
 
Desenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHPDesenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHP
 
Pagestackr - RejectConf SP 2007
Pagestackr - RejectConf SP 2007Pagestackr - RejectConf SP 2007
Pagestackr - RejectConf SP 2007
 
Ruby On Rails Regis
Ruby On Rails RegisRuby On Rails Regis
Ruby On Rails Regis
 
Introdução ao Asp.Net Mvc
Introdução ao Asp.Net MvcIntrodução ao Asp.Net Mvc
Introdução ao Asp.Net Mvc
 
Apache Wicket
Apache WicketApache Wicket
Apache Wicket
 
"Desmistificando o Java ME" CCT-CEJUG Maio 2008
"Desmistificando o Java ME" CCT-CEJUG Maio 2008"Desmistificando o Java ME" CCT-CEJUG Maio 2008
"Desmistificando o Java ME" CCT-CEJUG Maio 2008
 
Desmistificando o Java Me Cejug Maio2008 Vando
Desmistificando o Java Me Cejug Maio2008 VandoDesmistificando o Java Me Cejug Maio2008 Vando
Desmistificando o Java Me Cejug Maio2008 Vando
 
Rest Teoria E Pratica
Rest Teoria E PraticaRest Teoria E Pratica
Rest Teoria E Pratica
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
 
Comet - ReverseAjax com DWR - Resumo
Comet - ReverseAjax com DWR - ResumoComet - ReverseAjax com DWR - Resumo
Comet - ReverseAjax com DWR - Resumo
 
Melhorando A Performance Da Sua Aplicação Web
Melhorando A Performance Da Sua Aplicação WebMelhorando A Performance Da Sua Aplicação Web
Melhorando A Performance Da Sua Aplicação Web
 
Construindo um sistema distribuido usando rest
Construindo um sistema distribuido usando restConstruindo um sistema distribuido usando rest
Construindo um sistema distribuido usando rest
 

Mais de Breno Vitorino

Linux: X Window System e Gerenciadores de janelas
Linux: X Window System e Gerenciadores de janelasLinux: X Window System e Gerenciadores de janelas
Linux: X Window System e Gerenciadores de janelas
Breno Vitorino
 
Linux: Kernel, Runlevels e Virtualização
Linux: Kernel, Runlevels e VirtualizaçãoLinux: Kernel, Runlevels e Virtualização
Linux: Kernel, Runlevels e Virtualização
Breno Vitorino
 
Linux: Instalação de aplicativos
Linux: Instalação de aplicativosLinux: Instalação de aplicativos
Linux: Instalação de aplicativos
Breno Vitorino
 
Introdução ao Software Livre e Linux
Introdução ao Software Livre e LinuxIntrodução ao Software Livre e Linux
Introdução ao Software Livre e Linux
Breno Vitorino
 
FSM, vetores e funções em PHP
FSM, vetores e funções em PHPFSM, vetores e funções em PHP
FSM, vetores e funções em PHP
Breno Vitorino
 
Validação e Operações CRUD em PHP
Validação e Operações CRUD em PHPValidação e Operações CRUD em PHP
Validação e Operações CRUD em PHP
Breno Vitorino
 
Fundamentos de PHP, phpMyAdmin e MySQL (parte 2)
Fundamentos de  PHP, phpMyAdmin e MySQL (parte 2)Fundamentos de  PHP, phpMyAdmin e MySQL (parte 2)
Fundamentos de PHP, phpMyAdmin e MySQL (parte 2)
Breno Vitorino
 
Fundamentos de PHP, phpMyAdmin e MySQL (parte 1)
Fundamentos de  PHP, phpMyAdmin e MySQL (parte 1)Fundamentos de  PHP, phpMyAdmin e MySQL (parte 1)
Fundamentos de PHP, phpMyAdmin e MySQL (parte 1)
Breno Vitorino
 
Introdução à Arquitetura Web
Introdução à Arquitetura WebIntrodução à Arquitetura Web
Introdução à Arquitetura Web
Breno Vitorino
 
Como criar blogs: WordPress.com
Como criar blogs: WordPress.comComo criar blogs: WordPress.com
Como criar blogs: WordPress.com
Breno Vitorino
 

Mais de Breno Vitorino (16)

Linux: X Window System e Gerenciadores de janelas
Linux: X Window System e Gerenciadores de janelasLinux: X Window System e Gerenciadores de janelas
Linux: X Window System e Gerenciadores de janelas
 
Linux: Kernel, Runlevels e Virtualização
Linux: Kernel, Runlevels e VirtualizaçãoLinux: Kernel, Runlevels e Virtualização
Linux: Kernel, Runlevels e Virtualização
 
Linux: Instalação de aplicativos
Linux: Instalação de aplicativosLinux: Instalação de aplicativos
Linux: Instalação de aplicativos
 
Introdução ao Software Livre e Linux
Introdução ao Software Livre e LinuxIntrodução ao Software Livre e Linux
Introdução ao Software Livre e Linux
 
Modelo de Camadas
Modelo de CamadasModelo de Camadas
Modelo de Camadas
 
Linguagem Java - Conceitos e Técnicas
Linguagem Java - Conceitos e TécnicasLinguagem Java - Conceitos e Técnicas
Linguagem Java - Conceitos e Técnicas
 
Criando seu Blog
Criando seu BlogCriando seu Blog
Criando seu Blog
 
FSM, vetores e funções em PHP
FSM, vetores e funções em PHPFSM, vetores e funções em PHP
FSM, vetores e funções em PHP
 
Validação e Operações CRUD em PHP
Validação e Operações CRUD em PHPValidação e Operações CRUD em PHP
Validação e Operações CRUD em PHP
 
Fundamentos de PHP, phpMyAdmin e MySQL (parte 2)
Fundamentos de  PHP, phpMyAdmin e MySQL (parte 2)Fundamentos de  PHP, phpMyAdmin e MySQL (parte 2)
Fundamentos de PHP, phpMyAdmin e MySQL (parte 2)
 
Fundamentos de PHP, phpMyAdmin e MySQL (parte 1)
Fundamentos de  PHP, phpMyAdmin e MySQL (parte 1)Fundamentos de  PHP, phpMyAdmin e MySQL (parte 1)
Fundamentos de PHP, phpMyAdmin e MySQL (parte 1)
 
Introdução ao PHP
Introdução ao PHPIntrodução ao PHP
Introdução ao PHP
 
Sistema gerenciador de conteúdo
Sistema gerenciador de conteúdoSistema gerenciador de conteúdo
Sistema gerenciador de conteúdo
 
Introdução à Arquitetura Web
Introdução à Arquitetura WebIntrodução à Arquitetura Web
Introdução à Arquitetura Web
 
Como criar blogs: WordPress.com
Como criar blogs: WordPress.comComo criar blogs: WordPress.com
Como criar blogs: WordPress.com
 
Uma visao geral sobre blogs
Uma visao geral sobre blogsUma visao geral sobre blogs
Uma visao geral sobre blogs
 

Último

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
Natalia Granato
 

Último (6)

Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 

Arquitetura de aplicações Web 2.0 em Java

  • 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
  • 3. Princípios Web 2.0 Informação é tudo! Ambiente colaborativo
  • 4. 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/
  • 5. Princípios Web 2.0 Interfaces amigáveis Conteúdo multimídia
  • 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)
  • 10. Cluster: Configuração no Tomcat <Cluster className=quot;org.apache.catalina.ha.tcp.SimpleTcpClusterquot; channelSendOptions=quot;8quot;> <Manager className=quot;org.apache.catalina.ha session.DeltaManagerquot; expireSessionsOnShutdown=quot;falsequot; notifyListenersOnReplication=quot;truequot;/> <Channel className=quot;org.apache.catalina.tribes .group.GroupChannelquot;> <Membership className=quot;org.apache.catalina.tribes .membership.McastServicequot; address=quot;228.0.0.4quot; port=quot;45564quot; frequency=quot;500quot; dropTime=quot;3000quot; />
  • 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.
  • 16. Arcabouços para AJAX em Java Google Web Toolkit Direct Web Remoting
  • 17. Conclusão Precisamos de pessoal talentoso e atualizado para construir as aplicações Web, não code monkeys.