MXPA05002276A - Sistema y metodo para construir aplicaciones inalambricas con asignacion inteligente entre interfaz de usuario y componentes de datos. - Google Patents

Sistema y metodo para construir aplicaciones inalambricas con asignacion inteligente entre interfaz de usuario y componentes de datos.

Info

Publication number
MXPA05002276A
MXPA05002276A MXPA05002276A MXPA05002276A MXPA05002276A MX PA05002276 A MXPA05002276 A MX PA05002276A MX PA05002276 A MXPA05002276 A MX PA05002276A MX PA05002276 A MXPA05002276 A MX PA05002276A MX PA05002276 A MXPA05002276 A MX PA05002276A
Authority
MX
Mexico
Prior art keywords
data
component
screen
definition
assignment
Prior art date
Application number
MXPA05002276A
Other languages
English (en)
Inventor
Bryan R Goring
Michael Shenfield
Kamen B Vitanov
Viera Bibr
Original Assignee
Research In Motion Ltd
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 Research In Motion Ltd filed Critical Research In Motion Ltd
Publication of MXPA05002276A publication Critical patent/MXPA05002276A/es

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Se describe un sistema y un método para la administración eficaz de una interfaz de usuario (UI, por sus siglas en inglés) de un dispositivo inalámbrico mediante la implementación de asignación directa entre el dominio de datos de aplicación y controles y pantallas de UI. El dispositivo tiene un ambiente de tiempo de ejecución de dispositivo inalámbrico inteligente (tiempo de ejecución de dispositivo) que proporciona un conjunto de servicios básicos para administrar la aplicación inalámbrica, que incluye una serie de definiciones de componentes de datos y de pantalla enlazadas; y sus interacciones pueden simplificar el esfuerzo para su desarrollo y reducir la distribución de recursos. El dominio de datos para esta categoría de aplicaciones se define usando las definiciones de componente de datos atómicos. La comunicación entre una interfaz de usuario de dispositivo y los componentes de datos se define usando definiciones de componente de pantalla atómico. Las definiciones de componente de datos y de pantalla se describen en metadatos usando un lenguaje de definición estructurado como XML. Las relaciones entre las definiciones de componente de datos y de pantalla se insertan en las definiciones de XML en la forma de asignaciones de datos/pantalla. Típicamente, las pantallas hechas para visualizar se derivan de algún componente de datos fundamental y los controles de pantalla afectados por eventos de usuario impacta el estado actual (o representación de datos) de la aplicación. Los cambios a los datos del dominio de la aplicación se sincronizan automáticamente con la interfaz de usuario, y los datos ingresados por el usuario se refleja automáticamente en los datos del dominio de la aplicación. El mecanismo primario detrás de esta sincronización es la asignación de datos y pantallas. Este mecanismo habilita la creación de pantallas interactivas y dinámicas. Todos los cambios al componente de datos se pueden reflejar de inmediato en la pantalla y viceversa. Este modelo permite construir aplicaciones inalámbricas eficaces con base en notificaciones servidor a dispositivo. Las actualizaciones de datos impulsadas de forma asíncrona desde el servidor se reflejan de forma instantánea en la pantalla de la UI.

Description

