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

Documentos relacionados
Invocação Remota. Prof. Leonardo Barreto Campos. 1/29

Objetos e Componentes Distribuídos: EJB e CORBA

Sistemas Operacionais II

Objetos e Componentes Distribuídos: EJB

INTRODUÇÃO. RPC x RMI

Protocolo Request-Reply

Padrões Arquitetônicos

Sistemas Distribuídos

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

Sistemas Distribuídos

Sistemas Distribuídos

Prof. Me. Sérgio Carlos Portari Júnior

Common Object Request Broker Architecture

Comunicação. Carlos A. G. Ferraz 25/6/2003. Sistemas Distribuídos 1. Tópicos. Camadas. Transmissão de dados. Marshalling/Unmarshalling.

Sistemas Distribuídos

Introdução a Sistemas Distribuídos

Sistemas Distribuídos: Conceitos e Projeto RPC e RMI

HMI: UM MIDDLEWARE PARA OBJETOS DISTRIBUÍDOS SOBRE O PROTOCOLO HTTP

Metas de um Sistema Distribuído

Sistemas Distribuídos Aspectos de Projeto de SD. Aspectos de Projeto em SD. Transparência 14/03/12. ! Transparência; ! Abertura; !

OBJETOS DISTRIBUÍDOS E INVOCAÇÃO REMOTA

Serviços Web: Introdução

Comunicação Objetos Distribuídos e RMI

Processos ca 3 pítulo

Vamos fazer um pequeno experimento

Plataformas de Distribuição de Objetos

Características de Sistemas Distribuídos

Namespaces, Classes e Métodos.

Sistemas Distribuídos

Sistemas Distribuídos

Características de Sistemas Distribuídos

Sistemas de arquivos distribuídos. ECO036 - Sistemas Paralelos e Distribuídos

Principais conceitos de CORBA

Web Services REST e JSON

UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA. Sistemas Distribuídos

Web Services REST. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo

Programação Distribuída. Tipos de Sistemas Distribuídos

Tecnologias de Distribuição e Integração. Quais as preocupações a ter com um sistema distribuído?

Sistemas Operacionais II

Java RMI Remote Method Invocation

Estilo: BlackBoard. BlackBoard = repositório de dados compartilhados

Sistemas Distribuídos

SEMINÁRIOS INTEGRADOS EM ADS PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

Sistemas Distribuídos. Plano de Curso. Plano de Curso 04/03/12 ! EMENTA:

Comunicação. capítulo

Introdução a Computação em Nuvem

Comunicação. Parte II

Sistemas Distribuídos

Sistemas Distribuídos Aula 10

Sistemas de Objetos Distribuídos

O que é um sistema distribuído?

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

Java RMI. RMI Remote Method Invocation. Chamadas Remotas de Procedimentos (RPC) RPC - Implementação

Redes de Computadores e Aplicações

Sistemas Distribuídos

Programação Distribuída. Metas de um Sistema Distribuído

15/4/15. Processamento Paralelo Middleware Orientado a Objetos. Sistema operacional é a única infraestrutura para interação. Middleware é adicionado

Chamada Remota de Procedimento (RPC)

Sistemas de Arquivos Distribuídos. Bruno M. Carvalho Sala: 3F2 Horário: 35M34

Arquitetura de Sistemas Distribuídos

SISTEMAS DISTRIBUIDOS

SISTEMAS DISTRIBUÍDOS ARQUITETURAS. Slides cedidos pela Professora Aline Nascimento

Introdução a SD e suas Metas

Programando sistemas distribuídos com objetos distribuídos na rede TCP/IP. Prof. Me. Sérgio Carlos Portari Júnior

Sistema Operacional. Prof. Leonardo Barreto Campos. 1/30

Desenvolvimento de Aplicações Distribuídas

Sistemas Distribuídos Capítulo 4 - Aula 5

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

Implementação de um Sistema de Objetos Remoto baseado em Java RMI. Ricardo Couto Antunes da Rocha INF/UFG

Dados em programas são estruturados, enquanto que mensagens carregam informação seqüencial: Linearização x Restauração de dados Requisição

Arquiteturas. Capítulo 2

Orientação a Objetos (OO) LPG II - Java. Orientação a Objetos (OO) Programação Orientada a Objetos. Programação Procedimental

Sistemas Distribuídos

Visões Arquiteturais. Visões Arquiteturais

RMI e RPC. RPC significou um passo muito grande em direcção à

Introdução a Computação em Nuvem

15/04/2013. Pensar Orientado a Objetos. Projeto Orientado a Objetos. Características de Objetos. Classe de Objetos. Comunicação entre Objetos

6 Workshop do Projeto ATIFS INPE

Grupo I [7v] b) [0,3] Em que componente do sistema de RPC será utilizado o campo identificador de operação?

