Você está na página 1de 5

Cliente-servidor

Cliente-servidor um modelo computacional que separa clientes e servidores, sendo interligados entre si geralmente utilizando-se uma rede de computadores. Cada instncia de um cliente pode enviar requisies de dado para algum dos servidores conectados e esperar pela resposta. Por sua vez, algum dos servidores disponveis pode aceitar tais requisies, process-las e retornar o resultado para o cliente. Apesar do conceito ser aplicado em diversos usos e aplicaes, a arquitetura praticamente a mesma. Muitas vezes os clientes e servidores se comunicam atravs de uma rede de computador com hardwares separados, mas o cliente e servidor podem residir no mesmo sistema. A mquina servidor um host que est executando um ou mais programas de servidor que partilham os seus recursos com os clientes. Um cliente no compartilha de seus recursos, mas solicita o contedo de um servidor ou funo de servio. Os clientes, portanto, iniciam sesses de comunicao com os servidores que esperam as solicitaes de entrada.

Descrio
A caracterstica de cliente-servidor, descreve a relao de programas em um aplicativo. O componente de servidor fornece uma funo ou servio a um ou muitos clientes, que iniciam os pedidos de servios. Funes como a troca de e-mail, acesso internet e acessar banco de dados, so construdos com base no modelo cliente-servidor. Por exemplo, um navegador da web um programa cliente em execuo no computador de um usurio que pode acessar informaes armazenadas em um servidor web na Internet. Usurios de servios bancrios acessando do seu computador usam um cliente navegador da Web para enviar uma solicitao para um servidor web em um banco. Esse programa pode, por sua vez encaminhar o pedido para o seu prprio programa de banco de dados do cliente que envia uma solicitao para um servidor de banco de dados em outro computador do banco para recuperar as informaes da conta. O saldo devolvido ao cliente de banco de dados do banco, que por sua vez, serve-lhe de volta ao cliente navegador exibindo os resultados para o usurio. O modelo cliente-servidor, se tornou uma das idias centrais de computao de rede. Muitos aplicativos de negcios a serem escrito hoje utilizam o modelo cliente-servidor. Em marketing, o termo tem sido utilizado para distinguir a computao distribuda por pequenas dispersas computadores da "computao" monoltica centralizada de computadores mainframe. Cada instncia de software do cliente pode enviar requisies de dados a um ou mais servidores ligados. Por sua vez, os servidores podem aceitar esses pedidos, process-los e retornar as informaes solicitadas para o cliente. Embora este conceito possa ser aplicado para uma variedade de razes para diversos tipos de aplicaes, a arquitetura permanece fundamentalmente a mesma.

Caractersticas do Cliente

Sempre inicia pedidos para servidores; Espera por respostas; Recebe respostas; Normalmente conecta-se a um pequeno nmero de servidores de uma s vez; Normalmente interage diretamente com os usurios finais atravs de qualquer interface com o usurio; Utiliza recursos da rede.

Caractersticas do Servidor

Sempre espera por um pedido de um cliente; Atende os pedidos e, em seguida, responde aos clientes com os dados solicitados; Pode se comunicar com outros servidores para atender uma solicitao especfica do cliente; Fornece recursos de rede.

Vantagens

Na maioria dos casos, a arquitetura cliente-servidor permite que os papis e responsabilidades de um sistema de computao possam ser distribudos entre vrios computadores independentes que so conhecidos por si s atravs de uma rede. Isso cria uma vantagem adicional para essa arquitetura: maior facilidade de manuteno. Por exemplo, possvel substituir, reparar, atualizar ou mesmo realocar um servidor de seus clientes, enquanto continuam a ser a conscincia e no afetado por essa mudana; Todos os dados so armazenados nos servidores, que geralmente possuem controles de segurana muito maior do que a maioria dos clientes. Servidores podem controlar melhor o acesso e recursos, para garantir que apenas os clientes com as permisses adequadas possam acessar e alterar dados; Desde o armazenamento de dados centralizada, as atualizaes dos dados so muito mais fceis de administrar, em comparao com o paradigma P2P, onde uma arquitetura P2P, atualizaes de dados podem precisar ser distribuda e aplicada a cada ponto na rede, que o time-consuming passvel de erro, como pode haver milhares ou mesmo milhes de pares; Muitas tecnologias avanadas de cliente-servidor j esto disponveis, que foram projetadas para garantir a segurana, facilidade de interface do usurio e facilidade de uso; Funciona com vrios clientes diferentes de capacidades diferentes.

Desvantagens

Clientes podem solicitar servios, mas no podem oferec-los para outros. Sobrecarregando o servidor, pois mais clientes mais informao que precisara de mais e mais banda.

Um servidor poder ficar sobrecarregado caso receba mais solicitaes simultneas dos clientes do que pode suportar; Este modelo no possui a robustez de uma rede baseada em P2P. Na arquitetura cliente-servidor, se um servidor crtico falha, os pedidos dos clientes no podero ser cumpridos. J nas redes P2P, os recursos so normalmente distribudos entre vrios ns. Mesmo se uma ou mais mquinas falharem no momento de download de um arquivo, por exemplo, as demais ainda tero os dados necessrios para completar a referida operao.

Protocolos de transporte e aplicaes de rede


