SlideShare uma empresa Scribd logo
1 de 4
Baixar para ler offline
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 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.
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
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.
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 um
desafio enorme em detectar as falhas que ocorram no sistema.
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.
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.
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.

Mais conteúdo relacionado

Mais procurados

Aula02 Sistemas Distribuídos - Caracterização de sistemas distribuídos
Aula02 Sistemas Distribuídos - Caracterização de sistemas distribuídosAula02 Sistemas Distribuídos - Caracterização de sistemas distribuídos
Aula02 Sistemas Distribuídos - Caracterização de sistemas distribuídosMessias Batista
 
Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02Arthur Emanuel
 
SI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de CódigoSI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de CódigoFrederico Madeira
 
Linux Servidor Proxy(squid)
Linux Servidor Proxy(squid)Linux Servidor Proxy(squid)
Linux Servidor Proxy(squid)elliando dias
 
SI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosSI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosFrederico Madeira
 
Redes I - 5.2 Tecnologias de Redes WAN
Redes I - 5.2 Tecnologias de Redes WANRedes I - 5.2 Tecnologias de Redes WAN
Redes I - 5.2 Tecnologias de Redes WANMauro Tapajós
 
Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02thomasdacosta
 
222097384 aulas-de-rede-tipos-de-servidores
222097384 aulas-de-rede-tipos-de-servidores222097384 aulas-de-rede-tipos-de-servidores
222097384 aulas-de-rede-tipos-de-servidoresMarco Guimarães
 
Apresentação Docker
Apresentação DockerApresentação Docker
Apresentação DockerAndré Justi
 
Arquitetura cliente servidor
Arquitetura cliente servidorArquitetura cliente servidor
Arquitetura cliente servidorMarcia Abrahim
 
Aula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - ProcessosAula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - ProcessosMessias Batista
 
Segurança de redes - Conceitos de firewall
Segurança de redes - Conceitos de firewall Segurança de redes - Conceitos de firewall
Segurança de redes - Conceitos de firewall Cleber Ramos
 
2. conceito de processos
2. conceito de processos2. conceito de processos
2. conceito de processosvini_campos
 
Sistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - IntroduçãoSistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - IntroduçãoAdriano Teixeira de Souza
 

Mais procurados (20)

Aula02 Sistemas Distribuídos - Caracterização de sistemas distribuídos
Aula02 Sistemas Distribuídos - Caracterização de sistemas distribuídosAula02 Sistemas Distribuídos - Caracterização de sistemas distribuídos
Aula02 Sistemas Distribuídos - Caracterização de sistemas distribuídos
 
Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02
 
SI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de CódigoSI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de Código
 
Topologia de Redes
Topologia de RedesTopologia de Redes
Topologia de Redes
 
Linux Servidor Proxy(squid)
Linux Servidor Proxy(squid)Linux Servidor Proxy(squid)
Linux Servidor Proxy(squid)
 
SI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosSI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas Distribuidos
 
Redes I - 5.2 Tecnologias de Redes WAN
Redes I - 5.2 Tecnologias de Redes WANRedes I - 5.2 Tecnologias de Redes WAN
Redes I - 5.2 Tecnologias de Redes WAN
 
Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02
 
222097384 aulas-de-rede-tipos-de-servidores
222097384 aulas-de-rede-tipos-de-servidores222097384 aulas-de-rede-tipos-de-servidores
222097384 aulas-de-rede-tipos-de-servidores
 
Trabalho linux
Trabalho linuxTrabalho linux
Trabalho linux
 
So-mod-1
So-mod-1So-mod-1
So-mod-1
 
Apresentação Docker
Apresentação DockerApresentação Docker
Apresentação Docker
 
Modelo TCP/IP
Modelo TCP/IPModelo TCP/IP
Modelo TCP/IP
 
Arquitetura cliente servidor
Arquitetura cliente servidorArquitetura cliente servidor
Arquitetura cliente servidor
 
Aula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - ProcessosAula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - Processos
 
Segurança de redes - Conceitos de firewall
Segurança de redes - Conceitos de firewall Segurança de redes - Conceitos de firewall
Segurança de redes - Conceitos de firewall
 
Modelo caso uso
Modelo caso usoModelo caso uso
Modelo caso uso
 
Trabalho camada de transporte
Trabalho camada de transporteTrabalho camada de transporte
Trabalho camada de transporte
 
2. conceito de processos
2. conceito de processos2. conceito de processos
2. conceito de processos
 
Sistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - IntroduçãoSistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - Introdução
 

Destaque (16)

Evaluación
EvaluaciónEvaluación
Evaluación
 
DOSSIER DE SPONSORING (shared using VisualBee)
DOSSIER DE SPONSORING  
(shared using VisualBee)DOSSIER DE SPONSORING  
(shared using VisualBee)
DOSSIER DE SPONSORING (shared using VisualBee)
 
Apresentação do Curso
Apresentação do CursoApresentação do Curso
Apresentação do Curso
 
Aula 6 - EC2, ELB, Auto Scaling, Cloud Watch
Aula 6 - EC2, ELB, Auto Scaling, Cloud WatchAula 6 - EC2, ELB, Auto Scaling, Cloud Watch
Aula 6 - EC2, ELB, Auto Scaling, Cloud Watch
 
Aula 3 - Introdução a cloud computing
Aula 3 - Introdução a cloud computingAula 3 - Introdução a cloud computing
Aula 3 - Introdução a cloud computing
 
Butts
ButtsButts
Butts
 
ITIL Version 3[1]
ITIL Version 3[1]ITIL Version 3[1]
ITIL Version 3[1]
 
Charte edito blogs_def
Charte edito blogs_defCharte edito blogs_def
Charte edito blogs_def
 
