Arquitetura Cliente 
Arquitetura Cliente
     Servidor

    Fabiula d
      b l de Aquino
Objetivos deste encontro
      Objetivos deste encontro
• Definição dos conceitos relacionados
  – Cliente/Servidor
           /
  – Distribuindo papéis
  – Cliente
     • Gordo e magro
  – Servidor
         d
  – Vantagens e Desvantagens da arquitetura
  – Web‐Based
Cliente/Servidor
• O termo Cliente/Servidor refere‐se ao método
  de distribuição de aplicações computacionais
              ç        p ç           p
  através de muitas plataformas. Tipicamente
  essas aplicações estão divididas entre um
  provedor de acesso e uma central de dados e
  numerosos clientes contendo uma interface
  gráfica para usuários para acessar e manipular
  dados.
Cliente/Servidor
• Modelo onde dois ou mais computadores
  interagem de modo que um oferece os
        g                 q
  serviços aos outros.
• Este modelo permite aos usuários acessarem
  informações e serviços de qualquer lugar.
Cliente/Servidor
• Arquitetura computacional que envolve
  requisições de serviços de clientes para
    q ç                 ç                 p
  servidores. Uma rede Cliente/Servidor é uma
  extensão lógica da programação modular
                                 modular.
Cliente/Servidor
• Uma aplicação Cliente/Servidor pode ser
  estruturada em três níveis:
  – Interface com o usuário
  – Processamento
  – Dados
• Simples requer dois tipos de máquinas:
  – Cliente: executa programas que compreendem a
    interface com o usuário;
  – Servidor: implementa camadas de processamento e
    de dados.
Cliente Servidor
Cliente Servidor
Cliente Servidor
             Cliente Servidor
• Na alternativa (a), executa‐se no cliente só a
  p
  parte da interface dependente do terminal
                        p
• Na alternativa (b), todo o software de
  interface com usuário executa no cliente
• Exemplo da alternativa (c): verificação de
  consistência do preenchimento de um
  formulário feito no cliente
Cliente Servidor
             Cliente Servidor
• Na alternativa (d), a aplicação executa na
  máquina cliente, indo para o servidor somente
     q                  p
  as operações sobre as base de dados.
  Exemplo:
  – muitas aplicações bancárias;
• Na alternativa (e), o disco local no cliente
  mantêm parte dos dados.
          p
• Exemplo: browser web mantendo uma cachê;
Cliente Servidor
            Cliente Servidor
• Recentemente tem‐se evitado as alternativas
  ( )
  (d) e (e) devido a problemas de
             ( )               p
  gerenciamento e por tornar o software cliente
  dependente da plataforma subjacente do
  cliente
• Clientes gordos ( b
    l             (abordagens ( ) e ( ))
                              (d) (e)):evitar;
• Clientes magros (abordagens (a) a (c)): mais
  fáceis de gerenciar.
Cliente
• Sempre inicia pedidos de servidores;
•  Espera por respostas;
•  Recebe respostas;
•  Normalmente, se conecta a um pequeno
  número de servidores de uma só vez;  ;
• Normalmente, interage diretamente com os
  usuários fi i através d qualquer i t f
      á i finais t é de          l       interface
  com o usuário , como interface gráfica do
  usuário.
Cliente
• Cliente, também denominado de “front‐end”
  e “WorkStation”, é um processo que interage
                         p        q           g
  com o usuário através de uma interface gráfica
  ou não permitindo consultas ou comandos
      não,
  para recuperação de dados e análise e
  representando o meio pela qual os resultados
  são apresentados.
Cliente
• Além disso, apresenta algumas características
  distintas:
  – É o processo ativo na relação Cliente/Servidor.
  – Inicia e termina as conversações com os
    Servidores, solicitando serviços distribuídos.
  – Nã
    Não se comunica com outros Clientes.
                   i          t Cli t
  – Torna a rede transparente ao usuário.
Servidor
• Sempre esperar por um pedido de um dos
  clientes;
• Serve os clientes pedidos, em seguida,
  responde com os dados solicitados aos
  clientes;
