© 2004 – Ricardo Couto Antunes da Rocha1 Ricardo Couto Antunes da Rocha [email protected]...

23
© 2004 – Ricardo Couto Antunes da Rocha 1 Ricardo Couto Antunes da Rocha Ricardo Couto Antunes da Rocha [email protected] [email protected] Middleware para Serviços Middleware para Serviços Baseados em Localização Baseados em Localização

Transcript of © 2004 – Ricardo Couto Antunes da Rocha1 Ricardo Couto Antunes da Rocha [email protected]...

Page 1: © 2004 – Ricardo Couto Antunes da Rocha1 Ricardo Couto Antunes da Rocha rcarocha@inf.puc-rio.br Middleware para Serviços Baseados em Localização.

© 2004 – Ricardo Couto Antunes da Rocha 1

Ricardo Couto Antunes da RochaRicardo Couto Antunes da Rocha

[email protected]@inf.puc-rio.br

Middleware para Serviços Middleware para Serviços Baseados em LocalizaçãoBaseados em Localização

Page 2: © 2004 – Ricardo Couto Antunes da Rocha1 Ricardo Couto Antunes da Rocha rcarocha@inf.puc-rio.br Middleware para Serviços Baseados em Localização.

© 2004 – Ricardo Couto Antunes da Rocha 2

RoteiroRoteiro

MotivaçãoMotivação Aplicações de Serviços baseados em Aplicações de Serviços baseados em

LocalizaçãoLocalização Arquitetura de Software para LBSArquitetura de Software para LBS Requisitos para Middleware para LBSRequisitos para Middleware para LBS Modelos de Middleware para LBSModelos de Middleware para LBS ConclusõesConclusões

Page 3: © 2004 – Ricardo Couto Antunes da Rocha1 Ricardo Couto Antunes da Rocha rcarocha@inf.puc-rio.br Middleware para Serviços Baseados em Localização.

© 2004 – Ricardo Couto Antunes da Rocha 3

MotivaçãoMotivação

Cenário atual: popularização de dispositivos Cenário atual: popularização de dispositivos móveis e de tecnologia de posicionamento (como móveis e de tecnologia de posicionamento (como GPS)GPS)

Cenário habilita o desenvolvimento de aplicações Cenário habilita o desenvolvimento de aplicações de LBSde LBS

Algumas operadores de telefonia oferecem Algumas operadores de telefonia oferecem aplicações simples de LBS. Exemplo: DoCoMo i-aplicações simples de LBS. Exemplo: DoCoMo i-area.area.

Page 4: © 2004 – Ricardo Couto Antunes da Rocha1 Ricardo Couto Antunes da Rocha rcarocha@inf.puc-rio.br Middleware para Serviços Baseados em Localização.

© 2004 – Ricardo Couto Antunes da Rocha 4

MotivaçãoMotivação

Ambiente de computação móvel são Ambiente de computação móvel são tradicionalmente heterogêneos:tradicionalmente heterogêneos:Rede: GPRS, TCP, 802.11Rede: GPRS, TCP, 802.11Identidade: usuário/senha, device id, telefone Identidade: usuário/senha, device id, telefone

celularcelularPosicionamento: GPS, cell id, ...Posicionamento: GPS, cell id, ...

Middleware habilita o desenvolvimento de Middleware habilita o desenvolvimento de aplicações apesar do ambiente heterogêneo.aplicações apesar do ambiente heterogêneo.

Fio motivador:Fio motivador:Características necessárias e modelos Características necessárias e modelos

interessantes para um middleware para permitir a interessantes para um middleware para permitir a implementação de aplicações de LBS.implementação de aplicações de LBS.

Page 5: © 2004 – Ricardo Couto Antunes da Rocha1 Ricardo Couto Antunes da Rocha rcarocha@inf.puc-rio.br Middleware para Serviços Baseados em Localização.

© 2004 – Ricardo Couto Antunes da Rocha 5

Aplicações de LBS Aplicações de LBS

Recuperar a localização de um usuário Recuperar a localização de um usuário móvel é um desafio móvel é um desafio menormenor..

Desafios mais evidentes:Desafios mais evidentes:Tratamento homogêneo da localizaçãoTratamento homogêneo da localizaçãoCasamento de interesse entre consumidores de Casamento de interesse entre consumidores de

informação e disseminadores de informaçãoinformação e disseminadores de informaçãoDisseminação seletiva de informações, Disseminação seletiva de informações,

dependendo da localizaçãodependendo da localizaçãoVolume grande de dados:Volume grande de dados:

Localização não está associada apenas aos usuários móveis mas também às informações distribuídas

Page 6: © 2004 – Ricardo Couto Antunes da Rocha1 Ricardo Couto Antunes da Rocha rcarocha@inf.puc-rio.br Middleware para Serviços Baseados em Localização.

© 2004 – Ricardo Couto Antunes da Rocha 6

Aplicações de LBSAplicações de LBS

Exemplo: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.

Page 7: © 2004 – Ricardo Couto Antunes da Rocha1 Ricardo Couto Antunes da Rocha rcarocha@inf.puc-rio.br Middleware para Serviços Baseados em Localização.

© 2004 – Ricardo Couto Antunes da Rocha 7

Arquitetura de Software para Arquitetura de Software para LBSLBS

Page 8: © 2004 – Ricardo Couto Antunes da Rocha1 Ricardo Couto Antunes da Rocha rcarocha@inf.puc-rio.br Middleware para Serviços Baseados em Localização.

© 2004 – Ricardo Couto Antunes da Rocha 8

Requisitos para Middleware Requisitos para Middleware para LBSpara LBS Capacidade de tratar diferentes aspectos da Capacidade de tratar diferentes aspectos da

localização:localização: Aspecto espacialAspecto espacial TemporalidadeTemporalidade InaccuracyInaccuracy, imprecisão e incerteza, imprecisão e incerteza Grandes volumes de dadosGrandes volumes de dados Queries contínuasQueries contínuas

Capacidade de funcionar com tecnologias Capacidade de funcionar com tecnologias heterogêneasheterogêneas Canais de notificação (GPRS, SMS, 802.11)Canais de notificação (GPRS, SMS, 802.11) Posicionamento (GPS, cell id, indoor)Posicionamento (GPS, cell id, indoor) Conceitos de posicionamento (lat/long, célula, rua, ...)Conceitos de posicionamento (lat/long, célula, rua, ...)

Permitir o casamento complexo de interesses entre Permitir o casamento complexo de interesses entre diversos usuáriosdiversos usuários

Page 9: © 2004 – Ricardo Couto Antunes da Rocha1 Ricardo Couto Antunes da Rocha rcarocha@inf.puc-rio.br Middleware para Serviços Baseados em Localização.

© 2004 – Ricardo Couto Antunes da Rocha 9

Modelos de middleware para Modelos de middleware para LBSLBS Publish/SubscribePublish/Subscribe

Baseado em conteúdoBaseado em conteúdoBaseado em subject spacesBaseado em subject spaces

Espaço de tuplasEspaço de tuplas Baseado em DBMSBaseado em DBMS

Page 10: © 2004 – Ricardo Couto Antunes da Rocha1 Ricardo Couto Antunes da Rocha rcarocha@inf.puc-rio.br Middleware para Serviços Baseados em Localização.

© 2004 – Ricardo Couto Antunes da Rocha 10

Modelo Publish/SubscribeModelo Publish/Subscribe

Comunicação é intermediada por um Comunicação é intermediada por um serviço de eventos ou serviço de eventos ou event brokerevent broker

Modelo de eventos push/pullModelo de eventos push/pullPublicador de eventos é o Publicador de eventos é o publisherpublisher: envia os : envia os

eventos ativamente para o brokereventos ativamente para o brokerConsumidor de eventos é o Consumidor de eventos é o subscribersubscriber: registra : registra

no broker o interesse por eventos e é notificado no broker o interesse por eventos e é notificado quando o evento desejado ocorrequando o evento desejado ocorre

Modelo de comunicação assíncrono e Modelo de comunicação assíncrono e desacopladodesacoplado

Tipos de publish/subscribe: tópico, tipo, Tipos de publish/subscribe: tópico, tipo, conteúdoconteúdo e e subject spacessubject spaces

Page 11: © 2004 – Ricardo Couto Antunes da Rocha1 Ricardo Couto Antunes da Rocha rcarocha@inf.puc-rio.br Middleware para Serviços Baseados em Localização.

© 2004 – Ricardo Couto Antunes da Rocha 11

Publish/Subscribe baseado em Publish/Subscribe baseado em ConteúdoConteúdo Eventos são formados por um conjunto de Eventos são formados por um conjunto de

