Introdução a SD e suas Metas

Documentos relacionados
Introdução a Sistemas Distribuídos

Sistemas Distribuídos

Sistemas Distribuídos

Metas de um Sistema Distribuído

Conceitos de Sistemas Distribuídos

Sistemas Distribuídos

Sistemas Distribuídos Aspectos de Projeto de SD. Aspectos de Projeto em SD. Transparência 14/03/12. ! Transparência; ! Abertura; !

Sistemas Distribuídos. Edy Hayashida

Programação Distribuída. Metas de um Sistema Distribuído

Introdução à Ciência da Computação

Introdução a Computação em Nuvem

Sistemas Distribuídos. Plano de Curso. Plano de Curso 04/03/12 ! EMENTA:

SISTEMAS DISTRIBUÍDOS

Sistemas Distribuídos

1- Confiabilidade ( 2 ) Proteção contra perdas e estragos. 2- Integridade ( 3 ) Proteção contra interferência de cortes de funcionamento

O que é um sistema distribuído?

INTRODUÇÃO AOS SISTEMAS DISTRIBUÍDOS. Prof. Cesar Augusto Tacla

Sistemas Distribuídos

Sistemas Distribuidos. Prof. Walter Gima

Sistemas Distribuídos

Sistema Distribuído. Sistema Distribuído. Aplicações Distribuídas. Conceitos Básicos

Sistemas Distribuídos

SISTEMAS DISTRIBUÍDOS

STD29006 Sistemas Distribuídos

Tipos de Clusters. Introdução. Introdução 21/03/12

Aula 4 TECNOLOGIA EM JOGOS DIGITAIS JOGOS MASSIVOS DISTRIBUÍDOS. Marcelo Henrique dos Santos

Sistemas distribuídos. Prof. Emiliano Monteiro

SIDs: ARQUITETURA DE SISTEMAS DISTRIBUÍDOS

Aplicações Gerais de Informá5ca

Sistemas Distribuídos

Objetos e Componentes Distribuídos: EJB

Arquitetura de sistemas distribuídos

Tipos de Sistemas Distribuídos (Pervasivos)

SIST706 Sistemas Distribuídos

Sistemas Distribuídos Capítulo 8 - Aula 14

Sistemas Distribuídos. Capítulo 7 - Aula 16

Administração de Serviços de Redes. Introdução a Clusters. Prof. Dayvidson Bezerra Contato:

Aula 1 Conceitos Básicos

Sistemas Distribuídos Capítulo 2 - Aula 2

Sistemas Operacionais

Informática. Cloud Computing e Storage. Professor Márcio Hunecke.

Prof. Daniel Hasse. Multimídia e Hipermídia

Introdução aos Sistemas Operacionais

Processamento Paralelo

Ciências da Computação Disciplina:Computação Gráfica

Arquitectura de Sistemas Paralelos e Distribuídos Modelos de Sistemas

Banco de Dados. Introdução. Profa. Flávia Cristina Bernardini

Redes de Computadores e Internet

ARQUITETURA DE SISTEMAS DISTRIBUÍDOS. Aula 1- Introdução aos Sistemas Distribuídos

Engenharia de software distribuído. Artur Sampaio Lívia Castro Degrossi

Sistema de arquivos Distribuidos

AULA 3 - REDES. Prof. Pedro Braconnot Velloso

Rede de computadores Cliente- servidor. Professor Carlos Muniz

Curso de Sistemas Distribuídos

Redes de Computadores

Arquitetura de Sistemas Distribuídos

Definição IHC. Disciplina ou campo de estudo interessada no design, implementação e avaliação de sistemas computacionais interativos para uso humano.

ARQUITETURA DE SISTEMAS DISTRIBUÍDOS EVOLUÇÃO DA COMPUTAÇÃO

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

Programação Concorrente

Sistema Gestor de Bancos de Dados (SGBD)

Data Warehouse ETL. Rodrigo Leite Durães.

Introdução à Computação

Camada de Aplicação da Arquitetura TCP/IP

Caracterização de Sistemas Distribuídos

SISTEMAS OPERACIONAIS

Análise e projeto de sistemas

Arquitetura de Software para Computação Móvel

Formação de DBAs SQL Server 2008

Sistemas Operacionais Aula 3

O QUE É? O Microsoft Windows Server é um sistema operacional destinado para servidores.

