O documento descreve um plano de ensino para o curso "Desenvolvimento de Sistemas Distribuídos". O plano inclui a ementa, objetivos gerais e específicos, estratégias de trabalho, avaliação e bibliografia. O conteúdo programático abrange tópicos como definição, caracterização e desafios de sistemas distribuídos, além de tipos como sistemas em cluster, grid e web services.
IES - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - Parte 1 Revisão
1. Desenvolvimento de Sistemas Distribuídos
Prof. Ramon Mayor Martins , M.Sc. Eng.
mayor@linuxmail.org
Parte 1
São José – 2015 – 2
Instituto de Ensino Superior da Grande Florianópolis
2. Desenvolvimento de Sistemas Distribuídos
PLANO DE ENSINO
CURSO: Ciência da Computação
SÉRIE: 7º semestre
DISCIPLINA: Desenvolvimento de Sistemas Distribuídos
CARGA HORÁRIA SEMANAL: 03 horas-aula
CARGA HORÁRIA SEMESTRAL: 60 horas-aula
3. Desenvolvimento de Sistemas Distribuídos
PLANO DE ENSINO
I – EMENTA
Definição e histórico de aplicações envolvendo sistemas distribuídos.
II – OBJETIVOS GERAIS
Apresentar ao aluno os principais aspectos que envolvem o projeto e a implementação
de um sistema distribuído, com ênfase em SOA e objetos distribuídos.
III – OBJETIVOS ESPECÍFICOS
Mostrar ao aluno: as principais características de aplicações envolvendo sistemas
distribuídos que deve possuir, formas de organização e modelo envolvidos para sua implementação.
4. Desenvolvimento de Sistemas Distribuídos
PLANO DE ENSINO
V – ESTRATÉGIAS DE TRABALHO
Aulas expositivas. Listas de exercícios para serem resolvidos fora da sala de aula para fixação
dos assuntos abordados nas aulas expositivas. Proposta de projetos extracurriculares.
VI – AVALIAÇÃO
Provas bimestrais e trabalhos práticos.
5. Desenvolvimento de Sistemas Distribuídos
PLANO DE ENSINO
VII – BIBLIOGRAFIA
Básica
Couloris, George.; Sistemas Distribuídos. 4. ed. Porto Alegre: Bookman, 2007.
Marques, José; Guedes, Paulo; Tecnologia de Sistemas Distribuídos. 2. ed. FCA, 1998.
Tanenbaum, Andrew S.; Steen, Maarten Van. Sistemas Distribuídos, princípios e paradigmas.
2.ed. São Paulo: Person Prentice Hall, 2007..
6. Desenvolvimento de Sistemas Distribuídos
PLANO DE ENSINO
VII – BIBLIOGRAFIA
Complementar
Sampaio, Cleuton. SOA e Web services em Java. Rio de Janeiro: Brasport, 2006.
Albinader, Neto: Jorge, Abilio. Web services em Java: Rio de Janeiro: Brasport, 2006.
Josuttis, Nicolai M..SOA na Prática, A Arte da Modelagem de Sistemas Distribuídos. Rio de Janeiro:
Alta Books, 2008.
RIBEIRO, Uira. Sistemas Distribuídos. Axcel Books, 2005.
CHAKRABARTI, Anirban. BELAPURKAR, Abhijit. PONNAPALLI, Harigopal.
Distributed Systems Security - Issues, Processes and Solutions. Ed. John Wiley Professional, 2009.
7. Desenvolvimento de Sistemas Distribuídos
PLANO DE ENSINO
IV – CONTEÚDO PROGRAMÁTICO
1. Introdução
1.1 Definição de Sistemas Distribuiídos
1.2 Caracterização de Sistemas Distribuídos
1.3 Desafios
1.4 Compartilhamento de Recursos e a Web
1.5 Tipos de Sistemas Distribuídos
.
8. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.1 DEFINICAO DE SISTEMAS DISTRIBUIDOS
Nos ultimos anos vem surgindo novos tópicos interessantes, como computação peer-to-peer e redes
de sensores.
9. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
DEFINICAO DE SISTEMAS DISTRIBUIDOS
Enquanto outros amadureceram muito, como serviços Web e aplicações Web.
10. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
DEFINICAO DE SISTEMAS DISTRIBUIDOS
Andrew Tanenbaum
é uma "coleção de computadores independentes entre si que se apresenta ao usuário
como um sistema único e coerente”
George Coulouris, diz:
"coleção de computadores autônomos interligados através de uma
rede de computadores e equipados com software que permita o compartilhamento dos recursos
do sistema: hardware, software e dados"
11. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
DEFINICAO DE SISTEMAS DISTRIBUIDOS
- Um sistema distribuído consiste em componentes, isto é, computadores.
- Outro aspecto é que os usuários, sejam pessoas ou programas, acham que estão tratando
como um único sistema.
- Os componentes autônomos precisam colaborar.
- Como estabelecer a colaboração é o cerne do desenvolvimento de Sistemas Distribuídos.
- Dentro de um único sistema, eles poderiam variar desde computadores centrais (mainframes)
de alto desempenho até pequenos nós em redes de sensores.
12. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
DEFINICAO DE SISTEMAS DISTRIBUIDOS
- Uma característica importante é que as diferenças entre os vários computadores e o modo
como eles se comunicam estão ocultos ao usuário.
- Outra característica é que usuários e aplicações podem intragir com um sistema distribuído
de maneira consistente e uniforme.
13. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
CARACTERIZACAO DE SISTEMAS DISTRIBUIDOS
• Sistemas Distribuidos:
Aquele no qual os componentes de hardware ou software, localizados em computadores
interligados em rede, se comunicam e coordenam sua ções apenas enviando mensagens entre si.
• Motivação:
Desejo de compartilhar recursos
14. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
CARACTERIZACAO DE SISTEMAS DISTRIBUIDOS
• Recursos:
Conjunto de elementos que podem ser compartilhadas de maneira util em um sistema de computadores
interligados em rede.
Desde componentes de hardware, como discos e impressores, até entidades definidas pelo software
como arquivos, banco de dados e objetos de dados de todos os tipos.
Isso inclui o fluxo de quadros de vídeo proveniente de uma camera de video digital ou a
conexão de audio que uma chamada de telefone movel representa.
• Exemplo de Sistemas Distribuidos:
• Internet,
• Intranet,
• Computação Móvel
• Computação Ubíqua
15. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
CARACTERIZACAO DE SISTEMAS DISTRIBUIDOS
• Exemplo de Sistemas Distribuidos:
Internet
• Conjunto de redes de computadores de muitos tipos diferentes, interligadas.
• Os programas que estão em execução nos computadores conectados a ela interagem enviando
• mensagens através de um meio de comunicacao comum.
• O projeto e a construção de protocolos de internet permite que os programas se comuniquem.
• É um sistema distribuido muito grande.
• O conjunto de serviços da internet é aberto – pode ser ampliado pela adição de computadores servidores
• e novos tipos de serviços.
16. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
CARACTERIZACAO DE SISTEMAS DISTRIBUIDOS
• Exemplo de Sistemas Distribuidos:
Intranet
– é uma parte da internet administrada separadamente, cujo limite por ser configurado para impor planos
de segurança locais.
-composta de várias LANs interligadas por conexões de backbone.
-Uma intranet é conectada à Internet por intermédio de um roteadores.
18. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
CARACTERIZACAO DE SISTEMAS DISTRIBUIDOS
• Exemplo de Sistemas Distribuidos:
Computação Móvel
– é a execução de tarefas de computacao, enquanto o usuario esta se deslocando de um lugar a outro
ou visitando lugares diferentes de seu ambiente usual.
-Tambem chamada de computação nômade
20. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
CARACTERIZACAO DE SISTEMAS DISTRIBUIDOS
• Exemplo de Sistemas Distribuidos:
Computação Ubiqua
– é a utilizacao de vários dispositivos computacionais pequenos e baratos que estao presentes nos ambientes
fisicos, incluindo suas casas, escritórios e até na rua.
-Tambem chamada de computação Pervasiva
-O termo “pervasivo” sugere que pequenos equipamentos de computacao mal serão notados.
-Ou seja, seu comportamente computacional será transparente e intimamente vinculado a sua função física.
-O termo “ubiqua” da a opcao que o acesso a serviços de computação está onipresente, ou seja, disponível
em qualquer lugar.
22. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
DESAFIOS DE SISTEMAS DISTRIBUIDOS
A construção de Sistemas Distribuídos gera muitos desafios:
- Heterogeneidade
- Sistemas Abertos
- Seguraça
- Escalabilidade
- Tratamento de Falhas
- Concorrência
- Transparência
23. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
DESAFIOS DE SISTEMAS DISTRIBUIDOS
- Heterogeneidade:
Eles devem ser construídos a partir de uma variedade de redes, sistemas operacionais, hardware e
linguagens de programação diferentes.
Os protocolos de comunicacao da internet mascaram a diferença existentes nas redes e o middleware
pode cuidar das outras diferenças.
24. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
DESAFIOS DE SISTEMAS DISTRIBUIDOS
-Sistemas Abertos:
Os sistemas distribuídos devem ser extensiveis – o primeiro passo é publicar as interfaces dos componentes,
mas a integração de componentes escritos por diferentes programadores é um desafio real.
-Segurança:
A criptografia pode ser usada para proporcionar proteção adequada para os recursos compartilhados e
para manter informações sigilosas em segredo, quando são transmitidas em mensagens por uma rede.
Os ataques por negação de serviço é um problema.
25. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
DESAFIOS DE SISTEMAS DISTRIBUIDOS
-Escalabilidade:
Um sistema distribuido é considerado escalavel se o custo da adicao de um usuario for um valor constante,
em termos de recursos que devem ser adicionados.
Os algoritmos usados para acessar dados compartilhados devem evitar gargalos de desempenho e os
dados devem ser estruturados hierarquicamente para se obter os melhores tempos de acesso.
Os dados acessados frequentemente podem ser replicados.
26. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
DESAFIOS DE SISTEMAS DISTRIBUIDOS
-Tratamento de falhas:
Qualquer processo, computador ou rede pode falhar, independentemente dos outros.
Portanto, cada cmponente precisa conhecer as maneiras possíveis pelas quais os componentes de que
depende podem falhar e ser projetado de forma a tratar de cada uma dessas falhas apropriadamente.
-Concorrencia:
A presença de multiplos usuarios em um sistema distribuido é uma fonte de pedidos concorrentes para
seus recursos.
Em um ambiente concorrente, cada recurso deve ser projetado para manter a consistencia nos estados
de seus dados.
-Transparencia:
O objetivo é tornar certos aspectos da distribuicao invisiveis para o programador de aplicativos,
para que este se preocupe apenas com o projeto de seu aplicativo em particular.
33. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
SISTEMAS DISTRIBUIDOS
... Grid, Sensors, Farm, Web Services...
34. Desenvolvimento de Sistemas Distribuídos
PLANO DE ENSINO
IV – CONTEÚDO PROGRAMÁTICO
1. Introdução
1.1 Definição de Sistemas Distribuiídos
1.2 Caracterização de Sistemas Distribuídos
1.3 Desafios
1.4 Compartilhamento de Recursos e a Web
1.5 Tipos de Sistemas Distribuídos
-Sistemas Cluster (Beowulf/ Mosix) , Sistemas Grid,
35. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
Compartilhamento de Recursos e Web
Para suportar computadores e redes heterogêneos e oferecer uma visão de sistema único, os Sistemas
Distribuídos costumam ser organizados por meio de uma camada de software.
A camada de software está situada logicamente entre uma camada de nível mais alto, composta de usuários e
aplicações, e uma camada subjacente, que consiste em Sistemas Operacionais e facilidades básicas.
Tal Sistema Distribuído é chamado de Middleware
Um Sistema organizado como Middleware permite o compartilhamento de recursos.
36. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
Compartilhamento de Recursos e Web
Recursos: Conjunto de elementos, desde componentes de hardware, como discos e impressores,
até entidades definidas pelo software como arquivos, banco de dados e objetos de dados
de todos os tipos.
Recursos hardware: compartilha-se processadores, impressoras, memória, discos, etc
Recursos de dados: compartilha-se arquivos
Recursos com funcionalidade especifica: compartilha-se mecanismos de busca
Em Sistemas Distribuídos: os recursos são fisicamente encapsulados dentro dos computadores e só
podem ser acessados a partir de outros computadores por intermédio de mecanismos de comunicação.
Serviço: é usado para designar uma parte distinta de um sistema de computador que
gerencia um conjunto de recursos relacionados e apresenta sua funcionalidade para
usuários e aplicativos.
37. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
Compartilhamento de Recursos e Web
Acesso a Recursos:
- A principal meta de um Sistema Distribuído é facilitar aos usuários, e às aplicações, o acesso a
recursos remotos e seu compartilhamento de maneira controlada e eficiente.
- As razões para querer compartilhar recursos é a economia.
- Em termos econômicos faz sentido compartilhar recursos de alto custo como:
supercomputadores, sistemas de armazenamento de alto desempenho, imagesetters e outros
periféricos.
38. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
Compartilhamento de Recursos e Web
Transparência da Distribuição:
- Uma meta importante de um sistema distribuído é ocultar o fato de que seus processos e recursos
estão fisicamente distribuídos.
- Um sistema distribuido que é capaz de se apresentar a usuários e aplicações como se fosse
apenas um único sistema é denominado de transparente.
- Tipos de transparência:
39. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
Compartilhamento de Recursos e Web
Transparência da Distribuição:
• Transparência de Acesso:
Deseja-se ocultar diferenças entre arquiteturas de máquinas.
Chegar em um acordo sobre como os dados devem ser representados por máquinas e sistemas
operacionais diferentes.
• Transparência de Localização:
Usuários não sabem qual é a localização física de um recurso no sistema
Consegue-se transparência de localização ao se atribuir somente nomes lógicos ao sistema. Ex: URL.s
• Transparência de Migração:
Recursos podem ser movimentados sem afetar o modo como podem ser acessados.
• Transparência de Relocação:
Ex: uso móvel de laptops sem fio, cujos usuários podem continuar a usá-lo quando vão de um lugar a
outro sem ser desconectado.
40. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
Compartilhamento de Recursos e Web
Transparência da Distribuição:
• Transparência de Replicação:
Um dos principais tipos de transparência
Recursos podem ser replicados para aumentar a disponibilidade ou melhorar o desempenho
Motivo é ocultar as várias cópias de um recurso ao usuário.
• Transparência de Concorrência:
O acesso concorrente a um recurso compartilhado
Pode-se utilizar travas de acesso para permitir que cada usuário, um por vez, acesse o recurso
desejado.
• Transparência à Falha
Fazer com que um recurso seja transparente a falha faz com que o usuário não perceba que um
recurso deixou de funcionar.
Mascarar falhas.
41. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
Compartilhamento de Recursos e Web
A Web
World Wide Web é um sistema em evolução para a publicação e para o acesso a recursos e serviços a
internet.
A web nasceu no CERN (Centro Europeu de Pesquisa Nuclear) em 1989 como um veículo para troca
de documentos entre uma comunicade de físicos conectados pela internet.
Os documentos contem links (hyperlinks) – referencias para outros documentos e recursos na web.
A web é um sistema aberto – pode ser ampliada e implementada de novas maneiras, sem perturbar a
funcionalidade existente.
42. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
Compartilhamento de Recursos e Web
A Web
A web é baseada em 3 componentes tecnologicos padrão principais:
-HTML – Hypertext Markup Language – linguagem para especificar o conteudo e o layout de páginas
de forma que elas possam ser exibidas pelos navegadores.
-URL – Uniform Resource Locators – identificam os documentos e outros recursos armazenados como
parte da web. Ex de Recursos: mailto: - identifica o endereço de e-mail, ftp: identifica o uso do
protocolo FTP ao invés do HTTP.
-HTTP – Hypertext Transfer Protocol – define as maneiras pelas quais os navegadores e outros tipos
de cliente interagem com os servidores web.
43. Desenvolvimento de Sistemas Distribuídos
PLANO DE ENSINO
IV – CONTEÚDO PROGRAMÁTICO
1. Introdução
1.1 Definição de Sistemas Distribuiídos
1.2 Caracterização de Sistemas Distribuídos
1.3 Desafios
1.4 Compartilhamento de Recursos e a Web
1.5 Tipos de Sistemas Distribuídos
-Sistemas Cluster (Beowulf/ Mosix) , Sistemas Grid,
44. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5 - Tipos de Sistemas Distribuídos
Sistemas Distribuídos utilizados para tarefas de computação de alto desempenho pode ser distinto
em dois subgrupos:
• Computação de Cluster
• Computação de Grade
45. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5 - Tipos de Sistemas Distribuídos
• 1.5.1 - Sistemas de computação de Cluster
O hardware subjacente consiste em um conjunto de estações de trabalho ou PCs semelhantes,
conectados por meio de uma rede local de alta velocidade. Cada nó executa o mesmo sistema
operacional.
Em 1960 pela IBM para interligar grandes mainframes.
46. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5 - Tipos de Sistemas Distribuídos
• 1.5.1 - Sistemas de computação de Cluster
Consiste em uma série de computadores simples conectados a uma rede de alta velocidade,
permitindo que se construa um Supercomputador.
A Computação em Cluster é usada para a Programação Paralela na qual um único programa, intensivo
em computação é executado em paralelo em várias máquinas.
Computadores interligados trocam informações e se comportam como um Sistema Distribuido.
47. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5 - Tipos de Sistemas Distribuídos
• 1.5.1 - Sistemas de computação de Cluster
Existem 3 tipos de cluster: HA, Load Balancing e HPC.
• HA – High Availability
– Alta disponibilidade
– é capaz de manter um determinado serviço de forma segura disponível o maior tempo
possível
• Load Balancing
- Cluster para Balanceamento de carga
- Distribui igualmente requisições, processos, etc entre os nós
48. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5 - Tipos de Sistemas Distribuídos
• 1.5.1 - Sistemas de computação de Cluster
Existem 3 tipos de cluster:
• HPC – High Performance Computing
- Alto desempenho
- Pesquisas Científicas
- Grande variedade de dados
- configuração designada para prover grande poder computacional.
- Permitir que o processamento direcionado a aplicação forneça resposta vs tempo
satisfatório
- Mesmo que haja centenas de milhares de gigaflops envolvidos com a tarefa (1 gigaflop
corresponde a 1 bilhão de instruções de ponto flutuante executadas por segundo).
49. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5 - Tipos de Sistemas Distribuídos
• 1.5.1 - Sistemas de computação de Cluster
Principais infraestruturas para cluster:
• Beowulf
• MOSIX
• OpenSSI
• Kerrighed
50. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5 - Tipos de Sistemas Distribuídos
• 1.5.1 - Sistemas de computação de Cluster
O Cluster Beowulf baseado em Linux
Cada cluster consiste em um conjunto de nós (back-end) controlados e acessados por meio de um
único nó mestre (front-end)
51. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5 - Tipos de Sistemas Distribuídos
• 1.5.1 - Sistemas de computação de Cluster
O Cluster Beowulf baseado em Linux
Cada cluster consiste em um conjunto de nós (back-end) controlados e acessados por meio de um
único nó mestre (front-end)
52. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5 - Tipos de Sistemas Distribuídos
• 1.5.1- Sistemas de computação de Cluster
Cada cluster consiste em um conjunto de nós controlados e acessados por meio de um único nó
mestre
As tarefas do mestre são:
- Manipular a alocação de nós a um determinado programa paralelo
- Proporcionar uma interface para os usuários do sistema.
O Mestre executa o Middleware necessário para a execução de programas e o gerenciamento do
cluster
53. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5 - Tipos de Sistemas Distribuídos
• 1.5.1 - Sistemas de computação de Cluster
Como alternativa ao Cluster Beowulf, ou organização hierarquica, surgiu o Sistema Mosix.
O Sistema Mosix (Multicomputer Operating System for Unix) adota uma abordagem simétrica
Ou seja, tenta prover uma imagem de sistema único de um cluster.
Isso significa que, para um processo, um computador de cluster oferece a transparência de
distribuição definitiva porque parece ser um único computador.
Nesse sistema é possível fazer a migração de processos – ou seja, um usuário pode iniciar uma
aplicação em qualquer nó e essa aplicação pode migrar para outros nós a fim de fazer o uso eficiente
de recursos.
54. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5- Tipos de Sistemas Distribuídos
• 1.5.1- Sistemas de computação de Cluster
55. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5- Tipos de Sistemas Distribuídos
• 1.5.1- Sistemas de computação de Cluster
Em 1993 Donald Becker e Thomas Sterling criaram o projeto Beowulf.
A ideia era de realizar processamento distribuído construído a partir de Hardware convencional como
uma medida de combate aos custos dos supercomputadores.
O protótipo inicial era um cluster de 16 processadores DX4 ligados por dois canais Ethernet acoplados
A máquina foi muito bem aceita e posteriormente utilizada na NASA.
56. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5- Tipos de Sistemas Distribuídos
• 1.5.1- Sistemas de computação de Cluster
Os cluster Beowulf são baseados em uma infraestrutura de hardware comum, rede privada e
Linux
Hardware comum – significa qualquer computador/ equipamentos tradicionais
Processamento Paralelo - A tarefa a ser processada é separada em partes independentes, distribuidas
nos vários nós que estão na estrutura do cluster
O Beowulf é voltado para desempenho
Utilizado para processamento científico / processamento em larga escala
57. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5- Tipos de Sistemas Distribuídos
• 1.5.1- Sistemas de computação de Cluster
Configuração Beowulf
Consiste de dois passos:
- Configuração no nó mestre (servidor)
- Configuração dos nós escravos
58. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5- Tipos de Sistemas Distribuídos
• 1.5.1- Sistemas de computação de Cluster
Vantagens:
- Escaláveis – possível inserir e coordenar um grande número de nós
- Não necessita de equipamentos específicos
- Gerenciamento de Falhas (se um nó falhar, simples substituição)
Desvantagens:
- Poucos softwares suportam e tratam esse tipo de cluster como um sistema único
59. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5- Tipos de Sistemas Distribuídos
• 1.5.1- Sistemas de computação de Cluster
60. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5- Tipos de Sistemas Distribuídos
• 1.5.1- Sistemas de computação de Cluster
61. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5- Tipos de Sistemas Distribuídos
• 1.5.1- Sistemas de computação de Cluster
Em 1977 iniciou o Projeto MOS (Multicomputer OS) – pesquisas sobre migração de processos.
Concluiram que mesmo com conexões lentas entre os nós, havia um ganho de desempenho.
MOSIX – cluster para Linux
Em 2002 – Open MOSIX – extensão do MOSIX baseado em GPL - Ph. D Moshe Bar
Em 2006 – Lançado o MOSIX 2 – suporte multi-clusters e clouds (2009) – projetado para alto
desempenho.
62. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5- Tipos de Sistemas Distribuídos
• 1.5.1- Sistemas de computação de Cluster
Características MOSIX 2
- Usuários podem fazer login em qualquer nó e não precisam saber onde os programas são
executados.
- Descoberta automática de recursos
- Distribuição dinâmica de carga de trabalho
63. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5- Tipos de Sistemas Distribuídos
• 1.5.1- Sistemas de computação de Cluster
Características Open MOSIX
- Os nós do cluster mantem comunicação entre eles sobre a disponibilidade dos recursos
(processador e memória)
- Cada nó tem conhecimento da disponibilidade atual do outro para o comportilhamento de
recursos
- Um nó sobrecarregado por migrar/transladar processos para nós menos utilizados
(processamento distribuido)
- Possui Escalabilidade – ao adicionar um novo nó na rede, será automaticamente adaptado pelo
cluster como nó.
- Contrapartida – nem tudo se beneficia do compartilhamento de recursos/ nem tudo é possivel
utilizar o processamento distribuido!
64. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5- Tipos de Sistemas Distribuídos
• 1.5.1- Sistemas de computação de Cluster
Instalação:
- Disponível em www.mosix.org versão para estudos com suporte para até 6 nós
- Escolher versões de cluster instantâneo – Open Mosix (Veremos mais a frente!)
65. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5- Tipos de Sistemas Distribuídos
• 1.5.1- Sistemas de computação de Cluster
Instalação:
- Disponível em www.mosix.org versão para estudos com suporte para até 6 nós
- Escolher versões de cluster instantâneo – Open Mosix (Veremos mais a frente!)
66. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5 - Tipos de Sistemas Distribuídos
• 1.5.2 - Sistemas de computação em Grade
• Infraestrutura computacional pelo acoplamento de recursos distribuídos geograficamente
como bases de dados, servidores de armazenamento, redes de alta velocidade,
supercomputadores e aglomerados para solucionar problemas de grande escala
• Análoga à grade de energia elétrica que provê acesso consistente, pervasivo e
transparente a energia elétrica independente da origem.
• A grade de energia elétrica disponibiliza energia elétrica sob demanda e esconde do
usuário detalhes como a origem da energia e a complexidade da malha de transmissão e
distribuição.
67. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5 - Tipos de Sistemas Distribuídos
• 1.5.2 - Sistemas de computação em Grade
Processamento Paralelo + Sistemas Distribuídos
SMPs (ou multiprocessadores simétricos) são máquinas em que vários processadores compartilham a
mesma memória.
MPPs (Os MPPs (processadores maciçamente paralelos) são compostos por vários nós
(processador e memória) independentes, interconectados por redes dedicadas e de alta
velocidade.
NOWs (redes de estações de trabalho) ou aglomerados de computadores são
um conjunto de estações de trabalho ou PCs, ligados por uma rede local.
68. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5 - Tipos de Sistemas Distribuídos
• 1.5.2 - Sistemas de computação em Grade
69. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5 - Tipos de Sistemas Distribuídos
• 1.5.2 - Sistemas de computação em Grade
As grades computacionais estão preocupadas em agregar supercomputadores distribuídos
geograficamente para o processamento de grandes massas de dados
Em uma grade computacional devemos lidar com seis aspectos principais para suportar
esses tipos de aplicações [Buyya 2002]:
-Heterogeneidade
-Escalabilidade
-Compartilhamento de Recursos
-Multiplos Dominios Administrativos
-Controle Distribuidos
-Dinamicidade e Adaptabilidade
70. Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5 - Tipos de Sistemas Distribuídos
• 1.5.2 - Sistemas de computação em Grade
Uma grade pode diferir radicalmente de outro.
Por exemplo: o TeraGrid e o SETI@home.
O TeraGrid é uma grade que interliga 4 centros de supercomputação norte-americanos
através de canais de altíssima velocidade (40 GigaBits/segundo). Cada um dos 4 centros
terá milhares de processadores dedicados ao TeraGrid, gerando um poder agregado de 13,6
TeraFlops.
O SETI@home, por outro lado, utiliza a capacidade computacional ociosa de computadores
que se juntam voluntariamente ao sistema através da instalação do software cliente do
projeto. Em fevereiro de 2000, SETI@home contava com 1.6 milhões de processadores
espalhados em 224 países, e computava em média a uma velocidade de 10 Teraflops