SISTEMA Y MÉTODO PARA CONSTRUIR APLICACIONES INALAMBRICAS CON ASIGNACIÓN INTELIGENTE ENTRE INTERFAZ DE USUARIO Y COMPONENTES DE DATOS ANTECEDENTES DE LA INVENCIÓN Esta invención en general se refiere a la visualización de aplicaciones inalámbricas en una interfaz de usuario de un dispositivo inalámbrico. En la actualidad hay un número creciente de dispositivos inalámbricos en uso, como los teléfonos móviles, los PDA con capacidades de comunicación inalámbrica y localizadores de dos vías . Las aplicaciones de software que se ejecutan en estos dispositivos incrementan su utilidad. Por ejemplo, un teléfono móvil puede incluir una aplicación que recupere la información sobre el clima en diversas ciudades, o un PDA puede incluir una aplicación que permita al usuario comprar comestibles . Estas aplicaciones de software tienen la ventaja de la conectividad a una red para proporcionarles a los usuarios servicios útiles y oportunos. Sin embargo, debido a los limitados recursos de algunos dispositivos y a la complejidad de desarrollar grandes cantidades de datos para los dispositivos, el desarrollo de aplicaciones de software para una diversidad de dispositivos continúa siendo una tarea difícil y que consume tiempo.
Actualmente, los dispositivos se configuran para comunicarse con servicios Web a través de buscadores basados en Internet y/o aplicaciones locales. Los buscadores tienen la ventaja de que se pueden adaptar para operar en una base de plataforma cruzada para múltiples dispositivos diferentes, pero tienen una desventaja de necesitar páginas (definiciones de pantalla en HTML) del servicio de Web, lo que obstruye la persistencia de los datos contenidos en las pantallas . Las aplicaciones locales tienen la ventaja de haber sido desarrolladas específicamente para el tipo de plataforma del dispositivo, proporcionando así un programa de aplicación relativamente optimizado para cada ambiente de tiempo de ejecución. Sin embargo, las aplicaciones locales tienen las desventajas de no ser plataformas independientes, por lo que necesitan que sean desarrolladas múltiples versiones de la misma aplicación, así como también son de tamaño relativamente grande, limitando así los recursos de memoria del dispositivo. Además, los desarrolladores de aplicaciones necesitan tener experiencia con leguajes de programación como Java y C++ para construir estas complejas codificaciones de aplicaciones locales, incluyendo complejas interacciones estáticas codificadas de elementos de pantalla con elementos de datos. Por tanto, hay una necesidad de programas de aplicación que se puedan ejecutar en dispositivos de cliente que tengan una amplia variedad de ambientes de tiempo de ejecución usando interacciones dinámicas entre datos y elementos de pantalla, asi como también que tengan un consumo reducido de los recursos del dispositivo. Los sistemas y métodos aquí descritos proveen un ambiente de definiciones de componentes de datos y de pantalla enlazados para obviar o reducir al menos un poco las desventajas antes presentadas.
SUMARIO DE LA INVENCIÓN Es deseable reducir la complej idad involucrada al desarrollar la aplicación inalámbrica, reduciendo la necesidad de hacer cualquier codificación explícita, así como también reducir los recursos del dispositivo utilizados por la aplicación cuando se proporciona. Se describen un método y un sistema para la administración eficaz de una interfaz de usuario (UI, por sus siglas en inglés) de un dispositivo inalámbrico implementando asignación directa entre el dominio de los datos de aplicación y los controles y pantallas de ÜI. El dispositivo tiene un ambiente de tiempo de ejecución de dispositivo inalámbrico inteligente (tiempo de ejecución de dispositivo) que proporciona un grupo de servicios básicos para administrar la aplicación inalámbrica, incluyendo una serie de definiciones de componentes de datos y de pantalla enlazados, y sus interacciones pueden simplificar el esfuerzo para su desarrollo y reducir la asignación de recursos . El dominio de datos para esta categoría de aplicaciones se define usando las definiciones de componentes de datos atómicos . La comunicación entre una interfaz de usuario de dispositivo y los componentes de datos se define usando definiciones de componentes de pantalla atómicos. Las definiciones de componentes de datos y de pantalla se describen en metadatos usando un lenguaje de definición estructurado, tal como XML. Las relaciones entre las definiciones de componentes de datos y de pantalla entran en las definiciones XML en la forma de asignaciones de datos/pantalla. Típicamente, las pantallas hechas para visualizar son derivadas de algunos componentes de datos subyacentes y los controles de pantallas afectados por eventos de usuario afectan el estado actual (o representación de datos) de la aplicación. Los cambios a los datos del dominio de la aplicación se sincronizan automáticamente con la interfaz de usuario, y los datos ingresados por el usuario se reflejan automáticamente en los datos del dominio de la aplicación. El mecanismo principal detrás de esta sincronización es la asignación de datos y pantallas . Este mecanismo habilita la creación de pantallas dinámicas e interactivas . Todos los cambios a los componentes de datos se pueden reflejar de inmediato en la pantalla y viceversa. Este modelo permite construir aplicaciones inalámbricas eficaces con base en notificaciones servidor a dispositivo. Las actualizaciones de datos enviadas de forma asincrona del servidor se reflejan de forma instantánea en la pantalla UI. De acuerdo con la presente invención se provee un método para generar un elemento de pantalla de una aplicación inalámbrica con base en un objeto de datos visualizado en una interfaz de usuario de un dispositivo inalámbrico, la aplicación incluye un componente de datos que tiene al menos una definición de campo de datos y un componente de pantalla que tiene al menos una definición de elemento de pantalla, expresando las definiciones de componentes en un lenguaje de definición estructurado, el método comprende las etapas de: seleccionar el componente de pantalla que corresponde al elemento de pantalla seleccionado para ser visualizado; identificar al menos una asignación presente en el componente de pantalla, la asignación para especificar una relación entre el componente de pantalla y el componente de datos definido por un identificador que representa la asignación; seleccionar el componente de datos asignado por la asignación, de acuerdo con el identificador de asignación; obtener un valor de campo de objeto de datos que corresponda a la definición de campo de datos del componente de datos asignado; generar un elemento de pantalla a partir de la definición de elemento de pantalla para incluir el valor de campo de objeto de datos de acuerdo con el formato de la definición de campo de datos como se define en el componente de datos asignado. De acuerdo con un aspecto adicional de la presente invención se proporciona un sistema para generar un elemento de pantalla de una aplicación inalámbrica con base en un objeto de datos visualizado en una interfaz de usuario de un dispositivo inalámbrico, la aplicación incluye un componente de datos que tiene al menos una definición de campo de datos y un componente de pantalla que tiene al menos una definición de elemento de pantalla, expresando las definiciones de componentes en un lenguaje de definición estructurado, el método comprende las etapas de: un administrador de asignación para seleccionar el componente de pantalla que corresponda al elemento de pantalla e identificar al menos una asignación presente en el componente de pantalla, la asignación para especificar una relación entre el componente de pantalla y el componente de datos definido por un identificador que representa la asignación, el administrador de asignación para seleccionar el componente de datos asignado por la asignación de acuerdo con el identificador de asignación; un administrador de datos para obtener un valor de campo de objeto de datos que corresponda a la definición de campo de datos del componente de datos asignado; y un administrador de pantalla para generar un elemento de pantalla a partir de la definición de elemento de pantalla para incluir el valor de campo del objeto de datos de acuerdo con el formato de la definición de campo de datos definido en el componente de datos asignado. De acuerdo con un aspecto más de la presente invención, se proporciona un método para generar un objeto de datos de una aplicación inalámbrica con base en un cambio en un elemento de pantalla visualizado en una interfaz de usuario de un dispositivo inalámbrico, la aplicación incluye un componente de datos que tiene al menos una definición de campo de datos y un componente de pantalla que tiene al menos una definición de elemento de pantalla, expresando las definiciones de componente en un lenguaje de definición estructurado, el método comprende las etapas de: seleccionar el componente de pantalla que corresponda al elemento de pantalla; identificar al menos una asignación presente en el componente de pantalla, la asignación para especificar una relación entre el componente de pantalla y el componente de datos; seleccionar el componente datos asignado por la asignación; obtener un valor cambiado del elemento de pantalla que corresponda al componente de datos asignado; asignar el valor cambiado a un valor de campo de datos del objeto de datos de acuerdo con el formato de la definición de campo de datos definido en el componente de datos asignado. De acuerdo con un aspecto adicional de la presente invención, se proporciona un dispositivo para generar un elemento de pantalla de una aplicación inalámbrica con base en un objeto de datos visualizado en una interfaz de usuario de un dispositivo inalámbrico, la aplicación incluye un componente de datos que tiene al menos una definición de campo de datos y un componente de pantalla que tiene al menos una definición de elemento de pantalla, expresando las definiciones de componentes en un lenguaje de definición estructurado, el método comprende las etapas de: un medio para seleccionar el componente de pantalla que corresponda al elemento de pantalla seleccionado para ser visualizado; un medio para identificar al menos una asignación presente en el componente de pantalla, la asignación para especificar una relación entre el componente de pantalla y el componente de datos; un medio para seleccionar el componente de datos asignado por la asignación; un medio para obtener un valor de campo de objeto de datos que corresponda a la definición de campo de datos del componente de datos asignado; un medio para generar un elemento de pantalla a partir de la definición de elemento de pantalla, para incluir el valor de campo de objeto de datos de acuerdo con el formato de la definición de campo de datos definido en el componente de datos asignado. De acuerdo con un aspecto adicional de la presente invención, se proporciona un producto de programa de cómputo para generar un elemento de pantalla de una aplicación inalámbrica que se basa en un objeto de datos visualizado en una interfaz de usuario de un dispositivo inalámbrico, la aplicación incluye un componente de datos que tiene al menos una definición de campo de datos y un componente de pantalla que tiene al menos una definición de elemento de pantalla, expresando las definiciones de componentes en un lenguaje de definición estructurado; el producto de programa de cómputo comprende: un medio legible con computadora; un módulo de asignación almacenado en el medio legible por computadora para seleccionar el componente de pantalla que corresponda al elemento de pantalla e identificar al menos una asignación presente en el componente de pantalla, la asignación para especificar una relación entre el componente de pantalla y el componente de datos definido por un identificador que representa la asignación, el módulo de asignación para seleccionar el componente de datos asignado por la asignación, de acuerdo con el identificador de asignación; un módulo de datos almacenado en el medio legible por computadora para obtener un valor de campo de objeto de datos que corresponda a la definición de campo de datos del componente de datos asignado; y un módulo de pantalla almacenado en el medio legible por computadora para generar un elemento de pantalla a partir de la definición de elemento de pantalla para incluir un valor de campo de objeto de datos de acuerdo con el formato de la definición de campo de datos definido en el componente de datos asignado .
BR VE DESCRIPCIÓN DE LOS DIBUJOS Estas y otras características se harán más evidentes en la siguiente descripción detallada en la que se hace referencia a los dibujos anexos solamente a manera de ejemplo, en donde: la Figura 1 es un diagrama de bloques de un sistema de red; la Figura 2 es un diagrama de bloques de un dispositivo inalámbrico de la Figura 1; la Figura 3 es un diagrama de bloques de una estructura inteligente del dispositivo de la Figura 2 ; la Figura 4 es un diagrama de bloques de un programa de aplicación de componente de la Figura 2; la Figura 5 muestra un modelo de hospedaje y agrupación de aplicación representativa para una aplicación de componente ejemplificativo de la Figura 4; la Figura 6 muestra un método ej emplificativo para implementar el programa de aplicación de componente de la Figura 5; la Figura 7 muestra un método ejemplificativo adicional para implementar el programa de aplicación de componente de la Figura 5 ; la Figura 8 muestra una asignación entre componentes de pantalla y de datos para la aplicación de la Figura 2; la Figura 9 muestra una operación de visualización inicial de pantalla para la asignación de la Figura 8 ; la Figura 10 muestra una actualización de un objeto de datos de acuerdo con eventos de usuario para la asignación descrita en la Figura 8; y la Figura 11 muestra una actualización de un objeto de datos de acuerdo con un mensaje asincrono para la asignación de la Figura 8.
DESCRIPCIÓN DE LAS MODALIDADES PREFERIDAS Sistema de red Refiriéndose a la Figura 1; un sistema de red 10 comprende una diversidad de dispositivos inalámbricos 100 para interactuar con uno o más servicios genéricos 106, por medio de una Red de Área Amplia (WAN) 104 como es, de manera enunciativa, la Internet. Estos dispositivos 100 pueden ser, de manera enunciativa, los PDA, localizadores, teléfonos celulares y similares . Los servicios genéricos proporcionados por el servicio 106 pueden ser servicios Web y/u otros servicios como, pero no limitados a, bases de datos SQL, sistemas RMI/IIOP y CORBA basados en IDL, bases de datos Legacy, J2EE, SAP RFC y componentes COM/DCOM. Además, el sistema 10 también puede tener una red inalámbrica 102 para conectar los dispositivos inalámbricos 100 a la WAN 104. Se reconoce que se podrían conectar otros dispositivos (no mostrados) al servicio Web 106 por medio de la WAN 104 y redes asociadas diferentes de las mostradas en la Figura 1. Los servicios Web 106 definidos de acuerdo con un esquema se seleccionan para la siguiente descripción del sistema 10, por simplicidad. Sin embargo, se reconoce que otros servicios podrían ser substituidos por los servicios Web 106, si se desea. Además, las redes 102 y 104 del sistema 10 de aquí en adelante se denominarán como la red 104, por simplicidad. Refiriéndose otra vez a la Figura 1, los dispositivos 100 transmiten y reciben mensajes 105 de solicitud/respuesta, respectivamente, cuando están en comunicación con los servicios Web 106. Los dispositivos 100 pueden operar como clientes Web de los servicios Web 106 usando los mensajes 105 de solicitud/respuesta en la forma de información de encabezado de mensaje y contenido de datos asociados, por ejemplo: solicitar y recibir precios y disponibilidad de productos de un comercio en línea. El servicio Web 106 es un ejemplo de un sistema con el que interactúan los programas de aplicación de cliente 302 (ver Figura 2) en los dispositivos de comunicación 100, por medio de la red 104, para proporcionar utilidad a los usuarios de los dispositivos de comunicación 100. Para satisfacer los mensajes 105, apropiados, de solicitud/respuesta, el servicio Web 106 puede establecer comunicación con un servidor de aplicación 110 a través de diversos protocolos (tales como, de manera enunciativa, el HTTP y API de componente) para exponer la lógica de negocios relevantes (métodos) a programas de aplicación de cliente 302 (ver Figura 2) , una vez dispuestos en los dispositivos 100. El servidor de aplicación 110 también puede contener el software del servicio Web 106, asi que el servicio Web puede ser considerado un subconjunto del servidor de aplicación 110. Los programas de aplicación 302 del dispositivo 100 pueden usar la lógica de negocios del servidor de aplicación 110 de forma similar a llamar un método en un objeto (o una función) . Se reconoce que el programa de aplicación de cliente 302 puede ser bajado/subido (cargado/descargado) en relación con el servidor de aplicación 110, a través de los mensajes 105 por medio de la red 104, directamente a los dispositivos 100. Además se reconoce que los dispositivos 100 se pueden comunicar con uno o más servicios Web 106 y servidores de aplicación asociados 110, por medio de las redes 104.
Ambiente de servidor Refiriéndose a la Figura 1, el servicio Web 106 proporciona los mensajes 105 de información que son usados por los programas de aplicación de cliente 302 (ver Figura 2) en los dispositivos 100 (ya sea de forma síncrona o asincrona) . Alternativa o adicionalmente, el servicio Web 106 puede recibir y usar los mensajes 105 de información proporcionados por los programas de aplicación de cliente 302 ejecutados en los dispositivos 100, o realizar tareas en sustitución de los programas de aplicación de cliente 302 ejecutados en los dispositivos 100. El servicio Web 106 se puede definir como un servicio de software que puede implementar una interfaz que se expresa usando un Lenguaje de Descripción de Servicios Web (WSDL, por sus siglas en inglés) , registrado en Integración y Descripción de Descubrimientos Universales (UDDI, por sus siglas en inglés) en un registro de servicios Web y se puede comunicar a través de los mensajes 105 con dispositivos de cliente 100 al exponerse sobre la red 104 a través de un protocolo apropiado, como el "Protocolo de Acceso de Objeto Simple" (SOAP, por sus siglas en inglés) . En algunas implementaciones , SOAP es una especificación que define el formato X L para los mensajes 105, incluyendo un fragmento X L bien formado abarcado en elementos SOAP. También, SOAP soporta aplicaciones de estilo para documentos donde el mensaje 105 de SOAP es una envoltura alrededor de un documento XML. Una parte adicional optativa de SOAP define el enlace HTTP (esto es, el encabezado) , mientras que algunas implementaciones SOAP soportan series MSMQ, Series MQ, SMTP o protocolos de transporte TCP/IP. Alternativamente, el servicio Web 106 puede usar otros protocolos de comunicación conocidos, formatos de mensaje 105, y la interfaz se puede expresar en otros lenguajes de servicios Web diferentes a los antes descritos .
Ambiente para el cliente Refiriéndose a la Figura 2, las aplicaciones de componente 302 se transmiten por medio de la red 104 y se cargan en un módulo de memoria 210 de una infraestructura de dispositivo 204 del dispositivo 100. Alternativamente, las aplicaciones de componente 302 se pueden cargar por medio de una conexión en serie, conexiones USB o sistemas de comunicación, inalámbricos, de corto alcance, como IR, 802.11 (x) BluetoothTM (no mostrados). Una vez cargadas en el dispositivo 100, las aplicaciones de componente 302 se pueden ejecutar con una estructura de tiempo de ejecución inteligente 206 en el dispositivo 100, que pueda convertir las aplicaciones de componente 302 en código original, el cual es ejecutado por un procesador 208 en la infraestructura del dispositivo 204. Alternativamente, las aplicaciones 302 se pueden interpretar con otro módulo de software o sistema operativo en el dispositivo 100. En cualquier caso, las aplicaciones de componente 302 se ejecutan en el ambiente de tiempo de ejecución terminal proporcionado por el dispositivo 100, así que el ambiente de tiempo de ejecución es una estructura de software inteligente 206 que proporciona un conjunto de servicios básicos para administrar y ejecutar funciones de aplicación 302 típicas (por ejemplo, persistencia, mensajería, navegación y presentación en pantalla) . Refiriéndose otra vez a la Figura 1, el ambiente de tiempo de ejecución de cliente proporcionado por los dispositivos 100 se puede configurar para hacer que los dispositivos 100 operen como clientes Web de los servicios Web 106. Se reconoce que el ambiente de tiempo de ejecución de cliente también puede hacer a los dispositivos 100 clientes de cualesquiera otros servicios de esquema definido genéricos sobre la red 10 . El ambiente de tiempo de ejecución de cliente de los dispositivos 100 es, de preferencia, capaz de generar, hospedar y ejecutar los programas de aplicación de cliente 302 (los cuales incluyen definiciones de componentes de datos 400 y de pantalla 402 -ver Figura 4 y la descripción de aquí enseguida) en el dispositivo 100. Además, funciones específicas del ambiente de tiempo de ejecución de cliente pueden incluir, pero no limitarse a, soporte para lenguaje, coordinar ubicación de memoria, red, administración de datos durante operaciones de E/S, coordinar gráficas en un dispositivo de salida de los dispositivos 100 y proporcionar acceso a clases orientadas a objeto de núcleo y soportar archivos/librerías . Ejemplos de los ambientes de tiempo de ejecución implementados por los dispositivos 100 pueden incluir, pero no estar limitados a, 'Tiempo de ejecución de lenguaje común' (CLR, por sus siglas en inglés) de Microsoft y 'Ambiente de tiempo de ejecución de Java' (JRE, por sus siglas en inglés) de Sun Microsystems. El ambiente de tiempo de ejecución de terminal de los dispositivos 100 de preferencia soporta las siguientes funciones básicas para las versiones ejecutables residentes de los programas de aplicación de cliente 302 (ver Figura 2) , como, pero no limitado a: proporcionar una capacidad de comunicaciones para enviar mensajes 105 a los servicios Web 106 o mensajes 105 a cualesquiera otros servicios genéricos de esquema definido conectado por medio de la red 104 a los dispositivos 100; proporcionar capacidades de entrada de datos por el usuario en un dispositivo de entrada de los dispositivos 100 para suministrar partes de datos para los mensajes 105 que salen de los servicios Web 106 (mensajes para el servicio) ; proporcionar presentación de datos o capacidades de salida para mensajes 105 de respuesta (mensajes que llegan) de servicios Web 106 o notificaciones no correlacionadas en el dispositivo de salida; proporcionar servicios de almacenamiento de datos para mantener datos locales de cliente en el módulo de memoria 210 (ver Figura 2) del dispositivo 100; y proporcionar un ambiente de ejecución para un lenguaje de secuencia de comandos para coordinar la operación de los componentes 400, 402 (ver Figura 4) de los programas de aplicación de cliente 302. Refiriéndose a las Figura 2, 4 y 5, el tiempo de ejecución de cliente (por ejemplo, proporcionado por la estructura de componente 206) carga metadatos contenidos en las definiciones de componentes 400, 402 y también construye la versión ejecutable del programa de aplicación 302 del dispositivo 100, por medio de por ejemplo un ambiente de ejecución 300. Hay, pero no se limitan a, dos modelos operacionales para tiempo de ejecución de cliente: ejecución local basada en plantilla y ejecución basada en metadatos . En el caso de una aplicación 302 basada en componentes completamente definidos (que tiene componentes de datos 400, pantalla 402, mensaje 404 y flujo de trabajo 406, ver Figura 4), la estructura 206 puede implementar un modelo de ejecución local basado en plantilla para hospedar datos, mensajes y plantillas de pantalla 500 preconstruidas en el dispositivo 100 usando código propio. Cuado se carga la definición del programa de aplicación 302, el ambiente de cliente, proporcionado por la estructura 206, llena las plantillas 500 con parámetros definidos por metadatos de los componentes 400, 402, 404 y construye el programa de aplicación de cliente 302 ejecutable en el formato local. La secuencia de comandos de flujo de trabajo (por ejemplo EC AScript) del componente de flujo de trabajo 406 se podría convertir a código propio o bien ejecutar usando un interprete de secuencia de comandos adecuado 502 (por ejemplo, el interprete ECMAScript) a un redireccionador de código propio 504, en donde el redireccionador 504 convierte las llamadas al lenguaje de secuencia de comandos en operaciones en componentes locales a través de un motor de tiempo de ejecución local 506. Con la ejecución basada en metadatos, el ambiente de tiempo de ejecución de la estructura 206 mantiene las definiciones de los componentes 400, 402, 404, 406 en XML (por ejemplo), que son analizadas durante el tiempo de ejecución o bien usa nodos de representación local de XML (por ejemplo) . Durante la ejecución, el motor de tiempo de ejecución local 506 opera en definiciones de los componentes 400, 402, 404, 406 más que en entidades de componentes locales . Se reconoce que otro tipo de modelo de ejecución incluiría la aplicación que tiene las definiciones de componentes 400, 402 para los datos y las pantallas mientras que tiene una aproximación a un código de hardware 405 más para los elementos de flujo de trabajo y mensajes restantes de la aplicación 302. Por tanto, el ambiente de tiempo de ejecución de cliente local proporciona una interfaz para los programas de aplicación de cliente 302 para la funcionalidad del procesador 208 del dispositivo 100 y el sistema operativo asociado de la infraestructura del dispositivo 204. De preferencia, el ambiente del tiempo de ejecución suministra un ambiente estable, seguro y controlado en el dispositivo 100, en el que se ejecutan programas de aplicación de componentes 302. El ambiente de tiempo de ejecución provee las definiciones de los componentes 400, 402, (y de las definiciones 404, 406, si es que se utilizan) para crear el cliente Web actual específico para cada infraestructura de dispositivo 204 respectiva del dispositivo 100. Se reconoce, por simplicidad, que la descripción siguiente de aquí en adelante, se referirá al ambiente de tiempo de ejecución de cliente, que es proporcionado por la infraestructura 206, solamente como un ejemplo.
Dispositivo de comunicación Refiriéndose otra vez a la Figura 2, los dispositivos 100 son dispositivos como, pero no limitados a, teléfonos móviles, PDA, localizadores de dos vías o dispositivos de comunicación de modo doble. Los dispositivos 100 incluyen una interfaz de conexión de red 200, como un transceptor inalámbrico, acoplado por medio de la conexión 218 a una infraestructura de dispositivo 204. La interfaz de conexión 200 se puede conectar durante la operación de los dispositivos 100 a la red 104, como a las redes inalámbricas 102 por medio de enlaces inalámbricos (esto es, RF, IR, etc.), lo que habilita a los dispositivos 100 para comunicarse entre si y con sistemas externos (como el servicio Web 106) por medio de la red 104 y para coordinar los mensajes 105 de solicitud/respuesta entre los programas de aplicación de cliente 302 y el servicio 106 (ver Figura 1) . La red 104 soporta la transmisión de datos en los mensajes 105 de solicitud/respuesta entre los dispositivos y los sistemas externos, que se conectan a la red 104. La red 104 también puede soportar comunicación de voz para llamadas telefónicas entre los dispositivos y dispositivos que son externos a la red 104. Se puede usar un protocolo de transmisión de datos inalámbrico por medio de la red inalámbrica 102, como, pero no limitado a, DataTAC, GPRS o CDMA. Refiriéndose otra vez a la Figura 2, los dispositivos 100 también tienen una interfaz de usuario 202, acoplada a la infraestructura 204 del dispositivo por medio de la conexión 222, para interactuar con un usuario (no mostrado) . La interfaz de usuario 202 incluye uno o más dispositivos de entrada de usuario como, pero no limitados a, un teclado QWERTY, un teclado auxiliar, una rueda de seguimiento, un estilete, un ratón, un micrófono y el dispositivo de salida de usuario como una pantalla de visualización LCD y/o una bocina. Si la pantalla es sensible al tacto, entonces la pantalla de visualización también se puede usar como dispositivo de entrada controlada por la infraestructura 204 de dispositivo. La interfaz de usuario 202 es empleada por el usuario del dispositivo 100 para coordinar los mensaje 105 de solicitud/respuesta sobre el sistema 10 (ver Figura 1) empleado por los programas de aplicación de cliente 302 de una estructura 206, descrita más adelante. Refiriéndose a la Figura 2, la operación del dispositivo 100 es habilitada por la infraestructura 204 del dispositivo. La infraestructura 204 del dispositivo incluye el procesador de computadora 208 y el módulo 210 de memoria asociado. El procesador de computadora 208 manipula la operación de la interfaz de red 200, la interfaz de usuario 202 y la estructura 206 del dispositivo de comunicación 100 ejecutando las instrucciones relacionadas, que se proporcionan por medio de un sistema operativo y programas de aplicación de cliente 302 ubicados en el módulo 210 de memoria. Además, se reconoce que la infraestructura 204 de dispositivo puede incluir un medio de almacenamiento 212 legible por computadora acoplado al procesador 208 para proporcionar instrucciones al procesador y/o para cargar/actualizar programas de aplicación de cliente 302 en el módulo de memoria 210. El medio 212 legible por computadora puede incluir hardware y/o software como, solamente a manera de ejemplo, discos magnéticos, cinta magnética, medios legibles ópticamente como los CD/DVD ROM y tarjetas de memoria. En cada caso, el medio legible por computadora 212 puede tomar la forma de un disco pequeño, disco flexible, cásete, impulsor de disco duro, tarjeta de memoria de estado sólido o RAM proporcionados en el módulo de memoria 210. Se deberá de notar que los medios 212 legibles por computadora de ejemplo antes listados se pueden usar solos o combinados.
Relación de asignación entre componentes En la práctica, típicamente la expresión de los componentes 400, 402 del desarrollador puede tener contenido traslapado, mientras que el funcionamiento de cada uno de los componentes 400, 402 de la aplicación 302 es distinto. Por tanto, reconociendo el hecho de que el contenido de la interfaz de usuario 202 (ver Figura 1) a menudo se genera desde algún elemento de datos subyacente y a la luz de las similitudes entre las expresiones de estos componentes 400, 402, es conveniente introducir ciertas asignaciones 804 (ver Figura 8) para la expresión de componentes de pantalla 402, como se describe más adelante. Refiriéndose a las Figuras 4 y 8, estas asignaciones 804, esencialmente son métodos cortos para la expresión de los elementos de pantalla 802 (definiciones de elementos de pantalla) asociados con el componente de pantalla 402, y como funcionan el componente de pantalla 402 en tiempo de ejecución durante la ejecución de la aplicación 302. La asignación 804 es una relación establecida entre las definiciones de elementos de pantalla del componente de pantalla 402 y de la definición del componente de datos 400. En relación con la expresión del componente de pantalla 402, usando la asignación 804 se puede reducir la cantidad de metadatos requerida para describir el componente 402. Así, el uso de la asignación 804 puede tener un efecto directo en la cantidad de ' código ' requerido para describir la aplicación 302. En relación con como funciona el componente 402 en tiempo de ejecución, la asignación 804 especifica como los elementos de datos enlazados (descritos por el componente de datos 400) son resueltos y afectados por el estado del elemento de pantalla 802. En relación con esto, la especificación de la asignación 804 puede reducir la necesidad del desarrollador de proporcionar código de manejo de pantalla especifico adicional en la aplicación 302. Refiriéndose a la Figura 8 , las representaciones de pantalla de los componentes de pantalla 402 (ver Figura 4) consisten de los elementos de pantalla 802, como, pero no limitados a controles de UI, que se visualizan en la interfaz de usuario 202 y se asocian con instancias de campos de datos de los objetos de datos correspondientes 800. Por tanto, cada uno de los elementos de pantalla 802 es vinculado o asignado 804 a los campos de un objeto de datos respectivo 800. El usuario de la aplicación 302 puede seleccionar elementos de pantalla 802 en la interfaz de usuario 202 (ver Figura 1) y editar los controles dentro de ellos, es decir, por eventos del usuario. Cualesquiera modificaciones de los elementos de pantalla 802 se propagan a los objetos de datos 800 asignados al elemento de pantalla 802. De forma similar, todas las modificaciones (impulsadas por la aplicación 302 lógica o mensajes 105 que llegan del servidor) a los objetos de datos 800 se reflejan en los elementos de pantalla 802 asignados a estos objetos de datos 800. El seguimiento de los eventos de usuario y cualesquiera modificaciones directas a los objetos de datos 800 es monitoreada por medio de un administrador de asignación 312, como se describe más adelante. La asignación 804 proporciona identificación y modificación del objeto de datos 800 afectada por la asignación 804. La asignación 804 aisla el objeto de datos 800 del componente de datos 400 al que está enlazado el elemento de pantalla 802 del elemento de pantalla correspondiente 404. Se reconoce que las definiciones del componente de pantalla 402 o del componente de datos 400 contienen la asignación 800, que define la relación entre el objeto de datos 800 y el elemento de pantalla 802 o la relación entre un campo de datos individual (o grupo de campos de datos) del objeto de datos 800 con elemento de pantalla 802. Se reconoce que el objeto de datos 800 puede ser pasado a la interfaz de usuario 202 como un parámetro. En este caso los valores de campo de datos de objeto de datos 800 asignados al elemento de pantalla 804 se extraerían del parámetro pasado. Por ejemplo, un control de edición (elemento de pantalla 802) definido en una definición de campo de pantalla del componente de pantalla 402 podría ser asignado en una definición de campo de datos del componente de datos enlazado 400 (es decir, una asignación 804 uno a uno) o un control de elección (elemento de pantalla 802) definido en una definición de campo de pantalla del componente de pantalla 402 podría ser asignado en una definición de campo de datos particular de una colección de de componentes de datos 400 (es decir, una asignación 804 tipo uno a muchos) . Refiriéndose a las Figuras 4 y 8, metadatos componente de pantalla pueden describir una asignación a la definición de campo de datos del componente de datos 400 enlazado, además de sus otros atributos. Por ejemplo, un elemento sencillo de pantalla 802 A, puede asignar a: ¦ una de las definiciones de campos de datos del componente de datos 400; o ¦ todas las definiciones de campos de datos del componente de datos 400 por medio de una clave primaria (o asignar identificador) - en este caso, la asignación 804 resuelve al campo de la clave primaria. Un elemento de pantalla lista/elección 802 puede asignar a: ¦ una colección de todas las instancias de los componentes de datos 400; o ¦ una de las definiciones de campo de datos del componente de datos 400 que es una colección. Por favor, refiérase a la aplicación 302 de componente de ejemplo de enseguida para un ejemplo de un elemento de pantalla 802 de edición 'ebName1 asignado a un campo de ' ame' de un objeto de datos 800 especifico de un campo de datos 400 de 'User1 y un ejemplo de un elemento de pantalla 804 de elección 'ebName' asignado a un campo 'ñame' de todos los objetos de datos 800 del componente de datos 400 'User' .
Estructura de dispositivo Refiriéndose otra vez a la Figura 2, la estructura 206 del dispositivo 100 se acopla a la infraestructura 204 por medio de la conexión 220. El ambiente de tiempo de ejecución de cliente del dispositivo 100 es proporcionado por la estructura 206, y de preferencia es capaz de generar, hospedar y ejecutar los programas de aplicación de cliente 302 (que incluyen definiciones de componente - ver enseguida) de definiciones de metadatos. El tiempo de ejecución de dispositivo puede ser pensado como la estructura 206 de software inteligente que proporciona un conjunto de servicios básicos 304 para administrar y ejecutar una función de aplicación típica 302, como, pero no limitado a, persistencia, disposición, mensajería, navegación de pantalla y servicios de pantalla/ interfaz de usuario. Por tanto, la estructura 206 proporciona el ambiente de tiempo de ejecución de cliente local para los programas de aplicación de cliente 302 y es una interfaz para la funcionalidad del procesador 208 del dispositivo 100 y sistema operativo asociado de la infraestructura 204 del dispositivo. La estructura 206 proporciona el ambiente de tiempo de ejecución, de preferencia, suministrando un ambiente estable, seguro y controlado en el dispositivo 100, en el que los programas de aplicación de cliente 302 se ejecutan en el contenedor de aplicación o ambiente de ejecución 300, por ejemplo. Refiriéndose a la Figura 3, la estructura 206 se puede usar para ejecutar los programas de aplicación de cliente 302 (como las aplicaciones de cliente del servicio Web) dentro del ambiente de tiempo de ejecución de terminal y puede soportar acceso al servicio Web 106 y servidores de aplicación asociados 110 (ver Figura 1) , por medio de los mensajes 105 de solicitud/respuesta sobre la red 104. Los programas de aplicación de componente 302 comprenden aplicaciones de software que se ejecutan con la estructura 206. La estructura 206 crea el ambiente de ejecución 300 para cada componente 400, 402 (y las definiciones 404, 406 si es que se usan - ver Figura 4) del programa de aplicación 302, cada vez que el programa de aplicación 302 se ejecuta. El ambiente de ejecución 300 carga los componentes 400, 402 (definiciones de 404, 406 si es que se usan) del programa de aplicación 302 y puede crear código propio que es ejecutado por el procesador 208 en la infraestructura 204 del dispositivo. Por tanto, la estructura 206 proporciona los ambientes de ejecuciones anfitriones 300 para proporcionar las definiciones de los componentes 400, 402 (de las definiciones 404, 406 si es que se usan) para crear el cliente de Web actual específico para cada infraestructura 204 de dispositivo respectiva de los dispositivos 100 de comunicación. El ambiente de ejecución 300 puede proveer la aplicación 302 de acuerdo con los modelos de ejecución local basada en plantilla y de ejecución basada en metadatos como se describe antes, solamente a manera de ejemplo. El ambiente de ejecución 300 puede ser referido como un contenedor anfitrión inteligente para el programa de aplicación de cliente 302, y puede ser responsable de analizar valores de pantalla (de los elementos de pantalla 802, ver Figura 8) y para actualizar la representación de los valores (objetos de datos 800) en el módulo de memoria 210. Refiriéndose otra vez a la Figura 3 , la estructura 206 también proporciona servicios de estructura 304 (un conjunto estándar de servicios genéricos) para los programas de aplicación de cliente 302, en caso de que ciertos servicios no estén incluidos como parte de los componentes 400, 402 (de definiciones 404, 406, si es que se usan - ver Figura 4) o recibidos como componentes separados (no mostrados) como parte del programa de aplicación de componente 302. El programa de aplicación 302 tiene comunicaciones 214 con el ambiente de ejecución 300, el cual puede coordinar comunicaciones 216 con los servicios de estructura 304, según se necesite. Los servicios de estructura 304 de la estructura 206 coordinan comunicaciones por medio de la conexión 220 con la infraestructura 204 de dispositivo. En consecuencia, el acceso a la infraestructura 204 de dispositivo, a la interfaz de usuario 202 y a la interfaz de red 200 se proporciona a los programas de aplicación de cliente 302 mediante la estructura 206 y servicios asociados 304. Se reconoce que una parte del sistema operativo de la infraestructura de dispositivo 204 (ver Figura 2) puede representar el ambiente de ejecución 300 y de administradores/servicios seleccionados de los servicios de la estructura 304. Refiriéndose a las Figuras 3 y 8, los servicios de infraestructura 304 incluyen, pero no están limitados a, un administrador de comunicación 306, un administrador de presentación 308, un administrador de datos 310 y puede incluir un servicio de acceso, un servicio de disposición y un servicio de utilería. El servicio de acceso (no mostrado) proporciona el acceso de los programas de aplicación 302 a otras aplicaciones de software que se presentan en el dispositivo de comunicación 100. El servicio de disposición (no mostrado) administra la disposición de aplicaciones de software 302 en el dispositivo de comunicación 100. La disposición de aplicación puede incluir solicitar y recibir programas de aplicación nuevos y actualizados 302, programas de aplicación de configuración 302 para acceder servicios que son accesibles por medio de la red 104, modificar la configuración de programas de aplicación 302 y de servicios, y eliminar programas de aplicación 302 y servicios. El servicio de utilería (no mostrado) se utiliza para realizar diversas tareas comunes, como realizar manipulación de datos en la conversión de cadenas a formatos diferentes . Refiriéndose a las figuras 3, 8 y 9 un administrador de comunicación 306 administra la conectividad entre programas de aplicación 302 y el sistema externo 10, como los mensajes 105 y datos enviados/ recibidos asociados con respecto al servicio Web 106 (por el administrador de comunicación 306) a favor de las aplicaciones 302. Como se describe más adelante, se puede usar el administrador de comunicación 306 para implementar una serie de asignaciones 804. El administrador de presentación 308 administra la representación de los programas de aplicación 302 conforme se pasan al dispositivo de salida de la interfaz de usuario 202 (ver Figura 2) . El administrador de datos 310 permite que los programas de aplicación de componente 302 almacenen datos en el módulo de memoria 210 de la infraestructura 204 de dispositivo (ver Figura 2) . Se reconoce que el administrador de datos 310 se puede usar para coordinar la creación/modificación de instancias de datos de los componentes de datos 400 enlazados a los componentes de pantalla 402 por medio de las asignaciones 804. La estructura 206 también tiene un administrador de asignación 312 que mantiene el seguimiento de las relaciones individuales (asignaciones) 804 entre los objetos de datos 800 respectivos y los elementos de pantalla 802. Las asignaciones se almacenan en una tabla de asignación 309 acoplada al administrador de asignación 312. Una vez que los elementos de pantalla 802 se inicializan en la interfaz de usuario 202, el administrador de presentación 308 usa al administrador de asignación 312 para mantener la integridad dinámica entre los elementos de pantalla 802 y los objetos de datos correspondientes 800 visualizados. Cuando uno de los elementos de pantalla 802 es modificado por el usuario por medio de la interfaz del usuario 202, el administrador de asignación 312 es responsable de propagar el cambio a los objetos de datos correctos 800 en la memoria 210, a través del administrador de datos 310. Cuando uno de los objetos de datos 800 en la memoria 210 es modificado, el administrador de asignación 312 revisa si ese objeto 800 se está visualizando actualmente en la interfaz de usuario 202, y si es así entonces es responsable de actualizar los elementos de pantalla correspondientes 802 a través del administrador de presentación 308, para reflejar el cambio en el objeto de datos 800, refiriéndose a la asignación correspondiente 804 ingresada en la tabla 409. Se reconoce que los servicios de estructura 304 del dispositivo de comunicación 100 proporcionan funcionalidad a los programas de aplicación de componente 302, los cuales incluyen los administradores antes descritos . En consecuencia, la estructura 206 permite visualizar las aplicaciones interactivas 302 en la interfaz de usuario 202, que típicamente presenta información del dominio de la aplicación 302 y le permite al usuario ingresar y modificar los objetos de datos 800 y elementos de pantalla 802 relacionados. La estructura 206 proporciona un sistema para administrar de forma eficaz la interfaz de usuario 202 implementando las asignaciones 800 directas entre el dominio de datos de aplicación (objeto de datos 800) y los elementos de pantalla UI 802 (esto es, controles UI) . Los cambios a los objetos de datos 800 del dominio de la aplicación se sincronizan de forma automática con la interfaz de usuario 202 y los datos ingresados por el usuario se reflejan automáticamente en los objetos de datos 800 del dominio de la aplicación. El mecanismo primario atrás de esta sincronización es la asignación 804 entre elementos de pantalla 802 y objetos de datos 800 apareados. El sistema de asignación se relaciona con aplicaciones inalámbricas 302 definidas usando metadatos expresados en un lenguaje estructurado como X L. El mecanismo de asignación 804 habilita la creación de pantallas interactivas y dinámicas en la interfaz del usuario 202. Todos los cambios al objeto de datos 800 se pueden reflejar de forma sincronizada en la interfaz de usuario y viceversa. La implementación de asignaciones 804 facilita la construcción de aplicaciones inalámbricas 302 basadas en notificaciones servidor a dispositivo. Las actualizaciones del objeto de datos 800 impulsadas de forma asincrona del servidor (servicio Web 106) son reflejadas de forma síncrona por el elemento de pantalla UI enlazado 802 en la interfaz de usuario 202. Estas asignaciones 800 se pueden aplicar a una diversidad de aplicaciones inalámbricas 302 como comercio de inventario, actualizaciones nuevas, alarmas, actualizaciones de clima.
Componentes de aplicación Refiriéndose a la Figura 2, los programas de aplicación de cliente 302 se ejecutan dentro del ambiente de tiempo de ejecución de terminal de la estructura 206 y soporta acceso a las operaciones del servicio Web proporcionadas por el servicio 106 (ver Figura 1) . Las definiciones de protocolo WSDL y SOAP claramente implican un patrón de datos/mensaje. En una definición de servicio Web WSDL, las operaciones se definen usando la noción de partes de datos y mensajes, que se pueden usar para definir los programas de aplicación de cliente 302 del servicio Web como un conjunto de los datos relacionados 400 y los componentes 404 de mensaje (ver Figura 4) . Refiriéndose a la Figura 4, un diagrama de bloques del programa de aplicación de componente 302 comprende los componentes de datos 400, los componentes de presentación 402. La parte de flujo de trabaj o/mensaj e 405 restante de la aplicación 302 puede ser proporcionada por los componentes de mensaje 404, los cuales son coordinados por los componentes de flujo de trabajo 406 a través de las comunicaciones 214 dentro del ambiente de ejecución 300, o puede proporcionarse como elemento de código de hardware 405 de la aplicación 302 (definida por el desarrollador de la aplicación) . Se puede usar el lenguaje de definición estructurado para construir los componentes 400, 402 ( y 404 si se usa) como una serie de registros de metadatos, que consisten de un número de elementos predefinidos que representan atributos específicos de un recurso, así que cada elemento puede tener uno o más valores. Típicamente, cada esquema de metadatos tiene características definidas como, pero no limitadas a; un número limitado de elementos, un nombre para cada elemento y un significado para cada elemento. Ejemplos de esquemas de metadatos incluyen como, pero no limitados a, Núcleo Durban "Dublin Core" (DC, por sus siglas en inglés) , Reglas para catalogar Anglo-Americanos "Anglo-American Cataloging Rules" (AACR2, por sus siglas en inglés) , Servicio Localizador de Información de Gobierno "Government Information Locutor Service" (GILS, por sus siglas en inglés) , Descripción de Archivos Codificados, "Encoged Archive Description" (EAD, por sus siglas en inglés) , Consorcio de Aprendizaje Global IMS, "IMS Global Learning Consortium" (IMS; por sus siglas en inglés) y Servicio de Localización del Gobierno de Australia, "Australian Government Locutor Service" (AGLS, por sus siglas en inglés) . La sintaxis de la codificación permite que los metadatos de los componentes 400, 402 (y 404 si se usa) sean procesados por la infraestructura 204 del dispositivo (ver Figura 2) , y los esquemas de codificación incluyen, pero no se limitan a, XML, HTML, XSML, RDF, Creación de Catálogos en Lenguaje Máquina (Machine Readable Cataloging o MARC, por sus siglas en inglés) y Extensiones Multipropósito para Correo por Internet (Multipurpose Internet Ma.il Extensions o MIME, por sus siglas en inglés) . Refiriéndose otra vez a las Figuras 4 y 8, los componentes de datos 400 definen objetos de datos 800 que son usados por el programa de aplicación de componente 302, incluyendo datos de aplicación representados por código propio de ejemplo o XML. Ejemplos de objetos de datos 800 cuyos componentes de datos 400 que pueden describir, son ordenes, usuarios y transacciones financieras. Los componentes de datos 400 definen cual información se requiere para describir los objetos de datos 800 y en que formato se expresa la información. Por ejemplo, el componente de datos 400 puede definir, pero no se limita a, una orden que comprende un identificador único para la orden, la cual se formatea como un número, una lista de artículos que se formatean como cadenas, la hora en que se creo la orden, la cual tiene un formato fecha-hora, el estado de la orden, que se formatea como una cadena y un usuario que coloca la orden que se formatea de acuerdo con la definición de otro de los componentes de datos 400. Dado que las partes de datos (elementos) que usualmente se transfieren de mensaje 105 a mensaje 105 de acuerdo con las reglas de coreografía de de los servicios Web 106, de preferencia hay persistencia de objetos de datos 800. Los objetos de datos 800 se pueden generar dinámicamente de acuerdo con las definiciones (si es que están disponibles) de la coreografía de los servicios Web 106 o pueden ser definidos por el diseñador de aplicación con base en definiciones de tipo complejo y/o información de correlación de mensaje. Se reconoce que los componentes de pantalla 402 pueden ser enlazadas por las asignaciones 804 a los componentes de datos 400 (ver Figura 9) , como se describe más adelante. Además, los componentes de datos 400 pueden consistir de una serie de definiciones de campo de datos escritas como, pero no limitadas a, HTML, XHTML, XML y otros lenguajes de definición estructurados, en donde los objetos de datos 800 (ver Figura 9) son instancias de datos de acuerdo con las definiciones de campo de datos . Nótese que las definiciones de objeto de datos proporcionan definiciones de la estructura de los campos de datos y sus tipos de datos correspondientes, así que los objetos de datos 800 son instancias de una definición de objeto de datos particular. Los campos de datos comprenden las definiciones de objeto de datos y cada campo de datos tiene un tipo de datos asociado. Además, los campos de datos complejos contienen una estructura de campos de subdatos. Las definiciones de los objetos de datos 800 se incluyen en el esquema del componente de datos 400 de la aplicación 302. Estas definiciones de datos proporcionan un modelo de datos para definir los objetos de datos 800 usados por la aplicación 302. En consecuencia, el componente de datos 400 es un conjunto de una o más definiciones de campo de datos agrupadas juntas para definir el formato de los valores de campo de datos correspondientes cuando se crea como objeto de datos 800. Las definiciones de componente de datos 400 pueden tener una clave primaria o compuesta u, opcionalmente ser definida sin una clave. Las claves se pueden usar con las asignaciones 804 para proporcionar un enlace único entre un par de los datos asignados 400 y componentes 402 de pantalla. Refiriéndose otra vez a la Figura 4, los componentes 402 de presentación/pantalla definen la apariencia y comportamiento del programa de aplicación 302 visualizado en la interfaz de usuario 202. Los componentes de presentación 402 pueden especificar pantallas GUI y controles, y acciones a ser ejecutadas cuando el usuario interactúa con la aplicación de componente 302 usando la interfaz de usuario 202. Por ejemplo, los componentes de presentación 402 pueden definir pantallas, etiquetas, cajas de editar, botones y menús, y acciones a ser tomadas cuando el usuario teclea en una caja de editar o pulsa un botón. La mayoría de consumidores de servicio Web usan una presentación visual de resultados de operación de servicio Web y por tanto proporciona el ambiente de tiempo de ejecución en sus dispositivos 100 capaces de permitir la visualización de pantallas de interfaz de usuario. Una aplicación de ejemplo 302 de pasar un parámetro al componente de pantalla 402 así también como a la componente de pantalla 402 que acepta el parámetro pasado se ilustra enseguida. Considerar una aplicación con: ¦ componente de datos 400 'User1 ¦ componente de pantalla 402 ' scrAllUsers ' listando una caja de elección de todos los nombres de los usuarios, con una pieza de menú/botón para visualizar los detalles de un usuario seleccionado. ¦ el componente de pantalla 402 ' scrUserlnfo 1 permite visualizar detalles de un usuario pasado como un parámetro ejemplo de componentes de datos 400 X L El componente de datos 400 'User' con campo de clave primaria 'ñame' se puede definir usando los metadatos siguientes : «ccData ñame= 'User ' pkey= ¦ ñame 1 > <dfield ñame= 1 ñame ' type= 1 String · /> <dfield name= 1 street 1 type= ' String' /> <dfield name='city' type= ' String' /> <dfield name= "postal 1 type= 1 String" /> <dfield name='phone' type= ¦ String" /> </cData> ejemplo de componentes de presentación 402 XML La pantalla 1 scrAllüsers 1 puede definir un control de elección 'cbNames' asignado al campo 'ñame1 de todas las instancias del componente de datos 400 'User' . La definición de metadatos de pantalla contiene una pieza de menú o botón con una acción para que la pantalla permita visualizar ' scrUserlnfo ' con el parámetro 'User' seleccionado, pasado como un parámetro a la interfaz de usuario 202. <cScr name= 1 scrAllüsers ' > <choice ñame=· cbNames 1 mapping= 1 User [] .name'/> • · · <actionscreen= 1 scrUserlnfo 1 param= 1 cbNames . selected' /> ... </cScr> Una pantalla ' scrUserlnfo ' define un control de edición 'ebName' asignado a un campo 'ñame' de una instancia específica del componente de datos 400 'User' pasado como un parámetro: <cScr name= 1 scrüserlnfo 1 param= "User 1 > • · · <edit name= 1 ebName 1 mapping=IUser.name,/> • · · </cScr> Refiriéndose otra vez a la Figura 4, el mensaje restante 105 y otras partes del flujo de trabajo de la aplicación 302 pueden proporcionarse mediante elementos de la aplicación 302 codificados en hardware y/o pueden proporcionarse como componentes adicionales 404, 406 descritos en el lenguaje de definición estructurado y codificado/secuenciado, respectivamente. En el caso de usar componentes 404 de mensaje atómicos, estos definen el formato de los mensajes 105 usados por el programa de aplicación de componente 302 para comunicarse con sistemas externos como el servicio Web 106 e incluir datos de mensaje representados en, por ejemplo, código propio o X L. Por ejemplo, uno de los componentes 404 del mensaje puede describir como, pero no limitarse a, un mensaje para colocar una orden que incluye el identificador único para la orden, el estado de la orden y notas asociadas con la orden. Las definiciones de componente de mensaje 404 escritas en el lenguaje de definición estructurado pueden representar únicamente (y asignar a) mensajes WSDL, y se pueden generar dinámicamente en tiempo de ejecución. En consecuencia, la generación dinámica se puede hacer para las definiciones de componentes para mensajes 105 de aplicación de cliente, y contenido de datos asociados, de metadatos de Servicio Web estándar en el lenguaje de definición usado para expresar la interfaz de servicio Web, por ejemplo como, pero no limitado a, WSDL y BPEL. Los mensajes 105 de Servicio Web están definidos dentro del contexto de operación y hay correlaciones definidas entre los componentes 404 de mensaje en la definición del programa de aplicación de componente 302. Esta definición se podría hacer usando parámetros de mensaje predefinidos y/o a través de componentes de flujo de trabajo 406 separados, según se define más adelante. Refiriéndose otra vez a la Figura 4, en el caso de usar los componentes de flujo de trabajo 406 atómicos del programa de aplicación de componente 302, estos definen un procesamiento que ocurre cuando se realiza una acción, como una acción especificada por un componente 402 de presentación según se describe antes, o se puede realizar una acción cuando llegan mensajes 105 (ver Figura 1) del sistema 10. El procesamiento mensaje 105 y de flujo de trabajo puede ser definido por los componentes de flujo de trabajo 406. Los componentes de flujo de trabajo 406 se escriben como una serie de instrucciones en un lenguaje de programación o en un lenguaje de secuencia de comandos, como, pero no limitado a, ECMAScript, y puede ser compilado en código propio y ejecutado por el ambiente de ejecución 300, según se describe antes. Un ejemplo de los componentes de flujo de trabajo 406 puede ser asignar valores a datos, manipular pantallas o enviar el mensaje 105. El componente de flujo de trabajo 406 soporta una correlación entre los mensajes 105 y define el flujo de aplicación como un conjunto de reglas para operaciones en los otros componentes 400, 402, 404. Se pueden definir múltiples componentes de flujo de trabajo con respecto a un programa de aplicación dado 302. En general, el Lenguaje para Secuencias de Comandos de la Asociación Europea de Fabricantes de Computadoras (European Computer Manufacturera Association (ECMA) Script) es un lenguaje de secuencia de comandos estándar, en donde los comandos pueden ser referidos como una secuencia de instrucciones que es interpretada o realizada por otro programa más que por el procesador de computadora. Algunos otros ejemplos de lenguajes de secuencias de comandos son Perl, Rexx, VBScript, JavaScript y Tcl/Tk. Los lenguajes de secuencias de comandos, en general, son lenguajes instruccionales que se usan para manipular, personalizar y automatizar las facilidades de un sistema existente, como los dispositivos 100. En esos sistemas, ya se tiene disponible funcionalidad útil a través de la interfaz de usuario 202 (ver Figura 2) , y el lenguaje de secuencia de comandos es un mecanismo para exponer esa funcionalidad para control de programa. En esta forma, el dispositivo 100 se dice que proporciona el ambiente de tiempo de ejecución anfitrión de objetos y facilidades que completa las capacidades del lenguaje de secuencia de comandos . Un ejemplo de los componentes 404, 406 para las aplicaciones 302 basadas en componentes, podría ser: Ejemplo de componentes 404 de mensaje XML <msg name= · ordConfirmation' type= 1 response 1 action= 'mhConfirmation1 > <part name= "orderld1 type= 1 String 1 /> <part name= ' status 1 type= ¦ String 1 /> </msg> ejemplo de componentes de flujo de trabajo 406 de ECMScript <actions> <function name= 'mhConfirmation1 > key=ordConf rmation. orderID; order=Order .get (key) ; order . orderStatus=ordConfirmation. status; scrConfirmation. display (order) ; </function> </actions> Expresar los componentes de datos 400, mensaje 404 y presentación 402 usando XML o sus derivados, y el componente de flujo de trabajo 406 usando el lenguaje ECMAScript o su subconjunto, puede permitir que un desarrollador de aplicación para extraer el cliente del Servicio Web de cualquier plataforma o ambiente específico e implementar en principio aplicaciones del tipo 'desarrolla una vez que se ejecuta en cualquier parte'. El siguiente ejemplo muestra como un programa 302 de aplicación de cliente de Servicios Web podría ser expresado usando un lenguaje de definición estructurado, como, pero limitado a XMML, y un lenguaje de programación/secuencia de comandos neutral de plataforma, como, pero no limitado a, ECMAScript, de componentes definidos. Además, refiriéndose a la Figura 4, como antes, se puede ver que los componentes de mensaje 404 pueden recolocar los datos requeridos para la entrada y salida de los mensajes 105. Los componentes de datos 400 correspondientes coordinan el almacenamiento de los datos en el módulo de memoria 210 (ver Figura 2) del dispositivo 100 para la presentación subsiguiente en la interfaz de usuario 202 (ver Figura 2) por los componentes de presentación 402. Los componentes de flujo de trabajo 406 pueden coordinar la transferencia de datos entre los componentes de datos 400, presentación 402 y mensaje 404. El tiempo de ejecución de cliente es capaz de almacenar y actualizar objetos de datos atómicos 800 directamente.
Ejemplo de operación básica de un modelo de aplicación basado en componente Se deberá de notar que la operación que detalla el procesamiento de asignaciones 804 se describe más adelante haciendo referencia a las Figuras 9, 10 y 11. Refiriéndose a las Figura 1, 3 y 6, por ejemplo, la operación 600 muestra cuando el dispositivo 100 recibe 602 el mensaje 105 de respuesta, que contiene datos de mensaje, el componente de flujo de trabajo 406 apropiado interpreta 604 el contenido de los datos del mensaje 105 de acuerdo con el componente de mensaje 404 apropiado. El componente de flujo de trabajo 406 entonces procesa 606 el contenido de los datos e inserta 910 los datos en el componente de datos 400 correspondiente para el subsiguiente almacenamiento 612 en el módulo de memoria 210 (ver Figura 2) . Además, si se necesita, el componente de flujo de trabajo 406 también inserta 608 los datos en el componente de presentación 402 apropiado para la visualización 614 subsiguiente en la interfaz de usuario 202 (ver Figura 2) .
Refiriéndose a las Figura 1, 3 y 7 la operación 700 muestra entrada de datos 702 para una acción, como pulsar un botón o seleccionar una pieza de un menú, que el usuario realiza 703 en un elemento de interfaz de usuario a través de la interfaz de usuario 202 (ver Figura 2) . El componente de flujo de trabajo 406 relevante interpreta 704 los datos de entrada de acuerdo con el componente de presentación 404 apropiado y crea 706 entidades de datos que son definidas por los componentes de datos 400 apropiados. El componente de flujo de trabajo 406 entonces puebla 710 los componente de datos 400 con los datos de entrada proporcionados por el usuario para su almacenamiento subsiguiente 712 en el módulo de memoria 210 (ver Figura 2) . Además, el componente de flujo de trabajo 406 también inserta 708 los datos de entrada en el componente de mensaje 404 apropiado para el envió 714 subsiguiente de los datos de entrada como entidades de datos al servicio Web en el mensaje 105, definido por el componente de mensaje 404. En la operación antes descrita, se reconoce que la operación de los componentes de flujo de trabajo 406 y de mensaje 404 podría ser correspondientemente diferente si se incluyera como una parte codificada por hardware 405 de la aplicación 302.
Generación de pantalla dinámica y predefinida Las aplicaciones inalámbricas 302 pueden tener conjuntos predefinidos de elementos de pantalla 802 y objetos de datos 800 con la relación (asignación 800) entre estos conjuntos, identificándose en la fase de diseño de aplicación en las definiciones de campo de los componentes de datos 400 y los componentes de pantalla 404. Este modelo puede ser referido como un modelo de relación entre datos y pantalla predefinido, de tal forma que la asignación 804 entre los elementos de pantalla 802 presentados al usuario y los objetos de datos 800 se pueden expresar en metadatos en las definiciones de campo de datos usando un lenguaje estructurado como XML. La pantalla de interfaz de usuario 202 también se puede generar dinámicamente con base en la estructura del objeto de datos 800 asociados con los elementos de pantalla 802. En algunas situaciones el formato de una cadena de datos recibida como entrada del servidor (servicio Web 106) , por medio del mensaje 105 (ver Figura 1) , no se puede anticipar (por ejemplo, operación del Servicio Web 106 regresando XML arbitrario) . En el caso donde la cadena de datos recibida se presenta en un formato estructurado (por ejemplo, XML) , el dispositivo 100 puede hacer una predicción inteligente, por la estructura 206 usando reglas de traducción definidas, en el formato de pantalla (por ejemplo, controles UI, arreglo, etc.) para presentar los objetos de datos 800 representados por la cadena de datos. Esto puede ser hecho operando en los nodos XML (por ejemplo) en la cadena de datos para construir los componentes de datos 400 correspondientes que entonces son interpretados por el administrador de asignación 312 (ver Figura 8) para asignar los elementos de pantalla 802 correspondientes por medio de los componentes de pantalla 402 asignados, mejor determinados por la estructura 206 para manejar el contenido de datos de la cadena de datos transformada. El esquema para el contenido de XML podría ser predefinido durante el desarrollo de la aplicación inalámbrica 302 y reglas para traducir la cadena de datos con base en el esquema en el formato de definición de componente que sea bien entendido por el administrador de asignación 312 y el desarrollador de las reglas de traducción. Las reglas de traducción podrían ser parte del administrador de asignación 312 y se diseñarían para traducir el contenido de cadenas de datos estructurados XML (por ejemplo) más comúnmente encontradas. Además el usuario puede tener la oportunidad de actualizar los campos UI y modificar los datos antes de que se almacenen en el dispositivo 100 o de que se envíen de regreso al servidor. El siguiente ejemplo muestra un fragmento de una cadena de datos XML arbitraria del esquema XML: <dataNodel attrl= ' alí · attr2= 1 val2 · > <subDataNodel>abcdefg</subDataNodel> <subDataNode2>222</subDataNode2> <subDataNode3>333</subDataNode3> </dataNodel> <dataNodel attrl= ¦ all' attr2= " val2 · > <subDataNode1>hijklmnop</subDataNode1> <subDataNode2>555</subDataNode2> <subDataNode3>666</subDataNode3> </dataNodel> El administrador de asignación 312 usa la definición de esquema proporcionada por el desarrollador de aplicación que contiene las definiciones de campos de datos . <dataEntity name= 1 dataNodel ' > <dfield name= 1 subDataNodel 1 type= 1 String ' /> <dfield name= 1 subDataNode2 · type='int,/> <dfield name= * subDataNode3 ' type='int,/> </dataEntity> y dinámicamente aplica reglas de traducción para convertir la cadena de datos XML en formato de aplicación aceptable (como el esquema que se proporciona) y generar objetos de datos 400 XML bien formados: <dataEntity name= 1 dataNodel 1 key='0'> <dfield name= 1 subDataNodel 1 >abcdefg</> <dfield name= 1 subDataNode21 >222</> </dataEntity> <dataEntity name= 1 dataNodel 1 key= 11 ' > <dfield name= 1 subDataNodel 1 >hijklmnop</> <dfield name= 1 subDataNode21 type= ¦ int 1 >555</> </dataEntity> Presentación de objetos de datos en la interfaz de usuario Cuando se traza la pantalla de la interfaz de usuario 202, el objeto de datos 800 visualizado por el elemento de pantalla asignado 802 necesita ser resuelto. Las diferentes opciones para resolver el objeto de datos especifico 800 a ser usadas por los valores iniciales son como sigue: Inicializacion con base en parámetro de pantalla Típicamente, el objeto de datos 800 del componente de datos 400 con valores para los elementos de datos 802 asignados se pasa a la pantalla de la interfaz de usuario 202 como un parámetro. En el ejemplo de componente de pantalla 404 dado anteriormente, la pantalla ' scrüserlnfo" recibió el objeto de datos 800 de un usuario como el parámetro. Los elementos de pantalla 802 en esta pantalla asignada a la definición de campo de datos del componente de datos 400 'User' permitirían la visualización de un valor de datos de este parámetro.
Valor inicial no resuelto Si la asignación 804 es definida para la pantalla, pero no se ha resuelto el objeto de datos inicial 800 del componente de datos relacionado 400, entonces ningún valor de datos inicial seria visualizado para los elementos de pantalla asignados 802. Un ejemplo de esto sería una pantalla definida para ingresar valores de datos para un usuario nuevo. El componente de datos 400 'User' inicial no sería relevante. Después de que el usuario ingresa valores nuevos en los campos de datos del elemento de pantalla 802, se usan definiciones de asignación para crear un objeto de datos 800 nuevo de este componente de datos 400, como se describe más adelante en relación con ' User Data Updates ' .
Lista de todos los objetos de datos Para una elección tipo control/lista del elemento de pantalla 802, la asignación 804 puede especificar que todos los objetos de datos 800 creados se van a usar, como se muestra en el Ejemplo de componente de pantalla 404 dado anteriormente .
Presentación de pantalla Refiriéndose a las Figuras 3, 8 y 9, este escenario 850 describe las etapas ejecutadas para un elemento de pantalla 802 cuando se traza una pantalla nueva en la interfaz de usuario 202. Etapa 852, el administrador de asignación 312 detecta el elemento de pantalla 802 asignado al campo del componente de datos 400. Etapa 854, el administrador de asignación 312 verifica si este tipo de objeto de datos 800 está unido a la pantalla - es decir, pasa como un parámetro. Si es así, el administrador de asignación recupera, en la etapa 858, el valor del campo de datos del objeto de datos 800 y lo pasa al administrador de presentación 308 para visualizarlo en la pantalla. Si no es asi, se visualiza un valor por omisión para el tipo de campo en la etapa 856 (por ejemplo, en blanco para pantalla, 0 para número, etc.) en la pantalla 202.
Actualizaciones de control para datos Refiriéndose a las Figuras 3 y 8 , con base en la asignación 804 de metadatos, los valores que el usuario ingresa se reflejan en los valores de campo del objeto de datos 800 relevante en la memoria 210. El proceso puede involucrar la siguiente funcionalidad: ¦ validación de entrada ¦ creación de datos ¦ actualización de datos Validación de entrada La validación de los datos ingresados por el usuario se podría basar automáticamente en el cmp de datos (por ejemplo, número de teléfono) Creación de datos Con base en los valores ingresados, si se encuentra un valor de clave da datos nuevo, se puede crear un objeto de datos 800 nuevo. En el ejemplo de componente de datos 400 dado anteriormente, si se ingresa un nombre previamente indefinido se crea un objeto de datos 800 'User' nuevo.
Actualización de datos Se pueden actualizar valores de campo del objeto de datos 800 para un componente de datos 400 existente como resultado del ingreso del usuario en la interfaz de usuario 202.
Operación de actualización Un modelo de actualización de dos formas podría trabajar en dos modos: ¦ Entrega automática Se entrega el dato cuando el usuario deja la pantalla. ¦ Modo de transacción administrada Se asigna una acción de menú específica (elemento de pantalla 802) para procesar datos. Por ejemplo, para una pantalla de múltiple orden, la parte 'submit1 de menú en la última pantalla actualizaría/crearía el objeto de datos 800 resultante. Otra parte de menú (por ejemplo, 'cancel') descartaría los datos ingresados. Refiriéndose a las Figura 3, 8 y 10, el siguiente escenario 870 describe el flujo de asignación de datos ingresados por el usuario (eventos de usuario) en la interfaz de usuario 202 en los objetos de datos 800. En la etapa 872, conforme el usuario ingresa/actualiza datos en el elemento de pantalla 802, el administrador UI 308 pasa el valor al administrador de asignación 312. En la etapa 874, si éste es un elemento de pantalla 802 asignado, el administrador de asignación 312 resuelve el componente de datos 400 apropiado y solicita el (los) objeto (s) de datos 800 del administrador de datos 310. En la etapa 876, el administrador de datos 312 valida que el valor ingresado para el elemento de pantalla 802 se acople al tipo de campo de componente de datos 400 asignado a este elemento de pantalla 802. En la etapa 878, el administrador de datos 310 mantiene los valores de datos modificados en un almacén temporal , como datos ' sucios ' no entregados . El administrador de datos 310 también resuelve si esto fue una actualización de objeto (s) de datos 800 existente (s) o un (os) objeto (s) de datos 800 nuevo (s) creado (s). En la etapa 880, el evento de usuario es determinado como entregado (opción A) o abortado (opción B) . Para una determinación de entregado: OPCIÓN A: entregar, 1) el usuario selecciona un botón o una parte de un menú (elemento de pantalla 802) asignado a la acción de entregar; 2) el administrador de UI 308 le notifica al administrador de asignación 312 acerca de la acción; 3) el administrador de asignación 312 le solicita al administrador de datos 310 que entregue cambios ; 4) el administrador de datos 310 entrega los cambios y almacena el (los) objeto (s) de datos 800 en la memoria 210. Para una determinación de abortado: OPCIÓN B: repetir, 1) el usuario selecciona dejar la pantalla seleccionando un botón o una parte de menú (elemento de pantalla 802) que no se asigna a una acción de entregar; 2) el administrador de UI 308 le notifica al administrador de asignación 312 acerca de la acción; 3) el administrador de asignación 312 le solicita al administrador de datos 310 repetir los cambios; 4) el administrador de datos 312 descarta los cambios - esto podría significar descartar solo los cambios a campos individuales o eliminar el (los) objeto (s) de datos 800 completo (s) si se crearán unos nuevos como resultado de la asignación 804 del componente de pantalla 402 al componente de datos 400.
Actualizaciones datos a control Si el dispositivo 100 puede recibir de forma asincrona actualizaciones de datos de fuentes externa (por ejemplo, del servicio Web 106) , los cambios a valores de datos asociados con los elementos de pantalla 802 resultarían en una renovación de pantalla con la nueva información. Refiriéndose a las Figuras 3, 8 y 11, al recibir 952 el mensaje 105 del servidor 106, el administrador de mensajes 312 determina 954 si este mensaje 105 se asigna al componente de datos 400 de la(s) aplicación (es) 302 que se está(n) ejecutando actualmente en la estructura 206. Si este es el caso, entonces se llevan a cabo las siguientes etapas adicionales: etapa 956, la estructura 206 de dispositivo recibe notificación del servidor 106 acerca de un cambio de datos; etapa 958, el administrador de mensajes 306 le notifica al administrador de datos 310 que realice cualesquiera actualizaciones de datos relevantes a el (los) objeto (s) de datos 800; etapa 960, el administrador de mensajes 306 también le notifica al administrador de asignación 312 los cambios de datos; etapa 962, usando los metadatos de la asignación 804 el administrador de asignación 312 verifica si los cambios de datos son relevantes para la pantalla actual; etapa 964, si los cambios están relacionados con la información actualmente visualizada el administrador de asignación 312 le solicita al administrador de UI 308 renovar la pantalla; y etapa 966, la pantalla se renueva para visualizar los objetos de datos 800 actualizados. De otra forma, etapa 968, el mensaje 105 no afecta los valores actuales de los elementos de pantalla 802 visualizados en la interfaz de usuario 202. Aunque la descripción se ha realizado para uno o más sistemas y métodos ejemplificativos, serán evidentes muchas variaciones para aquellos con conocimientos en el campo, y dichas variaciones están dentro del alcance de la solicitud. Por ejemplo, aunque se usan XML y un subconjunto de EC AScript en los ejemplos proporcionados, se pueden usar otros lenguajes y otras variantes de lenguajes para definir las aplicaciones de componentes 302.
Además, se reconoce como una alternativa a la asignación 804 antes descrita, la definición de los campos de datos podría estar contenida en el componente de pantalla 402 (ver Figura 4) . Por tanto, la generación de los elementos de pantalla 802 se basaría en las definiciones de campos de datos incluidas en las definiciones del componente de pantalla 402, y el componente de datos 400 sería asignado 804 al componente de pantalla 402 correspondiente que tiene incluidas las definiciones de campos de datos. En consecuencia, la generación de los objetos de datos 800 dependerían de las definiciones de campos de datos contenidas en el componente de pantalla 402 asignado.

