Redes de computadores II
Modelo Cliente/servidor
Prof: Diovani Milhorim
Modelo cliente/servidor
Modelos de organização de sistemas
distribuídos



Cliente-servidor
Pares (peer to peer)
Filtros
Modelo cliente/servidor
Paradigma cliente-servidor
Aplicações


Aplicações que
esperam por
comunicação
Aplicações que
iniciam a
comunicação
Servidores.
Clientes.
Servidores : Oferecem serviços aos usuários.
Clientes : Solicitam serviços aos servidores.
Modelo cliente/servidor
Paradigma cliente-servidor
Modelo Cliente/servidor



Modelo mais usado para aplicações distribuídas não paralelas.
Um processo servidor está sempre a espera de uma comunicação.
O processo cliente tem a iniciativa de começar a comunicação
quando deseja um serviço através de alguma forma de
comunicação.
cliente
cliente
pedido
resposta
servidor
cliente
Modelo Cliente/servidor

Modelo cliente/servidor – Processos em uma mesma unidade de
processamento.
Processo
Processo
cliente
cliente
Servidor
página
Servidor
arquivos
....
mensagem
Kernel
Servidor
impressão
Modelo Cliente/servidor

Modelo cliente/servidor – Processos em unidade de processamento
diferentes.
Maquina 1
Maquina 2
Maquina 3
Máquina 4
cliente
Servidor
páginas
Servidor
arquivos
Servidor
impressão
kernel
kernel
kernel
kernel
rede
mensagens
Modelo Cliente/servidor
Modelo cliente/servidor – Adaptabilidade a sistemas distribuídos




O cliente se comunica com o servidor trocando mensagens, sem ter
conhecimento da localização do servidor (local ou remoto)
Para o modelo cliente servidor não interessa onde se localiza o
servidor desde que possa ser alcançado através de mensagens.
Pode-se distribuir serviços diferente, em unidades de
processamento diferentes, economizando-se e compartilhando
recursos.
O sistema é transparente ao cliente.
Modelo Cliente/servidor
Um exemplo de aplicação cliente servidor.
Nome do
arquivo
Nome do
arquivo
stdin
servidor
cliente
Conteúdo ou
mensagem de
erro
stdout
Conteúdo ou
mensagem de
erro
arquivo
Modelo Cliente/servidor
Comunicação entre clientes e servidores:

Usando primitivas de comunicação:


Sistemas de midleware para evocações de operações remotas:




TCP/IP (udp, tcp)
Esconde os detalhes da comunicação permitindo ao programador se
concentrar nos detalhes da programação.
Sistemas de RPC/RMI permite que programadores vejam servidores
como objetos locais.
Invoquem uma operação em um servidor da mesma forma que em
um objeto local.
Web services: Permitem evocar serviços remotos usando protocolo
HTTP.
Modelo Cliente/servidor
Comunicação entre clientes e servidores:
Modelo Cliente/servidor
Comunicação entre clientes e servidores:
Modelo Cliente/servidor
Comunicação entre clientes e servidores:
Modelo Cliente/servidor
Comunicação entre clientes e servidores:

A generalidade dos serviços básicos disponíveis na internet se
adaptam ao modelo cliente servidor.

Pedidos e resposta codificadas como texto (embora os usuários utilizem
na maioria dos casos interfaces gráficas).
Exemplos:




FTP: transferência de arquivos.
SMTP: servidor de e-mail
Messenger : mensagem instantânea.
Skype : voz sobre ip.
Modelo Cliente/servidor
Comunicação entre clientes e servidores:
Exemplo: Servidor Proxy.
Modelo Cliente/servidor
Comunicação entre clientes e servidores:
Exercício:
Utilizar o aplicativo telnet para se conectar a um servidor web remoto e
baixar página inicial.
c:> telnet www.google.com.br 80
Digitar:
GET index.xml
Veja o cabeçalho da resposta e o conteúdo da mensagem.
Modelo Cliente/servidor
Comunicação entre clientes e servidores:
Exercício:
Veja o script em :
www.voile.com.br/diovani/redes2/calculadora.php
Este é um script em PHP que se utiliza do conceito cliente/servidor via
web para implementar aplicação que realiza cálculos.
Modelo Cliente/servidor
form action="index.php" method="post" name="cd" id=
"cd">
<div align="center">
<input name="v1" type="text" id="v1">
</p>
</div>
<p align="center">
<input name="v2" type="text" id="v2">
</p>
<p align="center">
<input name="r" type="submit" id="r" value="Calcular">
</p>
<p align="center">
<input type=radio name= "operac" value="soma" id =
"operac" >
Soma
<input type=radio name="operac" value="subtracao" id
="operac">
Subtração
<input type=radio name="operac"
value="multiplicacao" id ="operac">
Multiplicação
<input type=radio name="operac" value="divisao" id
="operac">
Divisão
<p>&nbsp; </p>
</form>
</p>
<label></label>
<?
$x = $_POST ["operac"];
$v1 = $_POST["v1"];
$v2 = $_POST["v2"];
if ($x == "soma"){
$y = $v1 + $v2;
}
if ($x == "subtracao"){
$y = $v1 - $v2;
}
if ($x == "multiplicacao"){
$y = $v1 * $v2;
}
if ($x == "divisao"){
$y = $v1 / $v2;
}
echo $y;
?>
Modelo Cliente/servidor
Modelo Par a par (peer to peer)



Modelo alternativo ao modelo cliente-servidor
Não existe a diferenciação de quem é o servidor
Os processos estão no mesmo nível
Modelo Cliente/servidor
Modelo Par a par (peer to peer)

A flexibilidade do modelo pode tornar seu entendimento
mais complexo.
Modelo Cliente/servidor
Exemplo de aplicação Par a par (peer to peer)

Algoritmo para determinação da topologia de uma rede
(echo/probe)
n1
n2
n4
n3
Modelo Cliente/servidor


Modelo Filtro
Cada processo está sempre processando uma ou mais
entradas e jogando o resultado em outro processo.
Um pipeline é um exemplo deste modelo
Download

Aula 2 - professordiovani.com.br