• Nenhum resultado encontrado

RPCs e Sockets

N/A
N/A
Protected

Academic year: 2022

Share "RPCs e Sockets"

Copied!
25
0
0

Texto

(1)

RPCs e Sockets

(2)

// quase Java....

class HelloWorld { // método local

public void sayHello() { print("Hello World!");

}

// programa principal

public static void main(String[] args) { new HelloWorld().sayHello();

} }

public class HelloWorld {

public HelloWorld ( String name ) { Naming.rebind( name, this );

}

// método remoto

public String sayHello () { return "Hello World!";

} }

public class HelloWorldServer {

public static void main(String[] args) {

HelloWorld object = new HelloWorld( "Hello" );

} }

public class HelloWorldClient {

public static void main(String[] args) { // conexão

HelloWorld hello_server = (HelloWorld)Naming.lookup("rmi://hostB/Hello");

// chamada remota

print( hello_server.sayHello() );

} }

(3)

Infra-Estrutura de SW para SDs

Middleware: Arquitetura Básica em Camadas

Infra-estrutura Distribuição

Barramento de Comunicação

Stub Skeleton

Serviços Comuns

Nomes Segurança Tol. a

Falhas ...

Serviços Específicos

Domínio:

Saúde Domínio:

Financeiro Domínio:

Multimídia

modelos de programação, onde a

comunicação é abstraída, por ex. – ORB CORBA, incluindo RPC

abstrai as peculiaridades dos sistemas

operacionais, encapsulando e melhorando os mecanismos de concorrência, por ex. – ex.

JVM

Sistema Operacional

AplicaçãoC AplicaçãoS

Hoje!!!

(4)

Tópicos

Elementos básicos de comunicação

Sockets

RPC: Remote Procedure Call

Conceito geral → no UNIX é homônimo

Para Java, usa-se RMI (Remote Method

Invocation)

(5)

Protocolos

Ausência de memória compartilhada => troca de mensagens

Para comunicação entre processos

Depois executa um system call

SO envia a mensagem pela rede para B

A e B têm que concordar sobre um conjunto de regras – protocolo

Necessários em vários níveis. Exs.:

transmissão de bits

detalhes de alto nível sobre como a informação é

expressa

(6)

O Conceito de Protocolo

Conjunto de operações e regras para que duas entidades possam se comunicar

Protocolo TCP

(7)

Camadas

Aplicações e serviços RMI e RPC

Protocolo Request-Reply

Marshalling e eXternal Data Representation TCP e UDP (sockets)

Middleware

(8)

Sockets

(9)

Socket

Uma porta de um canal de comunicação

Permite a um processo executando num computador enviar/receber mensagens para/de outro processo

Através de uma API bem conhecida

Usado para representar uma conexão entre um cliente e um servidor

Cliente Servidor

socket socket

canal

(10)

Descrição do fluxo (sockets)

(11)

Transmissão de dados

Dados em programas são estruturados

Enquanto isso, mensagens carregam informação sequencial:

Linearização/Restauração de dados

Heterogeneidade na representação de dados em computadores

Uso de um formato externo comum

Inclusão de uma identificação de arquitetura na

mensagem

(12)

Marshalling/Unmarshalling

Marshalling:

Linearização de uma coleção de itens de dados estruturados

Tradução dos dados em formato externo (ex: XDR – eXternal Data Representation)

Unmarshalling:

Tradução do formato externo para o local

Restauração dos itens de dados de acordo com

sua estrutura

(13)

Remote Procedure

Calls (RPCs)

(14)

Protocolo Pedido-Resposta

Request-Reply (RR)

Típico na interação cliente-servidor

Primitivas:

DoOperation - clientes invocam operações remotas

GetRequest - servidor adquire os pedidos de serviços

SendReply

(15)

Chamadas de Procedimentos Remotos

Ideal: programar um sistema distribuído como se fosse centralizado

RPC objetiva permitir chamada de

procedimento remoto como se fosse local

ocultando entrada/saída de mensagens

uso análogo ao de um procedimento local

(16)

RPCs: considerações em função da distribuição

Evitar passagem de endereço e variáveis globais

Sem espaço de endereçamento compartilhado

Novos tipos de erros

Falhas de nós ou da rede

Atrasos

