62
Otsopack Aitor G ´ omez-Goiri DeustoTech - Deusto Institute of Technology, University of Deusto http://www.morelab.deusto.es 20 de Octubre de 2011

Presentación de Otsopack en Tecnalia

Embed Size (px)

DESCRIPTION

Presentación de Otsopack hecha para Tecnalia.

Citation preview

Page 1: Presentación de Otsopack en Tecnalia

Otsopack

Aitor Gomez-Goiri

DeustoTech - Deusto Institute of Technology, University of Deustohttp://www.morelab.deusto.es

20 de Octubre de 2011

Page 2: Presentación de Otsopack en Tecnalia

Presentacion

1 Introduccion

2 Otsopack

3 Practica

4 Bibliografıa

Page 3: Presentación de Otsopack en Tecnalia

Indice

1 IntroduccionTuplespaces

Patrones de uso¿Como funciona?Ventajas

Web SemanticaTriple Space Computing

Primitivas TSCVentajas

2 Otsopack

3 Practica

4 Bibliografıa

Page 4: Presentación de Otsopack en Tecnalia

Tuplespaces en pocas palabras

Paradigma de coordinacion, donde distintos procesos leeny escriben informacion en un espacio comun [Gel85].

Page 5: Presentación de Otsopack en Tecnalia

Patron de trabajador replicado I

Por lo general: 1 amo y varios trabajadores.

El amo o patron genera tareas y recoge resultados,mientras los trabajadores cogen tareas y computanresultados de forma repetida.

Para construir aplicaciones paralelas que puedan agilizarlas soluciones a problemas que requieren un uso intensivodel ordenador.

Balancea la carga de forma natural: los trabajadores queaceptan nuevos trabajos en base a su tamano y sudisponibilidad.

Page 6: Presentación de Otsopack en Tecnalia

Patron de trabajador replicado II¿Como funciona? [FHA99]

1 El amo coge un problema y lo divide en tareas pequenasque escribe en el espacio.

2 Los trabajadores cogen las tareas del espacio, lasprocesan y escriben los resultados de vuelta en el.

3 El maestro recoge los resultados y los combina en unasolucion general.

4 Cada trabajador puede procesar multiples tareas una trasotra.

Page 7: Presentación de Otsopack en Tecnalia

Patron de mercado I

Propone un lugar donde los productores y consumidoresde un recurso interactuan para encontrar el mejor trato.

Un recurso puede ser cualquier producto o servicio quepueda comprarse o venderse (ciclos de computacion,energıa electrica, coches. . . ).

Page 8: Presentación de Otsopack en Tecnalia

Patron del especialista I

Es lo contrario al patron de trabajadores replicados dondetodos los trabajadores hacıan lo mismo.Cada trabajador esta especializado en la realizacion deuna tarea concreta.Para ello, se debe dividir un problema grande en piezas ocomponentes de bajo, medio y alto nivel.De esta forma los datos fluyen del bajo nivel al alto nivelpasando por el nivel medio.

Page 9: Presentación de Otsopack en Tecnalia

Patrones colaborativos I

Es util cuando implica a multiples usuarios o procesos (porejemplo, una aplicacion de chat multiusuario).

Un tipo de subpatron es el “flujo de trabajo”, donde unproceso completa una tarea y la copia para el resto detrabajos.

Page 10: Presentación de Otsopack en Tecnalia

Algunos trabajos...

Tuplespaces en entornos moviles.L2imbo [FDS+99]LIME (Linda in a Mobile Environment) [MPR06]

Tuplespaces para dispositivos embebidos.TinyLime [CGG+05]TeenyLime [MP06]

Page 11: Presentación de Otsopack en Tecnalia
Page 12: Presentación de Otsopack en Tecnalia

Ventajas

