55
Sistemas Distribuídos Baseados em Objetos Sistemas Distribuídos Capítulo 10

Sistemas Distribuídos Baseados em Objetos

Embed Size (px)

Citation preview

Sistemas Distribudos Captulo 10

Introduoy Tudo tratado como Objeto; y Servios e recursos como objetos a serem invocados; y Facilita: y Transparncia y Oculta aspectos da distribuio

Sistemas Distribudos - Captulo 10 - Os Incrveis

Sistemas Distribudos Baseados em Objetosy Arquitetura y Processos y Comunicao y Nomeao y Sincronizao y Consistncia e Replicao y Tolerncia a Falha y Segurana

Sistemas Distribudos - Captulo 10 - Os Incrveis

Arquiteturay Neste 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 - Captulo 10 - Os Incrveis

Objetos distribudosy 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 . y 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 objetoSistemas Distribudos - Captulo 10 - Os Incrveis

Objetos distribudosy 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 - Captulo 10 - Os Incrveis

Objetos distribudosy 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. y O apndice do lado servidor denominado esqueleto, por fornecer o necessrio para fazer com que o middeware acesse os objetos .Sistemas Distribudos - Captulo 10 - Os Incrveis

Sistemas Distribudos - Captulo 10 - Os Incrveis

Objetos de tempo de compilao versus objetos de tempo de execuoy 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. y A desvantagem deste tempo de compilao seria a dependncia de determinada linguagem.Sistemas Distribudos - Captulo 10 - Os Incrveis

Objetos de tempo de compilao versus objetos de tempo de execuoy 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. y O adaptador de objeto desempenha o papel registrar uma implementao de uma interface e na seqncia, disponibiliza aquela interface para invocaes( remotas ).Sistemas Distribudos - Captulo 10 - Os Incrveis

Objetos persistente e transientesy 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.

y 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 Distribudos - Captulo 10 - Os Incrveis

Enterprise Java Beansy 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.

Sistemas Distribudos - Captulo 10 - Os Incrveis

Sistemas Distribudos - Captulo 10 - Os Incrveis

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

Sistemas Distribudos - Captulo 10 - Os Incrveis

Sistemas Distribudos - Captulo 10 - Os Incrveis

Arquiteturay A implementao local denominada representao

local ou objeto local. y H dois tipos de objetos locaisy y

Objeto local primitivo Objeto local composto

y A composio usada para construir objeto local que

necessrio para implementar objetos compartilhados distribudos.

Sistemas Distribudos - Captulo 10 - Os Incrveis

Sistemas Distribudos - Captulo 10 - Os Incrveis

Arquiteturay Subobjeto de semntica. y Subobjeto do comunicao. y Subobjeto de controle.

Sistemas Distribudos - Captulo 10 - Os Incrveis

Processosy Servidor de objeto y Suporte a objetos distribudos y Um objeto consiste em duas partes. (podem estar separadas) y Alternativas para invocar objetos y Considerar que h somente um modo de invocar objetos y Servidor suportar polticas diferentes (objetos transientes)y y

Vantagens: S necessita de recurso quando for utilizado Desvantagem: Pode demorar algum tempo para ser concludaSistemas Distribudos - Captulo 10 - Os Incrveis

Processosy Abordagem alternativa, objetos compartilhem, no

mnimo o cdigo y Abordagem mais simples com um nico thread de controle.

y Adaptador de objetos y Software que implementa uma poltica de ativao especfica. y Tem mais de um objeto sob seu controle y No conhecem a interface especfica dos objetos, por isso so genricos.Sistemas Distribudos - Captulo 10 - Os Incrveis

Sistemas Distribudos - Captulo 10 - Os Incrveis

Processosy Exemplo: sistema de execuo lce

Sistemas Distribudos - Captulo 10 - Os Incrveis

Sistemas Distribudos - Captulo 10 - Os Incrveis

Comunicaoy Clientes remotos invocam objetos.y

Baseado em RPC (chamada a procedimento remoto);