Os protocolos do nvel de transporte fornecem servios que garantem uma transferncia confivel de dados e aplicativos entre computadores (ou outros equipamentos) remotos. Os programas na camada de aplicao usam os protocolos de transporte para contactar outras aplicaes. Para isso, a aplicao interage com o software do protocolo antes de ser feito o contacto. A aplicao que aguarda a conexo informa ao software do protocolo local que est pronta a aceitar mensagem. A aplicao que estabelece a conexo usa os protocolos de transporte e rede para contactar o sistema que aguarda. As mensagens entre as duas aplicaes so trocadas atravs da conexo resultante. Existem duas formas para que se estabelea uma ligao cliente-servidor: enquanto uma delas orientada conexo, a outra no . O TCP, por exemplo, um protocolo de transporte orientado conexo em que o cliente estabelece uma conexo com o servidor e ambos trocam mltiplas mensagens de tamanhos variados, sendo a aplicao do cliente quem termina a sesso. J o protocolo UDP no orientado conexo, nele o cliente constri uma mensagem e a envia num pacote UDP para o servidor, que responde sem estabelecer uma conexo permanente com o cliente.

Modelo em trs camadas


Modelo em trs camadas, derivado do modelo 'n' camadas, recebe esta denominao quando um sistema cliente-servidor desenvolvido retirando-se a camada de negcio do lado do cliente. O desenvolvimento mais demorado no incio comparando-se com o modelo em duas camadas pois necessrio dar suporte a uma maior quantidade de plataformas e ambientes diferentes. Em contrapartida, o retorno vem em forma de respostas mais rpidas nas requisies, excelente performance tanto em sistemas que rodam na Internet ou em intranet e mais controle no crescimento do sistema.

Definio
As trs partes de um ambiente modelo trs camadas so: camada de apresentao, camada de negcio e camada de dados. Deve funcionar de maneira que o software executado em cada camada possa ser substitudo sem prejuzo para o sistema. De modo que atualizaes e correes de defeitos podem ser feitas sem prejudicar as demais camadas. Por exemplo: alteraes de interface podem ser realizadas sem o comprometimento das informaes contidas no banco de dados.

Camadas

Camada de apresentao

a chamada GUI (Graphical User Interface), ou simplesmente interface. Esta camada interage diretamente com o usurio, atravs dela que so feitas as requisies como consultas, por exemplo.
Camada de negcio

Tambm chamada de Lgica empresarial, Regras de negcio ou Funcionalidade. nela que ficam as funes e regras de todo o negcio. Inexiste uma interface para o usurio e seus dados so volteis, ou seja, para que algum dado seja mantido deve ser utilizada a camada de dados.
Camada de Dados

A terceira camada definida como o repositrio das informaes e as classes que a manipulam. Esta camada recebe as requisies da camada de negcios e seus mtodos executam essas requisies em um banco de dados. Alterando o banco de dados alteraria apenas as classes da camada de dados, e o restante das camadas no seriam afetados por essa alterao.

Aplicaes
Aplicaes monolticas

Nos tempos antigos do reinado do grande porte e do computador pessoal independente um aplicativo era desenvolvido para ser usado em uma nica mquina. Geralmente este aplicativo continha todas a funcionalidades em um nico mdulo gerado por uma grande quantidade de linhas de cdigo e de manuteno nada fcil. A entrada do usurio, verificao, lgica de negcio e acesso a banco de dados estava presente em um mesmo lugar. Podemos definir este tipo de aplicao como aplicao de uma camada ou monoltica.
Aplicaes em duas camadas

A necessidade de compartilhar a lgica de acesso a dados entre vrios usurios simultneos fez surgir as aplicaes em duas camadas. Nesta estrutura a base de dados foi colocada em uma mquina especfica, separada das mquinas que executavam as aplicaes. Nesta abordagem temos aplicativos instalados em estaes clientes contendo toda a lgica da aplicao (clientes ricos ou gordos). Um grande problema neste modelo o gerenciamento de verses pois para cada alterao os aplicativos precisam ser atualizados em todas as mquinas clientes.
Aplicaes em trs camadas

Com o advento da internet houve um movimento para separar a lgica de negcio da interface com o usurio. A idia que os usurios da WEB possam acessar as mesmas aplicaes sem ter que instalar estas aplicaes em suas mquinas locais. Como a lgica do aplicativo, inicialmente contida no cliente rico, no reside mais na mquina do

usurio, este tipo de cliente passou a ser chamado de cliente pobre ou magro (Thin Client). Neste modelo o aplicativo movido para o Servidor e um navegador Web usado como um cliente magro. O aplicativo executado em servidores Web com os quais o navegador Web se comunica e gera o cdigo HTML para ser exibido no cliente.

Concluso
Neste modelo a lgica de apresentao esta separada em sua prpria camada lgica e fsica.A separao em camadas lgicas torna os sistemas mais flexveis permitindo que as partes possam ser alteradas de forma independente. As funcionalidades da camada de negcio podem ser divididas em classes e essas classes podem ser agrupadas em pacotes ou componentes reduzindo as dependncias entre as classes e pacotes; podem ser reutilizadas por diferentes partes do aplicativo e at por aplicativos diferentes. O modelo de 3 camadas tornou-se a arquitetura padro para sistemas corporativos com base na Web.