Fonte do texto:
https://sites.google.com/site/proffdesiqsistemasdistribuidos/aulas/caracterizacao-de-sistemas-distribuidos
Caracterização de
Sistemas Distribuídos
Introdução Nos primórdios da
computação os sistemas eram todos centralizados. Todo o processamento era
feito no mainframe. Os terminais eram usados apenas para entrada/saída de
dados. Com o tempo, surgiram novas arquiteturas de computação que buscavam
descentralizar o processamento. Foi quando surgiram os primeiros sistemas
distribuídos. A ideia, como o próprio termo sugere, era de distribuir o
processamento ao invés de adotar uma arquitetura centralizada no mainframe. Conceito de Sistema
Distribuído O conceito de
sistema distribuído é de um sistema que possui componentes localizados em
computadores interligados em rede e que se comunicam e coordenam suas ações
através da troca de mensagens entre os componentes. É comum pensarmos em
componentes como sendo apenas servidores e máquinas conectadas em rede, mas
quando falamos de componentes podem ser componentes de hardware (servidores)
ou de software (aplicações e serviços). Os componentes interligados em rede
podem estar separados por qualquer distância. No mesmo edifício de uma
empresa, na mesma cidade, mesmo estado, no mesmo país ou até em continentes
diferentes. Exemplos de
Sistemas Distribuídos Em nossos dias
todas as aplicações são baseadas em redes de computadores. Nenhuma aplicação
ou serviço funciona de forma isolada. As redes são projetadas de forma a
suportar uma ampla gama de serviços e aplicações. São alguns exemplos
de sistemas distribuídos: · A internet é o
maior exemplo de sistema distribuído · Qualquer aplicação
intranet · Qualquer aplicação
mobile · Aplicações e
serviços baseados na Computação em Nuvem A Internet em
particular é um sistema distribuído muito grande. Ela conecta usuários
através de sites e serviços, e-mail, transferência de arquivos, chat, etc. Os
serviços estão localizados em máquinas dispersas que são interligadas por
algum tipo de rede. Diferentes aplicações e serviços se comunicam através da
rede, ele trocam mensagens através de um meio de comunicação comum. Estes
meios de comunicação permitem que aplicações e serviços em plataformas
diferentes consigam se comunicar e cooperar. Eles são chamados de protocolos. A Intranet é uma
parte da Internet administrada separadamente por uma empresa. Uma intranet é
composta de várias redes locais ( LANs ) interligadas por conexões de
backbone. A configuração de rede de uma Intranet pode variar desde uma LAN em
um único site até um conjunto de LANs interconectadas pertencentes às filiais
de uma grande empresa, localizadas inclusive em países diferentes. Uma Intranet pode
ser conectada à Internet através de um roteador que permite aos usuários da
Intranet terem acesso a serviços da Internet, serviços que são providos de
fora da empresa. Também é possível que os usuários de outras Intranets tenham
acesso aos serviços que a Intranet oferece. A segurança é crucial pois não
deve ser permitido que um usuário de uma empresa concorrente tenha acesso aos
projetos e clientes de uma empresa, da mesma forma que um hospital pode não
querer que informações dos seus pacientes sejam acessadas por empresas
farmacêuticas. Desta forma vemos
que os sistemas distribuídos já são uma realidade, sendo importante conhecer
os conceitos e arquiteturas de sistemas distribuídos. A Computação móvel
também é um tipo de sistema distribuído que conecta diversos dispositivos
tais como notebooks, PDA, smartphone, Tablet além de outros dispositivos que
são incorporados em carros, geladeiras, máquinas de lavar, smartwatch, etc.
Estes dispositivos acessam serviços através da Internet. Com o avanço das
redes sem fio e da miniaturização do hardware temos componentes interligados
por redes sem fio com alta portabilidade e capacidade de se conectar com
redes em lugares diferentes. A computação móvel
também é chamada computação nômade e permite a execução de tarefas de
computação com alta mobilidade. Os recursos são acessados através da
internet de qualquer lugar. Por que Sistemas
Distribuídos? O compartilhamento
de recursos é um bom motivo para os SD. Recursos podem ser compartilhados por
diferentes servidores e consumidos por clientes. Serviços podem ser
compartilhados através da internet, sendo encapsulados em objetos que podem
ser acessados por outros objetos ou por aplicações cliente. O compartilhamento
de recursos é a principal motivação para se construir sistemas distribuídos.
O recurso pode ser um componente de hardware, um disco ou impressora, um
software, um serviço, um arquivo e objetos de dados de todos os tipos, áudio,
vídeo, etc. Os Desafios dos
Sistemas Distribuídos. Os componentes de
um sistema distribuídos são um grande desafio. Em sistemas centralizados isso
não existe pois há um único componente que é o próprio sistema centralizado.
Em SD é um pouco diferente pois temos diversos componentes espalhados, ou
distribuídos por diferentes servidores, que podem ser heterogêneos, com
diferentes sistemas operacionais, de diferentes fabricantes, com diferentes
capacidades de processamento. Daí surgem diversos
desafios na computação distribuída, entre os quais podemos citar: · Segurança · Escalabilidade · Desempenho · Comunicação entre
os componentes · Tolerância a falhas Todos estes
aspectos devem ser considerados quando trabalhamos com sistemas distribuídos.
Em outras palavras: ·
Como podemos nos assegurar que somente os clientes
válidos podem ter acesso aos serviços/componentes do sistema? (Segurança) ·
Como podemos garantir que o sistema distribuído
suportará aumento no número de usuários ou requisições? (Escalabilidade) ·
Como podemos garantir um desempenho aceitável em um
sistema distribuído, onde os componentes estão interligados por redes que nem
sempre possuem a mesma velocidade e onde os componentes nem sempre tem a
mesma capacidade de processamento, sem que surjam gargalos que comprometam o
desempenho. (Desempenho) ·
Como podemos garantir que todos os componentes possam
se comunicar, considerando ambientes heterogêneos de rede, servidores,
diferentes padrões de arquitetura e protocolos de comunicação? (CORBA, .net,
RMI, SOAP, REST, etc.) ·
Como podemos garantir a tolerância a falhas em um
sistema com componentes distribuídos em servidores conectados a redes e
ambientes? (Tolerância a falhas) A solução envolve não apenas projeto e
arquitetura do software mas também infraestrutura na qual o software será
executado. Consequências do
uso de Sistemas Distribuídos Como em um SD os
componentes estão dispersos geograficamente surgem consequências a respeito
dessa característica: Concorrência - Como os processos são distribuídos pela
rede a execução concorrente de programas é a norma. Um servidor executa um
processo enquanto outro processo é executado em outra máquina sendo que ambos
compartilham recursos como banco de dados, largura de banda de rede, discos,
etc. A disputa por estes recursos compartilhados pelos processos que são
executados concorrentemente é uma consequência dos SD e também um desafio a
ser superado. A coordenação de processos em execução concorrente é uma das
formas de tratar a concorrência. Inexistência de relógio global - Em um SD, os processos precisam cooperar
de forma coordenada através da troca de mensagens. A coordenação considera
compartilhamento do tempo em que os processos são executados. O problema é
que existem limites para a precisão com a qual os servidores sincronizam os
relógios em uma rede. O fuso horário é um fator complicador na sincronização
dos processos. Falhas independentes - Em qualquer sistema existem falhas e nos
SD não é diferente. Os projetistas devem considerar as consequências de cada
falha. Falhas de rede, falhas de banco de dados, falhas de comunicação,
falhas de todos os tipos acontecem. As falhas na rede
são problemáticas pois elas resultam no isolamento dos componentes do SD que
não podem mais se comunicar e trabalhar juntos. Lentidão na rede também pode
afetar os processos em execução.A falha de um componente ou termino de um
processo em um componente nem sempre é percebida imediatamente pelos demais
componentes. |
Nenhum comentário:
Postar um comentário
Comente aqui...