WebApps em Java com uso de Frameworks Fred Lopes Índice O que são frameworks? Arquitetura em camadas Arquitetura de sistemas WEB (WebApps) Listagem resumida de frameworks Java Hibernate
O que são frameworks? Em português: Arcabouço Definição: estrutura de suporte definida em que um outro projeto de software pode ser organizado e desenvolvido [wikipedia.org] Pode incluir: Programas de suporte Bibliotecas de código Linguagens de script etc. Facilitam o desenvolvimento de software: oferecem serviços de baixo nível Permite que a equipe de desenvolvimento se preocupe mais com os requisitos funcionais. São específicos para determinado domínio Implementam funcionalidades que podem ser úteis para diversas aplicações. Arquitetura em camadas Arquiteturas centralizadas Dominantes até década de 80 Interface não amigável Arquiteturas em camadas Melhor aproveitar os PCs da empresa Melhor interface gráfica Integrar desktop e os dados corporativos 2 camadas Primeiros sistemas cliente-servidor Cada cliente trata das regras de negócios e da interface gráfica (UI) Base de dados funciona em um servidor Problemas Grande esforço de manutenção Reinstalação em todos os PCs Entre outros
Arquitetura em camadas Tipo de arquiteturas em camadas 2 camadas Arquitetura em camadas Tipo de arquiteturas em camadas 3 camadas Camadas Camada de apresentação (UI) - desktop Camada de aplicação (regras de negócio) servidor de aplicação Camada de dados servidor de banco de dados Servidores não precisam estar necessariamente em máquinas diferentes
Arquitetura em camadas Tipo de arquiteturas em camadas Arquitetura em camadas Tipo de arquiteturas em camadas 4 camadas Camada de apresentação Navegador Web Firefox, IE, Netscape, etc... Camada de gerência de apresentação Servidor Web Tomcat, etc... Camada de aplicação regras de negócio Regras de negócio da aplicação Camada de dados SGBD MySQL, SQL Server, Oracle, etc...
Arquitetura em camadas Tipo de arquiteturas em camadas 4 camadas Arquitetura de sistemas WEB Utilizam o modelo 4 camadas Passos de uma requisição do usuário Navegador faz requisição ao servidor web Servidor web repassa requisição ao servidor de aplicação Servidor de aplicação faz processamento. Se necessário, consulta banco de dados (SGBD). SGBD responde consulta do servidor de aplicação Servidor de aplicação responde ao Servidor web Servidor web transforma resposta em html e a envia para navegador Navegador renderiza o html para o usuário.
Listagem resumida de frameworks Java...voltando para os frameworks Frameworks podem ser utilizados em diferentes camadas Existem várias categorias de frameworks, sendo algumas delas: Framework para persistência de dados Framework para testes Framework para serviços web Outros frameworks Listagem resumida de frameworks Java...voltando para os frameworks Frameworks para persistência de dados Provêem camada de abstração entre a aplicação e o armazenamento de dados Em alguns casos realizam mapeamento objeto-relacional Exemplos: Hibernate JDO Ibates
Listagem resumida de frameworks Java...voltando para os frameworks Framework para testes Facilitam a execução de testes dos sistemas Exemplos JUnit Cactus Listagem resumida de frameworks Java...voltando para os frameworks Framework de aplicação Um framework de aplicação é uma aplicação reutilizável e semicompleta que pode ser especializada para produzir aplicações personalizadas (SPIELMANN) Disponibiliza vários componentes reutilizáveis, cada um para prover uma abstração de um componente em particular Permitem alto nível de padronização das aplicações Exemplos Struts JSF Jbanana (brasileiro)
Listagem resumida de frameworks Java...voltando para os frameworks Outras categorias de frameworks... Log4J Geração de Log do sistema Jasper Report Geração de relatórios dinâmicos Spring Serviços de controle de transações, segurança e exposição de serviços remotos. Amplamente utilizado em conjunto com framework de persistência e de serviços web. Ant Automatização de instalação da aplicação (build e deploy) Hibernate Framework para persistência de dados para Java Existe tb versões para outras linguagens Provê mapeamento objeto-relacional Definição do mapeamento objeto-relacional em XML Linguagem de consulta OO (HQL - Hibernate Query Language) Desenvolvedor se livra do SQL Isso é, muito do código de acesso ao banco não é mais necessário de o desenvolvedor escrever
Hibernate Hibernate Características Relacionamentos entre classes (many-to-one, many-to-many, one-to-one, etc) Dialetos (MySQLDialect, OracleDialect, PostgreSQLDialect, etc) Aplicação com hibernate Hibernate Properties File arquivo (xml ou properties) contendo as propriedades de conexão ao banco Hibernate Mapping (XML) File arquivo xml que relaciona as propriedades do objeto aos campos da tabela Hibernate Java Library HQL (Hibernate Query Language) Java Class Files objeto cujo estado vai ser persistido Database Schema tabela no banco de dados
Hibernate Cenário exemplo: JSP Servlet HQL SQL Hibernate BD Hibernate Properties file Server.xml Properties
Hibernate Classe Hibernate Mapeamento XML
Hibernate DAO sem hibernate inserir novo usuário Hibernate DAO sem hibernate listar usuários
Hibernate DAO com hibernate inserir novo usuário