Upload
internet
View
111
Download
2
Embed Size (px)
Citation preview
2
Visão geral
EJB é um padrão baseado em componentes server-side que simplifica o processo de construir aplicações distribuídas em Java.
Suporta portabilidade e reusabilidade num middleware de qualquer fabricante.
3
Motivação
Vamos construir um grande sistema, com o que precisamos nos preocupar? Balanceamento de carga Transações Tolerância a falhas Gerenciamento de sistemas Message-driven middleware ...
4
Arquitetura baseada em componentes
Utilizar os serviços de cada componente, independentemente. Não preciso implementar controle de
transações, compro o componente que faz isso.
Problema: padrões precisam ser seguidos
5
Sistemas de objetos distribuídos
O Stub representa o objeto remoto para o cliente
O skeleton representa o cliente para o objeto remoto
Cliente
Stub
Objeto Remoto
Skeleton
Rede
Interface Remota
6
Middleware explícito
É necessário implementar cada utilização em cada método
Cliente
Stub
ObjetoRemoto
Skeleton
Rede
Transaction Service
SecurityService
DatabaseService
public void transferir(Conta origem, Conta destino, double valor){ //Chama a API para verificar segurança //Chama a API para iniciar a transação
//Chama a API para carregar dados do banco//Subtrair o valor da conta origem e somar no destino//Chama a API para guardar dados no banco//Chama a API para fechar a transação
}
7
Middleware implícito
Apenas a lógica de negócio
Os serviços são declarados em um outro arquivo
Uma ferramenta vai gerar seu interceptador baseado no seu arquivo descritor
Cliente
Stub
Interceptador de requisições
Skeleton
Rede
Transaction Service
SecurityService
DatabaseService
public void transferir(Conta origem, Conta destino, double valor){//Subtrair o valor da conta origem e somar no destino
}
ObjetoRemoto
8
Introduzindo os EJBs
Padrão baseado em componentes Define os contratos entre
componentes e servidores de aplicações Qualquer enterprise bean pode ser
importado e carregado em qualquer servidor
9
Conseqüências
Padrão entre a indústria Portabilidade Desenvolvimento rápido
10
EJB x JavaBeans
Conceitos distintos, ambos parte de uma arquitetura de componentes
EJB são componentes compostos de classes, interfaces e documentos XML de configuração, para implantar automaticamente num servidor
Javabeans são classes com construtor sem argumentos e métodos getX () e setX().
11
Java 2 Enterprise Edition
Uma especificação para servidores de aplicação e componentes
Um conjunto de interfaces, para os servidores e seus componentes poderem conversarem
Seu objetivo é reduzir o custo e a complexidade do desenvolvimento de serviços multicamada
12
Servidores de Aplicação
Responsáveis pela infra-estrutura Oferecem:
Suporte à arquitetura de componentes EJB
Suporte a serviços Web, servlets e JSP Suporte a serviços de middleware
explícito e implícito Utilizaremos o JBoss-AS
13
Conteiners J2EE
Um container é a interface entre o componente e as funções de baixo nível da plataforma onde roda
Provê um ambiente para um enterprise bean rodar.
Gerenciam os EJBs chamando métodos obrigatórios de gerenciamento
É uma entidade abstrata, ninguém invoca explicitamente o container
14
Serviços
Configuráveis Segurança Transações Nomes (JNDI lookup) Conectividade remota
Não configuráveis Persistência Ciclo de vida de beans
15
Segurança
Autenticação e Autorização API JAAS - Java Authentication and
Authorization Service Autenticação depende da
implementação do servidor Controle de acesso é definido
declarativamente
16
Transações
Gerenciadas pelo container ou pelo bean
Suporte a transações distribuídas Vários servidores e vários bancos de
dados
17
Nomes
Através da API JNDI Associar um nome a recursos
computacionais como endereços de memória, de rede, de
serviços objetos e referências
18
Conectividade remota
O modelo de conectividade permite ao cliente invocar métodos como se estivesse na mesma máquina virtual do servidor
19
Persistência
Mesmo não configurável, permite sobrescrever o gerenciamento pelo container (CMP) para obter mais controle
Sincronização de dados, pesquisa e remoção
20
Arquitetura em camadas Browser
Cliente de Web service
Aplicativo Java
Aplicações CORBA
Páginas HTML e applets
Servidor J2EE Camada WEB
Camada de Negócios
Camada de Dados
21
Componentes na camada de negócio
Podem ser EJbs! Formam o núcleo de uma aplicação
distribuída Processam as requisições do cliente Processam os dados provenientes da
camada de dados EJBs são objetos CORBA EJbs são sempre escritos em java
22
Tipos de EJB
Session Beans Modelam processos de negócio. Podem manter ou não estado não-persistente Debitar, creditar...
Entity Beans Modelam dados de negócio. Representam informações em bancos de dados Mantêm estado persistente Uma conta, um cliente
Message-driven beans Modelam processos assíncronos. Respondem a eventos. Agem somente quando recebem uma mensagem Não mantêm estado
23
Exemplo clássico
BD
Entity bean Entity bean Entity beanEntity bean
Message-driven bean
Session BeanSession Bean
Cliente JMS
MOMCliente CORBA
Cliente HTML
Cliente WebService
Servlet
JSP
TaglibCliente Swing
Papéis
Quem faz o que em J2EE
25
Papéis
Provedor de componentes (bean provider) Desenvolvedor que cria os componentes J2EE
Provedor de ferramentas (tool provider) Oferecem ferramentas para facilitar a montagem e
manutenção das aplicações J2EE Ferramentas de modelagem de dados, ferramentas de
montagem de componentes, etc. Montador de aplicações (application assembler)
Arquiteto de aplicações que monta aplicações usando componentes desenvolvidos pelo provedor de componentes com as ferramentas do provedor de ferramentas
Escreve código de integração entre componentes, lógica de relacionamentos, etc.
26
Papéis
Provedor dos containers (container/server provider)
Fabricantes que oferecem containers EJB e Web Garantem o ambiente de execução onde vivem os beans
e os serviços de middleware que eles têm acesso JBoss, WebLogic, WebSphere, Tomcat (Web), IPlanet,
etc. Implantador de aplicações (deployer)
Instala e coloca para funcionar a aplicação no software fornecido pelo provedor de containers
Garante a integração com sistemas e serviços, escolhe o hardware, ajusta a segurança, performance, acesso a serviços e recursos externos
Administrador do sistema (system administrator) Garante a estabilidade da solução operacional
27
Por que a divisão em papéis?
Poder de especialização Pode combinar alguns papéis
Tool Provider
Bean Provider
Container Provider
Application Assembler
Deployer System Administrator
Forn
ece Fe
rramenta
s
Constrói EJBsMonta a aplicação
Fornece Servidor
Implanta o sistema