evolução das arquiteturas para aplicações web
DESCRIPTION
Uma arquitetura define de que forma uma aplicação será internamente organizada, pensando-se principalmente nos requisitos não-funcionais, como desempenho e escalabilidade. Nessa palestra, veremos a evolução das aplicações Web, partindo do modelo CGI até os modelos assíncronos ainda em construção. Veremos que essa evolução é fruto da evolução da própria mudança de escopo e finalidade das aplicações Web, e que essa evolução impacta tanto no desenvolvimento quanto na implantação desses serviços.TRANSCRIPT
![Page 1: Evolução das arquiteturas para aplicações Web](https://reader033.vdocuments.site/reader033/viewer/2022060111/5563a4fed8b42a2b6a8b5200/html5/thumbnails/1.jpg)
Evolução das arquiteturas para aplicações Web
Breno Vitorino
Jornada de Sistemas de InformaçãoPUC Minas Contagem
07/05/2009
![Page 2: Evolução das arquiteturas para aplicações Web](https://reader033.vdocuments.site/reader033/viewer/2022060111/5563a4fed8b42a2b6a8b5200/html5/thumbnails/2.jpg)
Arquitetura?
Decisões consistentes, aplicadas ao longo do desenho do projeto, a fim de garantir requisitos não-funcionais.
![Page 3: Evolução das arquiteturas para aplicações Web](https://reader033.vdocuments.site/reader033/viewer/2022060111/5563a4fed8b42a2b6a8b5200/html5/thumbnails/3.jpg)
Requisitos não funcionais
Segurança
Portabilidade
Escalabilidade
Disponibilidade
Extensibilidade Usabilidade
![Page 4: Evolução das arquiteturas para aplicações Web](https://reader033.vdocuments.site/reader033/viewer/2022060111/5563a4fed8b42a2b6a8b5200/html5/thumbnails/4.jpg)
Arquitetura?
É o conjunto de decisões que, se feitas incorretamente, podem causar o cancelamento do projeto.” – Eoin Woods
![Page 5: Evolução das arquiteturas para aplicações Web](https://reader033.vdocuments.site/reader033/viewer/2022060111/5563a4fed8b42a2b6a8b5200/html5/thumbnails/5.jpg)
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”
![Page 6: Evolução das arquiteturas para aplicações Web](https://reader033.vdocuments.site/reader033/viewer/2022060111/5563a4fed8b42a2b6a8b5200/html5/thumbnails/6.jpg)
Web: Arquitetura básicaO básico: HTTP e URL
![Page 7: Evolução das arquiteturas para aplicações Web](https://reader033.vdocuments.site/reader033/viewer/2022060111/5563a4fed8b42a2b6a8b5200/html5/thumbnails/7.jpg)
HTTP
Navegador Site
![Page 8: Evolução das arquiteturas para aplicações Web](https://reader033.vdocuments.site/reader033/viewer/2022060111/5563a4fed8b42a2b6a8b5200/html5/thumbnails/8.jpg)
Primeira arquitetura: CGI
CGI
Servidor Web
![Page 9: Evolução das arquiteturas para aplicações Web](https://reader033.vdocuments.site/reader033/viewer/2022060111/5563a4fed8b42a2b6a8b5200/html5/thumbnails/9.jpg)
CGI: Proposta
● Permitir a execução de programas no servidor, a partir de uma URL, e visualizar sua resposta através do navegador.
![Page 10: Evolução das arquiteturas para aplicações Web](https://reader033.vdocuments.site/reader033/viewer/2022060111/5563a4fed8b42a2b6a8b5200/html5/thumbnails/10.jpg)
CGI: Problema● Segurança: não há um ambiente de
execução do tipo sandbox.
![Page 11: Evolução das arquiteturas para aplicações Web](https://reader033.vdocuments.site/reader033/viewer/2022060111/5563a4fed8b42a2b6a8b5200/html5/thumbnails/11.jpg)
Segunda arquitetura: Linguagens de script para páginas dinâmicas
HTML + PHP
Servidor Web
![Page 12: Evolução das arquiteturas para aplicações Web](https://reader033.vdocuments.site/reader033/viewer/2022060111/5563a4fed8b42a2b6a8b5200/html5/thumbnails/12.jpg)
Linguagens de script: Proposta<TABLE><? while($row = mysql_fetch_array($result)) {?> <TR> <TD><?= $row['name'] ?></TD> <TD><?= $row['email'] ?></TD> </TR><? } // end while?></TABLE>
![Page 13: Evolução das arquiteturas para aplicações Web](https://reader033.vdocuments.site/reader033/viewer/2022060111/5563a4fed8b42a2b6a8b5200/html5/thumbnails/13.jpg)
Terceira arquitetura: MVC
Controle
Contêiner Web
BD
Modelo
Visão
![Page 14: Evolução das arquiteturas para aplicações Web](https://reader033.vdocuments.site/reader033/viewer/2022060111/5563a4fed8b42a2b6a8b5200/html5/thumbnails/14.jpg)
Quarta arquitetura: Orientado a eventos
void Button1_Click(Object sender, EventArgs e){ ...}
![Page 15: Evolução das arquiteturas para aplicações Web](https://reader033.vdocuments.site/reader033/viewer/2022060111/5563a4fed8b42a2b6a8b5200/html5/thumbnails/15.jpg)
Quinta arquitetura: Serviços Web
@WebMethod (operationName = "executeSale")public SaleResponseTO executeSale ( @WebParam (name = "saleRequest") SaleRequestTO saleRequest, @WebParam (name = "terminal") TerminalTO terminal) throws AuthorizationFault
![Page 16: Evolução das arquiteturas para aplicações Web](https://reader033.vdocuments.site/reader033/viewer/2022060111/5563a4fed8b42a2b6a8b5200/html5/thumbnails/16.jpg)
Outras arquiteturas
● Aplicações Assíncronas – Robô no Twitter.
● Aplicações Offline – Google Gears
![Page 17: Evolução das arquiteturas para aplicações Web](https://reader033.vdocuments.site/reader033/viewer/2022060111/5563a4fed8b42a2b6a8b5200/html5/thumbnails/17.jpg)
Conclusões
● Precisamos de pessoal especializado!● Aplicação evolui de acordo com os novos
paradigmas
![Page 18: Evolução das arquiteturas para aplicações Web](https://reader033.vdocuments.site/reader033/viewer/2022060111/5563a4fed8b42a2b6a8b5200/html5/thumbnails/18.jpg)
Referências
● Blog do Marco Auréliohttp://blog.marcomendes.com/2009/03/09/algumas-melhores-praticas-de-engenharia-de-software/
● Revista Engenharia de Softwarehttp://www.devmedia.com.br/esmag/
● ROZANSKI, Nick; Woods, Eóin: Software Systems Architecture. Addison-Wesley, 2005.
![Page 19: Evolução das arquiteturas para aplicações Web](https://reader033.vdocuments.site/reader033/viewer/2022060111/5563a4fed8b42a2b6a8b5200/html5/thumbnails/19.jpg)
Obrigado!
Breno Vitorinohttp://brenovitorino.wordpress.com