20110121-SurveillanceSourcesInfo
20110121-SurveillanceSourcesInfo20110121-SurveillanceSourcesInfo
20110121-SurveillanceSourcesInfo
 
Районы mmo
Районы mmoРайоны mmo
Районы mmo
 
Retour de la conférence O'Reilly Web 2.0 2009
Retour de la conférence O'Reilly Web 2.0 2009Retour de la conférence O'Reilly Web 2.0 2009
Retour de la conférence O'Reilly Web 2.0 2009
 
Cv
CvCv
Cv
 
Perdon
PerdonPerdon
Perdon
 
2015 Production Retrpspective
2015 Production Retrpspective2015 Production Retrpspective
2015 Production Retrpspective
 
InformationWeek article
InformationWeek articleInformationWeek article
InformationWeek article
 
La véritable nature du régime de ben
La véritable nature du régime de benLa véritable nature du régime de ben
La véritable nature du régime de ben
 

Semelhante a Os Desafios de Sistemas Distribuídos

Caracterizacao de sistemas distribuidos
Caracterizacao de sistemas distribuidosCaracterizacao de sistemas distribuidos
Caracterizacao de sistemas distribuidosPortal_do_Estudante_SD
 
Sistemas Operacionais - Conceitos Básicos
Sistemas Operacionais - Conceitos BásicosSistemas Operacionais - Conceitos Básicos
Sistemas Operacionais - Conceitos BásicosCarlos Eduardo Teruel
 
Utilização de sistemas distribuidos
Utilização de sistemas distribuidosUtilização de sistemas distribuidos
Utilização de sistemas distribuidosDeroci Nonato Júnior
 
Sistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de ProjetoSistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de ProjetoAdriano Teixeira de Souza
 
SO01 - Sistemas-Operacionais - Introdução Historico Conceitos.pdf
SO01 - Sistemas-Operacionais - Introdução Historico Conceitos.pdfSO01 - Sistemas-Operacionais - Introdução Historico Conceitos.pdf
SO01 - Sistemas-Operacionais - Introdução Historico Conceitos.pdfSilvano Oliveira
 
Relatório geral pi
Relatório geral piRelatório geral pi
Relatório geral piredesinforma
 
IES - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - Part...
IES - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - Part...IES - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - Part...
IES - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - Part...Ramon Mayor Martins
 
12 objetivos de banco de dados distribuídos
12 objetivos de banco de dados distribuídos12 objetivos de banco de dados distribuídos
12 objetivos de banco de dados distribuídosBruno Felipe
 
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptxAula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptxChadidoDiogo1
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionaisDuFelix02
 
Sistemas Operacionais - Aula 6 - Estrutura do Sistema Operacional
Sistemas Operacionais - Aula 6 - Estrutura do Sistema OperacionalSistemas Operacionais - Aula 6 - Estrutura do Sistema Operacional
Sistemas Operacionais - Aula 6 - Estrutura do Sistema OperacionalCharles Fortes
 
Sistemas distribuídos e de tempo real
Sistemas distribuídos e de tempo realSistemas distribuídos e de tempo real
Sistemas distribuídos e de tempo realRogério Cardoso
 

Semelhante a Os Desafios de Sistemas Distribuídos (20)

Introducao.2s
Introducao.2sIntroducao.2s
Introducao.2s
 
Caracterizacao de sistemas distribuidos
Caracterizacao de sistemas distribuidosCaracterizacao de sistemas distribuidos
Caracterizacao de sistemas distribuidos
 
Sistemas Operacionais - Conceitos Básicos
Sistemas Operacionais - Conceitos BásicosSistemas Operacionais - Conceitos Básicos
Sistemas Operacionais - Conceitos Básicos
 
Utilização de sistemas distribuidos
Utilização de sistemas distribuidosUtilização de sistemas distribuidos
Utilização de sistemas distribuidos
 
Sistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de ProjetoSistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de Projeto
 
SISTEMA SD
SISTEMA SDSISTEMA SD
SISTEMA SD
 
SO01 - Sistemas-Operacionais - Introdução Historico Conceitos.pdf
SO01 - Sistemas-Operacionais - Introdução Historico Conceitos.pdfSO01 - Sistemas-Operacionais - Introdução Historico Conceitos.pdf
SO01 - Sistemas-Operacionais - Introdução Historico Conceitos.pdf
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidos
 
Aula 1
Aula 1Aula 1
Aula 1
 
Relatório geral pi
Relatório geral piRelatório geral pi
Relatório geral pi
 
Aula sd 2008_02aspectosprojectosds
Aula sd 2008_02aspectosprojectosdsAula sd 2008_02aspectosprojectosds
Aula sd 2008_02aspectosprojectosds
 
Atividade sd
Atividade sdAtividade sd
Atividade sd
 
IES - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - Part...
IES - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - Part...IES - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - Part...
IES - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - Part...
 
12 objetivos de banco de dados distribuídos
12 objetivos de banco de dados distribuídos12 objetivos de banco de dados distribuídos
12 objetivos de banco de dados distribuídos
 
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptxAula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
Sistemas Operacionais - Aula 6 - Estrutura do Sistema Operacional
Sistemas Operacionais - Aula 6 - Estrutura do Sistema OperacionalSistemas Operacionais - Aula 6 - Estrutura do Sistema Operacional
Sistemas Operacionais - Aula 6 - Estrutura do Sistema Operacional
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
Sistemas distribuídos e de tempo real
Sistemas distribuídos e de tempo realSistemas distribuídos e de tempo real
Sistemas distribuídos e de tempo real
 

Os Desafios de Sistemas Distribuídos

  • 1. 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 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.
  • 2. 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. 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 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.
  • 3. 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 um desafio enorme em detectar as falhas que ocorram no sistema. 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.
  • 4. 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. 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. 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.