Redes com Arquitetura Cliente-Servidor
Autores: Cid Rodrigues de Andrade, Marcelo Akira Yamamoto e Vicente Salgueiro Filho
Servidores são sistemas computacionais que fornecem serviços a redes de computadores. Serviço é a provisão de uma ou mais funções de interesse dos clientes. Os computadores que acessam esses serviços são considerados clientes. As redes com esta arquitetura são designadas cliente-servidor. Embora o termo servidor seja costumeiramante aplicado a computadores completos, eles tratam de softwares executados nestes computadores ou em outros sistemas computacionais. Os tipos mais conhecidos são os servidores de arquivos, conteúdo web, correio eletrônico, impressão, banco de dados, DNS, Proxy, imagens, FTP, DHCP e Diretórios.

Arquitetura Cliente-Servidor (Imagem de http://www.javaworld.com/javaworld/jw-10-2001/jw-1019-jxta.html)
Na arquitetura cliente-servidor, os servidores são entidades passivas, pois apenas respondem a requisições enviadas pelos clientes, após seu processamento específico. Os clientes são entidades ativas, que submetem suas requisições aos servidores e, geralmente, implementam a interface com o usuário final do serviço. Os serviços são encapsulados no servidor, não cabendo ao cliente conhecimento de como são processados. O comportamento da relação é assimétrico, pois cada lado tem seu próprio padrão de processamento. A localização do cliente e do servidor deve ser transparente. Deve haver independência de plataforma. As interações ocorrem por envio de mensagens. Deve ser possível escalabilidade horizontal (escalibilidade por acréscimo de computadores) e escalabilidade vertical (por melhoria dos computadores). É vantajoso o uso de soluções abertas. As vantagens são uma boa relação custo/benefício, escalabilidade e tolerância a falhas. As desvantagens são maior complexidade, dependência do meio de comunicação, menor segurança inerente. Os clientes devem estar próximos do usuário final, serem capazes de acessar diversos serviços, ter interface adequada, ser leve e flexível. O cliente mais universal da atualidade é o navegador de internet, que pode ser capaz de substituir quase todos aplicativos mais comuns. Servidores devem oferecer processamento especializado, servir clientes concorrentes, executar em sistemas operacionais robustos, suportar distintos protocolos de rede. As redes também precisam dar suporte a vários protocolos e oferecer velocidade e confiabilidade. Cabe aos analistas das aplicações decidir pelo uso de clientes “gordos” ou “magros”. O cliente gordo permite que o servidor processe menos dados, gera mais tráfego de rede e é mais sensível a mudanças. o cliente magro cobra maior processamento do servidor, gera menos tráfego e é transparente a mudanças. Dois paradigmas comuns são as arquitetura em duas camadas e a de três camadas. Esta acrescenta entre o cliente e o servidor uma camada adicional que representa a lógica das aplicações, também conhecida com camada de Regra do Negócio.
Serviços Comuns
- DNS
- (Domain Name System) é um sistema hierárquico de gerenciamento de nomes. Ele traduz nomes para endereços IP e vice-versa, permitindo a localização e identificação de hosts em determinados domínios. O principal exemplo deste tipo de servidor é o bind9
- DHCP
- (Dynamic Host Configuration Protocol) é o serviço que oferece configuração dinâmica de rede aos clientes. O principal exemplo deste tipo de servidor é o dhcpd
- LDAP
- (Lightweight Directory Access Protocol) é um dos protocolos mais comumente utilizados em serviços de diretório. Diretório é uma base de dados cuja quantidade de consultas é significativamente superior à quantidade de outras transações. Os serviços de diretório são utilizados para manter conjuntos de atributos sobre determinados valores com contas de usuário, equipamentos de rede e etc. Um exemplo deste tipo de servidor é o slapd
- Servidor de Correio Eletrônico
- é aquele que gerencia as mensagens de correio eletrônico enviadas e recebidas por determinado domínio. Eles podem administrar mensagens enviadas em todo o mundo ou dentro de uma intranet. São exemplos deste tipo de servidor os Sendmail, Postfix e Exchange Server. Podem ser auxiliados por servidores de webmail, que oferecem interfaces web para acesso às mensagens.
- Servidor de Conteúdo Web
- é responsável por aceitar pedidos feitos pelo protocolo HTTP e servi-los com respostas sobre o mesmo protocolo, geralmente enviando documentos HTML. Este tipo de servidor é costumeiramente implementado com Apache ou Internet Information Server
- Servidor de Arquivos
- é dedicado ao armazenamento e distribuição de arquivos. Pode ser utilizado para conservação de cópias de segurança de arquivos, para compartilhamento de informações ou para armazenamento remoto. Costumam ser implementados com recursos do próprio sistema operacional do equipamento que o abriga
- Servidor de impressão
- tem como propósito controlar comandos, filas e tarefas de impressão geradas por diversos equipamentos de competem entre si pelas impressoras disponíveis. Um dos exemplos deste tipo de servidor é o cupsd
- Servidores de banco de dados
- ou Sistemas Gerenciadores de Bancos de Dados (SGBD) é responsável pelo gerenciamento de um banco de dados, retirando das aplicações clientes a responsabilidade por gerenciamento de acesso, manipulação e organização destes dados. São exemplos deste tipo de servidor Oracle ou MySQL
- Proxy
- é o tipo de servidor que intercepta requisições de clientes e executa-os por intermédio de outras requisições a outros servidores. Opcionalmente eles podem alterar a requisição original, não executa-las ou disponibilizar o recurso diretamente. Servidores proxy que repassam todas as requisições que recebem, sem bloqueios ou alterações são conhecidos como gateway. Costuma-se implementar proxies para cache e controle de acesso de conexões HTTP e os exemplo mais comum é o Squid.
- Servidor de Imagens
- é um tipo especial de servidor de arquivos ou de banco de dados, especializado em armazenar imagens digitais.
- Servidor de FTP
- é um tipo especial de servidor de arquivos, geralmente utilizado para armazenar dados além dos limites de uma rede local.
Análise comparativa entre Windows e Unix.Estudo da FGV-SP em junho de 2007 indica que, no Brasil, o Windows está presente em 65% dos servidores empresariais e 31% rodava algum Unix, sendo 17% de Linux. O Netware estava presente em apenas 2% das instalações. Já o IDC indica que o Linux está presente em 64% das empresas brasileira e crescendo 30% ao ano, acima da taxa de crescimento do setor, que é em torno de 14%. Espera-se que até 2009 sejam criadas 630 mil novas vagas em TI na América Latina, sendo 210 mil no Brasil. No mercado internacional esses números apresentam-se diferentes. O IDC indicou recentemente a participação de 36% de servidores empresarias com Windows e 39% de Unix, sendo 24% de Linux; o Netware resistia em 19% destes servidores. Por alguns anos o Linux cresceu vertiginosamente, especialmente sobre a fatia do Unix, mas essa curva de crescimento estabilizou-se, indicando ter atingido um patamar além do qual o Unix não deve ser prejudicado. Já entre os 500 maiores computadores do planeta a competição é ainda mais distinta. De Junho a Outubro de 2007 a participação do Linux nos grandes computadores cresceu de 78% para 85%, o Unix caiu de 13% para 6% e o Windows triplicou sua participação, ultrapassando a barreira de 1%.
Apesar dos esforços da Microsoft, o Windows ainda é visto com certas reservas para aplicações com uso intensivo ou para missões críticas. Kirch destaca o fato que a própria Microsoft mantém seu serviço de correio eletrônico, Hotmail, operando em Unix, após tentativas frustadas de migrá-lo para soluções da própria empresa.
mantem a mesma linha
[...] Redes Cliente-Servidor [...]