• Um servidor pode se comunicar com outros
  servidores, a fim de atender uma solicitação
  do cliente.
Servidor
• Também denominado Servidor ou “back‐end”,
  f
  fornece um determinado serviço que fica
                                    ç q
  disponível para todo Cliente que o necessita. A
  natureza e escopo do serviço são definidos
  pelo objetivo da aplicação Cliente/Servidor.
Servidor
• Além disso, ele apresenta ainda algumas
  p p
  propriedades distintas:
  – É o processo reativo na relação Cliente/Servidor.
  – Possui uma execução contínua
                           contínua.
  – Recebe e responde às solicitações dos Clientes.
  – Não se comunica com outros Servidores enquanto
    estiver fazendo o papel de Servidor.
  – Presta serviços distribuídos.
  – Atende a diversos Clientes simultaneamente.
    Atende a diversos Clientes simultaneamente.
Organização de Servidores
     Organização de Servidores
• Servidor interativo: o próprio servidor
  manipula a requisição e, se necessário,
       p          q ç
  retorna uma resposta ao cliente;
• Servidor concorrente: repassa para uma
  thread ou processo em separado a requisição
  e imediatamente espera pela próxima
                                   l   ó
  requisição
Tipos de servidores
            Tipos de servidores
•   Servidor de Arquivos
•   Servidor de Impressora
    Servidor de Impressora
•   Servidor de Banco de Dados
•   Servidor de Redes
•   Servidor de Telex
    Servidor de Telex
•   Servidor de Fax
•   Servidor de Processamento e Imagens
•   Servidor de Comunicação e etc.
    Servidor de Comunicação e etc
Comunicação Cliente/Servidor
  Comunicação Cliente/Servidor
• Através de portas conhecidas designadas pela
  Autoridade para Atribuição de Números na
               p            ç
  Internet (Iana). Ex: FTP‐21, HTTP‐80
• Através de um daemon que registra os
  servidores em execução
• Através de um superservidor, que escuta em
  várias portas e repassa a requisição a um
  servidor específico.
Uma intervenção cliente/servidor
Uma intervenção cliente/servidor
Vantagens
• Na maioria dos casos, a arquitetura
  cliente/servidor permite que os papéis e
                   p         q         p p
  responsabilidades de um sistema de
  computação possam ser distribuídos entre
  vários computadores independentes que são
  conhecidos por si só através de uma rede
                                      rede.
Vantagens
• Isso cria uma vantagem adicional para essa
    q
  arquitetura:
  – Maior facilidade de manutenção. Por exemplo, é
    possível substituir, reparar, atualizar ou mesmo
    realocar um servidor de seus clientes, enquanto
    continuam a ser a consciência e não afetado por
    essa mudança;
Vantagens
• Todos os dados são armazenados nos
  servidores,     q
                  que    g
                         geralmente   p
                                      possuem
  controles de segurança muito maior do que a
  maioria dos clientes
               clientes.
• Servidores podem controlar melhor o acesso e
  recursos, para garantir que apenas os clientes
                                         l
  com as permissões adequadas podem acessar
  e alterar dados;
Vantagens
• O armazenamento de dados é centralizada, as
  atualizações dos dados são muito mais fáceis
          ç
  de administrar, em comparação com o
  paradigma P2P onde uma arquitetura P2P
              P2P,                        P2P,
  atualizações de dados podem precisar ser
  distribuída e aplicada a cada ponto na rede
                                         rede,
  que é o timeconsuming é passível de erro,
  como pode haver milhares ou mesmo milhões
  de pares;
Vantagens
• Muitas      tecnologias      avançadas       de
  clientes/servidor já estão disponíveis, que
                      j           p           q
  foram projetadas para garantir a segurança,
  facilidade de interface do usuário e facilidade
  de uso;
• Funciona com vários clientes diferentes de
                    á      l        f
  capacidades diferentes.
Vantagens
• Confiabilidade
  – Se uma máquina apresenta algum problema,
                 q       p      g     p       ,
    ainda que seja um dos Servidores, parte do
    Sistema continua ativo.
