Programação Cliente Servidor em Linux

Características para um sistema ser considerado cliente/servidor:

  1. Uma arquitetura cliente/servidor consiste em um processo de cliente e um processo de servidor, que podem ser distinguidos um do outro, embora possam interagir totalmente.
  2. A parte cliente e a parte servidor podem operar em diferentes plataformas de computador.
  3. Tanto a plataforma do cliente como a do servidor podem ser atualizadas sem que se tenha de necessariamente atualizar a outra plataforma.
  4. O servidor pode atender a vaŕios clientes simultaneamente. O cliente pode acessar vários servidores.
  5. Ambos incluem capacidade de operar em rede.
  6. A ação normalmente é iniciada no cliente.

A chave para entender o conceito de programação cliente/servidor, é o entendimento do relacionamento lógico entre a entidade que requisita o serviço (isto é, o cliente) para a outra entidade (o servidor), que provê os serviços requisitados.

Um cliente pode manter um relacionamento com diferentes servidores, que o atendam. Um servidor pode atender múltiplos clientes.

Exemplos de cliente/servidor

Um atributo do servidor é pode atender vários clientes. Uma forma é criar servidores escravos para atender aos clientes. Neste exemplo, para cada cliente tem-se um servidor dedicado (relação de 1 para 1).

Servidor criando escravos para atender o cliente

Aspectos da Conexão

São dois os tipos de conexão utilizados em uma comunicação. Conexão orientada e conexão não orientada.

ConnectionLess

Na conexão do tipo connectionless (não orientado a conexão):

  • Cada mensagem é independente.
  • Não existe garantia de entrega (a mensagem procura o servidor).
  • Mensagens de mesma origem podem chegar ao servidor por caminhos diferentes.
  • A sequência de envio pode ser diferente da sequência de chegada.

Este tipo de comunicação também é chamada de comunicação por datagramas. O serviço postal é um exemplo na vida real para este tipo de comunicação, afinal é possível enviar uma carta sem que alguém a esteja esperado.

Relacionamento entre funções para programação UDP

Connection-Oriented

O outro tipo de comunicação é conhecido como connection-oriented (orientado a conexão):

  • O caminho entre as partes é previamente estabelecido e conhecido.
  • Existe garantia de entrega.
  • A sequência de envio e recepção é respeita.
  • A cada envio do cliente, o servidor responde confirmando o recebimento.

Este tipo de comunicação é conhecido como datastream ou somente conexão stream. O serviço de telefonia é um exemplo na vida real para este modelo. Deve haver uma pessoa do outro lado para atender a chamada telefônica.

Relacionamento entre funções para programação TCP

Funções do Linux

A programação para rede utiliza as seguintes funções:

E utiliza as seguintes estruturas:

Exemplos de Aplicação

  • Cliente e Servidor TFTP (usando UDP)
  • Cliente e Servidor de ECO (usando TCP)

Marcos Laureano 2009/02/14 11:52

rede.txt · Última modificação: 2009/02/20 05:08 por laureano
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0