Sistemas Distribuídos: Conceitos e Projeto RPC e RMI

Documentos relacionados
Common Object Request Broker Architecture

Sistemas Operacionais II

Principais conceitos de CORBA

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

Sistemas Distribuídos Aula 10

Sistemas Distribuídos

Sistemas Distribuídos

Análise comparativa entre as especificações de objetos distribuídos DCOM e CORBA

Plataformas de Distribuição de Objetos

Comunicação entre Processos

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

Sistemas Distribuídos

INTRODUÇÃO. RPC x RMI

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

Sistemas Distribuídos

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

Sistemas Distribuídos

PMR3507 Fábrica digital

Comunicação. capítulo

SISTEMAS DISTRIBUIDOS

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

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

Objetos e Componentes Distribuídos: EJB e CORBA

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

Sistemas Operacionais II

ATIVIDADES PRÁTICAS SUPERVISIONADAS

Sistemas Distribuídos RPC x RMI. Edeyson Andrade Gomes

Sistemas Distribuídos Capítulo 4 - Aula 5

Sistemas de Objetos Distribuídos

Sistemas Distribuídos

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

Arquitetura e Objetos Distribuídos em CORBA. Aula 3. Especificações OMA Object Web

Sistemas Distribuídos

Plataformas de Distribuição de Objetos

CORBA. Common Object Request Broker Architecture. Unicamp. Centro de Computação Rubens Queiroz de Almeida

Sistemas Distribuídos

Comunicação Objetos Distribuídos e RMI

Sistemas Distribuídos CORBA. Edeyson Andrade Gomes.

O que se espera para o futuro dos Web Services? As tecnologias são respectivamente JSON e REST.

PROTÓTIPO DE UM SISTEMA DE IMPORTAÇÃO PARA UMA AGÊNCIA DE TRANSPORTES INTERNACIONAIS

INE Sistemas Distribuídos

Sistemas Distribuídos. Visão Geral Expandida

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

Desenvolvimento de Aplicações Distribuídas

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

Sistemas Distribuídos

Remote Procedure Calls. Mário Antonio Meireles Teixeira

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

Sistemas Operacionais Distribuídos e de Redes

TECNOLOGIAS DE SISTEMAS DISTRIBUÍDOS IMPLEMENTADAS EM JAVA: SOCKETS, RMI, RMI-IIOP E CORBA

Protocolo Request-Reply

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

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

Sistemas Distribuídos Arquiteturas Middlewares

www/~cagf/sdgrad Serviço de Nomes CORBA e Interoperabilidade de ORBs

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

Sistemas Distribuídos

SUMÁRIO CAPÍTULO 1 - INTRODUÇÃO 19 CAPÍTULO 2 - CONCEITOS 25

Sistemas Distribuídos

Implementando Aplicações Distribuídas Utilizando CORBA: Um Estudo de Caso Voltado à Área de Banco de Dados

COMPUTAÇÃO DISTRIBUÍDA

CENTRO UNIVERSITÁRIO DO TRIÂNGULO INSTITUTO DE CIÊNCIAS EXATAS E TECNOLÓGICAS CURSO DE CIÊNCIA DA COMPUTAÇÃO OBJETOS DISTRIBUÍDOS ELIANA SILVA SOUZA

Sistemas Distribuídos

Componentes para Computação Distribuída

Sistemas de Objetos DistribuídosPrimeira Aplicação Java ORB p.1/21

Introdução a CORBA. Renato Cerqueira. Departamento de Informática, PUC-Rio

Trabalho Final de Mestrado Profissional

SIST706 Sistemas Distribuídos

Repositórios de Implementações e Binding. Chamada Remota de Métodos

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


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

Infra-Estrutura de Software

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

Características de Sistemas Distribuídos

Sistemas de Objectos Distribuídos

Comunicação. Parte II

Projecto hipotético para resolvermos hoje

Adriano Reine Bueno Rafael Barros Silva

Vamos fazer um pequeno experimento

IORs, GIOP e IIOP. Partes da Especificação CORBA

