Em toda comunicação pela rede, um lado faz o pedido e o outro o atende. Saber qual lado inicia a comunicação e qual fica à espera indica onde procurar cada configuração quando a comunicação falha.
A palavra servidor tem dois sentidos. No primeiro, servidor designa o computador dedicado a atender os demais, como o servidor da filial. No segundo, servidor designa um papel em uma comunicação, e é esse sentido que explica como os programas se comunicam pela rede.
Um programa em execução em um computador é chamado de processo. Em uma comunicação, cada processo desempenha um de dois papéis:
- Servidor: o processo que aguarda pedidos e os atende. Diz-se que o servidor escuta em um endereço e em uma porta lógica, o número que identifica esse programa dentro do computador.
- Cliente: o processo que inicia o pedido. O cliente precisa saber para onde enviar o pedido, isto é, o endereço do computador e a porta do serviço. Essas informações, em geral, vêm da configuração do programa.
Na empresa utilizada nos exemplos, os dois papéis aparecem da seguinte forma:
- o sistema da filial, no caixa, é cliente do serviço de banco de dados oferecido pelo SGBD no servidor da filial, que escuta na porta 3306;
- o servidor da filial é cliente do serviço de sincronização do servidor da matriz, que escuta na porta 9000;
- o navegador da estação administrativo, o computador usado no escritório da matriz, é cliente do servidor de um site na Internet, que escuta na porta 443.
Um servidor, vários clientes
Um mesmo servidor atende vários clientes ao mesmo tempo. O SGBD no servidor da filial recebe simultaneamente os pedidos do caixa e do balcão, e cada estação mantém a sua própria conexão com o serviço de banco de dados. O servidor não precisa saber com antecedência quem vai se conectar: ele apenas aguarda, e cada cliente estabelece a sua conexão por iniciativa própria.
Essa relação ajuda a localizar falhas. Quando o servidor deixa de funcionar, todas as estações perdem o acesso ao mesmo tempo. Quando o problema está em um cliente, em geral apenas o computador desse cliente é afetado.
Três consequências práticas
- Servidor é um papel, não um tipo de computador. O servidor da filial é servidor para as estações, que utilizam o seu banco de dados, e é cliente da matriz quando sincroniza os dados. Um computador comum passa a ser servidor quando compartilha uma pasta. O arranjo também varia de uma instalação para outra. Em uma loja única, o mesmo computador pode armazenar o banco de dados e funcionar como caixa. Em redes maiores, o banco de dados e os programas ficam em servidores separados.
- As configurações dos dois lados são independentes. No servidor, configura-se o endereço e a porta em que ele escuta. No cliente, configura-se o destino ao qual ele se conecta. Um dos lados pode estar correto e o outro, errado.
- Quem inicia a conexão define o que precisa ser liberado. Se o cliente está na filial e o serviço está na matriz, é a matriz que precisa aceitar conexões vindas de fora. A filial precisa apenas conseguir acessar a Internet. A loja de onde veio a reclamação não é, necessariamente, o local da falha.
No suporte
A abrangência da falha indica o lado a investigar. Quando todas as estações falham ao mesmo tempo, a suspeita recai sobre o servidor ou sobre o caminho até ele. Quando apenas uma estação falha, a suspeita recai sobre essa estação e sobre a configuração do cliente. Entre a filial e a matriz vale o mesmo raciocínio: o destino, a porta e o serviço que escuta ficam do lado da matriz, enquanto a configuração do destino fica do lado da filial.
Para guardar
- O cliente inicia o pedido, e o servidor aguarda e atende.
- O papel pertence a cada comunicação, e não ao tipo de computador.
- Um servidor atende vários clientes, cada um com a sua própria conexão.
- No servidor, configura-se onde ele escuta. No cliente, configura-se para onde ele se conecta.
- Quem recebe a conexão é quem precisa aceitá-la.
A filial não consegue se comunicar com a matriz. Em qual lado deve estar a configuração que aceita a conexão?
Na matriz, que recebe a conexão. A filial, que inicia a comunicação, precisa apenas conseguir acessar a Internet e estar configurada com o destino correto.
O servidor da filial atua como cliente ou como servidor?
Depende da comunicação. Para as estações, que utilizam o seu banco de dados, o servidor da filial é servidor. Quando se conecta ao serviço de sincronização da matriz, o servidor da filial é cliente.