SlideShare une entreprise Scribd logo
1  sur  19
Télécharger pour lire hors ligne
Evolução das arquiteturas
  para aplicações Web

 Breno Vitorino

 Jornada de Sistemas de Informação
               PUC Minas Contagem
                        07/05/2009
Arquitetura?

Decisões consistentes, aplicadas ao longo
do desenho do projeto, a fim de garantir
requisitos não-funcionais.
Requisitos não funcionais

          Segurança       Escalabilidade

                     Portabilidade
Disponibilidade

   Extensibilidade        Usabilidade
Arquitetura?

É o conjunto de decisões que, se feitas
incorretamente, podem causar o
cancelamento do projeto.” – Eoin Woods
Definir uma arquitetura é
importante para mitigar riscos

“Uma equipe descobriu que a aplicação
travava o banco de dados
periodicamente (deadlocks), e parava
toda uma universidade”
Web: Arquitetura básica
O básico: HTTP e URL
HTTP




               Site
Navegador
Primeira arquitetura: CGI

                Servidor Web

                   CGI
CGI: Proposta

    Permitir a execução de programas
●

    no servidor, a partir de uma URL,
    e visualizar sua resposta através
    do navegador.
CGI: Problema
    Segurança: não há um ambiente de
●

    execução do tipo sandbox.
Segunda arquitetura: Linguagens de
   script para páginas dinâmicas
                      Servidor Web

                    HTML + PHP
Linguagens de script: Proposta
<TABLE>
<?
 while($row = mysql_fetch_array($result)) {
?>
  <TR>
    <TD><?= $row['name'] ?></TD>
    <TD><?= $row['email'] ?></TD>
  </TR>
<?
 } // end while
?>
</TABLE>
Terceira arquitetura: MVC

               Contêiner Web
    Controle
                   Modelo

     Visão
                               BD
Quarta arquitetura:
Orientado a eventos

           void
           Button1_Click(Object
           sender, EventArgs e)
           {
             ...
           }
Quinta arquitetura: Serviços
           Web
@WebMethod (operationName = quot;executeSalequot;)
public SaleResponseTO executeSale (
 @WebParam (name = quot;saleRequestquot;)
 SaleRequestTO saleRequest,
 @WebParam (name = quot;terminalquot;)
 TerminalTO terminal) throws AuthorizationFault
Outras arquiteturas

  Aplicações Assíncronas – Robô no
●

  Twitter.
● Aplicações Offline – Google Gears
Conclusões

  Precisamos de pessoal especializado!
●


● Aplicação evolui de acordo com os novos

  paradigmas
Referências

    Blog do Marco Aurélio
●


        http://blog.marcomendes.com/2009/03/09/algumas-m
    Revista Engenharia de Software
●


        http://www.devmedia.com.br/esmag/
    ROZANSKI, Nick; Woods, Eóin: Software
●

    Systems Architecture. Addison-Wesley,
    2005.
Obrigado!


                     Breno Vitorino
http://brenovitorino.wordpress.com

Contenu connexe

Tendances

Web 2.0 e AJAX - Parte 3 / 3
Web 2.0 e AJAX - Parte 3 / 3Web 2.0 e AJAX - Parte 3 / 3
Web 2.0 e AJAX - Parte 3 / 3
David Ruiz
 
Desenvolvimento Web com ASP.NET 4
Desenvolvimento Web com ASP.NET 4Desenvolvimento Web com ASP.NET 4
Desenvolvimento Web com ASP.NET 4
Rodrigo Kono
 
Introdução aos aplicativos tipo canvas
Introdução aos aplicativos tipo canvasIntrodução aos aplicativos tipo canvas
Introdução aos aplicativos tipo canvas
Guilherme
 

Tendances (20)

ASP.NET WebForms x ASP.NET MVC
ASP.NET WebForms x ASP.NET MVCASP.NET WebForms x ASP.NET MVC
ASP.NET WebForms x ASP.NET MVC
 
Web 2.0 e AJAX - Parte 3 / 3
Web 2.0 e AJAX - Parte 3 / 3Web 2.0 e AJAX - Parte 3 / 3
Web 2.0 e AJAX - Parte 3 / 3
 
Apresentação angular js
Apresentação angular jsApresentação angular js
Apresentação angular js
 
WordPress como CMS
WordPress como CMSWordPress como CMS
WordPress como CMS
 
Como trabalhar com angular js
Como trabalhar com angular jsComo trabalhar com angular js
Como trabalhar com angular js
 
Wordpress - Mais que um gerenciador de blogs, um CMS completo!
Wordpress - Mais que um gerenciador  de blogs, um CMS completo!Wordpress - Mais que um gerenciador  de blogs, um CMS completo!
Wordpress - Mais que um gerenciador de blogs, um CMS completo!
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToys
 
Service Oriented Front-End Architecture
Service Oriented Front-End ArchitectureService Oriented Front-End Architecture
Service Oriented Front-End Architecture
 
