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

Post on 26-May-2015

4.180 views 1 download

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

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

Breno Vitorino

Jornada de Sistemas de InformaçãoPUC 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

Portabilidade

Escalabilidade

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ásicaO básico: HTTP e URL

HTTP

Navegador Site

Primeira arquitetura: CGI

CGI

Servidor Web

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

HTML + PHP

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

Terceira arquitetura: MVC

Controle

Contêiner Web

BD

Modelo

Visão

Quarta arquitetura: Orientado a eventos

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

Quinta arquitetura: Serviços Web

@WebMethod (operationName = "executeSale")public SaleResponseTO executeSale ( @WebParam (name = "saleRequest") SaleRequestTO saleRequest, @WebParam (name = "terminal") 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é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.

Obrigado!

Breno Vitorinohttp://brenovitorino.wordpress.com