Your SlideShare is downloading. ×
Desenvolvimento de Sistemas Cliente/Servidor - Estrutura de sistemas cliente servidor
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Desenvolvimento de Sistemas Cliente/Servidor - Estrutura de sistemas cliente servidor

6,496
views

Published on

Desenvolvimento de Sistemas Cliente/Servidor

Desenvolvimento de Sistemas Cliente/Servidor


0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
6,496
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
181
Comments
0
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Desenvolvimento de Sistemas Cliente/Servidor UNICEUMA Departamento de Informática Prof. Msc. Eduardo Freire [email_address]
  • 2. Desenvolvimento de Sistemas Cliente/Servidor – A estrutura dos sistemas Cliente / Servidor
    • Componentes da Arquitetura Cliente / Servidor
      • Conforme visto, a arquitetura Cliente/Servidor é composta de dois componentes físicos que se comunicam através da rede
        • A estação de trabalho do usuário
        • O servidor (de banco de dados, de aplicação, de arquivos, etc.)
      • Para se estabelecer a comunicação entre esses dois componentes são utilizadas várias camadas de software que são instaladas em cada componente físico
  • 3. Desenvolvimento de Sistemas Cliente/Servidor – A estrutura dos sistemas Cliente / Servidor
    • Componentes da Arquitetura Cliente / Servidor
      • A estação de trabalho cliente deve ter, além da aplicação final, vários outros elementos para acessar os recursos e serviços do servidor através de rede
    SERVIDOR Serviços MIDDLEWARE Serviços Específicos Protocolos de Comunicação SO de Rede CLIENTE Aplicações Bibliotecas para acesso ao servidor
  • 4. Desenvolvimento de Sistemas Cliente/Servidor – A estrutura dos sistemas Cliente / Servidor
    • Componentes da Arquitetura Cliente / Servidor
      • Os sistemas que rodam nos dois lados devem ser organizados por meio de camadas de software que é logicamente, uma posição entre um alto nível – camada que consiste a interação do usuário com a aplicação – e a camada que fica abaixo do sistema operacional
      • Note que, logicamente, a camada do middleware estende máquinas múltiplas excedentes
  • 5. Desenvolvimento de Sistemas Cliente/Servidor – A estrutura dos sistemas Cliente / Servidor
    • Componentes da Arquitetura Cliente / Servidor
      • Exemplo: Arquitetura Cliente / Servidor para um servidor de Banco de Dados (SGBD)
        • A arquitetura pode ser composta por três componentes (camadas)
          • Cliente
          • Middleware
          • Servidor
        • O cliente deve ter a aplicação final e outro componente (o Database Engine), para acessar a base de dados em um SGBD através de rede
  • 6. Desenvolvimento de Sistemas Cliente/Servidor – A estrutura dos sistemas Cliente / Servidor
    • Componentes da Arquitetura Cliente / Servidor
      • Exemplo: Arquitetura Cliente / Servidor para um servidor de Banco de Dados (SGBD)
  • 7. Desenvolvimento de Sistemas Cliente/Servidor – A estrutura dos sistemas Cliente / Servidor
    • Componentes da Arquitetura Cliente / Servidor
      • Exemplo: Arquitetura Cliente / Servidor para um servidor de Banco de Dados (SGBD)
        • Database Engine
          • biblioteca fornecida pelo fornecedor da ferramenta de desenvolvimento com o objetivo de fornecer uma forma única e transparente da aplicação acessar diferentes bases de dados
            • Ex: BDE (Borland Database Engine)
  • 8. Desenvolvimento de Sistemas Cliente/Servidor – A estrutura dos sistemas Cliente / Servidor
    • Componentes da Arquitetura Cliente / Servidor
      • Exemplo: Arquitetura Cliente / Servidor para um servidor de Banco de Dados (SGBD)
        • SQL Links
          • “ Driver” fornecido também pelo fornecedor da ferramenta de desenvolvimento responsável pela comunicação do Database Enginer com uma base de dados específica
          • Sua principal característica é traduzir os comandos utilizados pelo Database Enginer para comandos conhecidos pela base de dados utilizada
            • Ex.: SQL links para acessar Oracle, Sybase, MS SQL Server, Interbase, etc.
  • 9. Desenvolvimento de Sistemas Cliente/Servidor – A estrutura dos sistemas Cliente / Servidor
    • Componentes da Arquitetura Cliente / Servidor
      • Exemplo: Arquitetura Cliente / Servidor para um servidor de Banco de Dados (SGBD)
        • SQL Links
          • A aplicação pode optar por utilizar o padrão ODBC para acessar a base de dados, ao invés de utilizar SQL Links (acesso nativo)
          • Entretanto, o acesso feito pelos SQL Links ainda possui um desempenho superior em relação ao acesso feito via “driver” ODBC
  • 10. Desenvolvimento de Sistemas Cliente/Servidor – A estrutura dos sistemas Cliente / Servidor
    • Componentes da Arquitetura Cliente / Servidor
      • Exemplo: Arquitetura Cliente / Servidor para um servidor de Banco de Dados (SGBD)
        • Client do Banco de Dados
          • API fornecida pelo fornecedor do SGDB e instalada na estação cliente para estabelecer a comunicação com o banco de dados
          • Nessa API se encontram as funções de acesso a base de dados
          • É também, responsável por utilizar um determinado protocolo de rede para encontrar o servidor de banco para que a aplicação possa acessá-lo enviando comandos e buscando os dados
  • 11. Desenvolvimento de Sistemas Cliente/Servidor – A estrutura dos sistemas Cliente / Servidor
    • Componentes da Arquitetura Cliente / Servidor
      • Exemplo: Arquitetura Cliente / Servidor para um servidor de Banco de Dados (SGBD)
        • Client do Banco de Dados
          • API fornecida pelo fornecedor do SGDB e instalada na estação cliente para estabelecer a comunicação com o banco de dados
          • Nessa API se encontram as funções de acesso a base de dados
          • É também, responsável por utilizar um determinado protocolo de rede para encontrar o servidor de banco para que a aplicação possa acessá-lo enviando comandos e buscando os dados
  • 12. Desenvolvimento de Sistemas Cliente/Servidor – A estrutura dos sistemas Cliente / Servidor
    • Componentes da Arquitetura Cliente / Servidor
      • Exemplo: Arquitetura Cliente / Servidor para um servidor de Banco de Dados (SGBD)
        • Protocolo de Rede
          • Softwares responsáveis pela transmissão dos dados pela rede entre a máquina cliente e o servidor
  • 13. Desenvolvimento de Sistemas Cliente/Servidor – A estrutura dos sistemas Cliente / Servidor
    • Arquitetura Cliente / Servidor
      • Distribuição Vertical
        • Arquiteturas cliente/servidor multithread são a consequência da divisão de aplicações que rodam na interface do usuário, onde vários componentes são processados
        • Normalmente as diferentes partes correspondem diretamente com a organização lógica de aplicações, ou seja, em muitos ambientes de negócios, o processamento distribuído é equivalente à organização de uma aplicação cliente-servidor em uma arquitetura multithread
  • 14. Desenvolvimento de Sistemas Cliente/Servidor – A estrutura dos sistemas Cliente / Servidor
    • Arquitetura Cliente / Servidor Multithread
      • Distribuição Vertical
        • Este tipo de distribuição é conhecido como distribuição vertical , que se caracteriza pelo fato de componentes diferentes se localizam logicamente em diferentes máquinas
  • 15. Desenvolvimento de Sistemas Cliente/Servidor – A estrutura dos sistemas Cliente / Servidor
    • Arquitetura Cliente / Servidor Multithread
      • Distribuição Horizontal
        • Entretanto, a distribuição vertical não é o único caminho para a organização de aplicações cliente-servidor ,e em muitos casos nem é o mais interessante.
        • Nas arquiteturas modernas, é comum que a distribuição de cliente e servidores pode ser logicamente em componentes diferentes mas rodando numa mesma máquina.
        • Esta distribuição conhecida como distribuição horizontal
  • 16. Desenvolvimento de Sistemas Cliente/Servidor – A estrutura dos sistemas Cliente / Servidor
    • Arquitetura Cliente / Servidor Multithread
      • Distribuição Horizontal
        • Nesse tipo de distribuição, um cliente ou um servidor pode ser fisicamente dividido em partes lógica, mas cada parte roda em sua própria máquina
  • 17. Desenvolvimento de Sistemas Cliente/Servidor – A estrutura dos sistemas Cliente / Servidor
    • Arquitetura Cliente / Servidor Multithread
      • Distribuição Horizontal
        • Um exemplo de distribuição horizontal de um serviço web
  • 18. Desenvolvimento de Sistemas Cliente/Servidor – A estrutura dos sistemas Cliente / Servidor
    • Estrutura de uma aplicação Cliente / Servidor
      • Como foi visto, o ambiente cliente servidor permite que a aplicação seja distribuída entre dois componentes físicos
        • A estação cliente
        • O servidor de recursos/serviços
      • Entretanto, logicamente podemos identificar três camadas distintas dentro de uma aplicação
        • Apresentação
        • Lógica do Negócio
        • Gerenciamento do Recurso/Serviço
  • 19. Desenvolvimento de Sistemas Cliente/Servidor – A estrutura dos sistemas Cliente / Servidor
    • Estrutura de uma aplicação Cliente / Servidor
      • Camadas
  • 20. Desenvolvimento de Sistemas Cliente/Servidor – A estrutura dos sistemas Cliente / Servidor
    • Estrutura de uma aplicação Cliente / Servidor
      • Camadas
        • Apresentação
          • Composta por componentes responsáveis pela interação da aplicação com o usuário final
          • É responsabilidade dessa camada receber os dados e comandos do usuário e devolver-lhe informações através de elementos visuais como consultas, gráficos, relatórios e etc.
  • 21. Desenvolvimento de Sistemas Cliente/Servidor – A estrutura dos sistemas Cliente / Servidor
    • Estrutura de uma aplicação Cliente / Servidor
      • Camadas
        • Lógica do Negócio
          • Parte da aplicação responsável por manter as regras de negócio da empresa
          • Essa camada recebe as informações da camada de interface (Apresentação) e executa as operações e validações necessárias para enviá-los servidor
          • Da mesma forma, extrai as informações do servidor de acordo com as regras de negócio da aplicação e os envia para elementos da interface para que sejam exibidos
          • Portanto, essa camada é responsável em interligar a interface visual com o servidor, ou seja, é a parte funcional da aplicação
  • 22. Desenvolvimento de Sistemas Cliente/Servidor – A estrutura dos sistemas Cliente / Servidor
    • Estrutura de uma aplicação Cliente / Servidor
      • Camadas
        • Gerenciamento do Recurso/Serviço
          • Parte da aplicação responsável pelo acesso às informações do servidor
          • Como já foi visto anteriormente, grande parte dessa camada é implementada pelo próprio servidor do recurso / serviço
  • 23. Desenvolvimento de Sistemas Cliente/Servidor – A estrutura dos sistemas Cliente / Servidor
    • Estrutura de uma aplicação Cliente / Servidor
      • Camadas
        • Gerenciamento do Recurso/Serviço
          • Vejamos o caso de um SGBD
            • Normalmente o acesso aos serviços é feito através de SQL
            • Porém, é também necessário um conjunto de comandos para enviar as sentenças SQLs e gerenciar a comunicação entre a aplicação e o servidor
            • Esses comandos se encontram em bibliotecas disponibilizadas pelos próprios fornecedores de banco de dados que são instaladas em cada estação de trabalho
            • Além disso cada fabricante de ferramentas de desenvolvimento fornece também métodos e componentes capazes de simplificar e tornar mais transparente o acesso aos diversos SGDBs
  • 24. Desenvolvimento de Sistemas Cliente/Servidor – A estrutura dos sistemas Cliente / Servidor
    • Estrutura de uma aplicação Cliente / Servidor
      • Camadas
        • Vantagens da organização em camadas
          • A divisão da aplicação nessas três camadas lógicas possibilita a organização e padronização da codificação e construção da aplicação, além de proporcionar uma maior facilidade de manutenção e evolução para novas fases da arquitetura Cliente/Servidor
          • Como já foi visto, a tendência da arquitetura Cliente/Servidor é retirar cada vez mais parte do processamento da aplicação realizado pelas estações de trabalho clientes e centralizá-lo em servidores, provendo um melhor gerenciamento do processo e facilitando a evolução da funcionalidade que foi distribuída
  • 25. Desenvolvimento de Sistemas Cliente/Servidor – A estrutura dos sistemas Cliente / Servidor
    • Estrutura de uma aplicação Cliente / Servidor
      • Camadas
        • Vantagens da organização em camadas
          • A distribuição da aplicação em camadas lógicas possibilita também que cada camada possa evoluir independente das outras desde que se mantenha a interface entre elas
          • Por exemplo, pode-se alterar as regras de negócio para atender as necessidades do mercado sem necessariamente ter que modificar a camada de interface ou a camada de gerenciamento de dados
          • Por outro lado, pode-se evoluir a apresentação para novas tecnologias como multimídia, sem precisar alterar as regras de negócio
  • 26. Desenvolvimento de Sistemas Cliente/Servidor – A estrutura dos sistemas Cliente / Servidor
    • Estrutura de uma aplicação Cliente / Servidor
      • Camadas
        • Vantagens da organização em camadas
          • Evoluções tecnológicas, como a distribuição da base de dados na camada de gerenciamento de dados pode ser feita de forma transparente das demais camadas
          • Portanto, esses tipos de distribuição tornam as aplicações mais escaláveis para suportar futuras implementações possibilitando um tempo de vida muito mais longo
  • 27. Desenvolvimento de Sistemas Cliente/Servidor – A estrutura dos sistemas Cliente / Servidor
    • As características dos componentes Cliente / Servidor
      • Clientes
        • É programa aplicativo arbitrário que se torna um cliente temporariamente quando for necessário acesso remoto, mas pode executar outros processamentos locais
        • É diretamente invocado por usuário e executa somente para uma sessão
        • Executa localmente em um computador pessoal
  • 28. Desenvolvimento de Sistemas Cliente/Servidor – A estrutura dos sistemas Cliente / Servidor
    • As características dos componentes Cliente / Servidor
      • Clientes
        • Inicia ativamente a comunicação com um servidor
        • Pode acessar múltiplos serviços quando necessário, mas contata ativamente um servidor remoto de cada vez
        • Não exige hardware especial
  • 29. Desenvolvimento de Sistemas Cliente/Servidor – A estrutura dos sistemas Cliente / Servidor
    • As características dos componentes Cliente / Servidor
      • Servidor
        • É um programa privilegiado de propósito especial dedicado a fornecer um serviço, mas pode tratar de múltiplos clientes remotos ao mesmo tempo
        • É automaticamente invocado quando um sistema inicializa e continua a executar ao longo de muitas sessões
        • Roda em um computador compartilhado
  • 30. Desenvolvimento de Sistemas Cliente/Servidor – A estrutura dos sistemas Cliente / Servidor
    • As características dos componentes Cliente / Servidor
      • Servidor
        • Espera passivamente pelo contato de clientes remotos arbitrários
        • Aceita contato de clientes arbitrários, mas oferece um único serviço
        • Exige hardware poderoso e um sistema operacional sofisticado
  • 31. Desenvolvimento de Sistemas Cliente/Servidor – A estrutura dos sistemas Cliente / Servidor
    • A interação Cliente / Servidor
      • Existem diversas formas de interação Cliente / Servidor, permitindo que as informações fluam em ambas as direções
      • Em geral, clientes enviam as informações e o servidor responde
  • 32. Desenvolvimento de Sistemas Cliente/Servidor – A estrutura dos sistemas Cliente / Servidor
    • A interação Cliente / Servidor
      • Porém outras formas de interações são possíveis
        • Um único computador da classe servidor pode oferecer múltiplos serviços ao mesmo tempo, um programa de servidor separado é necessário para atender cada serviço
        • A execução de muitos servidores em uma única máquina servidora é prática porque um servidor não consome muito recurso de processamento enquanto fica esperando uma chamada
  • 33. Desenvolvimento de Sistemas Cliente/Servidor – A estrutura dos sistemas Cliente / Servidor
    • A interação Cliente / Servidor
      • Múltiplas cópias de um servidor para um único serviço
        • Um servidor capaz de atender várias solicitações ao mesmo tempo para um mesmo tipo de serviço suporta concorrência
        • Na verdade, são executadas copias (threads) do mesmo programa aplicativo na mesma máquina para cada cliente solicitante
        • Esta técnica é muito importante para alguns serviços que transferem arquivos por exemplo
  • 34. Desenvolvimento de Sistemas Cliente/Servidor – A estrutura dos sistemas Cliente / Servidor
    • A interação Cliente / Servidor
      • Servidor dinâmico
        • A maioria dos servidores concorrentes operam dinamicamente
        • Um servidor é construído para operar em duas etapas
          • Primeiro para receber as chamadas ou requisições
          • Segundo para responder as chamadas realizadas
        • O processo é simples, para cada solicitação recebida pela primeira etapa, a aplicação principal cria uma thread (cópia) de um servidor dedicado para atender aquela chamada
  • 35. Desenvolvimento de Sistemas Cliente/Servidor – A estrutura dos sistemas Cliente / Servidor
    • A interação Cliente / Servidor
      • Outras interações...
        • Um aplicativo cliente, pode fazer o contato com diversos servidores
        • Um aplicativo cliente não precisa ser restrito a um único servidor para buscar suas informações
          • Ex: para busca de data e hora
        • Um servidor, pode executar outras tarefas, como ser clientes de outros servidores
          • Ex: um servidor de BD querendo autenticar em um servidor de Rede