Sistemas Distribuídos Baseados em Objetos

54
Sistemas Distribuídos Baseados em Objetos Sistemas Distribuídos 17/08/2011

description

Sistemas Distribuídos Baseados em Objetos. 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 aspectos da distribuição. Sistemas Distribuídos Baseados em Objetos. Arquitetura - PowerPoint PPT Presentation

Transcript of Sistemas Distribuídos Baseados em Objetos

Captulo 10

Sistemas Distribudos Baseados em ObjetosSistemas Distribudos17/08/2011Sistemas Distribudos Baseados em Objetos Captulo 10IntroduoTudo tratado como Objeto;Servios e recursos como objetos a serem invocados;Facilita:Transparncia Oculta aspectos da distribuio

Sistemas Distribudos Baseados em Objetos Captulo 10Sistemas DistribudosBaseados em ObjetosArquiteturaProcessosComunicaoNomeaoSincronizaoConsistncia e ReplicaoTolerncia a FalhaSeguranaSistemas Distribudos Baseados em Objetos Captulo 10ArquiteturaNeste seo, em primeiro lugar, examinaremos com mais profundidade a arquitetura geral de sistemas distribudos baseados em objetos. E logo aps iremos ver como foram desenvolvidos princpios especficos nesses sistemas. Sistemas Distribudos Baseados em Objetos Captulo 10Objetos distribudos A caracterstica fundamental de um objeto que ele encapsula dados, denominados estado, e as operaes executadas nesses dados, denominadas mtodos. Mtodos so disponibilizado por meio de uma interface . importante entender que no h nenhuma modo legal pelo qual um processo possa acessar ou manipular o estado de um objeto, exceto pela invocao dos mtodos disponibilizado para ele por meio de uma interface de objeto Sistemas Distribudos Baseados em Objetos Captulo 10Objetos distribudos Para comear a ter um entendimento sobre o objetos distribudos. Quando um cliente se vincula a um objeto distribudo, uma implementao da interface do objeto, denominada Proxy, carregada no espao de endereo do cliente. Um Proxy a anlogo a um apndice de cliente em sistemas RPC. A nica coisa que ele faz montar invocaes a mtodos em mensagens e desmontar mensagens de respostas.Sistemas Distribudos Baseados em Objetos Captulo 10Objetos distribudos O objeto propriamente dito reside em uma maquina do servidor, onde oferece a mesma interface oferecida na maquina cliente. Requisies de invocaes que chegam so passadas para um apndice servidor, que as desmonta para fazer invocaes de mtodos na interface de objetos que esta no servidor. O apndice do servidor tambm responsvel por montar mensagens de respostas para o cliente. O apndice do lado servidor denominado esqueleto, por fornecer o necessrio para fazer com que o middeware acesse os objetos . Sistemas Distribudos Baseados em Objetos Captulo 10

Objetos de tempo de compilao versus objetos de tempo de execuo A utilizao de objetos de tempo de compilao em sistemas distribudos muitas vezes facilita bastante a construo de aplicaes. A compilao da definio de classe resulta em cdigos 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 compilao seria a dependncia de determinada linguagem.Objetos de tempo de compilao versus objetos de tempo de execuo Para isso o objeto de tempo de execuo seu modo de implementar basicamente deixado aberto. A essncia como deixar que tal implementao aparente ser um objeto cujos mtodos 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 implementao de uma interface e na seqncia, disponibiliza aquela interface para invocaes( remotas ). Objetos persistente e transientes Um objeto persistente o que continua a existir mesmo que, no momento em questo, ele no esteja contido no espao de endereos 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. 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 aplicao de funcionalidade orientada a sistemas.

ArquiteturaModelo de objetos O Globe no adota modelo de objetos remotos.Estado do processo pode ser distribudo e replicadoA figura 10.3 apresenta um objeto distribudo por 4 processos, cada um executando em uma mquina diferente. Em Globe, objetos so denominados objetos compartilhados distribudos.

ArquiteturaA implementao local denominada representao local ou objeto local.H dois tipos de objetos locaisObjeto local primitivoObjeto local compostoA composio usada para construir objeto local que necessrio para implementar objetos compartilhados distribudos.

ArquiteturaSubobjeto de semntica.Subobjeto do comunicao. Subobjeto de controle.

