Sistemas Distribuídos Baseados em Objetos

Slides:



Advertisements
Apresentações semelhantes
SISTEMAS DISTRIBUÍDOS BASEADOS EM COORDENAÇÃO
Advertisements

Sistemas Distribuídos
Sistemas Distribuídos
Sistemas Distribuídos Baseados na Web
Sistemas distribuídos Metas de Projeto Prof. Diovani Milhorim
Introdução aos Sistemas Distribuídos
Sistemas operacionais
Programa de Pós-Graduação Lato Sensu MBA em Gestão de Software
Modelos de Comunicação em Sistemas Distribuídos
Comunicação Distribuída
Interação Cliente Servidor
Sistemas Distribuídos
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
1 Arquitetura CORBA Repositório de Implementação Repositório de Interface cliente programa cliente proxy ORB Core ou invocação dinâmica servidor ORB Core.
1 Sistemas Distribuídos - SDI Caracterização de Sistemas Distribuídos. Introdução. Exemplos de Sistemas Distribuídos. Desafios.
Comunicação Inter-Processos
SISTEMAS DISTRIBUÍDOS Princípios e Paradigmas 2ª Edição ANDREW S
Introdução a EJB 3.0 Eduardo Martins Guerra Instituto Tecnológico de Aeronáutica Curso de Pós-Graduação em Engenharia de Software Programação Distribuída.
Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos
Threads.
Mobilidade Cláudia Ribeiro.
Diagramas de Sequência e Comunicação
Sistemas Distribuídos
Middleware e Sistemas Distribuídos
Arquitetura CORBA e Objetos Distribuídos
Linguagem de Programação IV
Sistemas Distribuídos
Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Tópicos de Sistemas de Informação A
Web Services Uninorte Semana de Tecnologia da Informação
Chamada Remota de Procedimentos
Sistemas Distribuídos
Paradigmas de Linguagens de Programação Linguagem Imperativa 2
Concorrência e Java RMI
Sistemas Distribuídos
Programação Orientada à Objetos
Sistemas Distribuídos Introdução. Conceito Coleção de múltiplos processos que executam sobre uma coleção de processadores autônomos interligados em uma.
Sistemas Distribuídos
Concorrência e thread Petrônio Júnior(pglj) Márcio Neves(mmn2)
Sistemas Operacionais
RMI x C# Remote Emilena Specht – 1113/01/9 2004/01
Capítulo VIII Ambientes de Execução
SISTEMAS OPERACIONAIS I
Tecgraf PUC-Rio Setembro de 2013 Introdução ao Openbus.
Java RMI João Gabriel (jggxm).
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
Processos.
RMI - JAVA.
Técnicas de Replicação
Elementos de um Sistema de Agentes Móveis Agentes e Places Comportamento de Agentes Comunicação Padronização OMG/MASIF.
Comunicação.
Conceitos de thread Faculdade PITÁGORAS – Outubro de 2012
Definição um sistema de BD distribuído consistem em uma rede de várias ocorrências de bases de dados interligadas. característica principal para o usuário,
Integração de Ferramentas CASE
Capítulo 4: Processos.
JR: Flexible Distributed Programming in an Extended Java Elmário Gomes Dutra Jr. Gustavo Romano.
Modelos de Comunicação em Sistemas Distribuídos
Modelos de Comunicação em Sistemas Distribuídos
FORMI Integrating Adaptive Fragments Objects into Java RMI Kapitza, Rüdiger; Domaschka, Jörg; Hauck, Franz J.; Reiser, Hans P. ;Schmidt, Holger. IEEE Distributed.
Conceitos do Cliente Funcionamento Básico do Cliente Como Clientes acessam e usam Objetos Distribúidos.
Implementação Distribuída Escalonamento de Tempo-Real Prof. Dr. Norian Marranghello Grupo 8 Daniela Gonçalves Strozi – Sayuri Watanabe
Sistemas Operacionais Distribuídos
Tecgraf PUC-Rio maio de 2011 Introdução ao Openbus.
Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Introdução ao OpenBus.
Sistemas Distribuídos Prof. Marcus Rodrigues
Leandro Clementino Almeida.  Anos 50 - Sistemas Operacionais tipo Lote:  Aumentar a capacidade de processamento de programas  Usuário ia ao computador.
Banco de Dados Distribuídos Sílvia Cristina de Matos Soares
Protocolos de Comunicação e Passagem de Mensagens
SOCKET - É um canal de comunicação entre processos que estabelece uma conexão entre eles na forma de cliente-servidor. Por meio de sockets, os computadores.
Bruna Cavallero Martins Universidade Católica de Pelotas.
Transcrição da apresentação:

