• Nenhum resultado encontrado

Módulo 1 - Introdução aos Sistemas de Informação Distribuídos

N/A
N/A
Protected

Academic year: 2021

Share "Módulo 1 - Introdução aos Sistemas de Informação Distribuídos"

Copied!
50
0
0

Texto

(1)

SISTEMAS DE INFORMAÇÃO DISTRIBUÍDOS – EAD

Módulo 1 - Introdução aos Sistemas de Informação Distribuídos

Caros alunos, no decorrer desta disciplina discutiremos vantagens, desvantagens, características, e principalmente, a importância dos sistemas distribuídos para os sistemas de informação em geral.

Não podemos negar o grande crescimento dos sistemas paralelos e dos distribuídos tanto no meio acadêmico como no meio comercial. A velocidade com que os sistemas de informação distribuídos têm expandido, criando diferentes características de descentralização (desvinculação de um único ponto central), tornou difícil a elaboração de uma única definição sobre os sistemas distribuídos.

Analisando algumas literaturas importantes, encontramos as seguintes definições:

Segundo [Peterson, 85], um sistema distribuído é composto por processadores que se comunicam através de linhas de comunicação com barramentos de alta velocidade ou linhas telefônicas. Cada um desses processadores possuí sua própria memória local, que é inacessível a outros processadores.

Segundo [Tanembaum, 92], um sistema distribuído é um sistema que está sendo executado por uma coleção de computadores sem memória compartilhada, sendo percebido pelo usuário como um único computador.

Adotaremos no decorrer da disciplina a seguinte definição:

Um sistema de informação distribuído é um sistema onde os componentes de hardware e software estão localizados em diferentes computadores, que estão conectados em rede, e se comunicam e coordenam suas ações através da troca de mensagens [Coulouris,01].

Fazendo uma análise rápida na definição de Tanembaum, quando ele fala na ausência de memória compart ilhada, fica claro que essa ausência faz com que a int eração exist ent e ent re os processadores acont ece de uma forma diferente do ambiente CENTRALIZADO. Mas o que seria essa diferença de int eração ent re os processadores?

No ambient e cent ralizado essa int eração seria feit a at ravés de variáveis e arquivos compart ilhados, j á no ambient e dist ribuído a int eração é feit a at ravés da t roca de mensagens.

(2)

Quando falamos de interligação em redes, comunicação e coordenação através de troca de mensagens, as seguintes características sobre os sistemas distribuídos ganham destaque:

1. A concorrência dos componentes existentes (execução independente de programas que podem ou não compartilhar algum tipo de recurso).

Em uma rede de computadores a execução de programas que são concorrentes é uma característica normal.

EX: Os usuários X e Y podem trabalhar em computadores conectados em rede compartilhando alguns arquivos ou páginas WEB. Outros computadores ou periféricos podem ser adicionados à rede, aumentando a capacidade do sistema e ampliando os recursos compartilhados.

O que seria uma concorrência?

É o acontecimento de “coisas” simultâneas em mais de um lugar, mais de um fluxo de execução, e essas “coisas” irão competir entre si pelos recursos.

2. A falta de um relógio global (Dificuldade em sincronizar, impossibilitando a mesma noção de tempo em todo o sistema).

Para que seja feita a coordenação de troca de mensagens no sistema, é necessário ter uma noção compartilhada do tempo. Nos sistemas distribuídos, não existe uma noção de tempo que seja única, do tempo correto.

EX: Em um sistema de informação distribuído, um arquivo pode ser gerado em um computador e compilado em outro, existindo uma diferença de horário entre os computadores, se os relógios de ambos não estiverem sincronizados.

3. Tolerância à falhas (dificuldade em detectar e ocultar a ocorrência de algum tipo de falha).

Um componente de um sistema distribuído pode sofrer uma falha, mas deixando outros componentes em funcionamento. Uma falha em algum tipo de componente pode ocasionar o isolamento do mesmo e dos computadores dependentes, mas não impede que o resto do sistema continue funcionando. Isso é possível devido ao “fraco” acoplamento existente entre os componentes, o que permite que um componente não afetado continue operando normalmente.

A tolerância à falhas proporciona o aumento da compatibilidade e disponibilidade do sistema de informação.

4. Modularidade do sistema

Com a separação das funcionalidades que compõem um sistema de informação distribuído, os componentes independentes com suas interfaces bem definidas ocasionam o aumento da modularidade do sistema de

(3)

informação, favorecendo a compreensão e a manutenção do sistema. É possível então adicionar outras funcionalidades ao sistema.

5. Flexibilidade do sistema

Um sistema de informação distribuído pode ser expandido de forma bem planejada e incremental, de acordo com as necessidades. Devido a sua modularidade, a interconexão de novos componentes não afeta os já existentes.

6. Especialização funcional

Alguns sistemas possuem componentes que necessitam de funções especiais. EX: Sistemas de arquivo.

Com o ambiente distribuído, essas funções especiais podem ser estruturadas de uma melhor forma, com alocação de processadores para módulos separados a fim de fornecer o melhor serviço de processamento, e conseqüentemente aumentando o desempenho geral do sistema.

7. Aplicações inerentemente distribuídas

Parece óbvio, mas os sistemas de informação distribuídos são adequados para aplicações de natureza distribuída.

EX: Sistema de correio eletrônico em uma rede com várias estações de trabalho local ou de longa distância.

É importante observar quais são as aplicações que merecem o investimento para que sejam implementadas de forma distribuída

1.1 Conclusão

A busca por soluções sofisticadas para suprir a demanda dos usuários por sistemas cada vez mais rápidos, confiáveis e espalhados entre diferentes localizações geográficas, fez com que os sistemas de informação distribuídos tornassem a “solução do problema”.

Módulo 2 - Os custos e o desempenho dos Sistemas de Informação Distribuídos

Abordaremos neste capítulo as questões que envolvem a implantação de um sistema distribuído, destacando os fatores que devem ser levados em conta no momento de um desenvolvimento ou uma implantação, o custo e o desempenho.

(4)

Nos ambientes industriais, o conceito de ECONOMIA em escala foi criado para que fossem viabilizados os custos de uma instalação ou modificação nas linhas de produção, visando sempre a que os custos envolvidos para tais operações fossem rateados pelo número de produtos que estão sendo produzidos.

Se pegarmos o conceito de economia em escala e levarmos para o processamento de dados, chegaremos à conclusão de que todos os serviços devem ser centralizados em um mesmo local. Mas por que essa centralização? Seria então, compartilhar os custos da instalação do sistema entre as diversas aplicações existentes?

Alguns estudos apoiaram essa idéia, utilizando como base a lei de Grosch [Grosch, 75], onde a lei diz:

“A capacidade de processamento de um computador é proporcional ao quadrado do seu preço”

Resumindo, é possível obter um menor custo em um determinado tipo de operação, se for utilizado um computador de grande porte. Essa idéia fez com que todo o processamento de uma determinada empresa fosse feito em uma unidade central, munida de um computador de grande porte.

Vale observar que o crescimento não foi levando em conta pela lei inicial de Grosch, tornando o crescimento limitado. Da maneira que foi definido, em um determinado momento do crescimento, aparecerá pontos de saturação, causados pelo surgimento de fatores que retardam o crescimento.

Falando em termos práticos, o crescimento é afetado pela saturação dos recursos disponíveis no sistema, e pelo grau de complexidade do sistema que aumenta a cada momento.

