Arquitetura Cliente-Servidor e Internet


Cliente-Servidor



Mainframe


Início da arquitetura


  • Primórdios da computação
    • Mainframes executavam e mantinham toda a informação e processos em um único sistema
    • Sistema monolítico e centralizador


  • Processo dispendioso:
    • entrar com os dados
    • realizar processamento
    • analisar os resultados


1o. modelo de arquitetura


  • Compartilhamento de arquivos e aplicações
    • Inúmeros problemas => concorrência



  • Usuários solicitando arquivos centralizados:
    • gerava baixo processamento
    • comprometia integridade da informação



  • Degrau para o próximo passo:
    • separou clientes e servidores de arquivo



Modelo de 2 camadas

  • Surgiu para suprir as necessidades da arquitetura de compartilhamento de arquivos



  • Duas camadas desta arquitetura:
    • cliente => que realiza processamento
    • servidor => que armazena o conteúdo




  • Ganho:
    • permitir uma maior concorrência



  • Problema:
    • escalabilidade




Componentes principais



  • Conjunto de Servidores:
    • oferecem serviços a outros subsistemas


  • Conjunto de clientes:
    • solicitam os serviços oferecidos aos usuários


  • Rede
    • servem de meio de comunicação entre os clientes e os servidores



Clientes


Equipamentos ligados em rede que demandam as requisições ao servidor. Podem ser microcomputadores desktop, notebooks ou qualquer dispositivo com interface de rede.


  • O cliente possui algumas características básicas:
    • é ativo
    • inicia e termina as conversações com os servidores, solicitando serviços distribuídos
    • normalmente responsável pela entrada e saída de dados e comunicação com o usuário
    • torna a rede ‘transparente’ ao usuário
    • quando operado por usuários, interessante ter interface user-friendly.



Servidores



Equipamentos ligados em rede com com maior poder de processamento e armazenamento para os mais variados serviços.


  • Exemplos. Servidores de:
    • arquivos
    • banco de dados
    • impressão
    • conteúdo
    • fax
    • páginas web
    • DNS
    • e-mail
    • imagens
    • sistemas operacionais
    • etc



  • Características:
    • reativo e de execução contínua
    • recebe e responde a solicitações dos Clientes
    • presta serviços distribuídos
    • atende a diversos Clientes simultaneamente
    • pode crescer em armazenamento e processamento.



Redes de computadores



Consiste de dois ou mais computadores e outros dispositivos conectados entre si de modo a permitir o compartilhamento de serviços como dados, impressoras, mensagens , etc.


Existem várias formas e recursos de vários equipamentos que podem ser interligados e compartilhados, mediante a:

  • meios de acesso [Wi-Fi, Bluetooth, WiMax, Satélite, 3G, FO, RFId, etc]
  • protocolos [ftp, http, ssh, telnet, etc]
  • requisitos de segurança [https, chaves de criptografia, senhas, hard-lock, firewall, etc].






A topologia mais usada é o barramento mas ainda existem conexões em anel, estrela e outras e existem vários tipos de redes como as baseadas em:

  • conexão via cabo ou FO: PAN, LAN, MAN, WAN
  • conexão sem fio: WPAN, WLAN, WMAN, WWAN.




Exemplo:


Serviço de Publicação de mídia




Aplicação Cliente responde pelas seguintes funções:



  • Apresentação:
    • o código que gera a interface visível do programa faz parte da aplicação Cliente
    • formulários, menus e demais elementos visuais nele estão contidos
    • alteração na interface do programa requer a geração de uma nova versão para todos os computadores



  • Lógica do Negócio:
    • regras que definem como os dados serão acessados e processados
    • toda a Lógica do Negócio fica no Cliente.



  • É necessária:
    • uma nova versão do programa cada vez que alterações ocorrerem e as regras mudarem
    • atualização de todos os computadores com nova versão, mesmo que sejam centenas ou milhares de clientes



  • Contribuições:
    • avanços para a empresa
    • uso efetivo dos sistemas de rede na arquitetura distribuída



  • Limitações:
    • dificuldade de manutenção e no gerenciamento.


Modelo cliente-gordo

  • O servidor é responsável somente pelo gerenciamento de dados
  • O software do cliente implementa a lógica da aplicação e as interações com o usuário do sistema
  • Sua desvantagem é ter sistema de gerenciamento mais complexo



Modelo cliente-magro


  • Todo o processamento da aplicação e gerenciamento de dados é realizado no servidor
  • O cliente é responsável apenas por executar o software de apresentação
  • Tem a desvantagem de atribuir uma grande carga de processamento à rede e ao servidor.



Advento da linguagem Java



  • Possibilidade de recorrer a applets (pequenos aplicativos) por download
  • Permitiu desenvolvimento de um modelo cliente-servidor intermediário
  • Interface em web browser




