Middleware para Serviços Baseados em Localização Ricardo Couto Antunes da Rocha [email protected] © 2004 – Ricardo Couto Antunes da Rocha 1 Roteiro Motivação Aplicações de Serviços baseados em Localização Arquitetura de Software para LBS Requisitos para Middleware para LBS Modelos de Middleware para LBS Conclusões © 2004 – Ricardo Couto Antunes da Rocha 2 Motivação Cenário atual: popularização de dispositivos móveis e de tecnologia de posicionamento (como GPS) Cenário habilita o desenvolvimento de aplicações de LBS Algumas operadores de telefonia oferecem aplicações simples de LBS. Exemplo: DoCoMo i-area. © 2004 – Ricardo Couto Antunes da Rocha 3 Motivação Ambiente de computação móvel são tradicionalmente heterogêneos: Rede: GPRS, TCP, 802.11 Identidade: usuário/senha, device id, telefone celular Posicionamento: GPS, cell id, ... Middleware habilita o desenvolvimento de aplicações apesar do ambiente heterogêneo. Fio motivador: Características necessárias e modelos interessantes para um middleware para permitir a implementação de aplicações de LBS. © 2004 – Ricardo Couto Antunes da Rocha 4 Aplicações de LBS Recuperar a localização de um usuário móvel é um desafio menor. Desafios mais evidentes: Tratamento homogêneo da localização Casamento de interesse entre consumidores de informação e disseminadores de informação Disseminação seletiva de informações, dependendo da localização Volume grande de dados: Localização não está associada apenas aos usuários móveis mas também às informações distribuídas © 2004 – Ricardo Couto Antunes da Rocha 5 Aplicações de LBS Exemplo: Um estudante de pós-graduação deseja estudar PAA na biblioteca. Ele acessa uma aplicação de LBS em seu PDA e registra o seu interesse (estudar PAA) e requisita à aplicação encontrar outro estudante com o mesmo interesse e próximo da biblioteca. A aplicação mostra três estudantes que atendem a esses requisitos e o estudante envia uma mensagem para um deles, sugerindo o estudo em grupo. © 2004 – Ricardo Couto Antunes da Rocha 6 Arquitetura de Software para LBS © 2004 – Ricardo Couto Antunes da Rocha 7 Requisitos para Middleware para LBS Capacidade de tratar diferentes aspectos da localização: Aspecto espacial Temporalidade Inaccuracy, imprecisão e incerteza Grandes volumes de dados Queries contínuas Capacidade de funcionar com tecnologias heterogêneas Canais de notificação (GPRS, SMS, 802.11) Posicionamento (GPS, cell id, indoor) Conceitos de posicionamento (lat/long, célula, rua, ...) Permitir o casamento complexo de interesses entre diversos usuários © 2004 – Ricardo Couto Antunes da Rocha 8 Modelos de middleware para LBS Publish/Subscribe Baseado em conteúdo Baseado em subject spaces Espaço de tuplas Baseado em DBMS © 2004 – Ricardo Couto Antunes da Rocha 9 Modelo Publish/Subscribe Comunicação é intermediada por um serviço de eventos ou event broker Modelo de eventos push/pull Publicador de eventos é o publisher: envia os eventos ativamente para o broker Consumidor de eventos é o subscriber: registra no broker o interesse por eventos e é notificado quando o evento desejado ocorre Modelo de comunicação assíncrono e desacoplado Tipos de publish/subscribe: tópico, tipo, conteúdo e subject spaces © 2004 – Ricardo Couto Antunes da Rocha 10 Publish/Subscribe baseado em Conteúdo Eventos são formados por um conjunto de atributos. Exemplo: E = {(MAC ID=05:AA:01:02:11), (CPU=70%),(location=(13,234))} O subscriber registra o interesse por eventos com uma série de predicados que descrevem restrições aos valores dos atributos de eventos. Exemplo: (location, (x < 10) and (y <=200)) Características do evento localização: Pode mudar em uma taxa relativamente alta O publicador de eventos pode ser um agente externo © 2004 – Ricardo Couto Antunes da Rocha 11 Publish/Subscribe baseado em Conteúdo Abordagem alternativa para pub/sub para LBS L-ToPSS: localização é tratada separadamente das demais informações de contexto Arquitetura: © 2004 – Ricardo Couto Antunes da Rocha 12 Publish/Subscribe Subject Spaces Cenário Uma loja de café envia propagandas para usuários móveis na vizinhança de 1 Km Um consumidor quer receber tais notificações, mas ele não bebe mais do que 2 copos no intervalo de 5 horas Modelos publish/subscribe tradicionais não tratam muito bem este cenário: Desafio é evitar o recebimento de notificações redundantes ou que não sejam do interesse Notificação depende do tempo em que foi feito a última notificação (só após 5 h, sistema pode enviar outra notificação) Publisher estabelece uma restrição (área de 1 Km) © 2004 – Ricardo Couto Antunes da Rocha 13 Publish/Subscribe Subject Spaces Características básicas: Stateful Publishing e subscription são igualmente tratados Subject space é um espaço multidimensional em que cada dimensão representa um atributo de um assunto (subject) Formalmente, é uma tupla {Do,Vo}, onde Do={d1,d2,..dn} e Vo é o conjunto de valores permitidos neste espaço Exemplo: dl = {(x,double),(y,double),(z,double)} © 2004 – Ricardo Couto Antunes da Rocha 14 Publish/Subscribe Subject Spaces Relacionamento entre Subject Spaces S2 S4 S3 S1 © 2004 – Ricardo Couto Antunes da Rocha S5 15 Publish/Subscribe Subject Spaces Objeto de interesse: entidade monitorada pelo publisher e que pode ser do interesse de um ou mais subscribers Cada objeto de interesse possui um conjunto de predicados: triplas com dimensão, operador, valor. Exemplo: L1 = {(x < 10), (y <= 20)} Portanto, um objeto pode ocupar uma região em um subject space © 2004 – Ricardo Couto Antunes da Rocha 16 Publish/Subscribe Subject Spaces Mudança de estado de um objeto em um sistema de publish/subscribe ocorre em três situações: 1. Adicionando um objeto no subject space 2. Atualizando um objeto no subject space 3. Removendo um objeto no subject space Subscriptions são conjuntos de requisitos que especificam o interesse de um subscriber © 2004 – Ricardo Couto Antunes da Rocha 17 Publish/Subscribe Subject Spaces Outros operadores e formalismos: Filtro: mapeia um conjunto de regiões em verdadeiro ou falso. É utilizado em subscriptions Tempo: tratado como um domínio discreto. Duas funções são definidas: Função-π: mais recente instante em que duas regiões combinaram Função-σ: mais recente instante em que duas regiões deixaram de combinar Now: instante atual © 2004 – Ricardo Couto Antunes da Rocha 18 Publish/Subscribe Subject Spaces Espaço é multidimensional portanto a verificação do casamento entre publications e subscriptions é mais complexa implementação pode ser menos eficiente. Algumas técnicas para passar espaço multidimensional para unidimensional podem ser aplicadas. Vantagens do modelo Evita notificações redundantes Modelo publish/subscribe é simétrico Usa operações de atualização, ao invés de remoção e inclusão © 2004 – Ricardo Couto Antunes da Rocha 19 Modelo baseado em tuplas Modelo proposto para coordenação de atividades entre processos concorrentes. Originado em Linda. Implementações para computação móvel: Lime e L2imbo Permite comunicação desacoplada e anônima Dois elementos se comunicam lendo e escrevendo em um espaço de tuplas: Coleção global e persistente de tuplas Uma tupla pode ser um dado tipado, contendo um conjunto de valores, ou especificar um tipo de dado © 2004 – Ricardo Couto Antunes da Rocha 20 Modelo baseado em tuplas Um elemento pode realizar três operações básicas: Out(t): insere a tupla t no espaço de tuplas In(p): extrai uma tupla do espaço de tuplas que combina com o padrão de tupla p. Rd(p): similar a In(p), exceto que não remove a tupla do espaço de tuplas Outras operações são providas por diferentes implementações de middlewares de tuplas. Em LBS: Publicador registra a informação na forma de uma tupla Consumidor recupera a informação lendo no espaço de tuplas Modelo utiliza uma interação do tipo pull e não permite disseminação de informação adequadamente. © 2004 – Ricardo Couto Antunes da Rocha 21 Modelo baseado em DBMS Compreende o uso do modelo de interação de banco de dados para implementar comunicação e coordenação entre elementos. Permite o modelo de interação pull Permite operações relacionais flexíveis para recuperação de informação Modelo disseminado na indústria e implementado por boa parte dos GIS © 2004 – Ricardo Couto Antunes da Rocha 22 Conclusões Middleware é uma abordagem adequada para superar problemas de interoperabilidade e heterogeneidade típicos do ambiente móvel. Por outro lado, o número crescente de propostas de middlewares pode criar novos problemas de interoperabilidade e inibir sua adoção. Esta apresentação discutiu requisitos que middlewares (implementações e modelos) devem ser capazes de atender para permitir a implementação de cenários de LBS. Entretanto, isso não pressupõe o desenvolvimento de novos middlewares mas a adequação dos modelos atuais aos requisitos de LBS. © 2004 – Ricardo Couto Antunes da Rocha 23