sistemas distribuídos -...

22

Upload: others

Post on 27-Jun-2020

21 views

Category:

Documents


0 download

TRANSCRIPT

Objetos Distribuídos

Sistemas Distribuídos

Guilherme Bertoni Machado

Faculdades SENAC

Análise e Desenvolvimento de Sistemas

1 de agosto de 2009

Guilherme Bertoni Machado Sistemas Distribuídos

Objetos Distribuídos

Orientação a Objetos

Encapsulamento:

Parte interna (privada) dos objetos

Implementação: métodosEstado: atributos, variáveis, constantes e tipos

Parte externa (pública) dos objetos

Interface: conjunto bem de�nido de métodos públicos quepodem ser acessados externamente

Guilherme Bertoni Machado Sistemas Distribuídos

Objetos Distribuídos

Orientação a Objetos

Herança: de interfaces e implementações

Polimor�smo: a mesma interface pode ter várias

implementações

Interação entre objetos

Troca de mensagens (chamadas de métodos)Mensagens podem ser locais ou remotas

Mensagens locais: objetos no mesmo espaço deendereçamentoMensagens remotas: objetos em máquinas diferentes →distribuídos!

Guilherme Bertoni Machado Sistemas Distribuídos

Objetos Distribuídos

Orientação a Objetos

Referência do objeto à Ponteiro de memória

O acesso ao estado do objeto é feito através dos métodos da

interface (única parte visível do objeto)

Implementação independente da interface

Métodos são acessados por outros objetos

Guilherme Bertoni Machado Sistemas Distribuídos

Objetos Distribuídos

Objetos Distribuídos

Interagem através da rede

Colaboram para atingir um objetivo

Fornecem serviços (métodos) uns aos outros

Apenas a interface do objeto é visível

Referência do objeto possui endereço de rede

Guilherme Bertoni Machado Sistemas Distribuídos

Objetos Distribuídos

Objetos Distribuídos

Problemas

Como compartilhar referências de objetos?Como gerenciar o ciclo de vida dos objetos?Como gerenciar o acesso concorrente aos objetos?Como trabalhar num ambiente heterogêneo?Máquinas podem ter arquiteturas diferentesMáquinas podem estar em redes diferentesMáquinas podem rodar S.O.'s diferentesObjetos podem ser implementados em linguagens diferentes

Guilherme Bertoni Machado Sistemas Distribuídos

Objetos Distribuídos

Objetos Distribuídos

Problemas

Comunicação não con�ável e não-determinista: depende dadinâmica do sistema e da redeCusto da comunicação: latência e largura de banda são fatorescríticos em aplicações de tempo real, multimídia, etc.Comunicação insegura: sem controle de autorização e semproteção das mensagens

Guilherme Bertoni Machado Sistemas Distribuídos

Objetos Distribuídos

Objetos Distribuídos

Protocolos de Comunicação

Estabelecem caminhos virtuais de comunicação entre duasmáquinasDevem usar os mesmos protocolos para trocar informações

Guilherme Bertoni Machado Sistemas Distribuídos

Objetos Distribuídos

Objetos Distribuídos

Protocolos de Comunicação

Serviço sem Conexão: cada unidade de dados é enviadaindependentemente das demais

Serviço com Conexão: dados são enviados através de um canalde comunicação

Guilherme Bertoni Machado Sistemas Distribuídos

Objetos Distribuídos

Objetos Distribuídos

Protocolos de Comunicação

Protocolos de alto nível são necessários para interação entreobjetos distribuídosEscolha natural: usar TCP/IP

Cria conexões entre processos para trocar mensagensAmplamente disponível, con�ável e robustoRelativamente simples e e�cienteNão mascara o uso da rede do programador

Guilherme Bertoni Machado Sistemas Distribuídos

Objetos Distribuídos

Objetos Distribuídos

Protocolos de Comunicação entre Objetos

Trata questões não resolvidas pelo TCP/IP

Formato comum dos dadosLocalização de objetosSegurança

Oferece ao programador abstrações próprias para aplicaçõesorientadas a objetos