Autonomıa espacial o de ubicacion. Los procesos sepueden ejecutar en entornos computacionalescompletamente diferentes mientras ambos puedanacceder al mismo tuplespace[Fen04].Autonomıa de referencia. Los nodos no necesitanconocerse los unos a los otros.Autonomıa temporal. Dado que los nodos se comunicande forma asıncrona.

Un proceso puede proveer una pieza de informacion sinpreocuparse por que alguien la necesite o use.Un proceso puede preguntar por informacion que no seencuentre en el espacio aun.

Page 13: Presentación de Otsopack en Tecnalia

La web semantica en breve I

The vision of the Semantic Web is to extend principlesof the Web from documents to data. Data should beaccessed using the general Web architecture using,e.g., URI-s; data should be related to one anotherjust as documents (or portions of documents) arealready. This also means creation of a commonframework that allows data to be shared and reusedacross application, enterprise, and communityboundaries, to be processed automatically by toolsas well as manually, including revealing possible newrelationships among pieces of data. [Con11]

Page 14: Presentación de Otsopack en Tecnalia

La web semantica en breve II

Page 15: Presentación de Otsopack en Tecnalia

TSC en pocas palabras

Tripletas RDF “en vez de” tuplas.Agrupadas en grafos RDF. De otra forma, la informacionque una unica tripleta contiene podrıa no ser muy util porsi misma.Primitivas: write, read, take and query.

Page 16: Presentación de Otsopack en Tecnalia

Write

En Java...

Page 17: Presentación de Otsopack en Tecnalia

Query

En Java...

Page 18: Presentación de Otsopack en Tecnalia

Read

En Java...

Page 19: Presentación de Otsopack en Tecnalia

Take

En Java...

Page 20: Presentación de Otsopack en Tecnalia

Subscripcion

Frecuentemente se suelen ofrecer primitivas desuscripcion.(es un aspecto en el que en Otsopack todavıa nosencontramos trabajando)

Page 21: Presentación de Otsopack en Tecnalia

Ventajas

Ventajas de tuplespace + ventajas de la web semanticaAutonomıa del esquema de datos. Al seguir laespecificacion RDF expresa la informacion de maneraindependiente al esquema interno de cada nodo [Fen04].

“puede inferir informacion no explıcitamente definida”[FNTdV08].“permite mediar entre esquemas de datos heterogeneosusados por los distintos actores” [FNTdV08].

Page 22: Presentación de Otsopack en Tecnalia
Page 23: Presentación de Otsopack en Tecnalia

Indice

1 Introduccion

2 Otsopack¿Que es Otsopack?Estrategia de distribucion de la informacionDetalles de la implementacionUltimos trabajos realizados con TSC

3 Practica

4 Bibliografıa

Page 24: Presentación de Otsopack en Tecnalia
Page 25: Presentación de Otsopack en Tecnalia

¿Que es Otsopack?

Middleware que implementa el paradigma TSCCompletamente distribuidoDesestructuradoAdaptado a las necesidades de IoT

Aunque a veces la hemos usado con otros propositos[GCO+11, LCO+11].

Page 26: Presentación de Otsopack en Tecnalia

¿Como se distribuye la informacion?

Page 27: Presentación de Otsopack en Tecnalia

Sobre la descentralizacion

VentajasEl usuario puede llevar su informacion de perfil de un lugara otro.Los datos provistos por los sensores se actualizanconstantemente, por lo que interrogandoles directamenteaccederemos a los ultimos valores.

DificultadesLa web semantica anade sobrecarga

Hoy en dıa hay dispositivos con recursos computacionalesimpresionantes (p.e. HTC Desire 576 MB RAM and 1GHzCPU).En otros dispositivos siempre se podra limitar cuanto se usa.

Seguridad. Hay distintos enfoques para controlar el accesoa las tripletas [DHMC11], el nuestro se encuentra en unaetapa prematura.

Page 28: Presentación de Otsopack en Tecnalia

¿En que consiste Otsopack?

API TSC en HTTPHTTP request URL Returns

