Desarrollo de Aplicaciones Móviles Sensibles al Contexto

40
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

Transcript of Desarrollo de Aplicaciones Móviles Sensibles al Contexto

Page 1: Desarrollo de Aplicaciones Móviles Sensibles al Contexto

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

Page 2: Desarrollo de Aplicaciones Móviles Sensibles al Contexto

• 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

Page 3: Desarrollo de Aplicaciones Móviles Sensibles al Contexto

• 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

Page 4: Desarrollo de Aplicaciones Móviles Sensibles al Contexto

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

Page 5: Desarrollo de Aplicaciones Móviles Sensibles al Contexto

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

Page 6: Desarrollo de Aplicaciones Móviles Sensibles al Contexto

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

Page 7: Desarrollo de Aplicaciones Móviles Sensibles al Contexto

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

Page 8: Desarrollo de Aplicaciones Móviles Sensibles al Contexto

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

Page 9: Desarrollo de Aplicaciones Móviles Sensibles al Contexto

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

Page 10: Desarrollo de Aplicaciones Móviles Sensibles al Contexto

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

Page 11: Desarrollo de Aplicaciones Móviles Sensibles al Contexto

Arquitectura de referencia para Sistemas

Sensibles al Contexto

11

Fuente de fotos:

https://www.interac

tion-design.org

Page 12: Desarrollo de Aplicaciones Móviles Sensibles al Contexto

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

Page 13: Desarrollo de Aplicaciones Móviles Sensibles al Contexto

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

Page 14: Desarrollo de Aplicaciones Móviles Sensibles al Contexto

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

Page 15: Desarrollo de Aplicaciones Móviles Sensibles al Contexto

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

Page 16: Desarrollo de Aplicaciones Móviles Sensibles al Contexto

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

Page 17: Desarrollo de Aplicaciones Móviles Sensibles al Contexto

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

Page 18: Desarrollo de Aplicaciones Móviles Sensibles al Contexto

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

Page 19: Desarrollo de Aplicaciones Móviles Sensibles al Contexto

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

Page 20: Desarrollo de Aplicaciones Móviles Sensibles al Contexto

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

Page 21: Desarrollo de Aplicaciones Móviles Sensibles al Contexto

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

Page 22: Desarrollo de Aplicaciones Móviles Sensibles al Contexto

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

Page 23: Desarrollo de Aplicaciones Móviles Sensibles al Contexto

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

Page 24: Desarrollo de Aplicaciones Móviles Sensibles al Contexto

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

Page 25: Desarrollo de Aplicaciones Móviles Sensibles al Contexto

User-Context Perception Model (UCPM)

25

Page 26: Desarrollo de Aplicaciones Móviles Sensibles al Contexto

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

Page 27: Desarrollo de Aplicaciones Móviles Sensibles al Contexto

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

Page 28: Desarrollo de Aplicaciones Móviles Sensibles al Contexto

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

Page 29: Desarrollo de Aplicaciones Móviles Sensibles al Contexto

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

Page 30: Desarrollo de Aplicaciones Móviles Sensibles al Contexto

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

Page 31: Desarrollo de Aplicaciones Móviles Sensibles al Contexto

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

Page 32: Desarrollo de Aplicaciones Móviles Sensibles al Contexto

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

Page 33: Desarrollo de Aplicaciones Móviles Sensibles al Contexto

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

Page 34: Desarrollo de Aplicaciones Móviles Sensibles al Contexto

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

Page 35: Desarrollo de Aplicaciones Móviles Sensibles al Contexto

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

Page 36: Desarrollo de Aplicaciones Móviles Sensibles al Contexto

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

Page 37: Desarrollo de Aplicaciones Móviles Sensibles al Contexto

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

Page 38: Desarrollo de Aplicaciones Móviles Sensibles al Contexto

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

Page 39: Desarrollo de Aplicaciones Móviles Sensibles al Contexto

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

Page 40: Desarrollo de Aplicaciones Móviles Sensibles al Contexto

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