Claims (37)

  1. REIVINDICACIONES ; 1. Un método para generar un elemento de pantalla de una aplicación inalámbrica con base en un objeto de datos visualizado en una interfaz de usuario de un dispositivo inalámbrico, la aplicación incluye un componente de datos que tiene al menos una definición de campo de datos y un componente de pantalla que tiene al menos una definición de elemento de pantalla, expresando las definiciones de componente en un lenguaje de definición estructurado; el método comprende las etapas de: seleccionar el componente de pantalla que corresponde al elemento de pantalla seleccionado para ser visualizado; identificar al menos una asignación presente en el componente de pantalla, la asignación para especificar una relación entre el componente de pantalla y el componente de datos definido por un identificador que representa la asignación; seleccionar el componente de datos asignado por la asignación de acuerdo con el identificador de asignación; obtener un valor de campo de objeto de datos correspondiente a la definición de campo de datos del componente de datos asignado; generar un elemento de pantalla a partir de la definición de elemento de pantalla para incluir el valor de campo de objeto de datos de acuerdo con el formato de la definición de campo de datos definido en el componente de datos asignado.
  2. 2. El método según la reivindicación 1, en donde una diversidad de las definiciones de campo de datos del componente de datos es compartida entre el componente de pantalla y el componente de datos representado por la asignación.
  3. 3. El método según la reivindicación 2, que además comprende la etapa de enlazar la diversidad de definiciones de campos de datos para que correspondan a unas de las definiciones de elemento de pantalla del componente de pantalla representado por el identificador .
  4. 4. El método según la reivindicación 2, que además comprende la etapa de detectar un evento de usuario de la interfaz de usuario relacionado con el elemento de pantalla.
  5. 5. El método según la reivindicación 4, que además comprende la etapa de identificar la asignación en el componente de pantalla correspondiente al componente de datos enlazado del elemento de pantalla afectado.
  6. 6. El método según la reivindicación 5 , que además comprende la etapa de actualizar el objeto de datos en una memoria usando la definición de campo de datos del componente de datos enlazado.
  7. 7. El método según la reivindicación 5, que además comprende la etapa de crear un objeto de datos nuevo en una memoria usando la definición de campo de datos del componente de datos enlazado.
  8. 8. El método según la reivindicación 2, en donde el objeto de datos se pasa a la interfaz de usuario como un parámetro de pantalla.
  9. 9. El método según la reivindicación 2, en donde una primera definición de elemento de pantalla es asignada por un primer identificador a un primer componente de datos y una segunda definición de elemento de pantalla es asignada por un segundo identificador a un segundo componente de datos diferente del primer componente de datos .
  10. 10. El método según la reivindicación 9, en donde la primera definición de elemento de pantalla y la segunda definición de elemento de pantalla se asignan al mismo componente de datos usando el primer identificador .
  11. 11. El método según la reivindicación 2, en donde el lenguaje de definición estructurado se basa en XML.
  12. 12. El método según la reivindicación 2, en donde el identificador es una clave primaria simple.
  13. 13. El método según la reivindicación 2 , en donde el identificador es una clave compuesta.
  14. 14. El método según la reivindicación 2 , que además comprende la etapa de recibir un mensaje de comunicación asincrono mediante el dispositivo por medio de una red acoplada al dispositivo, el mensaje incluye un objeto de datos de mensaje.
  15. 15. El método según la reivindicación 2, que además comprende la etapa de verificar el mensaje para la asignación que corresponde al componente de datos de la aplicación dispuesta en el dispositivo.
  16. 16. El método según la reivindicación 15, que además comprende la etapa de actualizar el objeto de datos del mensaje en una memoria usando la definición de campo de datos del componente de datos enlazado.
  17. 17. El método según la reivindicación 15, que además comprende la etapa de crear el objeto de datos del mensaje en una memoria usando la definición de campo de datos del componente de datos enlazado .
  18. 18. Un sistema para generar un elemento de pantalla de una aplicación inalámbrica con base en un objeto de datos visualizado en una interfaz de usuario de un dispositivo inalámbrico, la aplicación incluye un componente de datos que tiene al menos una definición de campo de datos y un componente de pantalla que tiene al menos una definición de elemento de pantalla, expresando las definiciones de componente en un lenguaje de definición estructurado, el método además comprende las etapas de: un administrador de asignación para seleccionar el componente de pantalla que corresponde al elemento de pantalla e identificar al menos una asignación presente en el componente de pantalla, la asignación para especificar una relación entre el componente de pantalla y el componente de datos definido por un identificador que representa la asignación, el administrador de asignación selecciona el componente de datos asignado por la asignación de acuerdo con el identificador de asignación; un administrador de datos para obtener un valor de campo de objeto de datos que corresponde a la definición de campo datos del componente de datos asignado; y un administrador de pantalla para generar un elemento de pantalla a partir de la definición de elemento de pantalla para incluir el valor de campo de objeto de datos de acuerdo con el formato de la definición de campo de datos definido en el componente de datos asignado.
  19. 19. El sistema según la reivindicación 18, en donde una diversidad de las definiciones de campo de datos del componente de datos es compartida entre el componente de pantalla y el componente de datos representado por la asignación.
  20. 20. El sistema según la reivindicación 19, en donde la diversidad de definiciones de campo de datos está enlazada con las correspondientes definiciones de elemento de pantalla del componente de pantalla representada por el identificador .
  21. 21. El sistema según la reivindicación 19, que además comprende el administrador de presentación configurado para detectar un evento de usuario de la interfaz de usuario relacionado con el elemento de pantalla.
  22. 22. El sistema según la reivindicación 21, que además comprende el administrador de asignación configurado para identificar la asignación en el componente de pantalla que corresponde al componente de datos enlazado del elemento de pantalla afectado.
  23. 23. El sistema según la reivindicación 22, que además comprende el administrador de datos configurado para actualizar el objeto de datos en una memoria usando la definición de campo de datos del componente de datos enlazado .
  24. 24. El sistema según la reivindicación 22, que además comprende el administrador de datos configurado para crear un objeto de datos nuevo en una memoria usando la definición de campo de datos del componente de datos enlazado .
  25. 25. El sistema según la reivindicación 19, en donde el objeto de datos se pasa a la interfaz de usuario como un parámetro de pantalla.
  26. 26. El sistema según la reivindicación 19, en donde una primera definición de elemento de pantalla es asignada por un primer identificador a un primer componente de datos y una segunda definición de elemento de pantalla es asignada por un segundo identificador a un segundo componente de datos, diferente del primer componente de datos .
  27. 27. El sistema según la reivindicación 26, en donde la primera definición de elemento de pantalla y la segunda definición de elemento de pantalla son asignadas al mismo componente de datos usando el primer identificador.
  28. 28. El sistema según la reivindicación 19, en donde el lenguaje de definición estructurado se basa en X L.
  29. 29. El sistema según la reivindicación 19, en donde el identificador es una clave primaria simple.
  30. 30. El sistema según la reivindicación 19, en donde el identificador es una clave compuesta.
  31. 31. El sistema según la reivindicación 19, que además comprende un administrador de comunicación para recibir un mensaje de comunicación asincrono mediante el dispositivo a través de una red acoplada al dispositivo, el mensaje incluye un objeto de datos de mensaje.
  32. 32. El sistema según la reivindicación 19, que además comprende el administrador de asignación configurado para verificar el mensaje para la asignación que corresponde al componente de datos de la aplicación dispuesta en el dispositivo.
  33. 33. El sistema según la reivindicación 32, que además comprende el administrador de datos configurado para actualizar el objeto de datos de mensaje en una memoria usando la definición de campo de datos del componente de datos enlazado.
  34. 34. El sistema según la reivindicación 32, que además comprende el administrador de datos configurado para crear el objeto de datos de mensaje en una memoria usando la definición de campo de datos del componente de datos enlazado .
  35. 35. Un método para generar un objeto de datos de una aplicación inalámbrica con base en un cambio en un elemento de pantalla visualizado en una interfaz de usuario de un dispositivo inalámbrico, la aplicación incluye un componente de datos que tiene al menos una definición de campo de datos y un componente de pantalla que tiene al menos una definición de elemento de pantalla, expresando las definiciones de componente en un lenguaje de definición estructurado; el método comprende las etapas de: seleccionar el componente de pantalla que corresponde al elemento de pantalla; identificar al menos una asignación presente en el componente de pantalla, la asignación para especificar una relación entre el componente de pantalla y el componente de datos; seleccionar el componente de datos asignado por la asignación; obtener un valor cambiado del elemento de pantalla que corresponde al componente de datos asignado; asignar el valor cambiado a un valor de campo de datos del objeto de datos de acuerdo con el formato de la definición de campo de datos definido en el componente de datos asignado .
  36. 36. Un dispositivo para generar un elemento de pantalla de una aplicación inalámbrica con base en un objeto de datos visualizado en una interfaz de usuario de un dispositivo inalámbrico, la aplicación incluye un componente de datos que tiene al menos una definición de campo de datos y un componente de pantalla que tiene al menos una definición de elemento de pantalla, expresando las definiciones de componente en un lenguaje de definición estructurado, el método comprende los pasos de: un medio para seleccionar el componente de pantalla que corresponde al elemento de pantalla seleccionado para ser visualizado; un medio para identificar al menos una asignación presente en el componente de pantalla, la asignación para especificar una relación entre el componente de pantalla y el componente de datos ; un medio para seleccionar el componente de datos asignado por la asignación; un medio para obtener un valor de campo de objeto de datos que corresponde a la definición de campo de datos del componente de datos asignado; un medio para generar un elemento de pantalla a partir de la definición de elemento de pantalla para incluir el valor de campo de objeto de datos de acuerdo con el formato de la definición de campo de datos definido en el componente de datos asignado.
  37. 37. Un producto de programa de cómputo para generar un elemento de pantalla de una aplicación inalámbrica con base en un objeto de datos visualizado en una interfaz de usuario de un dispositivo inalámbrico, la aplicación incluye un componente de datos que tiene al menos una definición de campo de datos y un componente de pantalla que tiene al menos una definición de elemento de pantalla, expresando las definiciones de componente en un lenguaje de definición estructurado; el producto de programa de cómputo comprende : un medio legible por computadora; un módulo de asignación almacenado en el medio legible por computadora para seleccionar el componente de pantalla que corresponde al elemento de pantalla e identificar al menos una asignación presente en el componente de pantalla, la asignación para especificar una relación entre el componente de pantalla y el componente de datos definido por un identificador que representa la asignación, el módulo de asignación para seleccionar el componente de datos asignado por la asignación de acuerdo con el identificador de asignación; un módulo de datos almacenado en el medio legible por computadora para obtener un valor de campo de objeto de datos que corresponde a la definición de campo de datos del componente de datos asignado; y un módulo de pantalla almacenado en el medio legible por computadora para generar un elemento de pantalla a partir de la definición de elemento de pantalla para incluir el valor de campo de objeto de datos según el formato de la definición de campo de datos definida en el componente de datos asignado. RESUMEN DE LA INVENCIÓN Se describen un sistema y un método para la administración eficaz de una interfaz de usuario (UI, por sus siglas en inglés) de un dispositivo inalámbrico mediante la implementación de asignación directa entre el dominio de datos de aplicación y controles y pantallas de UI . El dispositivo tiene un ambiente de tiempo de ejecución de dispositivo inalámbrico inteligente (tiempo de ejecución de dispositivo) que proporciona un conjunto de servicios básicos para administrar la aplicación inalámbrica, que incluye una serie de definiciones de componentes de datos y de pantalla enlazadas; y sus interacciones pueden simplificar el esfuerzo para su desarrollo y reducir la distribución de recursos . El dominio de datos para esta categoría de aplicaciones se define usando las definiciones de componente de datos atómicos . La comunicación entre una interfaz de usuario de dispositivo y los componentes de datos se define usando definiciones de componente de pantalla atómico. Las definiciones de componente de datos y de pantalla se describen en metadatos usando un lenguaje de definición estructurado como XML. Las relaciones entre las definiciones de componente de datos y de pantalla se insertan en las definiciones de XML en la forma de asignaciones de datos/pantalla. Típicamente, las pantallas hechas para visualizar se derivan de algún componente de datos fundamental y los controles de pantalla afectados por eventos de usuario impactan el estado actual (o representación de datos) de la aplicación. Los cambios a los datos del dominio de la aplicación se sincronizan automáticamente con la interfaz de usuario, y los datos ingresados por el usuario se reflejan automáticamente en los datos del dominio de la aplicación. El mecanismo primario detrás de esta sincronización es la asignación de datos y pantallas . Este mecanismo habilita la creación de pantallas interactivas y dinámicas . Todos los cambios al componente de datos se pueden reflejar de inmediato en la pantalla y viceversa. Este modelo permite construir aplicaciones inalámbricas eficaces con base en notificaciones servidor a dispositivo. Las actualizaciones de datos impulsadas de forma asincrona desde el servidor se reflejan de forma instantánea en la pantalla de la UI .
