Você está na página 1de 32

Aplicações

Multicamadas
Oscar A.K. Sampaio
Aplicações
Multicamdas
Aplicações
Multicamdas
Aplicações Corporativas
Arquitetura Multicamadas
Divisão de Camadas
Aplicações Empresariais
 Alta demanda
 Alto desempenho
 Distribuídas
 Complexas

 Escalabilidade
 Extensibilidade
Multicamadas
 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
Aplicações Multicama das
 Desacoplamento

 Processamento Distribuido

 Componentização

 Escalabilidade

 Extensibilidade
Camadas
 Apresentação – Cliente
 Apresentação – Servidor
 Lógica de Negócios
 Modelo
 Persistência
 Integração
Camadas
Plataforma JEE

Plataforma JEE
Plataforma Java para aplicações Corporativas
Servidor de Aplicativos
Camadas na Plataforma JEE
Enterprise Java Beans
Java Persistence API
Plataforma JEE
 Plataforma Java para aplicações corporativas

 Arquitetura Multicamadas

 Baseada em componentes

 Servidor de Aplicativos / Containers


Servidor de Aplicativos
 Núcleo da plataforma JEE

 Hospeda o aplicativo corporativo –


componentes

 Fornece infra-estrutura (serviços)

 Ex.: Jboss, GlassFish, Open


Servidor de Aplicativos
Camada de Apresentação -
Cliente
 Clientes Web
◦ Páginas HTML/XML
◦ Browser

 Applets

 Aplicativo cliente
Camada de Apresentação -
Servidor
 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 Lógica de
Negócios
 Implementados por Enterprise Java Beans

 Hospedados no Servidor

 Componentes/Distribuídos
Containers JEE
 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
Tipos de Containers
 Container WEB
◦ JSP
◦ Servlets

 Container EJB
◦ EJBs
Containers JEE
Servicos JEE
 Os componentes utilizam os serviços do
container para executar as tarefas
Serviços 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
 ...
Deploy
 Processo de montar e instalar um aplicativo
no servidor
Enterprise Java Beans
 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
EJB – Session 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 - Message Driven Beans
 Assincrono – orientado a Mensagens
 Servidor de Mensagens
 Anotação: @MessageDriven
Enterprise Java Beans
Camada de Persistência
 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.
JPA – Java Persistence API
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 – Anotações
 @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

Você também pode gostar