Vous êtes sur la page 1sur 17

Comunicao Distribuda

Estratgias diferentes que


permitem a comunicao entre
aplicaes distribudas
Estratgias Distintas
Sockets

RPC - Remote Procedure Call

RMI - Remote Method Invocation

CORBA Commom Object Request Broker
Architecture

Conceito de Porta
Uma porta um ponto de interao entre
uma aplicao e o sistema operacional da
mquina.

Proporciona aplicao uma forma de
estabelecer um canal de comunicao com o
sistema operacional da mquina.

representada por um endereo numrico.
Sockets
Um socket um mecanismo de baixo nvel,
definido como uma extremidade de um
canal de comunicao.
Um par de processos (thread) se comunica
em uma rede utilizando um par de sockets
um para cada processo.
Um mecanismo do TCP/IP que permite que
processos distribudos se comuniquem em
uma rede.
Um socket formado por um endereo IP
concatenado com um nmero de porta.
Sockets

Um mecanismo de baixo nvel, entre
processos ou threads distribudos,
que permitem a troca de um fluxo
no-estruturado de bytes entre os
threads em comunicao.
Sockets Java
Sockets orientados a conexo (TCP):
Classes: Socket, ServerSocket

Sockets sem conexo (UDP):
Classe: DatagramSocket

Socket de difuso (multicast):
Classe: MultcastSocket
Estruturando os Dados na
Comunicao

responsabilidade da aplicao-
cliente, o da aplicao-servidor impor
uma estrutura de dados.

Existem dois mtodos alternativos de
comunicao em nvel mais alto:
RPC e RMI
RPC

Permite que um processo ou uma thread
chame um procedimento ou funo em outro
processo, que pode estar em um espao de
endereamento separado na mesma mquina
ou pode estar executando em um
computador remoto conectado por uma
rede.
Vantagens do RPC

Gerencia o canal de comunicao, de
forma que os programas aplicativos
podem ser escritos de modo que a
localizao de um procedimento, quer
local ou remoto, seja transparente.

Mostrar figuras ...
RMI
um recurso Java.
Permite que uma thread invoque um
mtodo em um objeto remoto, o qual
reside em uma mquina virtual Java
(JVM) distinta que pode estar no
mesmo computador ou em uma JVM
em um computador remoto conectado
por rede.
RMI
RMI baseia-se em objetos: suporta a
invocao de mtodos em objetos remotos.

Com RMI possvel passar objetos como
parmetros para os mtodos remotos.

Torna possvel aos usurios desenvolver
aplicaes Java que sejam distribudas por
toda a rede.
RMI
Para tornar os mtodos remotos
transparentes ao cliente e ao
servidor, RMI implementa o objeto
remoto usando stubs e skeletons.

Um stub um proxy
(representante)do objeto remoto, que
reside junto ao programa-cliente.
RMI
Quando o programa-cliente invoca um
mtodo remoto, esse stub para o
objeto remoto que chamado.

Um stub no cliente serve para criar
uma mensagem consistindo do nome
do mtodo a ser invocado no servidor
e nos parmetros desse mtodo.
RMI
O stub envia ento essa mensagem para o
lado do servidor, onde a mensagem
recebida pelo skeleton do objeto remoto.

O skeleton ento faz a extrao dos
parmetros e invoca o mtodo desejado no
objeto remoto do lado servidor.
RMI
O skeleton agrega o valor de retorno
(ou exceo) em uma mensagem e
retorna-a ao programa-cliente.

O stub efetua a extrao do valor de
retorno e o passa para o cliente.
RMI
uma tecnologia Java nativa e por isso
requer que todas as aplicaes distribudas
sejam escritas em Java.
Muitos sistemas existentes que talvez
queiramos que seja distribudos so
escritos em C, C++, Ada, COBOL, Smaltalk,
ou outra linguagem.
CORBA permite a comunicao entre
aplicaes cliente e servidor heterogneas.


CORBA

Vous aimerez peut-être aussi