SlideShare uma empresa Scribd logo
1 de 70
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
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
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.
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.
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..
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.
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
.
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.
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
DEFINICAO DE SISTEMAS DISTRIBUIDOS
Enquanto outros amadureceram muito, como serviços Web e aplicações Web.
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"
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.
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.
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
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
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.
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.
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
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
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
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.
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ídos gera muitos desafios:
- Heterogeneidade
- Sistemas Abertos
- Seguraça
- Escalabilidade
- Tratamento de Falhas
- Concorrência
- Transparência
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.
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.
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.
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.
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 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,
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.
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.
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.
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:
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.
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.
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.
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.
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,
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
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.
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.
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
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).
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
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)
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)
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
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.
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5- Tipos de Sistemas Distribuídos
• 1.5.1- Sistemas de computação de Cluster
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.
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
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
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
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5- Tipos de Sistemas Distribuídos
• 1.5.1- Sistemas de computação de Cluster
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5- Tipos de Sistemas Distribuídos
• 1.5.1- Sistemas de computação de Cluster
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.
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
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!
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!)
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!)
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.
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.
Desenvolvimento de Sistemas Distribuídos
1- INTRODUÇÂO
1.5 - Tipos de Sistemas Distribuídos
• 1.5.2 - Sistemas de computação em Grade
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
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

Mais conteúdo relacionado

Mais procurados

Introdução aos sistemas distribuidos
Introdução aos sistemas distribuidosIntrodução aos sistemas distribuidos
Introdução aos sistemas distribuidosJesse Teixeira
 
Aula 2 introdução a sistemas distribuídos
Aula 2   introdução a sistemas distribuídosAula 2   introdução a sistemas distribuídos
Aula 2 introdução a sistemas distribuídosEduardo de Lucena Falcão
 
ACII - SL07 - Introducao aos sistemas distribuidos
ACII - SL07 - Introducao aos sistemas distribuidosACII - SL07 - Introducao aos sistemas distribuidos
ACII - SL07 - Introducao aos sistemas distribuidosUFPB
 
Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoThiago Marinho
 
Introdução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosIntrodução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosFrederico Madeira
 
Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01Arthur Emanuel
 
Redes de Comunicação 11º M11 - TGPSI
Redes de Comunicação 11º M11 - TGPSIRedes de Comunicação 11º M11 - TGPSI
Redes de Comunicação 11º M11 - TGPSILuis Ferreira
 
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
 
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
 
Sistemas Operacionais - Gnu/Linux
Sistemas Operacionais - Gnu/LinuxSistemas Operacionais - Gnu/Linux
Sistemas Operacionais - Gnu/LinuxLuiz Arthur
 
Arquitectura e modelos de sistemas distribuidos
Arquitectura e modelos de sistemas distribuidosArquitectura e modelos de sistemas distribuidos
Arquitectura e modelos de sistemas distribuidosPortal_do_Estudante_SD
 
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
 
Introcucao aos Sistemas Distribuidos
Introcucao aos Sistemas DistribuidosIntrocucao aos Sistemas Distribuidos
Introcucao aos Sistemas DistribuidosValberto Carneiro
 
Capítulo1 - Introdução a Sistemas Distribuídos - Coulouris
Capítulo1 - Introdução a Sistemas Distribuídos - CoulourisCapítulo1 - Introdução a Sistemas Distribuídos - Coulouris
Capítulo1 - Introdução a Sistemas Distribuídos - CoulourisWindson Viana
 
P2P - Sistemas Distribuídos
P2P - Sistemas DistribuídosP2P - Sistemas Distribuídos
P2P - Sistemas DistribuídosGustavo Monteiro
 
Artigo Sistemas Distribuidos
Artigo Sistemas DistribuidosArtigo Sistemas Distribuidos
Artigo Sistemas DistribuidosAdilmar Dantas
 
Aula 01 redes-1_apres_disciplina_1-2014_v03
Aula 01 redes-1_apres_disciplina_1-2014_v03Aula 01 redes-1_apres_disciplina_1-2014_v03
Aula 01 redes-1_apres_disciplina_1-2014_v03Altenir Morais
 
Apresentação da Disciplina de Sistemas Distribuídos
Apresentação da Disciplina de Sistemas DistribuídosApresentação da Disciplina de Sistemas Distribuídos
Apresentação da Disciplina de Sistemas DistribuídosFrederico Madeira
 

Mais procurados (20)

