# Thin client

Um thin client ("cliente magro" ou "cliente fino") é um computador cliente em uma rede de modelo cliente-servidor de duas camadas o qual tem poucos ou nenhum aplicativo instalados, de modo que depende primariamente de um servidor central para o processamento de atividades. A palavra "thin" se refere a uma pequena imagem de boot que tais clientes tipicamente requerem - talvez não mais do que o necessário para fazer a conexão com a rede e iniciar um navegador web dedicado ou uma conexão de "Área de Trabalho Remota" tais como X11, Citrix ICA ou Microsoft RDP.
Em contraste, um thick (ou fat) client executa tanto processamento quanto possível e passa ao servidor somente dados necessários para comunicação e armazenamento de arquivos.

## Introdução

Ao se projetar um aplicativo cliente-servidor, há uma decisão a ser tomada sobre quais partes da tarefa devem ser executadas no cliente e quais o seriam no servidor. Esta decisão pode afetar de modo crucial o custo de clientes e servidores, a robustez e a segurança do aplicativo como um todo e a flexibilidade do projeto para uma modificação ou porte posterior para outra plataforma.
Uma questão de projeto é o quão específico o programa aplicativo do cliente deverá ser. Usar programas de clientes padronizados tais como um navegador Web ou um gerenciador de janelas X11, pode economizar custos de desenvolvimento, visto que não se precisa desenvolver um cliente customizado—mas, devem-se aceitar as limitações do cliente padrão.
Dependendo do resultado destas decisões, poderemos dizer se vamos usar um thin client, um thick ou fat client ou uma mistura de ambos.

## Definições

Um thin client é um computador de rede diskless, projetado para ser pequeno e de custo reduzido. Ele executa aplicativos cliente/servidor, onde o processamento em massa dos dados ocorre no servidor.

### Programa aplicativo

Um "thin client" como um programa aplicativo, conta com um servidor de aplicativos para as tarefas mais relevantes de sua lógica interna, tendo um mínimo de hardware e software presentes na máquina cliente. Este servidor de aplicativos é um sistema executado num servidor localizado na rede local (LAN), numa rede de área metropolitana (MAN) ou numa rede de comunicação expandida (WAN).
Outras definições do programa aplicativo thin em contraste com o thick tentam definir se a distribuição do aplicativo necessita – ou não – da instalação de software adicional na máquina cliente. Infelizmente, isto também é motivo de controvérsia, dado que, por exemplo, um navegador web utilizado por um aplicativo cliente pode ser parte de uma determinada plataforma, mas não de outra. Desta forma, em uma dada plataforma seria preciso a instalação de software adicional, enquanto em outra, isto não seria necessário. A única definição objetiva poderia ser se a imagem de boot que é usada normalmente para inicializar o computador do usuário precisa ser modificada de alguma forma antes do cliente poder ser usado: se não, o cliente é, provavelmente, thin. Outro critério está relacionado com o gerenciamento da máquina ou do programa cliente. Se for feito de modo centralizado, ele é, muito provavelmente, thin.
Todavia, nos dias de hoje, uma grande quantidade de programas são incluídos tipicamente numa imagem de boot básica, especificamente para dar suporte a vários aplicativos de usuários, de modo que não seja necessário reinstalá-la em cada computador. Freqüentemente, uma imagem de boot departamental é preparada para incluir aplicativos específicos de um departamento.

### Dispositivo de interface do usuário

Um thin client como dispositivo é projetado para fornecer apenas aquelas funções que são úteis para programas de interface de usuário. Freqüentemente, tais dispositivos não incluem HDs, os quais podem ser corrompidos pela instalação de software malicioso ou incompatível; em vez disso, em nome de baixos custos de manutenção e do incremento do tempo médio entre falhas (MTBF), o dispositivo thin client usará armazenamento em memória de somente leitura, tais como um CD-ROM, disco virtual de rede (Network Virtual Drive) ou memória flash.
Idealmente, o usuário precisaria apenas de uma tela, teclado, um dispositivo apontador (se necessário) e capacidade de processamento suficiente para lidar com a exibição de imagens e as comunicações. Empresas tais como a brasileira Tecnoworld, Chip PC, Sun Microsystems, BOSaNOVA, InovTI, Thinnetworks e Hewlett-Packard desenvolvem e comercializam este tipo de dispositivo.

### Dispositivo para a execução de programas aplicativos thin client

