client-server

termo

redesprogramação

Arquitetura em que clientes solicitantes falam com um servidor designado que detém o recurso e responde.

A assimetria é o projeto inteiro: o servidor está sempre escutando, é endereçável e administrado, e o cliente inicia. Essa centralização é o que torna controle de acesso, backup e auditoria tratáveis, e é por isso que quase todo protocolo corporativo, HTTP, LDAP, SMTP, SQL, funciona assim. O custo é que o servidor é ao mesmo tempo o gargalo e o alvo.

O modelo cliente-servidor divide uma aplicação entre quem pede e quem fornece, com o servidor detendo o estado compartilhado e impondo as regras. É o modelo dominante porque centralizar a autoridade torna tratáveis a consistência, o controle de acesso e a auditoria.

Suas propriedades decorrem dessa centralização. O servidor é ponto único de falha e ponto único de confiança, escalar significa torná-lo maior ou fazer muitos deles concordarem, e todo cliente depende de sua disponibilidade. A alternativa empurra trabalho e confiança para as bordas e ganha resiliência ao custo de consistência, e é por isso que quase todo sistema real é híbrido: distribuição ponto a ponto dos dados volumosos, cliente-servidor para as decisões sobre eles.

Também conhecido como: client/server, client server model

Todos os verbetes do glossário