Desenvolvimento de Sistemas Distribuídos
Prof. Ramon Mayor Martins , M.Sc. Eng.
mayor@linuxmail.org
Parte 1
São José – 201...
Desenvolvimento de Sistemas Distribuídos
PLANO DE ENSINO
CURSO: Ciência da Computação
SÉRIE: 7º semestre
DISCIPLINA: Desen...
Desenvolvimento de Sistemas Distribuídos
PLANO DE ENSINO
I – EMENTA
Definição e histórico de aplicações envolvendo sistema...
Desenvolvimento de Sistemas Distribuídos
PLANO DE ENSINO
V – ESTRATÉGIAS DE TRABALHO
Aulas expositivas. Listas de exercíci...
Desenvolvimento de Sistemas Distribuídos
PLANO DE ENSINO
VII – BIBLIOGRAFIA
Básica
Couloris, George.; Sistemas Distribuído...
Desenvolvimento de Sistemas Distribuídos
PLANO DE ENSINO
VII – BIBLIOGRAFIA
Complementar
Sampaio, Cleuton. SOA e Web servi...
Desenvolvimento de Sistemas Distribuídos
PLANO DE ENSINO
IV – CONTEÚDO PROGRAMÁTICO
1. Introdução
1.1 Definição de Sistema...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.1 DEFINICAO DE SISTEMAS DISTRIBUIDOS
Nos ultimos anos vem surgind...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
DEFINICAO DE SISTEMAS DISTRIBUIDOS
Enquanto outros amadureceram mui...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
DEFINICAO DE SISTEMAS DISTRIBUIDOS
Andrew Tanenbaum
é uma "coleção ...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
DEFINICAO DE SISTEMAS DISTRIBUIDOS
- Um sistema distribuído consist...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
DEFINICAO DE SISTEMAS DISTRIBUIDOS
- Uma característica importante ...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
CARACTERIZACAO DE SISTEMAS DISTRIBUIDOS
• Sistemas Distribuidos:
Aq...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
CARACTERIZACAO DE SISTEMAS DISTRIBUIDOS
• Recursos:
Conjunto de ele...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
CARACTERIZACAO DE SISTEMAS DISTRIBUIDOS
• Exemplo de Sistemas Distr...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
CARACTERIZACAO DE SISTEMAS DISTRIBUIDOS
• Exemplo de Sistemas Distr...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
CARACTERIZACAO DE SISTEMAS DISTRIBUIDOS
• Exemplo de Sistemas Distr...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
CARACTERIZACAO DE SISTEMAS DISTRIBUIDOS
• Exemplo de Sistemas Distr...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
DESAFIOS DE SISTEMAS DISTRIBUIDOS
A construção de Sistemas Distribu...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
DESAFIOS DE SISTEMAS DISTRIBUIDOS
- Heterogeneidade:
Eles devem ser...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
DESAFIOS DE SISTEMAS DISTRIBUIDOS
-Sistemas Abertos:
Os sistemas di...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
DESAFIOS DE SISTEMAS DISTRIBUIDOS
-Escalabilidade:
Um sistema distr...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
DESAFIOS DE SISTEMAS DISTRIBUIDOS
-Tratamento de falhas:
Qualquer p...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
SISTEMAS DISTRIBUIDOS
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
SISTEMAS DISTRIBUIDOS
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
SISTEMAS DISTRIBUIDOS
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
SISTEMAS DISTRIBUIDOS
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
SISTEMAS DISTRIBUIDOS
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
SISTEMAS DISTRIBUIDOS
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
SISTEMAS DISTRIBUIDOS
... Grid, Sensors, Farm, Web Services...
Desenvolvimento de Sistemas Distribuídos
PLANO DE ENSINO
IV – CONTEÚDO PROGRAMÁTICO
1. Introdução
1.1 Definição de Sistema...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
Compartilhamento de Recursos e Web
Para suportar computadores e red...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
Compartilhamento de Recursos e Web
Recursos: Conjunto de elementos,...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
Compartilhamento de Recursos e Web
Acesso a Recursos:
- A principal...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
Compartilhamento de Recursos e Web
Transparência da Distribuição:
-...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
Compartilhamento de Recursos e Web
Transparência da Distribuição:
•...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
Compartilhamento de Recursos e Web
Transparência da Distribuição:
•...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
Compartilhamento de Recursos e Web
A Web
World Wide Web é um sistem...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
Compartilhamento de Recursos e Web
A Web
A web é baseada em 3 compo...
Desenvolvimento de Sistemas Distribuídos
PLANO DE ENSINO
IV – CONTEÚDO PROGRAMÁTICO
1. Introdução
1.1 Definição de Sistema...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5 - Tipos de Sistemas Distribuídos
Sistemas Distribuídos utilizad...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5 - Tipos de Sistemas Distribuídos
• 1.5.1 - Sistemas de computaç...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5 - Tipos de Sistemas Distribuídos
• 1.5.1 - Sistemas de computaç...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5 - Tipos de Sistemas Distribuídos
• 1.5.1 - Sistemas de computaç...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5 - Tipos de Sistemas Distribuídos
• 1.5.1 - Sistemas de computaç...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5 - Tipos de Sistemas Distribuídos
• 1.5.1 - Sistemas de computaç...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5 - Tipos de Sistemas Distribuídos
• 1.5.1 - Sistemas de computaç...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5 - Tipos de Sistemas Distribuídos
• 1.5.1 - Sistemas de computaç...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5 - Tipos de Sistemas Distribuídos
• 1.5.1- Sistemas de computaçã...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5 - Tipos de Sistemas Distribuídos
• 1.5.1 - Sistemas de computaç...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5- Tipos de Sistemas Distribuídos
• 1.5.1- Sistemas de computação...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5- Tipos de Sistemas Distribuídos
• 1.5.1- Sistemas de computação...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5- Tipos de Sistemas Distribuídos
• 1.5.1- Sistemas de computação...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5- Tipos de Sistemas Distribuídos
• 1.5.1- Sistemas de computação...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5- Tipos de Sistemas Distribuídos
• 1.5.1- Sistemas de computação...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5- Tipos de Sistemas Distribuídos
• 1.5.1- Sistemas de computação...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5- Tipos de Sistemas Distribuídos
• 1.5.1- Sistemas de computação...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5- Tipos de Sistemas Distribuídos
• 1.5.1- Sistemas de computação...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5- Tipos de Sistemas Distribuídos
• 1.5.1- Sistemas de computação...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5- Tipos de Sistemas Distribuídos
• 1.5.1- Sistemas de computação...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5- Tipos de Sistemas Distribuídos
• 1.5.1- Sistemas de computação...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5- Tipos de Sistemas Distribuídos
• 1.5.1- Sistemas de computação...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5 - Tipos de Sistemas Distribuídos
• 1.5.2 - Sistemas de computaç...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5 - Tipos de Sistemas Distribuídos
• 1.5.2 - Sistemas de computaç...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5 - Tipos de Sistemas Distribuídos
• 1.5.2 - Sistemas de computaç...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5 - Tipos de Sistemas Distribuídos
• 1.5.2 - Sistemas de computaç...
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5 - Tipos de Sistemas Distribuídos
• 1.5.2 - Sistemas de computaç...
Próximos SlideShares
Carregando em…5
×

