[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

ES2311375B1 - Sistema para programacion de dispositivos moviles basados en eventos. - Google Patents

Sistema para programacion de dispositivos moviles basados en eventos. Download PDF

Info

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
Application number
ES200602544A
Other languages
English (en)
Other versions
ES2311375A1 (es
Inventor
Guillermo Caudevilla Laliena
Jose Manuel Cristobal Cristobal
Oscar Gutierrez Isiegas
Luis Sanclemente Abos
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Vodafone Espana SA
Original Assignee
Vodafone Espana SA
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Vodafone Espana SA filed Critical Vodafone Espana SA
Priority to ES200602544A priority Critical patent/ES2311375B1/es
Priority to EP07019607A priority patent/EP1909220A1/en
Publication of ES2311375A1 publication Critical patent/ES2311375A1/es
Application granted granted Critical
Publication of ES2311375B1 publication Critical patent/ES2311375B1/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • G06N5/025Extracting rules from data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software 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.
Campo de la invención
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.
Antecedentes de la invención
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:
\bulletProgramación con lenguajes nativos
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
\bulletProgramación sobre una máquina virtual
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
\bulletProgramación basada en scripts
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
\bulletProgramación basada en aplicaciones del dispositivo móvil
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
\bulletLenguajes de descripción de procesos basados en XML
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
\bulletNotaciones para la descripción de procesos
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.
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.
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.
Descripción de la invención
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.
- 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.
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
Breve descripción de los dibujos
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
Descripción de una realización preferida de la invención
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:
100
- 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:
101
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.
- 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.
ES200602544A 2006-10-06 2006-10-06 Sistema para programacion de dispositivos moviles basados en eventos. Active ES2311375B1 (es)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
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