atributos.atributos.Exemplo: Exemplo: E = {(MAC ID=05:AA:01:02:11), E = {(MAC ID=05:AA:01:02:11), (CPU=70%),(location=(13,234))}(CPU=70%),(location=(13,234))}

O subscriber registra o interesse por eventos O subscriber registra o interesse por eventos com uma série de predicados que descrevem com uma série de predicados que descrevem restrições aos valores dos atributos de restrições aos valores dos atributos de eventos.eventos.Exemplo: Exemplo: (location, (x < 10) and (y <=200))(location, (x < 10) and (y <=200))

Características do evento localização:Características do evento localização:Pode mudar em uma taxa relativamente altaPode mudar em uma taxa relativamente altaO publicador de eventos pode ser um agente O publicador de eventos pode ser um agente

externoexterno

Page 12: © 2004 – Ricardo Couto Antunes da Rocha1 Ricardo Couto Antunes da Rocha rcarocha@inf.puc-rio.br Middleware para Serviços Baseados em Localização.

© 2004 – Ricardo Couto Antunes da Rocha 12

Publish/Subscribe baseado em Publish/Subscribe baseado em ConteúdoConteúdo Abordagem alternativa para pub/sub para Abordagem alternativa para pub/sub para

LBSLBSL-ToPSS: localização é tratada separadamente L-ToPSS: localização é tratada separadamente

das demais informações de contextodas demais informações de contextoArquitetura:Arquitetura:

Page 13: © 2004 – Ricardo Couto Antunes da Rocha1 Ricardo Couto Antunes da Rocha rcarocha@inf.puc-rio.br Middleware para Serviços Baseados em Localização.

© 2004 – Ricardo Couto Antunes da Rocha 13

CenárioCenárioUma loja de café envia propagandas para usuários Uma loja de café envia propagandas para usuários

móveis na vizinhança de 1 Kmmóveis na vizinhança de 1 KmUm consumidor quer receber tais notificações, Um consumidor quer receber tais notificações,

mas ele não bebe mais do que 2 copos no mas ele não bebe mais do que 2 copos no intervalo de 5 horasintervalo de 5 horas

Modelos publish/subscribe tradicionais não Modelos publish/subscribe tradicionais não tratam muito bem este cenário:tratam muito bem este cenário:Desafio é evitar o recebimento de notificações Desafio é evitar o recebimento de notificações

redundantes ou que não sejam do interesseredundantes ou que não sejam do interesseNotificação depende do tempo em que foi feito a Notificação depende do tempo em que foi feito a

última notificação (última notificação (só após 5 h, sistema pode só após 5 h, sistema pode enviar outra notificaçãoenviar outra notificação))

Publisher estabelece uma restrição (área de 1 Km)Publisher estabelece uma restrição (área de 1 Km)

Publish/SubscribePublish/SubscribeSubject SpacesSubject Spaces

Page 14: © 2004 – Ricardo Couto Antunes da Rocha1 Ricardo Couto Antunes da Rocha rcarocha@inf.puc-rio.br Middleware para Serviços Baseados em Localização.

© 2004 – Ricardo Couto Antunes da Rocha 14

Publish/SubscribePublish/SubscribeSubject SpacesSubject Spaces Características básicas: Características básicas:

StatefulStatefulPublishing e subscription são igualmente tratadosPublishing e subscription são igualmente tratados

Subject spaceSubject space é um espaço é um espaço multidimensional em que cada dimensão multidimensional em que cada dimensão representa um atributo de um assunto representa um atributo de um assunto (subject)(subject)

Formalmente, é uma tupla Formalmente, é uma tupla {D{Doo,V,Voo}}, onde , onde DDoo={d={d11,d,d22,..d,..dnn}} e V e Voo é o conjunto de valores é o conjunto de valores permitidos neste espaçopermitidos neste espaço

Exemplo: Exemplo: ddll = {(x,double),(y,double),(z,double)} = {(x,double),(y,double),(z,double)}

Page 15: © 2004 – Ricardo Couto Antunes da Rocha1 Ricardo Couto Antunes da Rocha rcarocha@inf.puc-rio.br Middleware para Serviços Baseados em Localização.

© 2004 – Ricardo Couto Antunes da Rocha 15

Publish/SubscribePublish/SubscribeSubject SpacesSubject Spaces Relacionamento entre Subject SpacesRelacionamento entre Subject Spaces

