Você está na página 1de 55

Sistemas Distribuídos

Baseados em Objetos
Sistemas Distribuídos
Capítulo 10
Introdução
Tudo tratado como Objeto;
Serviços e recursos como objetos a serem invocados;
Facilita:
Transparência
Oculta aspectos da distribuição

Sistemas Distribuídos - Capítulo 10 - Os Incríveis


Sistemas Distribuídos
Baseados em Objetos
Arquitetura
Processos
Comunicação
Nomeação
Sincronização
Consistência e Replicação
Tolerância a Falha
Segurança

Sistemas Distribuídos - Capítulo 10 - Os Incríveis


Arquitetura

Neste seção, em primeiro lugar, examinaremos com


mais profundidade a arquitetura geral de sistemas
distribuídos baseados em objetos. E logo após iremos
ver como foram desenvolvidos princípios específicos
nesses sistemas.

Sistemas Distribuídos - Capítulo 10 - Os Incríveis


Objetos distribuídos
A característica fundamental de um objeto é que ele
encapsula dados, denominados estado, e as operações
executadas nesses dados, denominadas métodos.
Métodos são disponibilizado por meio de uma
interface .
É importante entender que não há nenhuma modo
legal pelo qual um processo possa acessar ou
manipular o estado de um objeto, exceto pela
invocação dos métodos disponibilizado para ele por
meio de uma interface de objeto

Sistemas Distribuídos - Capítulo 10 - Os Incríveis


Objetos distribuídos
Para começar a ter um entendimento sobre o objetos
distribuídos. Quando um cliente se vincula a um
objeto distribuído, uma implementação da interface
do objeto, denominada Proxy, é carregada no espaço
de endereço do cliente. Um Proxy é a análogo a um
apêndice de cliente em sistemas RPC. A única coisa
que ele faz é montar invocações a métodos em
mensagens e desmontar mensagens de respostas.

Sistemas Distribuídos - Capítulo 10 - Os Incríveis


Objetos distribuídos
O objeto propriamente dito reside em uma maquina
do servidor, onde oferece a mesma interface oferecida
na maquina cliente. Requisições de invocações que
chegam são passadas para um apêndice servidor, que
as desmonta para fazer invocações de métodos na
interface de objetos que esta no servidor. O apêndice
do servidor também é responsável por montar
mensagens de respostas para o cliente.
 O apêndice do lado servidor é denominado esqueleto,
por fornecer o necessário para fazer com que o
middeware acesse os objetos .
Sistemas Distribuídos - Capítulo 10 - Os Incríveis
Sistemas Distribuídos - Capítulo 10 - Os Incríveis
Objetos de tempo de compilação versus objetos
de tempo de execução
A utilização de objetos de tempo de compilação em
sistemas distribuídos muitas vezes facilita bastante a
construção de aplicações. A compilação da definição
de classe resulta em códigos que permite a ela
instanciar objetos em Java. Sendo assim interfaces
pode ser compilados do lado do cliente e do servidor o
que permite que objetos em Java pode ser invocados
remotamente.
A desvantagem deste tempo de compilação seria a
dependência de determinada linguagem.

Sistemas Distribuídos - Capítulo 10 - Os Incríveis


Objetos de tempo de compilação versus objetos
de tempo de execução
Para isso o objeto de tempo de execução seu modo de
implementar é basicamente deixado aberto. A essência
é como deixar que tal implementação aparente ser um
objeto cujos métodos possam ser invocados de uma
maquina remota. Uma abordagem comum e usar um
adaptador de objeto.
O adaptador de objeto desempenha o papel registrar
uma implementação de uma interface e na seqüência,
disponibiliza aquela interface para
invocações( remotas ).

Sistemas Distribuídos - Capítulo 10 - Os Incríveis


Objetos persistente e transientes
Um objeto persistente é o que continua a existir
mesmo que, no momento em questão, ele não esteja
contido no espaço de endereços de qualquer processo
servidor.