y Sistemas que suportam objetos distribudos X RPCSistemas: referncia dos objetos no mbito do sistema. y Transparncia de distribuio aprimorada com implementao de referncia de objeto sendo ocultada.y

y Processos vinculados objetos;Proxy no espao de endereos do processo; y Interface com mtodos acessveis.y

Sistemas Distribudos - Captulo 10 - Os Incrveis

Comunicaoy Vinculao implcitay y

Cliente invoca mtodos diretamente; Utiliza referncia a um objeto.

y Vinculao explcitaCliente chama funo especial para se vincular ao objeto. y Aps chamar, consegue invocar os mtodos.y

Sistemas Distribudos - Captulo 10 - Os Incrveis

Vinculao Implcita versus Vinculao Explcita

Sistemas Distribudos - Captulo 10 - Os Incrveis

Comunicaoy Implementao de referncias do objetoEndereo de rede da mquina do objeto; y Porta que identifica o servidor; y Indicao do objeto.y

y Desvantagens da implementao:y

Se servidor cair e novas portas forem designadas para ele, referncias sero invlidas; y Soluo: Daemon local para monitorar designaes servidor/porta com tabela de portas;

Sistemas Distribudos - Captulo 10 - Os Incrveis

Comunicaoy Desvantagens da implementao:Servidor muda de mquina: necessrio invalidar referncias aos seus objetos; y Soluo: servidor de localizao monitora a mquina que o servidor executa num momento e mantm referncia do objeto; y Cliente e servidor devem ter mesmos protocolos: y de transporte; y para montar/desmontar parmetros; y para estabelecer conexo inicial; y etc.y

Sistemas Distribudos - Captulo 10 - Os Incrveis

Comunicaoy Manipulador de implementaoImplementao completa do proxy referenciada; y Cliente carrega de forma dinmica quando vincula ao objeto e no precisa implementao de protocolo especfico; y Proxy pode ser especfico para cada objeto;y

Sistemas Distribudos - Captulo 10 - Os Incrveis

Comunicaoy Invocao de mtodo remoto (RMI)Invocao do objeto por proxy; y Melhor que RPC;y

y Invocao estticay Interface do objeto tem que ser reconhecida quando aplicao cliente em

desenvolvimento; y Se interface mudar, aplicao cliente tem que ser recompilada

y Invocao dinamicay

Aplicao seleciona mtodo a ser invocado em runtime;

Sistemas Distribudos - Captulo 10 - Os Incrveis

Comunicaoy Transferncia de parmetrosy

Objetos distribudos acessados por mquinas remotas. Copiada e transferida como parmetro de valor; Objeto copiado e passado junto invocao;

y Referncia objeto remoto:y

y Referencia objeto local:y

Sistemas Distribudos - Captulo 10 - Os Incrveis

Comunicao

Sistemas Distribudos - Captulo 10 - Os Incrveis

Modelo de objetos distribudos em Javay Objetos distribudosy Java tambm adota objetos remotos como a nica forma de

objetos distribudos y Interfaces so implementadas do modo usual por meio de um proxy, que oferece exatamente as mesmas interfaces que o objeto remoto.

Sistemas Distribudos - Captulo 10 - Os Incrveis

Invocao de objeto remoto em Javay Objetos locais e remotos em Javay Como 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 remoto y Distino feita entre objetos locais e objetos remotos durante uma RMI

y Construo do objeto remotoEm essncia construdo com base em duas classes diferentes.

Funo do ProxySistemas Distribudos - Captulo 10 - Os Incrveis

Troca de mensagens baseada em objetosy Troca de mensagem em Corba y Faz uma inerente abordagem da comunicao baseada em objeto. y Invocao assncrona de mtodo y Modelo de chamada de retorno do Corba

Sistemas Distribudos - Captulo 10 - Os Incrveis

Troca de mensagens baseada em objetos

Sistemas Distribudos - Captulo 10 - Os Incrveis

Nomeaoy Referncias de objeto em Corba y Referncias de objeto em Globe