GET http://nodeuri/{sp}/query/wildcards/{s}/{p}/{o-uri} query({sp},"{s} {p} {o} ."): triples

http://nodeuri/{sp}/query/wildcards/{s}/{p}/{o-type}/{o-value}GET http://nodeuri/{sp}/graphs/{g} read({s},{g}): triples

GET http://nodeuri/{sp}/graphs/wildcards/{s}/{p}/{o-uri} read({sp},"{s} {p} {o} ."): triples

http://nodeuri/{sp}/graphs/wildcards/{s}/{p}/{o-type}/{o-value}DELETE http://nodeuri/{sp}/graphs/{g} take({sp},{g}): triples

DELETE http://nodeuri/{sp}/graphs/wildcards/{s}/{p}/{o-uri} take({sp},"{s} {p} {o} ."): triples

http://nodeuri/{sp}/graphs/wildcards/{s}/{p}/{o-type}/{o-value}

Cualquier dispositivo capaz ejercer de servidor HTTPpuede implementarlo.Ofrecemos implementaciones para Android y Java SE.Lo hemos portado parcialmente a Python demostrando losencilla que puede ser su adopcion [GnA+].

Page 29: Presentación de Otsopack en Tecnalia

Arquitectura

Page 30: Presentación de Otsopack en Tecnalia

Organizacion por proyectos de Otsopack

http://code.google.com/p/otsopack/source/browse/

otsoCommonsotsoMEotsoFullJavaCommons

otsoDroidotsoSE

Relacionados con la seguridad...otsoAuthenticationotsoIdentityProviderotsoSecurityIntegrationTest

otsoRestletCommons

Page 31: Presentación de Otsopack en Tecnalia

TSC y WoT

On the complementarity of triple spaces and the Web ofThings [GL11].

Este trabajo analiza y compara la Web of Things (WoT) yTriple Spaces (TS) que son ambas arquitecturas orientadasa recursos y enfatiza las situaciones en las que pueden sermas utiles.¿Que es WoT?

We explore how to leverage Web standards tointerconnect all types of embedded devices(sensors, mobile phones, etc), in order to makethem easier to use and to integrate in classicWeb applications.[TG11]

Fue el pistoletazo de salida para nuestro proyectoopen-source Otsopack1.

1http://code.google.com/p/otsopack/

Page 32: Presentación de Otsopack en Tecnalia

Otsopack y sensores y actuadores

Collaboration of Sensors and Actuators Through TripleSpaces [GnA+] (pendiente de publicacion).

Evaluamos la adecuacion de nuestro API TSC basada enREST a dispositivos embebidos.

Page 33: Presentación de Otsopack en Tecnalia
Page 34: Presentación de Otsopack en Tecnalia

Indice1 Introduccion

2 Otsopack

3 PracticaInstalacionDecisiones de diseno: Space Managers y descubrimientoCreando un nodo de TSCInicializar el nodoUnion a un espacioPrimitivas basicas

Clases basicas en OtsopackWriteReadTakeQuery

Abandonar un espacioFinalizar un nodo

4 Bibliografıa

Page 35: Presentación de Otsopack en Tecnalia
Page 36: Presentación de Otsopack en Tecnalia

Instalacion I

Requisitos: mercurial, JDK, ant y SDK de Android2.

Nos descargamos Otsopack :

hg clone https://code.google.com/p/otsopack/

Bajo la raız hay distintos proyectos.

Podemos compilarlos todos generando sus respectivos.jars con el fichero ant build.xml de la raız:

cd otsopack

ant

Page 37: Presentación de Otsopack en Tecnalia

Instalacion II

En este caso, dado que queremos crear un proyecto JavaSE, usaremos la version llamada OtsoSE.

La podremos encontrar en el directorio dist dentro de dichosubproyecto.Las librerıas acabadas en ”-all” contienen todas lasdependencias necesarias.

otsoSE/dist/otsoSE-all.jar

