Web Service – Sistemas distribuídos

“Um sistema distribuído é um sistema de informação que possui um conjunto de computadores independentes que cooperam uns com os outros através de uma rede de comunicação para alcançar um objetivo especifico” [Arno Puder];

Introdução

  • A forma que os componentes se comunicam:
    • Processos se comunicam através de troca de mensagens
  •  Padrões de comunicação 
    • Orientado a mensagem”: transmissor envia mensagem e não espera resposta
    •  “Orientado a request”: transmissor envia mensagem e espera uma resposta do receptor.
Exemplo de troca de mensagem
Exemplo de troca de mensagem entre cliente e servidor

Heterogeneidade

Um sistema distribuído pode possuir:

  • Diferentes tipos de rede
  • Diferentes tipos de hardware (diferentes representações de dados, diferente código máquina)
  • Diferentes sistemas operativos (diferentes interfaces para os protocolos de comunicação)
  • Diferentes linguagens de programação (diferentes representações de estruturas de dados como arrays ou registos,…)

Isso e um grande desafio para os sistemas distribuídos…

Para tentar resolver o problema da heterogeneidade define-se uma camada de software intermédia: middleware

middleware

Exemplo de middleware em camada
Exemplo de middleware em camada

Um grande desafio e prover segurança utilizando esse serviço. Desafios na implementação de sistemas distribuídos:

  1. Escalabilidade 
  2. Abertura 
  3. Tolerância a Falhas 
  4. Segurança 
  5. Transparência