IES - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - Parte 1 Revisão

302 visualizações

Publicada em

IES GF- Instituto de Ensino Superior da Grande Florianópolis
Ciência da Computação
Desenvolvimento de Sistemas Distribuídos
Parte 1 Revisão de Sistemas Distribuídos

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
302
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
10
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

IES - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - Parte 1 Revisão

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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.
  17. 17. Desenvolvimento de Sistemas Distribuídos 1- INTRODUÇÂO
  18. 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
  19. 19. Desenvolvimento de Sistemas Distribuídos 1- INTRODUÇÂO
  20. 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.
  21. 21. Desenvolvimento de Sistemas Distribuídos 1- INTRODUÇÂO
  22. 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. 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. 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. 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. 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.
  27. 27. Desenvolvimento de Sistemas Distribuídos 1- INTRODUÇÂO SISTEMAS DISTRIBUIDOS
  28. 28. Desenvolvimento de Sistemas Distribuídos 1- INTRODUÇÂO SISTEMAS DISTRIBUIDOS
  29. 29. Desenvolvimento de Sistemas Distribuídos 1- INTRODUÇÂO SISTEMAS DISTRIBUIDOS
  30. 30. Desenvolvimento de Sistemas Distribuídos 1- INTRODUÇÂO SISTEMAS DISTRIBUIDOS
  31. 31. Desenvolvimento de Sistemas Distribuídos 1- INTRODUÇÂO SISTEMAS DISTRIBUIDOS
  32. 32. Desenvolvimento de Sistemas Distribuídos 1- INTRODUÇÂO SISTEMAS DISTRIBUIDOS
  33. 33. Desenvolvimento de Sistemas Distribuídos 1- INTRODUÇÂO SISTEMAS DISTRIBUIDOS ... Grid, Sensors, Farm, Web Services...
  34. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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

×