Por lo tanto, lo unico que deberemos incluir en nuestroclasspath es dicha librerıa.

2En caso de querer hacer una aplicacion para Android

Page 38: Presentación de Otsopack en Tecnalia

Space Managers

El Space Manager (SM) es un modulo que mantiene unalista de nodos activos en un espacio concreto.Cada nodo consultara a un SM que sera el que le facilitelos nodos a los que debe consultar.Cada espacio puede tener uno o varios SMs.

En el caso mas sencillo tendremos uno solo: - trafico de redEn el mas complejo cada nodo tendra su propio SM: +flexibilidad

Cada nodo puede usar uno o mas SMs para descubrir alresto de nodos del espacio.En este ejemplo, cada nodo tendra su propio SM que serael unico que consulte.

Page 39: Presentación de Otsopack en Tecnalia

Estrategia de descubrimiento

Cada nodo podra descubrir al resto de nodos a traves deun SM¿Y para descubrir un SM o SMs?

Necesitara a su vez una estrategia de descubrimientoconcreta

A dıa de hoy solo esta implementada la estrategia masbasica

Especificar en tiempo de despliegue los SM

Page 40: Presentación de Otsopack en Tecnalia

Creando un nodo de TSC

f i n a l S t r i n g spaceur i = ” h t t p : / / espacio . com/ ejemplo ” ;

f i n a l ISpaceManager spaceMngr =new SimpleSpaceManager ( Desc r i p t i on . node1 ,

Desc r i p t i on . node2 ,Desc r i p t i on . node3 ) ;

f i n a l I R e g i s t r y r e g i s t r y =new SimpleRegis t ry ( spaceur i ,

new SimpleDiscovery ( spaceMngr ) ,10 ∗ 60 ∗ 1000 ,Desc r i p t i on . node1 . getUuid ( ) ) ;

f i n a l IT r ip leSpace kerne l =new HttpKerne l (28080 , null , r e g i s t r y ) ;

Page 41: Presentación de Otsopack en Tecnalia

Inicializar el nodo

kerne l . s t a r t u p ( ) ;

Page 42: Presentación de Otsopack en Tecnalia

Para comprobar que todo ha ido bien...

http://[IP]:[puerto]/spaces/

Page 43: Presentación de Otsopack en Tecnalia

Metodos de utilidad

Para configurar parametros de funcionamiento por defecto.Formato semantico. En la version actual solo se soportael formato N-Triples, por lo que estara escogido pordefecto.public void setDefaul tSemant icFormat ( SemanticFormat format ) ;public SemanticFormat getDefaul tSemant icFormat ( ) ;

Timeout. Frecuentemente puede resultar preferible noesperar las respuestas de todos ellos.public void setDefau l tT imeout ( i n t t imeout ) ;public i n t getDefau l tT imeout ( ) ;

Page 44: Presentación de Otsopack en Tecnalia

Union a un espacio

kerne l . createSpace ( spaceur i ) ;ke rne l . jo inSpace ( spaceur i ) ;

Page 45: Presentación de Otsopack en Tecnalia

Para comprobar que todo ha ido bien...

Se vera informacion esquematica de los servicios RESTque contiene.

En caso contrario se obtendra un error 404.

http://meyerweb.com/eric/tools/dencoder/

http://[IP]:[puerto]/spaces/[espacio codificado en HTML]/

Page 46: Presentación de Otsopack en Tecnalia

Clase Graph

Un grafo esta formado por un conjunto de tripletas RDF.Esas tripletas RDF se pueden expresar en distintosformatos

Por ejemplo N-Triples, RDF/XML o TurtleOtsopack abstrae al usuario de las particularidades delformato en el que esten escritas.

Siempre que el Kernel del TripleSpace tenga un conversoradecuado para dicho formato.(a dıa de hoy solo existe un conversor para el formatoN-Triples)

