SlideShare une entreprise Scribd logo
1  sur  62
Télécharger pour lire hors ligne
Otsopack
                           ´
                    Aitor Gomez-Goiri

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


                20 de Octubre de 2011
´
Presentacion



  1             ´
      Introduccion

  2   Otsopack

  3     ´
      Practica

  4   Bibliograf´a
                ı
´ndice
I
  1             ´
      Introduccion
         Tuplespaces
           Patrones de uso
              ´
           ¿Como funciona?
           Ventajas
                   ´
         Web Semantica
         Triple Space Computing
           Primitivas TSC
           Ventajas


  2   Otsopack

  3     ´
      Practica

  4   Bibliograf´a
                ı
Tuplespaces en pocas palabras




                            ´
     Paradigma de coordinacion, donde distintos procesos leen
                         ´ en un espacio comun [Gel85].
     y escriben informacion                   ´
´
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.
´
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.
´
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. . . ).
          ı
´
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.
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.
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 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.
                                    ´
´
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]
´
La web semantica en breve II
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.
Write




    En Java...
Query




   En Java...
Read




   En Java...
Take




   En Java...
´
Subscripcion




     Frecuentemente se suelen ofrecer primitivas de
              ´
     suscripcion.
     (es un aspecto en el que en Otsopack todav´a nos
                                               ı
     encontramos trabajando)
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].
´ndice
I
  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
                ı
´
¿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].
´                             ´
¿Como se distribuye la informacion?
´
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.
´
¿En que consiste Otsopack?

               API TSC en HTTP
HTTP 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+ ].
                                               ´
Arquitectura
´
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
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/
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.
´ndice
I
  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
                ı
´
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 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
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.
        ´
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
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 ) ;
Inicializar el nodo




   kernel . startup ( ) ;
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 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 ( ) ;
´
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 ) ;
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]/
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
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 .
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);
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 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
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
Query




  public Graph query ( S t r i n g spaceURI , Template t e m p l a t e )
      throws TSException ;
   Esquema
Abandonar un espacio




  k e r n e l . leaveSpace ( s p a c e u r i ) ;
Finalizar un nodo




                                              ´
     Abandona todos los espacios a los que este unido
          ´
     automaticamente.

        k e r n e l . shutdown ( ) ;
´ndice
I
  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 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.
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.
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.
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.
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.
Bibliograf´a VI
          ı




      Vlad Trifa and Dominique Guinard.
      Web of things, August 2011.
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).

Contenu connexe

Similaire à Presentación de Otsopack en Tecnalia

Servicio cliente servidor
Servicio cliente servidorServicio cliente servidor
Servicio cliente servidor
Alumic S.A
 
Categotias de sistemas operativo
Categotias de sistemas operativoCategotias de sistemas operativo
Categotias de sistemas operativo
javiercollantes
 
Ensayo del profesor erick
Ensayo del profesor erickEnsayo del profesor erick
Ensayo del profesor erick
Alberto Guapo
 
Mapa conceptual computacion paralela
Mapa conceptual   computacion paralelaMapa conceptual   computacion paralela
Mapa conceptual computacion paralela
Eduardo Suarez
 
Programacion Orientada a Onjetos
Programacion Orientada a OnjetosProgramacion Orientada a Onjetos
Programacion Orientada a Onjetos
Alex Lopez
 
Multithreading a la manera de Delphi
Multithreading a la manera de DelphiMultithreading a la manera de Delphi
Multithreading a la manera de Delphi
Mayra Mendieta
 
Presentación1 estructura del laboratorio
Presentación1 estructura del laboratorioPresentación1 estructura del laboratorio
Presentación1 estructura del laboratorio
MARIBEL POLANCO
 
Manual De Instalacion Del Cluster Knoppix
Manual De Instalacion Del Cluster KnoppixManual De Instalacion Del Cluster Knoppix
Manual De Instalacion Del Cluster Knoppix
andres
 

Similaire à Presentación de Otsopack en Tecnalia (20)