O surgimento de novas tecnologias permitiu resolver a maioria dos problemas gerados pela saturação dos sistemas, sendo necessário que seja feita uma análise sobre o que é oferecido por essas novas tecnologias, visando ao seu melhor aproveitamento.

Com a redução nos custos dos microcomputadores, permitiu que a distribuição de processamento fosse feita em vários centros, ocasionando a queda dos congestionamentos nos sistemas centralizados.

O poder de processamento de um sistema deve ser medido pela sua capacidade real e não pela sua capacidade brut a, pois devem ser descont ados os recursos ut ilizados pelo sist ema operacional, assim, à medida que um sist ema vai se t ornando complexo devido ao seu cresciment o, um maior número de recursos de processament o devem ser alocados para at ender às necessidades do gerenciament o das ent radas e saídas do sistema.

(5)

Observa-se então uma alteração na situação original que foi citada, causada principalmente pela disponibilidade de novas tecnologias de computadores, fazendo com que a lei de Grosch fosse modificada, levando em conta essas mudanças.

Ficou claro que é bem mais proveitoso executar qualquer tipo de atividade com um computador de menor porte, que seja capaz de executá-la, descentralizando e distribuindo o processamento das atividades entre vários computadores de menor porte. As tarefas definidas como complexas, podem ser decompostas em uma série de atividades, que são coordenadas e executadas em computadores menores e de baixo custo.

Podemos então utilizar a base conceitual que foi citada, para o desenvolvimento de um sistema de informação distribuído, ficando claro que a tendência para a distribuição é ocasionada pelas necessidades econômicas da empresa, aliadas ao surgimento das novas tecnologias.

Para que um sistema de informação distribuído obtenha sucesso, é necessário que os seus computadores geograficamente distribuídos, trabalhem de forma integrada, não sendo aceito que funções automatizadas sejam isoladas e independentes.

Quando o processamento de dados em um sistema de informação é feito de forma centralizada, ele ocasiona uma grande transferência de dados entre a unidade central e os usuários.

O desenvolvimento de aplicações remotas que permite o acesso a unidade central, tornou bem mais rápido o tempo de resposta e ocasionou a diminuição dos custos. Esse avanço fez com que o desenvolvimento de aplicações que utilizam meios de transmissão para se comunicarem causasse um grande impacto positivo, permitindo a expansão das redes de comunicação de dados e a integração entre os computadores.

As novas possibilidades de comunicação e o conseqüente surgimento dos sistemas distribuídos, permitiram que sistemas administrativos centralizados evoluíssem para sistemas abertos, gerando um grau maior de liberdade na sua administração. Todos esses fatores induziram para o surgimento de novas arquiteturas de sistemas de informação.

Custo dos equipamentos

A evolução nos custos dos equipamentos revolucionou positivamente o desenvolvimento de sistemas distribuídos, principalmente devido à queda nos preços dos processadores e memórias. Infelizmente os custos associados aos

Antigamente essa transferência era feita através de fitas ou até mesmo papel, hoje utilizamos em larga escala os meios de transmissão.

(6)

meios de comunicação não sofreram uma redução de preço grande, se comparado aos equipamentos de hardware, principalmente por estarem ligados a redes públicas e estatais. O custo para transmissão de dados cresceu ao longo dos anos, se comparado aos custos operacionais.

Para reduzir uma parcela dos custos com a transmissão de grandes quantidades de dados, fez-se necessário dividir as funções de processamento entre os computadores separados geograficamente, fazendo com que atividades locais sejam executadas em equipamentos locais, e os processamentos, que necessitem de algum dado armazenado remotamente, utilizem os meios de transmissão para o envio de mensagens pela rede, diminuindo os custos na transmissão de dados.

Módulo 3 - Exemplos de sistemas distribuídos conhecidos

Abordaremos neste capítulo alguns exemplos de sistemas distribuídos conhecidos: A internet, intranets e as redes que são baseadas em dispositivos móveis.

A internet

Podemos dizer que a internet é formada por um conjunto de redes de computadores de variados tipos e formas de interligação. Os vários programas que são executados pelos computadores conectados a ela, interagem entre si, através da troca de mensagens pelos meios e mecanismos (protocolos) de comunicação.

ISP: Empresas que fornecem aos usuários, acessos individualizados a internet através de conexões feitas por modens de linha discada ou outros meios de conexões.

(7)

A internet é considerada um sistema distribuído de grande porte, permitindo aos usuários que a utilizem, desfrutem de vários serviços como:

World Wide Web; E-mail

FTP.

OBS: Muitas vezes os usuários confundem a Web como sendo a internet.

Os serviços oferecidos pela internet são totalmente abertos, podendo ser ampliados pela adição de computadores servidores e outros tipos de serviços. Para exemplificar os serviços que estão disponíveis na internet, podemos citar os serviços multimídia. Eles permitem aos usuários o acesso a dados em formato de vídeo e áudio.

Ex:

Músicas em vários formatos; Rádios on-line;

TV on-line;

Vídeo conferência; Stream de vídeo.

Infelizmente, alguns recursos multimídia que utilizam a internet como forma de disseminação possuem certas limitações, relacionados principalmente a capacidade do fluxo de dados que pode trafegar pela rede, pois para que o serviço disponibilizado ofereça algum tipo de qualidade, é necessário que os dados sejam recebidos de forma adequada.

Apresentamos a internet como um exemplo de sistema distribuído, pois os serviços que são oferecidos pela internet têm acarretado o desenvolvimento de várias soluções para os problemas existentes nos sistemas de informação distribuídos.

Intranets

Quando falamos em intranets, estamos destacando uma parte da internet que é administrada separadamente e seus limites são impostos através de planos de segurança locais.

Uma intranet típica é composta por várias redes locais (LANs), interligadas entre si através de conexões backbones.

(8)

Particularidade: As redes que compõem as intranets são de responsabilidade

das empresas que a administram, podendo variar de tamanho, contendo apenas uma única LAN ou várias LANs conectadas entre si.

A conexão da intranet com a internet é feita através de roteadores, que permite aos usuários existentes nas intranets utilizarem os serviços oferecidos pela internet como:

Servidores Web;

Serviço de correio eletrônico.

Por medidas de segurança, algumas organizações preferem manter suas intranets isoladas da internet, principalmente às organizações governamentais que trabalham com segurança.

EX:

Agências de segurança Polícia;

Exercito.

Podemos dizer que a ausência de conexão com a internet é um Firewall bem eficaz.

Dispositivos móveis

Com o surgimento das redes sem fio e os avanços tecnológicos que permitiram a miniaturização dos equipamentos, houve uma grande interligação dos equipamentos portáteis com os sistemas de informação distribuídos.

Os seguintes equipamentos se enquadram nos dispositivos móveis: PDA’s;

(9)

Telefones celulares; Notebooks; Câmeras digitais; Câmeras de vídeo; Pagers; Relógios inteligentes.

A capacidade que esses equipamentos possuem de se comunicar com diferentes tipos de redes espalhadas por vários lugares, proporcionou o surgimento da computação móvel.

Podemos dizer que a característica principal da computação móvel é a execução de tarefas sendo feitas nos equipamentos enquanto os usuários se deslocam de um lugar para outro.

Outra característica da computação móvel, é que os usuários que a utilizam, estão distantes do seu ambiente usual e das suas intranets, mas continuam utilizando os seus recursos. A presença de computadores por todos os lugares, só é realmente útil quando eles se comunicam entre si.

Módulo 4 - A importância do compartilhamento de recursos