FUNDAMENTOS DE REDES DE COMPUTADORES AULA 2: MODELO OSI. Professor: LUIZ LEÃO

Arquitetura de sistemas distribuídos

Sistemas Operacionais. Introdução

Arquitetura de Computadores Paralelos. Introdução Conceitos Básicos Ambientes de Programação Modelos de Programação Paralela

Sistemas Distribuídos Aula 8

Teste de Software. Competência: Entender as técnicas e estratégias de testes de Software

Sistemas Distribuídos Capítulo 3 - Aula 3


O uso consciente da tecnologia para o gerenciamento. Editora Saraiva Emerson de Oliveira Batista

ASSUNTO DA APOSTILA: SISTEMAS DE INFORMAÇÃO E AS DECISÕES GERENCIAIS NA ERA DA INTERNET

Arquitetura de sistemas distribuídos

Transcrição:

Introdução a SD e suas Metas Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão

Objetivos Nesta aula iremos apresentar os conceitos básicos aplicados aos Sistemas Distribuídos e as suas metas. Serão abordados aqui os conceitos e problemas clássicos na criação de um sistema distribuído. A meta básica de um sistema distribuído é prover acesso a recursos de forma transparente, no entanto vamos aprofundar de que forma isto pode ser realizado. Serão abordados aqui as metas: Abertura, Transparência e Escalabilidade.

Plano de Aula Introdução a Sistemas Distribuídos O que é um Sistemas Distribuído Exemplos de Sistemas Distribuídos Que valores os Sistemas Distribuídos podem adicionar Heterogeneidade em Sistemas Distribuídos Metas de um Sistema Distribuído Introdução Abertura Transparência Escalabilidade

Introdução a Sistemas Distribuídos O que é um sistema distribuído? A F1 e a Telemetria

Introdução a Sistemas Distribuídos O que é um sistema distribuído? Um carro de F1 possui mais de 100 sensores; Uma volta de corrida gera 15 Mb; Uma volta de treino gera 25 Mb; Os dados capturados são enviados a FIA (em modo criptografado), via rádio (frequência de 15 mil MHz); Após, estes são distribuídos equipes. às

Introdução a Sistemas Distribuídos O que é um sistema distribuído? Vários computadores: Computadores pessoais, estações de trabalho, servidores, [celulares], etc; Interconectados por uma rede; Compartilhando um estado.

Introdução a Sistemas Distribuídos O que é um sistema distribuído? Um sistema distribuído é um conjunto de computadores independentes entre si que se apresenta a seus usuários como um sistema único e coerente Tanenbaum/Van Steen. Um sistema em que componentes de hardware e software localizados em computadores em rede se comunicam e coordenam suas ações por passagem de mensagens " - George Coulouris. Obs: Só os computadores ligados em rede não caracteriza um Sistema Distribuído;

Introdução a Sistemas Distribuídos O que é um sistema distribuído?

Introdução a Sistemas Distribuídos O que é um sistema distribuído? - Internet

Introdução a Sistemas Distribuídos O que é um sistema distribuído? Computação Móvel

Introdução a Sistemas Distribuídos O que é um sistema distribuído?

Introdução a Sistemas Distribuídos E onde eu encontro Sistemas Distribuídos? Finanças e Comércio: Amazon, ebay, Paypal, Internet Banking, Caixa Eletrônico. Engenhos de busca e informação na web Google, Yahoo, Wikipedia, Facebook, MySpace. Indústrias Criativas e Entretenimento Jogos online, compra de música e filmes, Youtube, Flickr. Medicina Monitoramento remoto de pacientes, prontuários online.

Introdução a Sistemas Distribuídos Exemplos de Sistemas Distribuídos Aplicações comerciais (reservas de bilhetes,bancos): Ex: pense em uma aplicação bancária que deve permitir que saques e depósitos possa acontecer em dois lugares ao mesmo tempo. Aplicações Internet (WWW) Ex: pense em como o google consegue resolver todas as suas requisições. Aplicações de acesso a informações multimídia (Áudio (voz) e vídeo conferência, P2P) Ex: Como os arquivos são compartilhados usando os torrents. Groupware (trabalho cooperativo) Ex: Pesquise como dois usuários podem ao mesmo tempo usar as ferramentas de office do google.