Servicio cliente servidor
Servicio cliente servidorServicio cliente servidor
Servicio cliente servidor
 
Categotias de sistemas operativo
Categotias de sistemas operativoCategotias de sistemas operativo
Categotias de sistemas operativo
 
Cisco packet tracer
Cisco packet tracerCisco packet tracer
Cisco packet tracer
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Términos de Programación Distribuida 5
Términos de Programación Distribuida 5Términos de Programación Distribuida 5
Términos de Programación Distribuida 5
 
Empleos con futuro. Perfil de un ingeniero de datos
Empleos con futuro. Perfil de un ingeniero de datosEmpleos con futuro. Perfil de un ingeniero de datos
Empleos con futuro. Perfil de un ingeniero de datos
 
Ensayo del profesor erick
Ensayo del profesor erickEnsayo del profesor erick
Ensayo del profesor erick
 
Mapa conceptual computacion paralela
Mapa conceptual   computacion paralelaMapa conceptual   computacion paralela
Mapa conceptual computacion paralela
 
Programacion Orientada a Onjetos
Programacion Orientada a OnjetosProgramacion Orientada a Onjetos
Programacion Orientada a Onjetos
 
Manual practicassd
Manual practicassdManual practicassd
Manual practicassd
 
Introducción (1)
Introducción (1)Introducción (1)
Introducción (1)
 
Clasificacion de los sistemas operativos
Clasificacion de los sistemas operativosClasificacion de los sistemas operativos
Clasificacion de los sistemas operativos
 
Multithreading a la manera de Delphi
Multithreading a la manera de DelphiMultithreading a la manera de Delphi
Multithreading a la manera de Delphi
 
Clasificacion de los sistemas operativos
Clasificacion de los sistemas operativosClasificacion de los sistemas operativos
Clasificacion de los sistemas operativos
 
Presentación1 estructura del laboratorio
Presentación1 estructura del laboratorioPresentación1 estructura del laboratorio
Presentación1 estructura del laboratorio
 
Proyecto de modelo osi
Proyecto de modelo osiProyecto de modelo osi
Proyecto de modelo osi
 
Implementacion de NAT - JUGM 2010
Implementacion de NAT - JUGM 2010Implementacion de NAT - JUGM 2010
Implementacion de NAT - JUGM 2010
 
MONTAJE DE INFRAESTRUCTURA DE MÁQUINAS EN ALTA DISPONIBILIDAD VIRTUALIZADA
MONTAJE DE INFRAESTRUCTURA DE MÁQUINAS EN ALTA DISPONIBILIDAD VIRTUALIZADAMONTAJE DE INFRAESTRUCTURA DE MÁQUINAS EN ALTA DISPONIBILIDAD VIRTUALIZADA
MONTAJE DE INFRAESTRUCTURA DE MÁQUINAS EN ALTA DISPONIBILIDAD VIRTUALIZADA
 
Manual De Instalacion Del Cluster Knoppix
Manual De Instalacion Del Cluster KnoppixManual De Instalacion Del Cluster Knoppix
Manual De Instalacion Del Cluster Knoppix
 
Workshop Técnicas Replicacion I
Workshop Técnicas Replicacion IWorkshop Técnicas Replicacion I
Workshop Técnicas Replicacion I
 

Plus de Open University, KMi

Plus de Open University, KMi (10)

RESTful Triple Spaces of Things
RESTful Triple Spaces of ThingsRESTful Triple Spaces of Things
RESTful Triple Spaces of Things
 
Errekurtsibitatea
ErrekurtsibitateaErrekurtsibitatea
Errekurtsibitatea
 
Egitura linealak
Egitura linealakEgitura linealak
Egitura linealak
 
Konposizioa, herentzia eta polimorfismoa
Konposizioa, herentzia eta  polimorfismoa Konposizioa, herentzia eta  polimorfismoa
Konposizioa, herentzia eta polimorfismoa
 