• Matriz de Computadores agregando 
  capacidade de processamento
  capacidade de processamento
  – A arquitetura Cliente / Servidor provê meios para
    que as tarefas sejam feitas sem a monopolização
    dos recursos. Usuários finais podem trabalhar
    localmente.
Vantagens
• O Sistema cresce facilmente
  – Torna‐se fácil modernizar o Sistema quando
                                        q
    necessário.
• O Cliente e o Servidor possuem ambientes
  operacionais individuais / Sistemas Abertos
  – Pode‐se misturar várias plataformas para melhor
    atender às necessidades individuais de diversos
    setores e usuários.
Desvantagens
• Redes de tráfego de bloqueio é um dos
  p
  problemas relacionados com o modelo
  cliente/servidor.
  – Como o número de solicitações simultâneas de
    cliente para um determinado servidor, o servidor
    pode ficar sobrecarregado;
Desvantagens
• O paradigma cliente/servidor não tem a
  robustez de uma rede P2P.
  – Sob cliente/servidor, se um servidor crítico falhar,
    os pedidos dos clientes não podem ser cumpridos.
  – Em redes P2P, os recursos são normalmente
    distribuídos entre vários nós Mesmo se um ou
                              nós.
    mais nós partem e abandonam baixar um arquivo,
    por exemplo os nós restantes ainda deve ter os
         exemplo,
    dados necessários para completar o download.
Desvantagens
• Manutenção
  – As diversas partes envolvidas nem sempre
                   p                               p
    funcionam bem juntas. Quando algum erro
    ocorre, existe uma extensa lista de itens a serem
           ,
    investigados.
• Ferramentas
  – A escassez de ferramentas de suporte, não raras
    vezes obriga o d
            bi      desenvolvimento d f
                           l i      de ferramentas
    próprias. Em função do grande poderio das novas
    linguagens d programação, esta difi ld d está
    li         de           ã       dificuldade   á
    se tornando cada vez menor.
Desvantagens
• Treinamento
  – A diferença entre a filosofia de desenvolvimento
              ç
    de software para o microcomputador de um
    fabricante para o outro, não é como a de uma
                p           ,
    linguagem de programação para outra. Um
    treinamento mais efetivo torna‐se necessário.
• Gerenciamento
  –A
   Aumento d complexidade d ambiente e a
              da      l id d do          bi
   escassez de ferramentas de auxílio tornam difícil o
   gerenciamento d rede.
         i         da d
Arquitetura Web‐Based
       Arquitetura Web Based
• Então, usamos o Browser como Cliente
  Universal
• Conceito de Intranet
• A camada d aplicação se quebra em d
          d de li ã             b      duas:
  Web e Aplicação
• Evitamos instalar qualquer software no
  desktop    e     portanto,
                   portanto  problemas   de
  manutenção
Arquitetura Web‐Based
      Arquitetura Web Based
• Evitar instalação em computadores de
  clientes, parceiros, fornecedores, etc.
            p
• Às vezes, continua se a chamar isso de 3
  camadas porque as camadas Web e Aplicação
  frequentemente rodam na mesma máquina
  (para pequenos volumes)
  (                   l     )
Arquitetura Web‐Based
        Arquitetura Web Based


                           Classe Mãe


Generaliza


             Especializa
             E    i li



                            Classe Filha
Problemas da Web‐Based
      Problemas da Web Based
• Não há suporte a Thin Clients (PDA, celulares,
  smart cards, quiosques, ...)
               q    q        )
  – preciso usar um browser (pesado) no cliente
• Dificuldade de criar software reutilizável
  – cadê a componentização?
Problemas da Web‐Based
      Problemas da Web Based
• Fazer aplicações distribuídas multicamadas é
  difícil. Pois deve‐se
  – Implementar persistência (impedance mismatch
    entre o mundo OO e o mundo dos BDs
    relacionais)
  – Implementar tolerância a falhas com failover
    Implementar tolerância a falhas com failover
  – Implementar gerência de transações distribuídas
  – Implementar balanceamento de carga
  – Implementar resource pooling
       p                 p       g
