54
Sistemas Distribuídos 17/08/2011

Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

Embed Size (px)

Citation preview

Page 1: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

Sistemas Distribuídos17/08/2011

Page 2: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

IntroduçãoTudo tratado como Objeto;Serviços e recursos como objetos a serem

invocados;Facilita:

Transparência Oculta aspectos da distribuição

Page 3: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

Sistemas DistribuídosBaseados em ObjetosArquiteturaProcessosComunicaçãoNomeaçãoSincronizaçãoConsistência e ReplicaçãoTolerância a FalhaSegurança

Page 4: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

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.

Page 5: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

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

Page 6: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

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.

Page 7: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

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 .

Page 8: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta
Page 9: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

Objetos de tempo de compilação versusversus 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.

Page 10: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

Objetos de tempo de compilação versusversus 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 ).

Page 11: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

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.

Page 12: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

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.

Page 13: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta
Page 14: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

ArquiteturaModelo de objetos

O Globe não adota modelo de objetos remotos.Estado do processo pode ser distribuído e

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

Page 15: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta
Page 16: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

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

Page 17: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta
Page 18: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

ArquiteturaSubobjeto de semântica.Subobjeto do comunicação. Subobjeto de controle.

Page 19: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

ProcessosServidor de objeto

Suporte a objetos distribuídosUm 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

Page 20: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

ProcessosAbordagem alternativa, objetos compartilhem,

no mínimo o códigoAbordagem 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 controleNão conhecem a interface específica dos

objetos, por isso são genéricos.

Page 21: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta
Page 22: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

ProcessosExemplo: sistema de execução lce

Page 23: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta
Page 24: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

ComunicaçãoClientes remotos invocam objetos.

Baseado em RPC (chamada a procedimento remoto);

Sistemas que suportam objetos distribuídos X RPCSistemas: 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.

Page 25: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

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

Vinculação explícitaCliente chama função especial para se vincular ao

objeto.Após chamar, consegue invocar os métodos.

Comunicação

Page 26: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

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

Page 27: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

Implementação de referências do objetoEndereç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;

Comunicação

Page 28: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

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.

Comunicação

Page 29: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

Manipulador de implementaçãoImplementaçã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;

Comunicação

Page 30: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

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 dinamicaAplicação seleciona método a ser invocado em runtime;

Comunicação

Page 31: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

Transferência de parâmetrosObjetos 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;

Comunicação

Page 32: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

Comunicação

Page 33: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

Modelo de objetos distribuídos em JavaObjetos 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.

Page 34: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

Invocação de objeto remoto em Java

Objetos locais e remotos em JavaComo 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

Page 35: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

Troca de mensagens baseada em objetos

Troca de mensagem em CorbaFaz uma inerente abordagem da comunicação

baseada em objeto.Invocação assíncrona de métodoModelo de chamada de retorno do Corba

Page 36: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

Troca de mensagens baseada em objetos

Page 37: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

Nomeação Referências de objeto em CorbaReferências de objeto em Globe

Page 38: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

SincronizaçãoSincronizaçã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 qTrava pode ser feita no lado servidor

Abordagem adotada em JAVA, se dois processos chamarem um método sincronizado, um será bloqueado o outro seguirá

Page 39: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

SincronizaçãoProcesso de trava visível para 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

Page 40: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

Consistência e ReplicaçãoConsistê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

Page 41: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

Granularidade:Threads processem requisições em ordem no

servidorNão é necessário escalonamento

determinístico para os threadsAssegurar que todas as requisições para o

mesmo objeto replicado sejam manipulados na ordem que são entregues

Consistência e Replicação

Page 42: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

Consistência e Replicação

Page 43: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

Ambientes de replicaçãoInvocaçõ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.

Page 44: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

Ambientes de replicação

Page 45: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

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-asOs outros modos serão detalhados no slide 10

de acordo com as figuras.

Page 46: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

Invocações Replicadas

Page 47: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

Invocações Replicadas

Page 48: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

Corba Tolerante a Falhas

Replicar Objetos em Grupos de ObjetosUm grupo consiste em uma ou mais cópias

idênticas do mesmo objeto.

Transparente para os clienteGerenciador de Replicações

Responsável por criar e gerenciar um grupo de objetos replicados.

Page 49: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

Corba Tolerante a Falhas

Page 50: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

Java Tolerante a FalhaBackups Primários

Um servidor coordena todas as ações que precisam ser executadas e institui periodicamente o backup para fazer o mesmo.

Replicação ativaAs réplicas são mantidas atualizadas

permitindo que cada uma delas execute as mesmas operações na mesma ordem.

Page 51: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

Globe Repete o tópico em cima se precisar

Segurança de PlataformaControle Reverso de AcessoChave de ObjetoChave de RéplicaChave do Usuário

Page 52: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

Globe

Page 53: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

Invocação Segura de Métodos de objeto em GlobeA 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.

Page 54: Sistemas Distribuídos 17/08/2011. Introdução Tudo tratado como Objeto; Serviços e recursos como objetos a serem invocados; Facilita: Transparência Oculta

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