Resumo

Este artigo tem por objetivo introduzir o leitor ao universo da computação distribuída. Para isso, é feita uma introdução que mostra conceitos e definições sobre a mesma e os sistemas distribuídos, essenciais para a compreensão do desenvolvimento desse trabalho. Em seguida, são apresentados três padrões arquiteturais para computação distribuída, arquiteturas de múltiplos processadores, arquiteturas cliente-servidor e arquiteturas de objetos distribuídos,seus principais conceitos e exemplos de aplicação e por fim, serão apresentados os benefícios do uso de cada um desses padrões.

1. Introdução

1.1 – Definições

1.1.1 – Computação Distribuída

Uma das definições mais simples de computação distribuída apresenta a mesma como uma forma de executar aplicações cooperantes em máquinas diferentes. Diversas outras definições também podem ser encontradas, como a de que ela é a adição do poder computacional de diversos computadores interligados por uma rede. A computação distribuída começou a dar seus primeiros passos com o advento das redes de computadores como intranet's, redes públicas ou privadas e a própria internet. Atualmente, os sistemas computacionais estão cada vez mais elaborados e complexos, e grande parte dos computadores do mundo está interligada por essas redes. No entanto, esse tipo de computação apresenta uma série de dificuldades para desenvolver, gerenciar e manter o sistema. Além disso, o controle do acesso concorrente a dados e a recursos compartilhados, evitar que falhas de máquinas ou da rede comprometam o funcionamento do sistema e a garantia da segurança e do sigilo dos dados são também as principais dificuldades características da computação distribuída.

1.1.2 – Sistemas Distribuídos

O panorama descrito anteriormente, tem permitido cada vez mais o surgimento de sistemas distribuídos, que são a união de diversos computadores via rede com o objetivo de compartilhar a execução de tarefas. Isso aumenta consideravelmente o poder de processamento, comportando uma maior carga e maior número de usuários, além de proporcionar melhor tempo de resposta e maior confiabilidade. No entanto, os sistemas distribuídos apresentam algumas desvantagens, como o comportamento imprevisível, em virtude do uso da rede e a possibilidade de ocorrerem falhas nos computadores e na própria rede. Além disso, os recursos computacionais utilizados não são totalmente controlados pelo pelo sistema, uma vez que podem empregar recursos de terceiros. Por fim, é preciso citar também que os sistemas distribuídos são bastante influenciados pela velocidade das redes das quais dependem. Para contornar esses problemas, os sistemas distribuídos são implementados seguindo diversos padrões de arquitetura, sendo que cada tipo de sistema se adequa melhor a um padrão, e pode ter suas dificuldades minimizadas se o padrão arquitetural for bem escolhido.

1.2 – Padrões de arquitetura

Como visto anteriormente, os sistemas distribuídos devem ser implementados seguindo diversos padrões de arquitetura, sendo que cada tipo de sistema distribuído pode exigir um padrão de arquitetura específico. Esses padrões são constituídos de um conjunto de politicas que fornecem a melhor maneira de se implementar um sistema distribuído. Nesse trabalho, apresentaremos três padrões de arquitetura mais comumente utilizados, que são: arquiteturas de múltiplos processadores, arquiteturas cliente-servidor e arquiteturas de objetos distribuídos...