OBJETOS DISTRIBUÍDOS E INVOCAÇÃO REMOTA



Documentos relacionados
MIDDLEWARE Aplicativos RMI, RPC e eventos Camadas Protocolo Requesição-Respostal Middleware Representação Externa dos Dados Sistemas Operacionais

Sistemas Distribuídos

Objetos Distribuídos - Programação Distribuída Orientado a Objetos. Luiz Affonso Guedes

Objetos Distribuídos. Nazareno Andrade

Invocação Remota MC704

UNIVERSIDADE. Sistemas Distribuídos

Sistemas Distribuídos RPC x RMI. Edeyson Andrade Gomes


Capítulo VI CORBA. Common Object Request Broker Architecture. [Cardoso2008] Programação de Sistemas Distribuídos em Java, Jorge Cardoso, FCA, 2008.

Sistemas Distribuídos

Java 2 Standard Edition. Fundamentos de. Objetos Remotos. Helder da Rocha

Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS

INTRODUÇÃO. RPC x RMI

SISTEMAS DISTRIBUIDOS

Comunicação. Parte II

Padrões Arquiteturais. Sistemas Distribuídos: Broker

Sistemas Distribuídos

Chamadas Remotas de Procedimentos (RPC) O Conceito de Procedimentos. RPC: Programa Distribuído. RPC: Modelo de Execução

Serviços Web: Introdução

Grupo I [6v] Considere o seguinte extracto de um programa de definição de uma calculadora apenas com a função soma de dois valores reais

Invocação de Métodos Remotos

Camadas de Serviço de Hardware e Software em Sistemas Distribuídos. Introdução. Um Serviço Provido por Múltiplos Servidores

UNIVERSIDADE. Sistemas Distribuídos

UNIVERSIDADE. Sistemas Distribuídos

INE Sistemas Distribuídos

COMUNICAÇÃO INTER-PROCESSOS JAVA RMI e RPC. Prof. Cesar Augusto Tacla

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

1 a. Sumário. 1. Conceitos Básicos a. Invocação remota (RPC/RMI) b. Semântica de invocação remota c. Invocação remota de métodos (RMI)

Grupo I [7v] 1. [1,0] Apresente o conteúdo do IDL relativo a este programa. Assuma PROGRAM=62015 e VERSION=1.

Introdução. Definição de um Sistema Distribuído (1) Definição de um Sistema Distribuído(2) Metas de Sistemas Distribuídos (2)

RMI: Uma Visão Conceitual

Princípios de Sistemas Distribuídos. Tecnologias utilizadas em sistemas distribuídos Aula 5

Uma Introdução à Arquitetura CORBA. O Object Request Broker (ORB)

Invocação de Métodos Remotos RMI (Remote Method Invocation)

Comunicação Inter-Processos. Prof. Adriano Fiorese. Conceitos Iniciais

Desenvolvimento Cliente-Servidor 1

Sistemas Distribuídos

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4

Paradigma Cliente/Servidor

Aula 03-04: Modelos de Sistemas Distribuídos

Adriano Reine Bueno Rafael Barros Silva

Sistemas Distribuídos

Capítulo 8. Sistemas com Múltiplos Processadores. 8.1 Multiprocessadores 8.2 Multicomputadores 8.3 Sistemas distribuídos

Projeto de Sistemas Distribuídos. Prof. Andrêza Leite

Considerações no Projeto de Sistemas Cliente/Servidor

Padrões Arquiteturais e de Integração - Parte 1

Comunicação em Sistemas Distribuídos. Conceitos: Paradigma C/S. Conceitos: Paradigma C/S. Paradigma Cliente/Servidor

Sistemas Distribuídos. Coulouris Capítulo 4

Distributed Systems Principles and Paradigms

Introdução ao Modelos de Duas Camadas Cliente Servidor

Sistemas Paralelos e Distribuídos /2004 Curso: Matemática /Informática Sistemas Distribuídos /2004 Curso: Ensino da Informática

Modelos de Arquiteturas. Prof. Andrêza Leite

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Middleware. Camada Intermediária de Suporte a Sistemas Distribuídos

Invocação de Métodos em Objectos Remotos

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular SISTEMAS DISTRIBUIDOS Ano Lectivo 2015/2016

Alocação Dinâmica e Transparente de Computadores Ociosos em Java

RPC e RMI. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo

Sistemas Distribuídos. Introdução

SISTEMAS DISTRIBUÍDOS

Sistemas Distribuídos: Conceitos e Projeto Caracterização de Sistemas Distribuídos

Middleware de Aplicações Paralelas/Distribuídas

Sistemas Distribuídos

