desafios na implementacao de sistemas distribuidos

4

Click here to load reader

Upload: helio-jovo

Post on 16-Mar-2018

254 views

Category:

Technology


6 download

TRANSCRIPT

Page 1: desafios na implementacao de sistemas distribuidos

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.

Page 2: desafios na implementacao de sistemas distribuidos

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.

Page 3: desafios na implementacao de sistemas distribuidos

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.

Page 4: desafios na implementacao de sistemas distribuidos

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.