Modelo de 3 camadas



Problema essencial


  • Tres camadas lógicas:
    • apresentação
    • processamento das aplicações
    • gerenciamento de dados
  • Devem ser mapeadas em dois ou mais sistemas de computadores




Evolução


  • retira as Regras do Negócio do cliente e as centraliza em um determinado ponto, o qual é chamado de servidor de aplicações
  • o acesso ao Banco de Dados é feito através das regras contidas no Servidor de Aplicações
  • traz facilidade de atualização das mesmas, pois estão centralizadas em um único ponto



  • Não significa necessariamente que haja três sistemas de computador conectados à rede
    • um único servidor (parrudo) pode executar tanto o processamento dos SAs e SGBDs



  • Se a necessidade aumentar, é relativamente simples separá-las em servidores diferentes e executá-los em processos separados.



Tres camadas



  • Clientes
  • Servidores de Aplicações
  • Servidores de Dados





  • Características:
    • as Regras do Negócio (lógica) foram deslocadas para o Servidor de Aplicações
    • ali é determinada a maneira como os dados serão utilizados
    • todo o acesso do cliente ao Banco de Dados é feito de acordo com as regras contidas no Servidor de Aplicações
    • não é possível o acesso ao Banco de Dados sem primeiramente passar pelo Servidor de Aplicações
    • no Servidor de Banco de Dados reside toda informação necessária para o funcionamento da aplicação.



  • Melhoramentos
    • facilidade na atualização das Regras do Negócio
    • maior flexibilidade, segurança e controle do acesso aos dados
    • simplicidade na manutenção das aplicações atualizadas
    • garantia de acesso às alterações para todos os usuários



  • Falha
    • continua o problema de atualização da interface de aplicação, cada vez que sejam necessárias mudanças
    • as alterações nela são menos frequentes do que as que ocorrem nas Regras do Negócio.



Exemplo:


Sistema de operações bancárias na Internet



  • Banco de dados dos usuários do banco hospedado em um servidor (mainframe) fornece serviços de gerenciamento de dados



  • Servidor web fornece os serviços de aplicativos como recursos para transferir dinheiro, gerar extratos e pagar contas



  • O computador do usuário com um browser é o cliente.



  • O sistema é escalonável pois permite adicionar facilmente novos servidores web à medida que o número de clientes aumenta.




Servidor Web



  • A expressão servidor web pode significar duas coisas: [Wikipedia]



  • 1. {SW} Um programa de computador responsável por aceitar pedidos HTTP de clientes, geralmente os navegadores, e servi-los com respostas HTTP, incluindo opcionalmente dados, que geralmente são páginas web, tais como documentos HTML com objetos embutidos (imagens, vídeos, frames, etc.)


  • 2. {HW} Um computador que executa um programa que provê a funcionalidade descrita acima.




Sistema de operações bancárias na Internet




Arquitetura de um sistema financeiro na Internet







O uso da arquitetura em três camadas, como no exemplo, permite otimizar a transferência de informações entre o servidor Web e o servidor de banco de dados.


As conversações entre os sistemas não precisam ter como base os padrões da Internet mas podem utilizar protocolos de comunicação de nível inferior e mais rápidos


Um middleware eficaz que aceite consultas de banco de dados em SQL (Structured Query Language) é utilizado para manejar a recuperação de informações a partir do banco de dados.

Modelo de n camadas


Introdução


Ampliação do modelo cliente-servidor de três camadas para uma variante com várias camadas adicionando servidores


Utilizados quando as aplicações precisam acessar diferentes BDs


Um servidor de integração ou processador de transações (TP) é colocado entre o servidor de aplicações e os servidores de banco de dados


“Monitor de transações é uma espécie de serviço de enfileiramento de mensagens. O cliente conecta-se ao TP monitor em vez de se conectar ao servidor de banco de dados”


“A transação é aceita pelo monitor, e enfileirada, em seguida, ele assume a responsabilidade pela gestão e a correta realização”.


Vantagens


  • Serviços
  • Recursos
  • Protocolos
  • Localização
  • Descentralização
  • Escalabilidade
  • Integridade



Desvantagens

  • Complexidade
  • Comunicação


Pool de Servidores



Exemplo:


Pool de servidores prestando serviço de aplicação web com aplicações diversificadas





Data Center










Característica do Data Center


  • Modalidade de serviço de valor agregado


  • Oferece recursos de processamento e armazenamento de dados


  • Larga escala para organizações de qualquer porte


  • Grande capacidade e flexibilidade


  • Alta segurança


  • Hardware e software adequados à necessidade




Data Center


Serviços básicos:

  • Co-location
  • Hosting



Serviços complementares:

  • Backup


  • Infra-estrutura de energia


  • Segurança


  • Servidor de endereços


  • Suporte 24x7


  • Acesso Internet.