public Graph ( S t r i n g data , SemanticFormat format ) ;/ / e . g . SemanticFormat . NTRIPLES

Page 47: Presentación de Otsopack en Tecnalia

Clase Template

La clase Template permite representar las consultas quese pueden realizar sobre el espacio.A dıa de hoy, solo existe una implementacion llamadaWildcardTemplate que permite definir una tripleta conposibles comodines en el sujeto, predicado u objeto de lasmismas.

Por ejemplo N-Triples, RDF/XML o TurtleEjemplos WildcardTemplate:?s ?p ?o .

<http://sujeto> ?p ?o .

<http://sujeto> <http://predicado> ?o .

<http://sujeto> <http://predicado> <http://objeto> .

?s <http://predicado> <http://objeto> .

?s ?p <http://objeto> .

?s <http://predicado> ?o .

Page 48: Presentación de Otsopack en Tecnalia

Uso de WildcardTemplate

WildcardTemplate c rea teWi thNu l l ( S t r i n g sub jec t , S t r i n g p red ica te ) ;WildcardTemplate createWithURI ( S t r i n g sub jec t , S t r i n g pred ica te , S t r i n g ob jec t ) ;WildcardTemplate c r e a t e W i t h L i t e r a l ( S t r i n g subject , S t r i n g pred ica te , Object ob jec t ) ;

Ejemplos:

Ejemplo de template Metodo factorıa?s ?p ?o . WildcardTemplate.createWithNull(null,null)¡http://subj¿ ¡http://pred¿ ?o . WildcardTemplate.createWithNull(”http://subj”,”http://pred”);¡http://subj¿ ?p ¡http://obj¿ . WildcardTemplate.createWithURI(”http://subj”,null,”http://obj”);¡http://subj¿ ?p ”1”—http://www.w3.org/2001/XMLSchema#int¿ . WildcardTemplate.createWithLiteral(”http://subj”,null,1);

Page 49: Presentación de Otsopack en Tecnalia

Write

public S t r i n g w r i t e ( S t r i n g spaceURI , Graph I T r i p l e s )throws TSException ;

Esquema

Page 50: Presentación de Otsopack en Tecnalia

Read

public Graph read( S t r i n g spaceURI , S t r i n g graphURI , long t imeout )throws TSException ;

public Graph read( S t r i n g spaceURI , Template template , long t imeout )throws TSException ;

Esquema

Page 51: Presentación de Otsopack en Tecnalia

Take

public Graph take( S t r i n g spaceURI , S t r i n g graphURI , long t imeout )throws TSException ;

public Graph take( S t r i n g spaceURI , Template template , long t imeout )throws TSException ;

Esquema

Page 52: Presentación de Otsopack en Tecnalia

Query

public Graph query ( S t r i n g spaceURI , Template template )throws TSException ;

Esquema

Page 53: Presentación de Otsopack en Tecnalia

Abandonar un espacio

kerne l . leaveSpace ( spaceur i ) ;

Page 54: Presentación de Otsopack en Tecnalia

Finalizar un nodo

Abandona todos los espacios a los que este unidoautomaticamente.

ke rne l . shutdown ( ) ;

Page 55: Presentación de Otsopack en Tecnalia

Indice

1 Introduccion

2 Otsopack

3 Practica

4 Bibliografıa

Page 56: Presentación de Otsopack en Tecnalia

Bibliografıa I

C. Curino, M. Giani, M. Giorgetta, A. Giusti, A. L Murphy,and G. P Picco.Mobile data collection in sensor networks: The TinyLimemiddleware.Pervasive and Mobile Computing, 1(4):446–469, 2005.

World Wide Web Consortium.W3c semantic web faq, August 2011.

