Model-View-Controller (MVC) Fernando de Freitas Silva

Documentos relacionados
Java II. Sérgio Luiz Ruivace Cerqueira

Arquitetura de Aplicações em 2, 3, 4 ou N camadas

Padrão Camadas. Talvez o mais importante padrão arquitetural Merece detalhamento

Desenvolvimento de Sistemas Corporativos Aula 1.3 Motivação de DSC Visão geral de Arquiteturas. Prof. Bruno Moreno

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

ALUNO: RONI FABIO BANASZEWSKI

EXERCÍCIOS DE REVISÃO DE CONTEÚDO QUESTÕES DISSERTATIVAS

Abordagem Teórico-Prática

Análise e Projeto de Sistemas (Cont.) Profª Rafaella Matos

Arquiteturas de Aplicações Web. Leonardo Gresta Paulino Murta

Desenvolvimento Web TCC Turma A-1

O que é um sistema distribuído?

Use a Cabeça! FREEMAN, Eric e Elisabeth. HTML com CSS e XHTML BASHMAN, Brian / SIERRA Kathy / BATES, Bert. Servlets & JSP

Web Presentation Patterns - Controllers

M V C P R O F. M E. H É L I O E S P E R I D I Ã O

PROGRAMAÇÃO SERVIDOR PADRÕES MVC E DAO EM SISTEMAS WEB. Prof. Dr. Daniel Caetano

Tecnologias para Web

PROGRAMAÇÃO SERVIDOR RECURSOS ADICIONAIS EM SISTEMAS WEB DOS SERVLETS. Prof. Dr. Daniel Caetano

M V C, J S O N E X M L P R O F. M E. H É L I O E S P E R I D I Ã O

SISTEMAS DE BANCOS DE DADOS: CONCEITOS E ARQUITETURA

Banco de Dados. Professor: Marcelo Machado Cunha IFS Campus Aracaju

Curso de Java. Geração de Páginas WEB. TodososdireitosreservadosKlais

1.2- Ambientes de Middleware

Arquitetura de uma Webapp

Arquitetura em Camadas

INTRODUÇÃO A SISTEMAS OPERACIONAIS

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

BANCO DE DADOS. Introdução. Prof. Marcelo Machado Cunha

Módulo II Arquitetura em Camadas

Protótipo de uma ferramenta de apoio para desenvolvimento de sistemas web para WebIntegrator

JavaScript Fundamental e Servlet Fundamental

Aula 2: Arquitetura em Três Camadas e APIs

Processo Módulo M NPS

Java para WEB. Servlets

SISTEMA DE INFORMAÇÃO GEOGRÁFICA APLICADA À GESTÃO PÚBLICA

J2EE. Projeto de Sistemas de Software

Arquitetura e Objetos Distribuídos em CORBA. Aula 3. Especificações OMA Object Web

Conceitos de Orientação a Objetos

Arquiteturas de Sistemas de Informação Geográfica

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

DESENVOLVIMENTO DE SISTEMAS WEB. Lista de Exercícios AV2-01. Luiz Leão

SERVIÇOS DE DIRETÓRIO

Model-View-Controller (MVC)

Introdução ao Desenvolvimento de

Servlets e Applets, funcionamento e comparativo.

Modelagem Conceitos e arquitetura do SBD; Modelo de dados entidade-relacionamento modelo ER; Modelo de dados relacional; Mapeamento ER para o

arquitetura shared-nothing em 3 camadas

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC

Computação II (MAB 225)

Agenda da Aula. Arquitetura de Software e Padrões Arquiteturais. Elementos de um Padrão. Arquitetura de Software. Arquitetura de Software

Ambiente Educacional Interativo Móvel para atividade em sala de aula 1

Prática Sobre Servlets e JSP

Nuvem e Virtualização Redes Programáveis

Requisitos de Sistemas

Conceitos e arquitetura do banco de dados. Andre Noel

INFO3M ARQ REDES. Prova 1 Bimestre. Obs: Questões RASURADAS são consideradas como ERRADAS GABARITO

Padrões de Interação com o Usuário

Desenvolvimento WEB II. Professora: Kelly de Paula Cunha

PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE

Curso online de Fundamentos em Android. Plano de Estudo

3 Uma Arquitetura Distribuída via WEB

Engenharia de Software. Projeto de Arquitetura

Java Server Pages (JSP)

IFSC/Florianópolis - Programação Orientada a Objetos com Java - prof. Herval Daminelli

BD e Aplicações em Negócios

CONTEÚDO PROGRAMÁTICO

Formação JAVA Web.

PCS3413 Engenharia de Software e Banco de Dados

A composição de uma Java Server Pages (Diretivas, Elementos de Script e Objetos Implícitos)

Java para WEB com Struts 2 e Hibernate

Engenharia de Software

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Arquiteturas para SGBD. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Capítulo 6. Projeto de arquitetura Pearson Pren0ce Hall. Todos os direitos reservados. 1. slide 1

Continuação... Criando a Interface e adiante

Arquitetura de Software: Sistemas RNA e Ava Edulivre. Ana Claudia Costa, Rharon Maia, Wolgrand Cardoso1

