Programas feitos para o ambiente Cliente-Servidor

No último post eu comentei sobre um dos programas do cartório onde trabalho, dizendo que ele funcionava no esquema cliente-servidor. Não que eu estivesse falando besteira, mas faltou falar um detalhe importante: ele não é, genuinamente, feito para rodar em um ambiente cliente-servidor.

Para entender melhor, vamos usar uma metáfora. E para representar um ambiente cliente-servidor, nada melhor do que um restaurante.

Em um restaurante você é o usuário, o garçom é o computador cliente e a cozinha é o computador servidor. Quando você pede uma lasanha, você faz o pedido ao garçom, mas não é o ele que coloca a mão na massa (com trocadilho, por favor). Ele apenas repassa o seu pedido para a cozinha. E quando a lasanha está pronta, a cozinha fala para ele: "aí, ô do salão, a lasanha tá no esquema". Daí o garçom prontamente leva o prato à sua mesa, finalmente atendendo ao seu pedido.

Trocando em miúdos, você lida com quem não faz o trabalho pesado, o garçom apenas repassa o trabalho para quem realmente tem competência.

A mesma coisa acontece nas redes: quando você está usando um computador cliente e pede uma informação qualquer, ele repassa o seu pedido para o computador servidor. É o servidor que vai mergulhar no banco de dados e fuçar tudo até achar a informação que você pediu, para então repassar ao cliente os dados que encontrar. São dois programas separados: um no cliente, que é você quem usa, e um no servidor, que atende às solicitações do cliente. Você não lida diretamente com o servidor, assim como, no restaurante, você não pede o prato ao cozinheiro.

Agora é sua vez de perguntar: e o que o programa do cartório tem a ver com isso?

No caso dele, não temos dois programas diferentes. Todos os computadores têm o mesmo programa instalado, e o servidor serve apenas para guardar os dados. Quando estamos usando um dos clientes e incluímos uma nova informação para ser gravada, é o próprio cliente que acessa o banco de dados do servidor e coloca lá a informação. Para ser um programa realmente feito para o ambiente cliente-servidor, ele deveria ser, na verdade, dois programas.

Ou seja: usando novamente a metáfora do restaurante, lá no cartório é como se o garçom cozinhasse.

O Modelo Cliente-Servidor

Quando uma empresa resolve ligar os seus computadores entre si, colocando-os em rede, uma das formas mais comuns de organizar estas ligações é usando o modelo cliente-servidor, que serve tanto para uma farmácia do interior que tenha dois computadores quanto para uma mega-empresa que tenha máquinas espalhadas por vários países. Mas o quem vem a ser isso?

Este modelo é uma forma de organização que dá a um único computador as maiores responsabilidades da rede e faz com que todos os outros acessem os serviços que ele oferece.

Daí é que saem as palavras cliente e servidor que estão no nome do modelo: o servidor é o computador central, aquele que serve aos outros; e os outros são os clientes, os que usam os serviços oferecidos pelo servidor.

Neste momento já deve ter ficado claro para a leitora que o servidor deve ser um computador potente, afinal de contas é nele que ficam armazenados os dados usados pelos sistemas da rede; é ele que fica responsável por filtrar os dados que vêm da internet para serem repassados para os outros computadores, proporcionando segurança contra ataques externos; é ele, enfim, que tem que trabalhar pesado. E pra isso tem que ser um computador robusto.

Quanto aos clientes, estes não precisam ser computadores potentes, principalmente se eles servirão apenas para rodar programas simples: editores de texto, planilhas, navegador de internet e aplicativos da empresa.

Para mostrar o quanto é valioso este modelo, vou dar como exemplo uma implementação dele feita pela metade: a rede do cartório onde trabalho. Lá temos quatro computadores, com um deles servindo, para algumas tarefas, de servidor. Por isso ele tem que ser ligado primeiro e desligado por último. Tudo está interligado com alguns cabos azuis que não sei o nome e um caixinha cheia de luzes que - acho - se chama roteador.

O programa de índice de escrituras e registro de imóveis e o programa de protesto funcionam em rede, aplicando à risca o modelo: todos os computadores têm um programa cliente instalado e funcionam bem a maior parte do tempo, só que os dados estão armazenados no servidor. Isto explica a necessidade de o servidor ser ligado primeiro: se ele estiver desligado, os clientes não encontram os dados.

Os sistemas de DOI e Livro Adicional podem até funcionar em rede, mas ainda não estão configurados para isso porque não há tanta necessidade assim. Por isso estão cada um instalado em um único computador. Quanto ao editor de textos, todos têm o seu Word e os arquivos estão espalhados pelos computadores. Este espalhamento dos arquivos, apesar de não ser tão organizado quanto minha avó gostaria, não chega a atrapalhar nosso serviço. Além disso, cada um dos quatro computadores tem algumas pastas que são compartilhadas, ou seja, ficam disponíveis para que os outros computadores possam acessá-las.

Outros dois pontos que seguem o modelo cliente-servidor são a impressora laser, que está ligada ao servidor e pode ser usada a partir de qualquer um dos outros computadores, e o uso da internet, que passa, também, pelo servidor. Estes dois pontos são mais dois motivos para que o servidor seja o primeiro a ser posto para funcionar: sem ele, não temos internet nem impressora laser.

O último dos programas que usamos no cartório é o índice de PJ e TD, que não funciona em rede, quando seria ótimo se funcionasse. Seria ótimo porque ele está instalado em um único computador, e este computador costuma ser muito concorrido. Daí que quando temos que usá-lo, precisamos esperar o computador ficar vago. A solução pra isso é refazer o programa, mas o cara que fez o dito cujo não sabe trabalhar com rede. Preciso falar quem é o programador?