ProcessosServidor de objetoSuporte a objetos distribudosUm objeto consiste em duas partes. (podem estar separadas)Alternativas para invocar objetosConsiderar que h somente um modo de invocar objetosServidor suportar polticas diferentes (objetos transientes) Vantagens: S necessita de recurso quando for utilizadoDesvantagem: Pode demorar algum tempo para ser concluda

Sistemas Distribudos Baseados em Objetos Captulo 10ProcessosAbordagem alternativa, objetos compartilhem, no mnimo o cdigoAbordagem mais simples com um nico thread de controle.Adaptador de objetosSoftware que implementa uma poltica de ativao especfica.Tem mais de um objeto sob seu controleNo conhecem a interface especfica dos objetos, por isso so genricos. Sistemas Distribudos Baseados em Objetos Captulo 10

Sistemas Distribudos Baseados em Objetos Captulo 10ProcessosExemplo: sistema de execuo lce

ComunicaoClientes remotos invocam objetos.Baseado em RPC (chamada a procedimento remoto);Sistemas que suportam objetos distribudos X RPCSistemas: referncia dos objetos no mbito do sistema.Transparncia de distribuio aprimorada com implementao de referncia de objeto sendo ocultada.Processos vinculados objetos;Proxy no espao de endereos do processo;Interface com mtodos acessveis.Sistemas Distribudos Baseados em Objetos Captulo 10Vinculao implcitaCliente invoca mtodos diretamente;Utiliza referncia a um objeto.Vinculao explcitaCliente chama funo especial para se vincular ao objeto.Aps chamar, consegue invocar os mtodos.Comunicao

Vinculao Implcita versusVinculao ExplcitaImplementao de referncias do objetoEndereo de rede da mquina do objeto;Porta que identifica o servidor;Indicao do objeto.Desvantagens da implementao:Se servidor cair e novas portas forem designadas para ele, referncias sero invlidas;Soluo: Daemon local para monitorar designaes servidor/porta com tabela de portas;

ComunicaoDesvantagens da implementao:Servidor muda de mquina: necessrio invalidar referncias aos seus objetos;Soluo: servidor de localizao monitora a mquina que o servidor executa num momento e mantm referncia do objeto;Cliente e servidor devem ter mesmos protocolos:de transporte; para montar/desmontar parmetros; para estabelecer conexo inicial; etc.ComunicaoManipulador de implementaoImplementao completa do proxy referenciada;Cliente carrega de forma dinmica quando vincula ao objeto e no precisa implementao de protocolo especfico;Proxy pode ser especfico para cada objeto;ComunicaoInvocao de mtodo remoto (RMI)Invocao do objeto por proxy;Melhor que RPC;Invocao estticaInterface do objeto tem que ser reconhecida quando aplicao cliente em desenvolvimento;Se interface mudar, aplicao cliente tem que ser recompiladaInvocao dinamicaAplicao seleciona mtodo a ser invocado em runtime;ComunicaoTransferncia de parmetrosObjetos distribudos acessados por mquinas remotas.Referncia objeto remoto:Copiada e transferida como parmetro de valor;Referencia objeto local:Objeto copiado e passado junto invocao;ComunicaoComunicao

Modelo de objetos distribudos em JavaObjetos distribudosJava tambm adota objetos remotos como a nica forma de objetos distribudosInterfaces so implementadas do modo usual por meio de um proxy, que oferece exatamente as mesmas interfaces que o objeto remoto.

Sistemas Distribudos Baseados em Objetos Captulo 10Invocao de objeto remoto em Java Objetos locais e remotos em JavaComo a distino entre objetos locais e remotos dificilmente visvel no nvel de linguagem ,Java pode ocultar a maioria das diferenas durante a invocao de um mtodo remotoDistino feita entre objetos locais e objetos remotos durante uma RMIConstruo do objeto remoto Em essncia construdo com base em duas classes diferentes.Funo do ProxySistemas Distribudos Baseados em Objetos Captulo 10Troca de mensagens baseada em objetosTroca de mensagem em CorbaFaz uma inerente abordagem da comunicao baseada em objeto.Invocao assncrona de mtodoModelo de chamada de retorno do CorbaSistemas Distribudos Baseados em Objetos Captulo 10Troca de mensagens baseada em objetos

