JavaBeans, EJB e CORBA para Desenvolvimento Baseado em Componentes Distribuídos
1. TecnologiasTecnologias parapara DBCDBC
Antonio Francisco do Prado
Departamento de Computação
Universidade Federal de São Carlos – UFSCar
São Carlos (SP) - Brasil
Email: {prado}@dc.ufscar.br
5. Componentes - JavaBeans
•Um JavaBean é uma classe ou
estrutura de classes Java para
funcionar como um componente.
6. JavaBeans
Possuem:
• Propriedades: caracterizam sua apresentação e
comportamento. Estas podem ser personalizadas através de
métodos get() e set().
• Eventos: Permite interação e a comunicação com outros JavaBeans.
São:
• Introspectivos: habilidade de descobrir as propriedades,
e informações dos seus eventos.
Podem ser:
• Persistentes:armazenamento do seu estado através de serialização.
7. Utilização de JavaBeans
Um aplicativo da Web usando JSP pode acessar um
componente JavaBean, o qual pode diretamente(1), ou
indiretamente(2), através de um Enterprise JavaBean,
acessar um Banco de Dados.
(1)
(2)
8. Utilização de JavaBeans
•Construir componentes JavaBeans
•Disponibilizar os JavaBeans em uma IDE(Framework)
•Construir as aplicações, reutilizando os JavaBeans
•Complementar a implementação da aplicação
17. Desenvolvimento Software O O
Análise OO
Droga Raia
Produto
a1, a2, a3
m1, m2
Cliente
a1, a2
m1
Sistema da
farmácia Droga
Raia
18. Componentes de software
Droga Raia
Doriamed
FarmaVip
Drogas mil
Análise do
Domínio
Produto
i1 i2 i3
Cliente
i1
i2
Controle de estoque
Droga Raia
Cadastro de Clientes
FarmaVip
Controle de estoque
FarmaNorte
Reutilização
19. O que são Enterprise
JavaBeans?
• Modelo de componentes
– Interfaces padronizadas
– Sistema de execução dos
componentes
numa arquitetura multicamadas
• Visa principalmente:
– Reutilização de software
– Portabilidade dos componentes
– Execução de transações
– Suporte para segurança e controle
20. Aplicações acessando direto o
Banco de Dados
BD
JSP
Cadastro de
Fornecedores
Servlet
Cadastro de
Clientes
JFrame
Cadastro de
Produtos
Servlet
Realizar
PedidosRegras de
negócio
Regras de
negócio
Regras de
negócio
Regras de
negócio
21. Componente
Produto
Aplicações acessando regras de negócio
disponíveis nos Componentes. Componentes
acessam o Banco de Dados.
BD
JSP
Cadastro de
Fornecedores
Servlet
Cadastro de
Clientes
JFrame
Cadastro de
Produtos
Servlet
Realizar
Pedidos
Regras de
negócio
Componente
Cliente
Regras de
negócio
Componente
Fornecedor
Regras de
negócio
22. Arquitetura em 3 camadas
Aplicações Regras de Negócio Banco de Dados
BD
24. Arquitetura Multi-camadas
• Aplicação fica separada dos componentes,
tornando seu código mais simples e flexivel.
• Diminui a redundância de código através
da reutilização. Várias aplicações clientes podem
usar os mesmos componentes simultaneamente.
• Melhora a segurança e confiabilidade.
• Facilita a manutenção.
25. Arquitetura Multicamadas
Camada 1 : Aplicações Clientes
Camada 2 : Regras do Negócio
Camada 3 : Dados
Browser
WEB
Aplicação
Java
Dispositivos
WAP
Sistema de
Arquivos
Aplicação
Legada
Servidor
BD
Servidor
da
Camada
Intermediária
Camada 1 Camada 2 Camada 3
27. Session vs. Entity Beans
• Session
– Anônimo. Usado pelo
cliente que criou.
– Trabalha com dados
transientes.
– Existe enquanto o
sistema esta ativo.
– Implementa a
interface
javax.ejb.SessionBean.
• Entity
– Tem identidade
(primary Key). Usado
por vários clientes.
– Representa dados
persistentes em BD.
– Permanece após
execução do sistema.
– Implementa a
interface
javax.ejb.EntityBean.
28. Session Beans Stateless vs.
Stateful
• Stateless
– Não tem estado interno
conversacional entre
métodos e transações.
– Sem passivation ou
activition
– Pode ficar no pool para
servir vários clientes
– único construtor create
sem parâmetros
• Stateful
– Mantém um estado interno
conversacional entre
métodos e transações.
– Necessita de passivation e
activation
– Uma instância por cliente
– um ou mais construtores
creates com ou sem
parâmetros
29. Componentes em camadas
• Aplicações clientes reutilizam componentes previamente testados.
Código reduzido. Diminui a redundância. Facilita a manutenção.
• Regras de Negócio e Banco de Dados para um domínio de Aplicações.
Ensino.db
Cliente
Regras de
Negócio
Banco de Dados
30. Entity Beans
Container EJB
EJB BD
Container EJB
EJB BD
Persistência Gerenciada pelo Bean
Persistência Gerenciada pelo Container
40. DBCD Integração
• Método Catalysis
– Para definir, especificar e projetar os componentes distribuídos
• Padrão de Distribuição CORBA
– Middleware para:
• Permitir o mapeamento da IDL para diversas linguagens
• Facilitar a portabilidade entre ambientes computacionais
• Permitir a localização dos componentes distribuídos
• Frameworks
– de componentes das áreas basicas de Distribuição (Broker) e acesso a Banco de
Dados (Persistence). Baseados em Design Patterns
– Visando reduzir tempo e custos no desenvolvimento de componentes comuns a
diferentes
domínios de aplicações.
• Ferramenta MVCase
– Similarmente a Java/EJB, os componentes são construídos e disponibilizados para
reutilização na MVCase.
– Primeiro são construídos os componentes de um domínio de aplicações. Para
Distribuição e
Persistência são reutilizados componentes dos Frameworks Broker e Persistence.
– Segundo são construídas as aplicações que reutilizam os componentes do domínio.
– A MVCASE pode gerar código dos componentes e das aplicações a partir das suas
especificações.
41. Arquitetura em camadas
• Web Server, Application Server, Component Server e
Database Server podem ou não residirem na mesma
máquina.
44. Definir Problema
• Primeiro nível de Catalysis – Ênfase no entendimento do domínio,
espeficando-se “o que” os componentes devem atender para solucionar
o problema.
Techniques for identification of the
requirements domain
46. Especificar Componentes
– Resumo das atividades, realizadas pelo engenheiro de software, na MVCase,
no passo Especificar Componentes:
47. Projetar Componentes
– Terceiro nível de Catalysis.
– Definida a plataforma de HW e SW, e a arquitetura de Distribuição e
Persistência dos componentes.
– Refinamento do Modelo de Tipos em Modelo de Classes e finalmente em
Componentes.
Dá origem
Type
Class
Customer
ICustomer
Component
Dá origem
51. Implementar Componentes
• Neste passo, o engenheiro de software utiliza o gerador de código, da MVCase
para implementar os componentes projetados.
• O código é gerado utilizando o padrão CORBA para distribuição. Para cada
componente, tem-se os stubs e skeletons e as interfaces que
disponibilizam seus servicos.
• Finalmente os componentes são armazenados em um repositório para posterior
reutilização das aplicações.
Component Interface
IDL Code
Stubs and Skeletons Java
Code
56. Especificar Aplicação
• Entendimento do Problema e
Identificação de Requisitos
• Reutilização dos componentes do
domínio.
• Principais técnicas para Especificação:
– Use Cases,
– Diagramas de Seqüência e
– Classes.
57. Projetar Aplicação
• Refinamento das especificações anteriores, com reutilização de componentes.
• Requisitos não funcionais: arquitetura distribuída e persistência.
58. Implementar Aplicação
– Finalmente a aplicação é implementada. A MVCASE pode gerar o
código a partir das especificações da aplicação.
.... .... ....
public class ServletAddCustomer extends
HttpServlet{
private ICustomer customer;
public void init(ServletConfig config) throws
ServletException{
try {
customer = new CustomerSourceAdapter(null);
} catch (CommunicationException e) {
e.printStackTrace();
}
}
generates
59. DBCD - Resultados
• Estratégia de DBCD, integrou na MVCase, tecnologias
para suportar tanto o desenvolvimento dos componentes
quanto das aplicações que os reutilizam.
• A integração de Catalysis, CORBA e Java na MVCASE,
facilitou o desenvolvimento dos componentes e aplicações
em plataforma distribuída.
• Foi criado um Padrão para o Desenvolvimento de
Software Baseado em Componentes Distribuídos.
• Foram construídos frameworks para:
– Distribuição e Persistência dos objetos.
• Atualmente, pesquisa-se a utilização de AOP na
Estratégia de DBCD e na MVCASE.