O compartilhamento de recursos tornou-se algo tão comum para os usuários de computadores, que na maioria das vezes, eles nem percebem que estão utilizando recursos compartilhados.

Exemplos de compartilhamento de recursos: Impressoras;

Unidades de CD-ROM;

(10)

O compartilhamento de hardware (impressores e discos rígidos) é utilizado para reduzir gastos com novos equipamentos, mas a sua importância não é maior que o compartilhamento de recursos que possuem um grau maior de abstração, que são as informações necessárias para a aplicação de um sistema de informação. Por exemplo, os usuários se preocupam em compartilhar os dados existentes em um banco de dados e as informações que fazem parte de uma página Web, e não os discos rígidos e os processadores em que esses dados estão armazenados e sendo processados. Os servidores que fornecem os recursos são totalmente desconsiderados nesta situação. Analisando em termos práticos, o compartilhamento de recursos varia amplamente na sua abrangência e no quanto os usuários trabalham em conjunto.

Ex:

De um lado existe um sistema de busca na web que fornece recursos para usuários. Do outro lado, um grupo de usuários trabalha em conjunto para compartilhar recursos.

Podemos dizer que o termo serviço é utilizado para designar uma parte distinta de um sistema que gerencia um conjunto de recursos, apresentando suas funcionalidades para os usuários.

Ex:

O acesso de arquivos compartilhados através de um sistema de arquivos;

O envio de vários documentos para a impressão através de um serviço de impressão;

Compra de livros, jóias e eletrônicos através de serviços eletrônicos pagos.

Nos sistemas distribuídos, os recursos são encapsulados dentro dos computadores, e só podem ser acessados através de outros computadores por mecanismos de comunicação. Cada um desses recursos deve ser gerenciado por programas que ofereçam uma interface de comunicação, proporcionando um compartilhamento eficaz e permitindo que os recursos sejam acessados e atualizados de forma consistente e confiável.

O termo serviço no mundo computacional refere-se a processos em execução que são interligados através de redes, aceitando pedidos de outros processos que estão executando em outros computadores, para efetuarem os serviços adequadamente.

(11)

Os pedidos são enviados em formato de mensagem para o servidor, e a resposta são enviadas do servidor para o cliente. Dizemos então que o cliente está requisitando uma operação para ser executada no servidor.

A maioria dos sistemas distribuídos podem ser construídos na forma de clientes e servidores em interação. Citaremos abaixo alguns exemplos que se encaixam nesse modelo:

WWW (World Wide Web); E-mail;

Impressoras interligadas em rede.

O compartilhamento de recursos é um dos principais fatores de motivação para a construção de sistemas de informação distribuídos. Os recursos compartilhados como impressoras, arquivos, páginas Web e registros de banco de dados, são gerenciados por servidores apropriados, e os recursos acessados por clientes específicos.

Módulo 5 - Os Desafios que Envolvem o Desenvolvimento e Implantação de um Sistemas de Informação Distribuído

Neste capítulo abordaremos os principais desafios existentes para desenvolver e implantar um sistema de informação distribuído. Citaremos cada um desses desafios destacando suas características e particularidades e expondo exemplos de sistema distribuídos conhecidos e citados anteriormente.

1. A heterogeneidade do sistema

Quando falamos em heterogeneidade (variedade, diferença) de um sistema, pensamos logo na internet, pois ela permite que diferentes tipos de usuários acessem e executem algum tipo de aplicativo, através de variados tipos de computadores que estão conectados a ela. Podemos ligar a heterogeneidade de um sistema de informação distribuído às seguintes características:

1. As redes envolvidas no sistema: Um sistema de informação distribuído pode ser composto por vários tipos de redes, onde as diferenças existentes entes elas, são mascaradas pelos protocolos de comunicação.

2. Os diferentes tipos de Sistemas Operacionais (S.O) que compõem o

sistema: Observamos acima que um sistema de informação distribuído

pode ser composto por vários tipos de redes de computadores. Essas redes são interligadas por variados tipos de sistemas operacionais. O sistema operacional não precisa necessariamente possuir a mesma interface de programação, mas sim o conhecimento do protocolo que permite a comunicação entre os outros sistemas operacionais.

3. A implementação do sistema feita por desenvolvedores diferentes: Um sistema distribuído que foi construído por diferentes

(12)

desenvolvedores, necessita utilizar padrões que são de conhecimento de todos os envolvidos no desenvolvimento, para permitir a comunicação de ambas as partes que foram construídas separadamente.

O que é middleware e qual o seu papel na heterogeneidade de um sistema distribuído?

Podemos dizer que o middleware é uma camada de software que possui como característica principal, a abstração e o mascaramento de hardware, software, S.O, rede e a linguagem de programação envolvida.

OBS: Abordaremos um capítulo completo sobre middleware, destacando sua

importância para os sistemas distribuídos.

2. Abertura do sistema para expansões

Quando um sistema distribuído permite a sua reimplementação e expansão de diversas maneiras diferentes, podemos dizer então que esse sistema é um sistema aberto. Essa abertura permite, por exemplo, que novos serviços sejam adicionados e disponibilizados para o uso de diferentes tipos de usuários. Quando o sistema está sendo desenvolvido, a documentação de todas as suas características e praticidades também deve ser criada, para permitir aos futuros desenvolvedores encarar com maior facilidade toda a complexidade dos componentes envolvidos.

3. A Segurança do sistema

Quando distribuímos as informações através de sistemas distribuídos, devemos estar atentos a segurança que deve ser disponibilizada para essas informações. É necessário que seja observado os três requisitos básicos para manter a segurança de uma informação. São eles:

Confidencialidade: Proteção contra o acesso de usuários não

autorizados.

Integridade: proteção das informações contra alterações ou erros. Disponibilidade: proteger a informação para que ela esteja sempre

disponível.

Para que um sistema de informação distribuído, construído a partir de hardwares e componentes de softwares diferentes, obtenha sucesso na sua expansão, é necessário que todos os seus componentes sejam compatíveis através de padrões.

(13)

A comunicação de um sistema distribuído é feita através da troca de mensagens, sendo que essas mensagens trafegam através de uma rede. A Atualização ou implantação de um firewall é necessária, para que seja feito um controle de tudo que entre e tudo que saia pela rede, restringindo o acesso indevido de informações.

4. A escalabilidade do sistema

Um sistema distribuído é escalável, quando ele mantém a sua eficiência diante de uma grande quantidade de usuários e de recursos.

O projeto de um sistema distribuído escalável deve envolver as seguintes características:

Controle de custo dos recursos físicos: a ampliação do sistema deve

ser feita a um custo razoável, à medida que a necessidade por recursos aumenta.

Controle da perda de desempenho: deve ser feito um controle sobre a

perda de desempenho do sistema, à medida que a quantidade de usuários aumenta.

Controle do esgotamento de recursos: o controle de recursos é algo

complicado de ser feito, principalmente quando envolve projeções futuras. Os vezes subestimar crescimentos futuros causa mais problemas do que efetuar mudanças quando houver necessidade.

Controle de gargalos no sistema: o controle do congestionamento

deve ser feito para evitar a queda de desempenho do sistema.

A escalabilidade é um termo de muita importância para os sistemas distribuídos. Ela ocupa uma posição de destaque tanto no projeto como na implementação do sistema.

5. Tratamento de erros

Qualquer tipo de sistema está sujeito a erros, só que as falhas que ocorram nos sistemas distribuídos são diferenciadas dos outros sistemas, pois elas são falhas parciais. Isto é,quando algum componente de um sistema distribuído falha, os outros componentes continuam em operação e o sistema não deixa de funcionar. A desvantagem dessa característica, é que tratar essa falha é bem mais complexo do que quando o sistema para por completo.