Concorrência não é tanto um problema

Por quê?

(17)

RPC: processamento das interfaces

Objetivo: integração dos mecanismos de RPC com os programas cliente e servidor escritos em uma linguagem de programação

convencional

(18)

RPC: processamento de interface

Stubs (no cliente e no servidor):

transparência de acesso – forma de

chamada remota semelhante à chamada local

tratamento de algumas exceções no local

marshalling

unmarshalling

C S

stub stub

rede

(19)

RPC: tratamento da comunicação

Módulo de comunicação usa protocolo pedido-resposta para troca de mensagens entre cliente e servidor

res = srv.Soma(a,b)

res=request(srv,msg)

res = Soma(a,b)

reply(clt,res)

Mensagem de aplicação encapsulada em um request/reply

cliente servidor

DoOperation

GetRequest SendReply

(20)

RPC: ligação

O mecanismo possui um binder para resolução de nomes, permitindo

– Ligação dinâmica

Transparência de localização

(21)

Chamadas e mensagens em RPC

Máquina do Cliente Máquina do Servidor

Kernel Kernel

cliente servidor

empacota parâmetros

desempacota resultados

desempacota parâmetros

empacota resultados

transporte de mensagens via rede

1 2

3

4

0 5

6

7 8

9 10

11

(22)

Funções dos Stubs

Client stub

1. intercepta a chamada

2. empacota os parâmetros (marshalling)

3. envia mensagem de request ao servidor (através do núcleo)

Server stub (a.k.a. skeleton)

1. recebe a mensagem de request (através do núcleo) 2. desempacota os parâmetros (unmarshalling)

3. chama o procedimento, passando os parâmetros 4. empacota o resultado

5. envia mensagem de resposta ao cliente (através do núcleo)

Client stub

1. recebe a mensagem de resposta (através do núcleo) 2. desempacota o resultado

3. passa o resultado para o cliente

(23)

Funções dos Stubs

Client stub

1. intercepta a chamada

2. empacota os parâmetros (marshalling)

3. envia mensagem de request ao servidor (através do núcleo)

Server stub (a.k.a. skeleton)

1. recebe a mensagem de request (através do núcleo) 2. desempacota os parâmetros (unmarshalling)

3. chama o procedimento, passando os parâmetros 4. empacota o resultado

5. envia mensagem de resposta ao cliente (através do núcleo)

Client stub

1. recebe a mensagem de resposta (através do núcleo) 2. desempacota o resultado

3. passa o resultado para o cliente

(24)

RPC: Passagem de Parâmetros

2-8

Distributed Systems: Principles and Paradigms, Chapter 02

© Tanenbaum and van Steen 2002

(25)

RPC Assíncrono

a) Interação cliente-servidor em um RPC tradicional b) Interação usando RPC assíncrono

Distributed Systems: Principles and Paradigms, Chapter 02

© Tanenbaum and van Steen 2002

Referências

Documentos relacionados

Não alterne entre o granulado para suspensão oral, o comprimido para mastigar, o comprimido de 600 mg ou o comprimido de 400 mg sem falar primeiro com o médico, farmacêutico

Ao adquirir o título de transporte com um dos Cartões Prestige Gémeos ficam garantidos os riscos de Morte ou Invalidez Permanente da Pessoa Segura, superior a

(05/06/2003 disponível em: <www.folha.com.br>) Esses dados mostram que existe uma grande preocupação mundial com os recursos hídricos potáveis. 02) A preservação das

(iv) Os investimentos dos cotistas, por sua própria natureza e em função da política de investimento do FUNDO, estarão sempre sujeitos à perda do capital investido, em decorrência

Arqueologia Pública Campinas, SP v.13 n.2 p.66 2019 ISSN 2237-8294 Há que se pensar e agir para a promoção de um saber arqueológico e cultural crítico,

PNMU 1205ANER-SM Aresta Reforçada (Fresamento Pesado) PNMU 1205ANER-GH 17.98 6.17 Ênfase no Acabamento (Classe de Precisão) PNEU 1205ANER-GL 17.51 5.56 2.7 2.7 Ênfase no Acabamento

Porcas de fixação intercambiáveis, porcas de fixação estilo refrigerante e discos do refrigerante estão disponíveis e devem ser pedidos separadamente; consulte a página