sistemas distribuídos carlos a. g. ferraz di/ufpe aula 07

26
1 Sistemas Distribuídos Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 07

Upload: internet

Post on 19-Apr-2015

108 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 07

1Sistemas Distribuídos

Sistemas Distribuídos

Carlos A. G. Ferraz

DI/UFPE

Aula 07

Page 2: 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

Page 3: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 07

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

Page 4: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 07

Agregando Mundos

OrientaçãoOrientaçãoaa

ObjetosObjetos

SistemasSistemasDistribuídosDistribuídos

ObjetosObjetosDistribuídosDistribuídos

encapsulamentoencapsulamentoportabilidadeportabilidade

interoperabilidadeinteroperabilidade

Integração de ComponentesIntegração de Componentes

Page 5: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 07

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

Page 6: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 07

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

Page 7: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 07

Desenvolvimento de Software OO (cont.)

Sistemas OO podem representar melhor o mundo real

Modelagem mais perfeita e natural

Page 8: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 07

Desenvolvimento de Software OO (cont.)

A longo prazo: custos e prazos de desenvolvimento reduzidos

Investimentos iniciais altos

Page 9: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 07

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

Page 10: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 07

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

Page 11: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 07

Desenvolvimento de Software OO (cont.)

“As grandes vantagens de OO podem ser resumidas em 3 palavras:

produtividade, qualidade e flexibilidade.”

Page 12: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 07

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

Page 13: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 07

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

Page 14: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 07

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

Page 15: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 07

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

Page 16: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 07

Java - RMIArquitetura

Page 17: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 07

Java - RMIEm suma Mais leve que CORBA Apenas Java-Java Forte integração de objetos

distribuídos com Java

Page 18: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 07

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

Page 19: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 07

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

Page 20: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 07

Java - IDL Aplicações Java podem acessar

objetos CORBA Aplicações independentes de

linguagem podem acessar objetos Java via CORBA

Page 21: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 07

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

Page 22: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 07

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

Page 23: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 07

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

Page 24: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 07

Java ou ActiveX JavaBeans não é uma versão de

Java Framework para construção de

componentes Java JavaBeans compete com ActiveX

Page 25: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 07

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

Page 26: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 07

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...