Definição Introdução aos sistemas distribuídos Um sistema distribuído é um conjunto de componentes hardware (computadores) e software, interligados através de uma infra-estrutura de comunicações, que cooperam e se coordenam entre si para se apresentam aos seus utilizadores como um conjunto único, integrado e coerente. Nuno Preguiça Departamento de Informática da Faculdade de Ciências e Tecnologia da UNL Material de suporte às aulas de Seminários de Informática Copyright DI FCT/ UNL / 1 Material de suporte às aulas de Seminários de Informática Copyright DI FCT/ UNL / 2 Exemplos Os serviços a funcionarem sobre a Internet E-mail, WWW, ftp, Kazaa, etc. Os serviços a funcionarem sobre Intranets E-mail, servidor de ficheiros, servidor de impressão, etc. Sistemas de automatização de processos dentro e entre as empresas Facturação, relações com os utilizadores, instalações, reparações, sistemas de saúde, impostos,... Gestão de stocks, encomendas, vendas, entregas,... (B2B, C2B,...) Sistema financeiro/bancário Sistemas de controlo de processos industriais em fábricas Linhas de montagem Dispositivos ou máquinas especiais controlados através de conjuntos de computadores embebidos Um avião ou um carro Ou seja... Os sistemas distribuídos estão generalizados A maioria dos sistemas baseados em redes de computadores, em que se executam aplicações envolvendo a cooperação e coordenação de várias componentes distribuídas, podem ser classificados como sistemas distribuídos Têm características, requisitos e metodologias de concepção especiais devido à distribuição Net-centric computing Material de suporte às aulas de Seminários de Informática Copyright DI FCT/ UNL / 3 Material de suporte às aulas de Seminários de Informática Copyright DI FCT/ UNL / 4 Evolução histórica A evolução dos sistemas distribuídos têm sido guiada pela evolução tecnológica e expansão da utilização e interligação das redes de computadores A evolução das redes de computadores tende a potenciar novas soluções distribuídas Em particular, o aumento da largura de banda disponível permite uma maior integração de componentes distribuídas Sistemas distribuídos: o que se estuda? Teórica Algoritmos Eleições, consensos, replicação, etc. Modelos de computação, programação Prática Desenho de sistemas, middleware Em 1975 o computador era tudo, a rede uma excepção, lenta e cheia de erros. No séc. XXI The network is the computer Material de suporte às aulas de Seminários de Informática Copyright DI FCT/ UNL / 5 Material de suporte às aulas de Seminários de Informática Copyright DI FCT/ UNL / 6 1
Organização Introdução Motivação e características Modelo cliente/servidor Exemplos na Internet Exemplos em Intranets Computação móvel Redes ad-hoc Computação ubíqua RFIDs Redes de sensores Motivações Fornecer serviços a utilizadores remotos Exemplos: lojas web, sites web de jornais, bibliotecas, etc. Criar sistemas que cooperam para um dado fim Exemplo: sistema inerentemente distribuído: sistema bancário Exemplo: propriedades óptimas em distribuição: sistemas P2P Partilha dos recursos distribuídos pelos diferentes utilizadores Exemplos: impressores, ficheiros Material de suporte às aulas de Seminários de Informática Copyright DI FCT/ UNL / 7 Material de suporte às aulas de Seminários de Informática Copyright DI FCT/ UNL / 8 Motivações (cont.) Características Distribuição da carga Def: A carga de um sistema mede o número de operações que o sistema executa Melhoria do desempenho distribuindo as operações a executar por um conjunto de máquinas Flexibilidade e adaptabilidade Decomposição de um sistema complexo num conjunto de sistemas mais simples Crescimento incremental Distribuição geográfica dos componentes Tolerância a falhas Quando um máquina falha é possível que o mesmo serviço seja disponibilizado por outra máquina Execução concorrente de componentes paralelismo real Necessidade de coordenação entre os vários componentes Falhas independentes das componentes e das comunicações Necessidade de tratar das falhas Ausência de relógio global existem limites para a precisão da sincronização dos relógios locais Impossível usar relógios locais para ordenar globalmente todos os eventos Material de suporte às aulas de Seminários de Informática Copyright DI FCT/ UNL / 9 Material de suporte às aulas de Seminários de Informática Copyright DI FCT/ UNL / 10 Desafios Heterogeneidade Escala Tratamento das falhas Segurança Heterogeneidade Do hardware: telemóveis, PDAs, portáteis (laptops), workstations (desktops), servidores, multiprocessadores, grids,... Diferentes características dos processadores, da memória, da representação dos dados, dos códigos de caracteres,... Das redes de interligação: GSM/GPRS, WLANs, wired LANs, WANs,... Dos sistemas de operação: Windows, Unix/Linux, Mac, Simbian, Pocket PC,... Diferentes interfaces para as mesmas funcionalidades Das linguagens de programação... Material de suporte às aulas de Seminários de Informática Copyright DI FCT/ UNL / 11 Material de suporte às aulas de Seminários de Informática Copyright DI FCT/ UNL / 12 2
Middleware: uma forma de lidar com a heterogeneidade Sistema de operação Sistema de comunicações Sistemas operativos Interfaces heterogénea Serviços básicos Sistema de operação Sistema de comunicações N computadores interligados Plataforma aplicacional Plataforma middleware Sistema de operação Sistema de comunicações Plataforma middleware Interface homogénea Serviços mais complexos Verdadeira interoperabilidade requer idênticos interface e protocolos Escala A escala de um sistema distribuído é o âmbito que o mesmo abrange (uma rede local, uma organização, um país, o mundo,...) assim como o número de componentes (computadores, utilizadores, etc.). A escala de um sistema tem várias facetas: recursos e utilizadores âmbito geográfico e mobilidade âmbito administrativo. Um sistema capaz de escalar (escalável) é um sistema que continua eficaz quando há um aumento significativo do número de recursos e utilizadores (i.e., em que não é necessário alterar a implementação dos componentes e da forma de interacção das mesmas). Material de suporte às aulas de Seminários de Informática Copyright DI FCT/ UNL / 13 Material de suporte às aulas de Seminários de Informática Copyright DI FCT/ UNL / 14 Escala na Internet Tratamento das falhas Num sistema distribuídos, as falhas podem ocorrer de forma independente Alguns componentes continuam a funcionar enquanto outros falham Computadores ligados à Internet Data 1979, Dezembro 1989, Julho 1999, Julho 2004, Julho Computadores Web servers 188 130,000 56,218,000 285,139,107 0 0 5,560,866 52,131,889 Necessidade de tratar falhas Falha de um componente não deve levar sistema a comportamentos incorrectos Um sistema tolerante a falha deve continuar a funcionar de acordo com o esperado mesmo quando algum dos componentes falha Caching, replicação Fonte ano 2004: http://www.zakon.org/robert/internet/timeline/ Material de suporte às aulas de Seminários de Informática Copyright DI FCT/ UNL / 15 Material de suporte às aulas de Seminários de Informática Copyright DI FCT/ UNL / 16 Segurança Necessidade de proteger os recursos e informação gerida num sistema distribuído Diversos aspectos envolvidos Autenticação dos utilizadores e servidores Autenticação dos servidores Prevenção de ataques do tipo negação de serviço (denial of service attacks) Segurança na presença de código móvel Organização Introdução Motivação e características Modelo cliente/servidor Exemplos na Internet Exemplos em Intranets Computação móvel Redes ad-hoc Computação ubíqua RFIDs Redes de sensores Material de suporte às aulas de Seminários de Informática Copyright DI FCT/ UNL / 17 Material de suporte às aulas de Seminários de Informática Copyright DI FCT/ UNL / 18 3
Arquitecturas de SD: Cliente/Servidor O paradigma cliente servidor Cliente Servidor Pedido / resposta request Cliente Cliente reply Os processos podem ser divididos em dois tipos, de acordo com o seu modo de operação Cliente: envia pedido, recebe resposta Servidor: recebe pedido; processa pedido; envia resposta O cliente invoca pedidos num servidor através de alguma forma de comunicação Material de suporte às aulas de Seminários de Informática Copyright DI FCT/ UNL / 19 Material de suporte às aulas de Seminários de Informática Copyright DI FCT/ UNL / 20 Implementação do modelo cliente/servidor Exemplo: servidores WEB (HTTP) Usando primitivas de comunicação TCP/IP (streams, pacotes) Sistemas de middleware para invocação de operações remotas Escondem detalhes das comunicações, permitindo ao programador concentrar-se nos detalhes da aplicação Sistemas de RPC/RMI, permitem que Permitem que os programadores vejam: Servidores da mesma forma que vêem um objecto local Invoquem uma operação no servidor de forma semelhante a um método local Web-services: permitem disponibilizar serviços remotos acessíveis usando o protocolo HTTP (web) Aplicação cliente/servidor cliente: browser envia pedidos, recebe, interpreta e mostra o resultado servidor: o servidor Web envia os objectos em resposta aos pedidos http1.0: RFC 1945 http1.1: RFC 2068 PC running Explorer Mac running Navigator http request http response http request http response Server running NCSA Web server Material de suporte às aulas de Seminários de Informática Copyright DI FCT/ UNL / 21 Material de suporte às aulas de Seminários de Informática Copyright DI FCT/ UNL / 22 O pedido HTTP A resposta HTTP Os pedidos enviados pelos clientes de HTTP são codificado em texto Exemplo: Linha do pedido (GET, POST, HEAD,...) header lines Carriage return, line feed indicam o fim da mensagem GET /somedir/page.html HTTP/1.0 User-agent: Mozilla/4.0 Accept: text/html, image/gif,image/jpeg Accept-language:fr (extra carriage return, line feed) Material de suporte às aulas de Seminários de Informática Copyright DI FCT/ UNL / 23 As respostas enviadas pelos servidores de HTTP contém uma parte comum, codificada em texto, seguida do objecto pedido (o qual pode ser codificado num formato binário exemplo: imagens) Exemplo: status line (protocol status code status phrase) data, e.g., requested html file header lines HTTP/1.0 200 OK Date: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998... Content-Length: 6821 Content-Type: text/html data data data data data... Material de suporte às aulas de Seminários de Informática Copyright DI FCT/ UNL / 24 4
Outros serviços disponíveis na Internet Noção de proxy A generalidade dos serviços básicos disponíveis na Internet adoptam o modelo cliente/servidor Pedidos e respostas codificados como texto (apesar de, geralmente, os utilizadores usarem aplicações com interfaces gráficos) Exemplos: FTP: transferência de ficheiros SMTP: serviço de email Neste caso, os servidores podem funcionar como clientes de outros servidores para propagar e-mail para o destino final ICQ/Messenger/... Client Client Proxy server Web server Web server Proxy de um serviço/servidor Processo que fornece um serviço recorrendo a um servidor para executar o serviço Utilizações possíveis Intermediário simples Serviço adicional através do caching das respostas Diminuição do tempo de resposta (latência inferior para o proxy) Diminuição da carga do servidor Mascarar falhas do servidor / desconexão Material de suporte às aulas de Seminários de Informática Copyright DI FCT/ UNL / 25 Material de suporte às aulas de Seminários de Informática Copyright DI FCT/ UNL / 26 Arquitecturas de SD: peer-to-peer Arquitecturas de SD: variantes e combinações Variantes do modelo cliente/servidor Cliente/servidor replicado, cliente/servidor particionado Cliente leve (thin client)/servidor O cliente apenas inclui um interface (gráfico) para executar operações no servidor (ex: browser) Cliente completo(estendido)/servidor O cliente executa localmente algumas operações que seriam executadas pelo servidor Todos os processo executam tarefas semelhantes (actuam como clientes e servidores servant/servent) Exemplos: partilha de ficheiros, edição colaborativa Apropriado para ambientes em que todos os participantes querem cooperar para fornecer uma dado serviço Capacidade agregada >> capacidade individual Cliente/servidor + peer-to-peer Num sistema peer-to-peer, podem existir elementos que disponibilizam o serviço a outros processos (clientes) que não pertencem ao sistema peer-to-peer Cliente/servidor para ligação e peer-to-peer para interacção (ex.: edonkey) Material de suporte às aulas de Seminários de Informática Copyright DI FCT/ UNL / 27 Material de suporte às aulas de Seminários de Informática Copyright DI FCT/ UNL / 28 Serviços disponíveis em Intranets Domínios administrativo único Sabe-se quem são os utilizadores Serviços Web-intranet Sistemas de ficheiros distribuídos (NFS, SMB) Impressoras partilhadas Agendas partilhadas Serviço de autenticação unificado para todos os serviços do sistema (Kerberos) Organização Introdução Motivação e características Modelo cliente/servidor Exemplos na Internet Exemplos em Intranets Computação móvel Redes ad-hoc Computação ubíqua RFIDs Redes de sensores Material de suporte às aulas de Seminários de Informática Copyright DI FCT/ UNL / 29 Material de suporte às aulas de Seminários de Informática Copyright DI FCT/ UNL / 30 5
Computação móvel Características Contexto: Generalização da utilização de dispositivos portáteis PDAs, portáteis, ipods, telemóveis, etc. RFids, sensor node, etc. Generalização da disponibilidade de redes sem fios Longa distância: GSM/GPRS, Wi-Fi, 3G Curta distância: Bluetooth, IR Consequência: Novo ambiente de computação distribuída Recursos computacionais reduzidos Em geral, os dispositivos móveis tendem a ter recursos inferiores aos dos computadores fixos Variabilidade da conectividade Os computadores fixos tendem a ter conectividade permanente, global e de boa qualidade Os dispositivos móveis tendem a ter conectividade de qualidade variável, assimétrica, por vezes apenas local ou mesmo inexistente Menor fiabilidade Dispositivos móveis são mais propensos a serem roubados, destruídos, etc. Maior heterogeneidade Os dispositivos móveis tendem a ter recursos inferiores aos dos dispositivos fixos Material de suporte às aulas de Seminários de Informática Copyright DI FCT/ UNL / 31 Material de suporte às aulas de Seminários de Informática Copyright DI FCT/ UNL / 32 Desafios Sistemas baseados em redes ad-hoc Lidar com variações nos recursos disponíveis, largura de banda Exemplo: proxies web: adaptam a qualidade das imagens Adaptar o funcionamento em função das condições do ambiente Exemplo: no streaming de vídeo pode adaptar-se a qualidade consoante a largura de banda disponível Lidar com desconexão, partições, falhas parciais Exemplo: sistema de ficheiros pode replicar ficheiros localmente e lidar com possíveis conflitos mais tarde Suportar heterogeneidade Lidar com o problema da escalabilidade Criar novas aplicações que explorem a mobilidade, a localização e as comunicações ad-hoc dos utilizadores Redes ad-hoc são ligações que se estabelecem de forma espontânea entre vários dispositivos móveis Possíveis aplicações Permitir a vários utilizadores trocarem informação quando se encontram Desafios Criar aplicações que explorem ligações ad-hoc Carros podem comunicar entre si para propagar informação sobre as condições das estradas Protocolos de comunicação em redes ad-hoc Auto-organização Material de suporte às aulas de Seminários de Informática Copyright DI FCT/ UNL / 33 Material de suporte às aulas de Seminários de Informática Copyright DI FCT/ UNL / 34 Digital aura Computação ubíqua Material de suporte às aulas de Seminários de Informática Copyright DI FCT/ UNL / 35 Material de suporte às aulas de Seminários de Informática Copyright DI FCT/ UNL / 36 6
Computação ubíqua Cada utilizador tem múltiplos dispositivos computacionais Pode utilizar os seus dispositivos em qualquer lado Pervasive computing Dispositivos computacionais em todo o lado Dispositivos associados a objectos Exemplos: No supermercado: RF-ids, etiquetas electrónicas Numa casa: luzes, frigorífico, TV, etc. Desafios Quais as aplicações a implementar? (Muito) larga-escala Número de dispositivos computacionais envolvidos muito superior a um sistema distribuído clássico Heterogeneidade Dispositivos muito diferentes Novos dispositivos podem ser adicionados em qualquer altura Segurança Falhas Material de suporte às aulas de Seminários de Informática Copyright DI FCT/ UNL / 37 Material de suporte às aulas de Seminários de Informática Copyright DI FCT/ UNL / 39 RFIDs (Radio frequency identification) Dispositivo que pode guardar informação e emiti-la quando necessário RFIDs passivos Sem alimentação própria: o leitor produz uma acção (campo magnético) sobre o RFID de forma a que este produza a energia necessária à comunicação RFIDs activos Incluem alimentação própria Utilização de RFIDs Utilizações comuns (ou em generalização) Média escala Identificação de animais domésticos (e pessoas Verichip: clube em Barcelona) Cartões de identificação Distribuição Logística Grande escala Identificação de produtos (substituindo código de barras) Permite identificação individual dos produtos Material de suporte às aulas de Seminários de Informática Copyright DI FCT/ UNL / 40 Material de suporte às aulas de Seminários de Informática Copyright DI FCT/ UNL / 41 Outras aplicações Comércio Loja em que cada produto é identificada com RFIDs Clientes com dispositivos móveis poderiam obter informação adicional a partir do identificador no RFID Estudo da migração dos peixes num bacia É implantado um RFID em cada peixe Leitores instalados em várias locais permitem estudar as migrações dos peixes http://www.ti.com/rfid/docs/applications/animal/wildfish.shtml Protecção contra pesca ilegal Peixes pescados legalmente são identificados com um RFID http://ubiks.net/local/blog/jmt/archives3/002049.html Redes de sensores Sistemas distribuídos compostos por um número elevado de pequenos sistemas computacionais (motes) com: Fonte de alimentação própria (em geral, uma bateria) Pequeno microprocessador Emissor/receptor de rádio Sensor (depende do sistema) Pressupostos Motes têm preço reduzido Quando a bateria acabar, o mote deixa de funcionar Alguns desafios Organização de número elevado de motes Minimizar consumo energético Segurança Material de suporte às aulas de Seminários de Informática Copyright DI FCT/ UNL / 42 Material de suporte às aulas de Seminários de Informática Copyright DI FCT/ UNL / 43 7
Redes de sensores: aplicações Monitorar o espaço e coisas Valores relacionados com o ambiente (temperatura, humidade, etc.), sistemas de vigilâncias Monitorar interacção entre as coisas e o espaço Interacções entre animais, resposta em caso de desastres ZebraNet http://www.princeton.edu/~mrm/zebranet.html Objectivo: Monitorar migrações de animais numa reserva natural Mote (dispositivo computacional) Emissor/receptor de rádio de pequena alcance Processador Memória flash para guardar informação de forma fiável Sensor: GPS Bateria recarregável usando um painel solar Sistema Cada zebra tinha um mote Existiam alguns receptores espalhados na reserva (de forma muito esparsa) Material de suporte às aulas de Seminários de Informática Copyright DI FCT/ UNL / 44 Material de suporte às aulas de Seminários de Informática Copyright DI FCT/ UNL / 45 ZebraNet Funcionamento Sistema activo/desactivo periodicamente Coordenação: relógio GPS Objectivo: minimizar consumo de energia Quando activo Obtém posição Propaga informação para vizinhos e, quando no alcance, estações base Propriedades Permite propagar informação sobre todos os animais mesmo que alguns animais nunca se aproximem dos receptores Conjunto de técnicas que permitem reduzir o consumo de energia Material de suporte às aulas de Seminários de Informática Copyright DI FCT/ UNL / 46 8