Introdução aos sistemas distribuidos
Introdução aos sistemas distribuidosIntrodução aos sistemas distribuidos
Introdução aos sistemas distribuidos
 
Aula 2 introdução a sistemas distribuídos
Aula 2   introdução a sistemas distribuídosAula 2   introdução a sistemas distribuídos
Aula 2 introdução a sistemas distribuídos
 
ACII - SL07 - Introducao aos sistemas distribuidos
ACII - SL07 - Introducao aos sistemas distribuidosACII - SL07 - Introducao aos sistemas distribuidos
ACII - SL07 - Introducao aos sistemas distribuidos
 
SI - Comunicação
SI - ComunicaçãoSI - Comunicação
SI - Comunicação
 
Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - Conceito
 
Introdução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosIntrodução aos Sistemas Distribuídos
Introdução aos Sistemas Distribuídos
 
Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01
 
Redes de Comunicação 11º M11 - TGPSI
Redes de Comunicação 11º M11 - TGPSIRedes de Comunicação 11º M11 - TGPSI
Redes de Comunicação 11º M11 - TGPSI
 
Sistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de ProjetoSistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de Projeto
 
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
 
Sistemas Operacionais - Gnu/Linux
Sistemas Operacionais - Gnu/LinuxSistemas Operacionais - Gnu/Linux
Sistemas Operacionais - Gnu/Linux
 
Arquitectura e modelos de sistemas distribuidos
Arquitectura e modelos de sistemas distribuidosArquitectura e modelos de sistemas distribuidos
Arquitectura e modelos de sistemas distribuidos
 
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
 
Introcucao aos Sistemas Distribuidos
Introcucao aos Sistemas DistribuidosIntrocucao aos Sistemas Distribuidos
Introcucao aos Sistemas Distribuidos
 
Capítulo1 - Introdução a Sistemas Distribuídos - Coulouris
Capítulo1 - Introdução a Sistemas Distribuídos - CoulourisCapítulo1 - Introdução a Sistemas Distribuídos - Coulouris
Capítulo1 - Introdução a Sistemas Distribuídos - Coulouris
 
Sd01 (si) sistemas de arquivos
Sd01 (si)   sistemas de arquivosSd01 (si)   sistemas de arquivos
Sd01 (si) sistemas de arquivos
 
P2P - Sistemas Distribuídos
P2P - Sistemas DistribuídosP2P - Sistemas Distribuídos
P2P - Sistemas Distribuídos
 
Artigo Sistemas Distribuidos
Artigo Sistemas DistribuidosArtigo Sistemas Distribuidos
Artigo Sistemas Distribuidos
 
Aula 01 redes-1_apres_disciplina_1-2014_v03
Aula 01 redes-1_apres_disciplina_1-2014_v03Aula 01 redes-1_apres_disciplina_1-2014_v03
Aula 01 redes-1_apres_disciplina_1-2014_v03
 
Apresentação da Disciplina de Sistemas Distribuídos
Apresentação da Disciplina de Sistemas DistribuídosApresentação da Disciplina de Sistemas Distribuídos
Apresentação da Disciplina de Sistemas Distribuídos
 

Destaque

Sistemas Distribuidos, Middleware e RPC
Sistemas Distribuidos, Middleware e RPCSistemas Distribuidos, Middleware e RPC
Sistemas Distribuidos, Middleware e RPClimabezerra
 
Monitor de Processos Distribuídos
Monitor de Processos DistribuídosMonitor de Processos Distribuídos
Monitor de Processos Distribuídoswillmews
 
Sistemas Distribuidos Java
Sistemas Distribuidos JavaSistemas Distribuidos Java
Sistemas Distribuidos Javalimadavi
 
Sistemas Distribuídos - Aula 07 - Servicos Web
Sistemas Distribuídos - Aula 07 - Servicos WebSistemas Distribuídos - Aula 07 - Servicos Web
Sistemas Distribuídos - Aula 07 - Servicos WebArthur Emanuel
 
Padrões-04 - Padrões Arquiteturais - Broker
Padrões-04 - Padrões Arquiteturais - BrokerPadrões-04 - Padrões Arquiteturais - Broker
Padrões-04 - Padrões Arquiteturais - BrokerEduardo Nicola F. Zagari
 
Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02Arthur Emanuel
 
Sistemas operativos distribuidos e de redes
Sistemas operativos distribuidos e de redesSistemas operativos distribuidos e de redes
Sistemas operativos distribuidos e de redesPortal_do_Estudante_SD
 
