Arquitetura de Sistemas Distribuídos e Comunicação via Sockets

Classificado em Computação

Escrito em em português com um tamanho de 4,5 KB.

Camadas em Aplicações

Existem 3 camadas:

  • Camada de apresentação (desktop, conexão TCP/IP);
  • Camada de negócio (ou de aplicação) - conexão com banco de dados;
  • Camada de acesso aos dados - servidor de dados.

Aplicação com 3 camadas:

  • Ajuda a melhor distribuir os componentes de uma aplicação e reduz problemas de manutenção.

Problemas na arquitetura 3 camadas:

  • Instalar a aplicação inicial nos desktops clientes;
  • Dificuldade de instalar software em desktops fora do controle administrativo.

Solução:

  • Adotar o browser como cliente universal;
  • Dividir a camada de aplicação em duas: aplicação e web.

Arquitetura com Múltiplas Camadas

  • Camada de apresentação;
  • Camada Web;
  • Camada de Aplicação;
  • Camada de Dados.

Plataforma Robusta

  • Acessada de qualquer lugar;
  • Executada em máquinas remotas;
  • Questões de segurança.

Definição de Sistema Distribuído

Um sistema distribuído é uma coleção de computadores autônomos conectados por uma rede e equipados com um sistema de software distribuído.

Onde Utilizar

  • Rede de computadores em uma fábrica;
  • Sistema de reserva de passagens aéreas;
  • Serviços da Internet: Netnews, WWW.

Vantagens sobre o Sistema Cooperativo

  • Melhor relação custo/benefício;
  • Maior domínio de aplicações;
  • Maior confiabilidade e disponibilidade.

Desvantagens

  • Segurança pode ser comprometida: fácil acesso a dados e recursos reservados;
  • Falta de software adequado.

Sistemas Operacionais de Rede

  • Estações de trabalho conectadas por uma LAN;
  • Cada estação tem seu próprio sistema operacional.

Sistemas Distribuídos Autênticos

  • Gerenciamento de processos homogêneo;
  • Sistema de arquivos homogêneo.

Sistemas Timesharing para Multiprocessadores

  • Fila única de processos prontos para execução: melhor distribuição de carga.

Características Básicas de Sistemas Distribuídos

Compartilhamento de recursos

  • Componentes de hardware: discos, impressoras, etc.;
  • Componentes de software: arquivos, bancos de dados.

Extensibilidade (Openness)

  • Extensões de hardware: periféricos, memória, interfaces de comunicação, etc.;
  • Extensões de software: funções de SO, protocolos de comunicação.

Concorrência

  • Mais de um processo em execução a cada instante:
  • Atividades separadas de usuários;
  • Independência de recursos.

Escalabilidade (crescimento gradativo suave)

Tolerância a falhas

Transparência

Comunicação Distribuída - Socket

Camadas de Rede

Aplicação / Transporte / Rede / Enlace / Física

Principais Características

  • Protocolo da camada de transporte;
  • Confiável;
  • Detecção de erros;
  • Complexo.

Socket: é um objeto que permite enviar e receber dados utilizando uma rede.

Servers: São computadores que disponibilizam serviços através de portas.

Passos para Estabelecer um Socket no Lado do Cliente

  1. Criar um socket com a chamada ao sistema socket();
  2. Conectar o socket ao endereço do servidor usando a chamada ao sistema connect();
  3. Enviar e receber dados. Existem vários meios de se fazer isto, mas o mais simples é usar as chamadas ao sistema read() e write().

Passos para Estabelecer um Socket no Lado do Servidor

  1. Criar um socket com a chamada ao sistema socket();
  2. Vincular o socket a um endereço usando a chamada ao sistema bind(). Para um socket servidor na Internet, um endereço consiste de um número de porta no host;
  3. Escutar por conexões com a chamada ao sistema listen().

Entradas relacionadas: