SlideShare uma empresa Scribd logo
1 de 62
Baixar para ler offline
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
TecnologiasTecnologias parapara DBCDBC
1. JavaBeans
2. Enterprise Java Beans ( E J B )
3. Corba
4. Outras
5. 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.
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.
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)
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 JavaBeans
Componente da Sun
Componentes criados
para acessar EJB
JBuilder
Framework EJBFramework EJBFramework
JavaBeans
Componentes EJB
EJB Server
Componentes
Domí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
Produto
a1, a2, a3
m1, m2
Cliente
a1, a2
m1
Sistema da
farmácia Droga
Raia
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
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
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
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
Arquitetura em 3 camadas
Aplicações Regras de Negócio Banco de Dados
BD
EJB – Infra-Estrutura
Camada 1 Camada 2 Camada 3
Cliente
BD
requisição
resposta
Transaçã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 podem
usar os mesmos componentes simultaneamente.
• Melhora a segurança e confiabilidade.
• Facilita a manutenção.
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
Tipos EJB
Stateless Stateful Container
Managed
Bean
Managed
Transiente
Persistente
Enterprise
JavaBean
Session
Bean
Entity
Bean
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 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
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 Server
EJB Container
Web Container
Modelo de Componentes
“Plug in” através de interfaces
Servidor WEB Servidor Aplicação
Interfaces
Componentes e Interfaces
Interface
Remota
Interface
Home
• 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
•Relacionamentos
devem envolver
beans com interfaces
locais
Campos Virtuais
Métodos Abstratos
Demonstração
TecnologiasTecnologias parapara DBCDBC
DesenvolvimentoDesenvolvimento BaseadoBaseado
emem ComponentesComponentes
DistribuDistribuíídosdos –– IntegrandoIntegrando
TecnologiasTecnologias
Eduardo Santana de Almeida
Antonio Francisco do Prado
Luis Carlos Trevelin
Departamento de Computação
Universidade Federal de São Carlos – UFSCar
São Carlos (SP) - Brazil
Email: {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
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.
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 Componentes
Distribuídos
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
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 Broker
Servlet/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 posterior
reutilizaçã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 extends
HttpServlet{
private ICustomer customer;
public void init(ServletConfig config) throws
ServletException{
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

Mais conteúdo relacionado

Mais procurados

Curso De Hibernate 3
Curso De Hibernate 3Curso De Hibernate 3
Curso De Hibernate 3Joel Lobo
 
Java EE no ambiente corporativo: primeiros passos WebLogic 12c
Java EE no ambiente corporativo: primeiros passos WebLogic 12cJava EE no ambiente corporativo: primeiros passos WebLogic 12c
Java EE no ambiente corporativo: primeiros passos WebLogic 12cBruno Borges
 
GUJavaSC - Desenvolvendo uma Aplicação com Java EE
GUJavaSC - Desenvolvendo uma Aplicação com Java EEGUJavaSC - Desenvolvendo uma Aplicação com Java EE
GUJavaSC - Desenvolvendo uma Aplicação com Java EERodrigo Cândido da Silva
 
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Adriano Teixeira de Souza
 
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E Jpa
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E JpaDominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E Jpa
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E JpaAna Albert
 
CDI -Contextos e Dependências
CDI -Contextos e DependênciasCDI -Contextos e Dependências
CDI -Contextos e DependênciasWende Mendes
 
GlassFish, Maven, Cloud e o futuro do Java EE
GlassFish, Maven, Cloud e o futuro do Java EEGlassFish, Maven, Cloud e o futuro do Java EE
GlassFish, Maven, Cloud e o futuro do Java EEBruno Borges
 
JavaServer Faces Produtividade em Desenvolvimento
JavaServer Faces Produtividade em DesenvolvimentoJavaServer Faces Produtividade em Desenvolvimento
JavaServer Faces Produtividade em DesenvolvimentoEduardo Bregaida
 
JSF com Primefaces
JSF com PrimefacesJSF com Primefaces
JSF com PrimefacesFabio Noth
 
TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA
TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA  TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA
TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA Rodrigo Cândido da Silva
 
Produtividade com JavaServer Faces
Produtividade com JavaServer FacesProdutividade com JavaServer Faces
Produtividade com JavaServer FacesEduardo Bregaida
 
CURSO DELPHI FUND. CLIENT SERVER (DIURNO)
CURSO DELPHI FUND. CLIENT SERVER (DIURNO) CURSO DELPHI FUND. CLIENT SERVER (DIURNO)
CURSO DELPHI FUND. CLIENT SERVER (DIURNO) Grupo Treinar
 

Mais procurados (19)

Netbeans
NetbeansNetbeans
Netbeans
 
Acelerando o desenvolvimento java com rad 7.5
Acelerando o desenvolvimento java com rad 7.5Acelerando o desenvolvimento java com rad 7.5
Acelerando o desenvolvimento java com rad 7.5
 
Curso De Hibernate 3
Curso De Hibernate 3Curso De Hibernate 3
Curso De Hibernate 3
 
Java EE no ambiente corporativo: primeiros passos WebLogic 12c
Java EE no ambiente corporativo: primeiros passos WebLogic 12cJava EE no ambiente corporativo: primeiros passos WebLogic 12c
Java EE no ambiente corporativo: primeiros passos WebLogic 12c
 
GUJavaSC - Desenvolvendo uma Aplicação com Java EE
GUJavaSC - Desenvolvendo uma Aplicação com Java EEGUJavaSC - Desenvolvendo uma Aplicação com Java EE
GUJavaSC - Desenvolvendo uma Aplicação com Java EE
 
Cdi conceitos
Cdi conceitosCdi conceitos
Cdi conceitos
 
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
 
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E Jpa
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E JpaDominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E Jpa
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E Jpa
 
CDI -Contextos e Dependências
CDI -Contextos e DependênciasCDI -Contextos e Dependências
CDI -Contextos e Dependências
 
GlassFish, Maven, Cloud e o futuro do Java EE
GlassFish, Maven, Cloud e o futuro do Java EEGlassFish, Maven, Cloud e o futuro do Java EE
GlassFish, Maven, Cloud e o futuro do Java EE
 
Curso jsf
Curso jsfCurso jsf
Curso jsf
 
JavaServer Faces Produtividade em Desenvolvimento
JavaServer Faces Produtividade em DesenvolvimentoJavaServer Faces Produtividade em Desenvolvimento
JavaServer Faces Produtividade em Desenvolvimento
 
Hibernate
HibernateHibernate
Hibernate
 
JSF com Primefaces
JSF com PrimefacesJSF com Primefaces
JSF com Primefaces
 
TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA
TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA  TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA
TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA
 
Produtividade com JavaServer Faces
Produtividade com JavaServer FacesProdutividade com JavaServer Faces
Produtividade com JavaServer Faces
 
Introdução a jsf
Introdução a jsfIntrodução a jsf
Introdução a jsf
 
JavaServer Faces
JavaServer FacesJavaServer Faces
JavaServer Faces
 
CURSO DELPHI FUND. CLIENT SERVER (DIURNO)
CURSO DELPHI FUND. CLIENT SERVER (DIURNO) CURSO DELPHI FUND. CLIENT SERVER (DIURNO)
CURSO DELPHI FUND. CLIENT SERVER (DIURNO)
 

Destaque (14)

Pointer vn
Pointer vnPointer vn
Pointer vn
 
Mohana Bhunekar
Mohana BhunekarMohana Bhunekar
Mohana Bhunekar
 
Brochure automazione mef 2015
Brochure automazione mef 2015Brochure automazione mef 2015
Brochure automazione mef 2015
 
John Holiday feature
John Holiday featureJohn Holiday feature
John Holiday feature
 
Preliminary Planning & Research
Preliminary Planning & ResearchPreliminary Planning & Research
Preliminary Planning & Research
 
Leaflet sle
Leaflet sleLeaflet sle
Leaflet sle
 
Beyond digitalisation 2016-06-07
Beyond digitalisation  2016-06-07Beyond digitalisation  2016-06-07
Beyond digitalisation 2016-06-07
 
Risk Engineering Society RISK 2016 Conference
Risk Engineering Society RISK 2016 ConferenceRisk Engineering Society RISK 2016 Conference
Risk Engineering Society RISK 2016 Conference
 
ÖNCEL AKADEMİ: EĞİTİCİNİN DEPREM EĞİTİMİ
ÖNCEL AKADEMİ: EĞİTİCİNİN DEPREM EĞİTİMİÖNCEL AKADEMİ: EĞİTİCİNİN DEPREM EĞİTİMİ
ÖNCEL AKADEMİ: EĞİTİCİNİN DEPREM EĞİTİMİ
 
Taller de corresponsabilidad en las familias.
Taller de corresponsabilidad  en las familias.Taller de corresponsabilidad  en las familias.
Taller de corresponsabilidad en las familias.
 
Audience Profile
Audience ProfileAudience Profile
Audience Profile
 
Taller recuperacion edad media
Taller recuperacion edad mediaTaller recuperacion edad media
Taller recuperacion edad media
 
Cours complément pharmacie quizz 2016
Cours complément pharmacie quizz 2016Cours complément pharmacie quizz 2016
Cours complément pharmacie quizz 2016
 
INTRODUCTION A L’IMMUNOLOGIE EN MEDECINE DENTAIRE
INTRODUCTION A L’IMMUNOLOGIE EN MEDECINE DENTAIREINTRODUCTION A L’IMMUNOLOGIE EN MEDECINE DENTAIRE
INTRODUCTION A L’IMMUNOLOGIE EN MEDECINE DENTAIRE
 

Semelhante a JavaBeans, EJB e CORBA para Desenvolvimento Baseado em Componentes Distribuídos

Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Eric Gallardo
 
Desenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPDesenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPSérgio Vilar
 
Java Platform, Enterprise Edition
Java Platform, Enterprise EditionJava Platform, Enterprise Edition
Java Platform, Enterprise EditionDaniel Arndt Alves
 
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EEUso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EEMarco Antonio Maciel
 
Padrão Arquitetural MVC e suas aplicações para WEB
Padrão Arquitetural MVC e suas aplicações para WEBPadrão Arquitetural MVC e suas aplicações para WEB
Padrão Arquitetural MVC e suas aplicações para WEBRafael França
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaAlexandre Tarifa
 
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009Ramon Durães
 
Curso de Java (Parte 5)
Curso de Java (Parte 5)Curso de Java (Parte 5)
Curso de Java (Parte 5)Mario Sergio
 
Jsf – Java Sever Faces
Jsf – Java Sever FacesJsf – Java Sever Faces
Jsf – Java Sever Facesbielgott
 
Curso C sharp plus Framework NET (DIURNO)
Curso C sharp plus Framework NET (DIURNO) Curso C sharp plus Framework NET (DIURNO)
Curso C sharp plus Framework NET (DIURNO) Grupo Treinar
 
Curso C sharp plus Framework NET (NOTURNO)
Curso C sharp plus Framework NET (NOTURNO)Curso C sharp plus Framework NET (NOTURNO)
Curso C sharp plus Framework NET (NOTURNO)Grupo Treinar
 

Semelhante a JavaBeans, EJB e CORBA para Desenvolvimento Baseado em Componentes Distribuídos (20)

Mini curso JBC
Mini curso JBCMini curso JBC
Mini curso JBC
 
MC - Java Enterprise Edition 6 (Java EE)
MC - Java Enterprise Edition 6 (Java EE)MC - Java Enterprise Edition 6 (Java EE)
MC - Java Enterprise Edition 6 (Java EE)
 
Aula1
Aula1Aula1
Aula1
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014
 
Asp net mvc
Asp net mvcAsp net mvc
Asp net mvc
 
GUJavaSC - Mini-curso Java EE
GUJavaSC - Mini-curso Java EEGUJavaSC - Mini-curso Java EE
GUJavaSC - Mini-curso Java EE
 
Desenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPDesenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHP
 
Aula 1 apresentação
Aula 1   apresentaçãoAula 1   apresentação
Aula 1 apresentação
 
Java Platform, Enterprise Edition
Java Platform, Enterprise EditionJava Platform, Enterprise Edition
Java Platform, Enterprise Edition
 
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EEUso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
 
Curso jsf
Curso jsfCurso jsf
Curso jsf
 
Padrão Arquitetural MVC e suas aplicações para WEB
Padrão Arquitetural MVC e suas aplicações para WEBPadrão Arquitetural MVC e suas aplicações para WEB
Padrão Arquitetural MVC e suas aplicações para WEB
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
 
Java Seminar
Java SeminarJava Seminar
Java Seminar
 
Framework web 01 - Aula UTFPR 2018
Framework web 01 - Aula UTFPR 2018Framework web 01 - Aula UTFPR 2018
Framework web 01 - Aula UTFPR 2018
 
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
 
Curso de Java (Parte 5)
Curso de Java (Parte 5)Curso de Java (Parte 5)
Curso de Java (Parte 5)
 
Jsf – Java Sever Faces
Jsf – Java Sever FacesJsf – Java Sever Faces
Jsf – Java Sever Faces
 
Curso C sharp plus Framework NET (DIURNO)
Curso C sharp plus Framework NET (DIURNO) Curso C sharp plus Framework NET (DIURNO)
Curso C sharp plus Framework NET (DIURNO)
 
Curso C sharp plus Framework NET (NOTURNO)
Curso C sharp plus Framework NET (NOTURNO)Curso C sharp plus Framework NET (NOTURNO)
Curso C sharp plus Framework NET (NOTURNO)
 

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
  • 2. TecnologiasTecnologias parapara DBCDBC 1. JavaBeans 2. Enterprise Java Beans ( E J B ) 3. Corba 4. Outras 5. Discussão
  • 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
  • 10. Componentes JavaBeans Componente da Sun Componentes criados para acessar EJB JBuilder Framework EJBFramework EJBFramework JavaBeans
  • 13. Construção das aplicações Componentes do Framework JavaBeans Personalização dos JavaBeans Client.jar
  • 15. 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 ... ...
  • 16. Componentes de software Classe c1 Atributo a1 Atributo a2 Método m1 ... Método m2 ... ... Componente c1 Interface i1 Interface i2 ...
  • 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
  • 23. EJB – Infra-Estrutura Camada 1 Camada 2 Camada 3 Cliente BD requisição resposta Transação • Aplicação • Servlet • JSP • HTML • outras autenticação JNDI Servidor BDServidor EJB
  • 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
  • 26. Tipos EJB Stateless Stateful Container Managed Bean Managed Transiente Persistente Enterprise JavaBean Session Bean Entity Bean
  • 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
  • 31. Utilização de Containers Cliente BD EJB Server EJB Container Web Container
  • 32. Modelo de Componentes “Plug in” através de interfaces Servidor WEB Servidor Aplicação Interfaces
  • 33. Componentes e Interfaces Interface Remota Interface Home • Métodos de criação e destruição • Métodos de busca (Finders) • Linguagem consulta: EJB-QL • Regras de Negócio
  • 34. EJB Container Interfaces locais e remotas Internet ou Intranet Acesso remoto Acesso local Interfaces remotas Interfaces locais
  • 35. Relacionamentos EJB Server EJB Container * * *1 •Entity Beans •Relacionamentos devem envolver beans com interfaces locais
  • 39. DesenvolvimentoDesenvolvimento BaseadoBaseado emem ComponentesComponentes DistribuDistribuíídosdos –– IntegrandoIntegrando TecnologiasTecnologias Eduardo Santana de Almeida Antonio Francisco do Prado Luis Carlos Trevelin Departamento de Computação Universidade Federal de São Carlos – UFSCar São Carlos (SP) - Brazil Email: {ealmeida, prado,trevelin}@dc.ufscar.br
  • 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.
  • 42. Estratégia de Desenvolvimento de Software Baseado em Componentes Distribuídos
  • 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
  • 45. Especificar Componentes – Segundo nível de Catalysis – Descrição do comportamento do sistema de uma forma não ambigua.
  • 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
  • 48. Projetar Componentes • Modelo de Componentes obtido do Modelo de Classes
  • 50. Framework Broker Servlet/GUI Adaptador Origem Interface Remota com definição em IDL Interface Java Adaptador Destino Fachada
  • 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
  • 52. 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; };
  • 53. 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); }; };
  • 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.
  • 61. TecnologiasTecnologias parapara DBCDBC • Delphi (Object Pascal) • C# • COM, DCOM • RMI, JINI • Etc.