Tópicos em Sistemas Distribuídos CORBA

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

ANÁLISE COMPARATIVA ENTRE AS ESPECIFICAÇÕES DE OBJETOS DISTRIBUÍDOS DCOM E CORBA UTILIZANDO O AMBIENTE DE DESENVOLVIMENTO DELPHI

Sistemas Distribuídos RPC Remote Procedure Call

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar

Máquina Y. O que parece acontecer. O que acontece na verdade. Cliente. chama Objeto CORBA. objref. envia requisição. Cliente. Servidor.

CORBA IDL. Interface Definition Language. Mário Meireles Teixeira.

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

COMPUTAÇÃO DISTRIBUÍDA

Objetos Distribuídos CORBA. Sumário... Comunicação entre processos. Sockets RPC RMI. Arquitetura OMA Vantagens IDL. Eduardo Nicola F.

Ferramenta MVCase Uma Ferramenta Integradora de Tecnologias para o Desenvolvimento de Componentes Distribuídos

OBJETOS DISTRIBUÍDOS E INVOCAÇÃO REMOTA

Serviço de Nomes CORBA. Serviço de Nomes CORBA e Interoperabilidade de ORBs. Serviço de Nomes CORBA. Serviço de Nomes CORBA. Serviço de Nomes CORBA

Prof. Luiz Fernando Bittencourt MC714. Sistemas Distribuídos 2 semestre, 2013

STD29006 Sistemas Distribuídos

Características de Sistemas Distribuídos

Introdução a Web Services

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

Transcrição:

Sistemas Distribuídos: Conceitos e Projeto RPC e RMI Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA http://www.lsd.deinf.ufma.br 15 de abril de 2013 Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 1 / 1

Agenda Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 2 / 1

Chamada de Procedimento Remoto (RPC) Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 3 / 1

Objetivo RPC Permitir que a chamada a um procedimento remoto se assemelhe ao programador o máximo possível com a chamada a um procedimento convencional; A idéia surgiu em 1984 em um artigo escrito por Birrell e Nelson. Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 4 / 1

Chamada a Procedimento Local count = read(fd, buf, nbytes) Figura: a) Passagem de parâmetros em uma chamada local: a pilha antes da chamada ao procedimento b) A pilha enquanto o procedimento chamado está ativo Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 5 / 1

Passagem de Parâmetros Por valor (fd e nbytes): O parâmetro é copiado para a pilha. Mudanças em seu valor não afetam quem chamou o procedimento; Por referência (buf): É copiado para a pilha a referência ao parâmetro, isto é, um apontador (endereço de memória) da variável. Portanto, Alterações em seu valor no procedimento chamado afeta quem o chamou; Copy/restore: O parâmetro é copiado para a pilha e depois da chamada copiado de volta, sobrescrevendo o valor original. Normalmente possui a mesma semântica da cópia por referência exceto em situações como o mesmo parâmetro sendo enviado mais de uma vez. Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 6 / 1

Funcionamento RPC Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 7 / 1

Considerações do Mecanismo RPC Dado que os procedimentos executam em máquinas diferentes, os seguintes aspectos devem ser levados em consideração: A semântica da passagem de parâmetros deve ser adaptada; Parâmetros devem traduzidos caso as máquinas não sejam idênticas; As duas máquinas podem falhar, causando problemas. Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 8 / 1

Implementação da Chamada a Procedimento Remoto Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 9 / 1

Implementação da Chamada a Procedimento Remoto 1 O procedimento cliente chama localmente o stub cliente; 2 Stub cliente constrói a mensagem e chama o SO local; 3 O SO local envia a mensagem ao SO remoto; 4 O SO Remoto entrega a mensagem ao stub servidor; 5 O stub servidor desempacota os parâmetros e chama o procedimento servidor; 6 O servidor realiza o trabalho retornando o resultado ao stub; 7 O stub servidor empacota o resultado em uma mensagem e chama o SO local; 8 O SO do servidor envia a mensagem ao SO do cliente; 9 O SO do cliente entrega a mensagem ao stub cliente; 10 O stub cliente desempacota o resultado e o retorna ao cliente. Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 10 / 1