Sistemas Distribudos Baseados em Objetos Captulo 10Nomeao Referncias de objeto em CorbaReferncias de objeto em Globe

Sistemas Distribudos Baseados em Objetos Captulo 10SincronizaoSincronizao no Servidor de objetosSe chegarem varias requisies para o mesmo objeto o servidor pode decidir serializar as requisies e travar o objeto quando ele precisar fazer requisies remotasProblema- se o o cliente qTrava pode ser feita no lado servidorAbordagem adotada em JAVA, se dois processos chamarem um mtodo sincronizado, um ser bloqueado o outro seguir

Sistemas Distribudos Baseados em Objetos Captulo 10Sincronizao

Processo de trava visvel para o processo que acessa os recursosProcesso que acessa os recursos no tem conhecimento de possveis travas*Travas ocorre quando o objeto protegidos contra acessos concorrentesConsistncia e ReplicaoConsistncia de entradaQuando um mtodo do objeto estiver em execuo, nenhum outro mtodo poder ser executadoNunca duas invocaes de mtodos independentes ocorram em replicas diferentes ao mesmo tempoComo?Baseado em primarios: esforo do desenvolvedor para serializar invocaoes do objetoMulticast totalmente ordenado:Realizado no middleware, sem esforo do desenvolvedor

Granularidade:Threads processem requisies em ordem no servidorNo necessrio escalonamento determinstico para os threadsAssegurar que todas as requisies para o mesmo objeto replicado sejam manipulados na ordem que so entreguesConsistncia e ReplicaoSistemas Distribudos Baseados em Objetos Captulo 10Consistncia e Replicao

Sistemas Distribudos Baseados em Objetos Captulo 10Ambientes de replicaoInvocaes para objetos so interceptadas em:

No lado do cliente-um pouco antes de a invocao ser passada para o apndice.Dentro do apendice do cliente, onde a intercepo parte do algoritmo de replicaoNo lado do servidor, um pouco antes do objeto ser invocado.Sistemas Distribudos Baseados em Objetos Captulo 10Ambientes de replicao

Sistemas Distribudos Baseados em Objetos Captulo 10Invocaes Replicadas quando um objeto chama outro que esta chamando outro, se o intermedirio for replicado o ultimo objeto tambm ser invocado essa quantidade de vezes. Como resolver:No permitla-asOs outros modos sero detalhados no slide 10 de acordo com as figuras.Sistemas Distribudos Baseados em Objetos Captulo 10Invocaes Replicadas

Sistemas Distribudos Baseados em Objetos Captulo 10Invocaes Replicadas

Sistemas Distribudos Baseados em Objetos Captulo 10Corba Tolerante a FalhasReplicar Objetos em Grupos de ObjetosUm grupo consiste em uma ou mais cpias idnticas do mesmo objeto.Transparente para os clienteGerenciador de ReplicaesResponsvel por criar e gerenciar um grupo de objetos replicados.Sistemas Distribudos Baseados em Objetos Captulo 10Corba Tolerante a Falhas

Sistemas Distribudos Baseados em Objetos Captulo 10Java Tolerante a FalhaBackups PrimriosUm servidor coordena todas as aes que precisam ser executadas e institui periodicamente o backup para fazer o mesmo.Replicao ativaAs rplicas so mantidas atualizadas permitindo que cada uma delas execute as mesmas operaes na mesma ordem.Sistemas Distribudos Baseados em Objetos Captulo 10Globe Repete o tpico em cima se precisarSegurana de PlataformaControle Reverso de AcessoChave de ObjetoChave de RplicaChave do UsurioSistemas Distribudos Baseados em Objetos Captulo 10Globe

Sistemas Distribudos Baseados em Objetos Captulo 10Invocao Segura de Mtodos de objeto em GlobeA invocao segura de mtodo pode ser subdividida em pequenas unidades, sendo que cada uma delas necessria para assegurar que um cliente autenticado possa executar uma invocao autorizada em uma rplica autenticada.

Sistemas Distribudos Baseados em Objetos Captulo 10Invocao Segura de Mtodos de objeto em GlobeNecessrio usar um total de treze etapas

Sistemas Distribudos Baseados em Objetos Captulo 10