S2

S1

S3S4

S5

Page 16: © 2004 – Ricardo Couto Antunes da Rocha1 Ricardo Couto Antunes da Rocha rcarocha@inf.puc-rio.br Middleware para Serviços Baseados em Localização.

© 2004 – Ricardo Couto Antunes da Rocha 16

Publish/SubscribePublish/SubscribeSubject SpacesSubject Spaces Objeto de interesseObjeto de interesse: entidade monitorada : entidade monitorada

pelo publisher e que pode ser do interesse pelo publisher e que pode ser do interesse de um ou mais subscribersde um ou mais subscribers

Cada objeto de interesse possui um Cada objeto de interesse possui um conjunto de predicados: triplas com conjunto de predicados: triplas com dimensão, operador, valor.dimensão, operador, valor.

Exemplo: Exemplo: LL11 = {(x < 10), (y <= 20)} = {(x < 10), (y <= 20)}

Portanto, um objeto pode ocupar uma Portanto, um objeto pode ocupar uma região em um subject spaceregião em um subject space

Page 17: © 2004 – Ricardo Couto Antunes da Rocha1 Ricardo Couto Antunes da Rocha rcarocha@inf.puc-rio.br Middleware para Serviços Baseados em Localização.

© 2004 – Ricardo Couto Antunes da Rocha 17

Publish/SubscribePublish/SubscribeSubject SpacesSubject Spaces Mudança de estado de um objeto em um Mudança de estado de um objeto em um

sistema de publish/subscribe ocorre em sistema de publish/subscribe ocorre em três situações:três situações:1.1. Adicionando um objeto no subject spaceAdicionando um objeto no subject space

2.2. Atualizando um objeto no subject spaceAtualizando um objeto no subject space

3.3. Removendo um objeto no subject spaceRemovendo um objeto no subject space

Subscriptions são conjuntos de requisitos Subscriptions são conjuntos de requisitos que especificam o interesse de um que especificam o interesse de um subscribersubscriber

Page 18: © 2004 – Ricardo Couto Antunes da Rocha1 Ricardo Couto Antunes da Rocha rcarocha@inf.puc-rio.br Middleware para Serviços Baseados em Localização.

© 2004 – Ricardo Couto Antunes da Rocha 18

Publish/SubscribePublish/SubscribeSubject SpacesSubject Spaces Outros operadores e formalismos:Outros operadores e formalismos:

Filtro: mapeia um conjunto de regiões em Filtro: mapeia um conjunto de regiões em verdadeiro ou falso. É utilizado em subscriptionsverdadeiro ou falso. É utilizado em subscriptions

Tempo: tratado como um domínio discreto. Tempo: tratado como um domínio discreto. Duas funções são definidas:Duas funções são definidas:Função-π: mais recente instante em que duas regiões

combinaramFunção-σ: mais recente instante em que duas regiões

deixaram de combinarNow: instante atual

Page 19: © 2004 – Ricardo Couto Antunes da Rocha1 Ricardo Couto Antunes da Rocha rcarocha@inf.puc-rio.br Middleware para Serviços Baseados em Localização.

© 2004 – Ricardo Couto Antunes da Rocha 19

Publish/SubscribePublish/SubscribeSubject SpacesSubject Spaces Espaço é multidimensional portanto a Espaço é multidimensional portanto a

verificação do casamento entre verificação do casamento entre publications e subscriptions é mais publications e subscriptions é mais complexa complexa implementação pode ser implementação pode ser menos eficiente.menos eficiente.

Algumas técnicas para passar espaço Algumas técnicas para passar espaço multidimensional para unidimensional multidimensional para unidimensional podem ser aplicadas.podem ser aplicadas.

Vantagens do modeloVantagens do modeloEvita notificações redundantesEvita notificações redundantesModelo publish/subscribe é simétricoModelo publish/subscribe é simétricoUsa operações de atualização, ao invés de Usa operações de atualização, ao invés de

remoção e inclusãoremoção e inclusão

Page 20: © 2004 – Ricardo Couto Antunes da Rocha1 Ricardo Couto Antunes da Rocha rcarocha@inf.puc-rio.br Middleware para Serviços Baseados em Localização.

© 2004 – Ricardo Couto Antunes da Rocha 20

Modelo baseado em tuplasModelo baseado em tuplas

