informacao (o servidor), enquanto outro e responsavel pela obtencao dos dados (cliente). Essa arquitetura e muito utilizada no meio corporativo sobre tres componentes principais: gerenciadores de bancos de dados relacionais que funcionem como servidores, redes que funcionem como meio de transporte de dados e finalmente softwares para acesso aos dados (clientes). As principais caracteristicas desta arquitetura estao associadas a interacao de cada modulo com os demais componentes do sistema. A parte cliente interage com o usuario, e a parte servidor, com os recursos que serao compartilhados pela rede. O software cliente exige recursos de hardware completamente diferentes do programa servidor. Alem disso, como o ambiente normalmente e heterogeneo, na maioria das vezes o software e o hardware do cliente sao completamente diferentes dos usados no servidor, sem que isso signifique nenhum problema. Escalabilidade e uma caracteristica importante. Um sistema cliente-servidor pode ser expandido verticalmente pela adicao de mais recursos a maquina servidora ou aumento no numero de servidores, ou horizontalmente, pelo aumento do numero de maquinas clientes. O Processo Cliente e um programa que envia uma mensagem para o servidor solicitando que ele execute uma tarefa. Esses programas gerenciam a interface com o usuario, fazem a validacao dos dados digitados pelo operador e requisitam tarefas ao servidor. O processo cliente e o que se chama de front-end da aplicacao, ou seja, e o que o usuario ve e com que interage para obter informacoes aos bancos de dados. Atualmente, o processo cliente e dominado por programas com interfaces graficas (GUIs), responsaveis pelo gerenciamento de atitudes do usuario e dos recursos de sua maquina. O Processo Servidor e um programa que responde as solicitacoes do cliente fazendo pesquisas, filtragens e atualizacoes de bases de dados. Em aplicacoes mais sofisticadas, o processo servidor gerencia as regras do negocio, que sao diretrizes ou normas a ser respeitadas na atualizacao ou recuperacao de dados. Em um ambiente de rede, normalmente o processo servidor roda numa maquina chamada de servidor de arquivos ou servidor de rede. O processo servidor e conhecido tambem como back-end da operacao. Arquitetura de Duas Camadas (ou Two-Tier) e uma das implementacoes da arquitetura distribuida, em que o cliente conversa diretamente com o servidor. As regras do negocio podem estar em qualquer uma dessas pontas. Esse tipo de arquitetura normalmente e usado em ambientes com ate cinquenta clientes e e caracteristico das ferramentas ou produtos cliente-servidor criados para desktop. Arquitetura de Tres Camadas (ou Three-Tier) e uma implementacao mais sofisticada do ambiente cliente-servidor, na qual as regras do negocio sao manipuladas por um "agente", cujo papel e servir de interprete entre as duas pontas. Ele pode desempenhar muitas tarefas, entre as quais, gerenciar solicitacoes do cliente, mapear solicitacoes feitas a multiplos servidores, coletar, sintetizar e distribuir respostas do servidor, etc. Uma das caracteristicas da arquitetura cliente-servidor e a utilizacao de plataformas de hardware e software distintas. Assim, muitos processos sao necessarios para garantir a comunicacao transparente entre o cliente e o servidor. O middleware e tudo o que existe entre o cliente e o servidor, em termos de software, para garantir a comunicacao.