SIMULAÇÃO MONTE CARLO PARA FLUXO DE PROCESSOS UTILIZANDO A FERRAMENTA FUSION ...
SIMULAÇÃO MONTE CARLO PARA FLUXO DE PROCESSOS UTILIZANDO A FERRAMENTA FUSION ...SIMULAÇÃO MONTE CARLO PARA FLUXO DE PROCESSOS UTILIZANDO A FERRAMENTA FUSION ...
SIMULAÇÃO MONTE CARLO PARA FLUXO DE PROCESSOS UTILIZANDO A FERRAMENTA FUSION ...willmews
 

Destaque (8)

Sistemas Distribuidos, Middleware e RPC
Sistemas Distribuidos, Middleware e RPCSistemas Distribuidos, Middleware e RPC
Sistemas Distribuidos, Middleware e RPC
 
Monitor de Processos Distribuídos
Monitor de Processos DistribuídosMonitor de Processos Distribuídos
Monitor de Processos Distribuídos
 
Sistemas Distribuidos Java
Sistemas Distribuidos JavaSistemas Distribuidos Java
Sistemas Distribuidos Java
 
Sistemas Distribuídos - Aula 07 - Servicos Web
Sistemas Distribuídos - Aula 07 - Servicos WebSistemas Distribuídos - Aula 07 - Servicos Web
Sistemas Distribuídos - Aula 07 - Servicos Web
 
Padrões-04 - Padrões Arquiteturais - Broker
Padrões-04 - Padrões Arquiteturais - BrokerPadrões-04 - Padrões Arquiteturais - Broker
Padrões-04 - Padrões Arquiteturais - Broker
 
Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02
 
Sistemas operativos distribuidos e de redes
Sistemas operativos distribuidos e de redesSistemas operativos distribuidos e de redes
Sistemas operativos distribuidos e de redes
 
SIMULAÇÃO MONTE CARLO PARA FLUXO DE PROCESSOS UTILIZANDO A FERRAMENTA FUSION ...
SIMULAÇÃO MONTE CARLO PARA FLUXO DE PROCESSOS UTILIZANDO A FERRAMENTA FUSION ...SIMULAÇÃO MONTE CARLO PARA FLUXO DE PROCESSOS UTILIZANDO A FERRAMENTA FUSION ...
SIMULAÇÃO MONTE CARLO PARA FLUXO DE PROCESSOS UTILIZANDO A FERRAMENTA FUSION ...
 

Semelhante a Desenvolvimento de Sistemas Distribuídos

Relatório geral pi
Relatório geral piRelatório geral pi
Relatório geral piredesinforma
 
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
 
Desenvolvimento em Nuvem
Desenvolvimento em NuvemDesenvolvimento em Nuvem
Desenvolvimento em NuvemVitor Savicki
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionaisDuFelix02
 
Eucalyptus uma plataforma de cloud computing para qualquer tipo de usuário
Eucalyptus uma plataforma de cloud computing para qualquer tipo de usuárioEucalyptus uma plataforma de cloud computing para qualquer tipo de usuário
Eucalyptus uma plataforma de cloud computing para qualquer tipo de usuárioGustavo Henrique Rodrigues Pinto Tomas
 
IFPA - Sistemas Distribuídos - Aula 01.pptx
IFPA - Sistemas Distribuídos - Aula 01.pptxIFPA - Sistemas Distribuídos - Aula 01.pptx
IFPA - Sistemas Distribuídos - Aula 01.pptxISOMARVALENTE1
 
ADR00 - Conceitos de Sistemas Operacionais de Redes
ADR00 - Conceitos de Sistemas Operacionais de RedesADR00 - Conceitos de Sistemas Operacionais de Redes
ADR00 - Conceitos de Sistemas Operacionais de RedesSilvano Oliveira
 
3a Web Aula - Gestão de Tecnologia da Informação.pdf
3a Web Aula - Gestão de Tecnologia da Informação.pdf3a Web Aula - Gestão de Tecnologia da Informação.pdf
3a Web Aula - Gestão de Tecnologia da Informação.pdfDimas Francisco
 
TOP Middleware-Basico-20181023.pdf
TOP Middleware-Basico-20181023.pdfTOP Middleware-Basico-20181023.pdf
TOP Middleware-Basico-20181023.pdfFabio Apolinario
 
