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

Post on 19-Apr-2015

105 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related