Existem algumas técnicas que são utilizadas para tratarem falhas em sistemas distribuídos, são elas:

Detectar a falha: Algumas falhas podem ser detectadas e outras não. Existe

(14)

Mascarar as falhas que ocorram: algumas falhas que ocorram no sistema

podem ser ocultadas.

Ex: a retransmissão de uma mensagem quando ela não chega ao seu destino.

Tolerância a falhas: se observarmos a internet, a maioria dos seus serviços

apresenta falha. Quando uma falha acontece em um navegador, ele informa ao usuário sobre a falha para que este decida se quer tentar novamente a conexão.

Recuperação de falhas: Quando uma falha acontece, é interessante que a

operação que ocasionou a falha possa ser retrocedida, evitando a inconsistência de alguns dados que necessitam da operação citada.

Redundância: A redundância é um bom caminho para resolver problemas de

falhas nos sistemas distribuídos. EX:

Banco de dados replicado em vários servidores; Arquivos salvos em discos espelhados;

Rotas diferentes para o tráfego de uma mesma mensagem.

6. Transparência do sistema

Termo importante no “mundo” dos sistemas distribuídos, a transparência tem como característica a ocultação de componentes e recursos, fazendo com que o sistema distribuído seja visto tanto para os usuários como para os programadores como um único sistema.

Citaremos abaixo os tipos de transparência existentes:

1. Transparência de acesso: permite aos usuários acessarem recursos que estão alocados localmente ou remotamente da mesma maneira. 2. Transparência de localização: permite que os usuários acessem os

recursos disponíveis, independente da sua localização, e sem o conhecimento desta.

Os sistemas distribuídos possuem um alto grau de disponibilidade, permitindo que quando uma falha acontece, apenas a operação que estava sendo executada pelo componente defeituoso seja afetada.

(15)

3. Transparência de concorrência: permite que os processos acessem os recursos disponíveis, concorrentemente, sem que exista interferência entre ambos.

4. Transparência de replicação: várias instâncias de um recurso podem ser utilizadas sem o conhecimento dos usuários que estão utilizando, permitindo o aumento no desempenho e confiabilidade do sistema. 5. Transparência de falhas: ocultam algumas falhas que acontecem no

sistema, permitindo que os usuários executem suas tarefas, sem serem afetados.

6. Transparência de mobilidade: recursos e usuários podem se movimentar dentro do sistema, sem que afetem as suas operações. 7. Transparência de desempenho: permite que o sistema seja alterado e

recodificado com o intuito de melhorar o desempenho, sem que o usuário perceba as modificações.

8. Transparência de escalabilidade: permite a expansão do sistema e seus aplicativos, sem alterar a sua estrutura.

Nos sistemas de informação distribuídos, as duas transparências de maior destaque são a de acesso e localização, pois elas afetam fortemente a utilização dos recursos distribuídos.

Módulo 6 - Vantagens e desvantagens dos Sistemas de Informação Distribuídos

Abordaremos neste capítulo as principais vantagens e desvantagens em implantar ou desenvolver um sistema de informação distribuído.

Vantagens de um sistema distribuído, se comparado a um sistema centralizado.

A primeira vantagem que podemos observar diz respeito à economia. Um sistema de informação centralizado de grande porte necessita de um mainframe para que ele possa funcionar com qualidade. Quando utilizamos um sistema distribuído em substituição a um sistema centralizado, podemos substituir o mainframe por vários microcomputadores. Feita essa distribuição de processamento entre vários computadores de menor porte, é acrescentado um poder computacional de processamento de baixo custo, deixando claro que em algumas situações, a substituição de um mainframe por vários microcomputadores de menor porte, é mais viável.

A segunda vantagem diz respeito à velocidade, por maior que seja a velocidade de processamento de um mainframe, ele nunca conseguirá alcançar o poder de processamento de N microcomputadores interligados, como se fosse um único sistema.

(16)

A terceira vantagem está relacionada à confiança oferecida pelo sistema. Se um dos microcomputadores que fazem parte de um sistema distribuído deixar de funcionar, o sistema como um todo continuará em operação, deixando de funcionar apenas alguns módulos que eram de responsabilidade do computador defeituoso.

Se um mainframe deixar de funcionar, será que o sistema de informação que está sendo executado nesse equipamento continuará funcionando?

A quarta vantagem diz respeito ao poder de crescimento do sistema. Quando utilizamos um sistema de informação distribuído, podemos aumentar o seu poder computacional sem um custo exorbitante. Se compararmos a um sistema de informação centralizado, para aumentar o poder computacional deste sistema, será necessário substituir o mainframe utilizado ou mesmo duplicá-lo, tornando esse tipo de operação economicamente inviável.

Por último, algumas aplicações necessitam por natureza serem inerentemente distribuídas, proporcionando aos sistemas distribuídos vantagens sobre os sistemas centralizados.

Resumindo o que foi falado, podemos dizer que as vantagens de um sistema de informação distribuído sobre um sistema de informação centralizado são:

Melhor relação custo/benéfico;

Maior capacidade de processamento; Maior domínio de aplicações;

Maior confiabilidade; Maior disponibilidade;

Crescimento gradativo de sua capacidade de processamento.

Desvantagens dos sistemas de informação distribuídos sobre os sistemas de informação centralizados.

Observamos acima que existem várias vantagens na utilização de um sistema de informação distribuído, se feita a comparação com um sistema de informação centralizado. Mas não existem apenas vantagens nessa comparação, destacamos a seguir algumas desvantagens:

Segurança: A facilidade oferecida pelos sistemas distribuídos no acesso aos

dados, pode criar uma dificuldade na garantia da segurança dos dados existentes e a privacidade dos dados secretos. Podemos dizer que a segurança é um ponto de desvantagem crítico em um sistema de informação distribuído.

(17)

Desenvolvimento: O desenvolvimento de um sistema distribuído é algo bem

complexo. A disponibilidade de softwares com tais características é bem escassa.

Custo: Existe um alto custo para a implementação de aplicações colaborativas,

devido ao fato de os recursos estarem fisicamente separados.

Rede: As falhas existentes nas redes que compõem a estrutura de um sistema

distribuído podem ocasionar atrasos, perda de mensagens e falhas no sistema. Algumas dessas falhas são ocasionadas pela saturação (sobrecarga) da rede. Além dos pontos que citamos, a ausência de memória e de clock global torna o projeto de um sistema de informação distribuído muito complexo.

Resumindo o que foi falado, destacamos como desvantagens de um sistema distribuído, as seguintes características:

Falta de software adequados;

Dificuldades na garantia da segurança do sistema; Gerenciamento complexo dos recursos;

Alto custo na implementação de aplicações colaborativas; Sobrecarga na rede;

Mensagens sujeitas à falhas ou retardo na transmissão.

Podemos observar que existeam uma série de vantagens e desvantagens para a implementação de um sistema distribuído. É preciso observar se as desvantagens irão intervir na implantação, e se as vantagens estão dentro do que é esperado de retorno pelo sistema. Depois que todas as análises estiverem concluídas, será possível definir se é viável ou não utilizar um sistema de informação distribuído.

Módulo 7 - O Hardware nos Sistemas de Informação Distribuídos

Abordamos neste capítulo sobre a importância dos hardwares para os sistemas de informação distribuídos, destacando as diferenças que existem nos hardwares utilizados nos sistemas centralizados para os utilizados nos sistemas distribuídos.