Sistemas Distribuídos e Redes de Sensores

Sistemas Distribuídos

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

Num sistema de objectos distribuídos, dois conceitos são fundamentais.

Sistemas Distribuídos

Sistemas Distribuídos 59. Sistemas Distribuídos 61. "Receive não-bloqueante:

Sistemas Distribuídos: Conceitos e Projeto Java RMI

Características Carlos Ferraz

Departamento de Informática

Visão do Usuário da DSM

PROGRAMA DE DISCIPLINA

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Tópicos em Sistemas Distribuídos. Modelos de Comunicação

Informática UFRGS. Programação com Objetos Distribuídos (C. Geyer) C# Remote V0 1

3. Comunicação em Sistemas Distribuídos

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo

SISTEMAS DISTRIBUÍDOS

Sistemas Distribuídos

Sistemas Distribuídos Arquitetura de Sistemas Distribuídos I. Prof. MSc. Hugo Souza

Sistemas Distribuídos

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular SISTEMAS DISTRIBUÍDOS Ano Lectivo 2012/2013

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING

Sistemas Distribuídos

CORBA Common Object Request Broker Architecture. Carolina de Oliveira Cunha Lenita Martins Ambrosio Victor da Fonseca Santos

Sistemas Distribuídos Arquiteturas Middlewares

Transcrição:

OBJETOS DISTRIBUÍDOS E INVOCAÇÃO REMOTA

SUMÁRIO Introdução Comunicação entre objetos distribuídos Eventos e Notificações

1.INTRODUÇÃO Middleware oferece: Transparência de localização Independência de protocolos de comunicação Independência do hardware de computador Ocultação do sistema operacionais Uso de várias linguagens de programação Aplicativos RMI, RPC e eventos Protocolo Requesição-Respostal Representação Externa dos Dados Camadas Middleware Sistemas Operacionais

1.INTRODUÇÃO Interfaces: Interfaces em Sistemas Distribuídos Passagem de parâmetros: entrada e saída Variáveis não são acessadas diretamente Ponteiros (referências locais) não podem ser passados Interfaces de Serviço Cliente-servidor Procedimentos oferecidos Interfaces Remotas Especificação dos métodos disponíveis Passagem de objetos Linguagens de definição de interface RMI Java IDL do CORBA

EXEMPLO CORBA IDL // In file Person.idl struct Person { string name; string place; long year; } ; interface PersonList { readonly attribute string listname; void addperson(in Person p) ; void getperson(in string name, out Person p); long number(); };

2.COMUNICAÇÃO ENTRE OBJETOS DISTRIBUÍDOS O modelo de objeto Objetos distribuídos O modelo de objeto distribuído Problemas de projeto Implementação Coleta de lixo (garbage collection) distribuída

O MODELO DE OBJETO Referências de objeto Nome objeto e método Interfaces Assinatura dos métodos Métodos sem corpo Sem construtor Ações O estado do receptor pode ser alterado Um novo objeto pode ser instanciado Outras invocações podem ocorrer

O MODELO DE OBJETO Exceções Maneira mais clara de tratar falhas Testes no código diminuem a clareza Lista de exceções Disparar, capturar exceções Coleta de lixo Necessidade de liberar espaço em memória não ocupado Liberar o programador da obrigação de lidar com a alocação de memória Redução dos erros de implementação

OBJETOS DISTRIBUÍDOS Extensão do modelo de objeto Separação lógica Distribuição física Arquitetura Cliente-Servidor Outras Acesso Invocação método remoto Execução método no servidor Retorno mensagem

OBJETOS DISTRIBUÍDOS Encapsulamento Concorrência Falhas Tolerância a falhas Replicação Desempenho Disponibilidade

RMI REMOTE METHOD INVOCATION Maquina Local (Cliente) Maquina Remota (Servidor) SampleServer remoteobject; int s; s = remoteobject.sum(1,2); public int sum(int a,int b) { return a + b; } System.out.println(s);

O MODELO DE OBJETOS DISTRIBUÍDOS Invocação a métodos remotos Objetos remotos Referência de objeto remoto A Invocação remota B Invocação local C D E Invocação remota F

RMI REMOTE METHOD INVOCATION

