M ODELANDO LOS C ONTEXTOS Eleonora Etchemendy Andrés Macri Tutora: Regina Motz Proyecto de grado ÍNDICE Índice ............................................................................................................................................ 1 Introducción ................................................................................................................................. 2 Contexto ........................................................................................................................................ 3 Context-aware .............................................................................................................................. 4 Herramientas ............................................................................................................................... 5 Context-toolkit [1]: ................................................................................................................... 5 Componentes y Arquitectura ............................................................................................... 5 The context managing framework .......................................................................................... 6 Aura ........................................................................................................................................... 7 Gaia ........................................................................................................................................... 7 Socam ........................................................................................................................................ 7 Cobra ......................................................................................................................................... 7 Cass ........................................................................................................................................... 7 Camus ....................................................................................................................................... 7 Citron ........................................................................................................................................ 7 Framework de tao gu et al........................................................................................................ 7 arquitectura .................................................................................................................................. 7 Entorno ..................................................................................................................................... 8 Fuentes de Datos ...................................................................................................................... 8 Interprete .................................................................................................................................. 8 Ejemplos: ................................................................................................................................... 8 Ejemplo 1: .............................................................................................................................. 8 Ejemplo 2: .............................................................................................................................. 9 Conclusión .............................................................................. Error! Bookmark not defined. Glosario ....................................................................................................................................... 11 Anexo .......................................................................................................................................... 14 1 Proyecto de grado INTRODUCCIÓN Como seres humanos cada vez que actuamos o hablamos, lo hacemos en un contexto dado. La adaptación al contexto en nuestra vida cotidiana es muy fácil para nosotros y la mayoría de las veces se trata de una acción subconsciente. Cambiamos nuestro comportamiento en función de la situación y en relación al lugar y con quien nos encontramos. El contexto nos permite discriminar qué es importante y qué no lo es. Permite enriquecer nuestros conocimientos sobre una determinada situación aprovechando recuerdos y experiencias relacionadas. A través del contexto somos capaces de distinguir la enorme cantidad de información que nos rodea en cualquier punto dado en el tiempo. La naturaleza de la información que nos rodea no es diferente a los datos que se pueden encontrar en aplicaciones ubicuas, móviles o web. Como en la vida real, grandes cantidades de la información son fácilmente disponibles en un número casi ilimitado de fuentes. Para que es tipo de aplicaciones sean cada vez más exitosas, dependerán enteramente de su capacidad para entregar la información correcta al usuario correcto en el momento correcto. El contexto es un poderoso instrumento para lograr la difusión de la información relevante que esas aplicaciones demandan. Nos planteamos algunas preguntas que intentaremos contestar a lo largo del documento. ¿Qué es el contexto? ¿Es importante en una app? ¿Cambia el comportamiento de una app? ¿Existen contextos genéricos? ¿Cómo se relacionan? ¿Qué entidades importan? Empezamos por entender que es el contexto, como influye en una aplicación. 2 Proyecto de grado CONTEXTO Existen muchas definiciones de contexto vamos a citar algunas, porque a partir de las misma fuimos creando nuestra propia definición. SCHILIT [1], por ejemplo, identificó al entorno informático (procesadores, dispositivos, pantallas, etc), entorno de usuario (ubicación, situación social, las personas cercanas, etc) y el medio físico (por ejemplo, la iluminación y el nivel de ruido) como los componentes clave de contexto. DEY Y ABOWD[2] , describe el contexto como: " Cualquier información que se puede utilizar para caracterizar la situación de una entidad. Una entidad es una persona, lugar u objeto que se considera relevante a la interacción entre un usuario y una aplicación, incluyendo el usuario y las propias aplicaciones. El contexto es típicamente la ubicación, la identidad y estado de las personas, grupos y objetos computacionales y físicos." DOURISH , por ejemplo, dice que el contexto no es información por si misma, sino más bien una característica de la información existente. Cada objeto de datos puede ser "contextualmente relevante "a otro objeto para una actividad particular de un usuario. Es decir, no hay separación entre los objetos de contexto y aplicación normal objetos. Las definiciones de contexto antes mencionados son en su mayoría influenciadas por la comunidad informática ubicua y omnipresente. Nuestra definición INFORMACIÓN RELEVANTE Y VARIABLE DEL ENTORNO PARA UN OBJETIVO DADO POR UN DETERMINADO USUARIO . 3 Proyecto de grado CONTEXT-AWARE Las aplicaciones Contex-Aware, o sensibles al contexto consideran el qué, quién, cuándo y dónde de una entidad y usan esa información para determinar por qué una situación (la forma en la que se dispone algo en un determinado espacio) está ocurriendo. Son aplicaciones que adaptan automáticamente su comportamiento y configuración, dependiendo de las condiciones del entorno y de las preferencias del usuario. 4 Proyecto de grado HERRAMIENTAS Vamos a describir algunos de los frameworks ya existentes y sus arquitecturas Context-toolkit [1]: Se basa en la definición de Dey y Abowd, fue creado por ellos en la universidad de Berkeley su objetivo es ayudar a la ardua tarea de la captación de contexto. Los servicios de ContextToolkit son: Encapsulación de sensores El acceso a los datos de contexto a través de una API de red Abstracción de datos de contexto a través de intérpretes Intercambio de datos de contexto a través de una infraestructura distribuida. El almacenamiento de datos de contexto, incluyendo la historia control. Acceso básico para la protección de la privacidad Componentes y Arquitectura Está basado en tres componentes principales. Widget. Recogen la información de los sensores y la envía. Son responsables de la separación de los detalles de detección de contexto y de utilizarlo. Ellos abstraer los detalles de cómo el contexto se detecta a partir de las aplicaciones y otros componentes de contexto que necesitan el contexto. Widgets pueden ser considerados como similares a los widgets de interfaz gráfica de usuario (por ejemplo, campos de texto, hilanderos), pero aplicados a los sensores y actuadores que serían comunes en los sistemas de computación ubicua. Cada widget contexto es responsable por algún pequeño conjunto de contextos que se captura de un (hardware o software) del sensor. Server. Recogen la información de los Widgets. Evitan que los usuarios se deban conectar a n máquinas para recoger n piezas de información, pueden agregar y combinar información de varios widgets para ofrecer una única pieza de información. A su vez, estos componentes abstraen a la aplicación de la forma en a que diferentes informaciones de contexto deben ser combinadas para obtener información de un cierto mayor nivel. Intérprete :Los intérpretes son los encargados de recoger cierta información en conjunto e interpretarla, para crear contexto de más alto nivel. Estos intérpretes pueden recibir la información de varios widgets o agregadores y combinarla para crear eventos de mayor abstracción del tipo “se ha iniciado una reunión”. 5 Proyecto de grado Figura 1Arquitectura de ContextToolkit[3] The context managing framework Se centra básicamente en la captación, modelado y razonamiento del contexto. Su arquitectura está dispuesta en forma jerárquica teniendo un componente central al que la aplicación accede. De esta forma se crean dos capas: una con el componente central y otra con los componentes secundarios que este componente utiliza. 6 Proyecto de grado Aura Gaia Socam Cobra Cass Camus Citron Framework de tao gu et al ContextToolkit utiliza conjuntos de pares clave-valor para representar valores. Aura y CASS utilizan una Base de Datos relacional. Formas más sofisticadas de contexto son utilizadas en ContextManaging Framework (RDF), Tao Gu et al.(RDF/OWL), SOCAM (OWL), CAMUS (OWL) y COBRA (OWL), que utilizan ontologías para el modelado. ARQUITECTURA 7 Proyecto de grado Entorno Es demasiado ambiguo y bien podría incluso representar un sinónimo del mismo concepto de contexto que se intenta categorizar. Pero el contexto no es el entorno sino su sentido. Fuentes de Datos Son los datos relevados de las distintas fuentes. Por ejemplo, de los sensores se puede tomar temperatura, movimiento, velocidad, luminosidad, etc. También podrían ingresarse datos manualmente a través de una interfaz para el usuario, o incluso como en un LMS del tipo "Moodle" donde se obtienen estadísticas. Interprete A grandes rasgos, se encarga de tomar los datos (entre estos datos los límites), los monitorea para detectar cuando se alcanza un límite, y cuando esto sucede se encarga de mandar eventos al entorno según el objetivo deseado por el usuario. Ejemplos: Ejemplo 1: Se busca climatizar un salón(entre 20°C y 22°C) en caso de que se encuentre al menos una persona adentro. Entorno: Salón, aire acondicionado, cantidad de personas. 8 Proyecto de grado Fuente: Sensor de temperatura del aire acondicionado, sensor de movimiento. Objetivo: Mantener la temperatura en 22°C en caso de que se encuentre una persona dentro del salón. Usuario: Persona que ingresa al salón. Límite: Límite inferior 20°C Límite superior 22°C Funcionamiento del intérprete: El intérprete monitorea el ingreso de personas y también la temperatura utilizando los sensores. En caso de que se encuentre una persona dentro del salón y: - La temperatura sea menor a los 20°C se dispara el evento “subir temperatura” La temperatura sea mayor a los 22°C se dispara el evento “bajar temperatura” Ejemplo 2: Se quiere mejorar el transito en las autopistas, para esto se implementa una “ruta inteligente” que consiste en: Existen 2 carriles, el de la izquierda no permite ir a menos de 110 km/h, y el de la derecha es para circular a menos de 110 km/h. Entorno: Ruta inteligente, sensores de velocidad, autos. Fuente: Sensores de velocidad, sensor de movimiento que detecta por cual carril va el vehículo. Usuario: Vehículos. Límite: 110 km/h. Funcionamiento del intérprete: La ruta mide la velocidad de los autos: 9 Proyecto de grado - Auto que va por la izquierda y baja de 110 km/h lo acelera, y en caso de no poder subirle la velocidad lo obliga a pasarse al carril de la derecha Auto que va por la derecha a más de 110 km/h lo lleva al carril de la izquierda. 10 Proyecto de grado GLOSARIO Computación Ubicua: (ubicomp) Es entendida como la integración de la informática en el entorno de la persona, de forma que los ordenadores no se perciban como objetos diferenciados. Esta disciplina se conoce en inglés por otros términos como Pervasivecomputing, Calmtechnology, ThingsThatThink y Everyware. Desde hace unos años también se denomina inteligencia ambiental.1 Framework: Es un conjunto estandarizado de conceptos, prácticas y criterios para enfocar un tipo de problemática particular que sirve como referencia, para enfrentar y resolver nuevos problemas de índole similar. Desde el punto de vista del desarrollo de software, un framework es una estructura de soporte definida, en la cual otro proyecto de software puede ser organizado y desarrollado. Suelen incluir soporte de programas, bibliotecas, lenguaje de scripting, software para desarrollar y unir diferentes componentes de un proyecto de desarrollo de programas. Permiten facilitar el desarrollo de software, evitar los detalles de bajo nivel, permitiendo concentrar más esfuerzo y tiempo en identificar los requerimientos de software. Situación: La forma en la que se dispone algo en un determinado espacio. 11 Proyecto de grado REFERENCIAS [1] A Conceptual Framework and a Toolkit for Supporting the Rapid Prototyping of Context-Aware Applications Anind K. Dey and Gregory D. Abowdhttp://www.cc.gatech.edu/fce/ctk/pubs/HCIJ16.pdf [Consulta: Mayo 2014] [2] Context-toolkit http://contexttoolkit.sourceforge.net/ [Consulta: Mayo 2014] [3] An Architecture To Support Context-Aware Applications ftp://ftp.cc.gatech.edu/pub/gvu/tr/1999/99-23.pdf [Consulta: Mayo 2014] [4]ContextManagingframework http://140.127.22.92/download/learn_web/Tong(93-2)-Distribution_Multimedia/database/67/Managing%20Context%20Information%20in%20Mobile%20Devices.pdf [Consulta: Mayo 2014] 12 Proyecto de grado 13 Proyecto de grado ANEXO AGREGAMOS ALGO DE CÓDIGO O VEMOS 14