DCN - Modelo Cliente Servidor

Dois processos de aplicativos remotos podem se comunicar principalmente de duas formas diferentes:

  • Peer-to-peer: Ambos os processos remotos estão executando no mesmo nível e trocam dados usando algum recurso compartilhado.

  • Client-Server: Um processo remoto atua como Cliente e solicita algum recurso de outro processo de aplicativo que atua como Servidor.

No modelo cliente-servidor, qualquer processo pode atuar como Servidor ou Cliente. Não é o tipo de máquina, tamanho da máquina ou seu poder de computação que a torna um servidor; é a capacidade de atender a solicitação que torna uma máquina um servidor.

Um sistema pode atuar como Servidor e Cliente simultaneamente. Ou seja, um processo está atuando como Servidor e outro como cliente. Isso também pode acontecer que os processos do cliente e do servidor residam na mesma máquina.

Comunicação

Dois processos no modelo cliente-servidor podem interagir de várias maneiras:

  • Sockets

  • Chamadas de procedimento remoto (RPC)

tomadas

Nesse paradigma, o processo que atua como Servidor abre um soquete usando uma porta bem conhecida (ou conhecida pelo cliente) e espera até que chegue algum pedido do cliente. O segundo processo atuando como um cliente também abre um soquete, mas em vez de esperar por uma solicitação de entrada, o cliente processa as 'solicitações primeiro'.

Quando a solicitação é alcançada para o servidor, ela é atendida. Pode ser um compartilhamento de informações ou solicitação de recursos.

Chamada de procedimento remoto

Este é um mecanismo onde um processo interage com outro por meio de chamadas de procedimento. Um processo (cliente) chama o procedimento localizado no host remoto. O processo no host remoto é chamado de Servidor. Ambos os processos são stubs alocados. Essa comunicação acontece da seguinte forma:

  • O processo do cliente chama o stub do cliente. Ele passa todos os parâmetros relativos ao programa local para ele.

  • Todos os parâmetros são então empacotados (empacotados) e uma chamada de sistema é feita para enviá-los para o outro lado da rede.

  • O kernel envia os dados pela rede e a outra extremidade os recebe.

  • O host remoto passa dados para o stub do servidor, onde são desempacotados.

  • Os parâmetros são passados ​​para o procedimento e o procedimento é executado.

  • O resultado é enviado de volta ao cliente da mesma maneira.