SlideShare uma empresa Scribd logo
1 de 19
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

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 MVCFelipe Pimentel
 
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 / 3David Ruiz
 
WordPress como CMS
WordPress como CMSWordPress como CMS
WordPress como CMSleogermani
 
Como trabalhar com angular js
Como trabalhar com angular jsComo trabalhar com angular js
Como trabalhar com angular jsMatheus Lima
 
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!Walter Araujo dos Santos
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysDr. Spock
 
Service Oriented Front-End Architecture
Service Oriented Front-End ArchitectureService Oriented Front-End Architecture
Service Oriented Front-End ArchitectureCristiano Gomes
 
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: JavascriptAgrupamento de Escolas da Batalha
 
Desenvolvimento web com Software Livre
Desenvolvimento web com Software LivreDesenvolvimento web com Software Livre
Desenvolvimento web com Software LivreRuan Carvalho
 
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 MicrosoftFabrício Lopes Sanchez
 
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áticasSusana Oliveira
 
Desenvolvimento Web com ASP.NET 4
Desenvolvimento Web com ASP.NET 4Desenvolvimento Web com ASP.NET 4
Desenvolvimento Web com ASP.NET 4Rodrigo Kono
 
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 01midiasdigitais
 
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 MVCguest489a65e
 
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 MVCMichael Costa
 
Introdução aos aplicativos tipo canvas
Introdução aos aplicativos tipo canvasIntrodução aos aplicativos tipo canvas
Introdução aos aplicativos tipo canvasGuilherme
 

Mais procurados (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
 

Destaque

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
 
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 PHPBreno 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
 
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 PHPBreno Vitorino
 
Entendendo Domain-Driven Design
Entendendo Domain-Driven DesignEntendendo Domain-Driven Design
Entendendo Domain-Driven DesignRafael Ponte
 
Apostila Fundamentos do Gerenciamento de Projetos
Apostila Fundamentos do Gerenciamento de ProjetosApostila Fundamentos do Gerenciamento de Projetos
Apostila Fundamentos do Gerenciamento de ProjetosLéo De Melo
 
Arquitetura cliente servidor
Arquitetura cliente servidorArquitetura cliente servidor
Arquitetura cliente servidorMarcia Abrahim
 

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

Semelhante a Evolução arquiteturas 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 JavaBreno Vitorino
 
Surpreenda-se com o Silverlight 3
Surpreenda-se com o Silverlight 3Surpreenda-se com o Silverlight 3
Surpreenda-se com o Silverlight 3Rodrigo 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 softwareFábio Nogueira de Lucena
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sitesthiagolima
 
Curso ASP.Net - Módulo 1
Curso ASP.Net - Módulo 1Curso ASP.Net - Módulo 1
Curso ASP.Net - Módulo 1michellobo
 
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...Daniel Makiyama
 
Tema 10 Automação Da Engenharia
Tema 10   Automação Da EngenhariaTema 10   Automação Da Engenharia
Tema 10 Automação Da Engenhariabruno2003sp
 
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
 
Demoiselle - Arquitetura
Demoiselle - ArquiteturaDemoiselle - Arquitetura
Demoiselle - ArquiteturaSerge Rehem
 
Turbinando microsserviços em PHP
Turbinando microsserviços em PHPTurbinando microsserviços em PHP
Turbinando microsserviços em PHPFlávio Lisboa
 
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...Renato Groff
 
Mocking Test - GDG-SP - Setembro/2016
Mocking Test - GDG-SP - Setembro/2016Mocking Test - GDG-SP - Setembro/2016
Mocking Test - GDG-SP - Setembro/2016Renato Groff
 
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ápidosElias Nogueira
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Softwareeros.viggiano
 
Microsoft ALM = Produtividade
Microsoft ALM = ProdutividadeMicrosoft ALM = Produtividade
Microsoft ALM = ProdutividadeAdriano Bertucci
 
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.Gustavo Malheiros
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Eric Gallardo
 
Criando microsserviços em PHP
Criando microsserviços em PHPCriando microsserviços em PHP
Criando microsserviços em PHPFlávio Lisboa
 

Semelhante a Evolução arquiteturas 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
 

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 janelasBreno Vitorino
 
Linux: Kernel, Runlevels e Virtualização
Linux: Kernel, Runlevels e VirtualizaçãoLinux: Kernel, Runlevels e Virtualização
Linux: Kernel, Runlevels e VirtualizaçãoBreno Vitorino
 
Linux: Instalação de aplicativos
Linux: Instalação de aplicativosLinux: Instalação de aplicativos
Linux: Instalação de aplicativosBreno 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 LinuxBreno Vitorino
 
Linguagem Java - Conceitos e Técnicas
Linguagem Java - Conceitos e TécnicasLinguagem Java - Conceitos e Técnicas
Linguagem Java - Conceitos e TécnicasBreno Vitorino
 
Introdução à Arquitetura Web
Introdução à Arquitetura WebIntrodução à Arquitetura Web
Introdução à Arquitetura WebBreno Vitorino
 
Como criar blogs: WordPress.com
Como criar blogs: WordPress.comComo criar blogs: WordPress.com
Como criar blogs: WordPress.comBreno Vitorino
 
Uma visao geral sobre blogs
Uma visao geral sobre blogsUma visao geral sobre blogs
Uma visao geral sobre blogsBreno Vitorino
 

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