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

19
Evolução das arquiteturas para aplicações Web Breno Vitorino Jornada de Sistemas de Informação PUC Minas Contagem 07/05/2009

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 of Evolução das arquiteturas para aplicações Web

Page 1: Evolução das arquiteturas para aplicações Web

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

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

Requisitos não funcionais

Segurança

Portabilidade

Escalabilidade

Disponibilidade

Extensibilidade Usabilidade

Page 4: Evolução das arquiteturas para aplicações Web

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

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

Web: Arquitetura básicaO básico: HTTP e URL

Page 7: Evolução das arquiteturas para aplicações Web

HTTP

Navegador Site

Page 8: Evolução das arquiteturas para aplicações Web

Primeira arquitetura: CGI

CGI

Servidor Web

Page 9: Evolução das arquiteturas para aplicações Web

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

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

Segunda arquitetura: Linguagens de script para páginas dinâmicas

HTML + PHP

Servidor Web

Page 12: Evolução das arquiteturas para aplicações Web

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

Terceira arquitetura: MVC

Controle

Contêiner Web

BD

Modelo

Visão

Page 14: Evolução das arquiteturas para aplicações Web

Quarta arquitetura: Orientado a eventos

void Button1_Click(Object sender, EventArgs e){ ...}

Page 15: Evolução das arquiteturas para aplicações Web

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

Outras arquiteturas

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

● Aplicações Offline – Google Gears

Page 17: Evolução das arquiteturas para aplicações Web

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

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

Obrigado!

Breno Vitorinohttp://brenovitorino.wordpress.com