Sistemas de localização dinâmica de serviços em ambientes de computação móvel Seminários GSD - 2003 IME/USP Ago/2003 Roteiro Problema Motivação Soluções Protótipo Trabalhos Futuros Bibliografia Problema abordado Usuário móvel (UM) conectado a uma rede sem fio Deseja utilizar serviço de impressão Localizar impressora mais próxima Configuração automática Problema genérico Em uma rede: Serviços disponíveis são desconhecidos Características dos serviços não são conhecidas Dificuldade de acesso ao serviço Problema (cont.) Em uma rede: Configuração manual Usuários móveis (redes sem fio) Recursos da rede subutilizados Aumento das tarefas administrativas Desejável Busca de serviços por características Localização do serviço mais conveniente Reconfiguração dinâmica Acesso transparente Desejável (cont.) Divulgação de novos serviços Tolerância a falhas do servidor Administração “zero” Redes “plug and play” Questões 1) Como prover um mecanismo de busca aos serviços da rede? 2) Como obter acesso transparente ao serviço? 3) Como obter a localização física das unidades móveis? Soluções Sistemas de Localização de Serviços (SLS): Repositório de serviços, classificados ou “páginas amarelas” Middleware entre cliente e servidor Framework para implementação de serviços SLS - Arquiteturas SLP – Service Location Protocol Jini Network Technology Microsoft Universal Plug and Play Salutation Bluetooth SDP SLP - IETF Especificado pelo IETF através de RFCs Baseado em trocas de mensagens via TCP/IP ou UDP Serviços simples: registro através de URLs (IP + porta) Elementos Service Agent (SA) User Agent (UA) Directory Agent (DA) * (*) Opcional Operações Localização do DA Registro de um serviço Consulta - Operações realizadas através de troca de mensagens: unicast ou multicast Mensagens Cabeçalho binário: Version FuncID Length Flags Length Extension Extension XID Language Length Language - Mais campos específicos de cada tipo de mensagem (Length, Value) Simulação UA SA SrvRqst DA SrvRqst DAAdvert Localiza DA DAAdvert SrvReg SrvAck Registra SA Simulação (cont.) UA DA SA SrvRqst Consulta Srv (com DA) SrvRply SrvRqst SAAdvert Consulta Srv (sem DA) Problemas Forma de acesso ao serviço não é contemplada Não possui seleção automática do serviço mais conveniente Não soluciona o problema da impressora mais próxima Implementação SLP SA registra um atributo com a sua localização física Foi criada uma nova mensagem: SrvRqstWithLocation equivalente ao SrvRqst Adicionado um campo adicional User Location, que representa a localização da UM Implementação SLP UA envia ao DA uma mensagem SrvRqstWithLocation informando a sua localização DA foi modificado para receber e interpretar a nova mensagem Mecanismo de seleção do serviço foi reescrito para encontrar o servidor mais próximo ao cliente Jini - Arquitetura Desenvolvido em Java Utiliza fortemente a camada RMI Baseado na troca de objetos distribuídos Mobilidade de código Elementos Service Provider (SP) Client (C) Lookup Service (LS) * (*) elemento principal Micro-protocolos Localização do LS Publicação de um serviço Consulta - Operações realizadas através do LS Localização do LS Modos: Multicast Request Multicast Announcement Unicast Discovery Retorna objeto remoto ServiceRegistrar (stub RMI) representando o LS Publicação do Serviço 1) 2) Obtém referência para LS Constrói ServiceItem: a) b) c) 3) 4) 5) Id (opcional) Proxy Atributos Define política de Leasing Registra o serviço: ls.register(item, time) Inicia serviço e espera requisições Publicação do Serviço 1 RMI 4 SP 2 3 LS ServiceItem Service Proxy Attr 1 Attr n Consulta 1) 2) Obtém referência para LS Constrói ServiceTemplate: Seu id b) Atributos c) Tipo (interface Java) - ls.lookup(template) a) 3) 4) Recebe service proxy Acessa o serviço Consulta 1 RMI Cliente 3 2 LS Service Proxy SP 4 Problemas Não possui seleção de serviços: por demanda localidade Não resolve o problema da impressora mais próxima Implementação Jini Serviço de impressão registra um atributo com a sua localização física Classe ServiceRegistrar, que representa LS, foi estendida Método lookup do LS foi sobrecarregado para: Receber localização da UM Escolher a impressora mais próxima de acordo com a sua semântica de proximidade Soluções (cont.) Sistemas de Localização de UMs: Surgiram no final da década de 80 Objetivo: rotear chamadas PABX para ramal mais próximo ao destinatário Técnicas utilizadas: Triangulação Proximidade Análise de cenas Técnica de Triangulação Baseada nas propriedades geométricas de triângulos Subdividida em: Lateração: utiliza medidas de distância entre a UM e pontos de referência Angulação: utiliza medidas de ângulo para computar a localização Lateração Distâncias da UM a três pontos nãocolineares (2D) ou quatro pontos (3D) Heurísticas de medição: Direta: ação física, difícil de automatizar Time-of-flight: tempo do sinal até o ponto de referência, vel. cte conhecida Atenuação: intensidade do sinal, função f(d) Angulação Utiliza ângulo de recebimento do sinal emitido e a distância conhecida entre os dois pontos de referência (2D) Técnica de Angulação Técnica de Lateração Proximidade Identifica quando a UM está em uma área conhecida Técnicas de identificação: Contato físico: sensores de toque, pressão, etc. Receptores de acesso: recebe o sinal da UM Sistema de identificação: terminais, computadores, etc. Análise de Cenas Utiliza características de uma cena observada de uma posição estratégica Armazena base de dados com características da cena x localização Compara as características observadas com a base de dados pré-armazenada A cena pode ser uma imagem de uma câmera ou outro fenômeno mensurável Outras Propriedades Ambientes externos x indoor Localização física x simbólica Posição absoluta x relativa Precisão e Exatidão Computação local Reconhecimento Tecnologias Active Badge: pioneiro, baseado em sinais IR, beacons, badge, localização simbólica Active Bat: pulsos ultra-som, UM acoplada ao Bat Tag, triangulação GPS: externo, através de 24 satélites, time-of-flight Microsoft RADAR e Ekahau: análise de cenas, baseado na intensidade do sinal Tecnologias (cont.) Localização Rede Precisão Técnica Active Badge Simbólica Infravermelho Tamanho da célula Proximidade Active Bat Física Rádio 9cm – 95% Triangulação GPS Física Rádio 10m – 95% Triangulação Radar Física IEEE 802.11 3-5m – 50% Análise de Cenas Ekahau Física IEEE 802.11 1-5m – 75% Análise de Cenas Tecnologia utilizada Sistema para ambiente indoor Utilize somente protocolo da rede sem fio Sem hardware adicional API de acesso em Java Ekahau Positioning Engine Utiliza apenas a infra-estrutura da rede sem fio, sem hardware adicional Baseado na intensidade de sinal (RSSI). O sistema é calibrado e armazena o RSSI de cada ponto de amostra Compara RSSI da UM com o BD e infere a localização da mesma Fornece localização relativa física (e simbólica) Ekahau Positioning Engine Módulos: Positioning Engine * Ekahau Manager/Calibrator Device Service (*) API Java de acesso ao Positioning Engine Ekahau - Exemplo de Uso Ekahau - Exemplo de Uso Protótipo Módulos: Servidor de Impressão: canal de comunicação final com a impressora Localização: cliente do ekahau e semântica de proximidade SLP: agentes do SLP Jini: elementos do jini Palm: cliente móvel do sistema Cliente Palm Exemplo de cliente móvel do sistema para pequenos dispositivos Implementação em Java – Arquitetura Waba™ Poucos recursos Proxy Client(sds, loc, dados) GUI para dados a serem impressos: AddressBook, ToDo, E-Docs, e-mails Cliente Palm PalmEmu: Lista de registros Visualização do registro Simulação a) Inicia serviço de impressão b) Publica serviço com sua localização 1) Obtém informação de localização 2) Envia dados e loc para o proxy 3) Instancia cliente do SDS escolhido 4) Consulta serviço de impressão 5) Seleciona servidor mais próximo 6) Retorna info de acesso ao servidor 7) Utiliza serviço 8) Imprime arquivo Simulação 8 PrintSrv a) SP 7 Proxy 3 b) 4 Cliente LS 6 2 5 Palm Início 1 Loc. Trabalhos Futuros Implementação de outras semânticas de proximidade “Bridge” entre SLP e Jini Testes em outras plataformas (Pocket PC) Otimizações – Cache no LS Bibliografia Protótipo: http://www.ime.usp.br/~lmap/ prototipo/ IETF SLP: http://www.srvloc.org Jini: http://www.sun.com/jini Bibliografia (cont.) Ekahau: http://www.ekahau.com Waba: http://www.waba.com Homepage: http://www.ime.usp.br/~lmap/mest rado/