Академический Документы
Профессиональный Документы
Культура Документы
SUMRIO
Viso geral
A API para protocolos Internet
Representao externa de dados e empacotamento
Comunicao cliente-servidor
Comunicao em grupo
Comunicao entre processos no UNIX
www.edeyson.com.br
VISO GERAL
Como tratar projeto de componentes?
Como os middlewares e aplicativos utilizam UDP e TCP?
Viso do programador.
Aplicativos, servios
RMI e RPC
Protocolo baseado em requisio-resposta
Camadas de
middleware
www.edeyson.com.br
VISO GERAL
Interface de programa aplicativo para UDP
www.edeyson.com.br
VISO GERAL
Como transformar objetos e estruturas de dados numa
forma conveniente para envio em mensagens pela rede?
www.edeyson.com.br
Soquetes
Modelo de falhas
API Java para datagramas UDP
6
Modelo de falhas
API Java para fluxos TCP
Comunicao entre Processos
www.edeyson.com.br
API2IP Caractersticas
Operaes de comunicao de mensagem: send e receive.
Definidas em termos de destino e mensagens.
Comunicao sncrona e assncrona
Assncrona:
www.edeyson.com.br
API2IP Caractersticas
As mensagens so enviadas para destinos identificados
pelo par endereo IP e porta.
Para proporcionar transparncia de localizao, os
clientes se referem aos servios pelo nome e usam um
servidor de nomes.
Confiabilidade
Ordenamento
www.edeyson.com.br
API2IP Soquetes
A comunicao entre processos consiste em transmitir
uma mensagem entre um soquete de um processo e um
soquete de outro processo.
Soquete
Mensagem
Cliente
Outras portas
Endereo IP = 138.37.94.248
servidor
Endereo IP = 138.37.88.249
www.edeyson.com.br
API2IP Soquetes
Caractersticas
10
www.edeyson.com.br
API2IP Soquetes
11
InetAddress a Computer =
InetAddress.getByName(www.frb.edu.br)
www.edeyson.com.br
Tamanho da mensagem
Bloqueio
Timeouts
Recepo annima
12
www.edeyson.com.br
Modelo de falhas
Ordenamento
13
www.edeyson.com.br
www.edeyson.com.br
www.edeyson.com.br
Aplicaes multimidia
16
www.edeyson.com.br
pacotes
Mensagens perdidas
O
Controle de fluxo
Combinao
Duplicao e ordenamento
Identificadores
Destinos de mensagem
Estabelecimento
17
www.edeyson.com.br
Bloqueio
Threads
18
Ao aceitar uma nova conexo criada uma nova thread separada para
se comunicar com o novo cliente.
www.edeyson.com.br
Modelo de falhas
19
www.edeyson.com.br
www.edeyson.com.br
21
www.edeyson.com.br
www.edeyson.com.br
23
www.edeyson.com.br
www.edeyson.com.br
www.edeyson.com.br
26
short (16 bits), long (32 bits), unsigned short, unsigned long, float
(32 bits), double (64 bits), char, boolean (TRUE, FALSE), octet (8
bits) e any (qualquer tipo primitivo ou construdo).
Transmisso na ordem do remetente (big-endian / little-endian).
Cliente e servidor acordam um cdigo para caracteres.
www.edeyson.com.br
27
www.edeyson.com.br
4 bytes
5
"Smit"
"h___"
6
"Lond"
"on__"
1934
Observaes sobre
A representao
Comprimento do string
Smith
Comprimento do string
London
unsigned long
A forma simplificada representauma struct Person com valor: {Smith, London, 1934}
28
www.edeyson.com.br
Empacotamento no CORBA:
};
29
www.edeyson.com.br
}
30
www.edeyson.com.br
www.edeyson.com.br
www.edeyson.com.br
Valores serializados
Person
1934
5 Smith
h0
java.lang.String
java.lang.String
name:
place:
6 London
h1
Nome da classe
nmero da verso
Nmero, tipo de nome
das variveis de
instancia
Valores das variveis
De instancia
33
www.edeyson.com.br
R.E.E. XML
Definida
34
www.edeyson.com.br
R.E.E. XML
35
www.edeyson.com.br
R.E.E. XML
<person id="123456789">
<name>Smith</name>
<place>London</place>
<year>1934</year>
<!-- um comentrio -->
</person >
36
www.edeyson.com.br
R.E.E. XML
CDATA
Prlogo XML
37
www.edeyson.com.br
R.E.E. XML
www.edeyson.com.br
R.E.E. XML
Esquemas XML
www.edeyson.com.br
32 bits
Endereo IP
40
32 bits
Nmero de
porta
32 bits
Hora
32 bits
Nmero do
objeto
Interface do
Objeto remoto
www.edeyson.com.br
Comunicao client/server
41
www.edeyson.com.br
Comunicao client/server
O protocolo requisio-resposta
Cliente
doOperation
Servidor
Mensagem
de requisio
(espera)
(continuao)
42
Mensagem
de resposta
getRequest
seleciona objeto
executa
mtodo
sendReply
www.edeyson.com.br
Comunicao client/server
O protocolo requisio-resposta
43
www.edeyson.com.br
Comunicao client/server
O protocolo requisio-resposta
Tipo da mensagem
int
Referncia do Objeto
RemoteObjectRef
int or Method
Argumentos
array of bytes
44
www.edeyson.com.br
Comunicao client/server
Timeouts
45
Repetio da operao.
Operaes idempotente.
www.edeyson.com.br
Comunicao client/server
Histrico
46
www.edeyson.com.br
Comunicao client/server
Nome
47
Servidor
Request
RR
Request
Reply
R RA
Request
Reply
Cliente
Acknowledge reply
www.edeyson.com.br
Comunicao client/server
Protocolo
Desvantagens
Sobrecarga
fluxo)
Aplicativo no exige todos os recursos do TCP.
48
www.edeyson.com.br
Comunicao client/server
49
www.edeyson.com.br
Comunicao client/server
HTTP
Etapas:
Solicitao
de conexo
Mensagem de requisio e mensagem de resposta.
Encerramento da conexo
50
www.edeyson.com.br
Comunicao client/server
51
www.edeyson.com.br
Comunicao client/server
52
www.edeyson.com.br
Comunicao client/server
HTTP
Mtodos:
Cada
53
www.edeyson.com.br
Comunicao client/server
Contedo da mensagem
mtodo
GET
54
cabealhos
corpo da
mensagem
HTTP/ 1.1
Verso de HTTP
HTTP/1.1
Verso de
HTTP
Cdigo de status
200
motivo
cabealhos
OK
Corpo da
mensagem
dados do recurso
www.edeyson.com.br
Comunicao client/server
55
www.edeyson.com.br
Comunicao client/server
56
www.edeyson.com.br
Comunicao client/server
57
Exemplo
www.edeyson.com.br
Comunicao client/server
58
Exemplo
www.edeyson.com.br
Comunicao client/server
Exemplo
HTTP Request
GET /index.html HTTP/1.1
Host: www.exemplo.com
HTTP Reply
HTTP/1.1 200 OK
Date: Mon, 23 May 2005 22:38:34 GMT
Server: Apache/1.3.27 (Unix) (Red-Hat/Linux)
Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT
Etag: "3f80f-1b6-3e1cb03b"
Accept-Ranges: bytes
Content-Length: 438
Connection: close
Content-Type: text/html; charset=UTF-8
Dados dados dados dados
59
www.edeyson.com.br
Comunicao em grupo
60
www.edeyson.com.br
C. Grupo Multicast IP
nico
61
www.edeyson.com.br
C. Grupo Multicast IP
Detalhamento:
Roteadores multicast
62
www.edeyson.com.br
C. Grupo Multicast IP
Mtodos de MulticastSocket
63
www.edeyson.com.br
C. Grupo Multicast IP
import java.net.*;
import java.io.*;
public class MulticastPeer{
public static void main(String args[ ]){
// args fornece o contedo da mensagem e o grupo multicast de destino
MulticastSocket s =null;
try {
InetAddress group = InetAddress.getByName(args[1]);
s = new MulticastSocket(6789);
s.joinGroup(group);
byte [ ] m = args[0].getBytes();
DatagramPacket messageOut =
new DatagramPacket(m, m.length, group, 6789);
s.send(messageOut);
64
www.edeyson.com.br
C. Grupo Multicast IP
// obtm mensagens de outros participantes do grupo
byte[ ] buffer = new byte[1000];
for(int i=0; i< 3; i++) {
DatagramPacket messageIn =
new DatagramPacket(buffer, buffer.length);
s.receive(messageIn);
System.out.println("Received:" + new String(messageIn.getData()));
}
s.leaveGroup(group);
}catch (SocketException e){System.out.println("Socket: " + e.getMessage());
}catch (IOException e){System.out.println("IO: " + e.getMessage());}
}finally {if(s != null) s.close();}
}
}
65
www.edeyson.com.br
Confiabilidade
C. Grupo e Ordenamento
Falhas
66
www.edeyson.com.br