O MODELO DE OBJETOS DISTRIBUÍDOS Interface Remota Objeto remoto Data Interface remota m1 { implementação m2 m3 dos métodos m4 m5 m6

O MODELO DE OBJETOS DISTRIBUÍDOS Ações em um sistema de objeto distribuído Coleta de lixo em um sistema de objeto distribuído Exceções L C Invocação remota instanciação M N Invocação remota K

PROBLEMAS DE PROJETO PARA RMI Semântica de invocação RMI Falhas Re-tentativa de mensagem de requisição Filtragem de duplicadas Retransmissão de resultados

PROBLEMAS DE PROJETO PARA RMI Semântica Talvez Falhas: Omissão, Colapso Semântica Pelo Menos Uma Vez Falhas: Colapso, Bizantinas RPC Sun Semântica No Máximo Uma Vez RMI Java CORBA

TOLERÂNCIA A FALHAS Medidas de Tolerância a Falhas Retransmissão Mensagem de Requisição Filtragem de Mensagens duplicadas Re-execução do método Ou retransmissão resposta Semântica Não - - Talvez Sim Não Re-execução método Ao menos uma vez Sim Sim Retransmição resposta No máx uma vez

PROBLEMAS DE PROJETO PARA RMI Transparência Diferença vs Semelhança Falhas Latência Semântica Caso: IDL CORBA, RMI Java Consenso atual: mesma sintaxe, mas diferença expressa na interface RMI Java => interface Remote e uso de RemoteException

IMPLEMENTAÇÃO DE RMI Módulo de comunicação Requisição-resposta Semântica No Máximo Uma Vez Módulo de referência remota Tabela de objetos Serventes Software RMI Proxy Despachante Esqueleto Geração das classes para proxies, despachantes e esqueletos

IMPLEMENTAÇÃO RMI Cliente objeto A proxy para B Requisição Resposta Servidor objeto esqueleto remoto B e dispachante para B Módulo Módulo Referência Comunicação Remota Módulo Comunicação Módulo Referência Remota servidor

IMPLEMENTAÇÃO DE RMI Ativação dinâmica: uma alternativa aos proxies Invocação dinâmica Esqueletos dinâmicos Programas clientes e servidores Métodos de fábrica O vinculador (binder) Threads no servidor Invocação de objetos remotos Ativação Repositório de objetos persistentes Localização de objetos

COLETA DE LIXO DISTRIBUÍDA Colaboração com coletores de lixo locais addref(b), removeref(b) Leasing Arrendamento (leasing) no Jini

EVENTOS E NOTIFICAÇÕES Paradigma: publicar-assinar Características Heterogêneos Assíncronos Tipos de eventos Participantes Objeto de interesse Evento Notificação Assinante Objetos observadores Gerador de eventos

EVENTOS E NOTIFICAÇÕES Computador do Operador Fonte externa Computador do Operador Operador Notificação Notificação Operador Notificação Provedor de informação Notificação Operador Notificação Computador do Operador Notificação Notificação Provedor de informação Notificaçã o Fonte externa Notificação Computador do Operador Notificação Notificação Operador

EVENTOS E NOTIFICAÇÕES Semântica de entrega de notificações Funções dos observadores Encaminhamento Filtragem de notificações Padrões de eventos Caixas de correio de notificação Jini Geradores de evento Escutador Eventos remotos Agentes intermediários RMI Java: RemoteEventListener e EventGenerator

EVENTOS E NOTIFICAÇÕES Objeto de interesse Serviço de Evento Assinante 1. notificação Objeto de interesse Observador Assinante 2. notification notificação Objeto de interesse Observador Assinante 3. notificação

ESTUDO DE CASO: RMI JAVA Extensão objetos distribuídos em Java Interfaces remotas Ampliação interface remote, java.rmi Passagem de parâmetros e resultados Parâmetros entrada e saída Interface Serializable Passagem de objetos remotos: passagem referência remota Passagem de objetos não-remotos: passagem por valor

ESTUDO DE CASO: RMI JAVA Download de classes RMIregistry Programa servidor Programa cliente Uso de reflexão Classes Java que suportam RMI UnicastRemoteObject

RESUMO Paradigmas Programação distribuída Invocação método remoto Sistemas baseados em eventos Objetos distribuídos podem se comunicar RMI forma síncrona Modelo baseado em eventos Assíncrono Objeto distribuído = ampliação do modelo objetos locais Encapsulamento Referência a objeto remoto Principal diferença entre RMI e RPC

RESUMO Semânticas Objetos locais: exatamente uma vez Objetos remotos: no máximo uma vez Transparência Não é necessariamente uma boa idéia fazer a invocação remota parecer exatamente igual à uma invocação local Middleware da RMI Proxies Esqueletos Despachantes Interface remota

RESUMO Sistemas distribuídos baseados em eventos Heterogêneos Assíncronos Não precisam de interface remota Implementação para enviar e receber notificações

REFERÊNCIAS BIBLIOGRAFICAS COULOURIS G. Sistemas Distribuídos Conceitos e Projeto, Bookman Editora, 2007. 4º Ed. Capítulo 5