Cliente-servidor

Em Informática, cliente-servidor é um modelo de arquitetura de software que consiste em duas partes, sistemas cliente e sistemas servidor, ambos comunicando-se através de uma rede de computadores ou no mesmo computador. Uma aplicação cliente-servidor é um sistema distribuído composto tanto de software cliente quanto de servidor. O processo cliente-servidor sempre inicia uma conexão com o servidor, enquanto o processo servidor sempre espera por solicitações de qualquer cliente.

Quando tanto o processo cliente quanto o processo servidor estão sendo executados no mesmo computador, isto é chamado de configuração de um único assento.

Outro tipo de arquitetura de software relacionado é conhecido como peer-to-peer, porque cada host ou instância de aplicação pode agir simultaneamente como cliente e servidor (ao contrário dos servidores centralizados do modelo cliente-servidor) e porque cada um tem responsabilidades e status equivalentes. As arquiteturas peer-to-peer são freqüentemente abreviadas usando a sigla P2P.

O relacionamento cliente-servidor descreve a relação entre o cliente e como ele faz uma solicitação de serviço ao servidor, e como o servidor pode aceitar essas solicitações, processá-las e devolver as informações solicitadas ao cliente. A interação entre cliente e servidor é freqüentemente descrita usando diagramas de seqüência. Os diagramas de seqüências são padronizados na linguagem Unified Modeling.

Tanto as arquiteturas cliente-servidor como P2P estão em ampla utilização hoje.

O tipo básico de arquitetura de software cliente-servidor emprega apenas dois tipos de hosts: clientes e servidores. Este tipo de arquitetura é às vezes referido como dois níveis. A arquitetura em duas camadas significa que o cliente atua como uma camada e o processo servidor atua como a outra camada.

A arquitetura de software cliente-servidor se tornou um dos modelos básicos da computação em rede. Muitos tipos de aplicações foram escritas usando o modelo cliente-servidor. Funções padrão de rede como troca de e-mail, acesso web e acesso a banco de dados, são baseadas no modelo cliente-servidor. Por exemplo, um navegador web é um programa cliente no computador do usuário que pode acessar informações em qualquer servidor web do mundo.

Uma rede baseada em um servidor.Zoom
Uma rede baseada em um servidor.

Uma rede baseada em peer-to-peer.Zoom
Uma rede baseada em peer-to-peer.

Características dos clientes

  • Sempre inicia os pedidos aos servidores.
  • Espera por respostas.
  • Recebe respostas.
  • Normalmente se conecta a um pequeno número de servidores de uma só vez.
  • Normalmente interage diretamente com os usuários finais usando qualquer interface de usuário, como a interface gráfica de usuário.

Características do servidor

  • Aguarde sempre um pedido de um dos clientes.
  • Atende os pedidos dos clientes e, em seguida, responde aos clientes com os dados solicitados.
  • Um servidor pode se comunicar com outros servidores a fim de atender a uma solicitação do cliente.
  • Se informações adicionais forem necessárias para processar uma solicitação (ou se a segurança for implementada), um servidor pode solicitar dados adicionais (senhas) de um cliente antes de processar uma solicitação.
  • Os usuários finais normalmente não interagem diretamente com um servidor, mas utilizam um cliente.

Vantagens

  • Na maioria dos casos, uma arquitetura cliente-servidor permite que o agravamento das funções e responsabilidades de um sistema de computação seja distribuído entre vários computadores independentes que são conhecidos uns dos outros apenas através de uma rede, portanto, uma das vantagens deste modelo é a maior facilidade de manutenção. Por exemplo, é possível substituir, reparar, atualizar ou até mesmo realocar um servidor enquanto seus clientes permanecem inconscientes e não afetados por essa mudança. Esta independência da mudança também é chamada de encapsulamento.
  • Todos os dados são armazenados nos servidores, que geralmente têm melhores controles de segurança do que a maioria dos clientes. Os servidores podem controlar melhor o acesso e os recursos, para garantir que somente os clientes com as permissões apropriadas possam acessar e alterar os dados.
  • Uma vez que o armazenamento de dados é centralizado, as atualizações desses dados são muito mais fáceis para os administradores do que o que seria possível sob uma arquitetura P2P. Sob uma arquitetura P2P, as atualizações de dados podem precisar ser distribuídas e aplicadas a cada "par" da rede, o que é demorado e sujeito a erros, pois pode haver milhares ou mesmo milhões de pares.
  • Muitas tecnologias avançadas cliente-servidor já estão disponíveis e foram projetadas para garantir segurança, interfaces amigáveis e facilidade de uso.
  • Trabalha com vários clientes diferentes de especificações diferentes.

Desvantagens

  • O bloqueio de tráfego na rede é um dos problemas relacionados ao modelo cliente-servidor. Como o número de solicitações simultâneas de clientes a um determinado servidor aumenta, o servidor pode ficar sobrecarregado. Contraste com uma rede P2P, onde sua largura de banda realmente aumenta à medida que mais nós são adicionados, já que a largura de banda total da rede P2P pode ser calculada aproximadamente como a soma das larguras de banda de cada nó daquela rede.
  • Comparando o modelo cliente-servidor com o modelo Par a Par, se um servidor falhar, as solicitações dos clientes não podem ser atendidas, mas no caso de redes P2P, os servidores são geralmente distribuídos entre muitos nós. Mesmo se um ou mais nós falharem, por exemplo, se um nó falhar no download de um arquivo, os nós restantes devem ainda ter os dados necessários para completar o download.

Exemplos

Perguntas e Respostas

P: O que é arquitetura de software cliente-servidor?


R: A arquitetura do software cliente-servidor é um modelo que consiste em duas partes, sistemas cliente e sistemas servidor, ambos se comunicando através de uma rede de computadores ou no mesmo computador.

P: Como funciona uma aplicação cliente-servidor?


R: Uma aplicação cliente-servidor é um sistema distribuído composto tanto de software cliente quanto de software servidor. O processo cliente-servidor sempre inicia uma conexão com o servidor, enquanto o processo servidor sempre espera por solicitações de qualquer cliente.

P: O que acontece quando tanto o processo cliente como o processo servidor estão sendo executados no mesmo computador?


R: Quando tanto o processo do cliente como o processo do servidor estão rodando no mesmo computador, isso é chamado de configuração de um único assento.

P: Que benefícios o uso de uma Aplicação de Servidor de Cliente proporciona?


R: O uso de um Pedido de Servidor de Cliente proporciona uma maneira melhor de compartilhar cargas de trabalho entre vários computadores ou usuários.

P: Quem inicia conexões em Aplicações de Servidor de Cliente?


R: O Processo do Cliente sempre inicia conexões em Aplicações do Client Server.


P: Quem espera por solicitações nas Aplicações do Servidor do Cliente?


R: O Processo Servidor sempre espera por solicitações nas Aplicações do Servidor do Cliente.

P: Como vários computadores ou usuários podem compartilhar cargas de trabalho uns com os outros?


R: Vários computadores ou usuários podem compartilhar cargas de trabalho usando um sistema distribuído tal como uma Aplicação do Servidor do Cliente.

AlegsaOnline.com - 2020 / 2023 - License CC3