mobilis compartilhamento de dados e comunicação baseada em eventos

11
Laboratory for Advanced Collaboration L A C Mobilis Compartilhamento de Dados e Comunicação baseada em Eventos Laboratory for Advanced Collaboration (LAC) PUC-Rio, Brazil Rio de Janeiro 25 de Setembro de 2008 Juliana Aquino Markus Endler

Upload: sera

Post on 11-Jan-2016

25 views

Category:

Documents


0 download

DESCRIPTION

Mobilis Compartilhamento de Dados e Comunicação baseada em Eventos. Juliana Aquino Markus Endler. Laboratory for Advanced Collaboration (LAC) PUC-Rio , Brazil Rio de Janeiro 25 de Setembro de 2008. Roteiro. Visão geral do SDM ( Shared Data Manager ) Registro de Publicadores - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Mobilis Compartilhamento de Dados e Comunicação baseada em Eventos

Laboratory for Advanced Collaboration

L A

C

MobilisCompartilhamento de Dados e

Comunicação baseada em Eventos

MobilisCompartilhamento de Dados e

Comunicação baseada em Eventos

Laboratory for Advanced Collaboration (LAC)PUC-Rio, Brazil

Rio de Janeiro25 de Setembro de 2008

Juliana AquinoMarkus EndlerJuliana AquinoMarkus Endler

Page 2: Mobilis Compartilhamento de Dados e Comunicação baseada em Eventos

22

Roteiro

Visão geral do SDM (Shared Data Manager) Registro de Publicadores Publicando Dados Casamento de Eventos e Subinscrições Registrando Interesses

Page 3: Mobilis Compartilhamento de Dados e Comunicação baseada em Eventos

44

Visão Geral

Shared Data Manager (SDM) é um serviço core usado por todos os Serviços Mobilis

SDM implementa uma interface do tipo Pub-Sub

Usa o proxy NaradaBrokering

SDMShared Data Manager

Publisher(1..n)

Subscriber(1..n)

2. publish data (event)

1. subscribe about interested data (event)

3. receives data (event)

Page 4: Mobilis Compartilhamento de Dados e Comunicação baseada em Eventos

55

Shared Data Manager

NaradaBrokeringNetwork

Services

Per

sist

ence

SQLite SDM

Shared Data Manager

Core Services

Mobilis Services Se

rvice M

ana

ger

FunFlag ServiceMap Service

Location ServiceGroup Service

Mobilis Application

CMS

ProxyNaradaBrokering

Per

sist

ence

SQLite SDM

Shared Data Manager

Core Services

Se

rvice M

ana

ger

Mobilis Application

CMS

ProxyNaradaBrokering

Mobilis Services

FunFlag ServiceMap Service

Location ServiceGroup Service

Page 5: Mobilis Compartilhamento de Dados e Comunicação baseada em Eventos

77

Registro de Publicadores

Todo serviço que for atuar como um Publisher deve implementar a interface IPublisher

Devem implementar o método getMetaDataList(), que retorna uma lista de objetos MetaData

Essa lista de objetos é usada para que o SDM possa persistir os objetos publicados

Page 6: Mobilis Compartilhamento de Dados e Comunicação baseada em Eventos

88

Registro de Publicadores

public List<MetaData> getMetaDataList() { List<String> metaDataList = new Vector<String>();

String metaDataName = FlagObject.getCompleteName(); MetaData metaData = new MetaData(metaDataName); // Adds the meta data field (name, type and if the field is key). metaData.addMetaDataField("latitude", double.class, false); metaData.addMetaDataField("longitude", double.class, false); metaData.addMetaDataField("description", String.class, false); metaData.addMetaDataField("url", String.class, false); metaData.addMetaDataField("category", String.class, false); metaData.addMetaDataField("owner", String.class, false);

metaDataList.add(metaData); // Returns the meta data list. return metaDataList; }

Page 7: Mobilis Compartilhamento de Dados e Comunicação baseada em Eventos

99

Publicando Dados

Evento Um evento é algum acontecimento

Composto de um subject, um conjunto de propriedades e um objeto de dados

Subject É o assunto de um evento

Todo evento deve ter exatamente um subject

Exemplo: FlagService/Flag

Page 8: Mobilis Compartilhamento de Dados e Comunicação baseada em Eventos

1010

Publicando Dados

Propriedades do evento As propriedades do evento devem ser definidas,

configurando os atributos de um objeto EventProperty

eventProperties.setAttribute("latitude", 1023.45); eventProperties.setAttribute("longitude", 1024.89);eventProperties.setAttribute("owner", "João do Pulo");eventProperties.setAttribute("categoria", “show”);

... Publicando ...sdm.publish(subject, eventProperties, data);

Page 9: Mobilis Compartilhamento de Dados e Comunicação baseada em Eventos

1111

Casamento de Eventos e Subinscrições Casamento é baseado no paradigma

Publish/Subscribe Subject, expressão

Subject: Nome do objeto da publicação/subinscrição Nome completo do objeto (Nome do serviço +

nome do objeto) FlagService/Flag (nome do objeto da Flag)

Expressão: String baseada na sintaxe condicional do SQL92 Exemplo:

ownerId = “viterbo” and category = “restaurant”

Page 10: Mobilis Compartilhamento de Dados e Comunicação baseada em Eventos

1212

Registrando Interesse

Subscribers (Serviços assinantes) incluem uma subinscrição a um tópico Topic topic = sdm.subscribe(subject, expression);

Onde: subject: FlagService/FlagObject expression: owner = “viterbo” and category = “restaurant”

Para ser notificado, um assinante deve criar um listener: FlagEventListener listener = new FlagEventListener(); sdm.addListener(listener, topic);

Para desfazer uma subinscrição: sdm.unsubscribe(topic);

Page 11: Mobilis Compartilhamento de Dados e Comunicação baseada em Eventos

1313

Referências

Examinando o banco de dados do SDM http://code.google.com/android/reference/adb.html#sqlite