Escolar Documentos
Profissional Documentos
Cultura Documentos
COMPUTAÇÃO
SISTEMAS DISTRIBUÍDOS E PARALELOS –
PROCEDIMENTOS REMOTOS
AGENDA
29-10-2012
INTERFACE DE COMUNICAÇÃO
PARALELISMO
2
INTERFACE DE COMUNICAÇÃO -
PARALELISMO
29-10-2012
Existe sincronização no envio e recepção de dados
com o modelo de concorrência em termos de
processos e tarefas.
3
INTERFACE DE COMUNICAÇÃO -
PARALELISMO
29-10-2012
Na recepção múltipla, um processo atende um
pedido de cada vez. Neste caso, os restantes
clientes esperam que os pedidos anteriores sejam
4
INTERFACE DE COMUNICAÇÃO -
PARALELISMO
29-10-2012
O modelo multitarefa com vários fios de execução
concorrentes, sincronizando-se no acesso a variáveis
partilhadas, trata-se de um modelo mais adequado
Vantagens:
Programação simples
Código identico a um servidor sequencial
Introdução da sincronização no acesso a estruturas de
dados partilhadas
Permite explorar situações de bloqueio da tarefa durante o
serviço de um pedido (e.g. acesso ao disco)
Partilha de dados e sincronização de várias tarefas
Tira partido de possíveis multiprocessadores na máquina 5
servidor
MODELO DE CHAMADA DE PROCEDIMENTO REMOTO
29-10-2012
CLIENTE SERVIDOR
Execução
Cliente do
Bloqueado Pedido
6
PROCEDIMENTOS REMOTOS
29-10-2012
CHAMADA DE PROCEDIMENTO REMOTO
(RPC – Remote Procedure Call)
29-10-2012
CHAMADA DE PROCEDIMENTO REMOTO
(RPC – Remote Procedure Call)
8
PROCEDIMENTOS REMOTOS
29-10-2012
CHAMADA DE PROCEDIMENTO REMOTO
(RPC – Remote Procedure Call)
9
PROCEDIMENTOS REMOTOS
29-10-2012
CHAMADA DE PROCEDIMENTO REMOTO
(RPC – Remote Procedure Call)
29-10-2012
CHAMADA DE PROCEDIMENTO REMOTO
(RPC – Remote Procedure Call)
29-10-2012
Ligação Cliente - Servidor
3 –Estabelecimento da Ligação
12
PROCEDIMENTOS REMOTOS
29-10-2012
CHAMADA DE PROCEDIMENTO REMOTO
(RPC – Remote Procedure Call)
29-10-2012
Lado Cliente Lado Servidor
29-10-2012
Na lógica, o cliente efectua uma chamada a um
procedimento local que se encarrega de iniciar a
invocação remota.
15
29-10-2012
Prof. Nobre - macaba.pedro@gmail.com
PROCEDIMENTOS REMOTOS
16 ESPECIFICAÇÃO DA INTERFACE DOS
SERVIÇOS
LINGUAGE DE DESCRIÇÃO DE
INTERFACES
29-10-2012
IDL – Interface Description Language
Apresenta uma sintaxe inspirada nas linguagens
tradicionais (C, Pascal, C++).
ou por referencia
29-10-2012
As linguagens de especificação de interfaces
apresentam-se como versões simplificadas de
uma linguagem de programação, visto
29-10-2012
Dependendo das características do RPC, a
linguagem IDL possui diversas palavras chaves
para fornecer indicações na definição dos
Identificação do serviço
Versoes
Semantica desejada para execução do procedimento
remoto
…
19
IMPLEMENTAÇÃO RPC
29-10-2012
Exercício:
Serviço que permite o acesso remoto a um
20
IMPLEMENTAÇÃO RPC
29-10-2012
Considerar as operações habituais de manipulação de
Contas com a sintaxe abaixo.
21
IMPLEMENTAÇÃO RPC
29-10-2012
Especificação da Interface em IDL. A Microsoft
Utiliza a MIDL no sistema RPC, resultante da
[
Uuid(00918ª0C-4D50-1C17-9BB3-92C1040B0000),
Version(1.0)
] Typedef enum {
Interface banco CRIACAO,
{ SALDO,
Typedef enum { DEPOSITO,
SUCESSO, LEVANTAMENTO,
ERRO, TRANSFERENCIA,
ERRO_NA_CRIACAO, EXTRACTO
CONTA_INEXISTENTE, } tipoOperacao;
FUNDOS INEXISTENTES
} resultado; 22
IMPLEMENTAÇÃO RPC
29-10-2012
Typedef struct{ Typedef struct{
long dia, tipoData data;
long mês; tipoOperacao operacao;
long ano; long movimento;
} tipoData; long saldo;
23
29-10-2012
Prof. Nobre - macaba.pedro@gmail.com
PROCEDIMENTOS
REMOTOS
24 ARQUITETURA DO SISTEMA RPC
29-10-2012
Prof. Nobre - macaba.pedro@gmail.com
PROCEDIMENTOS
REMOTOS
25 RMI – Remote Method Invocation
INTERFACE RMI
29-10-2012
Permite a programas escritos em Java chamar
certos métodos em servidores remotos.
29-10-2012
Quando um objecto é passado para um método java ou
retornado, o que realmente é passado uma referencia
do objecto – sua localização na memoria da maquina
virtual.
29-10-2012
A camada cliente conversa com o stub;
O stub passa a conversação para a camada de
29
COMUNICAÇÃO CLIENTE – SERVIDOR
29-10-2012
A camada de transporte do servidor comunica-se
com a camada de referencia remota, que converte
uma referencia enviada pelo cliente em uma
30
COMUNICAÇÃO CLIENTE – SERVIDOR
29-10-2012
Na inicialização do servidor, é utilizado o métido
bind() da classe naming do pacote java.rmi para
ligar um nome ao objecto remoto no registry.
31
RMI – APLICAÇÃO EXEMPLO
29-10-2012
Arquivo Hello.java (interface)
32
RMI – APLICAÇÃO EXEMPLO
29-10-2012
Arquivo HelloImpl.java (implementação do objeto remoto)
import java.rmi.*;
import java.rmi.server.*;
29-10-2012
import java.net.*;
import java.rmi.*;
import java.rmi.server.*;
import java.rmi.registry.*;
29-10-2012
Arquivo HelloClient.java (cliente)
import java.net.*;
import java.rmi.*;
import java.rmi.registry.*;
29-10-2012
Para compilar e executar na mesma máquina:
Instalar o Java Development Kit no computador e
inserir c:\jdk1.1\bin na linha PATH do arquivo
29-10-2012
SOCKETS CORBA
29-10-2012
RMI RPC