ES2311375B1 - Sistema para programacion de dispositivos moviles basados en eventos. - Google Patents
Sistema para programacion de dispositivos moviles basados en eventos. Download PDFInfo
- Publication number
- ES2311375B1 ES2311375B1 ES200602544A ES200602544A ES2311375B1 ES 2311375 B1 ES2311375 B1 ES 2311375B1 ES 200602544 A ES200602544 A ES 200602544A ES 200602544 A ES200602544 A ES 200602544A ES 2311375 B1 ES2311375 B1 ES 2311375B1
- Authority
- ES
- Spain
- Prior art keywords
- rule
- mobile device
- rules
- module
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- VJYFKVYYMZPMAB-UHFFFAOYSA-N ethoprophos Chemical compound CCCSP(=O)(OCC)SCCC VJYFKVYYMZPMAB-UHFFFAOYSA-N 0.000 title 1
- 238000000034 method Methods 0.000 claims abstract description 40
- 230000008569 process Effects 0.000 claims abstract description 37
- 230000004913 activation Effects 0.000 claims abstract description 8
- 230000009849 deactivation Effects 0.000 claims abstract description 6
- 230000008030 elimination Effects 0.000 claims abstract description 3
- 238000003379 elimination reaction Methods 0.000 claims abstract description 3
- 239000000284 extract Substances 0.000 claims description 7
- 238000013515 script Methods 0.000 description 13
- 230000006399 behavior Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 5
- 239000008186 active pharmaceutical agent Substances 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 1
- 239000010931 gold Substances 0.000 description 1
- 229910052737 gold Inorganic materials 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000000344 soap Substances 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
- G06N5/022—Knowledge engineering; Knowledge acquisition
- G06N5/025—Extracting rules from data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Mobile Radio Communication Systems (AREA)
- Telephonic Communication Services (AREA)
- Stored Programmes (AREA)
Abstract
Sistema para programación de dispositivos
móviles basado en eventos.
La invención se refiere a un sistema para
programar un dispositivo móvil (100) basado en eventos, que
comprende:
- un módulo creador de reglas (10), que recoge
indicaciones de un usuario del dispositivo móvil y genera, al menos,
una regla traduciendo dichas indicaciones a
meta-datos de programación;
- un repositorio de reglas (20), que almacena
dicha regla constituida por dichos meta-datos de
programación;
- un módulo de información programable (30), que
proporciona al módulo creador de reglas los
meta-datos que establecen los entes programables
relativos al dispositivo móvil;
- un módulo administrador de ejecución de reglas
(40), que controla la activación y desactivación de dicha regla
extraída del repositorio de reglas, y pasa dichos
meta-datos de la regla como parámetro de ejecución a
un intérprete de reglas, que es enviado a un módulo motor de
ejecución de reglas para su ejecución o para su detención y/o
eliminación; y
- dicho módulo motor de ejecución de reglas
(50), que proporciona un entorno de ejecución donde el intérprete de
reglas puede ejecutarse, convirtiendo dichos
meta-datos en un proceso que constituye la
regla.
Description
Sistema para programación de dispositivos
móviles basado en eventos.
La presente invención se engloba dentro del
campo de las redes de telecomunicaciones, y más en concreto, a la
posibilidad de programar un dispositivo móvil.
Es sabido que en el campo de telefonía móvil se
utilizan frecuentemente abreviaciones y acrónimos. A continuación
se expone un glosario de acrónimos y términos que son utilizados a
lo largo de la presente memoria descriptiva:
- -
- API: Application Programming Interface (Interfaz de programación de aplicaciones)
- -
- BPEL: Lenguaje de descripción de procesos
- -
- BPEL4WS: Lenguaje de descripción de procesos basado en XML
- -
- BPNM: Metalenguaje de descripción de procesos
- -
- Evento telco: evento generado por un teléfono móvil o la red a la que está conectado dicho dispositivo.
- -
- Lenguaje de descripción de procesos: lenguaje que formaliza la descripción de un proceso.
- -
- Metadato: conjunto de datos que estructuran otros datos.
- -
- Servicio web: método estándar basado en XML para acceder a servicios IP. Un Servicio Web es un conjunto de protocolos y estándares que se utilizan para crear una infraestructura de comunicación homogénea con el objeto de intercambiar datos entre aplicaciones.
- -
- Programación de un dispositivo: gestión, combinación o automatización de aplicaciones o servicios propios de un dispositivo móvil según las preferencias del usuario y los datos aportados por diferentes fuentes.
- -
- SMS: Short Message Service (Servicio de Mensajería Corta)
- -
- WSDL: Web Service Description Language. WSDL es un lenguaje basado en XML usado para describir Servicios Web.
- -
- XML: eXtensible Markup Language (Lenguaje de Marcado Ampliable o Extensible)
Actualmente existen varias posibilidades para
programar un dispositivo móvil: desde las más avanzadas y potentes,
que requieren un vasto conocimiento del sistema operativo del
dispositivo, así como de los lenguajes de programación; hasta las
mucho más limitadas, a menudo casi inexistentes, posibilidades que
el propio sistema operativo proporciona al usuario de a pie.
En primer lugar se van a describir brevemente
las distintas posibilidades que existen actualmente en lo que a
programación de dispositivos móviles se refiere:
La forma más potente de programar el
comportamiento de un dispositivo móvil es mediante la utilización
de lenguajes de programación nativos. Cuando se habla de lenguaje
de programación nativo se está haciendo referencia a la utilización
del mismo lenguaje de programación en el que el sistema operativo
está basado. Esta coincidencia de tecnologías permite al
programador acceder (si el fabricante proporciona las APIs para
ello) a muy bajo nivel a funcionalidades básicas del dispositivo
móvil (como puedan ser las APIs de telefonía para la captura de
eventos). De esta forma, el programador es capaz de construir
aplicaciones avanzadas totalmente integradas en el dispositivo
móvil, accediendo al sistema de ficheros, invocando las funciones
de telefonía del dispositivo móvil o tratando eventos telco
capturados mientras el usuario usa normalmente el dispositivo
móvil.
Hasta aquí las buenas noticias. Desgraciadamente
los sistemas operativos de dispositivos móviles a menudo son
propietarios (Motorota, Sharp), lo cual imposibilita la
programación a bajo nivel, o bien están basados en lenguajes de
programación de muy bajo nivel (Windows CE, Symbian) como C y C++,
lo cual convierte su programación en una actividad reservada a
expertos del mundo del software para dispositivos móvil y
totalmente inabarcable para el común de los usuarios. Además, la
migración de cualquier aplicación basada en un lenguaje nativo a
otra plataforma supone automáticamente la necesidad de
re-escribir una gran parte del código.
\vskip1.000000\baselineskip
Como respuesta a los lenguajes nativos y
fundamentalmente a los problemas para el despliegue de la misma
aplicación en distintas plataformas aparecen los lenguajes basados
en máquinas virtuales. Concretamente aparece Java.
Java proporciona un entorno de ejecución
controlado y aislado del sistema operativo. De esta forma se
asegura que el programador no va a tocar ninguna parte vital de
éste. Además dicho entorno es el mismo en todas las máquinas
virtuales, no importa si se programa sobre la máquina virtual de
Symbian o sobre la de Windows CE, de forma que cualquier aplicación
programada en Java puede correr en cualquier plataforma sin
necesidad de ser re-escrita. Se hace, así, bueno el
tan manido eslogan de Java "write once, run everywere", al
menos, en teoría. Java proporciona, además, entornos de
programación mucho más amigables y una sintaxis mucho más sencilla
que C y C++ de forma que la comunidad de desarrolladores Java es más
amplia.
Sin embargo, no es oro todo lo que reluce: Java
no puede acceder al sistema operativo lo cual limita sobre manera
su funcionalidad. Es decir, Java no puede, a día de hoy, capturar
eventos telco del sistema operativo; o lo que es lo mismo, una
llamada de teléfono o un mensaje recibido pasan inadvertidos para la
máquina virtual de Java. Las distintas iniciativas que intentan
dotar a Java de nuevas funcionalidades están trabajando en este y
otros problemas de Java; desgraciadamente, la lentitud de los
organismos de estandarización hace que convivan en el mercado
distintas implementaciones de Java que no siempre son compatibles,
poniendo en entredicho tal "write once, rum everywhere".
Además, a pesar de ser Java un lenguaje relativamente amigable de
fácil aprendizaje sigue fuera de la órbita del usuario de a pie que
ni puede, ni muchas veces quiere, aprender a programar.
\vskip1.000000\baselineskip
Los lenguajes de script nacieron debido a la
necesidad de automatizar y facilitar distintas tareas\ relativas a
la administración de sistemas informáticos.
Los lenguajes de script corren sobre sus
respectivos intérpretes. Un intérprete distinto en función de la
plataforma sobre la que ha de correr el script. Así pues, en ese
sentido, siguen un modelo parecido a Java, sin embargo, alguno de
ellos como Python sí es capaz de acceder al sistema operativo
aunque no permita capturar y tratar eventos telco del dispositivo
móvil. Lo mismo o parecido puede decirse del resto de lenguajes de
scripts comerciales. Sus características básicas los definen como
lenguajes de programación débilmente tipados y no declarativos, lo
cual los convierte en herramientas muy poderosas y fáciles de usar
para tareas relativamente sencillas. Siguen estando, no obstante,
fuera de la órbita del usuario de a pie de un dispositivo
móvil.
\vskip1.000000\baselineskip
O lo que es lo mismo: ¿qué posibilidades le da
un dispositivo móvil a un usuario para programar su comportamiento
ante determinados eventos?. Ninguna o casi ninguna.
Los distintos fabricantes se han limitado a
proporcionar maneras de personalizar el dispositivo móvil, de una
forma muy limitada por el momento. Opciones como la posibilidad de
seleccionar un "ringtone" o tono de llamada distinto para cada
contacto de la agenda, como la posibilidad de asignar una imagen a
cada contacto de forma que ésta aparezca cada vez que el remitente
llama o envía un mensaje. Todo ello puede hacerse de forma
intuitiva (y ajena al mundo de la programación) desde los menús que
proporciona el dispositivo móvil.
Otra funcionalidad que todos los dispositivos
móviles proporcionan y que va en la línea de dotar al usuario de
una manera de intuitiva de moldear el comportamiento de su
dispositivo móvil es la posibilidad de definir alarmas que avisarán
al usuario en un momento dado mediante señales sonoras que éste
puede elegir.
Por otro lado, y en lo que a descripción de
procesos se refiere, hay varias aproximaciones, que inevitablemente
van de la mano: lenguajes de descripción de procesos basados en XML
y notaciones para la descripción de procesos.
\vskip1.000000\baselineskip
BPEL4WS es el lenguaje de descripción de
procesos basado en XML más extendido. Es una potente herramienta
que permite describir complejos procesos empresariales. Eventos,
decisiones, secuencias de acciones, mensajes entre entidades,
transacciones y roll backs... todo proceso empresarial puede ser
modelado con BPEL4WS que utiliza una sintaxis en XML muy cercana
(más bien basada) en los servicios SOAP y en los archivos WSDL.
Los archivos resultantes, a pesar de ser
legibles, no son manejables por un ser humano, y mucho menos por un
usuario normal ajeno al XML, los sistemas de servicios web o las
arquitecturas distribuidas en los que se basa.
\vskip1.000000\baselineskip
BPMN trata de paliar en la medida de lo posible
las carencias de los lenguajes del estilo de BPEL proporcionando
una notación intuitiva basada en gráficos sencillos que cualquier
persona con unas ayudas mínimas puede descifrar sin problemas. BPMN
es usado para la descripción de grandes sistemas empresariales a un
nivel muy alto de manera que resulta fácil en un primer vistazo
comprender, en la medida de lo posible, el funcionamiento del
sistema
descrito.
descrito.
Con el paso del tiempo los dispositivos móviles
han dejado de ser elemento de tareas especializadas y diferenciadas
por su característica de movilidad. Hoy en día la cantidad
información que se puede gestionar desde un dispositivo móvil es
grande, además de ser diversa: desde datos almacenados,
funcionalidades propias del dispositivo, eventos generados por el
dispositivo y gracias a la generalización de Internet y el mundo de
servicios IP, un dispositivo móvil también es capaz de procesar
multitud de datos procedentes de esos servicios.
Tal cantidad de información puede ser combinada
para generar servicios y funcionalidades a medida del usuario. Sin
embargo hoy en día el uso de esa información y funcionalidad se
reduce a aplicaciones o servicios específicos cerrados
proporcionados por proveedores de soluciones de software.
Actualmente no existe una solución técnica que
resuelva el problema de modelar las características de un
dispositivo móvil, aunando capacidades sólo accesibles con
lenguajes nativos con otras de alto nivel en un conjunto homogéneo,
y con significado a nivel de usuario, de eventos capturables,
propiedades chequeables y tareas invocables, fácilmente combinables
en reglas disparadas por eventos que pueden ser descritas a
distintos niveles (por ejemplo, gráficamente de cara al usuario, en
forma de XML de cara al sistema) e interpretadas automáticamente por
el dispositivo móvil (por ejemplo, mediante un script) para generar
el código nativo que constituye el proceso que implementa la regla,
permitiendo así al usuario de un dispositivo móvil programarlo, sin
necesidad de ser un experto
programador.
programador.
Así, por ejemplo, en la patente estadounidense
US-5572571 se establece un método para programar de
manera automática la configuración de red de un teléfono móvil;
mediante este método se consigue transmitir los datos necesarios en
la activación del teléfono móvil sin necesidad de que intervenga el
usuario. Esta invención se refiere únicamente a la programación de
una actividad concreta: la transmisión inicial de los datos
necesarios para la configuración en red del móvil.
En la solicitud de patente europea
EP-0827353 se facilita la programación de un
teléfono móvil mediante un artefacto intermedio que traduce las
instrucciones introducidas utilizando una página Web en códigos de
teclas que utiliza un teléfono móvil concreto para modificar el
comportamiento de sus funcionalidades. Con el método descrito en
este documento, mediante el artefacto intermedio y utilizando un
cable para transmitir los datos al teléfono móvil, se posibilitaría,
por ejemplo, la conexión o desconexión del vibrador de un teléfono
móvil.
En la solicitud de patente francesa
FR-2866456 se dispone de un agente de programación
en el dispositivo móvil que ejecuta aplicaciones multimedia basadas
en los datos recibidos desde un servidor. Se refiere únicamente a
la reproducción de datos enviados desde un servidor a un
dispositivo móvil.
Sin embargo, ninguno de los antecedentes citados
permite la combinación de datos, eventos y funcionalidades de un
dispositivo móvil de tal modo que se puedan crear aplicaciones a
medida del usuario; es decir, no se soluciona el problema antes
indicado respecto a la modelización de las capacidades del
dispositivo móvil y el proceso de traducción entre los distintos
niveles de descripción de reglas disparados por eventos y creadas
por un usuario, desde el modelo gráfico de la regla al proceso que
implementa la regla en código nativo, pasando por el almacenado de
dichas reglas como metadatos basados en XML, sin necesidad de ser
un experto programador.
La invención se refiere a un sistema para
programar un dispositivo móvil. Se entiende como programación del
dispositivo móvil a la gestión, combinación o automatización de
aplicaciones o servicios propios de un dispositivo móvil, así como
el conjunto de eventos que pueda recibir o emitir, creando un
conjunto de procesos a medida del usuario programables manera local
o remota.
Es un objetivo de la presente invención
proporcionar al usuario del dispositivo móvil un entorno totalmente
amigable, intuitivo y suficientemente ajeno al mundo de la
programación que, sin embargo, le permita a éste automatizar el
comportamiento de su dispositivo móvil describiendo el flujo de
tareas definidas por el usuario de forma clara, concreta y
completa.
La invención se refiere a un sistema para
programar un dispositivo móvil basado en eventos según la
reivindicación 1. Realizaciones preferidas del sistema se definen
en las reivindicaciones dependientes.
Hoy en día un dispositivo móvil permite el uso y
modificación de múltiples funcionalidades y datos por parte del
usuario.
Entre las funcionalidades disponibles podemos
encontrar:
- Aplicaciones propias del sistema operativo del
dispositivo móvil como alarmas, calendarios, grabador de voz o
cámara de vídeo.
- Aplicaciones propias del sistema operativo que
gestionan eventos propios de un sistema de telecomunicaciones
móviles como editor de mensajes, interfaz de llamadas telefónicas,
gestor de notificaciones, etc.
- Aplicaciones propias del sistema operativo o
de otra aplicación externa que gestionan datos almacenados en el
dispositivo móvil como gestor de cámara de fotos y/o vídeo, gestor
de grabación de sonidos, editor de imágenes,
etc.
etc.
- Aplicaciones propias del sistema operativo o
de otra aplicación externa que gestionan datos proporcionados por
servicios o repositorios externos y que son accedidos mediante
algún tipo de conexión de datos distinta a las propias de una red
móvil como navegadores Web, aplicaciones que se conectan a servicios
IP, etc.
\vskip1.000000\baselineskip
Entre los datos disponibles por el sistema
podemos encontrar:
- Eventos generados por el sistema operativo.
Pueden ser producidos por elementos del dispositivo móvil como
avisos de batería baja, memoria llena; o por la red en la que se
encuentra operando: llamadas entrantes, mensajes de texto, mensajes
multimedia, etc.
- Datos almacenados en el dispositivo móvil.
- Datos procedentes de servicios externos al
dispositivo móvil.
\vskip1.000000\baselineskip
Mediante la presente invención se permite que
toda esta información y funcionalidad sea Gestionada, combinada y
automatizada para producir aplicaciones específicas a cada
usuario.
Un primer aspecto de la presente invención se
refiere a un sistema para programar dispositivos móviles basado en
eventos que comprende:
- Un módulo creador de reglas, que recoge
indicaciones de un usuario de dicho dispositivo móvil y genera, al
menos, una regla traduciendo dichas indicaciones a
meta-datos de programación;
- un repositorio de reglas, que almacena dicha
al menos una regla constituida por dichos
meta-datos de programación;
- un módulo de información programable, que
proporciona al módulo creador de reglas los
meta-datos que establecen los entes programables
relativos al dispositivo móvil;
- un modulo administrador de la ejecución de
reglas, que controla la activación y desactivación de dicha al
menos una regla extraída del repositorio de reglas, y pasa dichos
meta-datos de la regla como parámetro de ejecución a
un intérprete de reglas, que es enviado a un módulo motor de
ejecución de reglas para su ejecución o para su detención y/o
eliminación; y
- dicho módulo motor de ejecución de reglas, que
proporciona un entorno de ejecución donde el intérprete de reglas
puede correr o ejecutarse, convirtiendo dichos
meta-datos en un proceso que constituye la
regla.
\vskip1.000000\baselineskip
Preferiblemente, de acuerdo con el sistema de la
invención dicho intérprete de reglas, para convertir dichos
meta-datos en un proceso que constituye la
regla:
- analiza dichos meta-datos y
extrae al menos un evento a capturar, y qué tareas o flujo de
tareas a ejecutar cuando se detecte la llegada de dicho evento;
y,
- ejecuta una serie de sentencias para dotar a
dicho proceso en el que corre de herramientas para escuchar el
sistema operativo del dispositivo móvil a la espera de dicho evento
y ejecutar dichas tareas.
\vskip1.000000\baselineskip
Es decir, dicho intérprete de reglas es capaz de
analizar dichos meta-datos, extrae la información
imprescindible para generar la regla (el evento a capturar y las
tareas o flujo de tareas a ejecutar cuando se detecte la llegada del
evento) y, tras esto, ejecuta las sentencias necesarias para dotar
al proceso en el que corre de herramientas para escuchar el sistema
operativo del dispositivo móvil a la espera del evento y ejecutar
las tareas definidas.
\newpage
Dichos meta-datos que establecen
los entes programables relativos al dispositivo móvil puede incluir
eventos que se pueden capturar, acciones que se pueden invocar y/o
propiedades que se pueden chequear de dicho dispositivo móvil. De
esta forma la misma invención puede ser usada para programar usando
conjuntos de eventos, acciones o propiedades distintas sin más que
usar unos meta-datos u otros. Existen múltiples
maneras de implementar dicho módulo de información programable,
desde un sistema de ficheros de meta-datos hasta una
base de datos.
Las maneras de recoger las indicaciones del
usuario pueden ser de múltiples tipos, la presente invención no
especifica una manera única de hacerlo. Sin embargo, algunas
posibilidades son: el uso de un agente software inteligente que
monitorice el uso que del dispositivo móvil hace el usuario e
infiera reglas y patrones; un interfaz gráfico Web o local a través
del cual el usuario pueda especificar sus requerimientos al
respecto; o cualquier tipo de aplicación basada en interacción con
lenguajes naturales que permita al usuario especificar reglas de
comportamiento al dispositivo
móvil.
móvil.
También existen múltiples maneras de implementar
dicho repositorio de reglas, desde un sistema de ficheros de
meta-datos hasta una base de datos.
El sistema de programación de la invención se
puede realizar de manera externa al dispositivo móvil mediante
aplicaciones como una aplicación Web; o también se pueden utilizar
aplicaciones internas que modifiquen los datos de programación del
usuario.
\vskip1.000000\baselineskip
A continuación se pasa a describir de manera muy
breve una serie de dibujos que ayudan a comprender mejor la
invención y que se relacionan expresamente con una posible
realización de dicha invención que se presenta como un ejemplo
ilustrativo pero no limitativo de ésta.
La Figura 1 muestra un diagrama de los elementos
básicos del sistema la invención.
La Figura 2 muestra la arquitectura de la parte
de red basada en Web de un posible ejemplo de implementación de la
invención.
La Figura 3 muestra la arquitectura de la parte
cliente de un posible ejemplo de implementación de la
invención.
La Figura 4 muestra un diagrama de flujo
representativo de un posible ejemplo de regla.
La Figura 5 muestra una forma de interacción
preferida entre el Administrador de la Ejecución de Reglas y el
Motor de la Ejecución de Reglas.
\vskip1.000000\baselineskip
Como se ha indicado antes, se entiende por
programación del dispositivo móvil 100 a la gestión, combinación o
automatización de aplicaciones o servicios propios de un
dispositivo móvil -tales como alarmas, imágenes, agenda-, así como
el conjunto de eventos que pueda recibir o emitir -mensajes,
llamadas o sonidos por ejemplo-, creando un conjunto de procesos a
medida del usuario programables manera local o remota.
A continuación se explica la arquitectura de una
posible implementación del sistema de la invención.
En primer lugar la figura 1 muestra un diagrama
de los elementos básicos del sistema la invención, siendo
estos:
- Un módulo Creador de Reglas 10: que recoge las
indicaciones del usuario y las traduce a meta-datos
de programación generando así, una regla que es almacenada en el
Repositorio de Reglas 20. Una posible forma de recoger las
indicaciones del usuario es el uso de un agente software
inteligente que monitoriza el uso que el usuario hace del
dispositivo móvil e infiere reglas y patrones; un interfaz gráfico
Web o local a través del cual el usuario puede especificar sus
requerimientos al respecto; o cualquier tipo de aplicación basada
en interacción con lenguajes naturales que permite al usuario
especificar reglas de comportamiento al dispositivo móvil. De una u
otra forma la regla que se define puede ser representada de forma
abstracta mediante un diagrama de flujo similar al que se muestra
en la figura 4, en la que se observa cómo existe un evento El que
dispara la ejecución de un conjunto de tareas T1, T2, cuyo flujo
puede controlarse mediante decisores D1.
\newpage
Los metadatos constituyen, por lo tanto, una
representación fácilmente almacenable y consultable del diagrama
mostrado en la figura 4. De forma genérica:
- Un módulo Repositorio de Reglas 20: que
almacena los meta-datos de programación que
especifican las reglas definidas por el usuario.
- Un módulo de Información Programable 30:
proporciona al módulo Creador de Reglas los
meta-datos que establecen los entes programables
relativos al dispositivo móvil, es decir, los eventos que se pueden
capturar, las acciones que se pueden invocar, las propiedades que
se pueden chequear.
- Un módulo Administrador de la Ejecución de
Reglas 40: que controla la activación y desactivación de reglas,
extraídas del Repositorio de Reglas, haciendo uso de módulo Motor
de la Ejecución de Reglas 50. Como se muestra en más detalle en la
figura 5, este módulo asocia los meta-datos a
archivos ejecutables (intérpretes de reglas) que se le pasan al
motor para su ejecución creando el proceso que constituye la
regla.
\vskip1.000000\baselineskip
Este módulo, por tanto, gestiona a los
intérpretes de reglas 70, pequeños programas a los que se le pasan
los meta-datos de la regla MD como parámetro de
ejecución. Los envía al Motor de la Ejecución de Reglas 50 para su
ejecución o pide al motor que los pare y elimine. Un intérprete de
reglas es capaz de analizar dichos meta-datos , y
extrae la información imprescindible para generar la regla (el
evento a capturar y las tareas o flujo de tareas a ejecutar cuando
se detecte la llegada del evento) y, tras esto, ejecuta las
sentencias necesarias para dotar al proceso en el que corre de
herramientas para escuchar el sistema operativo del dispositivo
móvil a la espera del evento y ejecutar las tareas definidas. Es
decir, un intérprete de reglas al ejecutarse analiza los
meta-datos de la regla para acabar convirtiéndose en
el proceso que constituye la regla.
\newpage
Para este caso genérico explicado en lo anterior
el proceso asociado al intérprete de reglas 70 + los
meta-datos de la regla MD en cuestión se podría
resumir en el siguiente pseudo-código:
La ejecución del código anterior primero define
una función que contiene todas y cada de una de las tareas de la
regla, tras hacer esto (en la última línea de código) el intérprete
de reglas se suscribe a la notificación de un determinado evento
(en este caso el mensaje entrante) y registra a la función
anteriormente definida como el manejador de dicho evento, de forma
que será ejecutada cada vez que el evento asociado sea
capturado.
- El Motor de Reglas de Ejecución 50: Es el
módulo encargado de proporcionar un entorno de ejecución donde los
interpretes de reglas pueden correr. Este motor es, por tanto,
responsable de la captura de eventos que disparan las reglas, así
como de proporcionar los artefactos software necesarios para que la
versión ejecutable de las reglas (sea de la naturaleza que sea:
script, lenguaje nativo...) disponga de medios para acceder a las
propiedades o invocar las acciones disponibles en el dispositivo
móvil; esto puede incluir la invocación de servicios del sistema
operativo, pero también de aplicaciones o servicios externos.
La figura 2 muestra la aplicación Web que
permite crear una regla y descargarla en un dispositivo móvil. La
figura 3 muestra el sistema implementado en el dispositivo móvil
para recoger cualquier regla enviada desde Internet, crear una regla
directamente desde el dispositivo móvil o registrar una regla para
que se ejecute cada vez que se detecte el evento que la
dispara.
En concreto, en relación con la figura 2
(servidor), los módulos que el sistema incorpora son los
siguientes:
- Editor de reglas 1: aplicación Web gráfica que
permite al usuario crear y editar reglas dibujando diagramas de
flujo. Dichos diagramas pueden crearse desde cero o bien utilizando
plantillas predefinidas. Se comunica con el Administrador de reglas
2 ya que éste le proporciona toda la lógica de negocio necesaria
para crear, editar, almacenar o enviar reglas. Este interfaz de
usuario está programado en Flash.
- Administrador de reglas 2: módulo que se
encarga de la lógica de negocio necesaria para la creación,
almacenamiento, lectura y envío de dichas reglas. Se comunica con
el Analizador de reglas 3 para analizar el contenido de las reglas,
con el Administrador de datos 5 para acceder al lugar donde están
almacenadas reglas y plantillas basadas en XML y con el Transmisor
de reglas 4 para iniciar el proceso de envío de una de esas reglas
a un dispositivo
móvil.
móvil.
- Analizador de reglas 3: módulo que analiza el
contenido de las reglas. Es necesario para dar una interpretación
gráfica intuitiva a un archivo XML complejo como el que define a
las reglas o plantillas. El Analizador de reglas es un módulo que
proporciona herramientas para diseccionar fácilmente archivos
basados en XML, ya sean esquemas que definen el conjunto de eventos
o acciones disponibles en el dispositivo móvil o archivos basados
en BPEL que definen una regla, plantilla o servicio predefinido
previamente extraído del Repositorio de reglas.
- Administrador de datos 5: módulo que trabaja
con el repositorio de reglas 20 y plantillas. Es necesario para
llevar a cabo tareas de almacenamiento, búsqueda o borrado de
reglas o plantillas. Se trata de un módulo que gestiona los ficheros
XML (BPEL) que definen tanto a reglas como a plantillas o servicios
predefinidos. Así pues es capaz de crear ficheros XML, abrirlos
para edición o borrarlos.
- Repositorio de reglas 20': sistema de ficheros
encargado de almacenar todos y cada uno de los archivos XML que
definen reglas y plantillas.
- Reglas descargables 6: en esta implementación
la descarga de reglas en un dispositivo móvil iniciada desde el
servidor se hace como se explica a continuación. El Administrador
de reglas 2 inicia el proceso pidiéndole al Transmisor de reglas 4
que envíe al usuario un mensaje (SMS) que contiene la URL en la que
regla estará expuesta. La aplicación del usuario (concretamente el
Capturador de reglas 7, que se describe en detalle más adelante)
captura dicho mensaje y extrae la URL para descargarse la regla. El
módulo Web Reglas descargables 6 expone todos ficheros XML
descargables. De esta forma el Capturador de reglas 7 se conecta a
la regla descargable y la descarga.
- Transmisor de reglas 4: módulo encargado en
enviar el mensaje a la aplicación en el dispositivo móvil para que
éste se conecte a Reglas descargables para descargarse el fichero
XML, es decir, la regla. Envía un SMS con una etiqueta
identificativa en el cuerpo del mensaje que permita al Capturador de
reglas discriminarlo del resto de mensajes entrantes en el
dispositivo móvil y extraer la URL a la que debe conectarse para
descargar la nueva regla.
- Sistema operativo del servidor 60': sistema
operativo del servidor que soporta todo el sistema.
\vskip1.000000\baselineskip
Y en relación con la figura 3 (cliente), los
módulos que el sistema incorpora son los siguientes:
- Editor de reglas 1: aplicación gráfica que
permite al usuario crear y editar reglas dibujando diagramas de
flujo. Dichos diagramas pueden crearse desde cero o bien utilizando
plantillas predefinidas. Se comunica con el Administrador de reglas
2 ya que éste le proporciona toda la lógica de negocio necesaria
para crear, editar, almacenar o enviar reglas. Este interfaz de
usuario está programado en Flash.
- Administrador de reglas 2: módulo que se
encarga de la lógica de negocio necesaria para la creación,
almacenamiento, lectura y activación de dichas reglas. Se comunica
con el Analizador de reglas 3 para analizar el contenido de las
reglas, y con Administrador de datos 5 para acceder al lugar donde
están almacenadas reglas y plantillas basadas en XML, además de
para proceder a su activación o desactivación en el dispositivo
móvil.
- Analizador de reglas 3: módulo que analiza el
contenido de las reglas. Es necesario para dar una interpretación
gráfica intuitiva a un archivo XML complejo como el que define a
las reglas o plantillas. El Analizador de reglas es un módulo que
proporciona herramientas para diseccionar fácilmente archivos
basados en XML, ya sean esquemas que definen el conjunto de eventos
o acciones disponibles en el dispositivo móvil o archivos basados
en BPEL que definen una regla, plantilla o servicio predefinido
previamente extraído del Repositorio de reglas.
- Administrador de datos 5: módulo que trabaja
con el repositorio de reglas 20 y plantillas. Es necesario para
llevar a cabo tareas de almacenamiento, búsqueda o borrado de
reglas o plantillas. Se trata de un módulo que gestiona los ficheros
XML (BPEL) que definen tanto reglas como a plantillas o servicios
predefinidos. Así pues será capaz de crear ficheros XML, abrirlos
para edición o borrarlos.
- Repositorio de reglas 20: sistema de ficheros
encargado de almacenar todos y cada uno de los archivos XML que
definen reglas y plantillas. Almacena adicionalmente los esquemas
XML que definen el modelado del dispositivo móvil en el lenguaje de
script que se utiliza para implementar la parte de ejecución
de reglas del sistema. Esto es, los esquemas XML que definen las
propiedades, eventos y acciones de todos y cada de uno de los
objetos que componen el dispositivo móvil desde la óptica del
lenguaje de script utilizado.
- Capturador de reglas 7: módulo encargado de
identificar mensajes entrantes como provenientes del servidor del
sistema para iniciar, en su caso, la descarga de una regla que ha
sido creada en el servidor. Para ello analiza el cuerpo del mensaje
entrante en busca de la etiqueta que lo identifica como mensaje de
creación web de una regla. Tras identificarlo como tal el
Capturador de reglas extrae la URL en la que la regla (un fichero
XML) está expuesta y descargarla vía web.
- Administrador de la ejecución de reglas 40:
módulo encargado de controlar y gestionar la reglas activas en el
dispositivo móvil. El Administrador de reglas se comunica con él
para lanzar la activación o desactivación de reglas. El
Administrador de la ejecución de reglas analiza las reglas y
mediante un sistema de scripting inicia su ejecución en el motor
(Motor de la ejecución de reglas 50). En esta implementación de la
invención el Administrador de la ejecución de reglas dispone de un
script (el intérprete de reglas) al que le pasa como
parámetro de entrada el fichero XML (basado en BPEL) que define la
regla. El Administrador de la ejecución de reglas le envía al Motor
de ejecución de reglas el script junto con su parámetro de
entrada para que lo ejecute. La ejecución de dicho script
incluye el análisis línea por línea del fichero XML que describe la
regla y la ejecución de comandos de script asociados y que
constituyen el proceso que define la regla.
- Motor de ejecución de reglas 50: este modulo
constituye el motor en el que se ejecutan las reglas que ya han
sido transformadas en scripts capaces de capturar eventos
telco del sistema operativo, así como de hacer llamadas, enviar
mensajes SMS, MMS y muchas otras funcionalidades.
\vskip1.000000\baselineskip
El motor de ejecución de reglas captura los
eventos telco del dispositivo móvil y ejecuta las rutinas que las
reglas han definido para cada uno de los eventos. Este Motor de
ejecución de reglas es capaz de interpretar el script que el
Administrador de la ejecución de reglas le pasa, ya que incorpora
el modelo de objetos que define el dispositivo móvil y que se ha
usado para definir eventos, propiedades y acciones relativas al
dispositivo móvil.
\newpage
- Sistema operativo del dispositivo móvil 60:
sistema operativo del dispositivo móvil que soporta todo el
sistema. Genera eventos que el motor de ejecución de reglas consume
y, a su vez, proporciona APIs para el acceso a funcionalidades de
bajo nivel.
\vskip1.000000\baselineskip
Un posible ejemplo de implementación de la
invención sería programar el dispositivo móvil combinando el evento
producido por la alarma del teléfono móvil con el envío de un SMS.
O la recepción de un SMS con la consulta de un servicio externo y
la programación de una cita en la agenda o el calendario según el
resultado del servicio.
Más en concreto, un ejemplo de uso de la
invención es el siguiente: un usuario decide ir de excursión con
varios de sus amigos; sin embargo, el tiempo es inestable y no está
confirmada la salida. Acuerdan que según se levanten y una vez
conocido el tiempo, decidirán si seguir con la actividad o no. Uno
de los amigos puede hacer uso de la invención y programar un
sencillo proceso que realice por él la tarea de confirmación y
aviso. Mediante, por ejemplo, una aplicación gráfica local puede
establecer un proceso con varias actividades que le faciliten la
tarea:
- en primer lugar programa la alarma del
dispositivo móvil para que a la hora elegida se consulte el tiempo
en el lugar elegido para la excursión en un servicio meteorológico
ofrecido en la red, por ejemplo, mediante servicios web;
- en función de los resultados devueltos y de
los proporcionados por el usuario en la programación, por ejemplo,
considerar tiempo soleado como única respuesta positiva para
realizar la excursión, se envía un mensaje a los contactos que van a
participar en la actividad y hace sonar la alarma del dispositivo
para despertar al usuario. En caso de que el tiempo no fuese
favorable, se desactiva la alarma y no despierta al usuario.
Claims (6)
1. Sistema para programar un dispositivo móvil
(100) basado en eventos, que comprende:
- un módulo creador de reglas (10), que recoge
indicaciones de un usuario de dicho dispositivo móvil y genera, al
menos, una regla traduciendo dichas indicaciones a
meta-datos de programación;
- un repositorio de reglas (20), que almacena
dicha al menos una regla constituida por dichos
meta-datos de programación;
- un módulo de información programable (30), que
proporciona al módulo creador de reglas los
meta-datos que establecen los entes programables
relativos al dispositivo móvil;
- un módulo administrador de la ejecución de
reglas (40), que controla la activación y desactivación de dicha al
menos una regla extraída del repositorio de reglas, y pasa dichos
meta-datos de la regla como parámetro de ejecución a
un intérprete de reglas, que es enviado a un módulo motor de
ejecución de reglas para su ejecución o para su detención y/o
eliminación; y
- dicho módulo motor de ejecución de reglas
(50), que proporciona un entorno de ejecución donde el intérprete
de reglas puede ejecutarse, convirtiendo dichos meta- datos en un
proceso que constituye la regla.
\vskip1.000000\baselineskip
2. Sistema según la reivindicación 1,
caracterizado porque dicho intérprete de reglas, para
convertir dichos meta-datos en un proceso que
constituye la regla:
- analiza dichos meta-datos y
extrae al menos un evento a capturar, y qué tareas o flujo de
tareas a ejecutar cuando se detecte la llegada de dicho evento;
y,
- ejecuta una serie de sentencias para dotar a
dicho proceso en el que corre de herramientas para escuchar el
sistema operativo del dispositivo móvil a la espera de dicho evento
y ejecutar dichas tareas.
\vskip1.000000\baselineskip
3. Sistema según una cualquiera de las
reivindicaciones anteriores, caracterizado porque dichos
meta-datos que establecen los entes programables
relativos al dispositivo móvil incluyen eventos que se pueden
capturar, acciones que se pueden invocar y/o propiedades que se
pueden chequear de dicho dispositivo móvil.
4. Sistema según una cualquiera de las
reivindicaciones anteriores, caracterizado porque dichas
indicaciones del usuario del dispositivo móvil se recogen mediante
un agente software inteligente que monitoriza el uso que del
dispositivo móvil hace el usuario e infiere reglas y patrones.
5. Sistema según una cualquiera de las
reivindicaciones 1-3, caracterizado porque
dichas indicaciones del usuario del dispositivo móvil se recogen
mediante un interfaz gráfico Web a través del cual el usuario puede
especificar tales indicaciones.
6. Sistema según una cualquiera de las
reivindicaciones 1-3, caracterizado porque
dichas indicaciones del usuario del dispositivo móvil se recogen
mediante un interfaz gráfico local a través del cual el usuario
puede especificar tales indicaciones.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
ES200602544A ES2311375B1 (es) | 2006-10-06 | 2006-10-06 | Sistema para programacion de dispositivos moviles basados en eventos. |
EP07019607A EP1909220A1 (en) | 2006-10-06 | 2007-10-08 | Event-driven system for programming a mobile device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
ES200602544A ES2311375B1 (es) | 2006-10-06 | 2006-10-06 | Sistema para programacion de dispositivos moviles basados en eventos. |
Publications (2)
Publication Number | Publication Date |
---|---|
ES2311375A1 ES2311375A1 (es) | 2009-02-01 |
ES2311375B1 true ES2311375B1 (es) | 2009-11-30 |
Family
ID=38935780
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES200602544A Active ES2311375B1 (es) | 2006-10-06 | 2006-10-06 | Sistema para programacion de dispositivos moviles basados en eventos. |
Country Status (2)
Country | Link |
---|---|
EP (1) | EP1909220A1 (es) |
ES (1) | ES2311375B1 (es) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2742473B1 (en) * | 2011-08-08 | 2022-07-13 | Bloomberg Finance L.P. | System and method for electronic distribution of software and data |
US11645234B2 (en) | 2019-04-17 | 2023-05-09 | International Business Machines Corporation | Rule-based collections of subset(s) of metadata in response to a trigger event occurring |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5133045A (en) * | 1990-07-13 | 1992-07-21 | Integrated Systems, Inc. | Method for operating a real-time expert system in a graphical programming environment |
AU6250794A (en) * | 1993-02-25 | 1994-09-14 | Reticular Systems, Inc. | Real-time rule based processing system |
JP2837815B2 (ja) * | 1994-02-03 | 1998-12-16 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 対話型ルール・ベース・コンピュータ・システム |
JPH0877010A (ja) * | 1994-09-07 | 1996-03-22 | Hitachi Ltd | データ分析方法および装置 |
US7308464B2 (en) * | 2003-07-23 | 2007-12-11 | America Online, Inc. | Method and system for rule based indexing of multiple data structures |
US20050131935A1 (en) * | 2003-11-18 | 2005-06-16 | O'leary Paul J. | Sector content mining system using a modular knowledge base |
US7643826B2 (en) * | 2004-01-07 | 2010-01-05 | Hewlett-Packard Development Company, L.P. | Mobile care engine system |
US8738663B2 (en) * | 2004-01-09 | 2014-05-27 | Oracle International Corporation | Rule-based transformation of metadata |
CN101410824B (zh) * | 2004-04-30 | 2012-03-21 | 微软公司 | 用于终端用户规则逻辑的定义和执行的规则框架 |
DE202005012454U1 (de) * | 2005-08-08 | 2005-10-20 | Bitos Gmbh | Informationssystem |
-
2006
- 2006-10-06 ES ES200602544A patent/ES2311375B1/es active Active
-
2007
- 2007-10-08 EP EP07019607A patent/EP1909220A1/en not_active Withdrawn
Non-Patent Citations (1)
Title |
---|
TONG-SENG QUAH et al.: "{}A NEURAL NETWORK EXPERT SYSTEM SHELL"{}. PROCEEDINGS OF THE CONFERENCE ON ARTIFICIAL INTELLIGENCE FOR APPLICATIONS. SAN ANTONIO, MAR. 1-4, 1994, LOS ALAMITOS, IEEE. COMP. 500. PRESS, US, vol. CONF. 10, 1 Marzo 1994 (1994-03-01), páginas 502-508, ISBN: 0-8186-5550-X; resumen; párrafos [0001],[0003-03.3],[0004-04.4],[5.1.1-5.1.2],[0006]. * |
Also Published As
Publication number | Publication date |
---|---|
EP1909220A1 (en) | 2008-04-09 |
ES2311375A1 (es) | 2009-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Steglich | I-Centric User Interaction | |
US8495020B1 (en) | Mobile information system | |
Floch et al. | Playing MUSIC—building context‐aware and self‐adaptive mobile applications | |
CN103002156B (zh) | 用于动态语音菜单的技术 | |
CN106068521A (zh) | 关于合规策略更新的应用的通信状态 | |
Bardram | The CARP Mobile Sensing Framework--a cross-platform, reactive, programming framework and runtime environment for digital phenotyping | |
CN103198417A (zh) | 移动互联网旗帜广告及其后台发布方法、互动方法 | |
Teixeira et al. | LAURA architecture: Towards a simpler way of building situation-aware and business-aware IoT applications | |
CN107003910B (zh) | 移动用户虚拟活动的分类方法和装置 | |
Gao | A General Logging Service for Symbian based Mobile Phones | |
ES2311375B1 (es) | Sistema para programacion de dispositivos moviles basados en eventos. | |
CN107609086A (zh) | 一种app推送方法及其引擎系统 | |
Di Modica et al. | SNPS: an OSGi-based middleware for Wireless Sensor Networks | |
Cranefield et al. | Embedding agents in business processes using enterprise integration patterns | |
CN103399752A (zh) | 基于互联网服务的手机应用连锁反应系统及方法 | |
Kröner et al. | Fostering access to data collections in the internet of things | |
Mitkas et al. | An agent framework for dynamic agent retraining: Agent academy | |
CN108399529A (zh) | 时间的管理方法及系统 | |
Ilarri et al. | Towards the implementation of a push-based recommendation architecture | |
CN102137079A (zh) | 一种远程过程调用的业务开发方法及装置 | |
CN112417818A (zh) | 文档目录生成方法和装置、存储介质及电子设备 | |
Garrido et al. | A near field communication tool for building intelligent environment using smart posters | |
Moons et al. | Decentralized linked open data in constrained wireless sensor networks | |
Huang et al. | Smart home at a finger tip: OSGi-based MyHome | |
KOTSOPOULOS | Context-Aware Profile Analyzer for Android |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EC2A | Search report published |
Date of ref document: 20090201 Kind code of ref document: A1 |