Aplicacoes Multicamadas

32
Aplicações Multicamadas Oscar A.K. Sampaio

description

Material didatico da disciplina Aplicações Multicamadas do curso de especialização 'Desenvolvimento de Aplicações utilizando Software Livre' - UNAMA 2008

Transcript of Aplicacoes Multicamadas

Page 1: Aplicacoes Multicamadas

Aplicações Multicamadas

Oscar A.K. Sampaio

Page 2: Aplicacoes Multicamadas

Aplicações MulticamdasAplicações CorporativasArquitetura MulticamadasDivisão de Camadas

Page 3: Aplicacoes Multicamadas

Alta demanda Alto desempenho Distribuídas Complexas

Escalabilidade Extensibilidade

Aplicações Empresariais

Page 4: Aplicacoes 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

Multicamadas

Page 5: Aplicacoes Multicamadas

Desacoplamento

Processamento Distribuido

Componentização

Escalabilidade

Extensibilidade

Aplicações Multicamadas

Page 6: Aplicacoes Multicamadas

Apresentação – Cliente Apresentação – Servidor Lógica de Negócios Modelo Persistência Integração

Camadas

Page 7: Aplicacoes Multicamadas

Camadas

Page 8: Aplicacoes Multicamadas

Plataforma JEEPlataforma Java para aplicações CorporativasServidor de AplicativosCamadas na Plataforma JEEEnterprise Java BeansJava Persistence API

Page 9: Aplicacoes Multicamadas

Plataforma Java para aplicações corporativas

Arquitetura Multicamadas

Baseada em componentes

Servidor de Aplicativos / Containers

Plataforma JEE

Page 10: Aplicacoes Multicamadas

Núcleo da plataforma JEE

Hospeda o aplicativo corporativo – componentes

Fornece infra-estrutura (serviços)

Ex.: Jboss, GlassFish, Open

Servidor de Aplicativos

Page 11: Aplicacoes Multicamadas

Servidor de Aplicativos

Page 12: Aplicacoes Multicamadas

Clientes Web◦ Páginas HTML/XML◦ Browser

Applets

Aplicativo cliente

Camada de Apresentação - Cliente

Page 13: Aplicacoes Multicamadas

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

Page 14: Aplicacoes Multicamadas

Camada de Apresentação - Servidor

Page 15: Aplicacoes Multicamadas

Implementados por Enterprise Java Beans

Hospedados no Servidor

Componentes/Distribuídos

Camada de Lógica de Negócios

Page 16: Aplicacoes Multicamadas

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

Page 17: Aplicacoes Multicamadas

Container WEB◦ JSP◦ Servlets

Container EJB◦ EJBs

Tipos de Containers

Page 18: Aplicacoes Multicamadas

Containers JEE

Page 19: Aplicacoes Multicamadas

Os componentes utilizam os serviços do container para executar as tarefas

Servicos JEE

Page 20: Aplicacoes Multicamadas

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

Page 21: Aplicacoes Multicamadas

Processo de montar e instalar um aplicativo no servidor

Deploy

Page 22: Aplicacoes Multicamadas

Componentes Distribuidos

Gerenciados pelo Container

Transacional

Segurança

Enterprise Java Beans

Page 23: Aplicacoes Multicamadas

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

Page 24: Aplicacoes Multicamadas

Enterprise Java Beans

Page 25: Aplicacoes Multicamadas

Implementa lógica de negócios

Existe durante uma sessão de Interação

Tipos:◦ Stateless◦ Statefull

EJB – Session Beans

Page 26: Aplicacoes Multicamadas

Implementação◦ @Stateless◦ @Statefull

Interfaces◦ @Local◦ @Remote◦ @WebService

EJB – Session Beans

Page 27: Aplicacoes Multicamadas

Assincrono – orientado a Mensagens Servidor de Mensagens Anotação: @MessageDriven

EJB - Message Driven Beans

Page 28: Aplicacoes Multicamadas

Enterprise Java Beans

Page 29: Aplicacoes Multicamadas

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

Page 30: Aplicacoes Multicamadas

JPA – Java Persistence API

Page 31: Aplicacoes Multicamadas

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

Page 32: Aplicacoes Multicamadas

@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