A evolução existente desde o surgimento dos primeiros computadores para os dias atuais, foi espetacular. Tanto em poder de processamento, quando no custo dos equipamentos. A partir da década de 80, o surgimento de redes locais e o processamento de 32 Bits, permitiram a construção de sistemas de

(18)

computadores formados por um grande número de processadores conectados através das redes.Observamos que essa evolução de processadores e redes, permitiu a criação dos sistemas distribuído.

Será que apenas esses dois fatores formam um sistema distribuído?

Não, ainda falta o software e esse foi um grande problema para os sistemas distribuídos.

Sistemas distribuídos necessitam de softwares diferentes dos utilizados em sistemas centralizados, o que não existia, ou se existia era muito simples naquela época. Nos dias atuais, ainda presenciamos uma evolução constante nos softwares utilizados em sistemas distribuídos.

3.1 Organização e distribuição do hardware

Até agora o que ficou certo para nós, é que um sistema distribuído é composto por vários processadores.

Devemos descobrir qual a melhor forma de organizar esses processadores (implementação da conexão dos seus componentes), para atender todos os requisitos exigidos pelos sistemas de informação distribuídos.

Existem diversos esquemas de classificação de computadores quanto à forma de organização dos seus processadores. Para facilitar a nossa compreensão e o foco da disciplina, consideremos apenas os sistemas de informação distribuídos que utilizam computadores independentes.

Multiprocessadores: Computadores com memória compartilhada.

Multicomputadores: Computadores sem memória compartilhada. Um sistema distribuído é composto por várias camadas de software, que estão divididos em níveis.

(19)

Diferenças existentes entre os multiprocessadores e os multicomputadores:

Multiprocessadores:

Espaço único de endereçamento virtual;

Espaço compartilhado para todos os processadores.

Ex: Se o valor 16 for escrito no endereço 1011, qualquer outro processador

que fizer a leitura do endereço 1011 obterá como resposta o valor 16. (Observe que todos os processadores compartilham a mesma memória)

Multicomputadores:

Cada computador possui sua própria memória particular. (Seu próprio espaço de endereçamento)

Ex: Se o valor 16 for escrito no endereço 1011, quando outro processador fizer

a leitura do endereço 1011, ele não encontrará o valor 16 como resposta, e sim algo diferente. Esse valor diferente encontrado será o valor que ele escreveu em um determinado momento, e não o valor que outro processador escreveu.

Exemplo real de multicomputadores: Uma rede local de computadores com

vários computadores conectados entre si.

Módulo 8 - Definições importantes sobre os multiprocessadores

Os multiprocessadores têm como característica principal, o seu conjunto de processadores conectados em um barramento comum e acessado a uma memória comum a todos.

(20)

Exemplo real: Placa mãe que suporta vários processadores, estando conectados a ela, processadores e memórias.

Como já falamos anteriormente, devido ao fato de a memória ser compartilhada para ambos os processadores, se o processador X escrever algo em um determinando endereço de memória e o processador Y ler esse mesmo endereço de memória, ele obterá o valor que foi escrito pelo processador X.

Existe algum problema nessa situação?

Sim, com esse tipo de configuração com um pequeno número de processadores conectados ao sistema, pode ser ocasionada uma saturação no barramento de comunicação e afetando o desempenho do sistema.

Para solucionar esse tipo de problema, é necessário que seja adicionado módulos de memória cache entre o processador e o barrament, fazendo com que o cache guarde as palavras que foram acessadas recentemente.

Com a utilização da cache, se uma determinada palavra for solicitada e ela estiver em cache , o próprio cache responde ao processador não havendo necessidade na utilização do barramento de comunicação.

Outras características do cache:

Monitoramento do barramento (Snooping)

OBS: A maioria dos sistemas que utiliza multiprocessadores que são baseados

em barramento utilizam cache.

Os sistemas de multiprocessadores com mais de 64 processadores utilizam outros métodos para que seja possível fazer a conexão dos processadores com a memória. São eles:

Barras cruzadas (Crossbar): têm como característica principal, cada um dos seus processadores e cada uma de suas memórias possuem uma conexão com o sistema. Nas interações entre memórias e processadores, existe uma

(21)

chave eletrônica que controla sua abertura e fechamento controlado através de hardware.

Principal vantagem: vários processadores podem acessar a memória ao

mesmo tempo, dependendo da quantidade de módulos de memória existentes no sistema.

Ex: Quando um processador X deseja ter acesso a uma memória Y, a chave

existente na interação de ambos é fechada, permite que o acesso seja efetuado com sucesso.

OBS: Se dois processadores desejarem acessar uma mesma memória

simultaneamente, um desses processadores irá esperar.

Desvantagem: Para sistemas que possuem N processadores e N memórias, é necessária a existência de N2 chaves eletrônicas. Dependendo do valor de N, esse tipo de sistema poderá ser inviável.

Sistema em rede ômega: a rede ômega tem como característica a utilização de um número reduzido de chaves eletrônicas, utilizando chaves com N entradas e N saídas. As chaves possuem a habilidade de criar rotas, onde qualquer entrada pode ser direcionada para qualquer saída.

(22)

Observe na figura acima que dependendo da escolha da chave correta, é possível que qualquer processador acesse qualquer módulo e memória.

Módulo 9 - Definições importantes sobre os multicomputadores

Podemos dividir os sistemas multicomputadores em duas categorias:

Grades(Grids): Utilizados para resolver problemas de natureza bidimensional. Ex: Grafos

Hipercubo: tem como característica, ser uma topologia de n dimensões.

OBS: Em um hipercubo de n-dimensões, cada processador possui n conexões com outros processadores.

(23)

Observe na imagem que cada processador possui 4 conexões com os outros processadores.

Quando se trabalha com sistemas multicomputadores, observamos que existe uma menor gama de dificuldades das existentes nos sistemas multiprocessadors, principalmente devido ao fato de os multicomputadores possuírem uma conexão dos seus processadores diretamente com a memória local. O único problema existente é quando os processadores irão comunicar-se entre si, comunicar-sendo necessário algum esquema de interconexão. Como essa comunicação é feita processador-a-processador, o volume de tráfego gerado é muito menor, se comparado ao trafego existente entre processadores e memórias.

Módulo 10 - O Sistemas Operacionais utilizados pelos Sistemas de Informação Distribuídos

Falaremos neste capítulo sobre os sistemas operacionais (S.O) que são utilizados pelos sistemas de informação distribuídos, abordando suas características, vantagens e desvantagens.

Definimos um sistema operacional como sendo um programa que age como intermediário entre os usuários e o hardware, promovendo um ambiente que permite aos usuários a execução de programas de forma conveniente e eficiente. [Silberschatz 99].

Um sistema operacional distribuído possui o mesmo papel de um sistema operacional centralizado, aliando ainda o encapsulamento de recursos e a sua distribuição remota, fazendo com que seja feita a comunicação entre os processos remotamente.

Um sistema operacional distribuído é composto por níveis, os níveis mais baixos são compostos por várias unidades de processamento independente que executam seus sistemas operacionais de forma transparente para o usuário, apresentando para o usuário a existência de um único processador. Podemos dizer que esse é um sistema operacional distribuído de verdade.

Existem sistemas operacionais distribuídos falsos?

Muitos consideram os sistemas operacionais de redes como sendo um S.O distribuído. Os S.O de redes têm como característica serem compostos por um

(24)

