Upload
internet
View
108
Download
0
Embed Size (px)
Citation preview
1Sistemas Distribuídos
Sistemas Distribuídos
Carlos A. G. Ferraz
DI/UFPE
Aula 07
Objetos DistribuídosTópicos Orientação a Objetos Java DCOM Padrões Aplicação Exemplo
Tecnologias em Evolução
OrientaçãoOrientaçãoaa
ObjetosObjetos
SistemasSistemasDistribuídosDistribuídos
atributosatributosmétodosmétodosinterfaceinterfaceherançaherança
polimorfismopolimorfismoencapsulamentoencapsulamento
transparênciatransparênciasegurançasegurançaintegraçãointegração
heterogeneidadeheterogeneidadeportabilidadeportabilidade
interoperabilidadeinteroperabilidade
Agregando Mundos
OrientaçãoOrientaçãoaa
ObjetosObjetos
SistemasSistemasDistribuídosDistribuídos
ObjetosObjetosDistribuídosDistribuídos
encapsulamentoencapsulamentoportabilidadeportabilidade
interoperabilidadeinteroperabilidade
Integração de ComponentesIntegração de Componentes
Desenvolvimento de Software Orientado a Objeto
Se técnicas OO bem aplicadas... melhor qualidade do software
Melhor qualidade devido ao uso de componentes pré-fabricados e previamente testados
Desenvolvimento de Software OO (cont.)
Encapsulamento reduz a interferência mútua entre módulos
Diminuindo efeitos colaterais, como alterar parte de programa e gerar “bug” em outro ponto
Desenvolvimento de Software OO (cont.)
Sistemas OO podem representar melhor o mundo real
Modelagem mais perfeita e natural
Desenvolvimento de Software OO (cont.)
A longo prazo: custos e prazos de desenvolvimento reduzidos
Investimentos iniciais altos
Desenvolvimento de Software OO (cont.)
Objetos devem falar com outros objetos
Em máquinas diferentes ou iguais Interoperabilidade é fundamental
para qualquer paradigma atual OLE/COM, DCOM, CORBA
Desenvolvimento de Software OO (cont.)
O uso de ORBs permite encapsular uma aplicação legada, transformando-a em um objeto servidor, que pode se comunicar com quaisquer outros objetos
Desenvolvimento de Software OO (cont.)
“As grandes vantagens de OO podem ser resumidas em 3 palavras:
produtividade, qualidade e flexibilidade.”
JavaRemote Method Invocation (RMI) Permite comunicação de
processos Sockets são muito baixo nível RPC não lida bem com objetos
(procedimentos x métodos) Projetado para ambiente Java
Virtual Machine homogêneo
Java - RMIObjetivos Integrar objetos distribuídos, de
forma simples e natural Minimizar complexidade de código
cliente e servidor criado pelo usuário
Compatibilidade com Java VM, gerentes de segurança e carregadores de classes
Java - RMIAlvos específicos Múltiplos mecanismos de invocação (1:1, 1:n) Invocação de método em objeto remoto com
mesma sintaxe para objeto local Múltiplos tipos de referência - não-persistente,
persistente, ativação “preguiçosa” Coleta de lixo distribuída Múltiplos transportes
Java - RMICamadas Aplicação - sobre o Sistema RMI (3
camadas abaixo): Stub/Skeleton Remote reference - chamada Transporte - estabelece e gerencia
conexão e rastreia objeto remoto
Carga dinâmica de stubs transfere stub para cliente
Java - RMIArquitetura
Java - RMIEm suma Mais leve que CORBA Apenas Java-Java Forte integração de objetos
distribuídos com Java
Java - RMILocalização de objetos remotos Cliente obtém referência para
objeto Interface java.rmi.Naming
contém funções lookup, bind, rebind, unbind, list
Localização de Objeto RemotoExemploBankAccount acct = new BankAcct.Impl();
String url = “rmi://java.Sun.COM/account”;
// liga url a objeto remoto
java.rmi.Naming.bind(url, acct);
....
// procura conta
acct = (BankAccount)java.rmi.Naming.lookup(url);
Java - IDL Aplicações Java podem acessar
objetos CORBA Aplicações independentes de
linguagem podem acessar objetos Java via CORBA
CORBA/DCOM/Java Todos fornecem barramento de
objetos distribuídos Invocações de métodos estáticos e
dinâmicos Repositórios de interfaces IDL Repositórios de implementações
CORBA/DCOM/JavaServiços de sistema
Serviço DCOM/OLE CORBA Java
Events ActiveX S Beans
LifeCycle S S RMI
Naming S S RMI
Persistence S S Beans
Integração RDBMS OLE DB S JDBC
Transactions N S NQuery
CORBA/DCOM/JavaServiços de sistema (cont.)
Serviço DCOM/OLE CORBA Java
Query OLE DB S N
Versioning N S N
Compound Docs. DocFiles OpenDoc BeansQuery
Java ou ActiveX JavaBeans não é uma versão de
Java Framework para construção de
componentes Java JavaBeans compete com ActiveX
ActiveX Extensão do alcance de
OLE (Object Linking and Embbeding)
COM (Component Object Model) Como JavaBeans, é um framework
de componentes otimizados para operar em ambiente distribuído
Java Seu grande apelo é a portabilidade
entre plataformas “Write once, run everywhere” Mais comparações na próxima Mais comparações na próxima
aula...aula...