Aspectos Semânticos Ponteiros não possuem significado no ambiente do procedimento chamado; A semântica da passagem de parâmetros por referência pode ser simulada utilizando-se call-by-copy/restore ; Não é possível o acesso a variáveis globais; Estruturas complexas, como árvores, devem ser achatadas e remontadas. Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 11 / 1

Passagem de Parâmetros Marshalling: processo de se empacotar uma coleção de itens de dados em um formato específico para sua transmissão em uma mensagem; Unmarshalling: é o processo inverso. Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 12 / 1

Empacotamento da Chamada Remota Além dos parâmetros, outras informações como o nome do procedimento sendo invocado devem constar da mensagem; Caso as máquinas não sejam idênticas, os bits que compõem a mensagem podem ser erroneamente interpretados: Codificação de caracteres: EBCDIC / ASCII Representação de números: little endian / big endian Portanto um formato externo deve ser utilizado Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 13 / 1

Programando Chamadas a Procedimentos Remotos: IDL: Linguagem de Definição de Interfaces Especifica as características dos procedimentos disponibilizado por um servidor: nome dos procedimentos e seus parâmetros (assinaturas); Um compilador de interface gera: Stub cliente Stub servidor Cabeçalhos dos procedimentos Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 14 / 1

Exemplo IDL: Sun XDR Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 15 / 1

Compilação e Geração do Programas Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 16 / 1

Binding (em DCE) Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 17 / 1

Chamada a Métodos Remotos (RMI) Chamada a Métodos Remotos (RMI) Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 18 / 1

Chamada a Métodos Remotos (RMI) Objetos Distribuídos No paradigma orientado a objetos o estado de um programa é separado em partes, associadas a cada objeto. A distribuíção física dos objetos é, portanto, uma extensão natural; Invocações de métodos em objetos remotos são chamadas RMI (Remote Method Invocation). Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 19 / 1

Chamada a Métodos Remotos (RMI) Invocações Remota e Local Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 20 / 1

Chamada a Métodos Remotos (RMI) Objeto Remoto Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 21 / 1

Chamada a Métodos Remotos (RMI) Mecanismo de Chamada a Objeto Remoto Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 22 / 1

Chamada a Métodos Remotos (RMI) Algumas Tecnologias de Objetos Distribuídos Java RMI (Remote Method Invocation); OMG CORBA (Common Object Request Broker Architecture); Microsoft DCOM (Distributed Common Object Model). Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 23 / 1

Chamada a Métodos Remotos (RMI) IDL Uma linguagem (IDL) é utilizada para definição de interfaces remotas; Objetos remotos podem ser implementados em várias linguagens, como Java, C++, Cobol ou Phyton desde que haja um mapeamento para IDL e compiladores específicos; Java RMI permite a definição de interfaces remotas da mesma forma que interfaces convencionais, extendendo-se a interface Remote. Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 24 / 1

Chamada a Métodos Remotos (RMI) Exemplo CORBA IDL Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 25 / 1

Chamada a Métodos Remotos (RMI) Arquitetura CORBA Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 26 / 1

Chamada a Métodos Remotos (RMI) Arquitetura CORBA ORB - Object Request Broker: age como um barramento para troca de mensagens entre objetos distribuídos; Stub: código gerado pelo compilador IDL a ser linkeditado ao código cliente; Skeleton: código gerado pelo compilador IDL a ser linkeditado ao código servidor; Object Adapter: gera referências a objetos, ativa e desativa serventes, mapea a referência a um objeto ao servente que o implementa, implementa poĺıticas; Servente: uma implementação de objeto que disponibiliza a semântica em tempo de execução de um ou mais objetos CORBA. Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 27 / 1

Chamada a Métodos Remotos (RMI) Ciclo de Vida de um Objeto CORBA Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 28 / 1

Chamada a Métodos Remotos (RMI) Serviços CORBA Naming Trading Notification Persistent state Transactions Security Etc... Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 15 de abril de 2013 29 / 1