A expressão "thin client" tem sido também utilizado como um termo de marketing para categorizar máquinas projetadas para executar programas thin client. O Xtreme PC e o Jack PC da Chip PC, os terminais X Windows, Wyse Winterm, Neoware Appliance, Clearcube ou quiosques Web podem ser considerados thin clients neste sentido.
O conceito mais recente neste gênero é a tecnologia Ultra Thin Client – a qual leva o conceito thin um passo além ao executar o programa de conexão cliente (Citrix ICA, Microsoft Terminal Services, telnet etc) diretamente do hardware do aplicativo. Esta é uma diferença marcante da arquitetura de hardware thin client legada, a qual executa um sistema operativo, freqüentemente Windows CE ou Linux entre o hardware e o programa de conexão cliente. Existem muitos benefícios na não exigência de um sistema operativo, tais como baixo custo, alta performance evulnerabilidade ao ataque de vírus.

### Programas thin client

A maioria dos thin clients, todavia, existem somente em nível de software, e executam em hardware IBM PC padrão. Exemplos deste thin client somente de software são o PXES Universal Linux Thin Client e o Pilotlinux; o Knoppix e a O.S. Systems também estão perseguindo este mercado. Há também uma empresa portuguesa que desenvolve software similar, o MindTheBox, o qual pode ser visto neste sítio. (Ver também Puppy Linux). Um exemplo em plataforma Windows é o programa BeTwin, o qual usa portas ou placas gráficas VGA/DVI extras na máquina servidora, conectadas a teclados e mouses USB para viabilizar estações de trabalho adicionais. Também para plataforma Windows a Microsoft disponibiliza o Windows XPE e o Windows CE.

## Exemplos do uso de thin client e thick client

Os defensores de ambas as arquiteturas têm um relacionamento conflituoso. Na prática, na maioria dos casos não há muito o que escolher entre uma ou outra abordagem; umas poucas situações podem exigir claramente uma ou outra arquitetura. Projetos de computação distribuída tais como o SETI@Home (cujo ponto principal é disseminar análise computacionalmente intensiva por um grande conjunto de computadores remotos) são aplicativos que requerem thick clients. Por outro lado, distribuição de material de entretenimento ou educacional para uma grande quantidade de clientes pode ser feito de forma mais adequada com thin clients visto que exatamente o mesmo material é apresentado para cada um dos participantes.

## Vantagens dos thin clients

Obviamente, o controle da imagem de boot é muito simples quando somente thin clients são utilizados – tipicamente, uma imagem de boot única pode acomodar uma vasta gama de necessidades dos usuários – e pode ser gerenciado centralizadamente.
As principais vantagens do emprego de thin clients são:
* Baixo custo de administração de TI.
* Facilidade de proteção.
* Baixo custo de hardware.
* Menor custo para licenciamento de softwares.
* Baixo consumo de energia.
* Valor desprezível para a maioria dos ladrões.
* Resistência a ambientes hostis.
* Menor dissipação de calor para o ambiente (economia com ar condicionado).
* Mais silencioso que um PC convencional.
* Não necessita de ser substituído com a mesma frequência de um PC convencional, gerando menos lixo eletrônico.
* Mais agilidade para rodar planilhas complexas que utilizam macros e tabelas dinâmicas.

## Desvantagens dos thin clients

* Se o servidor der problema e não houver redundância, todos os thin clients ficarão inoperantes.
* Necessita maior largura de banda na rede onde é empregado.

## Vantagens dos thick clients

* Requisitos mínimos para servidores.
* Performance multimídia melhor.
* Maior flexibilidade.

## Vantagens dos clientes de Discos Virtuais de Rede

* Baixo custo de administração de TI.
* Facilidade de proteção (ver acima).
* Baixo custo de hardware. Sem HD, sem armazenamento flash.
* Valor desprezível para a maioria dos ladrões.
* Requisitos mínimos para servidores. O servidor age apenas como um servidor de arquivos, não como um servidor de aplicativos.
* Performance multimídia melhor. O cliente pode usar seus próprios recursos de hardware.
* Maior flexibilidade.
* Maior escalabilidade.

## Desvantagens dos clientes de Discos Virtuais de Rede

* Rede 100Base-TX exigida. Dado o montante de dados que flui para os clientes, é geralmente difícil ter um cliente de Disco Virtual de Rede conectado através de um vínculo WAN ao servidor que armazena seu disco rígido virtual.

## Protocolos

Alguns exemplos de protocolos usados na comunicação entre os thin clients e o servidor:

### XML sobre HTTP

    usado por XHTML e BXML da Backbase para definir Rich Internet Applications

### X11

    usado essencialmente por todas as variantes de Unix

### Tecnologia NX

    comprime o protocolo X11 para melhor performance

### VNC

    possibilita compartilhamento (virtual) de área de trabalho

### Citrix ICA

    com MetaFrame

### RDP

    o mecanismo padrão de acesso remoto para o MS-Windows

### HTML sobre HTTP

    usado por uma miríade de aplicativos web