Sistemas Distribudos - Captulo 10 - Os Incrveis

Sincronizaoy Sincronizao no Servidor de objetos y Se chegarem varias requisies para o mesmo objeto o servidor pode decidir serializar as requisies e travar o objeto quando ele precisar fazer requisies remotas y Problema- se o o cliente q y Trava pode ser feita no lado servidor y Abordagem adotada em JAVA, se dois processos chamarem um mtodo sincronizado, um ser bloqueado o outro seguir

Sincronizao

Processo de trava visvel para o processo que acessa os recursos

Processo que acessa os recursos no tem conhecimento de possveis travas *Travas ocorre quando o objeto protegidos contra acessos concorrentes

Consistncia e Replicaoy Consistncia de entrada y Quando um mtodo do objeto estiver em execuo, nenhum outro mtodo poder ser executado y Nunca duas invocaes de mtodos independentes ocorram em replicas diferentes ao mesmo tempo y Como? y Baseado em primarios: esforo do desenvolvedor para serializar invocaoes do objeto y Multicast totalmente ordenado:Realizado no middleware, sem esforo do desenvolvedor

Consistncia e Replicaoy Granularidade: y Threads processem requisies em ordem no servidor y No necessrio escalonamento determinstico para os threads y Assegurar que todas as requisies para o mesmo objeto replicado sejam manipulados na ordem que so entregues

Sistemas Distribudos - Captulo 10 - Os Incrveis

Consistncia e Replicao

Sistemas Distribudos - Captulo 10 - Os Incrveis

Ambientes de replicaoInvocaes para objetos so interceptadas em:

y No lado do cliente-um pouco antes de a invocao ser

passada para o apndice. y Dentro do apendice do cliente, onde a intercepo parte do algoritmo de replicao y No lado do servidor, um pouco antes do objeto ser invocado.

Sistemas Distribudos - Captulo 10 - Os Incrveis

Ambientes de replicao

Sistemas Distribudos - Captulo 10 - Os Incrveis

Invocaes 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: y No permitla-as y Os outros modos sero detalhados no slide 10 de acordo com as figuras.

Sistemas Distribudos - Captulo 10 - Os Incrveis

Invocaes Replicadas

Sistemas Distribudos - Captulo 10 - Os Incrveis

Invocaes Replicadas

Sistemas Distribudos - Captulo 10 - Os Incrveis

Corba Tolerante a Falhasy Replicar Objetos em Grupos de Objetosy Um grupo consiste em uma ou mais cpias idnticas do

mesmo objeto.

y Transparente para os cliente y Gerenciador de Replicaes y Responsvel por criar e gerenciar um grupo de objetos replicados.

Sistemas Distribudos - Captulo 10 - Os Incrveis

Corba Tolerante a Falhas

Sistemas Distribudos - Captulo 10 - Os Incrveis

Java Tolerante a Falhay Backups Primrios y Um servidor coordena todas as aes que precisam ser executadas e institui periodicamente o backup para fazer o mesmo. y Replicao ativa y As rplicas so mantidas atualizadas permitindo que cada uma delas execute as mesmas operaes na mesma ordem.

Sistemas Distribudos - Captulo 10 - Os Incrveis

Globey Repete o tpico em cima se precisar y Segurana de Plataforma y Controle Reverso de Acesso y Chave de Objeto y Chave de Rplica y Chave do Usurio

Sistemas Distribudos - Captulo 10 - Os Incrveis

Globe

Sistemas Distribudos - Captulo 10 - Os Incrveis

Invocao Segura de Mtodos de objeto em Globey A 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 - Captulo 10 - Os Incrveis

Invocao Segura de Mtodos de objeto em Globey Necessrio usar um total de treze etapas

Sistemas Distribudos - Captulo 10 - Os Incrveis

Sistemas Distribudos Baseados em Objetosy Dvidas? Crticas? Sugestes?

Sistemas Distribudos - Captulo 10 - Os Incrveis