Introdução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NETIntrodução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NETMário Meyrelles
 
Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1
Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1
Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1Messias Batista
 
Aula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para WebAula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para WebDaniel Brandão
 
Ferramenta de Cloud Computer para apoio à Engenharia de Software
Ferramenta de Cloud Computer para apoio à Engenharia de SoftwareFerramenta de Cloud Computer para apoio à Engenharia de Software
Ferramenta de Cloud Computer para apoio à Engenharia de SoftwareDanilo Sousa
 
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
 
ReVir – Programabilidade em Redes Virtualizadas
ReVir – Programabilidade em Redes VirtualizadasReVir – Programabilidade em Redes Virtualizadas
ReVir – Programabilidade em Redes VirtualizadasWanderson Paim
 

Semelhante a Desenvolvimento de Sistemas Distribuídos (20)

Relatório geral pi
Relatório geral piRelatório geral pi
Relatório geral pi
 
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
 
Desenvolvimento em Nuvem
Desenvolvimento em NuvemDesenvolvimento em Nuvem
Desenvolvimento em Nuvem
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
Introducao.2s
Introducao.2sIntroducao.2s
Introducao.2s
 
Eucalyptus uma plataforma de cloud computing para qualquer tipo de usuário
Eucalyptus uma plataforma de cloud computing para qualquer tipo de usuárioEucalyptus uma plataforma de cloud computing para qualquer tipo de usuário
Eucalyptus uma plataforma de cloud computing para qualquer tipo de usuário
 
IFPA - Sistemas Distribuídos - Aula 01.pptx
IFPA - Sistemas Distribuídos - Aula 01.pptxIFPA - Sistemas Distribuídos - Aula 01.pptx
IFPA - Sistemas Distribuídos - Aula 01.pptx
 
ADR00 - Conceitos de Sistemas Operacionais de Redes
ADR00 - Conceitos de Sistemas Operacionais de RedesADR00 - Conceitos de Sistemas Operacionais de Redes
ADR00 - Conceitos de Sistemas Operacionais de Redes
 
Computação de alta performance
Computação de alta performanceComputação de alta performance
Computação de alta performance
 
3a Web Aula - Gestão de Tecnologia da Informação.pdf
3a Web Aula - Gestão de Tecnologia da Informação.pdf3a Web Aula - Gestão de Tecnologia da Informação.pdf
3a Web Aula - Gestão de Tecnologia da Informação.pdf
 
TOP Middleware-Basico-20181023.pdf
TOP Middleware-Basico-20181023.pdfTOP Middleware-Basico-20181023.pdf
TOP Middleware-Basico-20181023.pdf
 
Introdução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NETIntrodução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NET
 
Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1
Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1
Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1
 
Aula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para WebAula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para Web
 
Apresentação do Curso
Apresentação do CursoApresentação do Curso
Apresentação do Curso
 
Ferramenta de Cloud Computer para apoio à Engenharia de Software
Ferramenta de Cloud Computer para apoio à Engenharia de SoftwareFerramenta de Cloud Computer para apoio à Engenharia de Software
Ferramenta de Cloud Computer para apoio à Engenharia de Software
 
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
 
Modelo osi
Modelo osiModelo osi
Modelo osi
 
ReVir – Programabilidade em Redes Virtualizadas
ReVir – Programabilidade em Redes VirtualizadasReVir – Programabilidade em Redes Virtualizadas
ReVir – Programabilidade em Redes Virtualizadas
 
Programabilidade em Redes Virtualizadas
Programabilidade em Redes VirtualizadasProgramabilidade em Redes Virtualizadas
Programabilidade em Redes Virtualizadas
 

Mais de Ramon Mayor Martins

IES GF Circuitos Digitais Parte 3
IES GF Circuitos Digitais Parte 3IES GF Circuitos Digitais Parte 3
IES GF Circuitos Digitais Parte 3Ramon Mayor Martins
 
IES GF - Linguagem de Programação Estruturada - Parte 3
IES GF - Linguagem de Programação Estruturada - Parte 3 IES GF - Linguagem de Programação Estruturada - Parte 3
IES GF - Linguagem de Programação Estruturada - Parte 3 Ramon Mayor Martins
 
IES GF - Linguagem de Programação Estruturada - Parte 2
IES GF - Linguagem de Programação Estruturada - Parte 2IES GF - Linguagem de Programação Estruturada - Parte 2
IES GF - Linguagem de Programação Estruturada - Parte 2Ramon Mayor Martins
 