Introdução a Sistemas Distribuídos Que características fazem com que a construção de um sistema distribuído seja mais difícil? Heterogeneidade de componentes (Hardware, Software, Rede, etc); Componentes com diferentes modos de falha (Hardware, Software, Rede, etc) Inexistência de relógio global exato (Como saber se uma atualização é mais recente que outra em um arquivo distribuído entre vários usuários - Groupware); Grandes variações nos atrasos associados com a comunicação entre processos (Processos sendo executados em máquina distintas e tendo de se comunicar via rede);

Introdução a Sistemas Distribuídos Que valores a distribuição pode adicionar? Confiabilidade Crescimento Modular Integração de serviços Custo

Introdução a Sistemas Distribuídos Heterogeneidade Os elementos que fazem parte de um Sistema Distribuído podem ser completamente heterogêneos em: Hardware, Software, Rede, Protocolos, Sistemas Operacionais, Políticas de Escalonamento, etc.

Introdução a Sistemas Distribuídos Heterogeneidade Como suportar computadores e redes heterogêneos, oferecendo uma visão de sistema único? Sistemas Distribuídos são organizados por meio de uma camada de software Middleware;

Metas de um Sist. Distribuído Introdução Um Sistema Distribuído tem como meta principal facilitar o acesso do usuário a recursos remotos e compartilhar estes recursos com outros usuários de forma controlada; Meta importante de um SD é esconder o fato de que seus processos e recursos estão fisicamente distribuídos através de vários computadores (Transparência); Outra meta importante é a Abertura. Um SD aberto é um sistema que oferece serviços de acordo com regras padrões; Outra meta importante é a capacidade de crescimento do sistema (Escalabilidade).

Metas de um Sist. Distribuído Abertura em Sistemas Distribuídos Diz-se que um sistema computacional é aberto se ele pode ser estendido e reimplementado de várias maneiras; Um Sistemas Distribuído aberto esta relacionado ao grau com que novos serviços podem ser adicionados e disponibilizados para uso por uma variedade de programas clientes; Importante: A especificação e a documentação das principais interfaces de software dos componentes de um sistema estão disponíveis para os desenvolvedores de softwares.

Metas de um Sist. Distribuído Abertura em Sistemas Distribuídos Você já ouviu falar em RFC? http://pt.kioskea.net/contents/279-os-rfc http://wiki.locaweb.com/pt-br/rfc_-_822 Você já ouviu falar em OMG? http://pt.wikipedia.org/wiki/object_management_group Os Sistemas Distribuídos projetados a partir de padrões públicos são chamados de sistemas distribuídos abertos, para reforçar o fato de que eles são extensíveis; Eles podem ser ampliados em nível de: hardware (adição de computadores a rede, p.ex); software (adição de novos serviços ou reimplementação dos antigos).

Metas de um Sist. Distribuído Abertura em Sistemas Distribuídos De forma resumida: A Abertura é uma característica que determina se um sistema pode ser estendido de diferentes maneiras; Hardware: Inclusão de dispositivos de fabricantes distintos; Software Módulos de SO Protocolos de Comunicação Recursos compartilhados Imaginem então os vários componentes de hardware e software de variados fabricantes. Como na prática todos estes componentes trabalham?

Metas de um Sist. Distribuído Abertura em Sistemas Distribuídos De forma resumida: Os sistemas abertos são caracterizados pelo fato de suas principais interfaces serem publicadas; Os sistemas distribuídos abertos são baseados na estipulação de um mecanismo de comunicação uniforme e em interfaces publicadas para acesso aos recursos compartilhados; Os sistemas distribuídos abertos podem ser constituídos a partir de hardware e software heterogêneo, possivelmente de diferentes fornecedores. Para que um sistema funcione corretamente, a compatibilidade deve ser cuidadosamente testada e verificada.

Metas de um Sist. Distribuído Abertura em Sistemas Distribuídos IMPORTANTE: PADRONIZAÇÃO!!!!!

Metas de um Sist. Distribuído Transparência em Sistemas Distribuídos Uma das principais necessidades dos Sistemas Distribuídos é tornar o ambiente de rede invisível provendo a visão de um ambiente único para o usuário; A transparência é definida como sendo a ocultação, para um usuário final ou para um programador de aplicativos, da separação dos componentes em um sistema distribuído de modo que o sistema seja percebido como um todo, em vez de uma coleção de componentes independentes.

Metas de um Sist. Distribuído Transparência em Sistemas Distribuídos A ANSA e o RM-ODP definem 8 formas de transparência. Falta uma, Escalabilidade veremos ela de forma individual, não somente a transparência!!!

