Presentación de Otsopack en Tecnalia

Preview:

DESCRIPTION

Presentación de Otsopack hecha para Tecnalia.

Citation preview

Otsopack

Aitor Gomez-Goiri

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

20 de Octubre de 2011

Presentacion

1 Introduccion

2 Otsopack

3 Practica

4 Bibliografıa

Indice

1 IntroduccionTuplespaces

Patrones de uso¿Como funciona?Ventajas

Web SemanticaTriple Space Computing

Primitivas TSCVentajas

2 Otsopack

3 Practica

4 Bibliografıa

Tuplespaces en pocas palabras

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

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.

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.

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. . . ).

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.

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.

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]

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.

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]

La web semantica en breve II

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.

Write

En Java...

Query

En Java...

Read

En Java...

Take

En Java...

Subscripcion

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

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].

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

¿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].

¿Como se distribuye la informacion?

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.

¿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+].

Arquitectura

Organizacion por proyectos de Otsopack

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

otsoCommonsotsoMEotsoFullJavaCommons

otsoDroidotsoSE

Relacionados con la seguridad...otsoAuthenticationotsoIdentityProviderotsoSecurityIntegrationTest

otsoRestletCommons

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/

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.

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

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

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

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.

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

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 ) ;

Inicializar el nodo

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

Para comprobar que todo ha ido bien...

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

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 ( ) ;

Union a un espacio

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

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]/

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

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 .

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);

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

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

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

Query

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

Esquema

Abandonar un espacio

kerne l . leaveSpace ( spaceur i ) ;

Finalizar un nodo

Abandona todos los espacios a los que este unidoautomaticamente.

ke rne l . shutdown ( ) ;

Indice

1 Introduccion

2 Otsopack

3 Practica

4 Bibliografıa

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.

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.

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.

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.

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.

Bibliografıa VI

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

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).