Módulo: 5 – Desenvolvimento de Páginas Web Dinâmicas: Javascript
Módulo: 5 – Desenvolvimento de Páginas Web Dinâmicas: JavascriptMódulo: 5 – Desenvolvimento de Páginas Web Dinâmicas: Javascript
Módulo: 5 – Desenvolvimento de Páginas Web Dinâmicas: Javascript
 
Desenvolviemento web com ASP.Net e MVC
Desenvolviemento web com ASP.Net e MVCDesenvolviemento web com ASP.Net e MVC
Desenvolviemento web com ASP.Net e MVC
 
Desenvolvimento web com Software Livre
Desenvolvimento web com Software LivreDesenvolvimento web com Software Livre
Desenvolvimento web com Software Livre
 
Criando aplicações web com tecnologias Microsoft
Criando aplicações web com tecnologias MicrosoftCriando aplicações web com tecnologias Microsoft
Criando aplicações web com tecnologias Microsoft
 
Profissão Front-end
Profissão Front-endProfissão Front-end
Profissão Front-end
 
Introdução ao desenvolvimento de páginas web estáticas
Introdução ao desenvolvimento de páginas web estáticasIntrodução ao desenvolvimento de páginas web estáticas
Introdução ao desenvolvimento de páginas web estáticas
 
Desenvolvimento Web com ASP.NET 4
Desenvolvimento Web com ASP.NET 4Desenvolvimento Web com ASP.NET 4
Desenvolvimento Web com ASP.NET 4
 
Codebeer #2
Codebeer #2Codebeer #2
Codebeer #2
 
Fundamentos da Linguagem Digital - Modulo 02 - parte 01
Fundamentos da Linguagem Digital - Modulo 02 -  parte 01Fundamentos da Linguagem Digital - Modulo 02 -  parte 01
Fundamentos da Linguagem Digital - Modulo 02 - parte 01
 
ASP.NET Web Forms X ASP.NET MVC
ASP.NET Web Forms X ASP.NET MVCASP.NET Web Forms X ASP.NET MVC
ASP.NET Web Forms X ASP.NET MVC
 
Treinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVCTreinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVC
 
Introdução aos aplicativos tipo canvas
Introdução aos aplicativos tipo canvasIntrodução aos aplicativos tipo canvas
Introdução aos aplicativos tipo canvas
 

En vedette (10)

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)
 
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
 
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)
 
A evoluçao da web
A evoluçao da webA evoluçao da web
A evoluçao da web
 
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
 
Entendendo Domain-Driven Design
Entendendo Domain-Driven DesignEntendendo Domain-Driven Design
Entendendo Domain-Driven Design
 
Front end architecture
Front end architectureFront end architecture
Front end architecture
 
Apostila Fundamentos do Gerenciamento de Projetos
Apostila Fundamentos do Gerenciamento de ProjetosApostila Fundamentos do Gerenciamento de Projetos
Apostila Fundamentos do Gerenciamento de Projetos
 
Arquitetura cliente servidor
Arquitetura cliente servidorArquitetura cliente servidor
Arquitetura cliente servidor
 
Fundamentos da Gestão de Projetos
Fundamentos da Gestão de ProjetosFundamentos da Gestão de Projetos
Fundamentos da Gestão de Projetos
 

Similaire à Evolução das arquiteturas para aplicações Web

Arquitetura de aplicações Web 2.0 em Java
Arquitetura de aplicações Web 2.0 em JavaArquitetura de aplicações Web 2.0 em Java
Arquitetura de aplicações Web 2.0 em Java
Breno Vitorino
 
Surpreenda-se com o Silverlight 3
Surpreenda-se com o Silverlight 3Surpreenda-se com o Silverlight 3
Surpreenda-se com o Silverlight 3
Rodrigo Kono
 
Kyrios: Infra-estrutura livre para desenvolvimento de software
Kyrios: Infra-estrutura livre para desenvolvimento de softwareKyrios: Infra-estrutura livre para desenvolvimento de software
Kyrios: Infra-estrutura livre para desenvolvimento de software
Fábio Nogueira de Lucena
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sites
thiagolima
 
Tema 10 Automação Da Engenharia
Tema 10   Automação Da EngenhariaTema 10   Automação Da Engenharia
Tema 10 Automação Da Engenharia
bruno2003sp
 
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
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
eros.viggiano
 

Similaire à Evolução das arquiteturas para aplicações Web (20)

Arquitetura de aplicações Web 2.0 em Java
Arquitetura de aplicações Web 2.0 em JavaArquitetura de aplicações Web 2.0 em Java
Arquitetura de aplicações Web 2.0 em Java
 
Surpreenda-se com o Silverlight 3
Surpreenda-se com o Silverlight 3Surpreenda-se com o Silverlight 3
Surpreenda-se com o Silverlight 3
 
Kyrios: Infra-estrutura livre para desenvolvimento de software
Kyrios: Infra-estrutura livre para desenvolvimento de softwareKyrios: Infra-estrutura livre para desenvolvimento de software
Kyrios: Infra-estrutura livre para desenvolvimento de software
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sites
 
Curso ASP.Net - Módulo 1
Curso ASP.Net - Módulo 1Curso ASP.Net - Módulo 1
Curso ASP.Net - Módulo 1
 
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
 