conjunto de computadores que possuem um alto grau de autonomia, permitindo que sejam utilizados sistemas operacionais diferentes entre os computadores.

Característica dos sistemas operacionais verdadeiramente distribuídos:

Sistemas altamente acoplados para multicomputadores e multiprocessadores;

Transparência; Fácil utilização;

Esconde e gerencia recursos de hardware. Características dos sistemas operacionais de redes:

Auto grau de autonomia;

Pouca necessidade de recursos globais; Escalabilidade e abertura;

Sistemas fracamente acoplados para multiprocessadores; Oferece serviços locais para clientes remotos.

4.1 Sistema operacional distribuído

Definindo melhor suas características, o S.O distribuído tem como objetivo principal a obtenção de um conjunto de computadores interligados através de uma rede, funcionando como um UNIPROCESSADOR VIRTUAL. Essa característica ilustra para o usuário um sistema operacional centralizado, mas executa múltiplas unidades de processamento de forma independente.

Estrutura geral de um sistema distribuído

O uso de múltiplos processadores que fazem parte do sistema deve ser transparente para o usuário;

(25)

O usuário vê o sistema como uma unidade única, e não como uma coleção de computadores conectados pela rede;

São deveres de um sistema operacional distribuído:

O controle e a alocação de recursos, permitindo o seu uso de forma eficiente;

Promover para o usuário um ambiente de programação de alto nível; Ocultar a distribuição dos recursos;

Promover uma comunicação de forma segura.

4.1 Sistema operacional de redes

Tem como característica ser constituído por uma coleção de sistemas operacionais conectados em rede, que incorporam módulos e promovem o acesso a recursos remotos. Essa característica permite uma implementação remota, mas por outro lado, exige do usuário o conhecimento de onde está o recurso desejado.

Estrutura geral de um sistema operacional de rede Características de um S.O de redes:

Cada computador possui seu próprio S.O (Pode ser utilizados sistemas operacionais diferentes);

Os usuários estão cientes da localização dos recursos; Os recursos utilizados para tolerância a falha são reduzidos.

Tabela comparativa entre os Sistemas operacionais distribuídos e os sistemas operacionais de redes

(26)

S.O Distribuído S.O de Redes

Aparece para o usuário como um único processador.

SIM NÃO

Formas de comunicação Mensagens Arquivos compartilhados Outras características Poder

computacional; Segurança. Acesso remoto; Navegação na rede; Troca de informações.

Módulo 11 - Redes de computadores em sistemas de informação distribuídos

As redes de computadores que são utilizadas pelos sistemas de informação distribuídos, são construídas a partir de:

Mídias de transmissão:

Cabos de cobre; Fibra óptica;

Comunicação sem fio.

Dispositivos de hardware: Roteadores; Hubs; Switches; Repetidores. Componentes de software: Protocolos; Rotinas de comunicação; Drivers de dispositivos. A interligação

(27)

O projeto das primeiras redes de computadores tinha a missão de atender a alguns aplicativos básicos e redes relativamente simples.

Ex:

Transferência de arquivos; Login remoto;

Correio eletrônico; Newsgroups.

Com o surgimento dos sistemas distribuídos e o suporte para as aplicações distribuídas, o acesso a arquivos e recursos compartilhados estabeleceu um padrão elevado de desempenho, para atender às necessidades das novas aplicações.

As novas formas de utilização da internet tornou necessário o surgimento de requisitos de confiabilidade, mobilidade, segurança, escalabilidade e qualidade de serviço bem mais rigorosos.

Descreveremos a seguir a natureza de cada um desses requisitos:

Desempenho

Os parâmetros de desempenho que afetam a velocidade com que as mensagens são transferidas entre os computadores são:

Latência: tempo decorrido após uma operação de envio sendo executada

antes que os dados cheguem a seu destino. A latência pode ser medida como o tempo necessário para transferir uma mensagem vazia.

Taxa de transferência dos dados: velocidade com que os dados podem ser

transferidos entre dois computadores conectados em uma rede, medida em bits por segundo (Bps).

O tempo que é exigido para que uma rede transfira uma mensagem entre dois computadores é calculado através da fórmula:

Tempo de transmissão da mensagem = T Latência = L

Largura/ taxa de transferência de dados = Td

T = L + Td

A taxa de transferência de uma rede é determinada por suas características físicas, enquanto a latência é determinada por sobrecarga do software, atrasos de roteamento e cargas da rede.

É comum nos sistemas de informação distribuídos a transferência de várias mensagens, de tamanho reduzido, entre os processos. Para a determinação do

(28)

desempenho do sistema, nessa situação, a latência assume um papel de importância igual ou superior ao da taxa de transferência.

A largura de banda de uma rede é uma medida do seu rendimento, isto é, o volume total de trafego que pode ser transferido na rede em um determinado período de tempo. Na Ethernet (Rede local), a capacidade de transmissão máxima da rede está disponível para cada transmissão, a largura de banda do sistema é igual a taxa de transferência dos dados.

Confiabilidade

A detecção de erros em uma comunicação e a sua correção é desempenhada de uma melhor forma por softwares aplicativos, sendo que a confiança que a maioria das mídias de transmissão passa é muito alta. Quando algum tipo de erro acontece, normalmente ele vem dos softwares localizados no remetente ou destinatário.

Segurança

A maioria das organizações adoram o firewall como forma de proteger as suas redes e os computadores que estão ligados a ela. O firewall cria uma barreira de proteção entre a Intranet da organização e a internet ligada a ela, protegendo os recursos presentes nos computadores, contra o acesso de usuários ou processos externos.

Para permitir que os aplicativos de um sistema de informação distribuído se mova através das restrições impostas pelo firewall, é necessário projetar um ambiente seguro na rede.

Mobilidade

Os dispositivos móveis como PDAs, laptops e smartphones, mudam freqüentemente de lugar em diferentes pontos da rede, ou mesmo sendo utilizados enquanto estão em movimento. As redes sem fio fornecem mobilidade para esses equipamentos.

Qualidade de serviço

Para atender aos requisitos que a qualidade de serviço solicita, é necessário impor novos requisitos importantes para as redes de computadores.

Ex: Aplicativos que transmitem dados multimídia exigem uma largura de banda garantida e latência limitada para os canais de comunicação que são utilizados.

Multicasting

Grande parte da comunicação que é feita nos sistemas de informação distribuídos se dá entre pares de processos, mas também existe a necessidade de uma comunicação “um para muitos”. Por esse motivo, muitas tecnologias de rede suportam a transmissão de uma mensagem para vários destinatários.

(29)

Módulo 12 - Tipos de redes utilizadas por sistemas de informação distribuídos

Apresentaremos os principais tipos de redes utilizados pelos sistemas distribuídos:

Redes Locais (LANs): transportam mensagens em velocidade alta entre os

computadores que estão conectados em um único meio de transmissão.

Nenhum tipo de roteamento é necessário em uma rede local, pois o meio permite uma comunicação direta entre os computadores de um segmento. Quando uma rede local é grande, todos os seus segmentos são interconectados através de Hubs e Switches.

Redes de longa distância (WANs): Se comparado as LANs, as WANs

transportam as mensagens de forma mais lenta, pois os nós estão separados por uma distância muito grande. As WANs podem estar localizadas em cidades diferentes, países ou continentes.

.

Os roteadores possuem a função de gerenciar as redes de comunicação e direcionar as mensagens através de um conjunto de rotas, para os seus destinos.

Redes metropolitanas (MANs): Redes baseadas em uma estrutura formada

