Módulo II Arquitetura em Camadas

Documentos relacionados
Arquitetura de Aplicações J2EE. Jorge Fernandes Outubro de 2003

Arquitecturas de Software Enunciado de Projecto

Coordenação Geral de Tecnologia da Informação - CGTI. Diretriz de Arquitetura de Sistemas. Versão 1.0. MAPA/SE/SPOA/CGTI, 2012 Página 1

Desenvolvimento de um sistema de leilão utilizando JavaServer Pages

Associação Carioca de Ensino Superior Centro Universitário Carioca

Curso - Padrões de Projeto Módulo 5: Model-View- Controller

Desenvolvimento para Web com Java

Formação ASP.NET MVC com C#

O que é um banco de dados? Banco de Dados. Banco de dados

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

Engenharia de Software II

Conceitos básicos sobre computadores

Informática I. Aula Aula 19-20/06/06 1

Técnicas de Programação para a Web. Luiz Cláudio Silva. Novembro de Apresentação

Arquitetura de Software

Programação Orientada a Objetos SANTOS, Rafael

Sistemas de Informação

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

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

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

Padrões Arquiteturais Pattern-Oriented Software Architecture (POSA)

SCC Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

WebApps em Java com uso de Frameworks

T.I. para o DealerSuite: Servidores Versão: 1.1

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional

Argo Navis J931 - Padrões de Design J2EE. Introdução. Objetivos de aprender padrões J2EE. Conhecer padrões para uso na plataforma J2EE


Java II. Sérgio Luiz Ruivace Cerqueira

Diagrama de Componentes e Implantação

PROJETO PEDAGÓGICO DE CURSOS

MVC e Camadas - Fragmental Bliki

Compreender as diferenças entre os vários métodos e códigos de erro HTTP. Conhecer as linguagens fundamentais para programação para a Web

DOCUMENTAÇÃO SISTEMA DE ADMINISTRAÇÃO DE CONSULTÓRIO MÉDICO

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano

Arquitetura de uma Webapp

Introdução à orientação a objetos

Desenvolvimento de Software

Bibliografia. Engenharia de software Ian Sommerville 9ª edição Editora Pearson Prentice Hall

Padrões de Projeto WEB e o MVC

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

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl

Projeto Manutenção SAP Web e Portal TRT

Modelagem De Sistemas

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS

Conceitos Básicos

Banco de Dados de Músicas. Andre Lima Rocha Campos Osório Pereira Carvalho

DOCUMENTO DE REQUISITO DE SOFTWARE

CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011

Desenvolvendo Aplicações Web com NetBeans

Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate

Padrões do Catálogo J2EE. Lincoln Souza Rocha, M.Sc.

PORTARIA N Nº 178 Rio de Janeiro, 25 de outubro de 2012.

Algoritmos e Programação II

Este livro é dedicado a minha esposa Edna e a todos os desenvolvedores que fizeram do software livre um meio profissional levado a sério.

ARQUITETURA DE SISTEMAS. Cleviton Monteiro

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

CATEGORIA 2 INICIATIVAS DE INOVAÇÃO

Manual Instalação Web Services Client Web.NewHotel

Laboratório EJB e J2EE Uma aplicação completa

Escola Superior de Tecnologia de Setúbal. Projecto Final

CURSO DESENVOLVEDOR JAVA Edição Intensiva de Férias

I - Política de Privacidade e Segurança II - Direitos de Autor III - Termos e Condições de Utilização. Política de Privacidade e Segurança

J550. Model View Controller

Java 2 Enterprise Edition Uma aplicação J2EE completa

DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração

Histórico de revisões

Uma introdução sobre Frameworks de Desenvolvimento

Motivação Este trabalho apresenta o desenvolvimento do controle da interatividade num sistema para a área de computação gráfica, mais especificamente

J2EE. J2EE - Surgimento

Tecnologias Web. Padrões de Projeto - Camada de Apresentação

Requisitos de Sistemas

ARQUITETURA DO SISTEMA ERP PEGASUS