Arquitetura de sistemas web
Arquitetura de sistemas webArquitetura de sistemas web
Arquitetura de sistemas web
 
O poder das Progressive Web Apps
O poder das Progressive Web AppsO poder das Progressive Web Apps
O poder das Progressive Web Apps
 
Tema 10 Automação Da Engenharia
Tema 10   Automação Da EngenhariaTema 10   Automação Da Engenharia
Tema 10 Automação Da Engenharia
 
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)
 
Demoiselle - Arquitetura
Demoiselle - ArquiteturaDemoiselle - Arquitetura
Demoiselle - Arquitetura
 
Turbinando microsserviços em PHP
Turbinando microsserviços em PHPTurbinando microsserviços em PHP
Turbinando microsserviços em PHP
 
Como o Microsoft Azure pode melhorar o desenvolvimento de seu Back-End? | Dev...
Como o Microsoft Azure pode melhorar o desenvolvimento de seu Back-End? | Dev...Como o Microsoft Azure pode melhorar o desenvolvimento de seu Back-End? | Dev...
Como o Microsoft Azure pode melhorar o desenvolvimento de seu Back-End? | Dev...
 
Mocking Test - GDG-SP - Setembro/2016
Mocking Test - GDG-SP - Setembro/2016Mocking Test - GDG-SP - Setembro/2016
Mocking Test - GDG-SP - Setembro/2016
 
Paralelize seus testes web e mobile para ter feedbacks mais rápidos
Paralelize seus testes web e mobile para ter feedbacks mais rápidosParalelize seus testes web e mobile para ter feedbacks mais rápidos
Paralelize seus testes web e mobile para ter feedbacks mais rápidos
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Microsoft ALM = Produtividade
Microsoft ALM = ProdutividadeMicrosoft ALM = Produtividade
Microsoft ALM = Produtividade
 
Introdução ao ALM e a visão da Plataforma Microsoft para developers.
Introdução ao ALM e a visão da Plataforma Microsoft para developers.Introdução ao ALM e a visão da Plataforma Microsoft para developers.
Introdução ao ALM e a visão da Plataforma Microsoft para developers.
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014
 
Criando microsserviços em PHP
Criando microsserviços em PHPCriando microsserviços em PHP
Criando microsserviços em PHP
 

Plus de Breno Vitorino (10)

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
 
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
 

Evolução das arquiteturas para aplicações Web

  • 1. Evolução das arquiteturas para aplicações Web Breno Vitorino Jornada de Sistemas de Informação PUC Minas Contagem 07/05/2009
  • 2. Arquitetura? Decisões consistentes, aplicadas ao longo do desenho do projeto, a fim de garantir requisitos não-funcionais.
  • 3. Requisitos não funcionais Segurança Escalabilidade Portabilidade Disponibilidade Extensibilidade Usabilidade
  • 4. Arquitetura? É o conjunto de decisões que, se feitas incorretamente, podem causar o cancelamento do projeto.” – Eoin Woods
  • 5. Definir uma arquitetura é importante para mitigar riscos “Uma equipe descobriu que a aplicação travava o banco de dados periodicamente (deadlocks), e parava toda uma universidade”
  • 6. Web: Arquitetura básica O básico: HTTP e URL
  • 7. HTTP Site Navegador
  • 8. Primeira arquitetura: CGI Servidor Web CGI
  • 9. CGI: Proposta Permitir a execução de programas ● no servidor, a partir de uma URL, e visualizar sua resposta através do navegador.
  • 10. CGI: Problema Segurança: não há um ambiente de ● execução do tipo sandbox.
  • 11. Segunda arquitetura: Linguagens de script para páginas dinâmicas Servidor Web HTML + PHP
  • 12. Linguagens de script: Proposta <TABLE> <? while($row = mysql_fetch_array($result)) { ?> <TR> <TD><?= $row['name'] ?></TD> <TD><?= $row['email'] ?></TD> </TR> <? } // end while ?> </TABLE>
  • 13. Terceira arquitetura: MVC Contêiner Web Controle Modelo Visão BD
  • 14. Quarta arquitetura: Orientado a eventos void Button1_Click(Object sender, EventArgs e) { ... }
  • 15. Quinta arquitetura: Serviços Web @WebMethod (operationName = quot;executeSalequot;) public SaleResponseTO executeSale ( @WebParam (name = quot;saleRequestquot;) SaleRequestTO saleRequest, @WebParam (name = quot;terminalquot;) TerminalTO terminal) throws AuthorizationFault
  • 16. Outras arquiteturas Aplicações Assíncronas – Robô no ● Twitter. ● Aplicações Offline – Google Gears
  • 17. Conclusões Precisamos de pessoal especializado! ● ● Aplicação evolui de acordo com os novos paradigmas
  • 18. Referências Blog do Marco Aurélio ● http://blog.marcomendes.com/2009/03/09/algumas-m Revista Engenharia de Software ● http://www.devmedia.com.br/esmag/ ROZANSKI, Nick; Woods, Eóin: Software ● Systems Architecture. Addison-Wesley, 2005.
  • 19. Obrigado! Breno Vitorino http://brenovitorino.wordpress.com