Um objeto transiente é um objeto que existe somente


enquanto existir o servidor que o está hospedando.
Quando o servidor sai ele deixa de existir.

Sistemas Distribuídos - Capítulo 10 - Os Incríveis


Enterprise Java Beans
UM EJB (Enterprise Java Beans) e um objeto em java
hospedado por um servidor especial que oferece aos
clientes remotos modos diferentes para invocar aquele
objeto. Este servidor tem que fornecer suporte para
separar funcionalidade de aplicação de funcionalidade
orientada a sistemas.

Sistemas Distribuídos - Capítulo 10 - Os Incríveis


Sistemas Distribuídos - Capítulo 10 - Os Incríveis
Arquitetura
Modelo de objetos
O Globe não adota modelo de objetos remotos.
Estado do processo pode ser distribuído e replicado
A figura 10.3 apresenta um objeto distribuído por 4
processos, cada um executando em uma máquina
diferente.
Em Globe, objetos são denominados objetos
compartilhados distribuídos.

Sistemas Distribuídos - Capítulo 10 - Os Incríveis


Sistemas Distribuídos - Capítulo 10 - Os Incríveis
Arquitetura
A implementação local é denominada representação
local ou objeto local.
Há dois tipos de objetos locais
 Objeto local primitivo
 Objeto local composto

A composição é usada para construir objeto local que é


necessário para implementar objetos compartilhados
distribuídos.

Sistemas Distribuídos - Capítulo 10 - Os Incríveis


Sistemas Distribuídos - Capítulo 10 - Os Incríveis
Arquitetura
Subobjeto de semântica.
Subobjeto do comunicação.
Subobjeto de controle.

Sistemas Distribuídos - Capítulo 10 - Os Incríveis


Processos
Servidor de objeto
Suporte a objetos distribuídos
Um objeto consiste em duas partes. (podem estar
separadas)
Alternativas para invocar objetos
Considerar que há somente um modo de invocar objetos
Servidor suportar políticas diferentes (objetos
transientes)
 Vantagens:Só necessita de recurso quando for utilizado
 Desvantagem: Pode demorar algum tempo para ser concluída

Sistemas Distribuídos - Capítulo 10 - Os Incríveis


Processos
Abordagem alternativa, objetos compartilhem, no
mínimo o código
Abordagem mais simples com um único thread de
controle.
Adaptador de objetos
Software que implementa uma política de ativação
específica.
Tem mais de um objeto sob seu controle
Não conhecem a interface específica dos objetos, por
isso são genéricos.

Sistemas Distribuídos - Capítulo 10 - Os Incríveis


Sistemas Distribuídos - Capítulo 10 - Os Incríveis
Processos
Exemplo: sistema de execução lce

Sistemas Distribuídos - Capítulo 10 - Os Incríveis


Sistemas Distribuídos - Capítulo 10 - Os Incríveis
Comunicação
Clientes remotos invocam objetos.
 Baseado em RPC (chamada a procedimento remoto);

Sistemas que suportam objetos distribuídos X RPC


 Sistemas: referência dos objetos no âmbito do sistema.
 Transparência de distribuição aprimorada com implementação de
referência de objeto sendo ocultada.
Processos vinculados à objetos;
 Proxy no espaço de endereços do processo;
 Interface com métodos acessíveis.

Sistemas Distribuídos - Capítulo 10 - Os Incríveis


Comunicação
Vinculação implícita
 Cliente invoca métodos diretamente;
 Utiliza referência a um objeto.

Vinculação explícita
 Cliente chama função especial para se vincular ao objeto.
 Após chamar, consegue invocar os métodos.

Sistemas Distribuídos - Capítulo 10 - Os Incríveis


Vinculação Implícita versus
Vinculação Explícita

Sistemas Distribuídos - Capítulo 10 - Os Incríveis


