Académique Documents
Professionnel Documents
Culture Documents
Abstracto
Internet de las tecnologías y aplicaciones de las cosas están evolucionando y ganando tracción continua en todos los ámbitos y entornos, incluyendo casas, ciudades, los
servicios, la industria y las empresas comerciales. Sin embargo, todavía quedan muchos problemas que deben abordarse. Por ejemplo, la visión de la IO se centra
principalmente en el aspecto tecnológico y la infraestructura, y sobre la gestión y el análisis de la enorme cantidad de datos generados, mientras que hasta ahora el desarrollo
de interfaces de front-end y de usuario para la IO no ha jugado un papel relevante en la investigación. Por el contrario, las interfaces de usuario pueden jugar un papel clave en
la aceptación de las soluciones de la IO por adoptadores finales. En este trabajo se discuten los requisitos y escenarios de uso cubren los aspectos de extremo delantero de
sistemas de IO y se presenta un enfoque basado en modelos para el diseño de tales interfaces por: la definición de componentes específicos y patrones de diseño utilizando
un lenguaje de modelado visual para las aplicaciones de la IO; que describe una implementación de la solución que comprende también la generación automática de código a
partir de modelos; y por que muestra la solución en el trabajo.
palabras clave: Internet de las cosas, de desarrollo basada en modelos, la interacción del usuario, patrones de diseño, aplicaciones móviles, el modelado, la
experiencia del usuario, ingeniería de software, IFML
1. Introducción la vida cotidiana de los consumidores también. Por lo tanto, tal y como ha sucedido en
La interacción del usuario juega un papel crucial en una gran clase de otros campos como la Web, móviles y portátiles, interfaces de usuario en el ecosistema
mercancías y sistemas blandas. Esto es cierto también para la Internet de los de la IO desempeñarán cada vez más un papel clave en la aceptación de los usuarios
sistemas de objetos (IO), aunque este aspecto ha sido descuidado fre- finales. De hecho, las cosas inteligentes conectados entre sí por el paradigma de la IO
cuentemente. De hecho, la corriente de visión IO se centra principalmente en el pueden cooperar e intercambiar información, pero su objetivo final es proporcionar valor
aspecto tecnológico y de infraestructura, y sobre la gestión y el análisis de la a la perso- PLE. Dicho valor puede ser percibido sólo a través de apro- comió interfaces
enorme cantidad de datos generados [13]. Hasta el momento, el desarrollo del de usuario, que visualizan información (a través del tablero de instrumentos, informes, o
front-end de las aplicaciones de la IO e interfaces de usuario para la IO ha sido la infografía), permitir al usuario navegar por la información, y también interactúan con
cubierto por un conjunto muy limitado de la investigación [46]. En el otro lado, una los dispositivos, estableciendo las propiedades o la regulación de su comportamiento.
gran cantidad de investigación se ha centrado en escenarios relacionados con el En este artículo se propone un enfoque basado en modelos para el diseño de
uso industrial de la IO (IIoT) [7, 8], y de máquina a máquina (o sensor a sensor) interfaces de usuario de sistemas de IO, por defin- ing componentes de interfaz de
comu- nicación [9-11 ]. Iniciativas como Internet Consorcio Industrial (CII) 1 demostrar usuario y los patrones de diseño de la IO-específica. En particular, nos centramos en
esta tendencia y la toma de conciencia de ING en crecimiento- de la importancia las siguientes preguntas de investigación, redactadas como objetivos de investigación:
de esto dentro de las em presas com-. Sin embargo, la IO ha ido mucho más allá
del contexto planta industrial: la IO es (y será cada vez más ser) una parte de
• RQ1: Definir los principales conceptos de dominio específico para los casos de uso
típicos de la IO y;
* Correspondencia: marco.brambilla@polimi.it • PI2: Definir un (visual) lenguaje de modelado para el desarrollo de los
1 Politécnico de Milán. Dipartimento di Elettronica, Informazione e Bioingegneria, Piazza L.
Da Vinci 32, 20133 Milán, Italia Lista completa de información sobre el autor está aspectos de la interacción de usuario de las aplicaciones de la IO;
disponible al final del artículo
© El Autor (s). 2017 Acceso abierto En este artículo se distribuye bajo los términos de la licencia 4.0 de Creative Commons Reconocimiento Internacional
(http://creativecommons.org/licenses/by/4.0/), que permite el uso ilimitado, distribución y reproducción en cualquier medio, siempre que se dará información al autor
(s) original y la fuente, proporcionar un enlace a la licencia Creative Commons, e indicar si se han realizado cambios.
Brambilla et al. Diario de Servicios de Internet y Aplicaciones ( 2017) 8:14 Página 2 de 21
• PI3: Definir un conjunto de prácticas de diseño que aumentan la productividad y de ViewComponents, es decir, el contenido y de entrada de datos ele- mentos
simplifica el diseño de los extremos delanteros de la IO; contenidos dentro de ViewContainers; ( iii) La
especificación de eventos, que consiste en la definición de
• PI4: Implementar herramientas impulsada modelo que cubren las fases Eventos que pueden afectar el estado de la interfaz de usuario.
de diseño, despliegue y ejecución de aplicaciones de IO. Eventos puede ser producido por la interacción del usuario, por la
aplicación, o por un sistema externo; (Iv) La especificación transición
En el resto del documento, abordamos estas preguntas mediante la evento, que consiste en la definición del efecto de una Evento en la
definición de soluciones y demostrar la viabilidad de los enfoques propuestos interfaz de usuario; (V) La parámetro de especificación de unión, que
con ejemplos y casos de uso. En particular, las soluciones que proponemos consiste en la definición de las dependencias de entrada-salida entre
se centran en la ampliación de la lengua IFML norma adoptada por el Objeto
Hombre- Grupo agement (OMG) [12], junto con las directrices metodológica y ViewComponents y entre ViewComponents
soporte de herramientas para su implementación. Por ello, la investigación ha y Comportamiento; y (vi) La referencia a Comportamiento desencadenado por los
abordado los siguientes aspectos: eventos del usuario. El efecto de una Evento
está representado por una InteractionFlow conexión, que conecta el
1. Estudio de la IO dominio, adopción y sus aplicaciones actuales evento a la ViewContainer
(respondiendo a RQ1); o ViewComponent afectado por la Evento. los
2. Extracción de casos de uso común para la IO (respon- diendo a RQ1). Los casos InteractionFlow expresa un cambio de estado de la interfaz de usuario: la
de uso identificados durante esta fase incluyen: gestión de dispositivos, la ocurrencia del evento causa una transición de estado que produce un cambio en
detección de dispositivos (o de búsqueda), la interacción con los dispositivos, y la interfaz de usuario. La figura 1 muestra un ejemplo sencillo de modelo IFML,
la recogida de información de los dispositivos; que describe una interfaz de usuario donde el usuario puede buscar un producto
mediante la introducción de algunos criterios de búsqueda en la forma de
3. Definición de un conjunto de nuevos componentes IFML que permite el modelado de las producto de búsqueda. El modelo consiste en una ViewContainer
interacciones de los usuarios de la IO (respondiendo a RQ2);
productos ( que describe una pantalla o página web), que con- tiene dos (ViewComponents
4. Definición de un conjunto de patrones de diseño reutilizables (respondiendo widgets de visuales posicionado en la pantalla), a saber, la Búsqueda de Producto Formar,
a RQ3); donde el usuario puede introducir los criterios de búsqueda y la ProductRe- sultList
5. Aplicación de la solución propuesta como una plataforma de gestión de la Lista, que muestra los resultados de búsqueda. ULTERIORES más, una La
IO, las herramientas de diseño y código ators gene- (respondiendo a PI4). eliminación del producto Acción puede ser activado cuando el usuario selecciona
la Borrar Evento asociado a TResultList productividad. Este modelo ejemplo se
El trabajo se organiza de la siguiente manera: la sección 2 se analiza el ajusta a la metamodelo IFML, un extracto de cual se muestra en la Fig. 2.
fondo de la lengua IFML; Sección 3 muestra los casos de uso común de los
sistemas de IO; La sección 4 presenta las extensiones a IFML adaptado a
aplica- ciones basadas en la IO; Sección 5 presenta patrones de diseño
para el eling mo- de las interacciones del usuario con sistemas de IO; 2.1 móvil IFML
Sección 6 muestra un ejemplo; Sección 7 resume nuestra tación aplica-; diseño de la parte frontal es una tarea más compleja en aplica- ciones
Sección 8 describen tres casos industriales donde el enfoque ha sido móviles debido principalmente a: (i) la pequeñez de las pantallas de los
aplicado y validar las ventajas de la solución; Sección 9 comentarios el dispositivos móviles. Esta restricción requiere un esfuerzo extra en el
trabajo conexas; y la Sección 10 concluye. diseño de interacción en el fin de explotar al mejor el limitado espacio
disponible; (Ii) Las aplicaciones móviles interactúan con otras
características de software y hardware instalados en el dispositivo que se
están ejecutando en; y (iii) la interacción con el usuario, que básicamente
2 Antecedentes sobre IFML se realiza mediante la realización de gestos precisos en la pantalla o
La interacción Flow Modeling Language (IFML) está diseñado para mediante la interacción con otros sensores. Estas interacciones menudo
expresar el comportamiento de contenido, la interacción del usuario y el dependen del dispositivo, el sistema operativo y la aplicación en sí. Esta
control del front-end de aplicaciones de software. Su metamodelo utiliza sección presenta una extensión móvil de IFML diseñado para expresar el
los tipos de datos básicos del metamodelo UML, se especializa varios contenido, la interacción del usuario, y controlar el comportamiento de la
metaclases UML como base para metaclases IFML, y presume que el front-end de aplicaciones móviles [13]. Un extracto de esas extensiones,
modelo de dominio IFML está representado en UML. Un modelo IFML
apoya el siguiente diseño perspectivas: (i) La Ver especificación de
estructura, que consiste en la definición de vista de contenedores, sus
rela- ciones de anidación, su visibilidad, y su accesibilidad; (Ii) La
2.1.1 Contenedores y componentes
Esta sección presenta los conceptos añadido a IFML con el fin tomodel
ver especificación de contenido, que consiste en la definición los envases y componentes que caracterizan
Brambilla et al. Diario de Servicios de Internet y Aplicaciones ( 2017) 8:14 Página 3 de 21
Figura 1 IFML ejemplo: búsqueda de productos, lista y eliminación. Themodel consiste en una ViewContainer productos el cual contiene dos ViewComponents
( Búsqueda de Producto forma y ProductResultList lista); y La eliminación del producto Acción desencadenada una vez que el usuario selecciona el Borrar Evento asociado a
ProductResultList
el contexto móvil. Una nueva clase llamada Pantalla ha sido definido para Un rasgo característico de interfaces móviles es el lización uti- de
representar la pantalla de una aplicación móvil. Desde la pantalla es el predefinido ViewContainers dedicado a las funcionalidades específicas
que se proporcionan en el sistema oper- ating (incluyendo Notificaciones área
contenedor principal de una aplica- ción móvil, que extiende la clase núcleo ViewContainer
de la norma IFML. La clase Barra de herramientas representa un y ajustes
DETERMINADO sub-recipiente de la pantalla. Puede contener otros panel). Estos contenedores a nivel de sistema proporcionan econo- mía de
contenedores y puede tener en su límite una lista de eventos. Se extiende la espacio y hacer cumplir un uso consistente de características mon com-.
clase núcleo ViewContainer de la norma IFML. La clase MobileComponent denota los MobileSystem estereotipo se ha definido para distinguir estos especial ViewContainers.
el componente de vista lar móvil particu- tales como el botón, la imagen, y el
icono. UN MobileComponent está sujeta a los eventos de usuario, que se UN ViewContainer estereotipado como MobileSystem
describen a continuación. denota una región fija de la interfaz, gestionado por el sistema operativo
móvil o por otro marco de interfaz de una manera entre aplicaciones. los MobileSystem
estereotipo se puede aplicar también a una ViewComponents a más
destacado
Figura 2 extracto IFML Metamodel que muestra la flujo de interacción elementos del lenguaje
Brambilla et al. Diario de Servicios de Internet y Aplicaciones ( 2017) 8:14 Página 4 de 21
que la interfaz utiliza los componentes del sistema (como se muestra en la Fig. • SensorEvent, la definición de eventos relacionados con los sensores del dispositivo;
5).
• BatteryEvent, que describe los eventos relacionados con el estado de la
2.1.2 contexto móvil batería;
El contexto es un aspecto de tiempo de ejecución del sistema que de- • NotificationEvent, la agrupación de los eventos relacionados con las
termina la forma en la interfaz de usuario debe ser configurado y el notificaciones genéricas manejados por el sistema operativo;
contenido que se puede mostrar. El contexto asume una particular
relevancia en las aplicaciones móviles, que deben explotar toda la • StorageEvent, que describe los eventos relacionados con la capacidad de
información disponible para ofrecer la interfaz más eficiente. Por lo tanto, el archivado; y
contexto debe reunir todas las dimensiones que caracterizan a la intención • ConnectionEvent, que describe los eventos relacionados con el estado de
del usuario, la capacidad del dispositivo de acceso y de la red de conexión del dispositivo.
comunicación, y el entorno que rodea al usuario. Una nueva clase MobileContext
MobileActionEvent clase ha sido definida para modelar los
extender el Contexto ha sido definido para expresar las características
acontecimientos desencadenados por una acción móvil. Entre las
contextuales móviles.
acciones móviles, tenemos acciones relacionadas con la cámara de fotos
como la Disparar acción y acciones relacionadas con micrófono. La Figura
2.1.3 Eventos 5 muestra un ejemplo de tales eventos. Un usuario toma una foto con la
En esta sección se describen los nuevos tipos de eventos que están era cam- foto del dispositivo y la aplicación muestra el producto
correspondientes a la foto tomada en su caso. Una vez que la foto está
definidos dentro de IFML para el contexto móvil. Una nueva clase MobileUserEvent
permitiendo que el ing modelo- de los eventos de usuario móviles se han disponible, una pantalla preguntando al usuario si quiere usar o volver a
definido. tomar se muestra la foto. los foto disponibles CameraActionEvent está
MobileUserEvent se extiende ViewElementEvent del IFML. los MobileUserEvent asociada a la
se extiende además a un modelo de los eventos de usuario móviles
específicos. Sus extensiones específicas incluyen: Arrastrar y soltar, DoubleTap,CameraAction disparar.
tacto,
y Pulsación larga. Cada uno de ellos representa un evento relacionado con 3 Los casos de uso
el gesto que lo activa. En esta sección se presentan los principales casos de uso que las identificadas para
Las pantallas de la Fig. 4a muestran un ejemplo de la utilización de la Pulsación su aplicaciones de IO. Antes de proceder con las especificaciones de casos de uso,
larga gesto que permite al usuario gestionar la lista seleccionada. La figura 4b ofrecemos un breve resumen de la terminología utilizada en la IO el papel. En
muestra un fragmento de modelo IFML para la gestión de listas. Cuando un particular, vamos a hacer uso de los siguientes conceptos de la IO:
usuario realiza la
Pulsación larga gesto en un elemento de la lista, un pop-up que contiene la • Dispositivo o cosa: Denota todos los tipos de dispositivos que pueden
información del elemento seleccionado se muestra lo que le permite editar o generar información (sobre evento físico o estado) e iniciar, modificar o
borrar la lista. Una nueva clase MobileSystemEvent ha sido definido para mantener esos acontecimientos o estados; o que pueden realizar
expresar los eventos del sistema móvil. se extiende acciones.
• Categoría: Los dispositivos de la IO se pueden agrupar en dife- rentes categorías
SystemEvent del IFML. Las siguientes clases se extienden en base a algún criterio, como el tipo, características y ubicación
MobileSystemEvent para eventos específicos del sistema: geográfica.
Brambilla et al. Diario de Servicios de Internet y Aplicaciones ( 2017) 8:14 Página 5 de 21
un
segundo
Fig. 4 Ejemplo de Pulsación larga evento se usa para mostrar las opciones de una lista presionado: un la interfaz de usuario que representa el gesto realizado; segundo el modelo IFML correspondiente
• Terminal: Un terminal es cualquier dispositivo que puede ejecutar una sistemas incluyen sistemas de gestión empresarial como la gestión de
aplicación IO con una interfaz de usuario que puede controlar otros relaciones con clientes (CRM) y la planificación de recursos
dispositivos a través de la red. empresariales (ERP).
• Comunicación: Los dispositivos pueden comunicarse de diferentes • Intermediario: Representa cualquier dispositivo o sistema que actúa como
maneras y se puede conectar con los terminales y los sistemas una puerta de enlace entre el dispositivo de la IO y el terminal en una
externos. Varios de comunicación proto se han propuesto para la IO comunicación indirecta. Los casos de uso que hemos identificado para las
cols alrededor del IEEE aplicaciones de la IO se basan en nuestras experiencias industriales, así como
802.15.X estándar. en una amplia investigación sobre las aplicaciones de la IO disponibles en el
• Sistema externo: Con sistema externo nos referimos a todos los mercado y lo que se espera que sea la interfase de usuario de las aplicaciones
sistemas conectados a una red en la que la información de de la IO en diferentes áreas de su aplicación .
dispositivos y terminales puede ser almacenada, procesada y
recuperados. Ejemplos de la externa
Fig. 5 Ejemplo de uso de MobileAction ( Disparar), MobileActionEvent ( Foto disponible) y MobileSystem estereotipo
Brambilla et al. Diario de Servicios de Internet y Aplicaciones ( 2017) 8:14 Página 6 de 21
En particular, nos basamos en la experiencia directa de los escenarios en los 4.1 Modelo de contenido
campos de la construcción de monitoreo (con sensores y actuadores que En esta sección se presenta el modelo de contenido de un sistema de la IO. El
controlan el estado de los grandes recintos utilizados para eventos públicos), las modelo diseñado cubre los casos de uso que se presentan en la Sección 3, con un
ciudades inteligentes (que cubren las necesidades de seguimiento de flujo de multi-inquilino y perspectiva de la empresa. De hecho, los casos de uso descritos
personas, incluyendo peatones y vehículos, la disponibilidad de estacionamiento y hasta ahora representan la pers- pectiva de un único sistema IO. En base a esto,
transporte público), ING mercado y el monitoreo de ventas (para el control de las ahora apuntamos a una plataforma que soporta múltiples sistemas de IO dentro y
interacciones con los escaparates de las tiendas y artefactos), y el sensor masiva fuera de las empresas. Por lo tanto, el modelo propuesto permite definir una
Desplegar ción de bienes comerciales para el mantenimiento adaptativo (grandes infraestructura única para una plataforma de aplicaciones múltiples usuarios que
electrodomésticos). Además, investigamos los usos po- sible de los productos de pueden servir a varios clientes al mismo tiempo.
la IO equipados para el mercado de consumo, producida por los vendedores
famosos (Philips, Bticino, Vimar, y otros). Fuera de este análisis se derivó un
conjunto de casos de uso abstractos que cubren todos estos escenarios. La Figura 7 muestra una pieza de modelo de contenido. El modelo
Presentamos los casos de uso utilizando el siguiente esquema: descripción, el comprende los conceptos necesarios para el modelado de los usuarios de la
actor principal, y aplicación y la estructura de una organización y sus clientes y los conceptos
necesarios para definir los servicios de la IO.
tareas principales. La lista detallada de los casos de uso se presenta en la Tabla 1. • Usuario, que representa al usuario físico que acceder a la aplicación. El
usuario puede ser o bien una CustomerUser
El usuario de la aplicación IO podría tener papeles dife- rentes, definidos o una OrganizationUser refiriéndose respectivamente a una al cliente central o una
como un conjunto de acciones permitidas. Las funciones principales son: Administrador, empresa.
el usuario que tiene derechos de acceso a todo el sistema, incluyendo los • Inquilino, este concepto define un dominio de acceso, ya sea para una
siste- mas externos; Ejecutante, el usuario que puede gestionar y actuar organización o un cliente. El inquilino se caracteriza por sus propias
interacción con los dispositivos de la red local; y Espectador, configuraciones y diseño cal gráficamente. Es la principal condición de
partición para los datos.
el usuario que puede mostrar la información de los dispositivos o la información
sobre el entorno monitorizado por esos dispositivos. Los casos de uso • Organización, que describe una empresa que ofrece un ser- vicio al
indicados en la Tabla 1 cubren esencialmente dispositivo y gestión de usuarios, cliente. La organización produce y vende Cosas gestionado por la
la IO uso de dispositivos, y gestión de datos. Los casos de uso identificados aplicación. La organización pertenece a un inquilino u otra
son: Configurar acceso y permiso, Gestión de dispositivos, interactuar con los organización.
dispositivos, Manejo de esperar la señal, dispositivos de búsqueda, Administrar • Cliente, Este concepto describe una empresa que ya sea comprado
notificaciones, Obtener información de los dispositivos, información visualizar, o utiliza el servicio de la organización. El cliente tiene una referencia
compartir información, de almacenes de información, recuperar la información a las organizaciones que venden el Cosas o proporciona asistencia
almacenada. Su caracterización detallada reportado en la Tabla 1 responde a RQ1. técnica.
• Rama, que representa una unidad de organización sub pertenen- ing a un
cliente.
• Ubicación, que representa un lugar físico propiedad de un cliente. La
ubicación es el lugar donde se ha instalado una cosa (por ejemplo, oficina,
4 lenguaje de modelado de la IO tienda, y la planta).
En esta sección nos dirigimos a la especificación de un lenguaje de dominio específico para el • Cosa, este concepto representa un objeto genérico CONECTADOS a
diseño de interfaz de usuario de la IO, respondiendo así a Internet, capaz de enviar y recibir datos. Las características de una
PI2. . Las interacciones entre el usuario y los siste- mas de IO, como se muestra cosa se definen por la correspon- diente ThingDefinition y se une a
en la figura 6, se pueden dividir lógicamente en dos fases: (i) Usuario una específica
Terminal comunicación. Esta Ubicación.
fase representa las interacciones entre el usuario y el terminal utilizado • ThingDefinition, que representa la definición de una cosa. Describe
para acceder al sistema IO; y (ii) la expuesta Métrica y el Apoyado Mando.
Terminal IoTdevices comunicación. Esta repre- fase
resiente las interacciones entre el terminal y los dispositivos IO. La primera • Mando, que representa una instrucción que puede ser ejecutado por una
fase puede ser modelado utilizando el estándar IFML y sus extensiones, cosa. Un comando tiene un nombre y un conjunto de CommandParameter
especialmente el IFML móvil (introducido en la Sección 2.1). Esta sección caracterizado por un nombre y un tipo.
se refiere a la segunda fase de las interacciones con tem la IO sis-.
Presenta los nuevos elementos añadidos a la IFML para modelar tanto la eventos• Métrico, este concepto representa una carac- ca- observable de una
y comportamiento asociada a los dispositivos de la IO. cosa. Puede ser una medida física (por ejemplo, temperatura) o un valor
de una variable interna (por ejemplo, número de copias y de horas de
trabajo). Una métrica
Brambilla et al. Diario de Servicios de Internet y Aplicaciones ( 2017) 8:14 Página 7 de 21
Interactuar con los Permite al usuario enviar un conjunto de operaciones de los espectador
• Enviar operaciones
dispositivos dispositivos, que se encargan de llevarlas a cabo. intérprete
• Manejo de rutinas
administrador
se caracteriza por un nombre, una unidad de medición, y un tipo (por 4.2 Interactionmodel
ejemplo, entero, flotante, y boolean). En esta sección se presentan los nuevos componentes que permiten hacer referencia
• Medida, que representa un valor de un indicador en una fecha y hora específica. Un a los conceptos de la IO durante el ing modelo- de la interfaz de usuario para las
conjunto de medidas que constituye la serie de tiempo. Cosas sendmeasures al aplicaciones basadas en la IO. Estos conceptos incluyen las acciones IO-específicos y
sistema de ejecución de servidor a intervalos regulares o cuando se producen los eventos de dispositivos IO.
eventos particulares.
Brambilla et al. Diario de Servicios de Internet y Aplicaciones ( 2017) 8:14 Página 8 de 21
Fig. 6 Descripción general de la interacción del usuario con los sistemas de IO a través del terminal, que consiste en el envío de comandos y solicitando o seguimiento de los datos de los dispositivos de IO
4.2.1 acciones de IO mediante Métrico y Medida ( que en realidad contienen todos los metadatos sobre los
Esta categoría comprende los componentes que describen las acciones activan formatos de transferencia de datos, tamaño, etc.).
cuando el usuario interactúa con los dispositivos IO dife- rentes. Esas acciones se
pueden agrupar en dos categorías: las acciones del dispositivo, que representan las Establecer acciones. Esta categoría incluye las acciones que permiten al usuario
acciones enviadas directamente a los dispositivos; y las acciones de intermediación, enviar a uno o más dispositivos, una serie de identificadores de las operaciones o
programas que estos dispositivos tienen que realizar o ejecutar. Suponemos que las
que representan las acciones enviadas a los dispositivos a través de una operaciones son conocidos a priori por los dispositivos, por lo tanto, cuando enviamos
intermediario ( un componente que gestiona la comunica- ción entre el un identificador de una operación para un determinado dispositivo, el dispositivo sabe
usuario y los dispositivos). Cada categoría puede ser descompuesto en cómo realizar la operación correspondiente. los Conjunto las operaciones se utilizan
dos subcategorías: Conjunto principalmente para configurar los dispositivos (por ejemplo: cambiar el rango en el
y Obtener comportamiento. Observe que el modelo de contenido se encarga de la definición de que los sensores están
los conceptos relacionados con la transferencia de datos,
activado) y para realizar acciones específicas, tales como encender y apagar el al evento. los ActivationExpression con- texto. ConnectivityType <>
dispositivo. Hemos definido una nueva clase, “NINGUNO” establece que el
setAction, que permite el modelado de esas acciones (véase la Fig. 3). SingleInformationEvent se activará sólo cuando hay una red
activada en el terminal.
2. Evento se aproxima. Es un evento que permite capturar
la primera señal enviada por el dispositivo al que está asocia- dos. Este
Obtener acciones. los Obtener Las acciones se utilizan principalmente para
evento se usa cuando los datos transmitidos por el dispositivo ha de ser
recuperar la información de los dispositivos, categoría de dispositivos, un pro
mostrados al usuario sólo una vez, es decir, cada vez que se detecta el
Gramor un operation.We han definido una nueva clase, ción GetAc-, que permite el
dispositivo por primera vez por el terminal.
modelado de esas acciones (véase la Fig. 3). La clase getAction se ha ampliado
aún más a REPRESENTA los datos específicos para recuperar. Ejemplos de esos
Una nueva clase, ApproachingEvent, extensión
datos incluyen detalles y estado del dispositivo, información RESPETA por el
SystemEvent ha sido definido para modelar los eventos que se
dispositivo y el estado de la operación asignado al dispositivo.
aproximan. El uso de este evento es ejemplificarse en la Fig. 9. En
este ejemplo, la información del dispositivo se muestra al usuario
una vez que el usuario entra en el área de cobertura del dispositivo
de transmisión a través de Bluetooth. los ActivationExpression
las acciones del Plan. Para las acciones anteriores, se supone que los
dispositivos se ejecutan las operaciones especificadas una vez que el usuario "Contexto. ConnectivityType = “Bluetooth” indica que el usuario
activa la acción. Pero existen otros casos en los que el usuario desea programar recibe información desde el dispositivo sólo cuando la conectividad
la ejecución de una acción determinada en un momento determinado. Hemos Bluetooth está activada en su terminal.
definido una acción específica, llamada PlanAction, para modelar las operaciones
que no se ejecutan inmediatamente por los dispositivos pero sched- ULed para
la ejecución (una o varias veces) en un momento posterior. PlanAction es una eventos de acción. Esta categoría agrupa dos tipos de eventos:
acción asincrónica que espera hasta la hora prevista para la ejecución de la evento de temporizador, que denota el tiempo en que está programada la acción
operación. Se introduce dispositivos de la selectivos, el tiempo de ejecución, ado aso- para su ejecución; y Repita el caso,
operaciones, y opcionalmente (para las acciones repetitivas u operaciones) el especificando el tiempo en el que se repite la ejecución de la acción
número de repeticiones. ciados aso-. Hemos definido una nueva clase para cada tipo de estos
eventos: TimerEvent y
RepeatEvent.
4.2.2 acontecimientos de la IO
En esta sección se describen los nuevos eventos definidos como extensión IFML 5 patrones de interacción para la IO
para el dominio de la IO. Esos acontecimientos se agrupan en: eventos de En esta sección, se presentan las interacciones de la IO bajo un punto de vista
dispositivos, y los eventos asociados a las acciones de la IO. orientado a los problemas, con el objetivo de mostrar algunas soluciones ejemplares
y reutilizables a los problemas típicos, respondiendo así a PI3. Se introduce un
número de patrones que se pueden utilizar para hacer frente a los problemas típicos
en el diseño de las interacciones del usuario (UI) con el objetivo de show-ing la
Eventos de dispositivos IO. Los dispositivos de la IO emiten señales específicas
expresividad de las extensiones de la IO diseñados. Mostramos la correspondencia
que contienen información acerca de su estado o sobre lo que están supervisando.
entre esos patrones y los patrones de interfaz de usuario se define en el contexto de
Esas señales son captadas por la captura de eventos específicos y se envían a los
IFML [14]. También presentamos un conjunto de patrones de sincronización de
usuarios (terminales) en forma de notificaciones. Esos acontecimientos se agrupan
datos alternativos que pueden ser relevantes para diferentes soluciones de IO, y se
en dos categorías:
analiza su compatibilidad con los patrones de interfaz de usuario para la IO.
El uso de este evento se ejemplifica en la Fig. 8. En este ejemplo, Los patrones de diseño de interfaz de usuario para los sistemas de IO se pueden agrupar en tres
la información del dispositivo se muestra al usuario sólo una vez que categorías: Establecer patrones, Obtener patrones, y
determina si el ViewElement asociado está activo o inactivo, Esta categoría reagrupa los patrones que permiten al usuario enviar al
asociado dispositivo un conjunto de operaciones a ejecutar.
Brambilla et al. Diario de Servicios de Internet y Aplicaciones ( 2017) 8:14 Página 10 de 21
Fig. 8 Ejemplo de uso de SingleInformationEvent. Una notificación se muestra al usuario cuando se activa el evento
La Figura 10 es un ejemplo de un patrón de esta categoría, Un dispositivo una 5.1.3 patrones basados en eventos
operación, un patrón que permite al usuario establecer una operación para ser Esta categoría reagrupa los patrones desencadenados por una ocurrencia de una
ejecutado por un dispositivo específico. El usuario selecciona un dispositivo de serie de eventos específicos. La Figura 12 ejemplifica una tern Pat- de esta
interés a partir de una lista de los dispositivos del sistema. Luego, se elige la categoría, Tire de la Información. Este patrón permite al usuario verificar la
operación que se formó per- de una lista de operaciones apoyadas por el dispositivo disponibilidad periódicamente de nuevos datos de los dispositivos. Para ahorrar
seleccionado. algunos recursos como la energía, de los datos que pueden ser retrasada por una
cierta cantidad de tiempo sin impactar sobre el resultado de la aplicación, el usuario
Otros modelos de esta categoría son: puede decidir activar periódicamente el servicio de escucha y tirar toda la
• Un dispositivo más de las operaciones, información de los dispositivos. Otros modelos de esta categoría son Lanzamiento
• Más Dispositivos una operación, de aplicaciones
• Más dispositivos más operaciones,
• Un dispositivo de un solo programa, y y Empuje de la Información, descrito en el apéndice (Tabla 8).
• Una categoría más operaciones descritas
en el apéndice (Tabla 6). patrones de interacción del usuario 5.2
El trabajo en [14] se presenta un conjunto de patrones de diseño que se pueden utilizar para
5.1.2 patrones Get hacer frente a los problemas típicos (relacionado con la interfaz organización, el contenido y
Esta categoría comprende los patrones de interacción que permiten recuperar la navegación) de modelado de interfaz de usuario en general. Se presenta en la Tabla 2 un
información de un dispositivo, categoría, programa u operación. La Figura 11 es subconjunto de patrones que son relevantes, como la construcción de bloques, de un
un ejemplo de un patrón de este CAT- goría, Obtener detalles de un dispositivo, un modelo de pautas de interfaz de usuario para los sistemas de IO. La Tabla 3 muestra una
patrón que permite al usuario recuperar la información general sobre el dispositivo, correspondencia entre esos patrones de interfaz de usuario con los patrones de la IO
como Id, nombre, descripción, y el modelo. El usuario selecciona un dispositivo introducidas en la Sección 5.1. Como filas de la Tabla 3, se indican las pautas de la IO,
que está interesado en una lista de dispositivos. Otros modelos de esta categoría mientras que las columnas que tienen patrones de interfaz de usuario genéricos. Una célula
son: comprobado (i × j) significa que el j patrón UI XX ha sido (puede ser) utilizados para modelar
• Dispositivos cercanos
Fig. 9 Ejemplo de uso de ApproachingEvent. Los detalles de un dispositivo se muestran a los usuarios como la notificación una vez que entra en el área de cobertura de ese dispositivo
Brambilla et al. Diario de Servicios de Internet y Aplicaciones ( 2017) 8:14 Página 11 de 21
casa inteligente solicitud. . La interfaz de usuario en la figura 13a se divide en tres caminos:
(i) Administración de cámaras. Cuando el usuario selecciona gestionar la cámara desde la
Luces, contiene una lista de las luces disponibles con su estado de alquiler Cur- ( EN o
El permiso de acceso y configuración. La seguridad es un tema clave en sistemas de
APAGADO). El usuario puede cambiar el estado de la luz seleccionada pulsando
IO. En la sección 3, se ha informado de las funciones comunes en un sistema IO. La
sobre / de botón asocia- dos a cada luz; (Iii) gestionar las alarmas. El camino que
configuración de la misión y derechos de acceso per- se realiza mediante el uso de los
permite al usuario ver los registros de las últimas alarmas. Una vez que el usuario
zuecos CRUD de usuarios, grupos y mediante la asignación de los derechos de acceso
selecciona gestionar alarma desde la pantalla de inicio, una nueva pantalla Alarmas
al grupo de usuarios. El control de acceso es entonces administrado por el Iniciar sesión y
recientes Se muestra que contiene una lista de los últimos alarmas.
Gestión de usuarios patrones (véase la Tabla 2).
La Figura 13c muestra el modelo IFML que describe la interacción del usuario de la
5.3 patrones de sincronización de datos
pieza de casa inteligente solicitud. El modelo de interacción se obtiene mediante la
Hay varios factores a considerar cuando se trata de la construcción de un modelo para
combinación de los siguientes patrones de interacción con el usuario de la IO:
describir la alineación de datos. patrones de sincronización de datos han sido
ampliamente estudiado en la informática. Se presentan los patrones que se pueden
• Obtener información de una categoría, se utiliza para recuperar el estado
aplicar en el contexto de las aplicaciones basadas en la IO en la Tabla 4, mientras que
actual de las luces controladas;
una síntesis de la compatibilidad entre los patrones y los patrones de interacción de
• Obtener estado del dispositivo, se utiliza para recuperar el estado actual de Camera01;
usuario para las aplicaciones basadas en la IO se informa en la Tabla 5. La tabla
enumera los patrones de interacción de usuario para las aplicaciones basadas en la
• Obtener información del dispositivo, Se utiliza para recuperar la
IO como filas y los datos sincronizada patrones NIZATION como columnas. Una célula
información sobre el objeto supervisado (imagen mostrada en la pantalla
marcada indica una posible coincidencia en la adopción de la correspondiente pareja
de Cámara 01);
de patrones.
• Un dispositivo una operación, utilizado por ejemplo para apagar el Light01;
7 Aplicación
Además de la definición formal de las extensiones de la IO a la lengua IFML y
un modelo de pautas de diseño de interfaz de usuario para la IO, nuestra
investigación incluyó la implementación de una plataforma para el desarrollo de
aplicaciones móviles y web para interactuar con los sistemas de IO, con el
objetivo de respondiendo a PI4. Esto se ha logrado en colaboración con
WebRatio 2, una empresa dedicada a las basado en modelos
La Fig. 11 Ejemplo de Get Patrón: obtener detalles de un dispositivo
Brambilla et al. Diario de Servicios de Internet y Aplicaciones ( 2017) 8:14 Página 12 de 21
desarrollo de interfaces de usuario y ahora la construcción de una nueva oferta para la IO 3. automatiza la producción de los componentes de software en todos los
La plataforma se basa en un único modelo de datos estática de propósito niveles de la aplicación y la conexión entre la aplicación y APIs externas.
general (introducido en la Sección 4.1) que representa cualquier Desde la perspectiva arquitectónica, podemos ver la plata- forma como una
infraestructura para la gestión de sistemas de IO. Nuestra tación aplica- aplicación de servidor sin estado multiusuario y un conjunto de aplicaciones
basó en WebRatio, un entorno de desarrollo IFML soporte que comprende de cliente de espesor. Clientes a mantener la sesión de los usuarios
varios modelado per- perspec- e incluye un marco de generación de código autenticados y son responsables de la com- posición de la interfaz gráfica de
que usuario. Sin lógica de presentación se ejecuta en el servidor. El backend
sirve de datos, ya sea en la moda tirar o empujar, y ejecuta la lógica de
negocio.
Descripción
selección por defecto Simula la elección de un usuario en el acceso inicial de una lista,
presentes en nuestra tecture archi- incluyen: (i) Identidad, que proporciona
seleccionando así una instancia predeterminada. información para la gestión de usuarios; (Ii) Red, que agrupa los conceptos
relacionados con la estructura organizativa de los actores; (Iii) Inventario, que
forma de varios campos Formulario para la presentación de información a través de
varios campos. agrupa los conceptos relacionados con la definición de las cosas; (Iv) Datos, que
permite a los clientes acceder al valor real recogida por los sen- sores de la
campo precargado Variante de multi-campo Formwhere algunos campos están
IO; y V) Ver, lo que permite la gestión de todos los recursos gráficos utilizados
precargados con los valores existentes.
por los clientes.
Preasignado campo Formwhere el valor de un campo de selección es
de selección pre-seleccionada.
Iniciar sesión Reconoce y comprueba la validez de una identidad utiliza para firmar las solicitudes posteriores. Los clientes se comunican sólo con
proporcionada por el usuario. la forma en puerta-API, y nunca directamente con los micro-servicios. El cliente
construye dinámicamente la interfaz de usuario utilizando los recursos comunes
Gestión de usuarios Espectáculos y permite editar la información
applicationdependent asociado con la identidad de un recuperados por el servicio (en el proxy) junto
usuario autenticado.
Tabla 3 Síntesis de los patrones de interacción de usuario utilizado para modelar patrones de IO
usuario detalles MasterMultinivel selección forma campo Datos campos de Búsqueda Búsqueda Iniciar sesión Perfil de
datos por defecto multicampo precargado miran hacia arriba selección en básica Locationaware usuario de
maestros cascada pantalla
dispositivo de búsqueda
Dispositivos cercanos
extraer información
inicio de la aplicación
extraer información
Página 13 de 21
Brambilla et al. Diario de Servicios de Internet y Aplicaciones ( 2017) 8:14 Página 14 de 21
con las plantillas específicas para cosas y métrica, y los elementos gráficos el horno. Será visualizar información relacionada con el uso del
de propiedad del corresponsal inquilino. horno. La información a Visual_Up ize incluyen: secuencias de
La figura 14 muestra un ejemplo de una interacción entre el cliente y el API cocción en orden temporal y detalles (fechas y horas, finalización
de puerta de enlace a fin de realizar una solicitud. Inicialmente el cliente porcentaje edad, la carga del carro, el consumo de energía
solicita un token mediante el uso de la calculado y perfil de temperatura) de la cocción en curso y hecho.
/autenticar punto final. La API de puerta de enlace a continuación, consulta la Identidad Asimismo, permitirá enviar recetas al horno.
microService para verificar las credenciales del cliente y generar un token. El
cliente ahorra el token y utilizarlo para las solicitudes posteriores. En el caso
ejemplificado, el cliente realiza una petición para recuperar todas las Cosas 2. El Tablero de instrumentos para la administración de energía. Será visu-
reales. En esta sección se presenta la experiencia en tres de ellos. visualizar y gestionar el estado de diversos componentes del horno.
Representan casos significativos de la vida real a la que hemos aplicado
nuestro enfoque, y por lo tanto han sido útiles para que validen nuestra 4. La Tablero de instrumentos receta deberá permitir visualizar, editar,
dispositivo de búsqueda
Dispositivos cercanos
extraer información
inicio de la aplicación
insertar información
Página 15 de 21
Brambilla et al. Diario de Servicios de Internet y Aplicaciones ( 2017) 8:14 Página 16 de 21
un segundo
do
La Fig. 13 Ejemplo de modelado basado en patrón: un una pieza de interfaz de usuario de casa inteligente solicitud; segundo Los objetos inteligentes considerados en casa inteligente
solicitud; do El modelo de interacción con el usuario de la aplicación, obtenida combinando juntos varios patrones de diseño
seguimiento de: (i) los diferentes estados asumidas por la impresora durante dispositivos, con el fin de aumentar el nivel de servicio para los clientes.
un intervalo de tiempo dado; (Ii) los parámetros de impresión (incluyendo la
velocidad, número de copias, y la cantidad de tinta); y (iii) las estadísticas de
efectividad global de los equipos. El objetivo final del sistema es permitir que 8,4 validación preliminar
pre- mantenimiento predictiva y el monitoreo continuo de la En todos los escenarios descritos hemos aplicado nuestro enfoque y se obtuvo
la versión final de las aplicaciones en ejecución
Brambilla et al. Diario de Servicios de Internet y Aplicaciones ( 2017) 8:14 Página 17 de 21
con la satisfacción del cliente. Las aplica- ciones generadas consistieron en una mapa de la ubicación con la posición de los dispositivos. Para optimizar la
implementación basada en la nube del lado del servidor del sistema, además de experiencia, esto tenía que ser manualmente implementado en Javascript. En
aplicaciones móviles (cuando sea necesario) para múltiples plataformas generadas términos de ejecutabilidad, la plataforma de generadores y la ejecución
en Córdoba PhoneGap distribución ción. En esta etapa, ya que la plataforma no estaban cubriendo los requisitos también: toda la estructura ge- neral de la
está todavía completamente industrializado, debido a la diversidad de los clientes aplicación, la navegación y los principales contenidos de las páginas se han
que tuvimos que implementar una solicitud por cliente, en lugar de la solución de generado automat- camente. La parte de interfaces que no podría generarse
múltiples usuarios ideado en nuestro marco conceptual. es básicamente la personalización de la interfaz de usuario de estilo. En
términos de la cobertura de los patrones de diseño, todo el comportamiento
principal podría ser cubierto y se subsumido por uno u otro patrón. Por lo tanto
Aunque no corrimos una validación completa y detallada del trabajo, se el diseño de la estructura de la aplicación básica podría especificarse con un
presenta aquí la evaluación de algunos indicadores de calidad de nuestro enfoque basado en el patrón-. Lo que no pudo ser cubierto con esta era la
enfoque. En términos de adecuación del lenguaje de modelado, podemos conexión entre los patrones: esta parte requiere algún diseño manual y el
reportar el alto grado de satisfacción de los diseñadores. De hecho, los perfeccionamiento de los modelos de Opti-zando la experiencia en el traslado
componentes del modelo de contenido y de interacción del usuario definidos de un caso de uso (es decir, el patrón) a otro.
estaban cubriendo completamente todos los requisitos de todas las
aplicaciones. El único caso que no pudo ser cubierto por completo era
automáticamente la del diseño de la
La Fig. 15 Ejemplo de una aplicación caso real de una interfaz de usuario para el sistema de la IO, para el seguimiento de los parámetros de un sistema de aire acondicionado
Brambilla et al. Diario de Servicios de Internet y Aplicaciones ( 2017) 8:14 Página 18 de 21
Apéndice
P1 Un dispositivo de una Este patrón permite al usuario establecer una operación para ser ejecutado por un
sola operación dispositivo específico. El usuario selecciona un dispositivo de interés a partir de una
lista de los dispositivos del sistema. Luego, se elige la operación que se realiza a
partir de una lista de operaciones apoyadas por el dispositivo seleccionado.
P2 Uno de los dispositivos Este patrón permite al usuario enviar a un solo dispositivo un conjunto de las
más operaciones operaciones a realizar. Las interacciones comienzan con la selección de un
dispositivo de interés. A continuación, el usuario selecciona las operaciones
deseadas a partir de una lista de operaciones compatibles.
P3 Más dispositivos de Este patrón permite al usuario enviar a muchos dispositivos de una operación a ser
una sola operación ejecutado. Las interacciones comienzan seleccionando los dispositivos de interés. A
continuación, el usuario selecciona una operación (a partir de una lista de las
operaciones soportadas por los dispositivos seleccionados) para ser ejecutado por
dichos dispositivos.
P4 Más dispositivos más Este patrón permite al usuario enviar un conjunto de operaciones a diferentes
operaciones dispositivos. Esas operaciones no son necesarias las mismas para todos los
dispositivos, por lo que las operaciones deben ser encuadernados a los dispositivos
que pueden realizar ellos.
P6 Una de las categorías Este patrón permite al usuario configurar las operaciones a diferentes dispositivos en
más operaciones función de los grupos a los que pertenecen, sin necesidad de seleccionar un
dispositivo a la vez.
P7 Obtener datos de un dispositivo El usuario recupera, la información general sobre el dispositivo, como Id, nombre,
descripción, andmodel. El usuario selecciona un dispositivo que está interesado
en una lista de dispositivos.
P8 Obtener estado del dispositivo Este patrón permite al usuario recuperar el estado actual de un dispositivo dado.
Las interacciones comienzan con la selección del dispositivo para el que el
usuario necesita conocer el estado Tho. Entonces, el estado correspondiente se
muestra al usuario.
Brambilla et al. Diario de Servicios de Internet y Aplicaciones ( 2017) 8:14 Página 20 de 21
Patrón
CARNÉ DE IDENTIDAD Descripción Ejemplo
P9 Obtener información del dispositivo Este patrón permite al usuario recuperar la información proporcionada por un
dispositivo sobre el objeto supervisado. Las interacciones comienzan con la
selección del dispositivo para el que el usuario necesita saber aunque la
información del objeto supervisado. A continuación, la información solicitada
se muestra al usuario.
P10 Obtener Información para una Este patrón permite al usuario obtener la información de todos los dispositivos
categoría de la misma categoría.
P11 dispositivo de búsqueda Este patrón permite al usuario buscar un dispositivo específico. La búsqueda
del dispositivo se puede hacer de diferentes maneras dependiendo de la
aplicación y de los dispositivos.
P12 Dispositivos cercanos Este patrón permite al usuario recuperar todos los dispositivos cerca de un
lugar determinado. La ubicación pueden enchufar por el usuario o recupera
de la ContextDimension, Posición, que representa la información de
ubicación del dispositivo utilizado para acceder a la aplicación.
P13 extraer información Este patrón permite al usuario verificar la disponibilidad periódicamente de nuevos
datos de los dispositivos. Para ahorrar algunos recursos como la energía, de los
datos que pueden ser retrasada por una cierta cantidad de tiempo sin impactar
sobre el resultado de la aplicación, el usuario puede decidir activar periódicamente
el servicio de escucha y tirar toda la información de los dispositivos.
P14 inicio de la aplicación Este patrón permite al usuario recuperar la información enviada por los dispositivos
cuando la aplicación no estaba funcionando o cuando él estaba fuera de línea. El
evento de lanzamiento llama al sistema externo y recibe las notificaciones
enviadas por todos los dispositivos cuando el usuario estaba fuera de línea.
P15 insertar información Este patrón permite al usuario visualizar los mensajes enviados por un
dispositivo de la IO como una notificación de inserción.
3 http://www.semioty.com
datos del autor
1 Politécnico de Milán. Dipartimento di Elettronica, Informazione e Bioingegneria, Piazza L. Da Vinci
referencias en Internet de las cosas, WF-IO 2015. IEEE, Milán. pp 46-51. doi: 10.1109 /
1. Koreshoff TL, Robertson T, Leong TW (2013) Internet de las cosas: una revisión de la literatura y WF-IoT.2015.7389025
de los productos. En: Actas de la 25ª australiana Interacción Humano-Computadora Conferencia: 23. Locke D (2016) MQ Telemetry Transport (MQTT) V3.1 Especificación del protocolo.
Aumento de aplicaciones, innovación, colaboración. OzCHI '13. ACM, Nueva York. pp 335-44. doi: https://www.ibm.com/developerworks/library/ws-mqtt/. En línea. Consultado el 06 de septiembre 2016
10.1145 / 2.541.016,2541048
24. Conzon D, Brizzi P, Kasinathan P, Pastrone C, Pramudianto F, Cultrona P (2015) el desarrollo de
2. Vatsa VR, Singh G (2015) Una revisión de la literatura en Internet de los objetos (IO). Int J Comput Syst aplicaciones Industrial explotando visión IOT y modelo de programación conducido. En: Inteligencia
(ISSN: 2394-1065) 2 (08) en Redes de Próxima Generación (ICIN), 2015 18ª Conferencia Internacional Sobre. IEEE. pp
3. Atzori L, Iera A, G Morabito (2010) La Internet de las cosas: Un estudio. Comput Netw 54 168-75
(15): 2787-805. doi: 10.1016 / j.comnet.2010.05.010 25. (2016) Ebbits. http://www.ebbits-project.eu/news.php. En línea. Consultado el 06 de septiembre 2016
10. Vermesan O (2014) Internet de las cosas - a partir de la investigación y la innovación a la implantación del 30. Bernaschina C, Comai S, Fraternali P (2017) IFMLEdit.Org: Model Driven Rapid Prototyping de
mercado. River Publishers, Aalborg. ISBN: 9788793102941 aplicaciones para móviles. En: Actas de la 4ª Conferencia Internacional OnMobile Ingeniería de
11. Farooq M, WaseemM, Mazhar S, Khairi A, Kamal T (2015) Una revisión de Internet de los Software y Sistemas, MobileSoft '17. IEEE Press, Piscataway. pp 207-8. doi: 10.1109 /
objetos (IO). Int J Comput Appl 113 (1): 1-7 MOBILESoft.2017.15
12. Brambilla M, Fraternali P, et al. (2014) The Interaction FlowModeling Language (IFML),
Versión 1.0. Informe técnico, Object Management Group (OMG), http://www.ifml.org
13. Brambilla M, Mauri A, Umuhoza E (2014) La extensión de la interacción de flujo Modeling Language
(IFML) para el modelo de desarrollo impulsado por las aplicaciones móviles para el usuario. En:
Awan I, Younas M, Franch X, Quer C (eds). Sistemas de Información Web móvil: 11ª Conferencia
Internacional, MobiWIS 2014. Proceedings. Springer International Publishing, Cham. pp 176-91.
doi: 10.1007 / 978-3-319-10359-4_15
14. Brambilla M, Fraternali P (2014) Interacción FlowModeling Idioma: Model-Driven Ingeniería interfaz de
usuario de la Web y las aplicaciones móviles con IFML. Morgan Kaufmann Publishers Inc., EE.UU.
16. Berti S, Correani F, Mori G, Paternò F, Santoro C (2004) Teresa: un entorno basado en transformación
para el diseño y desarrollo de interfaces de dispositivos múltiples. En: CHI '04 Resúmenes Extendidos
en factores humanos en sistemas de computación, CHI EA '04. ACM, Nueva York. pp 793-4. doi:
10.1145 / 985.921,985939
17. Paternò F, C Santoro, Spano LD (2009) María: A, declarativa, lenguaje de nivel de abstracción
universal para múltiples aplicaciones orientadas a servicios en entornos ubicuos. ACM Trans
Comput-Hum Interact 16 (4): 19: 1-19: 30. doi: 10.1145 / 1.614.390,1614394
18. Nguyen XT, Tran HT, Baraki H, Geihs K (2015) Frasad: un marco para el desarrollo de aplicaciones
IOT basado en modelos. En: 2015 IEEE segundo Foro Mundial sobre la Internet de las cosas
(WF-IO). IEEE. pp 387-92. doi: 10.1109 / WF-IoT.2015.7389085
19. Patel P, D Cassou (2015) Hacer posible que el desarrollo de aplicaciones de alto nivel para el internet de las
cosas. J Syst Softw 103: 62-84
20. Fleurey F, Morin B, Solberg A, Barais O (2011) Mde para gestionar las comunicaciones con
y entre los sistemas de recursos limitados. En: MODELOS. Springer, Berlín. pp 349-63
2016
22. Mainetti L, L Manco, Patrono L, Sergi I, Vergallo R (2015) Web de mensajes: Un enfoque de diseño basado en
modelos IOT-conscientes. En: IEEE segundo Foro Mundial