Sei sulla pagina 1di 9

6/16/15

Introduo

} Tudo tratado como Objeto;


} Servios e recursos como objetos a serem
invocados;
} Facilita:
Sistemas Distribudos } Transparncia
Baseados em Objetos } Oculta aspectos da distribuio

Sistemas Distribudos!

Tanenbaum Cap 10.

Agenda Arquitetura

} Arquitetura
} Processos
} Comunicao } Neste seo, em primeiro lugar, examinaremos
} Nomeao com mais profundidade a arquitetura geral de
} Sincronizao
sistemas distribudos baseados em objetos. E
logo aps iremos ver como foram desenvolvidos
} Consistncia e Replicao
princpios especficos nesses sistemas.
} Tolerncia a Falha
} Segurana

Objetos distribudos Objetos distribudos

} A caracterstica fundamental de um objeto que ele } Quando um cliente se vincula a um objeto


encapsula distribudo, uma implementao da interface do
} dados, denominados estado, e objeto, denominada Proxy, carregada no
} operaes executadas nesses dados, denominadas espao de endereo do cliente.
mtodos.
} Um Proxy a anlogo a um apndice de cliente
} Mtodos so disponibilizado por meio de uma interface .
em sistemas RPC.
} importante entender que no h nenhuma modo
legal pelo qual um processo possa acessar ou } A nica coisa que ele faz montar invocaes a
manipular o estado de um objeto, exceto pela mtodos em mensagens e desmontar
invocao dos mtodos disponibilizado para ele por mensagens de respostas.
meio de uma interface de objeto

1
6/16/15

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

Objetos de tempo de compilao versus Objetos de tempo de compilao versus


objetos de tempo de execuo objetos de tempo de execuo

} A utilizao de objetos de tempo de compilao } Para isso o objeto de tempo de execuo seu
em sistemas distribudos muitas vezes facilita modo de implementar basicamente deixado
bastante a construo de aplicaes. aberto.
} A essncia como deixar que tal implementao
} A compilao da definio de classe resulta em
aparente ser um objeto cujos mtodos possam ser
cdigos que permite a ela instanciar objetos em invocados de uma maquina remota.
Java.
} Uma abordagem comum e usar um adaptador de
} Sendo assim interfaces pode ser compilados do lado objeto.
do cliente e do servidor o que permite que objetos } O adaptador de objeto desempenha o papel de
em Java pode ser invocados remotamente. registrar uma implementao de uma interface e na
seqncia, disponibiliza aquela interface para
} A desvantagem deste tempo de compilao seria invocaes ( remotas ).
a dependncia de determinada linguagem.

Objetos persistente e transientes Enterprise Java Beans

} Um objeto persistente o que continua a existir } UM EJB (Enterprise Java Beans) e um objeto em
mesmo que, no momento em questo, ele no java hospedado por um servidor especial que
esteja contido no espao de endereos de oferece aos clientes remotos modos diferentes
qualquer processo servidor. para invocar aquele objeto.

} Um objeto transiente um objeto que existe } Este servidor tem que fornecer suporte para
somente enquanto existir o servidor que o est separar funcionalidade de aplicao de
hospedando. funcionalidade orientada a sistemas.
} Quando o servidor sai ele deixa de existir.

2
6/16/15

Enterprise Java Beans Arquitetura

} Modelo de objetos
} O Globe no adota modelo de objetos remotos.
} Estado do processo pode ser distribudo e replicado
} A 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.

Arquitetura Arquitetura

} A implementao local denominada


representao local ou objeto local.

} H dois tipos de objetos locais


} Objeto local primitivo
} Objeto local composto

} A composio usada para construir objeto local


que necessrio para implementar objetos
compartilhados distribudos.

Arquitetura Arquitetura

} Subobjeto de semntica.
} Subobjeto do comunicao.
} Subobjeto de controle.

3
6/16/15

Processos Processos

} Servidor de objeto } Abordagem alternativa, objetos compartilhem, no


} Suporte a objetos distribudos mnimo o cdigo
} Um objeto consiste em duas partes. (podem estar } Abordagem mais simples com um nico thread de
separadas) controle.
} Alternativas para invocar objetos } Adaptador de objetos
} Considerar que h somente um modo de invocar } Software que implementa uma poltica de ativao
objetos especfica.
} Servidor suportar polticas diferentes (objetos
transientes) } Tem mais de um objeto sob seu controle
Vantagens:S necessita de recurso quando for utilizado } No conhecem a interface especfica dos objetos,
Desvantagem: Pode demorar algum tempo para ser por isso so genricos.
concluda

Processos Processos

} Exemplo: sistema de execuo lce

Comunicao

} Clientes remotos invocam objetos.


} Baseado em RPC (chamada a procedimento remoto);
} Sistemas que suportam objetos distribudos X
RPC
Sistemas: 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.

4
6/16/15

Vinculao Implcita versus


Comunicao
Vinculao Explcita
} Vinculao implcita
} Cliente invoca mtodos diretamente;
} Utiliza referncia a um objeto.
} Vinculao explcita
Cliente chama funo especial para se vincular ao
objeto.
Aps chamar, consegue invocar os mtodos.

Comunicao Comunicao

} Implementao de referncias do objeto Desvantagens da implementao:


Endereo de rede da mquina do objeto; Servidor muda de mquina: necessrio invalidar
Porta que identifica o servidor; referncias aos seus objetos;
Indicao do objeto.
}Soluo: servidor de localizao monitora a
mquina que o servidor executa num momento e
} Desvantagens da implementao: mantm referncia do objeto;
Se servidor cair e novas portas forem designadas para Cliente e servidor devem ter mesmos protocolos:
ele, referncias sero invlidas; de transporte;
} Soluo: Daemon local para monitorar designaes } para montar/desmontar parmetros;
servidor/porta com tabela de portas;
} para estabelecer conexo inicial;
etc.

Comunicao Comunicao

} Manipulador de implementao } Invocao de mtodo remoto (RMI)


} Implementao completa do proxy referenciada; } Invocao do objeto por proxy;
} Cliente carrega de forma dinmica quando vincula ao } Melhor que RPC;
objeto e no precisa implementao de protocolo
} Invocao esttica
especfico;
} Interface do objeto tem que ser reconhecida quando aplicao
} Proxy pode ser especfico para cada objeto; cliente em desenvolvimento;
} Se interface mudar, aplicao cliente tem que ser recompilada

} Invocao dinamica
} Aplicao seleciona mtodo a ser invocado em
runtime;

5
6/16/15

Comunicao Comunicao

} Transferncia de parmetros
} Objetos distribudos acessados por mquinas remotas.

} Referncia objeto remoto:


} Copiada e transferida como parmetro de valor;

} Referencia objeto local:


} Objeto copiado e passado junto invocao;

Modelo de objetos distribudos Invocao de objeto remoto


em Java em Java

} Objetos distribudos } Objetos locais e remotos em Java


} Como a distino entre objetos locais e remotos
dificilmente visvel no nvel de linguagem
} Java tambm adota objetos remotos como a nica
forma de objetos distribudos } Java pode ocultar a maioria das diferenas durante a
invocao de um mtodo remoto
} Distino feita entre objetos locais e objetos remotos
} Interfaces so implementadas do modo usual por meio
durante uma RMI
de um proxy, que oferece exatamente as mesmas
interfaces que o objeto remoto. } Construo do objeto remoto
} Em essncia construdo com base em duas classes
diferentes.
Funo do Proxy

Troca de mensagens baseada em objetos Troca de mensagens baseada em objetos

} Troca de mensagem em Corba


} Faz uma inerente abordagem da comunicao
baseada em objeto.
} Invocao assncrona de mtodo
} Modelo de chamada de retorno do Corba

6
6/16/15

Nomeao Sincronizao

Sincronizao no Servidor de objetos


Se chegarem varias requisies para o
} Referncias de objeto em Corba mesmo objeto o servidor pode decidir
} Referncias de objeto em Globe serializar as requisies e travar o objeto
quando ele precisar fazer requisies remotas
Trava pode ser feita no lado servidor
Abordagem adotada em JAVA, se dois
processos chamarem um mtodo
sincronizado, um ser bloqueado o outro
seguir

Sincronizao Consistncia e Replicao


Processo de trava visvel
para o processo que
acessa os recursos
Consistncia de entrada
Quando um mtodo do objeto estiver em execuo,
nenhum outro mtodo poder ser executado
Nunca duas invocaes de mtodos independentes
ocorram em replicas diferentes ao mesmo tempo
Como?
Baseado em primrios: esforo do desenvolvedor para
Processo que acessa os
recursos no serializar invocaes do objeto
tem conhecimento de
possveis travas Multicast totalmente ordenado: Realizado no
middleware, sem esforo do desenvolvedor

*Travas ocorre quando o objeto protegidos contra acessos concorrentes

Consistncia e Replicao Consistncia e Replicao


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

7
6/16/15

Ambientes de replicao
Ambientes de replicao
} I n v o c a e s para objetos so
interceptadas:
} No lado do cliente - um pouco antes de a invocao
ser passada para o apndice.

} Dentro do apndice do cliente, onde a intercepo


parte do algoritmo de replicao

} No lado do servidor, um pouco antes do objeto ser


invocado.

Invocaes Replicadas
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:
} No permitila-as

Corba Tolerante a Falhas


Invocaes Replicadas

} Replicar Objetos em Grupos de Objetos


} Um grupo consiste em uma ou mais cpias idnticas
do mesmo objeto.
} Transparente para os cliente
} Gerenciador de Replicaes
} Responsvel por criar e gerenciar um grupo de
objetos replicados.

8
6/16/15

Corba Tolerante a Falhas Java Tolerante a Falha

} Backups Primrios
} Um servidor coordena todas as aes que precisam
ser executadas e institui periodicamente o backup
para fazer o mesmo.

} Replicao ativa
} As rplicas so mantidas atualizadas permitindo que
cada uma delas execute as mesmas operaes na
mesma ordem.

Globe Globe

} Repete o tpico em cima se precisar


} Segurana de Plataforma
} Controle Reverso de Acesso
} Chave de Objeto
} Chave de Rplica
} Chave do Usurio

Invocao Segura de Mtodos de Invocao Segura de Mtodos de objeto em


objeto em Globe Globe

} A invocao segura de mtodo pode ser } Necessrio usar um total de treze etapas
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.

Potrebbero piacerti anche