Comunicação
Implementação de referências do objeto
 Endereço de rede da máquina do objeto;
 Porta que identifica o servidor;
 Indicação do objeto.

Desvantagens da implementação:
 Se servidor cair e novas portas forem designadas para ele,
referências serão inválidas;
 Solução: Daemon local para monitorar designações

servidor/porta com tabela de portas;

Sistemas Distribuídos - Capítulo 10 - Os Incríveis


Comunicação
Desvantagens da implementação:
 Servidor muda de máquina: necessário invalidar referências aos
seus objetos;
 Solução: servidor de localização – monitora a máquina que o

servidor executa num momento e mantém referência do objeto;


 Cliente e servidor devem ter mesmos protocolos:
 de transporte;
 para montar/desmontar parâmetros;

 para estabelecer conexão inicial;

 etc.

Sistemas Distribuídos - Capítulo 10 - Os Incríveis


Comunicação
Manipulador de implementação
 Implementação completa do proxy referenciada;
 Cliente carrega de forma dinâmica quando vincula ao objeto e não
precisa implementação de protocolo específico;
 Proxy pode ser específico para cada objeto;

Sistemas Distribuídos - Capítulo 10 - Os Incríveis


Comunicação
Invocação de método remoto (RMI)
 Invocação do objeto por proxy;
 Melhor que RPC;

Invocação estática
 Interface do objeto tem que ser reconhecida quando aplicação cliente em
desenvolvimento;
 Se interface mudar, aplicação cliente tem que ser recompilada

Invocação dinamica
 Aplicação seleciona método a ser invocado em runtime;

Sistemas Distribuídos - Capítulo 10 - Os Incríveis


Comunicação
Transferência de parâmetros
 Objetos distribuídos acessados por máquinas remotas.

Referência à objeto remoto:


 Copiada e transferida como parâmetro de valor;

Referencia à objeto local:


 Objeto copiado e passado junto à invocação;

Sistemas Distribuídos - Capítulo 10 - Os Incríveis


Comunicação

Sistemas Distribuídos - Capítulo 10 - Os Incríveis


Modelo de objetos distribuídos
em Java
Objetos distribuídos
 Java também adota objetos remotos como a única forma de
objetos distribuídos
 Interfaces são implementadas do modo usual por meio de um
proxy, que oferece exatamente as mesmas interfaces que o
objeto remoto.

Sistemas Distribuídos - Capítulo 10 - Os Incríveis


Invocação de objeto remoto
em Java
Objetos locais e remotos em Java
 Como a distinção entre objetos locais e remotos dificilmente é
visível no nível de linguagem ,Java pode ocultar a maioria das
diferenças durante a invocação de um método remoto
 Distinção feita entre objetos locais e objetos remotos durante
uma RMI
Construção do objeto remoto
Em essência é construído com base em duas classes
diferentes.
• Função do Proxy
Sistemas Distribuídos - Capítulo 10 - Os Incríveis
Troca de mensagens baseada
em objetos
Troca de mensagem em Corba
Faz uma inerente abordagem da comunicação baseada
em objeto.
Invocação assíncrona de método
Modelo de chamada de retorno do Corba

Sistemas Distribuídos - Capítulo 10 - Os Incríveis


Troca de mensagens baseada
em objetos

Sistemas Distribuídos - Capítulo 10 - Os Incríveis


Nomeação
Referências de objeto em Corba
Referências de objeto em Globe

Sistemas Distribuídos - Capítulo 10 - Os Incríveis


Sincronização
Sincronização no Servidor de objetos
Se chegarem varias requisições para o mesmo objeto o
servidor pode decidir serializar as requisições e travar o
objeto quando ele precisar fazer requisições remotas
Problema- se o o cliente q
Trava pode ser feita no lado servidor
Abordagem adotada em JAVA, se dois processos
chamarem um método sincronizado, um será bloqueado
o outro seguirá
Processo de
trava visível para
Sincronização o processo que
acessa os
recursos

