The Factory Esclarecendo a arquitetura utilizada no projeto Piloto Autor: Wabber Filho.

Slides:



Advertisements
Apresentações semelhantes
Aplicação de exemplo Struts Aplicação de exemplo
Advertisements

JDBC Java Dababase Connectivity Marco Antonio, Arquiteto de Software – TJDF Atualizado em Novembro/2008.
Introdução a JSF Marco Antonio.
Collections Marco Antonio, Arquiteto de Software – TJDF Atualizado Dezembro/2008.
Framework para desenvolvimento web
Prof. Alessandro J. de Souza
Java Conexão com Banco de Dados
APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS ACESSO A BANCO DE DADOS COM O JDBC Prof. Thiago Pereira Rique
Modelo Cliente-Servidor
Projeto de Sistemas de Software
Padrão de Projeto Iterator
Jakarta Struts 1.1 Ago/2006 Softplan/Poligraph Alessandro Lemser
Wagner Santos C. de Jesus
Introdução a JDBC Eduardo Martins Guerra Instituto Tecnológico de Aeronáutica Curso de Pós-Graduação em Engenharia de Software Programação Distribuída.
Prof. Marco Aurelio N. Esteves
JAVA - Struts
Java & Bancos de Dados Universidade Salgado de Oliveira Goiânia
Java :: Persistência de Dados
Acesso a Base de Dados JDBC Trabalho Realizado por:
Concorrência em Java Threads em Java.
Desenvolvimento WEB I Camila Nunes
JAVA - Struts
Grupo de Pesquisa em ENGENHARIA DE SOFTWARE
Professor: Hyggo Almeida
Capítulo 2 Java Servlets.
Singleton e Adapter Professor: Nazareno Andrade
Filtros. O que são Filtros Um filtro é um componente Web que reside no servidor Intercepta as requisições e respostas no seu caminho até o servlet e de.
Integração com Banco de Dados
Aplicativos Comerciais para Internet Camada View do MVC Apresentando os resultados de uma Consulta.
JAVA - Struts. AULA 3.
Introdução à Programação Orientada a Objetos com Java
Programa Expresso de Capacitação Módulo J2ME Aula 5 – Record Management System.
© Sérgio Soares1 Integrando Java com O2 Sérgio Soares GENTe.
Struts Java avançado – PCC Jobson Ronan
Gente Autor: Sérgio Soares Servlets. zMódulos de programas em Java zRecebem pedidos, executam o serviço e geram respostas zResidem no servidor zAnálogo.
Aula 2 – Primeiros Passos com a arquitetura Web Servidor
Enviando dados com interface Classe Form – é um repositório de controles, sendo que apenas um Form pode ser visto de cada vez. Cada objeto da classe Form.
Tópicos Especiais J2EE Prof. Cristina Valadares Curso de Ciência da Computação.
1 Servlet Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n /gtalk:
JSP / Servlets Avançado
Pilhas Profa. Nádia Félix.
Linguagem II Exceções.
Aula 2 – Primeiros Passos com a arquitetura Web Servidor Instituto Metodista Izabela Hendrix Curso de Tecnologia em Análise e Desenvolvimento de Sistemas.
Configuração do Ambiente de programação
Implementação MVC Pedro Antonino.
Tratamento de Exceções
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota (com material da Qualiti Software Process)
Coleções, Genéricos, Threads Marco Antonio. Collection Principais métodos da interface Collection.
Programação para Web Unidade 06 – Java Beans e BDs Prof.: Henrique Santos.
Vendo o código como um bolo... com várias camadas! Interface com o usuário (GUI) Comunicação Negócio Dados.
Herança e Arquitetura em camadas
Java Conexão com Baco de dados Saulo Bazzi Oberderfer Fonte:
Vendo o código como um bolo... com várias camadas! Interface com o usuário (GUI) Comunicação Negócio Dados.
Aglets.
Socket em Java.
Unidade 5 – Integrando JSP e Servlets Prof.: Henrique Santos
Daniel Garcez de Sousa 07/04/2015. Nesta apresentação abordaremos os conceitos básicos sobre o ciclo de vida de um Servlet e os HTTP servlets. No final.
Vendo o código como um bolo... com várias camadas! Interface com o usuário (GUI) Comunicação Negócio Dados.
Programação Distribuída em Java Aula Na aula passada vimos: TomCat –Instalação e configuração –Criação de contexto JSP... uma introdução –Expressões.
Paulo Borba Centro de Informática Universidade Federal de Pernambuco Exceções.
Treinamento expresso java web Luiz Carlos d´Oleron.
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Leo Silva Leonardo Murta Luiz Viana Persistência em Java.
Aprendendo como funciona o NHibernate Elvis Medeiros Programador .NET
RMI Java Remote Method Invocation em Java. Introdução Java Remote Method Invocation (Java RMI) permite desenvolver sistemas distribuídos baseados em Java.
O que é? Um framework para facilitar a implementação de uma arquitetura MVC em aplicações web Oferece  Um servlet controlador configurável ( Front Controller.
Vendo o código como um bolo... com várias camadas! Interface com o usuário (GUI) Comunicação Negócio Dados.
Servlets Manoel Neto Objetivos Aprender  Como escrever um servlet  Como compilar um servlet  Como executar Também serão.
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos
Transcrição da apresentação:

The Factory Esclarecendo a arquitetura utilizada no projeto Piloto Autor: Wabber Filho

Objetivo Disseminar o conhecimento prático de desenvolvimento na fábrica

Resumo  Como rodar o sistema ?  O que é uma classe básica (Entidade) ?  O que é uma classe RepositorioXxxBDR ?  PreparedStatament  Pra que serve a interface Repositório ?  O que é uma classe Cadastro?

Resumo  Por que usar Fachada?  O que é um Servlet ?  O que freemarker faz ?  Como é o nosso Servlet ?  Para que servem os Handlers ?  Como são os nossos Handlers ?

Como rodar o sistema ?  Modificar os parâmetros: arquivo_config e templatePath do arquivo factprocess/piloto/Projeto/piloto/WEB-INF/web.xml Isso pode ser feito em qualquer editor de texto

Como rodar o sistema ?  Modificar o parâmetro HOME do arquivo factprocess/piloto/Projeto/conf/piloto.properties  Clicar no botão Run Project do JBuilder

O que é uma classe básica?  A classe básica representa as principais entidades de um sistema. package thefactory.piloto.studant; public class Studant { private String name; private String password; public Studant( String name, String password ){ setName( name ); setPassword( password ); } public String getName() { return name; } public void setName( String name ) { this.name = name; }

O que é uma classe RepositorioXxxBDR ?  É classe responsável por fazer acesso ao SGBD-Relacional public class RepositoryStudantDB implements RepositoryStudant { private static final String sqlRemove = "delete from fabrica2_studant where cpf = ?"; public void remove( String cpf ) throws RepositoryException { // Envia comando sql de remover estudante do BD substituindo a “?” pelo “cpf” }

PreparedStatament  Usa-se PreparedStatament para que a aplicação fique “independente” do SGBD utilizado. Connection connection; try {// recupera connection, cria e executa o statement connection = TransactionControl.getConnection(); PreparedStatement preStmt = connection.prepareStatement( this. sqlRemove ); preStmt.setString( 1, cpf ); preStmt.executeUpdate(); } catch ( Exception e ) { throw new RepositoryException( e ); }

Pra que serve a interface Repositório ?  Uma interface em Java serve para que possa haver vários tipos de implementação diferente para o mesmo serviço. RepositorioXx RepositorioXxBDR RepositorioXxFile RepositorioXxList

O que é uma classe Cadastro?  É uma classe de negócios que contem um Repositório e pode acrescentar lógica de negócios nos métodos RepositorioXx CadastroXx

O que é uma classe Cadastro? public class StudantBusiness { private RepositoryStudant repository; public StudantBusiness( RepositoryStudant rep ) { this.repository = rep; } public void remove( String cpf ) throws RepositoryException { if ( ( cpf != null ) && ( cpf.length() == 11 ) ) { repository.remove( cpf ); } else { throw new IllegalArgumentException( "CPF invalid." ); }

Por que usar Fachada?  O sistema segue o padrão de projeto “Facade”  A fachada serve como ponto único de acesso ao sistema. Isso possibilita a construção de n GUI (Graphic User Interface)  A Fachada deve implementar o padrão de projeto singleton. FachadaCadastroXx

Por que usar Fachada? public class Facade { private static Facade instance; private Facade() { this.studants = new StudantBusiness( new RepositoryStudantDB() ); } public synchronized static Facade getInstance() { if ( instance == null ) { instance = new Facade(); } return instance; }

Por que usar Fachada? public void removeStudant( String cpf ) throws RepositoryException, Exception { Transaction transaction = null; boolean ok = false; try { // criar transaction transaction = TransactionControl.beginTransaction(); studants.remove( cpf ); TransactionControl.commitTransaction( transaction ); ok = true; } finally { if ( !ok ) { TransactionControl.rollBackTransaction( transaction ); } TransactionControl.endTransaction( transaction ); }

O que é um Servlet ?  Servelt é uma classe Java que serve para atender requisições do usuário através de algum protocolo. No nosso sistema protocolo HTTP  O Servlet gera uma Thread para cada requisição ServletHttpServletNosso Servlet

O que é um Servlet ? public class ServletBroker extends HttpServlet { public void init( ServletConfig servletConfig ) throws ServletException { super.init( servletConfig ); } public void service( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException { // Request é a requisição do usuário // Response é a resposta que o servlet deverá prover }

O que freemarker faz ?  O freemarker possibilita isolar código HTML de código Java  Para isso o freemarker utiliza Tags e variáveis na página HTML ${s.cpf} - ${s.name}

O que freemarker faz ? SimpleHash modelRoot = new SimpleHash(); SimpleSequence seq = new SimpleSequence(); Iterator iter = facade.getIteratorStudants(); while ( iter.hasNext() ) { Studant item = ( Studant ) iter.next(); SimpleHash hash = new SimpleHash(); hash.put( "cpf", item.getCpf() ); hash.put( "name", item.getName() ); seq.add( hash ); } modelRoot.put( "studants", seq );

Como é o nosso Servlet ?  Vamos abrir o ServletBroker ?

Para que servem os Handlers ?  Handlers são classes que recebem a requisição do usuário (repassada pelo Servlet)  Analisam o request feito  Chamam algum método da fachada  Preparam a resposta para o usuário

Para que servem os Handlers ?  Vamos abrir o InsertStudantHandler ?

Referências  GUIA-DESEN-DefinicaoArquitetura.doc - bin/cvsweb.cgi/~checkout~/fabrica/Desenvolv imento/Templates/GUIA-DESEN- DefinicaoArquitetura.doc?content- type=text/plain&cvsroot=factprocess bin/cvsweb.cgi/~checkout~/fabrica/Desenvolv imento/Templates/GUIA-DESEN- DefinicaoArquitetura.doc?content- type=text/plain&cvsroot=factprocess  Freemarker -