Por fim, uma coisa que atrapalha nosso rendimento na hora de usar a rede é que o servidor é o pior computador do cartório: o mais velho, com menos espaço de armazenamento, com menos memória. Um verdadeiro gargalo.

Aí está, então, uma breve apresentação do modelo cliente-servidor e uma amostra de como a organização da rede baseada no mesmo pode ajudar o trabalho e como a sua falta pode atrapalhar.

Por Que Estudar Redes?

Talvez ninguém tenha perguntado isso antes porque parece óbvio, mas como bem dizia a minha saudosa professora Bené, NADA É ÓBVIO, e por isso vou responder à pergunta que não foi feita.

A decisão de estudar redes de computadores não vem apenas de eu não ter ido muito bem neste assunto nos concursos que fiz ou por eu não ter ido bem nas cadeiras de rede na faculdade. Assim como o motivo não é só eu ter que adaptar um programa que fiz para o cartório de modo que ele passe a funcionar em rede. Não é só isso.

Se você, querida leitora, ainda não conseguiu enxergar o que vem por aí nos próximos cinco anos, preste atenção que é fácil: os programas que hoje em dia a gente instala no computador para poder usar vão perder importância, pois estão começando a surgir aplicativos que rodam diretamente na internet.

O email é o primeiro exemplo. Antes tínhamos o Outlook Express e seus similares. Hoje a maioria das pessoas lê o email sem baixá-los, usando webmail: Gmail, Yahoo! Mail, Hotmail, e todos os outros que há por aí. Claro que ainda tem gente que ainda usa um programa instalado para fazer isso, mas aposto que o número cai cada vez mais.

Outros exemplos é o que há de mais fácil: hoje temos, online, sem necessidade de baixar nada, editores de texto, planilhas, conversores de arquivos, leitores de feeds (veja aqui o que é um feed), manipuladores de imagens, programas de bate-papo, antivírus e muito, muito mais. Basta procurar.

Tudo isso facilitado pela tal da banda larga. Antes, quando a gente se conectava à internet usando linhas telefônicas discadas, o custo da conexão era alto e exigia sermos rápidos: conecta, pega o que quer, desconecta. Hoje, com a banda larga, estamos sempre online e por isso não precisamos copiar para o nosso computador as coisas que estão na internet. Fazendo assim nossas coisas estão à nossa disposição, onde quer que estejamos.

Entendeu onde quero chegar, minha amiga? Já dizia meu chapa Raul: "Mário, Mário, deixa o computador e vem pra internet...". Ou seja, o futuro não está nos programas feitos para funcionar em um computador só, mas nos que vão funcionar em rede. Taí um dos principais motivos para estudar rede.

Outro motivo fácil de entender os meus estudos é que, como agora, com a ajuda da banda larga, estamos sempre conectados, aumenta a necessidade de proteção dos nossos computadores. E essa proteção tem que funcionar em rede e ser pensada em termos de rede. Não é questão apenas de ter um antivírus instalado e tomar cuidado para não colocar nenhum disquete infectado ou acessar site duvidoso. Neste quesito o buraco é mais embaixo. E haja estudo.

Por fim, um outro grande motivo é a explosão das redes sem fio. Aeroportos, empresas e até cidades estão disponibilizando meios para que qualquer um simplesmente ligue o notebook e já esteja online. Este é um mercado promissor, seja em termos de aplicativos, instalação ou, novamente, segurança.

Resumindo: eu estudo redes de computadores porque preciso disso para trabalhar, porque o mercado dá dinheiro, porque o futuro é conectado, porque acho minha formação fraca, e, claro, porque quero passar nos concursos que faço.

E você, leitora? Por que estuda redes?

Curiosidade Divertida

Antes de começarmos a pôr a mão na massa, não posso deixar de citar uma frase que está na introdução do livro. Diz o Tanenbaum:

"Agradecimentos especiais a Trudy Levine, por provar que as avós são capazes de fazer um excelente trabalho de revisão de material técnico.".

Eu não tinha lido isso quando batizei o blog, e não posso deixar de perguntar: alguém aí ainda quer discutir o nome dele?!

Gênese

Desde que comecei a lidar e trabalhar com informática, na distante década de 90, sempre tive meus problemas com as redes de computadores. Na faculdade, passei pelas duas cadeiras de rede aos trancos e barrancos, e hoje já esqueci quase tudo do pouco que aprendi.

Recentemente, ao fazer dois concursos, vi o quanto posso me estrepar por não saber lidar com este assunto que para muitos parece ser tão simples.

Resolvido a mudar situação do jogo e vencer a partida, pesquisei um pouco sobre quais livros poderiam ser úteis no aprendizado e decidi comprar o tijolo chamado simplesmente Redes de Computadores, de Andrew S. Tanembaum, que com suas 900 páginas promete ser o livro definitivo de redes para o cara que quer aprender.

Não satisfeito com a compra do livro, resolvi iniciar este blog para colocar por escrito meu aprendizado, minhas dúvidas e tudo o mais que surgir durante a leitura. Ele vai trabalhar como um canal de diálogo com quem gosta do assunto e repositório das minhas dúvidas e suas respetivas respostas, além de servir de laboratório para meus projetos futuros.

Aí minhas leitoras podem perguntar: e que raio de nome é esse?!

Simples: vou tentar escrever de uma maneira que até minha avó pudesse entender de redes. Claro que uma hora ou outra vou ter que escrever um ou outro palavrão técnico, mas minha avó perdoa e se esforça.

Não prometo falar sempre a coisa certa, afinal estou aqui pra aprender e não para ensinar, tampouco sei se vai dar certo e se vai durar. Se alguém vir alguma coisa errada, que aponte o erro para que eu possa corrigi-lo. Eu e vovó agradecemos!