Só isso?
             Só isso?
• DÚVIDAS?
   Ú     ?
Referências
• (AMARAL,1993) Amaral, W. H. “Arquitetura 
                                 j
  Cliente/Servidor Orientada a Objeto” Tese de 
  Mestrado, IME, 1993.
• (NAVATHE 1994) Navathe Shamkant B &
  (NAVATHE,1994) Navathe, Shamkant B. & 
  Elmasri, Ramez “Fundamentals of Database 
  Systems” 2nd Ed., Benjamin Cummings, CA, 
          ”
  1994.

Apostilas - cliente servidor - aula 1 - fabiula

  • 1.
    Arquitetura Cliente  Arquitetura Cliente Servidor Fabiula d b l de Aquino
  • 2.
    Objetivos deste encontro Objetivos deste encontro • Definição dos conceitos relacionados – Cliente/Servidor / – Distribuindo papéis – Cliente • Gordo e magro – Servidor d – Vantagens e Desvantagens da arquitetura – Web‐Based
  • 3.
    Cliente/Servidor • O termoCliente/Servidor refere‐se ao método de distribuição de aplicações computacionais ç p ç p através de muitas plataformas. Tipicamente essas aplicações estão divididas entre um provedor de acesso e uma central de dados e numerosos clientes contendo uma interface gráfica para usuários para acessar e manipular dados.
  • 4.
    Cliente/Servidor • Modelo ondedois ou mais computadores interagem de modo que um oferece os g q serviços aos outros. • Este modelo permite aos usuários acessarem informações e serviços de qualquer lugar.
  • 5.
    Cliente/Servidor • Arquitetura computacionalque envolve requisições de serviços de clientes para q ç ç p servidores. Uma rede Cliente/Servidor é uma extensão lógica da programação modular modular.
  • 6.
    Cliente/Servidor • Uma aplicaçãoCliente/Servidor pode ser estruturada em três níveis: – Interface com o usuário – Processamento – Dados • Simples requer dois tipos de máquinas: – Cliente: executa programas que compreendem a interface com o usuário; – Servidor: implementa camadas de processamento e de dados.
  • 7.
  • 8.
    Cliente Servidor Cliente Servidor • Na alternativa (a), executa‐se no cliente só a p parte da interface dependente do terminal p • Na alternativa (b), todo o software de interface com usuário executa no cliente • Exemplo da alternativa (c): verificação de consistência do preenchimento de um formulário feito no cliente
  • 9.
    Cliente Servidor Cliente Servidor • Na alternativa (d), a aplicação executa na máquina cliente, indo para o servidor somente q p as operações sobre as base de dados. Exemplo: – muitas aplicações bancárias; • Na alternativa (e), o disco local no cliente mantêm parte dos dados. p • Exemplo: browser web mantendo uma cachê;
  • 10.
    Cliente Servidor Cliente Servidor • Recentemente tem‐se evitado as alternativas ( ) (d) e (e) devido a problemas de ( ) p gerenciamento e por tornar o software cliente dependente da plataforma subjacente do cliente • Clientes gordos ( b l (abordagens ( ) e ( )) (d) (e)):evitar; • Clientes magros (abordagens (a) a (c)): mais fáceis de gerenciar.
  • 11.
    Cliente • Sempre iniciapedidos de servidores; • Espera por respostas; • Recebe respostas; • Normalmente, se conecta a um pequeno número de servidores de uma só vez; ; • Normalmente, interage diretamente com os usuários fi i através d qualquer i t f á i finais t é de l interface com o usuário , como interface gráfica do usuário.
  • 12.
    Cliente • Cliente, tambémdenominado de “front‐end” e “WorkStation”, é um processo que interage p q g com o usuário através de uma interface gráfica ou não permitindo consultas ou comandos não, para recuperação de dados e análise e representando o meio pela qual os resultados são apresentados.
  • 13.
    Cliente • Além disso,apresenta algumas características distintas: – É o processo ativo na relação Cliente/Servidor. – Inicia e termina as conversações com os Servidores, solicitando serviços distribuídos. – Nã Não se comunica com outros Clientes. i t Cli t – Torna a rede transparente ao usuário.
  • 14.
    Servidor • Sempre esperarpor um pedido de um dos clientes; • Serve os clientes pedidos, em seguida, responde com os dados solicitados aos clientes; • Um servidor pode se comunicar com outros servidores, a fim de atender uma solicitação do cliente.
  • 15.
    Servidor • Também denominadoServidor ou “back‐end”, f fornece um determinado serviço que fica ç q disponível para todo Cliente que o necessita. A natureza e escopo do serviço são definidos pelo objetivo da aplicação Cliente/Servidor.
  • 16.
    Servidor • Além disso,ele apresenta ainda algumas p p propriedades distintas: – É o processo reativo na relação Cliente/Servidor. – Possui uma execução contínua contínua. – Recebe e responde às solicitações dos Clientes. – Não se comunica com outros Servidores enquanto estiver fazendo o papel de Servidor. – Presta serviços distribuídos. – Atende a diversos Clientes simultaneamente. Atende a diversos Clientes simultaneamente.
  • 17.
    Organização de Servidores Organização de Servidores • Servidor interativo: o próprio servidor manipula a requisição e, se necessário, p q ç retorna uma resposta ao cliente; • Servidor concorrente: repassa para uma thread ou processo em separado a requisição e imediatamente espera pela próxima l ó requisição
  • 18.
    Tipos de servidores Tipos de servidores • Servidor de Arquivos • Servidor de Impressora Servidor de Impressora • Servidor de Banco de Dados • Servidor de Redes • Servidor de Telex Servidor de Telex • Servidor de Fax • Servidor de Processamento e Imagens • Servidor de Comunicação e etc. Servidor de Comunicação e etc
  • 19.
    Comunicação Cliente/Servidor ComunicaçãoCliente/Servidor • Através de portas conhecidas designadas pela Autoridade para Atribuição de Números na p ç Internet (Iana). Ex: FTP‐21, HTTP‐80 • Através de um daemon que registra os servidores em execução • Através de um superservidor, que escuta em várias portas e repassa a requisição a um servidor específico.
  • 20.
  • 21.
    Vantagens • Na maioriados casos, a arquitetura cliente/servidor permite que os papéis e p q p p responsabilidades de um sistema de computação possam ser distribuídos entre vários computadores independentes que são conhecidos por si só através de uma rede rede.
  • 22.
    Vantagens • Isso criauma vantagem adicional para essa q arquitetura: – Maior facilidade de manutenção. Por exemplo, é possível substituir, reparar, atualizar ou mesmo realocar um servidor de seus clientes, enquanto continuam a ser a consciência e não afetado por essa mudança;
  • 23.
    Vantagens • Todos osdados são armazenados nos servidores, q que g geralmente p possuem controles de segurança muito maior do que a maioria dos clientes clientes. • Servidores podem controlar melhor o acesso e recursos, para garantir que apenas os clientes l com as permissões adequadas podem acessar e alterar dados;
  • 24.
    Vantagens • O armazenamentode dados é centralizada, as atualizações dos dados são muito mais fáceis ç de administrar, em comparação com o paradigma P2P onde uma arquitetura P2P P2P, P2P, atualizações de dados podem precisar ser distribuída e aplicada a cada ponto na rede rede, que é o timeconsuming é passível de erro, como pode haver milhares ou mesmo milhões de pares;
  • 25.
    Vantagens • Muitas tecnologias avançadas de clientes/servidor já estão disponíveis, que j p q foram projetadas para garantir a segurança, facilidade de interface do usuário e facilidade de uso; • Funciona com vários clientes diferentes de á l f capacidades diferentes.
  • 26.
    Vantagens • Confiabilidade – Se uma máquina apresenta algum problema, q p g p , ainda que seja um dos Servidores, parte do Sistema continua ativo. • Matriz de Computadores agregando  capacidade de processamento capacidade de processamento – A arquitetura Cliente / Servidor provê meios para que as tarefas sejam feitas sem a monopolização dos recursos. Usuários finais podem trabalhar localmente.
  • 27.
    Vantagens • O Sistemacresce facilmente – Torna‐se fácil modernizar o Sistema quando q necessário. • O Cliente e o Servidor possuem ambientes operacionais individuais / Sistemas Abertos – Pode‐se misturar várias plataformas para melhor atender às necessidades individuais de diversos setores e usuários.
  • 28.
    Desvantagens • Redes detráfego de bloqueio é um dos p problemas relacionados com o modelo cliente/servidor. – Como o número de solicitações simultâneas de cliente para um determinado servidor, o servidor pode ficar sobrecarregado;
  • 29.
    Desvantagens • O paradigmacliente/servidor não tem a robustez de uma rede P2P. – Sob cliente/servidor, se um servidor crítico falhar, os pedidos dos clientes não podem ser cumpridos. – Em redes P2P, os recursos são normalmente distribuídos entre vários nós Mesmo se um ou nós. mais nós partem e abandonam baixar um arquivo, por exemplo os nós restantes ainda deve ter os exemplo, dados necessários para completar o download.
  • 30.
    Desvantagens • Manutenção – As diversas partes envolvidas nem sempre p p funcionam bem juntas. Quando algum erro ocorre, existe uma extensa lista de itens a serem , investigados. • Ferramentas – A escassez de ferramentas de suporte, não raras vezes obriga o d bi desenvolvimento d f l i de ferramentas próprias. Em função do grande poderio das novas linguagens d programação, esta difi ld d está li de ã dificuldade á se tornando cada vez menor.
  • 31.
    Desvantagens • Treinamento – A diferença entre a filosofia de desenvolvimento ç de software para o microcomputador de um fabricante para o outro, não é como a de uma p , linguagem de programação para outra. Um treinamento mais efetivo torna‐se necessário. • Gerenciamento –A Aumento d complexidade d ambiente e a da l id d do bi escassez de ferramentas de auxílio tornam difícil o gerenciamento d rede. i da d
  • 32.
    Arquitetura Web‐Based Arquitetura Web Based • Então, usamos o Browser como Cliente Universal • Conceito de Intranet • A camada d aplicação se quebra em d d de li ã b duas: Web e Aplicação • Evitamos instalar qualquer software no desktop e portanto, portanto problemas de manutenção
  • 33.
    Arquitetura Web‐Based Arquitetura Web Based • Evitar instalação em computadores de clientes, parceiros, fornecedores, etc. p • Às vezes, continua se a chamar isso de 3 camadas porque as camadas Web e Aplicação frequentemente rodam na mesma máquina (para pequenos volumes) ( l )
  • 34.
    Arquitetura Web‐Based Arquitetura Web Based Classe Mãe Generaliza Especializa E i li Classe Filha
  • 35.
    Problemas da Web‐Based Problemas da Web Based • Não há suporte a Thin Clients (PDA, celulares, smart cards, quiosques, ...) q q ) – preciso usar um browser (pesado) no cliente • Dificuldade de criar software reutilizável – cadê a componentização?
  • 36.
    Problemas da Web‐Based Problemas da Web Based • Fazer aplicações distribuídas multicamadas é difícil. Pois deve‐se – Implementar persistência (impedance mismatch entre o mundo OO e o mundo dos BDs relacionais) – Implementar tolerância a falhas com failover Implementar tolerância a falhas com failover – Implementar gerência de transações distribuídas – Implementar balanceamento de carga – Implementar resource pooling p p g
  • 37.
    Só isso? Só isso? • DÚVIDAS? Ú ?
  • 38.
    Referências • (AMARAL,1993) Amaral, W. H. “Arquitetura  j Cliente/Servidor Orientada a Objeto” Tese de  Mestrado, IME, 1993. • (NAVATHE 1994) Navathe Shamkant B & (NAVATHE,1994) Navathe, Shamkant B. &  Elmasri, Ramez “Fundamentals of Database  Systems” 2nd Ed., Benjamin Cummings, CA,  ” 1994.