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çãode 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 tres sistemas de computador conectados a 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 tres 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 tres 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.


Novos rumos


  • Sistemas legadosForam desenvolvidos pelas empresas baseados em diversas tecnologias ao longo do tempo.
  • Ex:
    • Fortran
    • Cobol
    • Clipper
    • Delphi
    • Outras.
  • Problemas dos sistemas legados:
    • falta de documentação
    • carência de especialista em um determinado sistema
    • ignorância sobre as regras de negócio
    • dificuldades em interagir com outros sistemas
    • falta de suporte às linguagens
    • plataformas equipamentos obsoletos.



  • Questões principais:
    • Flexibilidade para as mudanças
    • Agilidade para as novas demandas
    • Maior qualidade no tempo certo
    • Redução de custos.





SOA

  • SOA (Service Oriented Architecture) visa integrar sistemas existentes e futuros
  • agrupa processos de negócios e trata-os como serviços interoperáveis


  • Características
    • Os serviços são novas denominações das aplicações
    • Disponíveis na Internet em forma de padrões abertos
    • Utiliza WebServices.
  • Conceito de Web Services:
    • Os WebServices funcionam de forma semelhante a um componente que você instala numa máquina pessoal
    • Esse componente pode ficar residente em qualquer lugar: na sua máquina, na empresa que fornece o serviço, em outro país, etc
    • Usando a Internet e o XML para troca de informações, é executado um método desse componente que dispara o processamento no servidor remoto
    • A resposta é recebida na sua aplicação.


  • SOA trabalha em cima de baixo acoplamento
  • Permite uma integração de serviços.



  • Vantagens do SOA:
    • Reutilização do software
    • Aumento de produtividade
    • Maior agilidade
    • Maior
    • Alinhamento com o negócio.


Sopa de Letrinhas

  1. PC
  2. SA
  3. BD
  4. SP
  5. SGBD
  6. WS
  7. HTTP
  8. SQL
  9. TP
  10. FTP
  11. SOA
  12. -
  13. -
  14. B2B
  15. -
  16. J2EE
  17. .Net
  18. -
  19. HTML
  20. XML