Alfredo D’Elia, Jukka Honkola, Daniele Manzaroli, andTullio Salmon Cinotti.Access control at triple level: Specification andenforcement of a simple RDF model to support concurrentapplications in smart environments.In Sergey Balandin, Yevgeni Koucheryavy, and Honglin Hu,editors, Smart Spaces and Next Generation Wired/WirelessNetworking, volume 6869, pages 63–74. Springer BerlinHeidelberg, Berlin, Heidelberg, 2011.

Page 57: Presentación de Otsopack en Tecnalia

Bibliografıa II

A. Friday, N. Davies, J. Seitz, M. Storey, and S. P Wade.Experiences of using generative communications tosupport adaptive mobile applications.Distributed and Parallel Databases, 7(3):319–342, 1999.

Dieter Fensel.Triple-Space computing: Semantic web services based onpersistent publication of information.In Finn Arve Aagesen, Chutiporn Anutariya, and VilasWuwongse, editors, Intelligence in CommunicationSystems, volume 3283 of Lecture Notes in ComputerScience, pages 43–53. Springer Berlin / Heidelberg, 2004.10.1007/978-3-540-30179-0 4.

E. Freeman, S. Hupfer, and K. Arnold.JavaSpaces principles, patterns, and practice.Addison-Wesley Professional, 1999.

Page 58: Presentación de Otsopack en Tecnalia

Bibliografıa III

David Francisco, Lyndon JB Nixon, and German Toro delValle.Towards a multimedia content marketplace implementationbased on triplespaces.In Amit Sheth, Steffen Staab, Mike Dean, MassimoPaolucci, Diana Maynard, Timothy Finin, andKrishnaprasad Thirunarayan, editors, The Semantic Web -ISWC 2008, volume 5318, pages 875–888. Springer BerlinHeidelberg, Berlin, Heidelberg, 2008.

A. Gomez-Goiri, E. Castillejo, P. Orduna, X. Laiseca,D. Lopez-de-Ipina, and S. Fınez.Easing the mobility of disabled people in supermarketsusing a distributed solution.Ambient Assisted Living, pages 41–48, 2011.

Page 59: Presentación de Otsopack en Tecnalia

Bibliografıa IV

D. Gelernter.Generative communication in linda.ACM Transactions on Programming Languages andSystems (TOPLAS), 7(1):80–112, 1985.

Aitor Gomez-Goiri and Diego Lopez-de-Ipina.On the complementarity of triple spaces and the web ofthings.In Proceedings of the Second International Workshop onWeb of Things, WoT ’11, pages 12:1–12:6, New York, NY,USA, 2011. ACM.

Aitor Gomez-Goiri, Pablo Ordu na, David Ausın, MikelEmaldi, and Diego Lopez-de-Ipina.Collaboration of sensors and actuators through triplespaces.

Page 60: Presentación de Otsopack en Tecnalia

Bibliografıa V

X. Laiseca, E. Castillejo, P. Orduna, A. Gomez-Goiri,D. Lopez-de-Ipina, and E. Gonzalez Aguado.Distributed tracking system for patients with cognitiveimpairments.Ambient Assisted Living, pages 49–56, 2011.

A.L. Murphy and G.P. Picco.Transiently shared tuple spaces for sensor networks.In Proc. of the Euro-American Workshop on Middleware forSensor Networks, 2006.

A. L Murphy, G. P Picco, and G. C Roman.LIME: a coordination model and middleware supportingmobility of hosts and agents.ACM Transactions on Software Engineering andMethodology (TOSEM), 15(3):279–328, 2006.

Page 61: Presentación de Otsopack en Tecnalia

Bibliografıa VI

Vlad Trifa and Dominique Guinard.Web of things, August 2011.

Page 62: Presentación de Otsopack en Tecnalia

Licencia

Todas las imagenes son propiedad de susrespectivos duenos*, el resto del contenido

esta licenciado bajo Creative Commons by-sa 3.0.

* Oberazzi (flickr), Cesar Astudillo (flickr), Stefan Paunovic (flickr), Francesco ’Architetto’ Rollandin (openclipart) yryanlerch (openclipart).