Title: Sistemas Distribu
1Sistemas Distribuídos Baseados em Objetos
- Sistemas Distribuídos
- 17/08/2011
2Introdução
- Tudo tratado como Objeto
- Serviços e recursos como objetos a serem
invocados - Facilita
- Transparência
- Oculta aspectos da distribuição
3Sistemas DistribuídosBaseados em Objetos
- Arquitetura
- Processos
- Comunicação
- Nomeação
- Sincronização
- Consistência e Replicação
- Tolerância a Falha
- Segurança
4Arquitetura
- 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.
5Objetos 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
6Objetos 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.
7Objetos 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 .
8(No Transcript)
9Objetos 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.
10Objetos 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 ).
11Objetos 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.
12Enterprise 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.
13(No Transcript)
14Arquitetura
- 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.
15(No Transcript)
16Arquitetura
- 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.
17(No Transcript)
18Arquitetura
- Subobjeto de semântica.
- Subobjeto do comunicação.
- Subobjeto de controle.
19Processos
- 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
20Processos
- 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.
21(No Transcript)
22Processos
- Exemplo sistema de execução lce
23(No Transcript)
24Comunicaçã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.
25Comunicaçã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.
26Vinculação Implícita versusVinculação Explícita
27Comunicaçã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
28Comunicaçã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.
29Comunicaçã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
30Comunicaçã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
31Comunicaçã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
32Comunicação
33Modelo 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.
34Invocaçã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
35Troca 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
36Troca de mensagens baseada em objetos
37Nomeação
- Referências de objeto em Corba
- Referências de objeto em Globe
-
38Sincronizaçã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á
39Sincronização
Processo 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
40Consistê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 ordenadoRealizado no
middleware, sem esforço do desenvolvedor
41Consistê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
42Consistência e Replicação
43Ambientes 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.
44Ambientes de replicação
45Invocaçõ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.
46Invocações Replicadas
47Invocações Replicadas
48Corba 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.
49Corba Tolerante a Falhas
50Java 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.
51Globe
- 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
52Globe
53Invocaçã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. -
54Invocação Segura de Métodos de objeto em Globe
- Necessário usar um total de treze etapas
-