MXPA05002276A 2004-02-27 2005-02-25 Sistema y metodo para construir aplicaciones inalambricas con asignacion inteligente entre interfaz de usuario y componentes de datos. MXPA05002276A (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP04251160A EP1571547A1 (en) 2004-02-27 2004-02-27 System and method for building wireless applications with intelligent mapping between user interface and data components

Publications (1)

Publication Number Publication Date
MXPA05002276A true MXPA05002276A (es) 2008-11-24

Family

ID=34746128

Family Applications (1)

Application Number Title Priority Date Filing Date
MXPA05002276A MXPA05002276A (es) 2004-02-27 2005-02-25 Sistema y metodo para construir aplicaciones inalambricas con asignacion inteligente entre interfaz de usuario y componentes de datos.

Country Status (9)

Country Link
EP (1) EP1571547A1 (es)
JP (3) JP2005259131A (es)
KR (1) KR100795765B1 (es)
CN (1) CN100424637C (es)
AU (1) AU2005200852A1 (es)
CA (1) CA2498540C (es)
MX (1) MXPA05002276A (es)
SG (3) SG114770A1 (es)
TW (1) TWI314415B (es)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100808662B1 (ko) 2005-12-08 2008-02-29 한국전자통신연구원 Sca 기반 애플리케이션 시스템 및 이의 운용 중컴포넌트 교체방법
EP2042989A1 (en) * 2006-02-03 2009-04-01 Research In Motion Limited System and method for extending a component-based application platform with custom services
EP1835397A1 (en) * 2006-02-27 2007-09-19 Software Ag Application framework
US20080301236A1 (en) * 2007-05-31 2008-12-04 Microsoft Corporation Contextual social language
US8478245B2 (en) 2007-08-01 2013-07-02 Phunware, Inc. Method and system for rendering content on a wireless device
US8103865B2 (en) 2007-08-01 2012-01-24 Phunware, Inc. Server method and system for rendering content on a wireless device
US8667412B2 (en) * 2007-09-06 2014-03-04 Google Inc. Dynamic virtual input device configuration
US9015692B1 (en) 2007-10-23 2015-04-21 Phunware, Inc. Method and system for customizing content on a server for rendering on a wireless device
US8060594B1 (en) 2007-10-23 2011-11-15 Phunware, Inc. Client-side wireless communications link support for mobile handheld devices
US8009619B1 (en) 2007-10-23 2011-08-30 Phunware, Inc. Server-side wireless communications link support for mobile handheld devices
US7979350B1 (en) 2007-10-23 2011-07-12 Gotv Networks, Inc. Method and system for accessing wireless account information
KR100973543B1 (ko) * 2008-01-15 2010-08-02 포항공과대학교 산학협력단 모바일 응용 애플리케이션의 동적 아키텍처를 모델링하기위한 방법 및 그 장치
US8271579B2 (en) 2008-04-07 2012-09-18 Phunware, Inc. Server method and system for executing applications on a wireless device
US20090251488A1 (en) * 2008-04-07 2009-10-08 Hands-On Mobile, Inc. Method and system for executing applications on a wireless device
US8209355B2 (en) * 2008-07-28 2012-06-26 Microsoft Corporation Automatic user interface generation for entity interaction
TWI393047B (zh) * 2009-06-30 2013-04-11 Accton Technology Corp 一種智慧型顯示裝置
US10387140B2 (en) 2009-07-23 2019-08-20 S3G Technology Llc Modification of terminal and service provider machines using an update server machine
KR101117165B1 (ko) * 2010-05-28 2012-03-07 단국대학교 산학협력단 이기종 운영체제 계층 모듈에서 동작하는 웹기반어플리케이션의 연동이 가능한 모바일 단말기용 웹 플랫폼 유닛
KR101878488B1 (ko) 2011-12-20 2018-08-20 한국전자통신연구원 대화 연관 컨텐츠 제공 방법 및 장치
US10296562B2 (en) 2013-02-12 2019-05-21 Oath Inc. Dynamic generation of mobile web experience
US9342300B2 (en) 2014-03-11 2016-05-17 Blue Wolf Group, LLC Analyzing components related to a software application in a software development environment
CN110012040B (zh) * 2018-01-04 2022-06-21 武汉斗鱼网络科技有限公司 一种移动终端中多状态的挂件更新方法及系统
CN108920133B (zh) * 2018-06-14 2021-06-18 北京三快在线科技有限公司 跨语言编程方法、装置、电子设备及存储介质
CN111414410B (zh) * 2019-01-07 2023-07-14 阿里巴巴集团控股有限公司 数据处理方法、装置、设备和存储介质
WO2020251587A1 (en) * 2019-06-14 2020-12-17 Hewlett-Packard Development Company, L.P. Modifying data items
CN114564176B (zh) * 2022-01-27 2023-08-22 阿里云计算有限公司 一种代码开发方法、服务器及存储介质
KR20230151676A (ko) * 2022-04-26 2023-11-02 쿠팡 주식회사 전자 장치 및 그의 동작 방법

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6262729B1 (en) * 1997-04-14 2001-07-17 Apple Computer, Inc. Method and apparatus for binding user interface objects to application objects
US7546298B2 (en) * 2001-01-09 2009-06-09 Nextair Corporation Software, devices and methods facilitating execution of server-side applications at mobile devices
JP2003140893A (ja) 2001-11-02 2003-05-16 Nippon Telegr & Teleph Corp <Ntt> ユーザインタフェースプログラム自動生成装置、自動生成方法およびプログラムと記録媒体
AU2002217033A1 (en) * 2001-11-15 2003-06-10 Softplumbers S.A. Method for developing and managing large-scale web user interfaces
JP4490026B2 (ja) * 2002-01-28 2010-06-23 日立オムロンターミナルソリューションズ株式会社 カスタマイズ可能な情報処理装置
KR100475432B1 (ko) * 2002-02-26 2005-03-10 삼성전자주식회사 그래픽 사용자 인터페이스의 디자인 변경 방법 및 이를 위한 기록매체
KR20050057822A (ko) * 2003-12-11 2005-06-16 에스케이씨앤씨 주식회사 Xml을 이용한 gui 구현방법

Also Published As

Publication number Publication date
SG135202A1 (en) 2007-09-28
TW200605588A (en) 2006-02-01
KR20060042393A (ko) 2006-05-12
JP2009087340A (ja) 2009-04-23
EP1571547A1 (en) 2005-09-07
CA2498540C (en) 2013-07-30
SG114770A1 (en) 2005-09-28
SG172622A1 (en) 2011-07-28
CN1661554A (zh) 2005-08-31
CA2498540A1 (en) 2005-08-27
CN100424637C (zh) 2008-10-08
TWI314415B (en) 2009-09-01
KR100795765B1 (ko) 2008-01-21
JP2012142017A (ja) 2012-07-26
JP2005259131A (ja) 2005-09-22
AU2005200852A1 (en) 2005-09-15
JP5248964B2 (ja) 2013-07-31

Similar Documents

Publication Publication Date Title
MXPA05002276A (es) Sistema y metodo para construir aplicaciones inalambricas con asignacion inteligente entre interfaz de usuario y componentes de datos.
US8108830B2 (en) System and method for building wireless applications with intelligent mapping between user interface and data components
US7509649B2 (en) System and method for conversion of generic services&#39; applications into component based applications for devices
US7814404B2 (en) System and method for applying workflow of generic services to component based applications for devices
US7698383B2 (en) System and method for building component applications using metadata defined mapping between message and data domains
US8572564B2 (en) Configuring and constructing applications in a mainframe-based computing environment
US8370281B2 (en) Self-modification of a mainframe-based business rules engine construction tool
US20030055868A1 (en) Building distributed software services as aggregations of other services
US9116705B2 (en) Mainframe-based browser
US8364625B2 (en) Mainframe-based business rules engine construction tool
CA2498539C (en) A system and method for building component applications using metadata defined mapping between message and data domains
CA2538561C (en) System and method for conversion of web services applications into component based applications for devices
CA2538531C (en) System and method for applying workflow of generic services to component based applications for devices
AU2008202421B2 (en) System and method for building wireless applications with intelligent mapping between user interface and data components
EP1569095A1 (en) System and method for presentation of wireless application data using repetitive UI layouts

Legal Events

Date Code Title Description
FG Grant or registration
GB Transfer or rights