Projeto Final Curso de Java Básico

!" # # # $ %!" " & ' ( 2

SERVLETS. Introdução UNIDADED

Engenharia de Software

SIST706 Sistemas Distribuídos

Programação Na Web. Servlets: Ciclo de Vida. Agenda. Visão geral sobre ciclo de vida. Nascimento de uma Servlet. Execução de uma Servlet

Aula Prática 2 BD PostgreSQL. Profa. Elaine Faria UFU

Soluções reutilizáveis para situações ou problemas encontrados comumente em desenvolvimento de software orientado a objetos.

Continuação... Criando a Interface e adiante

PORTAL DO EGRESSO DO IFC CAMPUS CAMBORIÚ

MODEL-VIEW-CONTROLER. Prof. Fellipe Aleixo

Programação Web Aula 12 - Java Web Software

Java na WEB Servlet. Sumário

WebApps em Java com uso de Frameworks

Introdução à Programação Aula 01. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Sistemas Distribuídos Aula 8

CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DO RIO GRANDE DO NORTE DEPARTAMENTO ACADÊMICO DE TECNOLOGIA DA INFORMAÇÃO

Prof. Marcelo Machado Cunha

Sistemas Operacionais. Sistema de entrada e Saída

Aplicações Web com Servlets e JSP

Exemplo: Documento de Arquitetura de Software

Transcrição:

Model-View-Controller (MVC) Fernando de Freitas Silva fernd.ffs@gmail.com

Arquitetura MVC Objetivo: 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. Na arquitetura MVC, a lógica de negócios (chamaremos de Modelo) não sabe de quantas nem quais interfaces com o usuário estão exibindo seu estado. Com as diversas possibilidades de interfaces que conhecemos hoje, a MVC é uma ferramenta indispensável para desenvolvermos sistemas (Figura 1). 2

Arquitetura MVC 3

Arquitetura MVC Model Representa o modelo da sua aplicação, com as regras de negócio ( business logic ) e todo o processamento da aplicação View Representa a informação e recolhe os dados fornecidos pelo usuário Controller Recebe as informações da entrada e as transmite para o modelo 4

Arquitetura MVC 5

MVC X Servlet Browser Controlador Objetos de Negócio JavaBean de Resposta JSP 6

Arquitetura em Camadas

Arquitetura em Camadas Arquitetura centralizada Dominantes até década de 80 como arquitetura corporativa Problema básico: interface não amigável Arquitetura em 2 camadas Sistemas em camadas surgiram para: Melhor aproveitar os PCs da empresa Oferecer sistemas com interfaces gráficas amigáveis Integrar o desktop e os dados corporativos Em outras palavras, permitiram aumentar a escalabilidade de uso de Sistemas de Informação Os primeiros sistemas cliente-servidor eram de duas camadas Camada cliente trata da lógica de negócio e da UI Camada servidor trata dos dados (usando um SGBD) 8

Arquitetura em Camadas 9

Arquitetura em Camadas Arquitetura em 3 camadas A arquitetura cliente/servidor em 2 camadas sofria de vários problemas: Falta de escalabilidade (conexões a bancos de dados) Enormes problemas de manutenção (mudanças na lógica de aplicação forçava instalações) Dificuldade de acessar fontes heterogêneas (legado CICS, 3270,...) Inventou-se a arquitetura em 3 camadas Camada de apresentação (UI) Camada de aplicação (business logic) Camada de dados 10

Arquitetura em 3 Camadas Apresentação: Continua no programa instalado no cliente. Lógica: São as regras do negócio, as quais determinam de que maneira os dados serão utilizados. Dados: Nesta camada temos o servidor de Banco de dados, no qual reside toda a informação necessária para o funcionamento da aplicação. 11

Arquitetura em Camadas 12

Arquitetura em Camadas Problemas de manutenção foram reduzidos, pois mudanças às camadas de aplicação e de dados não necessitam de novas instalações no desktop Observe que as camadas são lógicas Fisicamente, várias camadas podem executar na mesma máquina Quase sempre, há separação física de máquinas Em inglês, usa-se "layer" e "tier" Para certas pessoas, não tem diferença Para outras, "tier" indicaria camada física 13

Arquitetura em 3 camadas 14

Boas Práticas

O padrão Comando (I) Como implementar? Atributo hidden 16

O padrão Comando (II) Como implementar? Atributo hidden Ex: Atributo hidden + Comando abstrato + Hashtable 17

O padrão Comando (III) HttpServlet MeuServlet comandos : Hashtable doget() dopost() init() ComandoAbstrato processacoma ndo() ComandoA processacomando() ComandoB processacomando() ComandoC processacomando() 18

O padrão Comando (IV) O Comando Genérico: HttpServletRequest Passa o comando a ser instanciado (input do formulário) HttpServletResponse Contém o PrintWriter que deverá receber as respostas do Comando 19

O padrão Comando (V) O Servlet deve possuir um atributo HashTable com todos os Commands Ao ser iniciado, cada Comando deve ser instanciado e inserido na HashTable 20

O padrão Comando (VI) 21

O padrão Comando (VII) 22