Sistemas Distribuídos Baseados em Objetos 17/08/2011 Sistemas Distribuídos Baseados em Objetos – Capítulo 10

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 – Capítulo 10

Sistemas Distribuídos Baseados em Objetos Arquitetura Processos Comunicação Nomeação Sincronização Consistência e Replicação Tolerância a Falha Segurança Sistemas Distribuídos Baseados em Objetos – Capítulo 10

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. Sistemas Distribuídos Baseados em Objetos – Capítulo 10

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 Sistemas Distribuídos Baseados em Objetos – Capítulo 10

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. Sistemas Distribuídos Baseados em Objetos – Capítulo 10

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 . Sistemas Distribuídos Baseados em Objetos – Capítulo 10

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.

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

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.

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.

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.

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.

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

Processos Servidor de objeto Alternativas para invocar objetos 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 Sistemas Distribuídos Baseados em Objetos – Capítulo 10

Processos Adaptador de objetos 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. Sistemas Distribuídos Baseados em Objetos – Capítulo 10

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

Processos Exemplo: sistema de execução lce

Comunicaçã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. Sistemas Distribuídos Baseados em Objetos – Capítulo 10

Comunicação Vinculação implícita Vinculação explí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.

Vinculação Implícita versus Vinculação Explícita

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;

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.

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;

Comunicação Invocação de método remoto (RMI) Invocação estática 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;

Comunicação Transferência de parâmetros Referência à objeto remoto: 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;

Comunicação

Modelo de objetos distribuídos em Java 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. Sistemas Distribuídos Baseados em Objetos – Capítulo 10

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 Em essência é construído com base em duas classes diferentes. Função do Proxy Sistemas Distribuídos Baseados em Objetos – Capítulo 10

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 Sistemas Distribuídos Baseados em Objetos – Capítulo 10

Troca de mensagens baseada em objetos Sistemas Distribuídos Baseados em Objetos – Capítulo 10

Nomeação Referências de objeto em Corba Referências de objeto em Globe Sistemas Distribuídos Baseados em Objetos – Capítulo 10

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á Sistemas Distribuídos Baseados em Objetos – Capítulo 10

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

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

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 Sistemas Distribuídos Baseados em Objetos – Capítulo 10

Consistência e Replicação Sistemas Distribuídos Baseados em Objetos – Capítulo 10

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. Sistemas Distribuídos Baseados em Objetos – Capítulo 10

Ambientes de replicação Sistemas Distribuídos Baseados em Objetos – Capítulo 10

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. Sistemas Distribuídos Baseados em Objetos – Capítulo 10

Invocações Replicadas Sistemas Distribuídos Baseados em Objetos – Capítulo 10

Invocações Replicadas Sistemas Distribuídos Baseados em Objetos – Capítulo 10

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. Sistemas Distribuídos Baseados em Objetos – Capítulo 10

Corba Tolerante a Falhas Sistemas Distribuídos Baseados em Objetos – Capítulo 10

Java Tolerante a Falha Backups Primários Replicação ativa 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. Sistemas Distribuídos Baseados em Objetos – Capítulo 10

Globe 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 Sistemas Distribuídos Baseados em Objetos – Capítulo 10

Globe Sistemas Distribuídos Baseados em Objetos – Capítulo 10

Invocaçã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. Sistemas Distribuídos Baseados em Objetos – Capítulo 10

Invocação Segura de Métodos de objeto em Globe Necessário usar um total de treze etapas Sistemas Distribuídos Baseados em Objetos – Capítulo 10