A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Arquitetura de Software e Linguagens para desenvolvimento na Web Atual

Apresentações semelhantes


Apresentação em tema: "Arquitetura de Software e Linguagens para desenvolvimento na Web Atual"— Transcrição da apresentação:

1 Arquitetura de Software e Linguagens para desenvolvimento na Web Atual
Tópico 4 Prof MSc Vitor Mesaque Alves de Lima

2 Tópicos Introdução Padrão Arquitetural em 3 Camadas MVC MVP
Comparações Linguagens Web Scripts Client-Side Scripts Server-Side Processamento no Servidor Ajax Conclusões Programação para Web

3 Introdução Crescimento exponencial do desenvolvimento de aplicações Web Internet: divulgação com baixo custo de produtos e serviços aumento da capacidade de tráfego nas redes aumento na capacidade de armazenamento e processamento Surgimento de novas tecnologias para o desenvolvimento de WebApps: robustas e com maior interação Programação para Web

4 Introdução Tecnologias baseadas em padrões arquiteturais e padrões Web: MVC (Model-View-Controller) Arquitetura em 3 camadas facilitam a manutenção e a evolução das WebApps menor acoplamento entre os módulos: interface gráfica e dados da aplicação Exemplo de tecnologias: JSP, Ruby, Python e PHP Programação para Web

5 Padrões Arquiteturais e Web
WebApps possuem um amplo conjunto de conceitos e terminologias associadas características de aplicações hipermídia Não exigem a instalação para a sua execução: somente um navegador Web Vários padrões arquiteturais existentes na literatura, porém os mais utilizados: MVC Arquitetura em 3 camadas Programação para Web

6 Padrão “Um Padrão descreve um problema que ocorre repetidas vezes em nosso meio e inclui uma solução genérica para o mesmo, de tal maneira que se pode utilizá-la mais de um milhão de vezes, sem nunca fazê-lo de forma idêntica.” [Cristopher Alexander, 1979] Programação para Web

7 Categorias de Padrões em Engenharia de Software
Padrões Arquiteturais: expressam um esquema de organização estrutural fundamental para sistemas de software. (BUSCHMANN et al., 1996) Padrões de Projeto: disponibilizam um esquema para refinamento de subsistemas ou componentes de um sistema de software (GAMMA et al., 1995) Idiomas: descreve como implementar aspectos particulares de componentes ou de relacionamentos entre eles, usando as características de uma dada linguagem de programação

8 Padrão Arquitetural em 3 Camadas
Programação para Web

9 Padrão Arquitetural em Camadas
Uma arquitetura em camadas é organizada hierarquicamente, onde as camadas mais internas provêem serviços às camadas mais externas Useful Systems Agregados de Elementos Menores Base Utility Core Level Users Programação para Web

10 Padrão Arquitetural em Camadas
Componentes Camadas Conectores protocolos que determinam como as Camadas interagem Regras limites de interação às Camadas adjacentes Exemplos: protocolos de comunicação em camadas (OSI), alguns sistemas operacionais, arquitetura em 3 Camadas para sistemas de informação comerciais (Interface, Negócio, Persistência) Programação para Web

11 Padrão Arquitetural em Camadas
É um tipo de arquitetura cliente/servidor: interface com o usuário, lógica de processo, e armazenamento de dados são desenvolvidos e mantidos em módulos independentes Mais conhecida: 3 Camadas Forma como é concebida permite que cada módulo seja atualizado ou replicado de maneira independente com relação aos requisitos de tecnologias Programação para Web

12 Padrão Arquitetural em 3 Camadas
Componentes: Camada de Apresentação: interface gráfica permitindo a interação com o usuários por meio dos serviços disponíveis Camada Lógica: contém toda a lógica do negócio, bem como a lógica de transações Camada de Dados: contém os dados que são manipulados pela aplicação, bem como o acesso, atualização e persistência destes Programação para Web

13 Padrão Arquitetural em 3 Camadas
Programação para Web

14 Padrão Arquitetural em 3 Camadas
Camada de Dados Camada do Negocio Camada de apresentação Programação para Web

15 Padrão Arquitetural em 3 Camadas
Vantagens: Suporte à Evolução dos Sistemas Flexibilidade e boa Manutenibilidade Desvantagens: Problemas de Desempenho e Comunicação Complexidade na Implementação do Sistema Programação para Web

16 Padrão Arquitetural Model-View-Controller
Programação para Web

17 Padrão Arquitetural MVC
Com o aumento da complexidade das aplicações desenvolvidas torna-se fundamental a separação entre os dados (Model) e o layout (View) Alterações feitas no layout não afetam a manipulação de dados, e estes poderão ser reorganizados sem alterar o layout Programação para Web