Android e Bancos de Dados

Exemplos de Estilos Arquiteturais. Estilos Arquiteturais. Estilos Arquiteturais. Estilo: Pipe e Filtros

Sistemas Distribuídos

Conceitos de Programação Orientada por Objectos. Rui Camacho Programação 2

Departamento de Informática

AULA 02. OBJETIVO: Características da Linguagem Orientada a Objetos.

JINI. Rodrigo Campiolo João Bosco Mangueira Sobral. Disciplina: Computação Distribuída Curso: Sistemas de Informação

Modelo do Mundo Real. Abstração. Interpretação

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

Sistemas Distribuídos

LEIC/LERC 2007/08 Exame de Época Especial de Sistemas Distribuídos

Programação Orientada a Objetos

Sistemas Distribuídos

Linguagens de Domínio Específico

Programação Distribuída. Arquiteturas

Computação Distribuída

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

SISTEMAS DISTRIBUÍDOS

Informática UFRGS. Programação com Objetos Distribuídos (C. Geyer) Java Comunicação 1

SEMINÁRIOS INTEGRADOS EM SISTEMAS DE INFORMAÇÃO. Luiz Leão

Transcrição:

Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão

Objetivos Nesta aula iremos apresentar o primeiro modelo de tecnologia de desenvolvimento em sistemas distribuídos, a invocação remota. Serão discutidos o modelo primitivo de requisição/resposta, RPC e o RMI/Java. Os conceitos são fundamentais para o entendimento do desenvolvimento de aplicações em ambientes distribuídos.

Plano de Aula RPC e RMI Introdução Chamada de Procedimento Remoto Invocação a Método Remoto

Introdução O RPC representa um importante avanço intelectual na computação distribuída, com o objetivo de tornar a programação de sistemas distribuídos semelhante à programação convencional; O RMI está intimamente relacionada à RPC, mas é estendida para o mundo dos objetos remotos distribuídos; Aqui iremos apresentar de forma genérica como cada um destes exemplos de invocação remota funcionam;

Chamada de Procedimento Remoto (RPC)

Chamada de Procedimento Remoto (RPC) Antes de examinarmos a implementação em sistemas de RPC, vamos ver três questões importantes para entender esse conceito: O estilo de programação promovido pela RPC: programação com interfaces; A semântica de chamada associada à RPC; O problema da transparência e como ele se relaciona com as chamadas de procedimento remoto;

Chamada de Procedimento Remoto (RPC) Programação com Interfaces As modernas linguagem de programação promovem a modularização e comunicação entre estes módulos; Para controlar as possíveis interações entre os módulos, é definida uma interface que especifica os procedimentos e as variáveis que podem ser acessadas a partir de outros módulos; Em um modelo cliente-servidor geralmente surge o termo, interface de serviço: se refere a especificação dos procedimento oferecidos por um servidor, definindo os tipos de argumentos de cada um dos procedimentos; Uso de Linguagens de Definição de Interfaces: As IDLs são projetadas para permitir que procedimentos implementados em diferentes linguagens invoquem uns aos outros;

Chamada de Procedimento Remoto (RPC) Semântica de chamada RPC Promove a confiabilidade das invocações remotas vistas pelo ativador/chamador; Semântica talvez: a chamada de rpc pode ser executada uma vez ou não ser executada. Ele surge quando nenhuma medida de tolerância a falhas é aplicada; Semântica pelo menos uma vez: o invocador recebe um resultado (o procedimento foi executado pelo menos uma vez) ou recebe uma exceção; Semântica no máximo uma vez: o chamador recebe um resultado no caso em que o chamador tem certeza da execução ou recebe uma exceção informando-o de que nenhum resultado foi recebido.

Chamada de Procedimento Remoto (RPC) Semântica de chamada RPC

Chamada de Procedimento Remoto (RPC) Transparência Objetivo Básico do RPC:Chamada Local = Chamada Remota; Uma séria de ações transparentes ao Programador (empacotar/desempacotar, trocas de mensagens, etc); Transparência de localização e de acesso, ocultando o local físico do procedimento; Perigoso: Chamadas de Procedimentos Remotos são mais vulneráveis a falhas (envolvem rede, outro computador, outro processo); Consenso atual: Chamadas locais e remotas devem se tornar transparente em sintaxe de uma chamada local ser igual a uma remota, mas a diferença entre as duas devem ser expressas em suas interfaces;

Chamada de Procedimento Remoto (RPC) Implementação

