WebApps em Java com uso de Frameworks

Propaganda
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


Camada de gerência de apresentação – Servidor Web


Tomcat, etc...
Camada de aplicação – regras de negócio


Firefox, IE, Netscape, etc...
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


Provê mapeamento objeto-relacional


Existe tb versões para outras linguagens
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 que relaciona as propriedades do objeto aos campos da tabela
Hibernate Java Library
HQL (Hibernate Query Language)
Java Class Files


arquivo (xml ou properties) contendo as propriedades de conexão ao banco
Hibernate Mapping (XML) File
objeto cujo estado vai ser persistido
Database Schema

tabela no banco de dados
Hibernate

Cenário exemplo:
JSP
Servlet
SQL
HQL
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
Download