18 Padrão Arquitetural MVC
O MVC resolve este problema através da separação das tarefas de acesso aos dados e lógica de negócio, lógica de apresentação e de interação com o usuário, introduzindo um componente entre os dois: o Controller MVC = Model-view-controller Programação para Web

19 Padrão Arquitetural MVC
MVC é um padrão de arquitetura de software MVC é usado em padrões de projeto de software, mas MVC abrange mais da arquitetura de uma aplicação do que é típico para um padrão de projeto. Programação para Web

20 Padrão Arquitetural MVC
Objetivo: desacoplar a interface gráfica da navegação e do comportamento da aplicação manutenção mais simples maior reutilização Separar dados ou lógica de negócios (Model) da interface do usuário (View) e do fluxo da aplicação (Control) A idéia é permitir que uma mesma lógica de negócios possa ser acessada e visualizada através de várias interfaces Programação para Web

21 Padrão Arquitetural MVC
Componentes: Modelo: conteúdo da aplicação (objetos persistentes) Visão: funções de interface gráfica Controlador: coordena o fluxo do de dados entre o modelo e a visão Programação para Web

22 Padrão Arquitetural MVC
Comportamento do MVC: a Visão envia eventos para o Controlador o controlador modifica o estado do Modelo o Modelo notifica a Visão Visão busca os dados no Modelo Existem algumas variações do padrão MVC na literatura como é o caso do Modelo 2 da Sun Programação para Web

23 Padrão Arquitetural MVC
(Sun, tradução) Programação para Web

24 Padrão Arquitetural MVC
Programação para Web

25 Padrão Arquitetural MVC
O Modelo pode ser formado por entidades que armazenam os dados que são apresentados pela Visão A Visão pode ser uma interface gráfica O Controlador pode ser uma ou mais classes que possuem métodos que permitem que o Modelo seja atualizado a partir de eventos disparados pela Visão Programação para Web

26 Padrão Arquitetural MVC
Programação para Web

27 Padrão Arquitetural MVC
Frameworks MVC ASP ASP Xtreme Evolution; Toika; AJAXED; e outros .Net Microsoft MVC Framework Java Apache Struts; Mentawai; WebWork;Neo Framework; Spring MVC; JSF; e outros PHP CakePHP; CodeIgniter; Symfony; Zend Framework; e outros Programação para Web

28 Padrão Arquitetural Model-View-Presenter
Programação para Web

29 Padrão Arquitetural MVP
Padrão Arquitetural Model-View-Presenter Utilizado para separar a lógica da apresentação da apresentação propriamente dita A idéia do MVP é que toda a lógica que normalmente iria ligar a interface de usuário com os dados seja movida para uma classe separada Isso significa que a interface de usuário se torna bastante “fina”. Não há processamento embutido

30 Padrão Arquitetural MVP

31 Padrão Arquitetural MVP
O componente Model corresponde aos objetos que contêm a lógica do negócio Esse componente não conhece a apresentação Aspectos positivos: facilita o reuso da lógica do negócio em diferentes contextos (ambientes) Web, Smart Client, Mobile, WEB Services Idealmente esse componente, deve expor interfaces de forma abstrata, em vez de concreta

32 Padrão Arquitetural MVP
O componente View é uma estrutura composta de controles de interface com o usuário Esse componente não contém qualquer comportamento que descreve como os controles reagem à eventos de sistema (i.e., a ações do usuário) A reação às ações do usuário é posicionada em um objeto separado, o componente Presenter Os manipuladores para as ações do usuário ainda existem nos controles da IU, mas eles meramente passam (delegam) o processamento para o Presenter

33 Padrão Arquitetural MVP
O Presenter então decide como reagir ao evento notificado pelo componente View Normalmente, essa reação corresponde ao envio de mensagens aos objetos componente Model Composto de classes do domínio e de classes de serviço Conforme o presenter atualiza o modelo, o componente view é atualizado Quando o presenter realiza toda a manipulação dos controles de interface gráfica, temos o padrão denominado Passive View.

34 Padrão Arquitetural MVP
Programação para Web

35 Padrão Arquitetural MVP
Programação para Web

36 Padrão Arquitetural MVP
Adapter: Quando a lógica de IU é complexa, uma alternativa é criar adaptatores Adaptadores são objetos intermediários entre o view e o presenter Servem para ajudar o presenter na execução da lógica da apresentação

37 Padrão Arquitetural MVP
Adapter Notificações Apresentação Domínio Adapter View Presenter Model Programação para Web

38 Padrão Arquitetural MVP
Resumo da arquitetura MVP: View: exibe os dados e notifica eventos de sistema para o Presenter Presenter: coordena a comunicação entre o view e a camada de serviços (ou camada de negócio) e é responsável pela lógica de IU Model: os dados que devem ser exibidos ou editados na tela