por cabeamentos de fibra óptica de alta largura de banda, que são instalados em algumas cidades, permitindo a transmissão de dados, voz e vídeo em alta velocidade, entre distâncias de até 45 Km.

Redes locais sem fio (WLANs): São redes projetadas para substituírem as

LANs que utilizam cabeamento, tendo o objetivo de eliminar a infra-estrutura cabeada e fornecer conectividade para dispositivos móveis.

Redes de longa distância sem fio (WWLANs): Grande parte das redes de

telefonia móvel é baseada em tecnologia de rede digital sem fio. Em uma rede local a largura de banda é alta e a latência é baixa, exceto quando existe um tráfego de mensagens muito alto.

O meio de transmissão que é utilizado em uma WAN é formado por vários circuitos de comunicação interligados através de

(30)

EX: Padrão GSM e 3G.

Essas redes são projetadas para operar em grandes áreas através de conexões de rádio.

Módulo 13 - Arquitetura dos Sistemas de Informação Distribuídos

Quando se projeta um sistema cuja utilização é destinada a ser feita em ambientes do mundo real, projeções devem ser feitas para que o sistema possa funcionar corretamente em diferentes tipos de circunstâncias e diante de diversas dificuldades e ameaças.

Dificuldades e ameaças para um sistema de informação distribuído: Modo variável de utilização: Variações nas cargas de trabalho que são

aplicadas ao sistema (página web acessada por milhares de usuários), componentes mal conectados ou desconectados (computadores móveis), requisitos especiais como grande largura de banda e baixa latência (aplicativos multimídia).

Variáveis do ambiente do sistema: Os sistemas distribuídos devem

acomodar sistemas operacionais, redes e hardwares homogêneos. o Redes sem fio operam em taxas inferiores as redes cabeadas. o Sistemas operacionais apresentam ordens de grandeza

diferentes.

Problemas internos: Relógios não sincronizados, danos nos

componentes, falhas de hardware e software.

Ameaças externas: Ataque a integridade e ao sigilo dos dados.

A arquitetura de um sistema é sua estrutura em termos de componentes, tendo como objetivo global garantir que a estrutura do sistema possa atender a demanda atual e futura. A maior preocupação é tornar o sistema:

Confiável; Adaptável; Gerenciável; Rentável.

Descreveremos a seguir, os principais modelos arquitetônicos que são empregados nos sistemas de informação distribuídos.

Os modelos de arquitetura de um sistema distribuídos simplificam e abstraem funções dos componentes individuais, considerando o posicionamento dos componentes em uma rede de computadores, em busca de definir a

(31)

distribuição de dados e cargas de trabalho, e o inter-relacionamento dos componentes visando a seus papéis funcionais e a comunicação entre eles. Os processos são classificados em:

Processos servidores; Processos clientes;

Processos peer-to-peer (processos que colaboram e se comunicam de maneira simétrica).

Essa classificação identifica a funcionalidade de cada processo, permitindo que seja avaliada a carga de trabalho e os impactos causados por falhas em cada um deles.

Com o resultado da análise feita sobre os processos, é possível especificar o posicionamento de cada processo, permitindo atender a objetivos de desempenho e confiabilidade do sistema distribuído.

Processos servidores

Um processo servidor aceita solicitações de outros processos, podendo ser fornecido por um ou mais servidores, que interagem uns com os outros, e com processos clientes.

]

Existem vários padrões que são amplamente utilizados para dividir tarefas em um sistema distribuído, tendo um impacto importante no desempenho e na eficiência

do sistema.

Plataforma: Denominação para as camadas de baixo nível de um sist ema de informação dist ribuído, compost a pelos sist emas operacionais, hardware e rede, que fornece serviços para as camadas acima, facilit ando a comunicação entre os processos.

(32)

Arquitetura

A divisão de responsabilidades entre aplicativos, servidores e outros processos, que são componentes de um sistema, é a distribuição destes nos diversos computadores que forma uma rede. Talvez seja o aspecto mais evidente no projeto de um sistema de informação distribuído, implicando no desempenho, confiabilidade e segurança do sistema resultante. Os processos possuem responsabilidades bem definidas e interagem para a realizações de atividades úteis.

Cliente-servidor

É a arquitetura mais falada quando os sistemas de informação distribuídos estão em discussão, sendo a mais importante e a mais empregada.

Middleware: Camada de soft ware que t em o obj et ivo de mascarar a het erogeneidade do sist ema, f ornecendo um modelo de programação que sej a convenient e para os programadores de aplicativos.

Um middleware é compost o por um conj unt o de obj et os e processos que int eragem ent re si, para a implement ação da comunicação e oferecer suport e para o compartilhamento de recursos e aplicativos distribuídos.

(33)

A imagem acima apresenta uma estrutura simples em que os processos clientes interagem com os processos servidores. Observe que os servidores podem ser clientes de outros servidores.

Ex: Servidor Web é cliente local do servidor de banco de dados.

Peer-to-peer

Todos os processos que estão envolvidos em uma determinada atividade, realizam funções semelhantes interagindo corporativamente. Não existe distinção entre processos clientes e processos servidores, nem entre os computadores em que são executados.

O peer-to-peer tem como objetivo principal, explorar recursos de um grande número de computadores para o cumprimento de uma dada atividade. Alguns aplicativos que utilizam o peer-to-peer tem surgido, permitindo que milhares de computadores forneçam acesso a dados e outros recursos armazenados e gerenciados coletivamente.

Ex: Napster

Os aplicativos em formato peer-to-peer são compostos por um grande número de processos (peers), sendo executados em comutadores diferentes, sendo que o padrão de comunicação entre eles depende inteiramente do que o aplicativo faz.

Observe na imagem que um grande número de objetos está compartilhado, um computador individual contém uma parte desses objetos, permitindo que as

O modelo cliente-servidor não é flexível em termos de escalabilidade, oferecendo uma estratégia simples e direta para o compartilhamento de dados e recursos.

(34)

cargas de processamento, armazenamento e comunicação para acessar os objetos, sejam distribuídos por diversos computadores e conexões de rede. Cada objeto pode ser replicado em vários computadores, distribuindo melhor a carga e solucionando problemas com desconexões individuais.

Todas essas características tornam a arquitetura peer-to-peer bem mais complexa que a arquitetura cliente-servidor, principalmente pela necessidade de colocar objetos individuais, recuperá-los e manter réplicas entre vários computadores.

Os modelos de arquitetura de sistemas distribuídos são compostos por processos que se comunicam através da troca de mensagens que trafegam em uma rede de computadores. É interessante que esses modelos se preocupem com o desempenho e a confiabilidade dos processos, das redes de comunicação e com a segurança dos recursos que estão presentes no sistema.

Requisitos para o projeto da arquitetura de um sistema de informação distribuído

Os fatores que motivam a distribuição de processos de um sistema de informação distribuído são numerosos, sendo sua importância relevante. Citaremos abaixo alguns requisitos importantes para projetar a arquitetura de um sistema distribuído:

1. Desempenho

A distribuição dos recursos vai muito além das necessidades de gerenciamento de atualizações concorrentes, os principais problemas de desempenho causados pela limitação de recursos de processamento e comunicação, como:

Reatividade: os usuários exigem respostas rápidas e consistentes, só que em

alguns dos programas clientes acessam recursos compartilhados que produzem atrasos no processamento da solicitação.

Ex: a velocidade de resposta de servidores remotos é determinada pelo desempenho da rede, do servidor, e dos componentes de software envolvidos. Para obter um bom tempo de resposta é necessário que o sistema de informação distribuído seja formado por poucas camadas de software, e transfira pequenos volumes de dados entre clientes e servidores.