Framework. Marcos Paulo de Souza Brito João Paulo Raittes

CURSO DESENVOLVEDOR JAVA Edição 2009

CURSO DESENVOLVEDOR JAVA Edição 2010

Ementário do Curso Técnico em Informática para Internet

Guia para Iniciantes do WebWork

Transaction Scripts: Uma Forma mais Simples de Organizar Lógica de Domínio

Tecnologia Java. Daniel Destro do Carmo Softech Network Informática

Banco de Dados. Banco de Dados Parte 2. Alcides Pamplona Alcides Pamplona Linguagem de Programação CESBD 2010

Arquitetura de referência de Streaming sob demanda para desktop (ODDS) DELL

Aprenda a instalar a plataforma de monitorização Cacti

Ponto eletrônico de funcionários

J2EE TM Java 2 Plataform, Enterprise Edition

Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: WEB Container TomCat Aula 05

UFG - Instituto de Informática

Desenvolvimento Web TCC Turma A-1

RELATÓRIO DEFINIÇÃO. Resumo

ENTERPRISE JAVABEANS 3. Msc. Daniele Carvalho Oliveira

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro

1.1. Definição do Problema

Professor Antonio Benedito Coimbra Sampaio Jr

Transcrição:

Módulo II Arquitetura em Camadas Prof. Ismael H F Santos April 08 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Ementa Arquitetura de camadas de Software Arquiteturas em Camadas Padrões para Arquiteturas em camadas Persistência de Objetos Persistência de objetos Estratégias de Persistência April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 2 1

FPSW-Java Arquitetura Em Camadas April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 3 Introdução Em aplicações OO de médio e grande porte, diversos aspectos devem ser considerados: Apresentação Lógica da aplicação Lógica do negócio Persistência de Objetos Camada de Utilitários: Controle de Exceções, Logging, comunicação, etc. Persistência : capacidade de uma aplicação manter suas informações entre sessões de uso. Uma proporção significativa do esforço de desenvolvimento recai sobre a solução que o desenvolvedor deve dar a este problema. April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 4 2

Arquitetura em camadas Arquitetura em camadas visa a criação de aplicativos modulares, de forma que a camada mais alta se comunica com a camada mais baixa e assim por diante, fazendo com que uma camada seja dependente apenas da camada imediatamente abaixo. Camada de Apresentação Camada de Negócios Camada de Persistência Banco de dados Classes de utilidade e classes assistentes April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 5 Arquitetura em camadas Camada de Apresentação: Lógica de interface do usuário (GUI). O código responsável pela apresentação e controle da página e tela de navegação forma a camada de apresentação; Camada de Negócios: Código referente a implementação de regras de negócio ou requisitos do sistema; Camada de persistência: Responsável por armazenamento e recuperação dos dados quando solicitado. Objetivo é o de garantir uma independência da fonte de dados (arquivos, bancos de dados, etc) e ao mesmo tempo manter as informações entre diferentes sessões de uso. April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 6 3

Arquitetura em camadas Banco de dados: O BD existe fora da aplicação Java, é a atual representação persistente do estado do sistema. Assistentes e Classes de utilidade: São classes necessária para o funcionamento ou mesmo o complemento de uma aplicação ou parte dela, como por exemplo o Exception para tratamento de erros. April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 7 Model-View-Controller (MVC) Design Pattern O padrão de arquitetura MVC (model-view-controller) surgiu nos anos 80 com a linguagem SmallTalk. Criado por Trygve Reenskaug no fim dos anos 70 Usado no desenvolvimento de aplicações desktop por facilitar o desenvolvimento em camadas de aplicações que usam a orientação a objetos April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 8 4

