Upload
sbcars
View
135
Download
0
Embed Size (px)
Citation preview
TecnologiasTecnologias parapara DBCDBC
Antonio Francisco do Prado
Departamento de ComputaçãoUniversidade Federal de São Carlos – UFSCar
São Carlos (SP) - BrasilEmail: {prado}@dc.ufscar.br
TecnologiasTecnologias parapara DBCDBC
1. JavaBeans2. Enterprise Java Beans ( E J B )3. Corba4. Outras5. Discussão
TecnologiasTecnologias parapara DBCDBC
Componentes de software
Objeto JAVA .EXE
.DLL
Componentes - JavaBeans
•Um JavaBean é uma classe ou estrutura de classes Java para funcionar como um componente.
JavaBeansPossuem:• 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.
Utilização de JavaBeans
Um aplicativo da Web usando JSP pode acessar um componente JavaBean, o qual pode diretamente(1), ouindiretamente(2), através de um Enterprise JavaBean, acessar um Banco de Dados.
(1)
(2)
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
Construção dos componentes
Componentes JavaBeansComponente da Sun
Componentes criados para acessar EJB
JBuilder
Framework EJB Framework EJB FrameworkJavaBeans
Componentes EJB
EJB Server
ComponentesDomínio ED
Client.jar
Construção das aplicações
Construção das aplicações
Componentes do Framework JavaBeans
Personalização dos JavaBeans
Client.jar
TecnologiasTecnologias parapara DBCDBC
Paradigma Orientação a Objetos
Variável v1
Variável v2
...
função func1
...
função func2
...
...
Classe c1
Atributo a1
Atributo a2
Método m1
...
Método m2
...
...
Componentes de software
Classe c1
Atributo a1
Atributo a2
Método m1
...
Método m2
...
...
Componente c1
Interface i1
Interface i2
...
Desenvolvimento Software O O
Análise OO
Droga Raia
Produtoa1, a2, a3
m1, m2
Clientea1, a2
m1
Sistema da farmácia Droga Raia
Componentes de software
Droga Raia
Doriamed
FarmaVip
Drogas mil
Análise doDomínio
Produto
i1 i2 i3Cliente
i1i2
Controle de estoqueDroga Raia
Cadastro de ClientesFarmaVip
Controle de estoqueFarmaNorte
Reutilização
O que são Enterprise JavaBeans?
• Modelo de componentes– Interfaces padronizadas– Sistema de execução dos
componentesnuma arquitetura multicamadas
• Visa principalmente:– Reutilização de software– Portabilidade dos componentes– Execução de transações– Suporte para segurança e controle
Aplicações acessando direto o Banco de Dados
BD
JSPCadastro de
Fornecedores
ServletCadastro de
ClientesJFrame
Cadastro deProdutos
ServletRealizarPedidosRegras de
negócio
Regras denegócio
Regras denegócio
Regras denegócio
ComponenteProduto
Aplicações acessando regras de negócio disponíveis nos Componentes. Componentes acessam o Banco de Dados.
BD
JSPCadastro de
Fornecedores
ServletCadastro de
Clientes
JFrameCadastro de
Produtos
ServletRealizarPedidos
Regras denegócio
ComponenteCliente
Regras denegócio
ComponenteFornecedorRegras denegócio
Arquitetura em 3 camadas
Aplicações Regras de Negócio Banco de Dados
BD
EJB – Infra-EstruturaCamada 1 Camada 2 Camada 3
Cliente
BD
requisição
respostaTransação
• Aplicação• Servlet• JSP • HTML• outras
autenticação JNDI
Servidor BDServidor EJB
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 podemusar os mesmos componentes simultaneamente.
• Melhora a segurança e confiabilidade.• Facilita a manutenção.
Arquitetura Multicamadas
Camada 1 : Aplicações ClientesCamada 2 : Regras do Negócio
Camada 3 : Dados
BrowserWEB
AplicaçãoJava
DispositivosWAP
Sistema deArquivos
AplicaçãoLegada
ServidorBD
Servidorda
CamadaIntermediária
Camada 1 Camada 2 Camada 3
Tipos EJB
Stateless Stateful ContainerManaged
BeanManaged
Transiente Persistente
EnterpriseJavaBean
SessionBean
EntityBean
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.
Session Beans Stateless vs. Stateful
• Stateless– Não tem estado interno
conversacional entre métodos e transações.
– Sem passivation ouactivition
– Pode ficar no pool paraservir vários clientes
– único construtor create sem parâmetros
• Stateful– Mantém um estado interno
conversacional entremétodos e transações.
– Necessita de passivation eactivation
– Uma instância por cliente– um ou mais construtores
creates com ou sem parâmetros
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
Entity Beans
Container EJB
EJB BD
Container EJB
EJB BD
Persistência Gerenciada pelo Bean
Persistência Gerenciada pelo Container
Utilização de Containers
Cliente BD
EJB ServerEJB Container
Web Container
Modelo de Componentes“Plug in” através de interfaces
Servidor WEB Servidor Aplicação
Interfaces
Componentes e Interfaces
InterfaceRemota
InterfaceHome
• Métodos de criação e destruição
• Métodos de busca (Finders)• Linguagem consulta: EJB-QL
• Regras de Negócio
EJB Container
Interfaces locais e remotas
Internet ou Intranet
Acesso remoto
Acesso local
Interfaces remotas
Interfaces locais
Relacionamentos
EJB Server
EJB Container
**
*1
•Entity Beans•Relacionamentosdevem envolverbeans com interfaceslocais
Campos Virtuais
Métodos Abstratos
Demonstração
TecnologiasTecnologias parapara DBCDBC
DesenvolvimentoDesenvolvimento BaseadoBaseadoemem ComponentesComponentes
DistribuDistribuíídosdos –– IntegrandoIntegrandoTecnologiasTecnologiasEduardo Santana de AlmeidaAntonio Francisco do Prado
Luis Carlos Trevelin
Departamento de ComputaçãoUniversidade Federal de São Carlos – UFSCar
São Carlos (SP) - BrazilEmail: {ealmeida, prado,trevelin}@dc.ufscar.br
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
diferentesdomí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. ParaDistribuiçã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.
Arquitetura em camadas• Web Server, Application Server, Component Server e
Database Server podem ou não residirem na mesma máquina.
Estratégia de Desenvolvimento de Software
Baseado em Componentes Distribuídos
Desenvolver ComponentesDistribuídos
Definir Problema• Primeiro nível de Catalysis – Ênfase no entendimento do domínio,
espeficando-se “o que” os componentes devem atender para solucionaro problema.
Techniques for identification of the requirements domain
Especificar Componentes– Segundo nível de Catalysis – Descrição do comportamento do sistema de uma
forma não ambigua.
Especificar Componentes– Resumo das atividades, realizadas pelo engenheiro de software, na MVCase,
no passo Especificar Componentes:
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
Projetar Componentes• Modelo de Componentes obtido do Modelo de Classes
Framework Persistence
Framework BrokerServlet/GUI
Adaptador Origem
Interface Remota com definição em IDL
Interface Java
Adaptador Destino
Fachada
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 posteriorreutilização das aplicações.
Component Interface IDL Code
Stubs and Skeletons Java Code
Interface Remota (.idl)module MCustomer{
exception CorbaCommunicationException{};
struct Customer{
string Code;
string Name;
string Address;
string City;
string State;
string Phone;
string Email;
string CNJP;
};
Interface Remota (.idl) - (cont.)typedef sequence <Customer> CustomerSequence;
interface ICustomerTargetInterface{
boolean AddCustomer(in string Name,in string Address,in string City,
in string State,in string Phone,in string Email,
in string CNPJ)
raises (CorbaCommunicationException);
CustomerSequence ConsultCustomer(in string QueryCount, in string Sql)
raises (CorbaCommunicationException);
boolean DeleteCustomer(in string Code) raises (CorbaCommunicationException);
boolean UpdateCustomer(in string NewName,in string NewAddress,
in string NewCity,in string NewState,in string NewPhone,
in string NewEmail,in string NewCNPJ,in string Code)
raises (CorbaCommunicationException);
};
};
Operações na MVCASE
Devenvolvimento de Aplicações Distribuídas
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.
Projetar Aplicação• Refinamento das especificações anteriores, com reutilização de componentes.• Requisitos não funcionais: arquitetura distribuída e persistência.
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 extendsHttpServlet{
private ICustomer customer;
public void init(ServletConfig config) throwsServletException{
try {
customer = new CustomerSourceAdapter(null);
} catch (CommunicationException e) {
e.printStackTrace();
}
}
generates
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.
TecnologiasTecnologias parapara DBCDBC
TecnologiasTecnologias parapara DBCDBC
• Delphi (Object Pascal)• C#• COM, DCOM• RMI, JINI• Etc.
Discussão