2. Throughtput

Velocidade com que um trabalho computacional é feito, medido através de taxas de rendimento do sistema. A capacidade de um sistema de informação distribuído realizar trabalhos para seus usuários é afetada pela velocidade de processamento tanto nos clientes, como nos servidores e pela taxa de transferência dos dados. A taxa de rendimento das camadas de software e de rede são importantes para medir a taxa de rendimento do sistema.

(35)

3. Balancamento de carga

Tem o objetivo de permitir que os aplicativos de um sistema de informação distribuído trabalhem paralelamente, sem disputar os mesmos recursos, mas explorem recursos computacionais disponíveis como processador, memória e recursos de rede.

Ex: Quando algum cliente executa um aplicativo localmente, ele remove as cargas de processamento do servidor.

4. Qualidade de serviço

A qualidade de serviço é utilizada para medir a capacidade do sistema de atender a prazos. Para que ela seja realizada é necessário que exista uma dependência dos recursos disponibilizados em momentos apropriados, implicando no fornecimento de recursos de comunicação e computação, que sejam garantidos, suficientes para permitir que os aplicativos concluam suas tarefas a tempo.

Módulo 14 - Sistema de arquivos distribuídos

Em capítulos anteriores, foi identificado o compartilhamento de recursos como o principal foco dos sistemas de informação distribuídos, sendo as informações compartilhadas o aspecto mais importante dos recursos distribuídos.

O mecanismo para o compartilhamento de dados apresenta várias formas. Ex: Um servidor Web fornece uma forma restrita de compartilhamento de dados, onde os arquivos que estão armazenados de forma local, estão disponíveis para os clientes em toda a internet, mas esses dados são gerenciados e atualizado em um sistema de arquivos no servidor, ou estão distribuídos em uma rede local.

OBS: O projeto de um sistema de arquivo remoto

que permite leitura e escrita em grande escala, apresenta vários problemas como:

Balanceamento de carga; Confiabilidade;

Segurança; Disponibilidade.

Uma solução para os problemas apresentados é utilizar o sistema de armazenamento de arquivos peer-to-peer.

(36)

Um serviço diferente que suporte o armazenamento persistente de dados e a distribuição consistente destes é requerido dentro das redes locais e intranets, como requisitos de compartilhamento.

Inicialmente os sistemas de arquivos foram desenvolvidos para sistemas centralizados, onde os recursos fornecidos pelo sistema operacional apresentavam uma interface de programação conveniente para o armazenamento dos dados em disco. Com o tempo, esses sistemas foram adquirindo características de controle, acesso e mecanismos de proteção de arquivos.

Os sistemas de arquivos distribuídos suportam o compartilhamento de informações através de arquivos e recursos de hardware com o armazenamento persistente. Um servidor de arquivos distribuídos bem projetado oferece acesso a arquivos que estão armazenados em um servidor, com desempenho e confiabilidade semelhantes aos arquivos armazenados em disco local, ou até melhor, pois o projeto é adaptado para as características de desempenho e confiabilidade das redes locais, portando sendo mais eficiente no armazenamento de arquivos persistentes.

Um servidor de arquivos distribuídos permite aos programas o acesso a arquivos remotos como se eles estivessem localmente, possibilitando aos usuários acessarem os seus arquivos a partir de qualquer computador.

O armazenamento persistente em alguns servidores reduz a necessidade de armazenamento em disco local, permitindo que sejam feitas economias no gerenciamento e no arquivamento dos dados de uma organização.

Outros serviços podem ser facilmente implementados quando são capazes de chamar os serviços do sistema de arquivo para atender às necessidades. Os serviços são:

Serviços de nomes;

Serviços de autenticação de usuários; Serviços de impressão;

Servidor Web.

As organizações que utilizam servidores Web para acessos internos e externos através de intranets, armazenam e acessam os arquivos através de sistemas de arquivos distribuídos.

Os sistemas de arquivos são responsáveis por: Organização dos arquivos;

Armazenamento dos arquivos; Recuperação dos arquivos; Atribuição de nomes de arquivos; Compartilhamento de arquivos; Proteção dos arquivos.

(37)

É fornecida uma interface de programação que caracterizam a abstração dos arquivos, tirando a preocupação dos desenvolvedores com os detalhes de alocação e do layout do armazenamento físico no disco.

Requisitos dos sistemas de arquivos distribuídos

Com o desenvolvimento inicial dos sistemas de arquivos distribuídos, alguns requisitos foram surgindo como armadilhas no projeto, e foram sendo atendidos e solucionados em fases subseqüentes do projeto. Discutiremos cada um desses requisitos a seguir:

1. Transparência:

Os sistemas de arquivo são utilizados normalmente em intranets, o que torna crítica as suas funcionalidades e o seu desempenho. O projeto de um sistema de arquivos distribuído deve suportar vários requisitos de transparência, contrabalanceando a flexibilidade e a escalabilidade que são derivados da transparência.

Formas de transparência que são tratadas pelos sistemas de arquivos distribuídos atuais:

Transparência de acesso: os programas clientes não devem conhecer a distribuição dos arquivos.

Transparência de localização: os programas clientes devem ter um espaço de nomes de arquivos uniformes.

Transparência de mobilidade: nem os programas clientes, nem as tabelas de administração do sistema precisam ser alterados quando um arquivo é movido. Transparência de desempenho: os programas clientes continuam funcionando normalmente, enquanto a carga utilizada pelos serviços oscila dentro de intervalos definidos.

Transparência de mudança de escala: os serviços podem ser expandidos, para tratar uma ampla variedade de cargas e tamanho da rede.

2. Atualizações concorrente de arquivos

As alterações que são feitas em um arquivo por um cliente X, não devem interferir nas alterações feitas pelos clientes Y e Z, que estejam acessando ou alterando o mesmo arquivo simultaneamente.

3. Replicação de arquivos

Serviços de arquivos que suportam replicação permitem que um arquivo possa ser representado por várias cópias do seu conteúdo em locais diferentes.

Referências

Documentos relacionados

Na prática, não é raro verificar que essas previsões são feitas e alteradas apenas no Estatuto do consórcio, mas esse procedimento não é adequado, pois o Estatuto não passa

A pesquisa pode ser caracterizada como exploratória e experimental em uma primeira etapa (estudo piloto), na qual foram geradas hipóteses e um conjunto de observáveis, variáveis

c.4) Não ocorrerá o cancelamento do contrato de seguro cujo prêmio tenha sido pago a vista, mediante financiamento obtido junto a instituições financeiras, no

Os autores relatam a primeira ocorrência de Lymnaea columella (Say, 1817) no Estado de Goiás, ressaltando a importância da espécie como hospedeiro intermediário de vários parasitos

A Lei nº 2/2007 de 15 de janeiro, na alínea c) do Artigo 10º e Artigo 15º consagram que constitui receita do Município o produto da cobrança das taxas

Note on the occurrence of the crebeater seal, Lobodon carcinophagus (Hombron & Jacquinot, 1842) (Mammalia: Pinnipedia), in Rio de Janeiro State, Brazil.. On May 12, 2003,

derando que a dessaturação de pacientes portadores de DPOC pode interferir na contração muscular, acreditamos que esta pode interferir também no controle postural e no

O score de Framingham que estima o risco absoluto de um indivíduo desenvolver em dez anos DAC primária, clinicamente manifesta, utiliza variáveis clínicas e laboratoriais