Chamada de Procedimento Remoto (RPC) Implementação Cliente mantém um procedimento stub para cada procedimento da interface de serviço; O procedimento stub se comporta como local para o cliente; Na realidade o procedimento stub: empacota o identificador de procedimento e os argumentos e os envia através do módulo de comunicação; O Servidor mantém um despachante que seleciona um dos procedimentos stub do servidor (identificador de procedimento); O procedimento stub no servidor desempacota os argumentos da mensagem de requisição e chama o procedimento de serviço; Após a execução, os valores de retorno são empacotados e enviados ao cliente; Os procedimentos de serviço implementam os procedimentos da interface de serviço.

Chamada de Procedimento Remoto (RPC) Implementação

Invocação a Método Remoto (RMI) No RMI um objeto chamador pode invocar um método em um objeto potencialmente remoto; Semelhanças com RPC: Suporta a programação com interfaces; Construída sobre protocolos de requisição-resposta; Oferecem o mesmo nível de transparência (as interfaces expõe a natureza e complexidade distribuída do RMI); Diferenças positivas Usa o poder da OO (objetos, classes, heranças, etc); Complementa o conceito de ID de um objeto para referências exclusivas, podendo os objetos serem usados como parâmetros;

Invocação a Método Remoto (RMI) Vamos relembrar a Orientação a Objetos Modelo de Objeto Objeto -> conjunto de dados e métodos; Comunicação -> um objeto se comunica com outro através da invocação de métodos; Padrão forte -> encapsulamento; Referências de Objeto Objetos são manipulados através das suas referências; Uma variável não contém um objeto e sim uma referência; Um referência pode ser atribuído a variáveis, passado como argumentos e retornados como resultados;

Invocação a Método Remoto (RMI) Interfaces Definição da assinatura de um conjunto de métodos; Tipos de argumentos, valores de retorno e exceções; Ações Uma ação é iniciada por um objeto invocando um método em outro objeto; Uma invocação pode levar a mais invocações a métodos em outros objetos; Exceções As exceções proporcionam uma maneira clara de tratar com condições de erro, sem complicar o código; Coleta de lixo

Invocação a Método Remoto (RMI) Objetos Distribuídos Os Sistemas de Objetos Distribuídos podem adotar o modelo cliente-servidor; Os objetos são gerenciados pelo servidor e os clientes invocam seus métodos usando RMI; Podemos ter invocações encadeadas (objetos servidores podem se tornar clientes de objetos em outros servidores); O acesso direto aos estados de um objeto é proibitivo (encapsulamento);

Invocação a Método Remoto (RMI) Modelo de Objetos Distribuídos As invocações a métodos entre objetos em diferentes processos, sejam no mesmo computador ou não, são conhecidas como invocações a métodos remotos. Quando ocorrem em um mesmo processo, chamamos de invocações a métodos locais.

Invocação a Método Remoto (RMI) Interfaces Remotas A classe de um objeto remoto implementa os métodos de sua interface remota. Objetos em outros processos só podem invocar os métodos pertencentes à interface remota. Os objetos locais podem invocar qualquer método (local ou remoto).

Invocação a Método Remoto (RMI) Ações em um Sistema de Objetos Distribuídos As ações ocorrem como no modelo não distribuído: através da invocação a métodos. Porém, num sistema distribuído os objetos podem estar em diferentes processos ou computadores.

Invocação a Método Remoto (RMI) Implementação Servente

Invocação a Método Remoto (RMI) Implementação O Módulo de Comunicação transmite mensagens de requisiçãoresposta, entre clientes e servidores (mensagem: tipo de mensagem, sua requestid e a referência remota); O Módulo de Referência Remota promove a transformação entre referências de objeto local e remoto e pela criação de referência de objeto remoto (uso da tabela de objetos remotos); A tabela de objetos remotos inclui: Uma entrada para todos os objetos remotos mantidos pelo processo. O Objeto Remoto B será registrado no servidor; Uma entrada para cada proxy local. O proxy de B será registrado na tabela do cliente; O Servente é uma instância de uma classe que fornece o corpo de um objeto remoto;

Invocação a Método Remoto (RMI) Implementação O Software RMI é uma camada de software middleware entre os objetos e os módulos de comunicação e de referência remota. As funções dos seus componentes são: Proxy: comporta-se como um objeto local para o invocador. Ele não executa uma invocação local, ele a encaminha em uma mensagem para um objeto remoto. Ele oculta os detalhes de referência de objeto remoto, do empacotamento dos argumentos e desempacotamento dos resultados; Despachante: recebe a mensagem de requisição do módulo de comunicação e utiliza o OperationID para selecionar o método apropriado no esqueleto; Esqueleto: Um método de esqueleto desempacota os argumentos da mensagem de requisição e invoca o método correspondente no Servente;

Dúvidas Página do Professor Mauro: http://www.dai.ifma.edu.br/~mlcsilva

Próxima Aula Java RMI

Referências Sistemas Distribuídos - Conceitos e Projeto, George Coulouris, 4ª Edição - Editora Bookman, 784 páginas.