39 Padrão Arquitetural MVP
Aspectos Positivos Facilita a modificação da IU por designers gráficos Facilita o uso de TDD (Test Driven Design) Separa adequadamente os aspectos da lógica da aplicação Aspectos Negativos Requer uma mudança na forma de pensar do desenvolvedor Código é mais abstrato do que no estilo “Forms & Controls” de programação visual Mais código para implementar Curva de aprendizado é acentuada

40 Comparações Programação para Web

41 MVC x Arquitetura em Camadas
MVC é triangular: Existe uma interação direta entre os seus 3 componentes: Visão interage com Controlador por eventos; Controlador interage com o Modelo e o atualiza; Modelo notifica a Visão por meio do Controlador; Visão busca os dados no Modelo. Existem variações do MVC, como o Modelo 2 da Sun, que o torna linear Visão e Modelo não se comunicam Programação para Web

42 MVC x Arquitetura em 3 Camadas
A arquitetura em 3 camadas é linear: não existe uma interação entre a camada de apresentação e a de Dados o fluxo de dados sempre passa pela camada lógica pode tornar a aplicação “pesada” Camadas dizem como agrupar os componentes O MVC diz como os componentes da aplicação interagem Programação para Web

43 MVP x MVC O MVP é uma variante do padrão MVC Qual a diferença?
No MVC, o View “conversa” (no sentido de poder enviar mensagens) com o Model No MVP, o View pode conhecer o Model, mas não envia mensagens para ele

44 MVP x MVC Model Model View Controller View Presenter MVC MVP
Programação para Web

45 Linguagens Web Programação para Web

46 Linguagem para WEB Scripts Client-Side Scripts Server-Side
São responsáveis pelas ações executadas no browser, sem contato com o servidor. Os exemplos mais comuns são imagens e textos que mudam com o passar do mouse Scripts Server-Side Todo o processamento é realizado no servidor Cliente recebe apenas o resultado-> HTML Programação para Web

47 Scripts Client-Side O navegador é responsável pelo tratamento do script JavaScript e VBScript Utilizado para diminuir o processamento do servidor Imagens animadas, menus dinâmicos, etc Validação de campos de formulário Programação para Web

48 Scripts Server-Side O processamento é feito pelo servidor
CGI, PHP, ASP, JSP O cliente (navegador) recebe o resultado do processamento Aplicações que exigem maior segurança Banco de dados Programação para Web

49 Processamento em Servidores Web
Além das arquiteturas e padrões Web, existe ainda os servidores Web que permitem o processamento dos dados enviados pelo cliente, no caso um navegador Web Estes servidores possuem algumas características como: autenticação, autorização e controle de acesso, direcionamento de chamadas e filtragem da entrada e saída Programação para Web

50 Processamento em Servidores Web
Entre os mais conhecidos servidores estão o Apache HTTP Server, o IBM HTTP Server O Apache é o mais amplamente utilizado por: não ser um software proprietário estabilidade já alcançada O Apache permite a instalação de módulos individuais que dão suporte à algumas tecnologias como JSP, ASP e PHP Programação para Web

51 Processamento em Servidores Web
Os servidores Web funcionam de maneira geral da seguinte forma: recebem uma requisição HTTP do cliente identificam o recurso desejado localizam tal recurso e verificam sua disponibilidade enviam ao cliente se disponível, senão geram um erro e apresentam ao cliente Programação para Web

52 Processamento em Servidores Web
Requisição Software Navegador Software Servidor Processamento Server-side Recuperação e entrega Internet Computador Servidor Computador Cliente Bando de Dados Programação para Web

53 Conclusões e Referências
Programação para Web

54 Conclusões MVC e arquitetura 3 camadas consolidadas no desenvolvimento de aplicações Web Tecnologias permitem o desenvolvimento de aplicações com maior interatividade e disponibilização de produtos e serviços Programação para Web

55 Referências Buschmann, F.; Meunier, R.; Rohnert, H.; Sommerlad, P.; Stal, M. Pattern- oriented software architecture: a system of patterns. New York, NY, USA: John Wiley & Sons, Inc., 1996 Pressman, R. S. Software engineering: A practitioner’s approach. McGraw-Hill Higher Education, 2006 Fragmental - Sun Java SE Application Design with MVC Disponível em Tutorial da Sun: “J2EE 1.4 Tutorial”. Disponível em Tutorial da Sun: “J2EE 5 Tutorial”. Disponível em Sadoski, D.; Comella-Dorda, S. Three tier software architectures Disponível em Reese, G. Database programming with jdbc and java. O’Reilly, 2000 Parte do material foi originalmente elaborado por Edson A. Oliveira Junior e Renata Pontim – ICMC-USP Programação para Web


Carregar ppt "Arquitetura de Software e Linguagens para desenvolvimento na Web Atual"

Apresentações semelhantes


Anúncios Google