sistemas distribuídos -...
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