Presentación de Otsopack en Tecnalia

732 views
600 views

Published on

Presentación de Otsopack hecha para Tecnalia.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
732
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Presentación de Otsopack en Tecnalia

  1. 1. Otsopack ´ Aitor Gomez-GoiriDeustoTech - Deusto Institute of Technology, University of Deusto http://www.morelab.deusto.es 20 de Octubre de 2011
  2. 2. ´Presentacion 1 ´ Introduccion 2 Otsopack 3 ´ Practica 4 Bibliograf´a ı
  3. 3. ´ndiceI 1 ´ Introduccion Tuplespaces Patrones de uso ´ ¿Como funciona? Ventajas ´ Web Semantica Triple Space Computing Primitivas TSC Ventajas 2 Otsopack 3 ´ Practica 4 Bibliograf´a ı
  4. 4. Tuplespaces en pocas palabras ´ Paradigma de coordinacion, donde distintos procesos leen ´ en un espacio comun [Gel85]. y escriben informacion ´
  5. 5. ´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 computan resultados de forma repetida. Para construir aplicaciones paralelas que puedan agilizar las soluciones a problemas que requieren un uso intensivo del ordenador. Balancea la carga de forma natural: los trabajadores que ˜ aceptan nuevos trabajos en base a su tamano y su disponibilidad.
  6. 6. ´Patron de trabajador replicado II ´ ¿Como funciona? [FHA99] 1 ˜ El amo coge un problema y lo divide en tareas pequenas que escribe en el espacio. 2 Los trabajadores cogen las tareas del espacio, las procesan y escriben los resultados de vuelta en el. 3 El maestro recoge los resultados y los combina en una ´ solucion general. 4 Cada trabajador puede procesar multiples tareas una tras ´ otra.
  7. 7. ´Patron de mercado I Propone un lugar donde los productores y consumidores de un recurso interactuan para encontrar el mejor trato. ´ Un recurso puede ser cualquier producto o servicio que pueda comprarse o venderse (ciclos de computacion,´ ´ energ´a electrica, coches. . . ). ı
  8. 8. ´Patron del especialista I ´ Es lo contrario al patron de trabajadores replicados donde todos los trabajadores hac´an lo mismo. ı ´ ´ Cada trabajador esta especializado en la realizacion de una tarea concreta. Para ello, se debe dividir un problema grande en piezas o componentes de bajo, medio y alto nivel. De esta forma los datos fluyen del bajo nivel al alto nivel pasando por el nivel medio.
  9. 9. Patrones colaborativos I Es util cuando implica a multiples usuarios o procesos (por ´ ´ ´ ejemplo, una aplicacion de chat multiusuario). ´ Un tipo de subpatron es el “flujo de trabajo”, donde un proceso completa una tarea y la copia para el resto de trabajos.
  10. 10. 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]
  11. 11. Ventajas ´ Autonom´a espacial o de ubicacion. Los procesos se ı pueden ejecutar en entornos computacionales completamente diferentes mientras ambos puedan acceder al mismo tuplespace[Fen04]. Autonom´a de referencia. Los nodos no necesitan ı conocerse los unos a los otros. Autonom´a temporal. Dado que los nodos se comunican ı de forma as´ncrona. ı ´ Un proceso puede proveer una pieza de informacion sin preocuparse por que alguien la necesite o use. ´ Un proceso puede preguntar por informacion que no se encuentre en el espacio aun. ´
  12. 12. ´La web semantica en breve I The vision of the Semantic Web is to extend principles of the Web from documents to data. Data should be accessed using the general Web architecture using, e.g., URI-s; data should be related to one another just as documents (or portions of documents) are already. This also means creation of a common framework that allows data to be shared and reused across application, enterprise, and community boundaries, to be processed automatically by tools as well as manually, including revealing possible new relationships among pieces of data. [Con11]
  13. 13. ´La web semantica en breve II
  14. 14. TSC en pocas palabras Tripletas RDF “en vez de” tuplas. Agrupadas en grafos RDF. De otra forma, la informacion ´ que una unica tripleta contiene podr´a no ser muy util por ´ ı ´ si misma. Primitivas: write, read, take and query.
  15. 15. Write En Java...
  16. 16. Query En Java...
  17. 17. Read En Java...
  18. 18. Take En Java...
  19. 19. ´Subscripcion Frecuentemente se suelen ofrecer primitivas de ´ suscripcion. (es un aspecto en el que en Otsopack todav´a nos ı encontramos trabajando)
  20. 20. Ventajas ´ Ventajas de tuplespace + ventajas de la web semantica Autonom´a del esquema de datos. Al seguir la ı ´ ´ especificacion RDF expresa la informacion de manera independiente al esquema interno de cada nodo [Fen04]. ´ “puede inferir informacion no expl´citamente definida” ı [FNTdV08]. ´ “permite mediar entre esquemas de datos heterogeneos usados por los distintos actores” [FNTdV08].
  21. 21. ´ndiceI 1 ´ Introduccion 2 Otsopack ´ ¿Que es Otsopack? ´ ´ Estrategia de distribucion de la informacion Detalles de la implementacion´ ´ Ultimos trabajos realizados con TSC 3 ´ Practica 4 Bibliograf´a ı
  22. 22. ´¿Que es Otsopack? Middleware que implementa el paradigma TSC Completamente distribuido Desestructurado Adaptado a las necesidades de IoT ´ Aunque a veces la hemos usado con otros propositos [GCO+ 11, LCO+ 11].
  23. 23. ´ ´¿Como se distribuye la informacion?
  24. 24. ´Sobre la descentralizacion Ventajas ´ El usuario puede llevar su informacion de perfil de un lugar a otro. Los datos provistos por los sensores se actualizan constantemente, por lo que interrogandoles directamente accederemos a los ultimos valores. ´ Dificultades ´ ˜ La web semantica anade sobrecarga Hoy en d´a hay dispositivos con recursos computacionales ı impresionantes (p.e. HTC Desire 576 MB RAM and 1GHz CPU). ´ En otros dispositivos siempre se podra limitar cuanto se usa. Seguridad. Hay distintos enfoques para controlar el acceso a las tripletas [DHMC11], el nuestro se encuentra en una etapa prematura.
  25. 25. ´¿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 HTTP puede implementarlo. Ofrecemos implementaciones para Android y Java SE. Lo hemos portado parcialmente a Python demostrando lo sencilla que puede ser su adopcion [GnA+ ]. ´
  26. 26. Arquitectura
  27. 27. ´Organizacion por proyectos de Otsopack http://code.google.com/p/otsopack/source/browse/ otsoCommons otsoME otsoFullJavaCommons otsoDroid otsoSE Relacionados con la seguridad... otsoAuthentication otsoIdentityProvider otsoSecurityIntegrationTest otsoRestletCommons
  28. 28. TSC y WoT On the complementarity of triple spaces and the Web of Things [GL11]. Este trabajo analiza y compara la Web of Things (WoT) y Triple Spaces (TS) que son ambas arquitecturas orientadas a recursos y enfatiza las situaciones en las que pueden ser ´ ´ mas utiles. ´ ¿Que es WoT? We explore how to leverage Web standards to interconnect all types of embedded devices (sensors, mobile phones, etc), in order to make them easier to use and to integrate in classic Web applications.[TG11] Fue el pistoletazo de salida para nuestro proyecto open-source Otsopack1 . 1 http://code.google.com/p/otsopack/
  29. 29. Otsopack y sensores y actuadores Collaboration of Sensors and Actuators Through Triple Spaces [GnA+ ] (pendiente de publicacion). ´ ´ Evaluamos la adecuacion de nuestro API TSC basada en REST a dispositivos embebidos.
  30. 30. ´ndiceI 1 ´ Introduccion 2 Otsopack 3 ´ Practica ´ Instalacion ˜ Decisiones de diseno: Space Managers y descubrimiento Creando un nodo de TSC Inicializar el nodo ´ Union a un espacio ´ Primitivas basicas ´ Clases basicas en Otsopack Write Read Take Query Abandonar un espacio Finalizar un nodo 4 Bibliograf´a ı
  31. 31. ´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
  32. 32. ´Instalacion II En este caso, dado que queremos crear un proyecto Java ´ SE, usaremos la version llamada OtsoSE. La podremos encontrar en el directorio dist dentro de dicho subproyecto. Las librer´as acabadas en ”-all” contienen todas las ı dependencias necesarias. otsoSE/dist/otsoSE-all.jar Por lo tanto, lo unico que deberemos incluir en nuestro ´ classpath es dicha librer´a. ı 2 ´ En caso de querer hacer una aplicacion para Android
  33. 33. Space Managers ´ El Space Manager (SM) es un modulo que mantiene una lista de nodos activos en un espacio concreto. ´ ´ Cada nodo consultara a un SM que sera el que le facilite los nodos a los que debe consultar. Cada espacio puede tener uno o varios SMs. ´ ´ En el caso mas sencillo tendremos uno solo: - trafico de red ´ ´ En el mas complejo cada nodo tendra su propio SM: + flexibilidad ´ Cada nodo puede usar uno o mas SMs para descubrir al resto de nodos del espacio. ´ ´ En este ejemplo, cada nodo tendra su propio SM que sera el unico que consulte. ´
  34. 34. Estrategia de descubrimiento ´ ´ Cada nodo podra descubrir al resto de nodos a traves de un SM ¿Y para descubrir un SM o SMs? ´ Necesitara a su vez una estrategia de descubrimiento concreta ´ ´ ´ A d´a de hoy solo esta implementada la estrategia mas ı ´ basica Especificar en tiempo de despliegue los SM
  35. 35. Creando un nodo de TSC f i n a l S t r i n g s p a c e u r i = ” h t t p : / / espacio . com / ejemplo ” ; f i n a l ISpaceManager spaceMngr = new SimpleSpaceManager ( D e s c r i p t i o n . node1 , D e s c r i p t i o n . node2 , D e s c r i p t i o n . node3 ) ; final IRegistry registry = new S i m p l e R e g i s t r y ( s p a c e u r i , new SimpleDiscovery ( spaceMngr ) , 10 ∗ 60 ∗ 1000 , D e s c r i p t i o n . node1 . getUuid ( ) ) ; final ITripleSpace kernel = new H t t p K e r n e l (28080 , n u l l , r e g i s t r y ) ;
  36. 36. Inicializar el nodo kernel . startup ( ) ;
  37. 37. Para comprobar que todo ha ido bien... http://[IP]:[puerto]/spaces/
  38. 38. ´Metodos de utilidad ´ Para configurar parametros de funcionamiento por defecto. ´ ´ ´ ´ Formato semantico. En la version actual solo se soporta ´ el formato N-Triples, por lo que estara escogido por defecto. public void s e t D e f a u l t S e m a n t i c F o r m a t ( SemanticFormat f o r m a t ) ; public SemanticFormat g etD efau ltS eman tic Form at ( ) ; Timeout. Frecuentemente puede resultar preferible no esperar las respuestas de todos ellos. public void s e t D e f a u l t T i m e o u t ( i n t t i m e o u t ) ; public i n t g e t D e f a u l t T i m e o u t ( ) ;
  39. 39. ´Union a un espacio k e r n e l . createSpace ( s p a c e u r i ) ; k e r n e l . j oi n S p a c e ( s p a c e u r i ) ;
  40. 40. Para comprobar que todo ha ido bien... ´ ´ ´ Se vera informacion esquematica de los servicios REST que contiene. ´ En caso contrario se obtendra un error 404. http://meyerweb.com/eric/tools/dencoder/ http://[IP]:[puerto]/spaces/[espacio codificado en HTML]/
  41. 41. Clase Graph ´ Un grafo esta formado por un conjunto de tripletas RDF. Esas tripletas RDF se pueden expresar en distintos formatos Por ejemplo N-Triples, RDF/XML o Turtle Otsopack abstrae al usuario de las particularidades del ´ formato en el que esten escritas. Siempre que el Kernel del TripleSpace tenga un conversor adecuado para dicho formato. ´ (a d´a de hoy solo existe un conversor para el formato ı N-Triples) public Graph ( S t r i n g data , SemanticFormat f o r m a t ) ; / / e . g . SemanticFormat . NTRIPLES
  42. 42. Clase Template La clase Template permite representar las consultas que se pueden realizar sobre el espacio. ´ ´ A d´a de hoy, solo existe una implementacion llamada ı WildcardTemplate que permite definir una tripleta con posibles comodines en el sujeto, predicado u objeto de las mismas. Por ejemplo N-Triples, RDF/XML o Turtle Ejemplos 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 .
  43. 43. Uso de WildcardTemplate WildcardTemplate c r e a t e W i t h N u l l ( S t r i n g s u b j e c t , S t r i n g p r e d i c a t e ) ; WildcardTemplate createWithURI ( S t r i n g s u b j e c t , S t r i n g p r e d i c a t e , S t r i n g o b j e c 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 s u b j e c t , S t r i n g p r e d i c a t e , O b j e c t o b j e c 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);
  44. 44. 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
  45. 45. Read public Graph read ( S t r i n g spaceURI , S t r i n g graphURI , long t i m e o u t ) throws TSException ; public Graph read ( S t r i n g spaceURI , Template template , long t i m e o u t ) throws TSException ; Esquema
  46. 46. Take public Graph t a k e ( S t r i n g spaceURI , S t r i n g graphURI , long t i m e o u t ) throws TSException ; public Graph t a k e ( S t r i n g spaceURI , Template template , long t i m e o u t ) throws TSException ; Esquema
  47. 47. Query public Graph query ( S t r i n g spaceURI , Template t e m p l a t e ) throws TSException ; Esquema
  48. 48. Abandonar un espacio k e r n e l . leaveSpace ( s p a c e u r i ) ;
  49. 49. Finalizar un nodo ´ Abandona todos los espacios a los que este unido ´ automaticamente. k e r n e l . shutdown ( ) ;
  50. 50. ´ndiceI 1 ´ Introduccion 2 Otsopack 3 ´ Practica 4 Bibliograf´a ı
  51. 51. 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 TinyLime middleware. 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, and Tullio Salmon Cinotti. Access control at triple level: Specification and enforcement of a simple RDF model to support concurrent applications in smart environments. In Sergey Balandin, Yevgeni Koucheryavy, and Honglin Hu, editors, Smart Spaces and Next Generation Wired/Wireless Networking, volume 6869, pages 63–74. Springer Berlin Heidelberg, Berlin, Heidelberg, 2011.
  52. 52. Bibliograf´a II ı A. Friday, N. Davies, J. Seitz, M. Storey, and S. P Wade. Experiences of using generative communications to support adaptive mobile applications. Distributed and Parallel Databases, 7(3):319–342, 1999. Dieter Fensel. Triple-Space computing: Semantic web services based on persistent publication of information. In Finn Arve Aagesen, Chutiporn Anutariya, and Vilas Wuwongse, editors, Intelligence in Communication Systems, volume 3283 of Lecture Notes in Computer Science, 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.
  53. 53. Bibliograf´a III ı ´ David Francisco, Lyndon JB Nixon, and German Toro del Valle. Towards a multimedia content marketplace implementation based on triplespaces. In Amit Sheth, Steffen Staab, Mike Dean, Massimo Paolucci, Diana Maynard, Timothy Finin, and Krishnaprasad Thirunarayan, editors, The Semantic Web - ISWC 2008, volume 5318, pages 875–888. Springer Berlin Heidelberg, 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 supermarkets using a distributed solution. Ambient Assisted Living, pages 41–48, 2011.
  54. 54. Bibliograf´a IV ı D. Gelernter. Generative communication in linda. ACM Transactions on Programming Languages and Systems (TOPLAS), 7(1):80–112, 1985. ´ ´ ˜ Aitor Gomez-Goiri and Diego Lopez-de-Ipina. On the complementarity of triple spaces and the web of things. In Proceedings of the Second International Workshop on Web of Things, WoT ’11, pages 12:1–12:6, New York, NY, USA, 2011. ACM. ´ Aitor Gomez-Goiri, Pablo Ordu na, David Aus´n, Mikel ı ´ ˜ Emaldi, and Diego Lopez-de-Ipina. Collaboration of sensors and actuators through triple spaces.
  55. 55. 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 cognitive impairments. 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 for Sensor Networks, 2006. A. L Murphy, G. P Picco, and G. C Roman. LIME: a coordination model and middleware supporting mobility of hosts and agents. ACM Transactions on Software Engineering and Methodology (TOSEM), 15(3):279–328, 2006.
  56. 56. Bibliograf´a VI ı Vlad Trifa and Dominique Guinard. Web of things, August 2011.
  57. 57. Licencia ´ Todas las imagenes son propiedad de sus ˜ respectivos duenos*, el resto del contenido ´ esta licenciado bajo Creative Commons by-sa 3.0. ´ * Oberazzi (flickr), Cesar Astudillo (flickr), Stefan Paunovi´ (flickr), Francesco ’Architetto’ Rollandin (openclipart) y c ryanlerch (openclipart).

×