desarrollo de aplicaciones móviles sensibles al contexto
TRANSCRIPT
Desarrollo de Aplicaciones Móviles
Sensibles al Contexto
Lic. en Cs. de la Comp. e Ingeniería en Computación
3 – Aplicaciones Sensibles al Contexto
Depto. de Ciencias e Ingeniería de la Computación
Universidad Nacional del Sur
1er. Cuatrimestre de 2016
• En los principios de la
computación, el contexto se
definía por la computadora,
dado que la computadora era
el lugar de trabajo.
• Luego, las computadoras
comenzaron a instalarse en
lugares específicos para
ayudar en tareas específicas:
– Contexto fuertemente
determinado por la ubicación
de la computadora.
– Las PC se instalaban en
oficinas o en las fabricas, y
raramente se cambiaban de
lugar.
2
• Aparición de notebooks:
– Primer dispositivo
considerado “móvil”.
– Los usuarios podían elegir en
que contexto trabajar.
• Con la aparición de los
dispositivos (más) portátiles y
los desarrollos en
computación ubicua:
– Usuarios llevan las
computadoras con ellos y las
usan en muchas situaciones
diferentes en el mundo real.
3
Fuente de fotos: embolden.co
www.gettyimages.com
Computación Sensible al Contexto
• Bill Schilit (1994) introdujo el concepto de computación
sensible al contexto:
“[…] el software sensible al contexto se adapta de acuerdo
con el lugar de uso, la colección de personas cercanas, hosts
y dispositivos accesibles, como así también los cambios
sobre esos elementos en el tiempo. Un Sistema con estas
capacidades puede examinar el entorno de computo y
reaccionar a los cambios en el mismo.”
4
Contexto: definición inicial
• La idea básica es que los dispositivos móviles pueden
proveer diferentes servicios en diferentes contextos –
donde el contexto está fuertemente relacionado con la
ubicación del (los) dispositivo(s).
• La investigación inicial en sensibilidad al contexto se
enfocó en la sensibilidad a la ubicación.
– GPS integrado en dispositivos móviles y extensamente usado
en aplicaciones.
• Sin embargo, el contexto es más que ubicación…
5
Contexto: definición inicial
• La ubicación del dispositivo es el principal parámetro
contextual usado para ajustar automáticamente la
visualización de la posición actual del usuario.
• Los sistemas comerciales actuales usan más información
de contexto:
– Momento del día, condición de la luz
– Situación del transito en la ruta calculada
– Lugares preferidos del usuario.
• La ruta calculada puede también ser influenciada por el
contexto: por ej., para evitar calles potencialmente
congestionadas a esa hora del día.
6
Ejemplo: Luces Automáticas
• Las luces automáticas son muy comunes en la entradas
de las casas y hoteles, o lugares de paso que necesitan
ser iluminados esporádicamente.
• Estos sistemas también pueden verse como sistemas
simples con sensibilidad al contexto.
• Los parámetros contextuales en este entorno son las
condiciones actuales de luz y si hay movimiento en la zona
de proximidad.
7
Contexto
• El contexto involucra más que simplemente la ubicación
geográfica del usuario.
• Otras cosas relevantes al contexto son móviles y cambian.
• Tres aspectos importantes para determinar el contexto de
un usuario son:
– quién es el usuario,
– con quién está en ese momento,
– qué recursos tiene el usuario cerca.
• Contexto incluye iluminación, nivel de ruido/sonido,
conectividad de las redes, costos de comunicación, ancho
de banda, y hasta la situación social del usuario: por
ejemplo, si el acompañante es un superior o un
compañero.
8
Ejemplo: Pizarrones Públicos
• Este pizarrón tradicional
publicita el mismo producto a
todas las personas que pasan.
• Reemplazarlos por pantallas
digitales:
– adaptar el contenido al
contexto: por ejemplo se
muestran distintas ofertas
dependiendo del clima actual o
dependiendo de quien pase…
• Visiones de redes de display
públicos: pd-net.org
9
Comportamiento Contextual
• Las acciones de las personas puede predecirse a partir de una
situación.
• Hay cosas que hacemos cuando estamos en la biblioteca,
diferentes a las cosas que hacemos cuando estamos en la
cocina o en la oficina.
• La información contextual puede utilizarse por ejemplo para
definir consultas (a una base de datos) que produce diferentes
resultados de acuerdo al contexto en el cual se ejecutan.
10
Arquitectura de referencia para Sistemas
Sensibles al Contexto
11
Fuente de fotos:
https://www.interac
tion-design.org
Comportamiento Contextual
• Los sensores proveen datos acerca de actividades y
eventos que ocurren en el mundo real.
• Los algoritmos de percepción proveen un
sentido/significado a esos estímulos y clasifican las
situaciones en contextos.
• Basándose en el contexto observado, diferentes acciones
son ejecutadas/efectuadas por el sistema.
12
Computación Sensible al Contexto
• La computación sensible al contexto está fuertemente
ligada a la computación ubicua:
– La computación ubicua busca que las tecnologías no
requieran demasiada atención activa por parte del usuario de
manera que puedan desaparecer en términos psicológicos.
– “In essence, that only when things disappear in this way are
we freed to use them without thinking.”-- Weiser 1991
• La sensibilidad al contexto es un factor facilitador para la
realización de sistemas ubicuos con usabilidad optima
(transparencia de uso).
13
Computación Sensible al Contexto
• Las computadoras nos rodean, permean la mayoría de
nuestras situaciones y actividades cotidianas.
• Para desaparecer completamente tienen que poder
anticipar las necesidades de los usuarios en situaciones
particulares y proactivamente para proveer asistencia
adecuada asistencia.
• Esta capacidad implica habilidad de estar “consciente” del
entorno.
14
Contexto: definición
• El término “contexto” se usa extensamente con significados
muy diferentes.
• Contexto, sustantivo. Causa de evento.
– La situación e la cual algo existe o sucede, y que puede
ayudar en explicarla (Cambridge Dictionary)
• Sinónimos de contexto: circunstancia, situación, posición,
postura, actitud, lugar, punto, términos, régimen, estado,
ocasión, alrededores, entorno, ubicación, dependencia,
etc...
15
Contexto: definición (cont.)
• En la Universidad de Kent (1998), se condujo una
investigación de cómo dispositivos móviles con GPS
(conectado externamente), acceso a red, y otros sensores
pueden usarse en distintos campos de trabajo.
• El equipo de investigación sugirió la siguiente definición:
– “ […] sensibilidad al contexto, termino que describe la
habilidad de una computadora para sensar y actuar acerca e
información en su entorno, tal como ubicación, tiempo,
temperatura, la identidad del usuario, etc. Esta información
[…] puede usarse también para habilitar respuestas
selectivas, tales como disparar alarmas o adquirir información
relevante para la tarea en mano.” -- Ryan et al 1998
16
Contexto: definición (cont.)
• Proyecto GUIDE (GUIDE 2001 − Universidad de
Lancaster):
• Objetivo: usar contexto para mejorar el sistema de
información móvil para visitantes del pueblo.
• “ […] se identificaron dos clases de contexto, contexto
personal y contexto ambiental. […]. Ejemplos de contexto
ambiental incluyen: el momento del día, horario de atención
de las atracciones y pronostico del tiempo. ”--Mitchell 2002
• Los usuarios son parte del contexto (por ejemplo sus
perfiles y preferencias).
17
Contexto: definición (cont.)
• Anind Dey (1999) sugirió una descripción genérica de
contexto (y la más aceptada actualmente):
• “Contexto es cualquier información que puede ser usada
para caracterizar la situación de una entidad. Una entidad
es una persona, o un objeto que se considera relevante
para la interacción entre un usuario y una aplicación,
incluyendo al usuario y a la aplicación misma.” […] Un
sistema se considera sensible al contexto si usa contexto
para proveer información relevante y/o servicios al usuario,
donde la relevancia depende de la tarea que el usuario
desea realizar.”18
Estructura Jerárquica
• Estructurar jerárquicamente el contexto: describir las
características relevantes del sistema que influyen el
comportamiento del sistema (Schmidt et al 1999).
• Sabiendo cuales son esos factores se puede ver cómo
esos factores pueden determinarse en el dispositivos.
• Por ejemplo sensores que provean la información del
contexto.
• Mirando a un conjunto de parámetros se puede determinar
fácilmente si la situación matchea a un contexto o no.
19
Estructura Jerárquica del Contexto
• Espacio de características del contexto: luz como una de
las características en las condiciones físicas del entorno.
20
Ejemplo: Pizarrón Digital
• Con una versión “no sensible al contexto” se muestra la
especialidad del día.
• Una versión “sensible al contexto”: podría mostrar un menú
dependiendo de quien pase:
– Si pasa una familia con niños, se debería mostrar una oferta
familiar que incluya menú infantil.
– Si una pareja mira el pizarrón a la nochecita, se podría
mostrar la publicidad de una cena romántica.
– Si es una tarde de verano y hace calor se podría publicitar
promociones o la selección de helados.
21
Ejemplo: Pizarrón Digital
• El espacio de características incluirían: las personas que
miran el pizarrón, el momento del día, y el clima.
• Las personas pueden refinarse por el tamaño del grupo,
edad, género.
• El clima puede incluir la temperatura y si llueve o no.
• Con un espacio estructurado de las características del
contexto es más fácil conectar contextos en el mundo real
a adaptaciones del sistema.
• No hay un espacio de características que sea completa y
describa todas las posibles opciones.
22
Brecha de percepción
• El objetivo final de los sistemas sensibles al contexto es
poder obtener una representación del mundo circundante
que sea cercana a la representación del usuario.
• Importante: cómo reducir la brecha entre la percepción del
mundo real por parte del usuario y del sistema.
• Para la ubicación hay significados bien establecidos para
diferentes maneras de sensado (GPS) e interpretación
(Sistema Geodésico Mundial, código postal).
• Para otros sensores no hay en general una sola manera de
interpretar la información sensada.
23
Brecha de percepción
• La percepción del entorno por parte del usuario está
basado en los sentidos, pero se relacionan con la
experiencia y la memoria.
• La percepción humana es multifacética:
– cuando uno camina por la calle de noche, un usuario puede
percibir que está oscuro, silencioso y frío, pero al mismo
tiempo puede percibir la situación como peligrosa.
– Otra persona, que estuvo ocupado todo el día y rodeado de
gente, puede percibir la situación como oscura, silenciosa y
fría, pero a la vez relajante y libre.
• Apoyarse sólo en los datos sensados no provee un
panorama completo.
• Aun un diseño e implementación perfecta no puede
capturar el entorno en exactamente la misma manera.
24
User-Context Perception Model (UCPM)
25
Reducir la brecha de sensibilidad
• La calidad de un sistema sensible al contexto está
directamente relacionada a la brecha.
• La interfaz de usuario puede proveer información sensorial
usada en la determinación del contexto que puede
minimizar esta brecha.
• Es importante que el usuario entienda que factores tienen
influencia en sistema.
– En un sistema de navegación simple, este factor es solo la
ubicación corriente: el usuario sabe que las reacciones del
sistema están basadas exclusivamente en la posición actual
y el destino.
– Si otros parámetros juegan un rol (usar información de
transito) puede ser más difícil entender las causas detrás del
comportamiento del sistema.
26
Reducir la brecha de sensibilidad
• Es importante que usuario sea consciente de la
información sensorial que usa el sistema:
– Sólo se reducirá la brecha si el usuario tiene noción del
significado de esa información.
• Descargar información alertando al usuario que la
descarga se hace sobre la red GSM y no sobre WiFi.
• Sensibilidad al contexto supone que situaciones similares
(un contexto) son representadas por un estímulo similar.
– Los sensores se usan para determinar contextos: en
contextos similares la información sensorial de las
propiedades características son similares.
• Dificultad: determinar las propiedades características y
relevantes.
27
Ejemplo: contexto de una reunión
• Nos damos cuenta que hay una reunión si entramos a una
habitación y hay gente sentada y hablando.
• Hacemos un análisis (implícito) de la información sensorial
y la comparamos con situaciones experimentadas
previamente.
• Caso de estudio:
– una reunión está sucediendo en la Universidad de Stuttgart
en el primer piso del edificio SimTech a las 10am.
– a la vez otra reunión está sucediendo en Lancaster en
InfoLab en el segundo piso.
– Comparemos las lecturas de sensores de las dos situaciones
y otras dos mas: una sesión con estudiantes en un
laboratorio en Stuttgart, y la limpieza de una sala de reunión
en Lancaster.
28
Ejemplo (cont.): lectura de sensores
Reunión
Stuttgart
Reunión
Lancaster
Laboratorio Limpieza
Ubicación
Geográfica
Stuttgart Lancaster Stuttgart Lancaster
Luz Prendida Apagada Apagada Prendida
Numero
personas
7 9 8 1
Idioma Alemán Inglés Alemán Ninguno
Actividad en la
habitación
Sentados Sentados Sentados En movimiento
Consumo de
energía en la
habitación
2kw 1.6kw 3.4kw 3kw
Dispositivos en
uso
Notebook,
teléfono
Proyector,
notebook
Notebook,
teléfono
Aspiradora
29
Ejemplo (cont.): contar propiedades similares
Reunión
Stuttgart
Reunión
Lancaster
Laboratorio Limpieza
Reunión
Stuttgart
7 1 4 1
Reunión
Lancaster
1 7 2 1
Laboratorio 4 2 7 0
Limpieza 1 1 0 7
30
Contexto Input del sensor esperada
Reunión - Varias personas presentes
- Interacción entre las personas
Usuario mirando TV - Color/intensidad de luz cambiando
- Nivel de sonido (no en silencio)
- Dentro de una habitación
- El usuario está mayormente quieto
Encontrar parámetros de caracterización
• El enfoque general es determinar qué input del (de los)
sensor(es) se espera en un cierto contexto.
– Siempre puede haber situaciones que sean mal clasificadas.
• Las descripciones pueden hacerse a distintos niveles de
abstracción:
– Gente presente vs. un sensor pasivo infrarrojo indicando
movimiento.
– Las descripciones en general dependen del tipo de sensores
que se asumen.
• Encontrar los parámetros que caracterizan un contexto que
se desea detectar y encontrar/definir formas para medir
esos parámetros.
31
Sensores que usamos
• Actualmente se usan una gran variedad de sensores para
recolectar información contextual:
– GPS, para ubicación y velocidad,
– Luz y visión, para detector objetos y actividades,
– Micrófonos, para información de sonido, actividades y habla,
– Acelerómetros y giroscopios, para movimientos, orientación y
vibración,
– Sensores de campo magnético: brújula para orientarse,
– Sensores de proximidad y tacto, para detector interacción
explícita e implícita,
– Sensores de temperatura, humedad y presión, para evaluar
el ambiente.
32
Sensores que usamos
• También existen sensores para determinar el contexto
psicológico de un usuario:
– Respuesta galvánica de la piel: mide la resistencia entre dos
electrodos en la piel.
– El valor medido depende de cuán seca esté la piel.
– Puede usarse para detectar reacciones que cambian la
sequedad de la piel, por ejemplo sorpresa o miedo (los
detectores de mentiras usan el mismo mecanismo).
– EEG, ECG, etc: sensar la actividad eléctrica del cerebro.
• En principio cualquier tipo de sensor disponible en el
mercado puede usarse para alimentar un sistema con
información de contexto.33
Matching Información Sensorial a Contextos
• Se usan técnicas de machine learning (aprendizaje) y data
mining (minería de datos).
• Algoritmo simple genérico:
– Describir el conjunto de propiedades que define a una
situación mediante, e.g., reglas (tabla de comportamiento).
– Dada una situación, el sistema monitorea su input sensorial y
chequea si las características matchean el input sensorial.
– Se pueden usar sistemas simples basados en reglas (tabla
de comportamiento).
34
Matching: Información Sensorial a Contextos
• Otro enfoque: guardar situaciones típicas y calcular
propiedades representativas para esas situaciones.
• Dada una situación nueva, las propiedades se calculan y
se compara a las situaciones previamente aprendidas.
• El contexto actual puede computarse usando un algoritmo
simple de matching llamado “nearest neighbor matching”.
• La calidad se evalúa para determinar cuán bien funciona el
sistema.
• Optimizar algoritmos para mejorar precision y recall.
35
Presición
• Precision (presición): la razón entre el número de
clasificaciones realizadas correctamente y el número total
de clasificaciones que hizo el algoritmo. De todos los
matcheos que hizo el algoritmo, cuantos deberián ser
matcheados realmente.
36
Universo de situaciones
Situaciones de Relax
P = 6/8 = 0.75
Recall
• Recall (exhaustividad): proporción de clasificados
correctamente por el algoritmo comparado con el total de
las instancias correctas, con total independencia de que
éstas hayan sido detectadas por el algoritmo o no. De
todos los matcheos existentes, cuántos pudo determinar el
algoritmo.
37
Universo de situaciones
Situaciones de Relax
R = 6/10 = 0.6
Resumiendo
• La idea principal de la computación sensible al contexto es
proveer a las computadoras habilidades de percepción
(“ojos y oídos”) de manera que puedan reconocer las
situaciones en las cuales los usuarios interactuan con los
sistemas de información.
• Mediante el uso de sensors, las situaciones pueden
capturarse, detectarse y clasificarse como contextos.
• Cuando el Sistema reconoce en qué contexto la situación
toma lugar, puede usar la información para cambiar,
disparar, y adaptar el comportamiento de la aplicación.
38
Resumiendo
• Crear sistemas interactivos sensibles al contexto es difícil.
• Es importante que los usuarios entiendan el
comportamiento variado y adaptivo de la aplicación y lo
puedan extrapolar a las situaciones en las que ellos se
encuentran.
• Los sistemas deben ser entendibles y conformar con las
expectativas de los usuarios.
• Los sistemas sensibles al contexto bien diseñados proveen
una manera ponderosa de desarrollar aplicaciones user-
friendly.
• Mal hechos solo generan frustración.
39
Referencias
• Albrecht Schmidt (2014): Context-Aware Computing. The encyclopedia of
human-computer interaction 2nd edition (http://www.interaction-design.org).
• Schilit (1994): Bill N. Schilit, Norman Adams, Rich Gold, Michael Tso, and Roy
Want. The PARCTAB mobile computing system. In Proceedings Fourth
Workshop on Workstation Operating Systems (WWOS-IV), pages 34–39. IEEE.
• Dey (1999): Gregory D. Abowd, Anind K. Dey, Peter J. Brown, Nigel Davies,
Mark Smith, and Pete Steggles. Towards a Better Understanding of Context
and Context-Awareness. In Proceedings of the 1st international symposium on
Handheld and Ubiquitous Computing, 304-307.
• Ryan (1998): Pascoe, J., Ryan, N.S., Morse, D.R. Human-Computer-Giraffe
Interaction – HCI in the Field. Workshop on Human Computer Interaction with
Mobile Devices.
• Weiser (1991): Mark Weiser. The computer for the 21st century. Scientific
American, 265(3):94–104, September 1991.
40