Fitxategiak
FitxategiakFitxategiak
Fitxategiak
 
"On the complementarity of Triple Spaces and the Web of Things" poster @ WoT2011
"On the complementarity of Triple Spaces and the Web of Things" poster @ WoT2011"On the complementarity of Triple Spaces and the Web of Things" poster @ WoT2011
"On the complementarity of Triple Spaces and the Web of Things" poster @ WoT2011
 
A Triple Space-Based Semantic Distributed Middleware for Internet of Things
A Triple Space-Based Semantic Distributed Middleware for Internet of ThingsA Triple Space-Based Semantic Distributed Middleware for Internet of Things
A Triple Space-Based Semantic Distributed Middleware for Internet of Things
 
Presentacion Defensa
Presentacion DefensaPresentacion Defensa
Presentacion Defensa
 
Introducción a PHP5
Introducción a PHP5Introducción a PHP5
Introducción a PHP5
 
Introducción a PHP5
Introducción a PHP5Introducción a PHP5
Introducción a PHP5
 

Dernier

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 

Dernier (11)

Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 

Presentación de Otsopack en Tecnalia

  • 1. Otsopack ´ Aitor Gomez-Goiri DeustoTech - Deusto Institute of Technology, University of Deusto http://www.morelab.deusto.es 20 de Octubre de 2011
  • 2. ´ Presentacion 1 ´ Introduccion 2 Otsopack 3 ´ Practica 4 Bibliograf´a ı
  • 3. ´ndice I 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. Tuplespaces en pocas palabras ´ Paradigma de coordinacion, donde distintos procesos leen ´ en un espacio comun [Gel85]. y escriben informacion ´
  • 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. ´ 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. ´ 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. ´ 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. 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. 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.
  • 12. 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. ´
  • 13. ´ 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]
  • 14. ´ La web semantica en breve II
  • 15. 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.
  • 16. Write En Java...
  • 17. Query En Java...
  • 18. Read En Java...
  • 19. Take En Java...
  • 20. ´ Subscripcion Frecuentemente se suelen ofrecer primitivas de ´ suscripcion. (es un aspecto en el que en Otsopack todav´a nos ı encontramos trabajando)
  • 21. 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].
  • 22.
  • 23. ´ndice I 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 ı
  • 24.
  • 25. ´ ¿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].
  • 26. ´ ´ ¿Como se distribuye la informacion?
  • 27. ´ 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.
  • 28. ´ ¿En que consiste Otsopack? API TSC en HTTP HTTP 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+ ]. ´
  • 30. ´ 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
  • 31. 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/
  • 32. 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.
  • 33.
  • 34. ´ndice I 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 ı
  • 35.
  • 36. ´ 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
  • 37. ´ 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
  • 38. 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. ´
  • 39. 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
  • 40. 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 ) ;
  • 41. Inicializar el nodo kernel . startup ( ) ;
  • 42. Para comprobar que todo ha ido bien... http://[IP]:[puerto]/spaces/
  • 43. ´ 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 ( ) ;
  • 44. ´ 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 ) ;
  • 45. 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]/
  • 46. 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
  • 47. 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 .
  • 48. 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);
  • 49. 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
  • 50. 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
  • 51. 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
  • 52. Query public Graph query ( S t r i n g spaceURI , Template t e m p l a t e ) throws TSException ; Esquema
  • 53. Abandonar un espacio k e r n e l . leaveSpace ( s p a c e u r i ) ;
  • 54. Finalizar un nodo ´ Abandona todos los espacios a los que este unido ´ automaticamente. k e r n e l . shutdown ( ) ;
  • 55. ´ndice I 1 ´ Introduccion 2 Otsopack 3 ´ Practica 4 Bibliograf´a ı
  • 56. 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.
  • 57. 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.
  • 58. 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.
  • 59. 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.
  • 60. 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.
  • 61. Bibliograf´a VI ı Vlad Trifa and Dominique Guinard. Web of things, August 2011.
  • 62. 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).