Processo que
acessa os
recursos não
tem
conhecimento de
possíveis travas

*Travas ocorre quando o objeto é protegidos contra acessos concorrentes


Consistência e Replicação
Consistência de entrada
Quando um método do objeto estiver em execução,
nenhum outro método poderá ser executado
Nunca duas invocações de métodos independentes
ocorram em replicas diferentes ao mesmo tempo
Como?
Baseado em primarios: esforço do desenvolvedor para
serializar invocaçoes do objeto
Multicast totalmente ordenado:Realizado no
middleware, sem esforço do desenvolvedor
Consistência e Replicação
Granularidade:
Threads processem requisições em ordem no servidor
Não é necessário escalonamento determinístico para os
threads
Assegurar que todas as requisições para o mesmo objeto
replicado sejam manipulados na ordem que são
entregues

Sistemas Distribuídos - Capítulo 10 - Os Incríveis


Consistência e Replicação

Sistemas Distribuídos - Capítulo 10 - Os Incríveis


Ambientes de replicação
Invocações para objetos são interceptadas em:

No lado do cliente-um pouco antes de a invocação ser


passada para o apêndice.
Dentro do apendice do cliente, onde a intercepção é
parte do algoritmo de replicação
No lado do servidor, um pouco antes do objeto ser
invocado.

Sistemas Distribuídos - Capítulo 10 - Os Incríveis


Ambientes de replicação

Sistemas Distribuídos - Capítulo 10 - Os Incríveis


Invocações Replicadas
É quando um objeto chama outro que esta chamando
outro, se o intermediário for replicado o ultimo objeto
também será invocado essa quantidade de vezes. Como
resolver:
Não permitíla-as
Os outros modos serão detalhados no slide 10 de acordo
com as figuras.

Sistemas Distribuídos - Capítulo 10 - Os Incríveis


Invocações Replicadas

Sistemas Distribuídos - Capítulo 10 - Os Incríveis


Invocações Replicadas

Sistemas Distribuídos - Capítulo 10 - Os Incríveis


Corba Tolerante a Falhas
Replicar Objetos em Grupos de Objetos
 Um grupo consiste em uma ou mais cópias idênticas do
mesmo objeto.
Transparente para os cliente
Gerenciador de Replicações
Responsável por criar e gerenciar um grupo de objetos
replicados.

Sistemas Distribuídos - Capítulo 10 - Os Incríveis


Corba Tolerante a Falhas

Sistemas Distribuídos - Capítulo 10 - Os Incríveis


Java Tolerante a Falha
Backups Primários
Um servidor coordena todas as ações que precisam ser
executadas e institui periodicamente o backup para
fazer o mesmo.
Replicação ativa
As réplicas são mantidas atualizadas permitindo que
cada uma delas execute as mesmas operações na mesma
ordem.

Sistemas Distribuídos - Capítulo 10 - Os Incríveis


Globe
Repete o tópico em cima se precisar
Segurança de Plataforma
Controle Reverso de Acesso
Chave de Objeto
Chave de Réplica
Chave do Usuário

Sistemas Distribuídos - Capítulo 10 - Os Incríveis


Globe

Sistemas Distribuídos - Capítulo 10 - Os Incríveis


Invocação Segura de Métodos
de objeto em Globe
A invocação segura de método pode ser subdividida
em pequenas unidades, sendo que cada uma delas é
necessária para assegurar que um cliente autenticado
possa executar uma invocação autorizada em uma
réplica autenticada.

Sistemas Distribuídos - Capítulo 10 - Os Incríveis


Invocação Segura de Métodos
de objeto em Globe
Necessário usar um total de treze etapas

Sistemas Distribuídos - Capítulo 10 - Os Incríveis


Sistemas Distribuídos
Baseados em Objetos
Dúvidas? Críticas? Sugestões?

Sistemas Distribuídos - Capítulo 10 - Os Incríveis

Você também pode gostar