Para Van Steen Tanenbaum, Um sistema distribuído é um conjunto de computadores independentes entre si que se apresenta a seus usuários como um sistema único e coerente, com base nessa afirmação podemos considerar que um sistema distribuído é uma colação de computadores e softwares interconectados por uma rede, projetados para resultar em uma aplicação integrada.
Como Funciona o Sistema Distribuído
Nos sistemas distribuídos as tarefas são divididas entre as maquinas sem interação direta do usuário, essa é principal diferença entra um rede de computadores e um sistema distribuído, já que nas redes de computador todas as decisões de processamento e armazenamento é definido pelo usuário. Encontramos como características dos Sistemas Distribuídos a concorrência, a possibilidade execução concorrente de tarefas, e caso seja necessário aumentar a capacidade de processamento ou armazenamento basta adicionar novas máquinas ao sistema. Para a cooperação entre programas e estações as informações são trocadas através de mensagens, caso uma estação do sistema falhe o serviço não será comprometido, porque outra máquina irá assumir as tarefas da máquina que apresentou falha. Temos como exemplo de aplicações para sistemas distribuídos algumas aplicações comerciais, aplicação de internet, aplicações de informações multimídias e áreas de trabalho compartilhadas. A transparência do sistema para o usuário final é realizado através do Middleware, esse software é o responsável por fazer cada máquina com suas características, seus sistemas operacionais e características de software, fazendo com que o sistema tenha como resultado final acesso aos recursos, transparência, abertura e escalabilidade, essas características são os objetivos finais para um sistema distribuído.
Os Recursos Encontrados
O acesso aos recursos, é a forma de facilitar aos usuários e aplicações a possibilidade de acessar os recursos do sistema de forma controlada e eficiente, agregando uma grande economia ao sistema, os principais recursos compartilhados são as impressoras, computadores, um problema encontrado no compartilhamento de recursos é a segurança da informação, onde se faz necessário ter políticas de segurança visto que informações confidenciais, como senhas e autenticações estão trafegando na rede, sem tais políticas é possível montar rastreamento das informações, como também é possível repassar informações desnecessárias em massa, os chamados Spans.
Os Tipos de Transferências
A transparência é a obrigação de ocultar do usuário final o fato de que os processos e recursos não estão fisicamente em um só equipamento, mas na realidade distribuídos em várias estações, as transparência são classificadas por tipos a partir de suas características.
- Transparência de Acesso oculta a distribuição do modo de acesso ao recurso e na distribuição de representação de dados. É responsável por inibir as diferenças entre as arquiteturas e protocolos de cada máquina.
- Transparência de Localização oculta lugar físico onde o recurso está localizado. Onde os usuários não são capazes de definir a localização do recurso, também por der chamado de nomeação, no caso do Google, o define o serviços porem não é possível definir com precisão qual o servidor está sendo usado.
- Transparência de Migração oculta a possibilidade de transferir um recurso para outra estação ou local físico. Define a possibilidade de migração dos recursos para melhor resposta de desempenho, por questão de segurança, e quaisquer outro motivo que demande essa mudança, deve ser feita pelo sistema de forma automatizada, sem intervenção do usuário, deve manter o nome do objeto e deve garantir a comunicação do forma continua.
- Transparência de Relocação oculta a possibilidade do recurso ser movido para outra estação durante a execução do processo. É a forma de garantir que um recurso pode ser movido de localização durante o seu uso, no caso do Roaming celular, onde o aparelho pode mudar de celular, antena, dentro da mesma área de cobertura sem a necessidade de desligar e religar o sistema.
- Transparência de Replicação inibe para o usuário que o recurso está fisicamente em mais de um local, garantindo uma maior segurança em relação a disponibilidade. É a forma de aumentar a confiabilidade e desempenho de um recurso tendo ele disponível em vários locais físicos diferentes, em formas de instancias, essa replicação deve ser mascarada, ou seja o usuário não deve conhecer a existência de várias instancias, pode gerar problemas de consistência.
- Transparência de Concorrência inibe a informação que o recurso pode ser compartilhado por diversos usuários de forma concorrente. É o compartilhamento competitivo de recursos, serve para garantir uma maior consistências do serviços.
- Transparência de falhas inibe a ocorrência de falhas e a recuperação de um recurso. Não deve deixar que o usuário perceba que o serviço travou, ou parou de funcionar, extremamente difícil de implementar tal tipo de transparência.
A transparência nem sempre é aplicada completamente, deve-se analisar a real demanda para a implantação dessa característica.
Outras Características
A Abertura é a característica que determina se um sistema pode ser ampliado de formas diferentes, com relação a hardware, onde podem ser incluídos dispositivos de fabricação diversa, e software, inclusão de modulo do sistema operacional, adição de protocolos de comunicação e compartilhamento de recursos. A interoperabilidade é a forma de garantir que duas ou mais implementações de sistemas ou componentes de fornecedores diferentes trabalhem de forma conjunta. A portabilidade também é uma característica da abertura, a portabilidade é a maneira de garantir que um sistema funcione em um outro sistema sem a mesma interfaces e equipamentos do sistema de origem. É muito importante para esta característica é a padronização dos serviços. Temos como quarta característica a Escalabilidade, podemos afirmar que os sistemas são classificados de 3 formas com relação a escalabilidade, por tamanho, em termos geográficos e termos administrativos. O aumento do tamanho dos sistemas faz com que o problemas também aumente, podemos conceituar o tamanho como serviços centralizados, onde um servidor único é usado por todos os usuários, pode gerar um gargalo no sistema. Dados centralizados, uma fonte de dados única disponível para o usuário. Algoritmos centralizados, o processamento das informações é feito com base nas informações enviadas e solicitados, é de extrema dificuldade a implementação e o congestionamento causado no barramento de rede.
A Escalabilidade Geográfica é aquela onde os usuários e recursos não estão em locais físicos próximos, os principais pontos de dificuldade nesse tipo de implementação é o fato de que os sistemas distribuídos foram desenvolvidos originalmente para redes locais, as comunicações em redes de longa distância não é completamente confiável. A Escalabilidade Administrativa é uma forma bem simples de ser gerenciada, mesmo com várias organizações, a utilização dos recursos compartilhados podem gerar problemas, devido à dificuldade de implementação de políticas. Para escalonar os sistemas podemos ocultar as latências, distribuir os sistemas, ou replica-los. Os principais sistemas distribuídos na área de informática são os cluster e o mainframes. Os cluster conjuntos de maquinas são os mais comuns nos dias de hoje, já o mainframes, maquinas de porte altíssimo, foram muito usados no passado.