Sistemas distribudos Modelo Clienteservidor Prof Diovani Milhorim Modelo
Sistemas distribuídos Modelo Cliente/servidor Prof: Diovani Milhorim
Modelo cliente/servidor Modelos de organização de sistemas distribuídos Cliente-servidor n Pares (peer to peer) n Filtros n
Modelo cliente/servidor Paradigma cliente-servidor Aplicações que esperam por iniciam a comunicação Servidores. n n Clientes. Servidores : Oferecem serviços aos usuários. Clientes : Solicitam serviços aos servidores.
Modelo cliente/servidor Paradigma cliente-servidor
Modelo Cliente/servidor n n n 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 pedido resposta servidor cliente
Modelo Cliente/servidor n Modelo cliente/servidor – Processos em uma mesma unidade de processamento. Processo cliente Servidor página Servidor arquivos . . mensagem Kernel Servidor impressão
Modelo Cliente/servidor n 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 rede mensagens
Modelo Cliente/servidor Modelo cliente/servidor – Adaptabilidade a sistemas distribuídos n n 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 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: n Usando primitivas de comunicação: ¨ n TCP/IP (udp, tcp) Sistemas de midleware para evocações de operações remotas: 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. ¨ n 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: n 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/redes 2/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="v 1" type="text" id="v 1"> </p> </div> <p align="center"> <input name="v 2" type="text" id="v 2"> </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> </p> </form> </p> <label></label> <? $x = $_POST ["operac"]; $v 1 = $_POST["v 1"]; $v 2 = $_POST["v 2"]; if ($x == "soma"){ $y = $v 1 + $v 2; } if ($x == "subtracao"){ $y = $v 1 - $v 2; } if ($x == "multiplicacao"){ $y = $v 1 * $v 2; } if ($x == "divisao"){ $y = $v 1 / $v 2; } echo $y; ? >
Modelo Cliente/servidor Modelo Par a par (peer to peer) n n n 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) n A flexibilidade do modelo pode tornar seu entendimento mais complexo.
Modelo Cliente/servidor Exemplo de aplicação Par a par (peer to peer) n Algoritmo para determinação da topologia de uma rede (echo/probe) n 1 n 2 n 4 n 3
Modelo Cliente/servidor Modelo Filtro n n Cada processo está sempre processando uma ou mais entradas e jogando o resultado em outro processo. Um pipeline é um exemplo deste modelo
- Slides: 22