Sistemas distribuídos Computação móvel e ubíqua Prof. Diovani Milhorim Introdução Paradigmas da computação Paradigma Um computador para vários usuários Mainframes 2° Paradigma Um computador para um usuário Computadores Pessoais 3° Paradigma Vários computadores para um usuário Computação Ubíqua Introdução Computação Móvel É o paradigma de computação que se interessa em explorar a conectividade de dispositivos que se movem em torno do mundo físico do dia-a-dia. Introdução Computação Ubíqua É o paradigma de computação que explora a integração crescente de dispositivos de computação com o nosso mundo físico do dia-a-dia. Introdução Filosofia criada originalmente no XEROX PARC ( Palo Alto Reserch Center) por Mark Weiser Realidade Virtual X Computação Ubíqua Especialização dos computadores Computadores habitando os mais triviais objetos: etiquetas de roupas, xícaras de café, interruptores de luz, canetas, etc Introdução Computação Ubíqua e Móvel surgiu devido a miniaturização e conectividade sem fio. A medida que dispositivos se tornam menores, estamos mais capazes de portálos ao redor de nós ou usá-los, e podemos embutí-los dentro de muitas partes do mundo físico. Introdução Com a conectividade sem fio se tornando mais predominante, aumenta a capacidade para conectar esses novos pequenos dispositivos a outros, e para computadores pessoais convencionais e servidores. Computação Ubíqua Mark Weiser [Weiser 1991] cunhou este termo em 1988. Algumas vezes chamada Pervasive Computing. Pervasive significa “impregnante”. Ubiquitous significa “para ser encontrado em todo lugar”. Computação Ubíqua Weiser viu a predominância crescente de dispositivos de computação, conduzindo a mudanças revolucionárias no modo que nós poderíamos usar computadores. Computação Ubíqua Primeiro argumento de Weiser: “Cada pessoa no mundo utilizaria muitos computadores”. A idéia de Weiser: “uma pessoa, muitos computadores” Computação Ubíqua Em computação ubíqua, “computadores aparecem em quase tudo, em forma e em função”, não apenas em número, para acomodar diferentes tarefas. Computação Ubíqua Suponha que tudo em uma sala, a apresentação visual e superfícies de escrita: quadros de escrever, livros, papéis, artigos, canetas, sejam substituídos por computadores com displays eletrônicos. Os quadros de escrever poderiam ser computadores para assistir pessoas para desenhar, organizar, e arquivar suas idéias. Livros poderiam tornar-se dispositivos que permitem leitores a buscar seus textos, procurar o significado de palavras, buscar idéias relacionadas a alguma coisa e ver conteúdo multimídia através de links. Computação Ubíqua Segundo argumento de Weiser Weiser previu que computadores “desapareceriam”. Isto reflete a idéia de que computação tornar-se-á embutida: ítens do dia-a-dia que, normalmente, não pensamos ter capacidade computacional, passarão a ter. Computação Ubíqua Enquanto a invisibilidade de certos dispositivos é apropriada – tal como sistemas de computadores embutidos em um carro – não é verdade para todos os dispositivos, particularmente aqueles que usuários móveis, tipicamente portam, como um fone celular. Wearable Computing Usuários portam dispositivos de computação ubíqua, relativos a sua pessoa, sobre seu corpo, anexados a suas roupas ou usados como relógios, jóias ou óculos. Funcionalidade especializada. Freqüentemente operam sem que o usuário tenha que manipulá-lo. Wearable Computing Exemplo: “Active Badge” Um active badge é um pequeno dispositivo de computação grampeado ao usuário que regularmente “broadcasts” a identidade do usuário associado ao badge (crachá), via um transmissor de infra-vermelho. A room responding to a user wearing an active badge 2. Infrared sensor detects users ID Userユs ID 3. Display responds to user 1. User enters room wearing active badge Hello Roy Infrared An example of Wearable Computing Wearable Computing O sinal do “badge” é para dispositivos no ambiente para responder as transmissões do “badge”, e assim acusar (responder) a presença de um usuário. Transmissões de infra-vermelho tem um alcance (range) limitado e assim serão capturadas somente se o usuário estiver perto. Wearable Computing Um display eletrônico pode adaptar à presença de um usuário, customizando seu comportamento de acordo a preferências do usuário. Por exemplo: Uma sala poderia adaptar o ar condicionado e iluminação de acordo à pessoa dentro dela. Context-aware computing Computação ciente do contexto O “active badge” ou as reações de outros dispositivos a sua presença (o sensor) – exemplifica Context-aware computing. Context-aware computing é uma subárea importante da Computação Ubíqua e Móvel. Context-aware computing Onde sistemas de computadores automaticamente adaptam seu comportamento de acordo as circunstâncias físicas. Tais circunstâncias físicas podem ser, em princípio, qualquer coisa fisicamente mensurável ou detectável. Context-aware computing Tais como, a presença de um usuário, tempo do dia ou condições atmosféricas. Algumas condições dependentes são imediatas para determinar, se é noite, dia do ano e posição geográfica. Outras requerem processamento sofisticado para detectá-las. Sistemas Voláteis Do ponto de vista de sistemas distribuídos, não existe diferença essencial entre computação ubíqua e móvel ou as sub-áreas introduzidas (ou mesmo, as sub-áreas não abordadas aqui, tal como tangible computing. Tangible Computing [Ishii and Ullmer 1997]. Augmented Reality, como exemplificada por Wellner’s digital desk [Wellner 1991]. Sistemas Voláteis Abordamos um modelo, chamado sistemas voláteis, que compreende as características essenciais de sistemas distribuídos de todos eles. Sistemas Voláteis: certas mudanças são comuns, ao contrário do que, excepcionais. Sistemas Voláteis O conjunto de usuários, hardware e software em sistemas ubíquos e móveis, é altamente dinâmico e mudanças imprevisíveis. Um outro nome para esses sistemas é spontaneous, que aparece na literatura no termo spontaneous networking. Sistemas Voláteis As formas relevantes de “volatilidade” inclui: Falhas de dispositivos. Links de comunicação. Mudanças nas características de comunicação tais como largura de banda. A criação e destruição de associações – relacionamentos de comunicação lógica – entre componentes de software residentes nos dispositivos. Sistemas Voláteis O termo “componente” compreende qualquer unidade de software tais como objetos ou processos, sem considerar se eles inter-operam como um cliente ou servidor ou “peer”. Sistemas Voláteis Meios de tratar com mudanças ... Processamento de falhas. Operação desconectada. Replicação: abordam sobre processamento e falhas de comunicação sendo a exceção e não regra, e sobre a existência de recursos de processamento redundantes. Sistemas Voláteis O que é diferente em sistemas de Computação Ubíqua e Móvel, é que elas (associações) exibem todas as formas (mencionadas antes) de volatility (por isso mudam), devido ao modo que essas são integradas com o mundo físico. Sistemas Voláteis Existe muito a dizer sobre integração física e como esta causa volatility. Integração física não é uma propriedade de sistemas distribuídos, ao passo que volatility é. Sistemas Voláteis – Espaços Inteligentes São os ambientes dentro dos quais sistemas voláteis subsistem. Espaços inteligentes são espaços físicos. Formam a base para a computação ubíqua e móvel. Mobilidade toma lugar entre espaços físicos. Computação Ubíqua é embutida em espaços físicos. Sistemas Voláteis – Espaços Inteligentes Um espaço inteligente contém uma infraestrutura de computação relativamente estável, podendo conter: Computadores servidores. Impressoras. Displays. Sensores. Uma infra-estrutura de rede sem fio, com conexão para a Internet. Sistemas Voláteis – Espaços Inteligentes Existem diversos tipos de movimento que podem ocorrer em um espaço inteligente: Mobilidade física. Espaços inteligentes agem como ambientes para dispositivos que visitam e deixam eles. Usuários trazem e partem com dispositivos que eles portam ou vestem. Dispositivos robóticos podem se mover eles próprios para dentro e para fora do espaço. Sistemas Voláteis – Espaços Inteligentes Mobilidade lógica. Um processo ou agente móvel pode se mover para dentro ou para fora do espaço inteligente, ou para / de um dispositivo pessoal do usuário. Um movimento físico de um dispositivo pode causar um movimento lógico de componentes dentro dele. Sistemas Voláteis – Espaços Inteligentes Usuários podem adicionar dispositivos relativamente estáticos (tais como media players) como adições de longo-prazo ao espaço, e correspondentemente retirar dispositivos velhos dele. Sistemas Voláteis – Espaços Inteligentes Exemplo: a evolução de uma smart home cujos ocupantes variam o conjunto de dispositivos dentro dele, em um modo relativamente não planejado durante o tempo. Dispositivos podem ser desligados ou falhar e, assim, “desaparecerem” de um espaço. Sistemas Voláteis – Espaços Inteligentes Appears Ou um componente de software “aparece” em um espaço inteligente pré-existente, e se qualquer coisa é de interesse, torna-se integrado, ao menos temporariamente, dentro do espaço, ... Sistemas Voláteis – Espaços Inteligentes Desappears Ou um componente “desaparece” do espaço, através de mobilidade: porque ele é simplesmente desligado, ou ele falha. Sistemas Voláteis – Espaços Inteligentes Pode ou não pode ser possível, para qualquer componente particular distinguir dispositivos de “infra-estrutura”, dos dispositivos “visitantes”. Sistemas Voláteis – Espaços Inteligentes Uma diferença importante que pode surgir entre sistemas voláteis é a taxa de mudança. Algoritmos que têm de executar o “appear” ou o “desappear” de componentes (por exemplo, em uma smart home), podem ser projetados diferentemente daqueles, Sistemas Voláteis – Modelo de Dispositivo Um modelo para caracterizar dispositivos ubíquos e móveis. Com o surgimento de Computação Ubíqua e Móvel, uma nova classe de dispositivos está se tornando parte de sistemas distribuídos. Sistemas Voláteis – Modelo de Dispositivo Esse dispositivo é limitado em sua energia e recursos de computação. Ele pode ter algumas maneiras de se interfacear com o mundo físico. Sensores (tais como detectores de luz); Atuadores (tal como meio de movimento programável). Sistemas Voláteis – Modelo de Dispositivo Sensores e Atuadores: Para habilitar sua integração com o mundo físico, em particular, para torná-lo ciente de contexto, dispositivos são equipados com sensores e atuadores. Sistemas Voláteis – Modelo de Dispositivo Sensores: São dispositivos que medem parâmetros físicos e suprem seus valores para software. Atuadores: São dispositivos controláveis por software que afetam o mundo físico. Sistemas Voláteis – Modelo de Dispositivo Sensores medem: Posição, Orientação, Carga (peso), Níveis de som e iluminação. Atuadores incluem: Controladores programáveis para ar condicionado ou motores. Sistemas Voláteis – Conectividade Volátil É a variação em tempo de execução do estado de conexão ou desconexão entre dispositivos, bem como a qualidade de serviço entre eles. Conectividade Volátil tem um forte impacto sobre propriedades de sistemas. Sistemas Voláteis – Conectividade Volátil Dispositivos têm alguma forma de conectividade sem fio. As tecnologias de conexão (Bluetooth, WiFi, GPRS, ... ) variam em sua largura de banda nominal e latência, em seus custos de energia e se existem custos financeiros para comunicação. Sistemas Voláteis – Conectividade Volátil Desconexão Desconexões sem fio são, de longe, mais prováveis do que desconexão cabeada. Muitos dispositivos são móveis e assim podem exceder sua distância de operação de outros dispositivos e encontram radio occlusions entre eles, por exemplo, diante de edifícios. Sistemas Voláteis – Conectividade Volátil Existe também, a questão de roteamento sem fio em mutisaltos (multi-hop wireless router) entre dispositivos. Em roteamento ad hoc, uma coleção de dispositivos se comunicam uns com outros sem “reliance on” (confiar em) qualquer outro dispositivo: eles colaboram para rotear todos os pacotes entre eles mesmos. Sistemas Voláteis – Conectividade Volátil Largura de Banda Variável e Latência Os fatores que podem conduzir a completa desconexão pode também conduzir a alta variação de largura de banda e latência, porque eles acarretam mudanças nas taxas de erro.