Redes de Computadores 2 - Tutorial
Comunicação
A comunicação entre o cliente e o servidor é do estilo transacional e cooperativo. A natureza transacional significa que o servidor envia de volta para o cliente somente os dados relevantes. A natureza cooperativa significa que ocorre um processamento significativo nos dois extremos, clientes e servidor.
As primeiras aplicações em rede foram elaboradas utilizando a tecnologia de compartilhamento de arquivos. Por exemplo, quando um usuário iniciava uma aplicação , o código executável da aplicação tinha que ser transmitido. Numa aplicação de banco de dados era transmitido todo o código executável do banco de dados e a cada atualização todo o banco de dados também tinha que ser transmitido, além disso os arquivos de índice também eram necessários para atualização. Quando trocada por uma aplicação cliente/servidor o executável do banco de dados permaceu no servidor, junto com ele todos os arquivos de índices de bancos de dados, trafegando pela rede apenas os dados do pedido de gravação do cliente.
Agora vamos considerar uma aplicação baseada em host e acessada por uma rede com software de emulação de terminal. Assim, todos os toques de teclas e a maior parte das instruções de controle de tela são transmitidas através da rede. A rede transporta todo os dados informados pelo usuário, como a escolha de um menu. Se um usuário pedir ajuda, trafegam pela rede todas as mensagens de ajuda, a responsabilidade pelo controle da tela é do host.
No caso de um sistema cliente/servidor, por exemplo, uma companhia aérea utilizando um sistema de reservas de passagens, onde temos um banco de dados compartilhado com os dados dos vôos, dados dos passageiros, tripulação, etc. O software cliente passa para o servidor somente os dados da operação como reserva, nome do passageiro, vôo, data, todos eles já validados. O servidor recebendo estes dados, processa e armazena no banco de dados e envia o resultado de volta.
Neste caso, o cliente é responsável pelo controle da tela e nenhuma informação deste tipo trafega pela rede.
A diferença é especialmente notada em aplicações baseadas em registros, onde a incidência de informações é muito alta.
Com estes exemplos podemos ver como o sistema cliente/servidor diminui o tráfego na rede em relação as arquiteturas anteriores. Logicamente com isto não podemos dizer que uma aplicação cliente/servidor não gera tráfego de rede, mas o impacto de uma aplicação cliente/servidor bem elaborada é mínimo.
Uma característica dos sistemas cliente/servidor é a utilização de plataformas de hardware e softwares diferentes de um para outro. Dentro deste mix de recursos as aplicações devem se comunicar de forma transparente. Aí entra o chamado middleware, que é todo o software existente entre os dois processos, para que eles se comuniquem. O núcleo do middleware é o sistema operacional da rede. Além do sistema operacional é importante também o protocolo que rege a forma pela qual os clientes solicitam informações e serviços ao servidor, como o NetBIOS, o RPC e o SPX.