Aplicações Multicamadas
Oscar A.K. Sampaio
Aplicações MulticamdasAplicações CorporativasArquitetura MulticamadasDivisão de Camadas
Alta demanda Alto desempenho Distribuídas Complexas
Escalabilidade Extensibilidade
Aplicações Empresariais
arquitetura de software o aplicativo é dividido em várias camadas,
onde cada camada é responsável por um determinado aspecto ou funcionalidade◦ apresentação, ◦ lógica de negócio, ◦ persistência, etc
Multicamadas
Desacoplamento
Processamento Distribuido
Componentização
Escalabilidade
Extensibilidade
Aplicações Multicamadas
Apresentação – Cliente Apresentação – Servidor Lógica de Negócios Modelo Persistência Integração
Camadas
Camadas
Plataforma JEEPlataforma Java para aplicações CorporativasServidor de AplicativosCamadas na Plataforma JEEEnterprise Java BeansJava Persistence API
Plataforma Java para aplicações corporativas
Arquitetura Multicamadas
Baseada em componentes
Servidor de Aplicativos / Containers
Plataforma JEE
Núcleo da plataforma JEE
Hospeda o aplicativo corporativo – componentes
Fornece infra-estrutura (serviços)
Ex.: Jboss, GlassFish, Open
Servidor de Aplicativos
Servidor de Aplicativos
Clientes Web◦ Páginas HTML/XML◦ Browser
Applets
Aplicativo cliente
Camada de Apresentação - Cliente
Hospedado no servidor Páginas JSP e Servlets MVC Interagem com outras camadas do
aplicativo Geram páginas HTML/XML enviadas ao
cliente
Camada de Apresentação - Servidor
Camada de Apresentação - Servidor
Implementados por Enterprise Java Beans
Hospedados no Servidor
Componentes/Distribuídos
Camada de Lógica de Negócios
Servidor de Aplicativo Abstrai a complexidade de implementação
de aplicações multicamadas◦ Concorrência◦ Comunicação◦ Gerenciamento de recursos◦ Etc.
Hospedam os componentes JEE Fornece Serviços
Containers JEE
Container WEB◦ JSP◦ Servlets
Container EJB◦ EJBs
Tipos de Containers
Containers JEE
Os componentes utilizam os serviços do container para executar as tarefas
Servicos JEE
JNDI – serviço de diretórios JTA – controle transacional JAAS – segurança JPA – persistência Java Mail – serviço de e-mail Web Services JMS – serviço de Mensagens ...
Serviços JEE
Processo de montar e instalar um aplicativo no servidor
Deploy
Componentes Distribuidos
Gerenciados pelo Container
Transacional
Segurança
Enterprise Java Beans
Para o desenvolvedor são classes Java anotadas
Para o container ◦ São objetos gerenciados◦ Acesso Remoto◦ Atendem a várias requisições de múltiplos
clientes
Enterprise Java Beans
Enterprise Java Beans
Implementa lógica de negócios
Existe durante uma sessão de Interação
Tipos:◦ Stateless◦ Statefull
EJB – Session Beans
Implementação◦ @Stateless◦ @Statefull
Interfaces◦ @Local◦ @Remote◦ @WebService
EJB – Session Beans
Assincrono – orientado a Mensagens Servidor de Mensagens Anotação: @MessageDriven
EJB - Message Driven Beans
Enterprise Java Beans
JPA – Java Persistence API Responsável por persistir os objetos java
em banco de dados. Padronização Especificação Implementações: Hibernate, TopLink,
OpenJPA, etc.
Camada de Persistência
JPA – Java Persistence API
As entidades do modelo são POJOs Mapeamento objeto-relacional padronizado
◦ Configuração – XML◦ Anotações
Regras de empacotamento simples Pode eliminar a necessidade de DTOs EntityManager – centraliza a interação com o
JPA Persistence Unit – define uma unidade de
persistencia acesso a um banco de dados – persistence.xml
JPA - Java Persistence API
@Entity – informa ao JPA que a classe é uma entidade e deve ser persistida
@Table(name=“...”) – informa o nome da tabela que irá persistir a entidade
@Id – marca uma propriedade da classe como chave primária – identificador
@GeneratedValue – como gerar o id (chave primária) @Column (name=“...”) – informa o nome da coluna que irá
persistir o campo @Lob – BLOBs @Enumerated – tipos enumerados @Temporal (tipo) – Data, Hora e Data+Hora @Transient – não persiste a coluna
JPA – Anotações