62
Tecnologias Tecnologias para para DBC DBC 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

Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

  • Upload
    sbcars

  • View
    135

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

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

Page 2: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

TecnologiasTecnologias parapara DBCDBC

1. JavaBeans2. Enterprise Java Beans ( E J B )3. Corba4. Outras5. Discussão

Page 3: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

TecnologiasTecnologias parapara DBCDBC

Page 4: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

Componentes de software

Objeto JAVA .EXE

.DLL

Page 5: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

Componentes - JavaBeans

•Um JavaBean é uma classe ou estrutura de classes Java para funcionar como um componente.

Page 6: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

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.

Page 7: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

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)

Page 8: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

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

Page 9: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

Construção dos componentes

Page 10: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

Componentes JavaBeansComponente da Sun

Componentes criados para acessar EJB

JBuilder

Framework EJB Framework EJB FrameworkJavaBeans

Page 11: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

Componentes EJB

EJB Server

ComponentesDomínio ED

Client.jar

Page 12: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

Construção das aplicações

Page 13: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

Construção das aplicações

Componentes do Framework JavaBeans

Personalização dos JavaBeans

Client.jar

Page 14: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

TecnologiasTecnologias parapara DBCDBC

Page 15: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

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

...

...

Page 16: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

Componentes de software

Classe c1

Atributo a1

Atributo a2

Método m1

...

Método m2

...

...

Componente c1

Interface i1

Interface i2

...

Page 17: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

Desenvolvimento Software O O

Análise OO

Droga Raia

Produtoa1, a2, a3

m1, m2

Clientea1, a2

m1

Sistema da farmácia Droga Raia

Page 18: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

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

Page 19: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

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

Page 20: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

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

Page 21: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

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

Page 22: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

Arquitetura em 3 camadas

Aplicações Regras de Negócio Banco de Dados

BD

Page 23: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

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

Page 24: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

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.

Page 25: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

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

Page 26: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

Tipos EJB

Stateless Stateful ContainerManaged

BeanManaged

Transiente Persistente

EnterpriseJavaBean

SessionBean

EntityBean

Page 27: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

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.

Page 28: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

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

Page 29: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

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

Page 30: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

Entity Beans

Container EJB

EJB BD

Container EJB

EJB BD

Persistência Gerenciada pelo Bean

Persistência Gerenciada pelo Container

Page 31: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

Utilização de Containers

Cliente BD

EJB ServerEJB Container

Web Container

Page 32: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

Modelo de Componentes“Plug in” através de interfaces

Servidor WEB Servidor Aplicação

Interfaces

Page 33: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

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

Page 34: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

EJB Container

Interfaces locais e remotas

Internet ou Intranet

Acesso remoto

Acesso local

Interfaces remotas

Interfaces locais

Page 35: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

Relacionamentos

EJB Server

EJB Container

**

*1

•Entity Beans•Relacionamentosdevem envolverbeans com interfaceslocais

Page 36: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

Campos Virtuais

Métodos Abstratos

Page 37: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

Demonstração

Page 38: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

TecnologiasTecnologias parapara DBCDBC

Page 39: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

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

Page 40: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

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.

Page 41: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

Arquitetura em camadas• Web Server, Application Server, Component Server e

Database Server podem ou não residirem na mesma máquina.

Page 42: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

Estratégia de Desenvolvimento de Software

Baseado em Componentes Distribuídos

Page 43: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

Desenvolver ComponentesDistribuídos

Page 44: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

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

Page 45: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

Especificar Componentes– Segundo nível de Catalysis – Descrição do comportamento do sistema de uma

forma não ambigua.

Page 46: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

Especificar Componentes– Resumo das atividades, realizadas pelo engenheiro de software, na MVCase,

no passo Especificar Componentes:

Page 47: Palest"Tecnologias para Desenvolvimento Baseado em 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

Page 48: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

Projetar Componentes• Modelo de Componentes obtido do Modelo de Classes

Page 49: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

Framework Persistence

Page 50: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

Framework BrokerServlet/GUI

Adaptador Origem

Interface Remota com definição em IDL

Interface Java

Adaptador Destino

Fachada

Page 51: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

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

Page 52: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

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;

};

Page 53: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

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);

};

};

Page 54: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

Operações na MVCASE

Page 55: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

Devenvolvimento de Aplicações Distribuídas

Page 56: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

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.

Page 57: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

Projetar Aplicação• Refinamento das especificações anteriores, com reutilização de componentes.• Requisitos não funcionais: arquitetura distribuída e persistência.

Page 58: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

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

Page 59: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

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.

Page 60: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

TecnologiasTecnologias parapara DBCDBC

Page 61: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

TecnologiasTecnologias parapara DBCDBC

• Delphi (Object Pascal)• C#• COM, DCOM• RMI, JINI• Etc.

Page 62: Palest"Tecnologias para Desenvolvimento Baseado em Componentes"

Discussão