Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos II Professor: Cheli dos S. Mendes da Costa Modelo Cliente- Servidor
Modelo de Aplicação Cliente-servidor Os anos iniciais das aplicações de negócios distribuídos foram dominados pelo modelo de duas camadas. Neste modelo de arquitetura, a camada mais próxima do usuário, é chamada de CLIENTE. Era responsável pela interface com o usuário e também pela lógica de negócio(regras que definem como os dados serão acessados e processados). Funcionava nos computadores que ficavam nas mesas de trabalhos dos usuários interligados a redes.
Camada Cliente
Principais característica Inicia e termina as conversações com os servidores, solicitando serviços distribuídos; Não se comunica como outros Clientes; Normalmente responsável pela entrada e saída de dados e comunicação com o usuário; Torna a rede transparente ao usuário; Hardware: pode ser um micro simples: Software: tem inicio e fim definido.
Camada Servidor A segunda camada tinha a função de gerenciar a organização e o armazenamento de dados da aplicação, funcionava em um computador central da rede e era denominado servidor. A esse tipo de arranjo e similares chamou-se de modelo CLIENTE SERVIDOR.
Servidor Genericamente, o servidor se constituía em um computador robusto, funcionando como: Servidor de banco de dados, com a responsabilidade de manter organizada a aplicação; Armazenar os dados por ela processados e; Transferir, o mais rápido possível, esses dados para a aplicação e vice-versa. O cliente fornecia interface gráfica com o usuário e processa a grande maioria dos requisitos necessários ao negócio.
Gabinete de Servidor antigo O Facebook tem mais de 30 mil servidores
Principais Características Execução contínua; Recebe e responde a solicitação dos Clientes; Não se comunica com outros servidores; Atende diversos Clientes simultaneamente; Hardware: exige máquinas mais robustas, com grande capacidade de processamento; Software: processo sempre em execução, aguardando ser chamado pelo cliente.
Cliente-Servidor
Dica!! Quero montar um servidor doméstico, para compartilhar a conexão, rodar um servidor de Quake ou de qualquer outro jogo que goste, gerenciar a impressora, guardar arquivos, etc. Um micro que possa ficar ligado 24 horas não é preciso um micro parrudo, muito pelo contrário, um velho Pentium 133 com 32 de RAM vai servir muito bem para esta função. Dependendo do que você estiver pretendendo fazer, até mesmo um 486 pode servir.
Os requisitos são os seguintes: A primeira coisa a decidir neste caso é qual sistema operacional você prefere rodar. - Processador - RAM: Mínimo 32, ideal 64 - HD: Mínimo 1 GB, ideal 2 GB ou mais - Placa de Vídeo e monitor: será usado só para configurar o servidor, então qualquer coisa que você tenha à mão serve - Placa de rede - Modem ou 2º placa de rede (para conexão via cabo ou ADSL)
Cliente- Servidor Este modelo caracteriza-se por forte acoplamento entre a interface do usuário, a lógica de negócio e o servidor de bancos. Tornou-se bastante popular e foi adotado pelos sistemas corporativos, pacotes de software aplicativos, vendidos como soluções prontas denominados de ERP*(Enterprise Resource Planning). A próxima figura apresenta um modelo típico da arquitetura clienteservidor, no qual podemos observar que vários computadores dos usuários acessam o servidor de banco de dados central através da rede. *Planejamentos dos recursos da empresa
Usuário Aplicação TCP/IP Usuário Servidor de Banco de dados Aplicação TCP/IP Usuário TCP/IP Aplicação *Modelo de aplicação Cliente-servidor
Para que não sabe!! TCP/IP é o principal protocolo de envio e recebimento de dados MS internet. TCP significa Transmission Control Protocol (Protocolo de Controle de Transmissão) e o IP, Internet Protocol (Protocolo de Internet). Protocolo é uma espécie de linguagem utilizada para que dois computadores consigam se comunicar. Por mais que duas máquinas estejam conectadas à mesma rede, se não falarem a mesma língua, não há como estabelecer uma comunicação. Então, o TCP/IP é uma espécie de idioma que permite às aplicações conversarem entre si.
Requisita Servidor Executa Responde Cliente
O modelo cliente-servidor possui algumas limitações que o tornam inadequado para a adoção no ambiente de internet, como por exemplo: o processamento complexo das regras de negócio residem no cliente, tornando sua preservação difícil; a largura da banda da rede deve ser grande para suportar as frequências chamadas e respostas entre clientes e servidor, impedindo a escalabilidade do modelo;
a manutenção e a atualização dos clientes torna-se difícil, pois cada cliente deve ser atualizado e mantido separadamente; esta arquitetura está fortemente orientada para o acesso de aplicações a bancos de dados, não podendo usufruir da reutilização da arquitetura orientada a comportamentos.
Atualmente Uma arquitetura muito comum em aplicações Web é o Modelo Arquitetural 3 Camadas. Onde temos: Uma Camada de Persistência (Servidor de Banco de Dados), onde ficará os bancos de dados da aplicação; A Camada de Lógica de Negócio (Servidor de Aplicação), onde rodará a aplicação Web (seja ela Java, PHP, ASP ou qualquer outra linguagem); E uma camada de apresentação, que é representada pela máquina cliente que acessa a aplicação.
Demonstração 1
Demonstração 2
Separar as camadas em máquinas diferentes oferece um bom desempenho para aplicações que são acessadas por diversos clientes simultâneos. Porém, o Servidor de Aplicação e de Banco de Dados podem estar juntos em uma mesma máquina. Tendo em vista essa arquitetura, é fundamental que os servidores estejam preparados para suportar a aplicação. Para isso eles precisam estar equipados com softwares necessários para rodar a aplicação web.
O servidor de banco de dados deverá ter o SGBD adequado para a aplicação. Tal SGBD pode ser: MySQL, Oracle, PostGreeSQL, Microsoft SQL Server etc. O servidor de aplicação deve possuir o interpretador da linguagem, como por exemplo: Apache (PHP/ASP), IIS (ASP) ou Tomcat (Java).
Funcionamento de uma aplicação Web no Modelo Arquitetural 3 Camadas:
Explicação Perceba que o Web Server é o conjunto formado pelo Servidor de Aplicação e o Servidor de Banco de Dados, bem como as iterações que ocorrem entre eles. Uma aplicação Web nada mais é do que a troca de mensagens entre um computador cliente e um Web Server.
Quando o usuário acessa a uma página web através de um navegador (como Mozilla Firefox, Internet Explorer, Google Chrome etc), ele está enviando para o Web Server uma requisição através do protocolo HTTP(principal protocolo da WEB utilizado para a comunicação entre os browsers e os servidores). Essa mensagem é portanto chamada de HTTP Request, e pode ser enviada tanto pelo método GET, quanto pelo método POST.
Métodos Get e Post (*Parada) A grande diferença entre os métodos GET e POST provavelmente é a visibilidade. Uma requisição GET é enviada como string anexada a URL. Enquanto que a requisição POST é encapsulada junto ao corpo da requisição HTTP e não pode ser vista.
Como Funciona o GET O método GET utiliza a própria URI (normalmente chamada de URL) para enviar dados ao servidor, quando enviamos um formulário pelo método GET, o navegador pega as informações do formulário e coloca junto com a URI de onde o formulário vai ser enviado e envia, separando o endereço da URI dos dados do formulário por um? (ponto de interrogação).
Quando você busca algo no Google, ele faz uma requisição utilizando o método GET, você pode ver na barra de endereço do seu navegador que o endereço ficou com um ponto de interrogação no meio, e depois do ponto de interrogação você pode ler, dentre outros caracteres, o que você pesquisou no Google.
Funcionamento do Post O método POST envia os dados colocando-os no corpo da mensagem. Ele deixa a URI separada dos dados que serão enviados e com isso podemos enviar qualquer tipo de dados por esse método. Quando você faz um registro em um formulário e depois de enviar a URI não tem o ponto de interrogação separando os dados que você digitou, provavelmente o formulário foi enviado pelo método POST.
Cliente-Servidor A requisição é levada até o Web Server, onde é processada pelo Servidor de Aplicação. Essa requisição pode ser um script ou até mesmo um arquivo, que será baixado pelo usuário. No caso de script, o servidor de aplicação processa o script utilizando o interpretador da linguagem.
Se for necessário, o script em execução se conecta ao Banco de Dados e envia uma requisição a ele. Tal requisição é conhecida como BD Request, e pode ser uma query ou um comando SQL. Query é um comando em lote que executa uma série de comando em um SGDB (oracle, MSsql, mysql, interbase e etc).tais funções incluem pesquisa, criação, pump de dados, alterar estruturar, deletar dados e estruturas, updates e etc.
O que ela faz!! Query 1. Processo de extração de dados de um banco de dados e sua apresentação em uma forma adequada ao uso. 2. Conjunto de instruções que permite extrair repetidamente determinado subconjunto de dados.
O BD Request é processado no Servidor de Banco de Dados pelo SGBD e devolve um BD Response para o Servidor de Aplicação. Esse BD Response é o resultado do comando SQL e pode ser utilizado pelo script em execução.
Ao terminar de executar o script, um código HTML é gerado. Esse documento HTML é enviado ao cliente através de uma mensagem HTTP Response. E por fim, o HTML é renderizado pelo navegador do usuário e gera para ele uma página web.
Teste em Java!!