Model-View-Controller (MVC) Design Pattern O que é o MVC padrão projeto para o desenvolvimento de aplicações, A implementação de aplicações usando este padrão são feitas com recurso a frameworks, apesar de não ser obrigatória a utilização de uma para seguir o padrão. Objetivo do MVC Isolar mudanças na GUI, evitando que estas mudanças acarretem em mudanças na Camada de Negicos da Aplcação (Application s Domain Logic) Vantagens Facilita a manutenção Changes to business logic are less likely to break the presentation logic & vice-versa Facilita o desenvolvimento por times multi-disciplinares: desenvolvedores creating robust business code designers building usable and engaging UIs April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 9 Model-View-Controller (MVC) Design Pattern Camadas e respectivas funções Model: Define as regras de acesso e manipulação dos dados Armazenados em bases de dados ou ficheiros, mas nada indica que sirva só para alojamento persistente dos dados. Pode ser usado para dados em memória volátil, p.e.: memória RAM, apesar não se verificar tal utilização com muita frequência. Todas as regras relacionadas com tratamento, obtenção e validação dos dados devem ser implementados nesta camada. View: Responsável por gerar a forma como a resposta será apresentada, página web, formulário, relatório, etc... Controller: Responsável por responder aos pedidos por parte do utilizador. Sempre que um utilizador faz um pedido ao servidor esta camada é a primeira a ser executada. April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 10 5

Model-View-Controller (MVC) Design Pattern MVC Clearly separates business, navigation and presentation logic. It s a proven mechanism for building a thin, clean web-tier Model The domain-specific representation of the information on which the application operates. View Renders the model into a form suitable for interaction, typically a user interface element. Controller View Controller Model Note: the solid lines indicate a direct association, and the dashed line indicate an indirect association Processes and responds to events, http://en.wikipedia.org/wiki/model-view-controller typically user actions, and may invoke changes on the model. April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 11 MVC Next Steve Jobs A next (Steve Jobs), resolveu modificar esse modelo oferecendo uma alternativa para sua linguagem de programação objective-c. Delega a responsabilidade de observar o modelo para a camada de Controller que, por sua vez, envia para a camada de visão as alterações ao invés da camada de View obter esses dados do Model. April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 12 6

MVC Model 2 Com o crescimento das aplicações web baseadas no protocolo HTTP que é sem estado, não temos mais uma sessão permanentemente aberta entre o cliente e o servidor. Além disso o HTTP não prevê uma forma de enviar (push) informações do servidor para o cliente. Isto impede o trabalho do Controller que não pode mais enviar informações para a View sem ser solicitado. Para contornar o problema a Sun criou o MVC Model 2, baseado no padrão FrontController. Agora a camada Controller submete ações tentando acompanhar o processo de requestresponse do protocolo HTTP ao invés de observar a camada Model, criando um fluxo linear para a arquitetura das aplicações. April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 13 FPSW-Java Padrões para Arquiteturas em Camadas April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 14 7

Modelo de Camadas Apps Desktop GUI UC 1 Controller UC 2 Controller View Helper Apresentação Controle Negócio April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 15 Modelo de Camadas Apps Desktop GUI UC Controller DAO JDBC Hibernate View Helper Apresentação Controle Negócio Persistência + Dados April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 16 8

WebApp Modelos MVC - Web April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 17 Modelo de Camadas Apps Web Command Pattern Comando 1 JSP Front Controller Comando 2 DAO Comando 3 JDBC Hibernate View Helper DAO Apresentação Controle Negócio Persistência + Dados April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 18 9

Implementação do MVC para Web April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 19 Especificações do J2EE - Arquiteturas de aplicação Web Model 1 Recomendado para projetos pequenos. E/S: Java Server Pages Lógica de negócio: Java Beans e EJBs Model 2 Recomendada para projetos médios e grandes. Variação do padrão MVC Controller: Servlets Model: JavaBeans e EJBs View: Java Server Pages April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 20 10

Padrão Front Controller Padrão que consolida todas as requisições web em um único objeto manipulador, despachando o tratamento adequado dessas requisições conforme o comportamento esperado. A seguir apresentamos mais detalhes do padrão April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 21 Implementação do MVC para Web April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 22 11

JSP Model I - Centrado em páginas April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 23 JSP Model II - Centrado em servlet April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 24 12