Programação Distribuída em Java - IME-USP

Propaganda
Programação Distribuída em
Java
Aula 01
1
Na aula de hoje veremos:
•
•
•
•
•
•
Introdução
Conceito de Rede
Protocolos
Modelo ISO/OSI
Modelo TCP/IP
Modelo Cliente/Servidor
2
Introdução
3
O quê um programa para rede
pode fazer?
Recuperar e exibir dados
•
•
•
Web browsers “conversam” com alguns
tipos específicos de servidores
“Compreendem” tipos específicos de
dados
Uma aplicação Java pode se adaptar
virtualmente a qualquer tipo de servidor
ou dado
4
O quê um programa para rede
pode fazer?
Acesso contínuo à informação
• Web browsers buscam informação
on-demand
• Um cliente Java pode se manter
constantemente atualizado
5
O quê um programa para rede
pode fazer?
Enviar dados
• Web browsers são limitados quanto ao
envio de dados ao servidor
• Esse envio ocorre principalmente a partir
de formulários
• Um programa Java não tem essa
limitação
6
O quê um programa para rede
pode fazer?
Interação ponto a ponto
• Games on-line
• Chat
• Colaboração on-line
7
O quê um programa para rede
pode fazer?
Servidores
• Possibilidades de escrever servidores
para fins específicos
• Simplicidade
• Shopping carts
• Spiders
8
O quê um programa para rede
pode fazer?
Agentes inteligentes
• Independência de plataforma
• Segurança (SecurityManager)
e muito mais...
9
Rede
Conceitos básicos
10
Componentes da Rede
• Uma rede é uma coleção de
computadores e outros dispositivos que
podem trocar informações entre si.
• Cada máquina da rede (impressoras,
roteadores, máquinas de refrigerante, etc.)
é chamada de nó.
• A um nó plenamente funcional
chamaremos de host.
11
Packet-Switched networks
• Redes modernas distribuem dados em
pequenos pacotes de informação.
• Pacotes diminuem o custo das redes .
• Pacotes permitem o uso de check-sums.
• Cada pacote recebe o nome de
datagrama.
12
Protocolo
• Conjunto preciso de regras que define
como computadores se comunicam;
como a informação é tratada e distribuída.
• e.g. HTTP define como os browsers se
comunicam com servidores.
13
Modelo ISO/OSI
•
Facilitar o processo de padronização e
obter interconectividade entre máquinas
de diferentes fabricantes.
•
Trata da transmissão de dados em sete
camadas de abstração; divide-se em:
14
Aplicação
• Interface entre o protocolo de
comunicação e o aplicativo que enviou ou
receberá a informação
15
Apresentação
• Traduzir os dados do formato do aplicativo
para o formato da rede e vice versa.
• Define como inteiros, mensagens de texto
e outros dados são codificados e
transmitidos na rede.
16
Sessão
• Gerencia uma sessão de comunicação
entre duas aplicações em computadores
diferentes.
• Disponibiliza serviços como pontos de
controle periódicos a partir dos quais a
comunicação pode ser restabelecida em
caso de pane na rede.
17
Transporte
• Separa os dados enviados pela camada
de Sessão em pacotes que serão
transmitidos pela rede.
• Responsável pela consistência dos dados
• TCP (telefone) - connection-based
• UDP (carta)
- connection-less
18
Rede
• Organização dos dados em pacotes.
• Organiza o endereçamento dos pacotes,
convertendo endereços lógicos em
endereços físicos.
• Determina a rota que os datagramas
seguirão.
19
Esquema de datagrama IPv4
version
header
length
type of service
datagram length
identification number
time-to-live (TTL)
flags
protocol
fragment offset
header checksum
source address
destination address
optional information
data
20
Enlace (data link)
• Estabelece um protocolo de comunicação
entre sistemas diretamente conectados.
21
Física
• Move bits através de um meio físico.
• Confirmação e retransmissão de quadros.
• Controle da quantidade e velocidade de
transmissão de informações na rede.
22
A
B
Aplicação
Aplicação
Apresentação
Apresentação
Sessão
Sessão
Transporte
Transporte
Rede
Rede
Enlace
Enlace
Física
Física
23
A
B
Aplicação
Aplicação
Apresentação
Apresentação
Sessão
Sessão
Transporte
Transporte
Rede
Rede
Enlace
Enlace
Física
Física
24
Modelo TCP/IP
• O modelo TCP/IP é o mais apropriado
para a Internet
• As classes Java que dão suporte a
programação para rede são baseadas
nos protocolos TCP/IP
• O programador Java só poderá interagir
com as camadas de aplicação ou
transporte
25
A
B
Aplicação
Aplicação
Transporte
Transporte
Internet
Internet
Host-to-host
Host-to-host
26
Modelo Cliente/Servidor
• A distinção é cada vez mais tênue
• Em geral, o lado que inicia a conversa é o
cliente
• O lado que aceita o pedido geralmente é o
servidor
27
Modelo Cliente/Servidor
• Cliente:
• Manipula a maior parte da lógica do
programa
• Interface gráfica
• Roda em PC’s relativamente baratos
28
Modelo Cliente/Servidor
• Servidor:
• programa que gerência grandes
quantidades de informação e é executado
geralmente em máquinas caras e
poderosas.
29
Modelo Cliente/Servidor
• Servidor de arquivos ou DB
• Recupera e envia informação ao cliente
• Não processa essa informação
30
Modelo Cliente/Servidor
• Servidor de aplicação
• Processa e/ou analisa os dados
• Envia os resultados desse processamento
31
O que você precisa saber...
• Funcionamento básico de uma rede
• Modelo de camadas
– Prefira TCP/IP
• Interação cliente/servidor
32
Na próxima aula veremos:
• I/O
• Sockets
33
Download