Material de suporte s aulas de SD1 (Nuno Preguia) Copyright DI FCT/ UNL / 1
Sistemas distribudos I Captulo 1 Introduo Material de suporte s aulas de SD1 (Nuno Preguia) Copyright DI FCT/ UNL / 2 Nota prvia A estrutura da apresentao semelhante e utiliza algumas das figuras do livro de base do curso G. Coulouris, J. Dollimore and T. Kindberg, Distributed Systems - Concepts and Design, Addison-Wesley, 4th Edition, 2005 2 Material de suporte s aulas de SD1 (Nuno Preguia) Copyright DI FCT/ UNL / 3 Organizao do captulo Definio, exemplos Caractersticas essenciais dos sistemas distribudos Desafios: heterogeneidade, abertura, segurana, escala, falhas, concorrncia, transparncia Material de suporte s aulas de SD1 (Nuno Preguia) Copyright DI FCT/ UNL / 4 Definio de sistema distribudo Um sistema distribudo um conjunto de componentes hardware (ns, hosts, mquinas ou computadores) e software interligados atravs de uma infra-estrutura de comunicaes (geralmente uma rede de computadores ou um bus especial, ), que cooperam e se coordenam entre si apenas pela troca de mensagens, para execuo de aplicaes distribudas (pelos diferentes computadores) Assim, no mbito desta cadeira, no estamos interessados nos sistemas que cooperam e se coordenam pela partilha de memria comum 3 Material de suporte s aulas de SD1 (Nuno Preguia) Copyright DI FCT/ UNL / 5 Exemplo: servios na Internet intranet ISP desktop computer: backbone satellite link server:
network link:
Web (HTTP), E-mail
(SMTP); instant- messaging (e.g.Icq); VoIP (e.g.Skype); etc. Material de suporte s aulas de SD1 (Nuno Preguia) Copyright DI FCT/ UNL / 6 Exemplo: servios em intranets 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 Internet + impresso; sistemas de ficheiros; etc. 4 Material de suporte s aulas de SD1 (Nuno Preguia) Copyright DI FCT/ UNL / 7 Exemplo: servios em ambientes de computao mvel Computao mvel: execuo de tarefas em dispositivos portteis durante o movimento do utilizador ou em locais diferentes do habitual ambiente de trabalho Mltiplos dispositivos portteis Diversas redes sem fios: GSM, UMTS, Wi-Max, Wi-Fi, Bluetooth Laptop Mobile Printer Camera Internet Host intranet Home intranet WAP Wireless LAN phone gateway Host site Internet/Intranet + descoberta automtica; localizao; adaptao dos dados; execuo remota; etc. Material de suporte s aulas de SD1 (Nuno Preguia) Copyright DI FCT/ UNL / 8 Exemplos Os servios a funcionarem sobre a Internet E-mail, Web (HTTP), instant-messaging, VoIP, ftp, Kazaa, etc. Os servios a funcionarem sobre Intranets Redes isoladas fisicamente, redes isoladas logicamente (private virtual network), ligao Internet atravs de firewalls, etc. E-mail, servidor de ficheiros, servidor de impresso, servios internos da empresa, etc. Os servios a funcionarem em ambientes de computao mvel Idnticos aos anteriores Servios baseados na localizao, adaptao dos dados, etc. 5 Material de suporte s aulas de SD1 (Nuno Preguia) Copyright DI FCT/ UNL / 9 Exemplos (cont.) Sistemas de controlo de processos industriais em fbricas (por exemplo, linhas de montagem) Dispositivos ou mquinas especiais controlados atravs de conjuntos de computadores embebidos (por exemplo: um avio ou um carro, uma fbrica) Clusters de computadores interligados atravs de redes de alta velocidade para clculo paralelo Material de suporte s aulas de SD1 (Nuno Preguia) Copyright DI FCT/ UNL / 10 Exemplo: computao ubqua Computao ubqua Cada utilizador tem mltiplos dispositivos computacionais Dispositivos computacionais no ambiente, associados a objectos e coisas Dispositivos Dispositivos portteis tradicionais (computadores, telemveis, etc.) Dispositivos embebidos Redes de sensores (dispositivos de muito pequena dimenso com sensores) Exemplos: Numa casa: luzes, frigorfico, TV, etc. No supermercado: RF-ids, etiquetas electrnicas 6 Material de suporte s aulas de SD1 (Nuno Preguia) Copyright DI FCT/ UNL / 11 Aplicaes mais comuns Servios de informao/entretenimento via Internet Sistemas de messaging (correio electrnico, Instant Messaging, etc.) Controlo de processos industriais (fbricas, ) e de equipamentos (avies, navios, etc.) Automatizao de processos dentro e entre as empresas e organismos pblicos Facturao, relaes com os utilizadores, instalaes, reparaes, sistemas de sade, impostos, ... Gesto de stocks, encomendas, vendas, entregas, ... (B2B, C2B, ...) Gesto de documentos, groupware, ... Sistemas financeiros e bancrios Transaces globais entre bancos, home-banking, caixas automticas, etc Material de suporte s aulas de SD1 (Nuno Preguia) Copyright DI FCT/ UNL / 12 Motivaes dos Sistemas Distribudos Partilha dos recursos distribudos pelos diferentes utilizadores Exemplos: impressores, ficheiros Distribuio da carga melhoria do desempenho Tolerncia a falhas Flexibilidade e adaptabilidade Decomposio de um sistema complexo num conjunto de sistemas mais simples Acesso generalizado sem restries de localizao Acessibilidade ubqua (suporte para utilizadores fixos, mveis) 7 Material de suporte s aulas de SD1 (Nuno Preguia) Copyright DI FCT/ UNL / 13 Vantagens potenciais Custo inferior, ou pelo menos mais racional vrias pequenas mquinas em vez de uma s gigantesca Melhor desempenho paralelismo real Maior disponibilidade se uma mquina falha, as outras podem continuar Extensibilidade crescimento incremental Simplicidade associada modularidade fsica pode ter processadores dedicados a funes pode ser distribudo de acordo com a organizao utilizadora Ubiquidade e mobilidade pode ser utilizado independentemente da localizao Material de suporte s aulas de SD1 (Nuno Preguia) Copyright DI FCT/ UNL / 14 Caractersticas fundamentais Execuo concorrente de componentes paralelismo real Necessidade de coordenao entre os vrios componentes Falhas independentes das componentes e das comunicaes Impossvel determinar se existe uma falha dum componente ou do sistema de comunicaes Necessidade de tratar as falhas Ausncia de relgio global existem limites para a preciso da sincronizao dos relgios locais Impossvel usar relgios locais para ordenar globalmente todos os eventos 8 Material de suporte s aulas de SD1 (Nuno Preguia) Copyright DI FCT/ UNL / 15 Implicaes Nenhuma componente tem uma viso exacta instantnea do estado global de todo o sistema Os componentes tm uma viso parcial do estado global do sistema Os componentes do sistemas esto distribudos e s podem cooperar atravs da troca de mensagens, as quais levam um tempo no nulo a propagarem-se Na presena de falhas, o estado global pode tornar-se incoerente, i.e., as vises parciais do estado global podem tornar-se incoerentes Por exemplo, rplicas de um objecto podem ficar incoerentes Material de suporte s aulas de SD1 (Nuno Preguia) Copyright DI FCT/ UNL / 16 Desafios Heterogeneidade Abertura Transparncia Concirrncia Segurana Escala Tratamento das falhas 9 Material de suporte s aulas de SD1 (Nuno Preguia) Copyright DI FCT/ UNL / 17 Heterogeneidade Do hardware: telemveis, PDAs, portteis (laptops), workstations (desktops), servidores, multiprocessadores, clusters (agregados), grids,... Diferentes caractersticas dos processadores, da memria, da representao dos dados, dos cdigos de caracteres,... Das redes de interligao e dos protocolos de transporte: Redes mveis (GSM, UMTS, CDMA), Wi-Max, WLANs, wired LANs, WANs, ..., TCP/IP, .... Do sistema de operao: Windows, Unix/Linux, Mac, Simbian, ... Diferentes interfaces para as mesmas funcionalidades Das linguagens de programao.... Construir um sistema do tipo single image system, integrado, coerente, etc. geralmente um desafio gigantesco Material de suporte s aulas de SD1 (Nuno Preguia) Copyright DI FCT/ UNL / 18 Middleware Sistemas operativos Interfaces heterognea Servios bsicos Sistema de comunicaes Sistema de operao Sistema de comunicaes Sistema de operao Sistema de comunicaes Sistema de operao N computadores interligados Sistema middleware Aplicao distribuda Sistema middleware Interface homognea Servios mais complexos (invocao remota: RMI, Web-services, Corba; comunicao em grupo: Horus, etc) Verdadeira interoperabilidade requer idnticos interface e protocolos 10 Material de suporte s aulas de SD1 (Nuno Preguia) Copyright DI FCT/ UNL / 19 Mquina virtual Objectivo: permitir executar os mesmos programas em mquinas com diferentes caractersticas Fornece um ambiente de execuo local uniforme, independentemente do hardware e sistema de operao Programas escritos numa nica linguagem (JavaVM) ou em mltiplas linguagens (Microsoft CLR) Num sistema distribudo permite simplificar o deployment de uma aplicao e a utilizao de cdigo mvel (applets, agentes) Material de suporte s aulas de SD1 (Nuno Preguia) Copyright DI FCT/ UNL / 20 Abertura A abertura de um sistema determina o modo como pode ser estendido e re-implementado Sistemas abertos Interfaces e modelo (incluindo protocolos de comunicao) conhecidos Evoluo controlada por organismos de normalizao independentes ou consrcios industriais Permite a interoperao de componentes com diferentes implementaes Sistemas proprietrios Podem ser modificados pelo seu dono Outras questes Middleware suportando vrias linguagens / Middleware integrado com uma s linguagem de programao 11 Material de suporte s aulas de SD1 (Nuno Preguia) Copyright DI FCT/ UNL / 21 Transparncia A transparncia (da distribuio) a propriedade relativa a esconder ao utilizador e ao programador das aplicaes a separao fsica dos elementos que compem um sistema distribudo Simplicidade e flexibilidade so objectivos Em certas circunstncias, a transparncia indesejvel Implementao complexa e desempenho baixo Pode levar a inflexibilidade A transparncia pode manifestar-se em diversos nveis e de vrias formas Material de suporte s aulas de SD1 (Nuno Preguia) Copyright DI FCT/ UNL / 22 Alguns tipos de transparncia Esconde a reconfigurao para melhorar o desempenho Desempenho Esconde as falhas e o processo de recuperao Falhas Esconde que o recurso pode ser usado por vrios utilizadores Concorrncia Esconde que o recurso replicado Replicao Esconde a mudana de localizao dos recursos e clientes Mobilidade Esconde a localizao de um recurso Localizao Esconde as diferenas no modo de acesso a um recurso Acesso 12 Material de suporte s aulas de SD1 (Nuno Preguia) Copyright DI FCT/ UNL / 23 Concorrncia O acesso simultneo a um recurso por vrios clientes pode causar problemas Necessrio sincronizar as operaes para que os dados permaneam consistentes Num nico computadores, solues possveis so o uso de semforos, monitores, transaces Necessrio implementar tcnicas de sincronizao num sistema distribudo Material de suporte s aulas de SD1 (Nuno Preguia) Copyright DI FCT/ UNL / 24 Segurana Necessidade de proteger os recursos e informao gerida num sistema distribudo Recurso tm valor para os seus utilizadores Segurana tem trs componentes: Confidencialidade: indivduos no autorizados no podem obter informao Integridade: dados no podem ser alterados ou corrompidos Disponibilidade: acesso aos dados deve continuar disponvel Aspectos envolvidos Autenticao dos parceiros Canais seguros Preveno de ataques de negao de servio (denial of service attacks) Autenticao das plataformas de hardware/software Segurana na presena de cdigo mvel 13 Material de suporte s aulas de SD1 (Nuno Preguia) Copyright DI FCT/ UNL / 25 Escala A escala de um sistema distribudo o mbito que o mesmo abrange assim como o nmero de componentes. A escala de um sistema tem vrias facetas: recursos e utilizadores mbito geogrfico (rede local, pas, mundo, ...) mbito administrativo (uma organizao, inter-organizaes) Um sistema de pequena escala um sistema confinado a uma organizao pequena / mdia, com poucos utilizadores e poucos componentes. Um sistema de grande escala um sistema com muitos recursos ou utilizadores, ou cobrindo uma rea geogrfica significativa, ou envolvendo muitas organizaes. Material de suporte s aulas de SD1 (Nuno Preguia) Copyright DI FCT/ UNL / 26 Escala A escala de um sistema distribudo o mbito que o mesmo abrange assim como o nmero de componentes. A escala de um sistema tem vrias facetas: recursos e utilizadores mbito geogrfico (rede local, pas, mundo, ...) mbito administrativo (uma organizao, inter-organizaes) Um sistema de pequena escala um sistema confinado a uma organizao pequena / mdia, com poucos utilizadores e poucos componentes. Um sistema de grande escala um sistema com muitos recursos ou utilizadores, ou cobrindo uma rea geogrfica significativa, ou envolvendo muitas organizaes. 52.131.889 fonte: http://www.zakon.org/robert/ internet/timeline 285.139.107 Jul. 2004 5.560.866 56.218.000 Jul. 1999 0 130.000 Jul. 1989 0 188 Dez. 1979 Servidores Web Computadores Data 14 Material de suporte s aulas de SD1 (Nuno Preguia) Copyright DI FCT/ UNL / 27 Sistema escalvel Um sistema capaz de escalar (escalvel) um sistema que continua eficaz quando h um aumento significativo do nmero de recursos e utilizadores i.e., em que no necessrio alterar a implementao dos componentes e da forma de interaco das mesmas Num sistema escalvel, as seguintes propriedades devem ser verdadeiras: Os recursos envolvidos devem aumentar linearmente com a dimenso do sistema O aumento na dimenso dos dados/recursos no deve levar a uma diminuio significativa do desempenho a reduo no deve ser superior a O(log n) Possvel aproximao: recurso a estruturas hierrquicas (ex.: DNS) Material de suporte s aulas de SD1 (Nuno Preguia) Copyright DI FCT/ UNL / 28 Como lidar com a escala ? Para reduzir o nmero de pedidos tratados por cada componente Diviso de um componente em partes e sua distribuio Replicao e caching (problema da consistncia entre rplicas e caches) Para reduzir dependncias entre componentes Meios de comunicao assncronos Para simplificar o sistema Uniformidade de acesso aos recursos e dos mecanismos de cooperao, sincronizao, etc. Meios de designao universais (independentes da localizao e dos recursos) Para permitir a aumento de escala Flexibilidade e adaptabilidade dos mecanismos 15 Material de suporte s aulas de SD1 (Nuno Preguia) Copyright DI FCT/ UNL / 29 Avarias, erros e falhas Os componentes de um sistema podem falhar, i.e., comportar-se de forma no prevista e no de acordo com a especificao devido a erros (por exemplo a presena de rudo num canal de comunicao ou um erro de software) ou avarias (mecanismo que que entra em mau funcionamento) Num sistema distribudo, as falhas so geralmente parciais (num componente do sistema) e independentes Um componente em falha pode induzir uma mudana de estado incorrecta noutro componente, levando eventualmente o sistema a falhas, i.e., a ter um comportamento no de acordo com a sua especificao. Material de suporte s aulas de SD1 (Nuno Preguia) Copyright DI FCT/ UNL / 30 Como lidar com as falhas Detectar falhas Possvel: e.g.: mensagens corrompidas atravs de checksums Pode ser impossvel: Falha (crash) num computador remoto Desafio: Funcionar atravs da suspeio das falhas Mascarar falhas (aps a sua deteco) Exemplos: retransmisso de mensagens, redundncia 16 Material de suporte s aulas de SD1 (Nuno Preguia) Copyright DI FCT/ UNL / 31 Como lidar com as falhas Tolerar falhas Definio do comportamento na presena de falhas Continuar a funcionar de acordo com a especificao recorrendo a componentes redundantes Parar o sistema at falhas serem resolvidas Recuperao de falhas Mesmo num sistema que tolere falhas necessrio recuperar os componentes falhados. Porqu? Problema: recuperar estado do servio, considerando que algumas operaes podem ter sido parcialmente executadas Material de suporte s aulas de SD1 (Nuno Preguia) Copyright DI FCT/ UNL / 32 Para saber mais G. Coulouris, J. Dollimore and T. Kindberg, Distributed Systems Concepts and Design, Addison-Wesley, 4th Edition, 2005 Captulo 1.