IES GF - Linguagem de Programação Estruturada - Parte 1
IES GF - Linguagem de Programação Estruturada - Parte 1IES GF - Linguagem de Programação Estruturada - Parte 1
IES GF - Linguagem de Programação Estruturada - Parte 1Ramon Mayor Martins
 
IES GF - Circuitos Digitais - Parte 2
IES GF - Circuitos Digitais - Parte 2IES GF - Circuitos Digitais - Parte 2
IES GF - Circuitos Digitais - Parte 2Ramon Mayor Martins
 
IES GF - Circuitos Digitais - Parte 1
IES GF - Circuitos Digitais - Parte 1IES GF - Circuitos Digitais - Parte 1
IES GF - Circuitos Digitais - Parte 1Ramon Mayor Martins
 
IFSC SJ - Grupo de estudos em rádio definido por software
IFSC SJ - Grupo de estudos em rádio definido por softwareIFSC SJ - Grupo de estudos em rádio definido por software
IFSC SJ - Grupo de estudos em rádio definido por softwareRamon Mayor Martins
 
IES GF - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - P...
IES GF - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - P...IES GF - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - P...
IES GF - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - P...Ramon Mayor Martins
 
IES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a ObjetosIES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a ObjetosRamon Mayor Martins
 
Nova geração de satélites brasileiros
Nova geração de satélites brasileirosNova geração de satélites brasileiros
Nova geração de satélites brasileirosRamon Mayor Martins
 
[Apresentação de Defesa] Análise comparativa entre os métodos HMM e GMM-UBM n...
[Apresentação de Defesa] Análise comparativa entre os métodos HMM e GMM-UBM n...[Apresentação de Defesa] Análise comparativa entre os métodos HMM e GMM-UBM n...
[Apresentação de Defesa] Análise comparativa entre os métodos HMM e GMM-UBM n...Ramon Mayor Martins
 
Implementação da técnica VTLN - Estudo dos métodos
Implementação da técnica VTLN - Estudo dos métodosImplementação da técnica VTLN - Estudo dos métodos
Implementação da técnica VTLN - Estudo dos métodosRamon Mayor Martins
 
Application of Neural Network for Sensing Primary Radio Signals in a Cognitiv...
Application of Neural Network for Sensing Primary Radio Signals in a Cognitiv...Application of Neural Network for Sensing Primary Radio Signals in a Cognitiv...
Application of Neural Network for Sensing Primary Radio Signals in a Cognitiv...Ramon Mayor Martins
 
Aplicações de Inteligência Artificial em Rádios Cognitivos
Aplicações de Inteligência Artificial em Rádios CognitivosAplicações de Inteligência Artificial em Rádios Cognitivos
Aplicações de Inteligência Artificial em Rádios CognitivosRamon Mayor Martins
 
Redes Neurais - Poda Hessiana: Optimal Brain Surgeon e Damage
Redes Neurais - Poda Hessiana: Optimal Brain Surgeon e DamageRedes Neurais - Poda Hessiana: Optimal Brain Surgeon e Damage
Redes Neurais - Poda Hessiana: Optimal Brain Surgeon e DamageRamon Mayor Martins
 

Mais de Ramon Mayor Martins (20)

[2.2]ifsc integrado rdt_2015_1
[2.2]ifsc integrado rdt_2015_1[2.2]ifsc integrado rdt_2015_1
[2.2]ifsc integrado rdt_2015_1
 
[1]ifsc integrado rdt_2015_2
[1]ifsc integrado rdt_2015_2[1]ifsc integrado rdt_2015_2
[1]ifsc integrado rdt_2015_2
 
IES GF Circuitos Digitais Parte 3
IES GF Circuitos Digitais Parte 3IES GF Circuitos Digitais Parte 3
IES GF Circuitos Digitais Parte 3
 
IES GF - Linguagem de Programação Estruturada - Parte 3
IES GF - Linguagem de Programação Estruturada - Parte 3 IES GF - Linguagem de Programação Estruturada - Parte 3
IES GF - Linguagem de Programação Estruturada - Parte 3
 
IES GF - Linguagem de Programação Estruturada - Parte 2
IES GF - Linguagem de Programação Estruturada - Parte 2IES GF - Linguagem de Programação Estruturada - Parte 2
IES GF - Linguagem de Programação Estruturada - Parte 2
 
