1 / 54

Sistemas Distribuídos Baseados em Objetos

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

mahdis
Télécharger la présentation

Sistemas Distribuídos Baseados em Objetos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sistemas Distribuídos Baseados em Objetos Sistemas Distribuídos 17/08/2011

  2. Introdução • Tudo tratado como Objeto; • Serviços e recursos como objetos a serem invocados; • Facilita: • Transparência • Oculta aspectos da distribuição

  3. Sistemas DistribuídosBaseados em Objetos • Arquitetura • Processos • Comunicação • Nomeação • Sincronização • Consistência e Replicação • Tolerância a Falha • Segurança

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

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

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

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

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

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

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

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

  12. Arquitetura • 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.

  13. Arquitetura • 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.

  14. Arquitetura • Subobjeto de semântica. • Subobjeto do comunicação. • Subobjeto de controle.

  15. Processos • 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

  16. Processos • 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.

  17. Processos • Exemplo: sistema de execução lce

  18. Comunicação • Clientes remotos invocam objetos. • Baseado em RPC (chamada a procedimento remoto); • Sistemas que suportam objetos distribuídos XRPC • 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.

  19. Comunicaçã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.

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

  21. Comunicaçã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;

  22. Comunicaçã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.

  23. Comunicaçã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;

  24. Comunicaçã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;

  25. Comunicaçã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;

  26. Comunicação

  27. Modelo 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.

  28. Invocaçã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 Emessência é construído com base em duas classes diferentes. • Função do Proxy

  29. Troca 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

  30. Troca de mensagens baseada em objetos

  31. Nomeação • Referências de objeto em Corba • Referências de objeto em Globe

  32. Sincronizaçã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á

  33. Sincronizaçã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

  34. Consistê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 ordenado:Realizado no middleware, sem esforço do desenvolvedor

  35. Consistê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

  36. Consistência e Replicação

  37. Ambientes 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.

  38. Ambientes de replicação

  39. 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-as • Os outros modos serão detalhados no slide 10 de acordo com as figuras.

  40. Invocações Replicadas

  41. Invocações Replicadas

  42. Corba 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.

  43. Corba Tolerante a Falhas

  44. Java 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.

More Related