Chamada Remota de Procedimento (RPC) ou InvocaçãoRemota de Métodos (RMI)Noti�cação de Eventos

Guilherme Bertoni Machado Sistemas Distribuídos

Objetos Distribuídos

Objetos Distribuídos

RPC - Chamada Remota de Procedimento

Segue o modelo Cliente/ServidorMuito usado na interação entre objetosObjeto servidor possui interface com métodos que podem serchamados remotamenteObjetos clientes usam serviços de servidores

Guilherme Bertoni Machado Sistemas Distribuídos

Objetos Distribuídos

Objetos Distribuídos

RPC - Características

Em geral as requisições são ponto-a-ponto e síncronasDados são tipados

Parâmetros da requisiçãoRetorno do procedimento/métodoExceções

Um objeto pode ser cliente e servidor em momentos diferentes

Guilherme Bertoni Machado Sistemas Distribuídos

Objetos Distribuídos

Objetos Distribuídos

RPC - Sincronismo

Chamada síncrona: cliente �ca bloqueado aguardando otérmino da execução do método

Chamadas semi-síncronas: sincronização é retardada;permitidas em alguns sistemas

Guilherme Bertoni Machado Sistemas Distribuídos

Objetos Distribuídos

Objetos Distribuídos

RPC - Sincronismo

Chamadas assíncronas: cliente continua a execução semaguardar o retorno do método; permitidas em alguns sistemas

Guilherme Bertoni Machado Sistemas Distribuídos

Objetos Distribuídos

Objetos Distribuídos

RPC - Funcionamento

Chamada é feita pelo cliente como se o método fosse de umobjeto localComunicação é feita transparentemente por código geradoautomaticamente pelo compilador (stub, proxy, skeleton, ...)O código gerado faz a serialização e desserialização de dadosusando um formato padrão, que compatibiliza o formato dedados usado por diferentes máquinas, linguagens ecompiladores

Guilherme Bertoni Machado Sistemas Distribuídos

Objetos Distribuídos

Objetos Distribuídos

RPC - Funcionamento do Cliente

Acessa objeto local gerado automaticamente que implementainterface do servidor remoto

Guilherme Bertoni Machado Sistemas Distribuídos

Objetos Distribuídos

Objetos Distribuídos

RPC - Funcionamento do Servidor

O código gerado automaticamente recebe as chamadas pelarede e as executa

Guilherme Bertoni Machado Sistemas Distribuídos

Objetos Distribuídos

Objetos Distribuídos

RPC - Implementação

Descrição da interface do objeto remoto

Especi�cada na própria linguagem de programaçãoEspeci�cada usando uma linguagem de descrição de interface(IDL)

Implementações de RPC de diferentes fabricantes (Sun RPC,DCE RPC, Microsoft RPC, etc.) são geralmente incompatíveis

Guilherme Bertoni Machado Sistemas Distribuídos

Objetos Distribuídos

Objetos Distribuídos

Noti�cação de Eventos

Eventos ocorridos são difundidos por produtores e entregues aconsumidoresCanal de eventos permite o desacoplamento - produtor econsumidor não precisam se conhecer

Guilherme Bertoni Machado Sistemas Distribuídos

Objetos Distribuídos

Objetos Distribuídos

Noti�cação de Eventos - Características

Envio de eventos é completamente assíncrono

Produtor não precisa aguardar �m do envioEvento é armazenado no canal de eventos

Comunicação pode ser feita através de UDP multicast oufazendo múltiplos envios unicast com TCP, UDP ou com umsuporte de RPCOs eventos podem ter tamanho �xo ou variável, limitado ouilimitadoEventos podem ser tipados ou não

Guilherme Bertoni Machado Sistemas Distribuídos

Objetos Distribuídos

Objetos Distribuídos

Solução: criar Middleware para objetos distribuídos

Localização transparente dos objetosInvocação de métodos local e remoto idênticaCriação de objeto local e remoto idênticaMigração de objetos transparenteFacilidades para ligação (binding) de interfaces dinamicamenteDiversos serviços de suporte:

Nomes, Transação, Tempo, etc.

Guilherme Bertoni Machado Sistemas Distribuídos