Baixe o app para aproveitar ainda mais
Prévia do material em texto
Sistemas Distribuídos Caracterização Joinvile Batista Junior UFGD - SD 01 - Joinvile Batista Junior 2 Caracterização de SDs A : Características dos SDs B : Internet C : World Wide Web D : Desafios para os SDs UFGD - SD 01 - Joinvile Batista Junior 3 A : Características dos SDs 1. O que é um SD e qual a motivação para construí-lo? 2. Comente desafios e vantagens de um SD. UFGD - SD 01 - Joinvile Batista Junior 4 Definição e Motivação Sistema Distribuído • componentes localizados em computadores interligados em rede – se comunicam e coordenam suas ações • apenas passando mensagens Motivação para construir SDs • compartilhamento de recursos – gerenciados por servidores e acessados por clientes – ou encapsulados como objetos e a acessados por outros objetos clientes • recursos – componentes de hardware: discos, impressoras, etc – entidades de software: arquivos, bancos de dados, objetos UFGD - SD 01 - Joinvile Batista Junior 5 Desafios e Vantagens dos SDs Desafios para a Construção de SDs • heterogeneidade de seus componentes • sistema aberto: permite adição e substituição de componentes • segurança, concorrência, transparência • escalabilidade: funcionar bem quando aumenta a quantidade de usuários • tratamento de falhas Vantagens dos SDs • mundo real é distribuído – pessoas, organizações, sistemas, dados • compartilhamento de recursos • aumento de confiabilidade • aumento de desempenho • crescimento incremental • flexibilidade UFGD - SD 01 - Joinvile Batista Junior 6 A : Características dos SDs 1. Conceitue concorrência dos componentes de SDs. 2. Conceitue falta de um relógio global em SDs. 3. Conceitue falhas de componentes independentes em SDs. UFGD - SD 01 - Joinvile Batista Junior 7 Concorrência – Relógio Global – Falhas Concorrência dos componentes • computadores interligados na rede compartilham recursos – páginas web, arquivos, servidores de aplicação Falta de um relógio global • coordenação de ações entre componentes que cooperam – depende da noção compartilhada de tempo • existem limites para a sincronização de relógios em uma rede – não existe uma noção global única do tempo correto • como consequência da comunicação somente por mensagens Falhas de componentes independentes • falhas da rede isolam computadores que continuam funcionando • falha de um computador não é imediatamente percebida pelos demais • componentes podem falhar independentemente – deixando os demais em funcionamento UFGD - SD 01 - Joinvile Batista Junior 8 A : Características dos SDs 1. Qual a diferença de processamento entre Paralelismo Virtual, Paralelismo e Distribuição? 2. Comente as camadas de um sistema de comércio eletrônico. 3. Cite um exemplo de SD no comércio eletrônico. Justifique. UFGD - SD 01 - Joinvile Batista Junior 9 Paralelismo Virtual – Paralelismo – Distribuição Paralelismo Virtual • sistema monoprocessado: conceito de multitarefa • SO escala processos (ou threads) e trata interrupções – usuário tem a sensação de paralelismo real Paralelismo • sistema multiprocessado: novos SOs • ex: execução iterativa e download em paralelo Distribuição • camadas para o cliente enxuto (thin client) – usuário: somente navegador – apresentação: recebe e devolve HTML – negócios: serviços do sistema – persistência: base de dados • ex: sistemas de comércio eletrônico UFGD - SD 01 - Joinvile Batista Junior 10 B : Internet B : Internet 1. Conceitue a Internet. 2. Comente a capacidade da Internet de tratar requisitos de serviços multimídia. UFGD - SD 01 - Joinvile Batista Junior 11 Internet Internet • conjuntos de redes de computadores de diferentes tipos interligadas • protocolos da internet permitem que um programa envie mensagens para outro em qualquer ponto da rede • conjunto de serviços é aberto – pode ser ampliado pela adição de computadores servidores e novos tipos de serviços Provedores de Serviços de Internet (ISP – Internet Service Provider) • empresas que fornecem acesso à internet a indivíduos ou a organizações – através de diferentes tipos de conexões: linha discada, cabo,etc • fornecem adicionalmente serviços locais – e-mail, hospedagem de páginas web UFGD - SD 01 - Joinvile Batista Junior 12 Internet Backbones • enlace de rede de alta capacidade de transmissão que interligam intranets Serviços Multimídia disponíveis na internet • acesso a dados de áudio e vídeo: música, rádio, canais de TV, conferências via telefone e vídeo • capacidade atual de tratar requisitos multimídia é bastante limitada – não fornece os recursos necessários para reservar capacidade de rede • para que os fluxos de dados individuais sejam recebidos e enviados com boa qualidade de serviço UFGD - SD 01 - Joinvile Batista Junior 13 intranet ISP desktop computer: backbone satellite link server: network link: Internet UFGD - SD 01 - Joinvile Batista Junior 14 B : Internet 1. Compare Internet x Intranet. UFGD - SD 01 - Joinvile Batista Junior 15 Intranet Intranet • parte da internet administrada separadamente – cujo limite pode ser configurado para impor planos de segurança locais • organizações precisam proteger seus serviços de uso não autorizado • configuração administrada por uma dada organização – desde uma única LAN (Local Area Network) em um único site – até um conjunto de LANs interconectadas (por conexões de backbones) pertencentes às filiais de uma empresa em vários países Segurança • firewalls: filtragem de mensagens recebidas e enviadas – de acordo, por exemplo, com a origem e destino • intranets desconectadas da internet: organizações militares UFGD - SD 01 - Joinvile Batista Junior 16 Intranet the rest of email server Web server Desktop computers File server router/firewall print and other servers other servers print Local area network email server the Internet UFGD - SD 01 - Joinvile Batista Junior 17 B : Internet 1. Defina e exemplifique Computação Ubíqua. UFGD - SD 01 - Joinvile Batista Junior 18 Computação Ubíqua Miniaturização de Equipamentos e Interligação em Rede Sem Fio • notebooks • PDA (Personal Digital Assistant), celulares, pagers, câmaras de vídeo digitais • aparelhos incorporados ao corpo (relógios inteligentes) ou outros aparelhos (máquinas de lavar, carros, etc) Ubíqua = Móvel (em larga escala) + Pervasiva • Computação Móvel – executação de tarefas enquanto • usuário se movimenta • se distancia do seu ambiente local • Computação Pervasiva – computador embarcado no ambiente • de forma desapercebida – usa informações do ambiente • para construir modelos computacionais dinamicamente UFGD - SD 01 - Joinvile Batista Junior 19 Equipamentos em um Sistema Distribuído Laptop Mobile Printer Camera Internet Host intranet Home intranet WAP Wireless LAN phone gateway Host site WAP (Wireless Application Protocol) gateway: translada páginas para equipamentos móveis UFGD - SD 01 - Joinvile Batista Junior 20 C : World Wide Web 1. Esclareça a diferença entre a Internet e a World Wide Web. UFGD - SD 01 - Joinvile Batista Junior 21 World Wide Web Sistema em evolução • para publicação e acesso a recursos e serviços pela Internet • através de navegadores web (browsers) – usuários recuperam e visualizam documentos de muitos tipos – ouvem fluxos de áudio, assistem fluxos de vídeo – interagem com um vasto conjunto de serviços • fornece uma estrutura de hipertexto entre os documentos que armazena – documentos contém hyperlinks para outros documentos • sistema em aberto – pode serampliada e implementada de novas maneiras • sem perturbar a funcionalidade existente – várias implementações de navegadores e servidores web • em sua forma mais simples – recurso da web é uma página ou algum outro tipo de conteúdo UFGD - SD 01 - Joinvile Batista Junior 22 Problemas da Web • hipertexto é deficiente para excluir ou mover recursos: links pendentes • mecanismos de busca são alternativas para localizar informações na web – mas necessitam evoluir com as ferramentas da web semântica • vocabulários, sintaxe e semântica padrões para expressar metadados • para realizar buscas com base na correspondência semântica • escalabilidade: servidores web mais populares tem muitos acessos – cache em navegadores e servidores proxies • para melhorar o tempo de resposta e a divisão de carga de processamento por um grupo de servidores UFGD - SD 01 - Joinvile Batista Junior 23 C : World Wide Web 1. Explique o papel do HTML, URL e HTTP na recuperação e visualização de documentos. UFGD - SD 01 - Joinvile Batista Junior 24 World Wide Web Os 3 componentes principais • HTML – HyperText Markup Language • URL – Uniform Resource Locator • HTTP – HyperText Transfer Protocol – protocolo para iteração em uma arquitetura cliente-servidor • utilizado por navegadores e outros clientes – para busca de documentos e outros recursos armazenados na web Característica importante • usuários podem localizar e gerenciar seus próprios servidores web em qualquer parte da Internet UFGD - SD 01 - Joinvile Batista Junior 25 HTML • usada para especificar o texto e as imagens – que compõem o conteúdo de uma página web – e para especificar como eles são dispostos e formatados • para apresentação ao usuário • usuários produzem código manualmente – ou através de um editor wysiwyg (what you see is what you get) • usuário especifica para o navegador – a URL correspondente ao HTML no servidor • apenas o navegador interpreta o texto HTML – mas o servidor informa ao navegador o tipo de conteúdo retornado • ex: pdf UFGD - SD 01 - Joinvile Batista Junior 26 URL • esquema: identificador_específico – esquemas: http, mailto, ftp – não há restrição para definir novo esquema na web • mas será necessário instalar plug-in no navegador • sintaxe de URLs HTTP – http://nome_servidor [: porta] [/nome_caminho] [?consulta] [#fragmento] • nome_servidor: expresso como um nome DNS (Domain Name System) • elementos opcionais: encapsulados por [] – porta: na qual o servidor recebe os pedidos (padrão: 80) – nome_caminho: sub-diretório da página web padrão do servidor – consulta: argumento para o serviço solicitado – fragmento: para identificar fragmento do texto HTML após ter feito o download do texto inteiro UFGD - SD 01 - Joinvile Batista Junior 27 HTTP • Interações requisição-resposta – servidor responde requisição do cliente com conteúdo do arquivo especificado na URL • ou com mensagem de erro • Tipos de conteúdo – navegador solicita conteúdos que prefere – servidor considera conteúdos preferidos e retorna o tipo do conteúdo na resposta • Um recurso por requisição – se uma página web contém 9 imagens • o navegador fará 10 requisições para obter o conteúdo completo da página – em geral: requisições concorrentes para reduzir o atraso global • Controle de acesso simplificado – servidor pode ser configurado para solicitar senha do cliente UFGD - SD 01 - Joinvile Batista Junior 28 C : World Wide Web 1. Caracterize e diferencie a utilização de Javascript e Applet. 2. Explique e exemplifique a utilidade de páginas dinâmicas e de web services na Web. UFGD - SD 01 - Joinvile Batista Junior 29 Navegador carrega Código por Download • carregando código em Javascript – para interação de melhor qualidade com o usuário • em vez do elementos padrões do HTML – código pode validar as entradas no cliente • evitando uso da rede para a validação no servidor • carregando código de Applet – como alternativa para executar código Java • em função das limitações de funcionalidade do Javascript UFGD - SD 01 - Joinvile Batista Junior 30 Usuário solicita Serviços: Páginas Dinâmicas • Além de recuperar informações em páginas web: usuários solicitam serviços – preenche formulário web: página com informações para execução do serviço solicitado – servidor precisa processar as informações do usuário • executando um programa em vez de recuperar um arquivo • JavaServer Faces – separa a apresentação de um aplicativo web (XHTML) – de sua lógica de negócios (Java) UFGD - SD 01 - Joinvile Batista Junior 31 Programa solicita Serviços: Web Services • Além de um usuário operar um navegador: um programa cliente pode solicitar serviços a um servidor – entretanto padrões HTML e HTTP são insuficientes para realizar interações entre programas • O protocolo HTML não suporta troca de dados estruturados – HTML tem um conjunto estático de estruturas • com foco na apresentação de dados para os usuários – XML – Extensible Markup Language • metalinguagem para descrever dados – tornando os dados portáveis entre os aplicativos • O protocolo HTTP não suporta operações específicas de um serviço – nem os argumentos e respostas de erro das operações – utilização de web services • ex: site amazon.com – pedir um livro – verificar o estado atual de um pedido UFGD - SD 01 - Joinvile Batista Junior 32 D : Desafios Heterogeneidade 1. Conceitue heterogeneidade em SD e as soluções para conviver com este problema. UFGD - SD 01 - Joinvile Batista Junior 33 Heterogeneidade • Convivência de elementos distintos – hardware – rede – sistemas operacionais – linguagens – implementações de diferentes fabricantes • Soluções para conviver com a heterogeneidade – Protocolos de comunicação na Internet • mascaram as diferenças existentes nas redes – Camadas de Abstração complementam • Middlewares • Máquina Virtual Java UFGD - SD 01 - Joinvile Batista Junior 34 Camadas de Abstração Middleware • Camada de software: abstração de programação – mascara heterogeneidade do ambiente subjacente – provê ambiente de programação uniforme • para aplicações distribuídas • Exemplos – CORBA – Java RMI Máquina Virtual Java • execução do mesmo código em diferentes SOs e processadores • migração de código entre computadores: Applets UFGD - SD 01 - Joinvile Batista Junior 35 D : Desafios Sistemas Abertos 1. Quais as características de Sistemas Abertos Distribuídos? UFGD - SD 01 - Joinvile Batista Junior 36 Sistemas Abertos Sistemas abertos • suas principais interfaces são publicadas – padrões estabelecidos por organizações de padronização ou por uso • podem ser extendidos em relação a – hardware : adição de novos computadores ao sistema – software : introdução de novos serviços • são interoperáveis com outros sistemas Sistemas Distribuídos Abertos • estipulação de um mecanismo de comunicação uniforme • interfaces publicadas para acesso aos recursos compartilhados UFGD - SD 01 - Joinvile Batista Junior 37 D : Desafios Segurança 1. Exemplifique falhas de confidencialidade e integridade em um SD. 2. Explique o ataque de negação de serviço. UFGD - SD 01 - Joinvile Batista Junior 38 Segurança Segurança de Recursos de Informação tem 3 componentes • Confidencialidade – proteção contra acesso indevido • Integridade – proteção contra alteração ou corrupção • Disponibilidade – proteção contra interferência com os meios de acesso aos recursos Desafios ainda não totalmente resolvidos • Ataque de Negação de Serviço – ataque massivo sobre servidores • Segurança de Código Móvel – evitar danospela execução de código móvel mal intencionado UFGD - SD 01 - Joinvile Batista Junior 39 D : Desafios Escalabilidade 1. Conceitue SD escalável e seus principais desafios. 2. Comente técnicas para suportar escalabilidade. UFGD - SD 01 - Joinvile Batista Junior 40 Escalabilidade • Sistema Escalável – permanece eficiente quando há um aumento significativo no número de recursos e no número de usuários • Desafios – controlar o custo dos recursos físicos • quantidade de recursos físicos deve ser no máximo proporcional ao número de usuários: O(n) – controlar a perda de desempenho no gerenciamento de um conjunto de dados • algoritmos que utilizam estruturas hierárquicas de tem melhor escalabilidade do que os que utilizam estruturas lineares de organização de dados: O(log n) < O(n) – evitar gargalos de desempenho: algoritmos descentralizados – prevenir escassez de recursos de software • ex: endereços IP na internet UFGD - SD 01 - Joinvile Batista Junior 41 Técnicas para suportar Escalabilidade • Replicação de recursos – dispositivos, dados e serviços • Cashing – armazenamento de dados recentes • próximos ao uso • Estruturação de serviços: visando crescimento incremental – hierárquica – balanceamento de carga • Evitar centralização de – algoritmos, dados, componentes UFGD - SD 01 - Joinvile Batista Junior 42 D : Desafios Concorrência 1. Conceitue concorrência e sincronização de objetos distribuídos. UFGD - SD 01 - Joinvile Batista Junior 43 Concorrência • Concorrência – tentativa de acesso a recursos comuns ao mesmo tempo • ex: lances de um leilão acessados com muita frequência – quando o prazo final se aproxima • Processamento concorrente – é geralmente necessário para não degradar o desempenho • Objetos residentes em servidores ou em aplicativos – devem sincronizar suas operações • para garantir consistência do estado da aplicação • ex: semáforos para bloquear regiões críticas – garantindo único a acesso a código que altera dados compartilhados – particularmente importante • para coleções de objetos compartilhados distribuídos UFGD - SD 01 - Joinvile Batista Junior 44 D : Desafios Manipulação de Falhas 1. Conceitue manipulação de falhas e comente precauções necessárias. 2. Conceitue detecção e mascaramento de falhas. 3. Conceitue tolerância e recuperação de falhas. 4. Comente alternativas de redundância de recursos para suportar tolerância a falhas. UFGD - SD 01 - Joinvile Batista Junior 45 Manipulação de Falhas • qualquer processo, computador ou rede pode falhar independentemente dos demais – produzindo resultados incorretos – causando interrupção do serviço • mecanismos devem ser desenvolvidos – para garantir correto funcionamento do sistema • mesmo na ocorrência de falhas • cada componente precisa conhecer – as maneiras possíveis pelos quais os componentes de que depende podem falhar – e ser projetado para tratar cada uma dessas falhas apropriadamente UFGD - SD 01 - Joinvile Batista Junior 46 Técnicas para Manipulação de Falhas Detecção de Falhas • checksums: para detectar dados danificados em uma mensagem • impossibilidade de detectar algumas falhas na internet – servidor remoto danificado • quando houver tentativa de comunicação – a rede e o servidor podem ser suspeitos • desafio: gerenciar ocorrência de falhas suspeitas que não podem ser detectadas Mascaramento de Falhas • ocultadas para se tornar menos sérias – retransmissão de mensagens – dados duplicados em par de disco UFGD - SD 01 - Joinvile Batista Junior 47 Técnicas para Manipulação de Falhas Tolerância a Falhas • não seria prático tentar detectar e mascarar tudo que possa ocorrer em uma rede tão grande com a Internet • exemplo de tolerância a falha – quando um navegador não consegue contactar um servidor • em vez de ficar tentando: deixando o usuário esperando indefinidamente • informa o usuário: deixando-o livre para tentar novamente Recuperação de Falhas • para garantir consistência dos dados – estado recuperado: dados recuperados – ou retrocedido: desfazendo a transação corrente (rollback) UFGD - SD 01 - Joinvile Batista Junior 48 Técnicas para Manipulação de Falhas Redundância de Recursos • serviços podem se tornar tolerantes a falhas com o uso de componentes redundantes – pelo menos duas rotas entre dois roteadores na Internet – no DNS (Domain Name System) • toda tabela de correspondência de nomes é replicada em pelo menos dois servidores – um banco de dados pode ser replicado em vários servidores • os servidores podem ser projetados para detectar falhas em seus pares • redirecionando os clientes para os servidores restantes • desafio – projeto de técnicas eficazes para manter réplicas atualizadas de dados que mudam rapidamente • sem perda excessiva de desempenho UFGD - SD 01 - Joinvile Batista Junior 49 D : Desafios Transparência 1. Conceitue transparência de acesso e localização. 2. Conceitue transparência de concorrência e replicação. 3. Conceitue transparência de falhas e mobilidade. 4. Conceitue transparência de desempenho e escalabilidade. UFGD - SD 01 - Joinvile Batista Junior 50 Transparência • abstração de aspectos específicos – de um sistema subjacente • sistema é visto como um todo – e não como uma coleção de partes • exemplo de transparência na rede – emails – URLs UFGD - SD 01 - Joinvile Batista Junior 51 Tipos de Transparência • Acesso – sem necessidade de distinguir acesso local de remoto • Localização – sem a necessidade de conhecer a localização do recurso • Concorrência – sem interferência entre acessos simultâneos • Replicação – uso de múltiplas cópias de um recurso sem usuário perceber • Falhas – mascara falhas e completa serviço • Mobilidade – movimento de recursos e clientes dentro de um sistema sem afetar aplicações • Desempenho – reconfiguração dinâmica do sistema e adaptabilidade • Escalabilidade – expansão em escala sem impactar estrutura ou algoritmos
Compartilhar