IES GF - Linguagem de Programação Estruturada - Parte 1
IES GF - Linguagem de Programação Estruturada - Parte 1IES GF - Linguagem de Programação Estruturada - Parte 1
IES GF - Linguagem de Programação Estruturada - Parte 1
 
IES GF - Circuitos Digitais - Parte 2
IES GF - Circuitos Digitais - Parte 2IES GF - Circuitos Digitais - Parte 2
IES GF - Circuitos Digitais - Parte 2
 
IES GF - Circuitos Digitais - Parte 1
IES GF - Circuitos Digitais - Parte 1IES GF - Circuitos Digitais - Parte 1
IES GF - Circuitos Digitais - Parte 1
 
IFSC SJ - Grupo de estudos em rádio definido por software
IFSC SJ - Grupo de estudos em rádio definido por softwareIFSC SJ - Grupo de estudos em rádio definido por software
IFSC SJ - Grupo de estudos em rádio definido por software
 
IES GF - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - P...
IES GF - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - P...IES GF - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - P...
IES GF - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - P...
 
IES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a ObjetosIES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a Objetos
 
INATEL - Matlab introdução
INATEL - Matlab introduçãoINATEL - Matlab introdução
INATEL - Matlab introdução
 
Introdução ao matlab
Introdução ao matlabIntrodução ao matlab
Introdução ao matlab
 
Nova geração de satélites brasileiros
Nova geração de satélites brasileirosNova geração de satélites brasileiros
Nova geração de satélites brasileiros
 
[Apresentação de Defesa] Análise comparativa entre os métodos HMM e GMM-UBM n...
[Apresentação de Defesa] Análise comparativa entre os métodos HMM e GMM-UBM n...[Apresentação de Defesa] Análise comparativa entre os métodos HMM e GMM-UBM n...
[Apresentação de Defesa] Análise comparativa entre os métodos HMM e GMM-UBM n...
 
Implementação da técnica VTLN - Estudo dos métodos
Implementação da técnica VTLN - Estudo dos métodosImplementação da técnica VTLN - Estudo dos métodos
Implementação da técnica VTLN - Estudo dos métodos
 
Application of Neural Network for Sensing Primary Radio Signals in a Cognitiv...
Application of Neural Network for Sensing Primary Radio Signals in a Cognitiv...Application of Neural Network for Sensing Primary Radio Signals in a Cognitiv...
Application of Neural Network for Sensing Primary Radio Signals in a Cognitiv...
 
Aplicações de Inteligência Artificial em Rádios Cognitivos
Aplicações de Inteligência Artificial em Rádios CognitivosAplicações de Inteligência Artificial em Rádios Cognitivos
Aplicações de Inteligência Artificial em Rádios Cognitivos
 
Redes Neurais - Poda Hessiana: Optimal Brain Surgeon e Damage
Redes Neurais - Poda Hessiana: Optimal Brain Surgeon e DamageRedes Neurais - Poda Hessiana: Optimal Brain Surgeon e Damage
Redes Neurais - Poda Hessiana: Optimal Brain Surgeon e Damage
 
Redes Oportunistas: Haggle
Redes Oportunistas: HaggleRedes Oportunistas: Haggle
Redes Oportunistas: Haggle
 

Desenvolvimento de Sistemas Distribuídos

  • 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.
  • 17. Desenvolvimento de Sistemas Distribuídos 1- INTRODUÇÂO
  • 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. Desenvolvimento de Sistemas Distribuídos 1- INTRODUÇÂO
  • 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. Desenvolvimento de Sistemas Distribuídos 1- INTRODUÇÂO
  • 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.
  • 27. Desenvolvimento de Sistemas Distribuídos 1- INTRODUÇÂO SISTEMAS DISTRIBUIDOS
  • 28. Desenvolvimento de Sistemas Distribuídos 1- INTRODUÇÂO SISTEMAS DISTRIBUIDOS
  • 29. Desenvolvimento de Sistemas Distribuídos 1- INTRODUÇÂO SISTEMAS DISTRIBUIDOS
  • 30. Desenvolvimento de Sistemas Distribuídos 1- INTRODUÇÂO SISTEMAS DISTRIBUIDOS
  • 31. Desenvolvimento de Sistemas Distribuídos 1- INTRODUÇÂO SISTEMAS DISTRIBUIDOS
  • 32. Desenvolvimento de Sistemas Distribuídos 1- INTRODUÇÂO SISTEMAS DISTRIBUIDOS
  • 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