Modelo proposto para coordenação de Modelo proposto para coordenação de atividades entre processos concorrentes. atividades entre processos concorrentes. Originado em Linda.Originado em Linda.

Implementações para computação móvel: Implementações para computação móvel: LimeLime e e L2imboL2imbo

Permite comunicação desacoplada e anônimaPermite comunicação desacoplada e anônima Dois elementos se comunicam lendo e Dois elementos se comunicam lendo e

escrevendo em um escrevendo em um espaço de tuplasespaço de tuplas::Coleção global e persistente de tuplasColeção global e persistente de tuplasUma tupla pode ser um dado tipado, contendo um Uma tupla pode ser um dado tipado, contendo um

conjunto de valores, ou especificar um tipo de dadoconjunto de valores, ou especificar um tipo de dado

Page 21: © 2004 – Ricardo Couto Antunes da Rocha1 Ricardo Couto Antunes da Rocha rcarocha@inf.puc-rio.br Middleware para Serviços Baseados em Localização.

© 2004 – Ricardo Couto Antunes da Rocha 21

Modelo baseado em tuplasModelo baseado em tuplas

Um elemento pode realizar três operações básicas:Um elemento pode realizar três operações básicas:Out(t):Out(t): insere a tupla insere a tupla tt no espaço de tuplas no espaço de tuplas In(p):In(p): extrai uma tupla do espaço de tuplas que combina com o extrai uma tupla do espaço de tuplas que combina com o

padrão de tupla padrão de tupla pp..Rd(p):Rd(p): similar a In(p), exceto que não remove a tupla do similar a In(p), exceto que não remove a tupla do

espaço de tuplasespaço de tuplas

Outras operações são providas por diferentes Outras operações são providas por diferentes implementações de middlewares de tuplas.implementações de middlewares de tuplas.

Em LBS:Em LBS:Publicador registra a informação na forma de uma tuplaPublicador registra a informação na forma de uma tuplaConsumidor recupera a informação lendo no espaço de tuplasConsumidor recupera a informação lendo no espaço de tuplas

Modelo utiliza uma interação do tipo Modelo utiliza uma interação do tipo pullpull e não e não permite disseminação de informação adequadamente.permite disseminação de informação adequadamente.

Page 22: © 2004 – Ricardo Couto Antunes da Rocha1 Ricardo Couto Antunes da Rocha rcarocha@inf.puc-rio.br Middleware para Serviços Baseados em Localização.

© 2004 – Ricardo Couto Antunes da Rocha 22

Modelo baseado em DBMSModelo baseado em DBMS

Compreende o uso do modelo de interação Compreende o uso do modelo de interação de banco de dados para implementar de banco de dados para implementar comunicação e coordenação entre comunicação e coordenação entre elementos.elementos.

Permite o modelo de interação Permite o modelo de interação pullpull Permite operações relacionais flexíveis Permite operações relacionais flexíveis

para recuperação de informaçãopara recuperação de informação Modelo disseminado na indústria e Modelo disseminado na indústria e

implementado por boa parte dos GISimplementado por boa parte dos GIS

Page 23: © 2004 – Ricardo Couto Antunes da Rocha1 Ricardo Couto Antunes da Rocha rcarocha@inf.puc-rio.br Middleware para Serviços Baseados em Localização.

© 2004 – Ricardo Couto Antunes da Rocha 23

ConclusõesConclusões

Middleware é uma abordagem adequada para Middleware é uma abordagem adequada para superar problemas de interoperabilidade e superar problemas de interoperabilidade e heterogeneidade típicos do ambiente móvel.heterogeneidade típicos do ambiente móvel.

Por outro lado, o número crescente de propostas Por outro lado, o número crescente de propostas de middlewares pode criar novos problemas de de middlewares pode criar novos problemas de interoperabilidade e inibir sua adoção.interoperabilidade e inibir sua adoção.

Esta apresentação discutiu requisitos que Esta apresentação discutiu requisitos que middlewares (implementações e modelos) devem middlewares (implementações e modelos) devem ser capazes de atender para permitir a ser capazes de atender para permitir a implementação de cenários de LBS.implementação de cenários de LBS.

Entretanto, isso não pressupõe o desenvolvimento Entretanto, isso não pressupõe o desenvolvimento de novos middlewares mas a adequação dos de novos middlewares mas a adequação dos modelos atuais aos requisitos de LBS.modelos atuais aos requisitos de LBS.