Metas de um Sist. Distribuído Transparência em Sistemas Distribuídos Como funciona o YouTube? http://www.tecmundo.com.br/youtube/48298-como-funciona-oyoutube-ilustracao-.htm Como funciona o DropBox? http://www.techtudo.com.br/dicas-etutoriais/noticia/2012/02/como-usar-o-dropbox.html https://www.dropbox.com/pt_br/help/90 Falhas do Serviço da Google e DropBox http://canaltech.com.br/noticia/google/servico-de-busca-do-googleficou-fora-do-ar-nesta-sexta-feira-4/ http://www.correiodoestado.com.br/noticias/fora-do-ar-ha-diasdropbox-afirma-que-todos-os-arquivos-estao-seguros/205037/

Metas de um Sist. Distribuído Escalabilidade em Sistemas Distribuídos Um sistema é descrito escalável se permanece eficiente quando há um aumento significativo no número de recursos e/ou no número de usuários. Controlar o custo dos recursos físicos; Controlar a perda de desempenho; Impedir que os recursos de software se esgotem; Evitar gargalos de desempenho.

Metas de um Sist. Distribuído Técnicas para aplicar a Escalabilidade em SD Ocultar latência de comunicação; Distribuição; Replicação.

Metas de um Sist. Distribuído Técnicas para aplicar a Escalabilidade em SD Ocultar latência de comunicação: A ideia central é simples: evita-se esperar por respostas a requisições remotas (e lentas). Uma requisição a uma máquina remota fica pendente, enquanto esta é liberada para continuar executando trabalhos úteis ao lado requisitante.

Metas de um Sist. Distribuído Técnicas para aplicar a Escalabilidade em SD Ocultar latência de comunicação: Evitar esperar por respostas; fazer outra coisa: Usar comunicação assíncrona; Ter um tratador separado para respostas/solicitações que cheguem; Problema: nem toda aplicação se encaixa nesse modelo.

Metas de um Sist. Distribuído Técnicas para aplicar a Escalabilidade em SD Distribuição: A ideia é distribuir entre vários computadores os serviços e dados. Decompondo os componentes em partes menores, que por sua vez são distribuídas por todo o sistema distribuído. O espaço de nomes do DNS é organizado em hierarquia em uma árvore de domínios, dividida em zonas de superposição em acordo com a figura. Assim, nenhum servidor prestará todos os serviços nem possuirá todos os dados, portanto se um servidor falhar, nem tudo está perdido.

Metas de um Sist. Distribuído Técnicas para aplicar a Escalabilidade em SD Distribuição: Particionar dados e computações entre múltiplas máquinas: Exemplos: Mover computações para os clientes (AJAX); Serviços de distribuição de nomes descentralizados (DNS); Serviços de informação descentralizados (WWW)

Metas de um Sist. Distribuído Técnicas para aplicar a Escalabilidade em SD Replicação/caching: Aumenta a disponibilidade dos serviços e melhora o balanceamento de carga no sistema, resultando na melhoria do desempenho ; Caching é uma forma de replicação geralmente controlada pelo cliente. A existência de várias cópias pode levar a problemas de consistência; Se for necessário ter garantias fortes de consistência tem de se atualizar as cópias imediatamente.

Metas de um Sist. Distribuído Técnicas para aplicar a Escalabilidade em SD Replicação/caching: Fazer cópias de dados em máquinas distintas: Servidores de arquivos e bancos de dados replicados; Sites Web espelhados; Caches Web (em navegadores e proxies [HTTP caching proxy]); Cache de arquivos (no servidor e no cliente);

Metas de um Sist. Distribuído Técnicas para aplicar a Escalabilidade em SD Aplicar técnicas de escalabilidade é relativamente fácil, exceto por: A existência de múltiplas cópias (por exemplo, caches replicados) pode levar a inconsistências: alteração de uma cópia a faz distinta das demais; Manter cópias sempre consistentes de maneira geral requer sincronização global para cada modificação; Sincronização global dificulta escalabilidade. Observação Se podemos tolerar inconsistências, podemos reduzir a necessidade de sincronização global, mas tolerar inconsistências é dependente da aplicação.

Dúvidas Página do Professor Mauro: http://www.dai.ifma.edu.br/~mlcsilva

Próxima Aula Tipos de Sistemas Distribuídos