ES2326073T3 - Sistema y metodo para tratar o procesar documentos en lenguaje de marcaje extensible (xml). - Google Patents

Sistema y metodo para tratar o procesar documentos en lenguaje de marcaje extensible (xml). Download PDF

Info

Publication number
ES2326073T3
ES2326073T3 ES02779081T ES02779081T ES2326073T3 ES 2326073 T3 ES2326073 T3 ES 2326073T3 ES 02779081 T ES02779081 T ES 02779081T ES 02779081 T ES02779081 T ES 02779081T ES 2326073 T3 ES2326073 T3 ES 2326073T3
Authority
ES
Spain
Prior art keywords
document
codebook
data server
xml
book
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
ES02779081T
Other languages
English (en)
Inventor
Russell N. Owen
Bill Yuan
Andrei A. Lifchits
Michael Knowles
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BlackBerry Ltd
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
Application granted granted Critical
Publication of ES2326073T3 publication Critical patent/ES2326073T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9577Optimising the visualization of content, e.g. distillation of HTML documents
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/986Document structures and storage, e.g. HTML extensions

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Document Processing Apparatus (AREA)
  • Telephonic Communication Services (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

Un servidor de datos (18) para el tratamiento de documentos de Lenguaje de Marcaje Extensible "XML", que comprende: una memoria caché (31) de libros de códigos para almacenar una pluralidad de libros de códigos para transcodificar documentos XML, comprendiendo cada libro de códigos un conjunto de tablas de búsqueda que establece una correspondencia entre etiquetas o atributos XML y sus equivalentes de testigos correspondientes; un sistema (30) de libros de códigos que incluye la memoria caché (31) de libros de códigos y que está configurado para recibir una solicitud para un libro de códigos solicitado desde un dispositivo móvil de comunicación inalámbrico (12) o el servidor de datos (18) y para determinar si el libro de códigos solicitado está almacenado en la memoria caché (31) de libros de códigos; y un generador (34) de libro de códigos configurado para generar el libro de códigos solicitado usando una fuente embebida o externa de definiciones de XML de dichos documentos XML cuando el libro de códigos solicitado no está almacenado en la memoria caché (31) de libros de códigos; en el que el sistema (30) de libros de códigos está además configurado para transmitir el libro de códigos solicitado en respuesta a la solicitud.

Description

Sistema y método para tratar o procesar documentos en lenguaje de marcaje extensible (XML).
El invento se refiere en general a comunicaciones inalámbricas y a dispositivos móviles de comunicación inalámbrica. En particular, el invento se refiere al soporte general del Lenguaje de Marcaje Extensible (XML) para dispositivos de comunicación inalámbrica.
El XML está resultando rápidamente uno de los esquemas más comunes para intercambiar datos entre diferentes sistemas de ordenadores. Para transferencia sobre sistemas de comunicación inalámbrica u otros sistemas de comunicación de banda estrecha, se requiere un esquema de codificación eficiente para reducir el tamaño de documentos XML para su transmisión. Quizás el esquema de codificación más popular para preparar documentos XML para transmisión inalámbrica es el XML Binario de Protocolo de Aplicación Inalámbrica (WAP), o WBXML. El WBXML se basa en tablas de testigos ("token") o libros de códigos para codificar y descodificar el XML. La especificación WBXML usa el término "página de códigos" para significar un conjunto de equivalencias de testigo a etiqueta. Una página de código puede tener no más de 256 entradas, así puede haber varias páginas de código. El término "libro de códigos" es usado aquí para indicar un conjunto de una o más páginas de códigos. Un libro de códigos es por ello un conjunto de tablas de búsqueda que establecen correspondencia entre etiquetas o atributos de XML y sus equivalentes de testigos correspondientes.
Las soluciones XML conocidas para sistemas de comunicación inalámbrica usan dos copias de tablas de testigos. Una copia esta típicamente embebida en una pasarela de información, un servidor u otra fuente de información para transcodificar o señalizar de XML a WBXML, mientras que otra copia está embebida en el lado del dispositivo de comunicación móvil de código de aplicación de software, que analiza sintácticamente y/o descodifica el WBXML señalizado. De hecho, las aplicaciones de software de cliente de WBXML más conocidas tienen el esquema de codificación embebido en el analizador sintáctico. Esto funciona bien si el sistema de codificación es bien conocido. Sin embargo, para nuevos dialectos de XML, no hay esquema de codificación conocido. Un desarrollador o diseñador de aplicación de software que desea usar un nuevo dialecto XML debe inventar un esquema de codificación y/o crear tanto un transcodificador para hacer la codificación como un analizador sintáctico para la aplicación de software del cliente.
En tales sistemas, un dispositivo de comunicación móvil o posiblemente aplicaciones de software instaladas en tal dispositivo debe saber cómo ha sido codificado un documento XML, es decir, que tabla de testigos se usó, por un codificador WBXML a fin de procesar un documento WBXML recibido. Esto significa que una aplicación de XML en los dispositivos de comunicación móviles está normalmente configurada para un tipo específico de XML correspondiente a un esquema de codificación usado en un servidor o pasarela. Cuando un procesador XML está implantado en el código de software del ordenador por ejemplo, el esquema de codificación esta típicamente embebido en el código de software, de tal modo que cada vez que se recibe un nuevo tipo de documento XML, tanto el código de software del servidor como el código de software del dispositivo de comunicación móvil deben ser modificados consiguientemente, lo que es costoso, requiere tiempo, y es propenso a errores, particularmente si diferentes entidades son responsables para operaciones del servidor y dispositivos de comunicación móviles y aplicaciones. Además, si un analizador sintáctico de WBXML recibe un documento WBXML generado a partir de un tipo de documento XML que no ha sido nunca previamente procesado y el libro de códigos para ese tipo de documento XML particular no está embebido en el descodificador o analizador sintáctico o un dispositivo de comunicación móvil en el que el descodificador o analizador sintáctico esté implantado, entonces el dispositivo y cualesquiera aplicaciones de software en el dispositivo son incapaces de tratar el documento WBXML.
Una publicación de M.Girardot y colaboradores titulada "Millau: Un Formato de Codificación para Representación e Intercambio Eficientes de XML sobre la Web", Redes de Ordenadores y Sistemas de ISDN, North Holland Publishing, Ámsterdam, NL, vol. 33, nº 1-6, Junio de 2000, páginas 747 a 765 describe un sistema para transcodificar e intercambiar documentos WBXML entre un dispositivo móvil inalámbrico y un servidor de datos, que permite trasmitir separadamente el esquema de codificación y el contenido codificado y generar los espacios de código. Sin embargo, esta publicación no considera la posibilidad de generar el esquema de codificación/descodificación a petición, en el instante de codificar/descodificar, cuando el esquema no está localmente disponi-
ble.
Otras publicaciones que describen una cuestión relevante para el presente invento comprenden Sperberg-McQueen C M y col., "HTML al máx: Un manifiesto para añadir inteligencia SGML a la World-Wide-Web", Redes de Ordenadores y Sistemas ISDN, North Holland Publishing, Ámsterdam, NL, vol. 28, nº 1, 1 de Diciembre de 1995 páginas 3 a 11, "Creación de copias caché de Aplique en Java Enchufable" Agosto de 2000 identificado por la referencia XP002256443 y EP0768807. Sin embargo, ninguna de estas referencias considera la posibilidad de generar en un sistema que comprende un dispositivo móvil inalámbrico y un servidor de datos que intercambia documentos WBXML, un esquema de codificación/descodificación de documentos XML a petición, en el instante de codificar/descodificar, cuando el esquema no está localmente disponible.
El documento WO98/41377 describe un método para transcodificar datos transmitidos entre ordenadores. El método comprende un cliente de red que solicita un objeto URL. Para obtener el objeto URL solicitado, se comprueba en una memoria caché del lado del cliente, seguido por una memoria caché del lado del servidor, y si el objeto no está en la memoria caché del lado del servidor, el objeto es solicitado de Internet. Si el objeto no está situado en Internet se devuelve una página de error.
Por ello, sigue existiendo la necesidad de un sistema y método para soporte universal de XML en dispositivos de comunicación móviles que no esté restringido a ningún esquema de codificación particular de modo que las aplicaciones de XML habilitadas sean independientes de un tipo de XML particular y de su esquema de codificación.
Sigue existiendo una necesidad relacionada de un sistema y método para tratar o procesar documentos XML de cualquier tipo.
Sigue existiendo otra necesidad de un sistema y método para soportar XML en dispositivos de comunicación móviles que soportan nuevos tipos de documento de XML sin necesidad de cambiar el código de software en los dispositivos.
Generalidades
De acuerdo con un primer aspecto principal del invento, se ha proporcionado un servidor de datos para el tratamiento de documentos de Lenguaje de Marcaje Extensible "XML", que comprende: una memoria caché de libros de códigos para almacenar una pluralidad de libros de códigos para transcodificar documentos XML, comprendiendo cada libro de códigos un conjunto de tablas de búsqueda que establecen correspondencia entre etiquetas o atributos de XML y sus equivalentes de testigos correspondientes; un sistema de libro de códigos que incluye la memoria caché de libros de códigos y que está configurado para recibir una solicitud para un libro de códigos solicitado desde un dispositivo de comunicación móvil inalámbrica o del servidor de datos y para determinar si el libro de códigos solicitado está almacenado en la memoria caché de libros de códigos; y un generador de libro de códigos configurado para generar el libro de códigos solicitado usando una fuente embebida o externa de definiciones de XML de dichos documentos XML cuando el libro de códigos solicitado no está almacenado en la memoria caché de libros de códigos; en el que el sistema de libros de códigos está además configurado para transmitir el libro de códigos solicitado en respuesta a la solicitud.
De acuerdo con un segundo aspecto principal del invento, se ha proporcionado un método para el tratamiento de documentos de Lenguaje de Marcaje Extensible "XML" en un servidor de datos, que comprende las operaciones de: recibir un documento en el servidor de datos procedente de una fuente de información; determinar si un libro de códigos para transcodificar el documento está almacenado en un sistema de libro de códigos acoplado al servidor de datos, comprendiendo cada libro de códigos un conjunto de tablas de búsqueda que establecen correspondencia entre etiquetas o atributos XML y sus equivalentes de testigos correspondientes; generar el libro de códigos usando una fuente embebida o externa de definiciones XML cuando el libro de códigos para transcodificar el documento no está almacenado en el sistema de libro de códigos, y transcodificar el documento usando el libro de códigos para generar un documento transcodificado.
De acuerdo con un tercer aspecto principal del invento, se ha proporcionado un dispositivo de comunicación móvil inalámbrica para el tratamiento de documentos de Lenguaje de Marcaje Extensible "XML" para transmisión a través de una red inalámbrica, comprendiendo el dispositivo: medios para generar un documento en el dispositivo de comunicación móvil inalámbrica; medios para determinar si el documento está asociado con una definición de documento referenciado; y medios, operables si el documento está asociado con una definición referenciada, para: determinar si un libro de códigos para transcodificar documentos XML para la definición referenciada está almacenado en una memoria caché de libros de códigos; recuperar el libro de códigos de la memoria caché de libros de códigos si el libro de códigos está almacenado en la memoria caché de libros de códigos; y solicitar el libro de códigos del servidor de datos del primer aspecto principal y recibir el libro de códigos desde el servidor de datos si el libro de códigos no está almacenado en la memoria caché de libros de códigos, en el que el libro de códigos comprende un conjunto de tablas de búsqueda que establecen correspondencia entre etiquetas o atributos de XML y sus equivalentes de testigos correspondientes.
De acuerdo con un cuarto aspecto principal del invento, se ha proporcionado un método de tratamiento de documentos de Lenguaje de Marcaje Extensible "XML" en un dispositivo de comunicación móvil inalámbrica para transmisión a través de una red inalámbrica, comprendiendo el método las operaciones de: generar un documento en el dispositivo móvil de comunicación inalámbrica; determinar si el documento está asociado con una definición de documento referenciada; y, si el documento está asociado con una definición referenciada, determinar si un libro de códigos para transcodificar documentos XML para la definición referenciada está almacenado en una memoria caché de libros de códigos; recuperar el libro de códigos de la memoria caché de libros de códigos si el libro de códigos está almacenado en la memoria caché de libros de códigos; solicitar el libro de códigos del servidor de datos del primer aspecto principal y recibir el libro de códigos del servidor de datos si el libro de códigos no está almacenado en la memoria caché de libros de códigos, en el que el libro de códigos comprende un conjunto de tablas de búsqueda que establecen correspondencia entre etiquetas o atributos de XML y sus equivalentes de testigos correspon-
dientes.
De acuerdo con un quinto aspecto principal del invento, se ha proporcionado un sistema para tratamiento de documentos de Lenguaje de Marcaje Extensible "XML" que comprende un dispositivo móvil de comunicación inalámbrica y un servidor de datos, comprendiendo el dispositivo móvil de comunicación inalámbrica: un analizador sintáctico; y un sistema de libros de códigos accesible por el analizador sintáctico, comprendiendo el sistema de libros de códigos una memoria caché destinada a almacenar libros de códigos usados por el analizador sintáctico para transcodificar un documento, estando destinado el sistema de libros de códigos a buscar en la memoria caché un libro de códigos solicitado, y además solicitar el libro de códigos del servidor de datos cuando el libro de códigos no está presente en la memoria caché del dispositivo; y comprendiendo el servidor de datos: un transcodificador; y un generador de libro de códigos destinado a construir libros de códigos usando una fuente embebida o externa de definiciones XML de dichos documentos XML para permitir que el servidor de datos transcodifique documentos, siendo accesible el generador de libro de códigos por un sistema de libros de códigos del servidor de datos; en el que el sistema de libros de códigos del servidor de datos es accesible tanto por el transcodificador como por el sistema de libros de códigos del dispositivo móvil de comunicación inalámbrica, comprendiendo dicho sistema de libros de códigos del servidor de datos una memoria caché destinada a almacenar los libros de códigos usados por el sistema de transcodificación para transcodificar documentos en el servidor de datos, estando destinado el sistema de libros de códigos del servidor de datos a buscar en la memoria caché un libro de códigos solicitado, y a solicitar además un libro de códigos del generador de libro de códigos cuando el libro de códigos solicitado no está presente en la memoria caché y en el que el libro de códigos comprende un conjunto de tablas de búsqueda que establecen correspondencia entre etiquetas o atributos de XML y sus equivalentes de testigos correspondientes.
De acuerdo con un sexto aspecto principal del invento, se ha creado un método para el tratamiento de documentos de Lenguaje de Marcaje Extensible XML en un sistema que comprende un dispositivo móvil de comunicación inalámbrica y un servidor de datos, comprendiendo el método las operaciones de: en el dispositivo móvil de comunicación inalámbrica: recibir un documento tratado desde el servidor de datos, en el que el documento tratado es generado por el servidor de datos transcodificando un documento que usa un libro de códigos, comprendiendo el libro de códigos una tabla de búsqueda que establece correspondencia entre etiquetas o atributos de XML y sus equivalentes de testigos correspondientes; determinar si el libro de códigos usado para transcodificar el documento tratado está almacenado en el dispositivo móvil de comunicación inalámbrica; solicitar el libro de códigos del servidor de datos cuando el libro de códigos no está almacenado sobre el dispositivo móvil de comunicación inalámbrica; recibir el libro de códigos desde el servidor de datos; y transcodificar el documento tratado usando el libro de códigos para recuperar el documento; y en el servidor de datos: recibir una solicitud para el libro de códigos desde el dispositivo móvil de comunicación inalámbrica; determinar si el libro de códigos está almacenado en un sistema de libros de códigos acoplado al servidor de datos; generar el libro de códigos usando una fuente embebida o externa de definiciones de XML de dichos documentos XML cuando el libro de códigos para transcodificar el documento no está almacenado en el sistema de libros de códigos; y transcodificar el documento usando el libro de códigos para generar un documento tratado para transmisión al dispositivo móvil de comunicación inalámbrica.
Otras características del invento serán descritas o resultarán evidentes en el curso de la siguiente descripción detallada.
Breve descripción de los dibujos
La fig. 1 es un diagrama de bloques de un sistema de comunicación que proporciona acceso a una fuente de información desde un dispositivo móvil de comunicación inalámbrica.
La fig. 2 es un diagrama de bloques que ilustra elementos internos del dispositivo móvil 12 y del servidor de datos 18 de la fig. 1.
La fig. 3 es un diagrama de flujo de señales que ilustra el funcionamiento de un servidor de datos 18 en respuesta a una solicitud de conexión desde un dispositivo móvil 12.
La fig. 4 es un diagrama de flujo de señales que muestra el tratamiento de un documento por un dispositivo móvil 12.
La fig. 5 es un diagrama de flujo de señales que ilustra las operaciones del servidor de datos relacionadas al tratamiento del dispositivo móvil mostrado en la fig. 4.
La fig. 6 es un diagrama de flujo que ilustra el tratamiento del servidor de datos de un documento XML recibido.
La fig. 7 es un diagrama de flujo que muestra el tratamiento de un documento transcodificado recibido por un dispositivo móvil.
La fig. 8 es un diagrama de flujo de señales que ilustra operaciones del servidor de datos asociadas con una solicitud de libro de códigos de acuerdo con otro aspecto del invento.
La fig. 9 es un diagrama de flujo que muestra el tratamiento del servidor de datos de una solicitud de un libro de códigos de acuerdo con la realización del invento mostrada en la fig. 8.
La fig. 10 es un diagrama de flujo que ilustra un tratamiento de servidor de datos ejemplar de un documento XML recibido para soportar el esquema de solicitud de libro de códigos en las figs. 8 y 9.
La fig. 11 es un diagrama de flujo de señales que muestra la creación de un documento WBXML sobre un dispositivo móvil.
La fig. 12 es un diagrama de flujo de señales que muestra el tratamiento de un documento WBXML recibido desde un dispositivo móvil por un servidor de datos.
La fig. 13 es un diagrama de flujo que representa el tratamiento del dispositivo móvil de un documento XML generado.
La fig. 14 es un diagrama de flujo que ilustra el tratamiento de un documento WBXML recibido por un servidor de datos.
La fig. 15 es un diagrama de bloques que ilustra un dispositivo móvil en el que sistemas y métodos de acuerdo con el invento podrían ser puestos en práctica.
Descripción de realizaciones preferidas
La fig. 1 es un diagrama de bloques de un sistema de comunicación que proporciona acceso a una fuente de información desde un dispositivo móvil de comunicación inalámbrica. En la fig. 1, el sistema 10 incluye un dispositivo 12 móvil de comunicación inalámbrica, una red 14 de comunicación inalámbrica, una pasarela 15 de red inalámbrica, una red de área extensa (WAN) 16, un servidor de datos 18, y una fuente de información 20.
El dispositivo móvil 12 es un dispositivo móvil de comunicación inalámbrica destinado a funcionar dentro de una red 14 de comunicación inalámbrica, tal como un dispositivo de comunicación en dos sentidos que tiene al menos capacidades de comunicación de datos y posiblemente por voz, por ejemplo. Dependiendo de la funcionalidad proporcionada por el móvil 12, el dispositivo móvil puede ser un dispositivo de mensajería de datos, buscapersonas de dos sentidos, un teléfono celular con capacidades de mensajería de datos, un dispositivo de Internet inalámbrico o un dispositivo de comunicación de datos (con o sin capacidades telefónicas), pero es denominado en lo que sigue fundamentalmente como un "dispositivo móvil". El diseño particular de un subsistema de comunicación (no mostrado) dentro del dispositivo móvil 12 dependerá de la red de comunicación 14 en la que el dispositivo móvil 12 está destinado a funcionar. Por ejemplo, un dispositivo móvil 12 destinado a un mercado de Norte América puede incluir un subsistema de comunicación designado para funcionar dentro del sistema de comunicación móvil Mobitex^{TM} o del sistema de comunicación móvil DataTAC^{TM}, mientras que un dispositivo móvil 12 destinado a su uso en Europa puede incorporar un subsistema de comunicación de Servicio General de Comunicación por Radio por Paquetes (GPRS). Otros tipos de dispositivos móviles y redes son también considerados. Los sistemas y métodos descritos aquí pueden ser implantados en unión virtualmente con cualquier red inalámbrica 14 y dispositivo móvil 12.
La pasarela 15 de red inalámbrica mostrada en la fig. 1 proporciona una interfaz entre la red inalámbrica 14 y una WAN 16, que puede, por ejemplo ser Internet. Tales funciones como el acceso por el dispositivo móvil, la conversión de datos entre protocolos de WAN y protocolos de red inalámbrica, almacenamiento y envío de datos a y desde el dispositivo móvil 12, y otras funciones de interfaz pueden ser realizadas por la pasarela 15 de red inalámbrica.
Es posible que un servidor de datos 18 pudiera ser alojado por un portador u operador de red asociado con la red inalámbrica 14. En este caso, la conexión entre el servidor de datos 18 y la pasarela 15 de red inalámbrica podría usar una red privada del portador en vez de la WAN 16. La WAN 16 puede a continuación ser usada para comunicar entre el servidor de datos 18 y la fuente de información 20. Esta implantación alojada o pública de un servidor de datos 18 es una aproximación alternativa razonable al sistema 10 mostrado en la fig. 1.
El servidor de datos 18 es un sistema que proporciona de manera efectiva al dispositivo móvil 12 un acceso a la fuente de información 20. A través del servidor de datos 18, el dispositivo móvil 12 puede acceder a cualquier fuente de información 20, tal como Internet o servidor de web, que puede comunicar con el servidor de datos 18. La fuente de información 20 no requiere por tanto aplicaciones especiales o soporte de protocolos para comunicaciones de la red inalámbrica, ya que comunica con el servidor de datos 18, no directamente con el dispositivo móvil 12. Aunque se ha mostrado en la fig. 1 como una conexión directa, el servidor de datos 18 y la fuente de información 20 pueden comunicar posiblemente a través de una red tal como una red de área local (LAN) o WAN, incluyendo Internet. En realizaciones alternativas, las funciones del servidor de datos 18 pueden ser incorporadas en la pasarela 15 de red inalámbrica o en la fuente de información 20. Otras realizaciones de una pasarela 15 de red inalámbrica, servidor de datos 18 y fuente de información 20 pueden también ser evidentes para los expertos en la técnica y como tal son considerados como que están dentro del marco del presente invento.
Las redes inalámbricas e Internet usan esquemas de acceso similar, en los que el equipo de comunicación tal como el dispositivo móvil 12 en una red inalámbrica u ordenadores conectados a Internet tales como el servidor de datos 18 y posiblemente la fuente de información 20 están identificados por direcciones numéricas. Por ejemplo, el dispositivo móvil 12 sería identificado en la red Mobitex usando un Número de Acceso Mobitex (MAN), y los nodos de Internet público son identificados usando un esquema de dirección de Protocolo de Internet (IP). Sin embargo, la diferencia entre mecanismos de transporte de la red inalámbrica y de Internet impide típicamente la comunicación directa entre las fuentes de información 20, la gran mayoría de las cuales están basadas en Internet, y los dispositivos móviles tales como el dispositivo móvil 12. Internet y otros protocolos de comunicación WAN pueden también ser "conversadores", implicando varios intercambios para establecer comunicaciones entre un emisor y un receptor y cantidades relativamente grandes de sobrecarga, lo que no es deseable en comunicaciones de redes inalámbricas. Además, el contenido proporcionado por fuentes de información tales como 20 es tomado ampliamente como objetivo para transmisiones sobre redes de comunicación con cable. Como se ha descrito antes, los documentos XML son relativamente grandes y deberían ser comprimidos para la transmisión sobre canales de comunicación inalámbrica. El servidor de datos 18 salva el espacio entre las fuentes de información 20 basadas en Internet y posiblemente otras fuentes de información 20 y la red inalámbrica 14 con el dispositivo móvil 12 asociado. Las funciones del servidor de datos 18 pueden incluir el cartografiado de direcciones, transformación y verificación de contenido, y cartografiado de protocolo y optimización, por ejemplo.
Aunque el dispositivo móvil 12, la red inalámbrica 14 y la pasarela 15 están mostrados en la fig. 1, el invento es también aplicable a otros tipos de dispositivos móviles que pueden solicitar u obtener de otra manera documentos XML. Los recursos de tratamiento y el ancho de banda de enlace de comunicación tienden a no ser como está limitado para sistemas de ordenadores de escritorio y enlaces de comunicación por cable como para dispositivos móviles y redes de comunicación inalámbrica. Sin embargo, la transcodificación de documentos XML como se ha descrito aquí no solamente reduce el tamaño de los datos, sino que también constituye un analizador sintáctico más eficiente y más fácil para escribir. El tamaño de datos reducidos proporciona medios para una transferencia más rápida de documentos XML mediante conexiones por cable, mientras que analizadores sintácticos más simples y más eficientes hacen similarmente aplicaciones de software de sistema de ordenador de escritorio y cualesquiera otras aplicaciones de cliente de servidor de datos más fáciles de desarrollar. Por ello, debería apreciarse que los sistemas y métodos descritos aquí pueden ser implantados en unión con sistemas y dispositivos de comunicación con cables o inalámbrica.
Volviendo ahora a la fig. 2, una realización del invento será descrita a continuación. La fig. 2 es un diagrama de bloques que ilustra elementos internos del dispositivo móvil 12 y del servidor de datos 18 de la fig. 1. Como se ha mostrado en la fig. 2, el servidor de datos 18 incluyó un traductor de protocolo 24, un manipulador de conexión 26,1 sistema de transcodificación 28, un sistema del libro de códigos 30, un servlet del libro de códigos 32, y un generador del libro de códigos 34. El dispositivo móvil 12 incluye un subsistema de comunicación 36, una aplicación de software 38, un analizador sintáctico WBXML 40, un manipulador de aplicación 42, y un sistema de libro de códigos 44.
Aunque no se ha mostrado en la fig. 2, la red inalámbrica 14, la pasarela 15 de la red inalámbrica, y la WAN 16 mostrada en la fig. 1, así como cualesquiera otros enlaces de comunicación que intervienen y redes mediante las cuales el dispositivo móvil 12 y el servidor de datos 18 comunican, han sido diseñados generalmente como un transporte inalámbrico 22. Los expertos en la técnica apreciarán que el transporte inalámbrico 22 tiene por objeto representar cualquier sistema que proporciona comunicación entre el dispositivo móvil 12, que opera dentro de una red de comunicación inalámbrica, y el servidor de datos 18, a través de uno o más enlaces o redes de comunicación con cables o inalámbrica. Debería por ello ser evidente que el presente invento no está de ningún modo limitado a un sistema de comunicación tal como el sistema 10 en la fig. 1. Los sistemas y métodos descritos aquí no dependen de ninguna de las redes o protocolos de comunicación particulares.
En el servidor de datos 18, el traductor de protocolo 24 realiza cualquier traducción necesaria entre protocolos usados para comunicaciones con el dispositivo móvil 12 a través del transporte inalámbrico 22 sobre un enlace 35 y protocolos usados para comunicaciones con la fuente de información 20 a través del enlace de comunicación 21. En una realización considerada del invento, el servidor de datos 18 comunica con el transporte inalámbrico 22 sobre el enlace 35 usando el así llamado Protocolo Proxy IP (IPPP), un protocolo de propietario desarrollado por el propietario de la presente aplicación, mientras que la comunicación con fuentes de información puede usar Protocolo de Transferencia de Hipertexto (HTTP) o Protocolo de Control de Transmisión (TCP), por ejemplo. Si son usados los mismos protocolos entre el servidor de datos 18 y el transporte inalámbrico 22 y entre servidor de datos 18 y la fuente de información 20, o las funciones del servidor de datos 18 son implantadas en la fuente de información 20, a continuación el traductor de protocolo 24 puede no ser requerido.
La fig. 2 muestra solamente un manipulador de conexión 26, enlace de comunicación 21 y fuente de información 20. En un sistema integrado en que el servidor de datos 18 está asociado con la fuente de información 20, cuando la fuente de información 20 proporciona acceso de datos y servicios de transcodificación remotos, por ejemplo, la conexión 21 es interna al sistema integrado. Sin embargo, en otras realizaciones, el manipulador de conexión 26 y posiblemente otros manipuladores de conexión (no mostrados) para tipos diferentes de conexiones permiten que el servidor de datos 18 maneje y trate simultáneamente el contenido de distintas fuentes de información, incluyendo fuentes basadas en Internet.
Los manipuladores de conexión tales como 26 son objetos intermedios que tienen la capacidad para tratar el contenido desde conexiones entrantes y salientes a un servidor de datos 18. El manipulador o manipuladores de conexión particular en un servidor de datos 18 puede ser reemplazado y personalizado preferiblemente, o manipuladores adicionales pueden ser añadidos preferiblemente a un servidor de datos 18 cuando sea necesario. Un manipulador de conexión puede optimizar no sólo el contenido de información, sino también un protocolo de comunicación. Por ejemplo algunas solicitudes que normalmente serían enviadas al dispositivo móvil 12 (tal como una solicitud para una contraseña) pueden ser resueltas por el manipulador de conexión 26. Este caso de una optimización de protocolo puede adaptar los protocolos así llamados "conversadores" para que sean más cordiales inalámbricos reduciendo las cantidades de tráfico enviado sobre un transporte inalámbrico 22 a un dispositivo móvil 12, reduciendo por ello los efectos de las restricciones y latencia del ancho de banda de la red inalámbrica.
En el caso de un sistema de ordenador de escritorio (no mostrado) en vez del dispositivo móvil 12, una pasarela tal como un sistema de un Proveedor de Servicio de Internet (ISP) o un sistema de Proveedor de Servicio de Aplicación (ASP) podría proporcionar una interfaz al servidor de datos 18. Cuando un servidor de datos soporta tanto clientes con cables como inalámbricos, diferentes transportes y traductores de protocolo podrían ser puestos en práctica para diferentes tipos de clientes.
Las conexiones salientes son hechas desde un dispositivo móvil 12 con el fin de enviar datos y recibir datos desde nodos de Internet, por ejemplo. El servidor de datos 18 puede recibir solicitudes de conexión desde el dispositivo móvil 12 usando un protocolo particular, tal como el protocolo propietario IPPP mencionado antes, aunque otros protocolos podrían también ser usados. El servidor de datos 18 establece a continuación una conexión con Internet, de acuerdo con el protocolo y la información de encaminamiento proporcionada por el dispositivo móvil 12 en la solicitud de conexión, y traduce y establece correspondencia de esa conexión para empezar a enviar datos en ambas direcciones. Una proceso de filtración o transcodificación en el sistema de transcodificación 28 es invocado por el manipulador de conexión 26 siempre que sea necesario, basado, por ejemplo, en el tipo de contenido que es hecho pasar sobre la conexión. Tales conexiones salientes y el funcionamiento del servidor de datos 18 y del dispositivo móvil 12 serán descritos con mayor detalle a continuación, en el contexto de las operaciones de explorador de la red.
Las conexiones entrantes son usadas, por ejemplo, para poner en práctica un modelo de empuje de datos. En este modelo, el dispositivo móvil 12 ha enviado información sin haber emitido solicitudes para traer la información, como en el caso con conexiones salientes. Como se ha descrito brevemente antes, un dispositivo móvil 12 puede existir en un dominio de red diferente que los nodos de Internet. El servidor de datos 18 es responsable de salvar los dominios de Internet y de red inalámbrica. Así, el servidor de datos 18 requiere cierta información de encaminamiento para encaminar el tráfico al dispositivo móvil 12 particular. En una operación de empuje, al menos alguna de esta información de encaminamiento debe estar prevista por el nodo de Internet, tal como la fuente de información 20, que emite una solicitud para establecer una conexión entrante. El servidor de datos 18 puede convertir esquemas de acceso comúnmente conocidos tales como correo electrónico o números de IP en la dirección de red inalámbrica apropiada de un dispositivo móvil receptor pretendido.
Los manipuladores de conexión en un servidor de datos 18 pueden ser objetos basados en una corriente. Cuando una conexión saliente o entrante es solicitada, una corriente transportada virtual es establecida entre el dispositivo móvil 12 y el manipulador de conexión apropiado 26. El manipulador de conexión 26 será instalado e iniciado para tratar el contenido para la conexión establecida. Cargar el manipulador de conexión 26 está basado en una solicitud de conexión, que preferiblemente contiene una referencia a un nombre de manipulador de conexión que puede implicar el tipo de tráfico que iría a través de la corriente transportada virtual y la posición del manipulador de conexión 26 que debe ser cargado por el servidor de datos 18 si no está haya cargado. Las funciones del manipulador de conexión tal como 26 incluyen cartografiado de Internet u otras conexiones de información por el lado de la fuente y conexiones de dispositivo móvil, enviando tráfico entre estas conexiones, y cargando e invocando los transcodificadores apropiados en información destinada para el dispositivo móvil 12.
Cada conexión está preferiblemente asociada con un caso de un manipulador de conexión 26. Esto es cierto incluso para una conexión que no requiere que el contenido sea tratado por el servidor de datos 18, por ejemplo, cuando el contenido recibido desde una fuente de información 20 ha sido ya formateado para transmisión a través del transporte inalámbrico 22. Este tipo de manipulador de conexión envía el contenido hacia atrás y hacia adelante sin hacer ningún tipo de modificación para el contenido, aunque pueda hacer modificaciones al protocolo. Por claridad, los expertos en la técnica apreciarán la distinción entre los datos o contenido (que el dispositivo móvil solicitado o está siendo enviado) y el protocolo (los "envoltorios" y conversiones requeridas para entregar los datos).
Los manipuladores de conexión son también responsables de cargar y ejecutar los filtros de contenido o transcodificadores apropiados, para convertir un documento XML a WBXML, por ejemplo. En este ejemplo, si la fuente de información 20 devuelve un documento XML en respuesta a una solicitud desde el manipulador de conexión 26, entonces el manipulador de conexión 26 invoca un transcodificador de XML a WBXML (no mostrado) en el sistema de transcodificación 28. Como se ha descrito con más detalle después, un transcodificador de XML a WBXML en el sistema de transcodificación 28 convierte el contenido XML al contenido WBXML reemplazando las etiquetas y atributos de XML con testigos WBXML tomados como se ha especificado en un libro de códigos. El contenido WBXML resultante es a continuación enviado por el manipulador de conexión 26, a través del traductor de protocolo 24 si es necesario, al dispositivo móvil 12. El contenido codificado WBXML es de menor tamaño y por ello puede ser más eficientemente trasmitido sobre una red inalámbrica.
Para los tipos de XML previamente tratados, los libros de códigos son almacenados preferiblemente en una memoria de datos o memoria caché 31 en el sistema 30 de libros de códigos y pueden ser subsiguientemente accedidos por el transcodificador de XML a WBXML en el sistema de transcodificación 28. La memoria caché 31 de libros de códigos puede residir en un componente de memoria tal como una Memoria de Acceso Aleatorio (RAM), una unidad de disco duro u otra memoria en la que los datos del libro de código pueden ser escritos. Con el fin de conservar espacio de memoria, un esquema de reemplazamiento usado menos recientemente (LRU) u otro esquema de gestión de memoria puede ser usado para la memoria caché 31 de libros de códigos por el sistema 30 de libros de códigos, de tal modo que los libros de códigos más a menudo usados son retenidos en la memoria caché 31. Los libros de códigos que son usados particularmente a menudo pueden ser también marcados o diseñados para almacenamiento permanente, o almacenados en otra memoria de datos o elemento de memoria. Alternativamente, tales libros de códigos que se espera sean frecuentemente usados pueden en cambio ser generados usando el generador 34 de libro de códigos y almacenados, en una memoria caché de libros de códigos permanente (no mostrada), implantada, por ejemplo, en una Memoria Sólo de Lectura (ROM), para asegurar que tales libros de código están disponibles para el servidor de datos 18 y no son borrados o sobrescritos.
El generador 34 de libro de códigos puede ser usado para construir un libro de códigos para cualquier documento XML que tenga una definición externa referenciada, tal como un mensaje SyncML por ejemplo, que tiene un tipo MIME registrado con el Consorcio de Red Extensa Mundial (W3C) y tiene un libro de códigos disponible públicamente correspondiente. El generador 34 del libro de códigos, las definiciones externas 23 de XML que definen la gramática de XML para un documento XML, y la recuperación de tales definiciones externas 23 mediante la conexión 25 son descritos con más detalle a continuación. El servlet del libro de códigos 32 maneja solicitudes de libro de códigos desde dispositivos móviles tales como 12 y es también descrito a continuación.
En el dispositivo móvil 12, el subsistema de comunicación 36 incluye componentes asociados con funciones de comunicación del dispositivo móvil 12, tales como una o más antenas, un receptor, un transmisor y circuitos y módulos relacionados (no mostrados). El subsistema de comunicación 36 puede ser diferente en diferentes tipos de dispositivos móviles, y depende del transporte inalámbrico particular 22 con el que el dispositivo móvil 12 está configurado para funcionar.
Una o más aplicaciones de software 38 pueden ser instaladas en el dispositivo móvil 12, incluyendo, por ejemplo, una aplicación de mensajería, un navegador, una aplicación de sincronización de datos, una aplicación de calendario, una aplicación de lista de tareas, y una calculadora. Alguna de estas aplicaciones de software, una aplicación de mensajería, por ejemplo, puede implicar funciones de comunicación, mientras que otras pueden ser funciones "locales", usando interfaces de usuarios residentes en el dispositivo móvil (no mostrado) para recibir entradas y proporcionar salidas. Como el presente invento es aplicable a dispositivos móviles tales como 12, que reciben contenido de información desde fuentes de información remota tales como 20, la aplicación de software ejemplar 38 es mostrada con un enlace al subsistema de comunicación 36, a través del analizador sintáctico de WBXML 40. En este dispositivo móvil 12 ejemplar, una solicitud de información, incluyendo por ejemplo un Posicionador de Recurso Uniforme (URL) es hecha pasar al analizador sintáctico 40 por la aplicación de software 38 o su manipulador de aplicación asociado 42 cuando la información ha de ser descargada al dispositivo móvil 12 desde una posición remota. La aplicación de software 38 es por ello habilitada para recibir y posiblemente enviar información mediante el subsistema de comunicación 36. Debería observarse que otras aplicaciones de software (no mostradas) pueden interactuar también con el subsistema de comunicación 36, y la aplicación de software 38 puede interactuar con otros componentes del dispositivo móvil, incluyendo, por ejemplo, un teclado de dispositivo móvil, una pantalla de presentación, elementos de memoria, otros componentes de entrada o salida, e incluso otras aplicaciones de software.
El analizador sintáctico de WBXML 40 analiza sintácticamente el contenido WBXML de tal modo que cualesquiera testigos de WBXML son aplicados apropiadamente y el contenido puede ser tratado por el manipulador de conexión 42 en lugar de la aplicación de software 36. Dos tipos de analizadores sintácticos están disponibles para analizar documentos XML: Analizadores sintácticos basados en eventos y analizadores sintácticos basados en árbol. Una analizador sintáctico basado en eventos es más rápido y consume menos memoria que un analizador sintáctico basado en árbol y así puede ser más adecuado para dispositivos móviles. Una analizador sintáctico basado en evento reporta análisis de eventos directamente a la aplicación de software 38 a través de métodos de devolución de llamada. Las aplicaciones de software que usan una analizador sintáctico 40 basado en eventos ponen en práctica los manipuladores de eventos del analizador sintáctico, tales como el manipulador de aplicación 42, para recibir eventos de análisis sintáctico. El manipulador de aplicación 42 es un conjunto de devoluciones de llamada de aplicación específica que el analizador sintáctico invoca en respuesta a los datos en un documento WBXML recibido.
La memoria caché 45 de libros de códigos en el sistema de libros de códigos del dispositivo móvil 44, como la memoria caché de libros de códigos 31 en el servidor de datos 18, puede ser implantada en una RAM u otro almacenamiento de datos en que nuevos libros de códigos pueden ser escritos y desde los cuales los libros de código previamente almacenados pueden ser recuperados. Un esquema de reemplazamiento LRU u otro esquema de gestión de memoria puede ser usado para limitar el tamaño de la memoria caché 45 de libros de códigos. Como se ha descrito antes, los libros de código particulares, especialmente los más frecuentemente usados o que se espera sean frecuentemente usados, pueden ser diseñados para almacenamiento permanente en la memoria caché 45 de libros de códigos o almacenados en una memoria caché de libros de códigos de dispositivo móvil diferente (no mostrada).
Cuando el contenido WBXML es recibido por el dispositivo móvil 12, el analizador sintáctico WBXML 40 es invocado para analizar el contenido WBXML recibido. El analizador sintáctico 40 solicita el libro de códigos desde el sistema de libros de códigos 44. Si el documento WBXML es de un tipo conocido o previamente tratado y su libro de códigos correspondiente es almacenado en la memoria caché 45 de libros de códigos, entonces el libro de código es devuelto al analizador sintáctico 40 por el sistema 44 de libros de códigos y usado para analizar el documento WBXML recibido. Si el documento WBXML es de un tipo para el que no hay disponible libro de códigos desde la memoria caché 45 de libros de códigos, entonces de acuerdo con un aspecto del invento descrito en más detalle después, el libro de códigos es solicitado desde el servidor de datos 18 por el sistema 44 de libros de códigos, almacenado en la memoria caché 45 de libros de códigos, y a continuación devuelto al analizador sintáctico 40 y usado para analizar sintácticamente el documento WBXML. En una realización del invento, la memoria caché 45 de libros de códigos del dispositivo móvil contiene inicialmente sólo libros de código "permanentes". Si lo hay, y el sistema 44 de libros de códigos solicita cualesquiera otros libros de códigos desde el servidor de datos 18 cuando se requiera. Dependiendo del tipo de aplicación de software 38 y su manipulador de aplicación 42 correspondiente, el manipulador de aplicación 42 puede solicitar un libro de códigos desde el sistema 44 de libros de códigos del dispositivo móvil y transcodificar elementos del documento WBXML recibido a XML. Así, el analizador sintáctico 40 y el manipulador de aplicación 42 comprenden de manera efectiva un sistema de transcodificación en el dispositivo móvil 12, configurado para analizar sintácticamente y codificar los documentos WBXML recibidos para recuperar documentos XML originales. El sistema de transcodificación puede incluir sólo el analizador sintáctico 40, cuando el analizador sintáctico 40 realiza tanto el análisis sintáctico como la transcodificación, o tanto el analizador sintáctico 40 como el manipulador de aplicación 42, cuando el manipulador de aplicación 42 realiza la transcodificación. El tratamiento del dispositivo móvil del contenido WBXML recibido está descrito en detalle a continuación.
Como se ha mostrado en la fig. 2, las solicitudes del libro de códigos pueden ser hechas por el dispositivo móvil 12 y los libros de código pueden ser devueltos al dispositivo móvil 12 por el servidor de datos 18 sobre un enlace diferente 37 y usando un protocolo diferente que los usados para solicitudes de información y transferencias de documentos. La solicitud del libro de códigos ejemplar y el enlace de transferencia 37 mostrados en la fig. 2 y el protocolo de comunicación usado en ella proporciona medios para comunicación directamente con el servlet 32 del libro de códigos en el servidor de datos 18 y por ello no requiere traducción del protocolo por el traductor de protocolo 24. En realizaciones alternativas sin embargo, las solicitudes y transferencias del libro de códigos pueden ser realizadas a través del traductor de protocolo 24.
El funcionamiento del sistema mostrado en la fig. 2 será descrito a continuación con más detalle. La fig. 3 es un diagrama de flujo de señales que ilustra el funcionamiento de un servidor de datos 18 en respuesta a una solicitud de conexión desde un dispositivo móvil 12. Como se ha descrito antes, el dispositivo móvil 12 puede comunicar con un servidor de datos 18 usando un protocolo diferente que el protocolo usado entre el servidor de datos 18 y la fuente de información 20, tal como el IPPP de propietario. En tales disposiciones, aunque la solicitud de conexión es conforme a un protocolo particular, la solicitud puede especificar un tipo de conexión o manipulador de conexión particular asociado con un protocolo diferente. Por ello, cuando la información es solicitada desde una fuente de información 20 por el servidor de datos 18 mediante HTTP, por ejemplo, una solicitud enviada desde un dispositivo móvil 12 podría ser una solicitud HTTP, o una solicitud que es conforme a otro protocolo pero especifica HTTP o un manipulador de conexión HTTP y así es interpretado por el servidor de datos 18 como una solicitud HTTP. El traductor de protocolo 24 traduce solicitudes desde el dispositivo móvil 12 siempre que sea necesario.
Será evidente que la fig. 3 muestra solamente los elementos del servidor de datos 18 directamente implicado en una solicitud de información y operación de respuesta. El servlet 32 del libro de códigos está implicado en la gestión de solicitud del libro de códigos y por ello no se ha mostrado en la fig. 3 para evitar congestión en el dibujo.
En la fig. 3, una solicitud desde el dispositivo móvil 12 es recibida por el servidor de datos 18 y traducida si es necesario a un protocolo usado para comunicación entre el servidor de datos 18 y la fuente de información 20. Como se ha mostrado, la solicitud desde el dispositivo móvil 12 especifica el tipo de contenido aceptado en respuesta a la solicitud, WBXML en el ejemplo de la fig. 3. Si la solicitud desde el dispositivo móvil 12 es una solicitud "obtenida" HTTP, por ejemplo, entonces el WBXML puede ser especificado como un tipo MIME en un campo de tipo de aceptación en una cabecera de solicitud de HTTP típica. El traductor de protocolo 24 invoca al manipulador de conexión apropiado 26 y envía la solicitud posiblemente traducida al manipulador de conexión 26. Para una solicitud HTTP o una solicitud que especifica una conexión HTTP o un manipulador de conexión HTTP, el manipulador de conexión 26 invocado es un manipulador de conexión HTTP. El manipulador de conexión 26 envía entonces una solicitud a la fuente de información 20 mediante la conexión 21 (fig. 2), que puede ser posiblemente una conexión directa o una o más conexiones de red. La fuente de información 20 puede, por ejemplo, ser un servidor de red u otro sistema configurado para ser accesible a través de Internet.
En la fig. 3, el dispositivo móvil 12 especifica el WBXML como un tipo de contenido aceptado. Sin embargo, el servidor de datos 18 puede transcodificar el contenido de XML recibido a contenido WBXML aceptado por el dispositivo móvil 12 y puede por ello incluir XML en vez de, o posiblemente además de, WBXML como un tipo de contenido aceptado en la solicitud enviada a la fuente de información 20. En el ejemplo mostrado en la fig. 3, la solicitud enviada desde el servidor de datos 18 incluye tanto XML como WBXML, como tipos de contenido aceptados. Este tipo de solicitud puede ser útil, por ejemplo, si una fuente de información 20 no puede transcodificar datos XML a datos WBXML. La fuente de información 20 puede entonces devolver datos XML en vez de datos WBXML en respuesta a la solicitud desde el servidor de datos 18, incluso aunque el dispositivo móvil solicite WBXML específico como el tipo de contenido aceptado. Cuando el servidor de datos 18 no está configurado para incluir tipos de contenido aceptados adicionales en una solicitud a la fuente de información 20, la fuente de información 20 puede sin embargo devolver contenido solicitado en un tipo de contenido distinto que los especificados en la solicitud, o en vez de ello devolver un mensaje de error o fallo indicando que el contenido no puede ser proporcionado en un tipo de contenido aceptado.
La fuente de información 20 devuelve el contenido solicitado al manipulador de conexión 26 como un documento XML en el ejemplo mostrado en la fig. 3. El manipulador de contenido 26 analiza sintácticamente el documento XML recibido al sistema de transcodificación 28, y en particular al transcodificador 74 de XML->WBXML. Cuando es implantado como código de software, el transcodificador 74 puede ser invocado bien por el manipulador de conexión 26 o bien por el sistema transcodificador 74 a la recepción del documento XML desde la fuente de información 20.
Como se ha descrito antes, el transcodificador 74 XML\rightarrowWBXML convierte etiquetas y atributos de XML a testigos ("token"), basado en correspondencia de tablas en un libro de códigos particular. La memoria caché 31 del libro de códigos en el servidor de datos 18 almacena libros de códigos para tipos XML "conocidos", tal como tipos XML para los que los libros de códigos correspondientes están permanentemente almacenados en la memoria caché 31 y tipos que han sido previamente tratados por el servidor de datos 18. Cada libro de códigos en la memoria caché 31 es identificado y puede ser recuperado usando un identificador correspondiente, que puede, por ejemplo, ser un identificador público único de XML que normalmente aparece en una declaración DOCTYPE de un documento XML válido, un URL que permite la recuperación de una definición referenciada exteriormente como se ha descrito con más detalle a continuación, un tipo MIME, o posiblemente otro identificador asociado con un documento XML o tipo de documento. En el ejemplo de la fig. 3, el documento XML devuelto incluye uno o más de tales identificadores. Usando el identificador en el documento XML recibido, el transcodificador 74 solicita el libro de códigos del sistema 30 de libro de códigos. Si el libro de códigos requerido está almacenado en la memoria caché 31 (no mostrada en la fig. 3) en el sistema 30 de libro de códigos, entonces el libro de códigos es devuelto al transcodificador 74 y el documento XML es transcodificado a un documento WBXML. En el ejemplo de la fig. 3 sin embargo, se ha supuesto con propósitos ilustrativos que no hay libro de códigos disponible en el sistema 30 de libro de códigos para el identificador en el documento XML devuelto por la fuente de información 20.
Cuando el servidor de datos 18 recibe un documento XML válido de un tipo del que hay almacenado libro de códigos en la memoria caché 31 en el sistema 30, por ejemplo cuando el servidor de datos 18 no ha tratado documentos XML de ese tipo, el libro de códigos es generado por el servidor de datos 18. El sistema 30 de libro de códigos, después la determinación de que el libro de códigos requerido no está disponible en su memoria caché 31, iniciará entonces un libro de códigos construido por el generador 34 de libro de códigos. El generador 34 de libro de códigos recupera una descripción o definición de la gramática usada en ese documento bien de una fuente (23) embebida (no mostrada) o externa de definiciones XML. La fuente externa de definiciones 23 de XML puede estar realizada como un servidor de Definición de Tipo de Documento (DTD), por ejemplo. Una DTD es una descripción formal, es Sintaxis de Declaración de XML, de un tipo particular de documento. Define qué nombres y estructuras pueden ser usadas en un tipo de documento particular. Todos los documentos que pertenecen a un tipo particular y usan la misma DTD están construidos y son nombrados de una manera consistente y conforme. En otra realización posible, una combinación de esparcios de nombre y esquemas de codificación puede poner en práctica una fuente de definiciones externas 23. Descripciones o definiciones externas de gramática XML pueden también estar divididas en múltiples fuentes y muchos formatos. En algunos documentos XML, una definición gramatical puede estar embebida en el propio documento, de tal modo que la definición es extraída del documento. Debería por ello apreciarse que el presente invento no es en ningún modo dependiente de un tipo particular de definición de documento. Las técnicas aquí descritas podrían ser adaptadas para usar uno o más tipos de definición, tales como esquemas de DTD, y otras definiciones documentos, incluyendo tanto los tipos comúnmente conocidos como los de definición futura. En general, una definición externa define un conjunto de series válidas que pueden ocurrir en un documento.
En la fig. 3, si el transcodificador 74 solicita un libro de códigos que no está almacenado en la memoria caché del sistema 30 de libro de códigos, entonces es solicitada una definición para el documento XML de la fuente 23. Aunque la solicitud de definición está mostrada en la fig. 3 como siendo manejada por el manipulador de conexión 26, puede usarse en vez de ello un manipulador de conexión diferente (no mostrado) para recuperar una definición de la fuente externa 23 si la fuente de información 20 y la fuente de definición 23 están configuradas para comunicaciones que usan diferentes protocolos. El generador 34 de libro de códigos puede posiblemente estar configurado para comunicación directa con una o más fuentes de definición externas 23, tal como mediante el enlace 25 mostrado en la fig. 2. Una definición gramatical puede ser solicitada de una fuente externa tal como 23 usando, por ejemplo, el identificador asociado con el documento recibido. Para una fuente de definición externa tal como 23, puede también requerirse una dirección de la fuente 23. Esta dirección podría ser suministrada por la fuente de información 20 con el documento XML. Direcciones para una o más fuentes de definición externas 23 pueden también estar almacenadas en el servidor de datos 18. El proceso de recuperación de definición puede ser simplificado cuando un URL a partir del cual puede ser recuperada una definición es usado como un identificador de tipo de documento para indexar la memoria caché de libros de códigos. El mismo identificador es a continuación usado para solicitar un libro de códigos del sistema 30 de libro de códigos y para solicitar una definición de la fuente externa 23.
Cuando la definición solicitada es devuelta al servidor de datos 18 por la fuente de definición 23, es usada por el generador 34 de libro de códigos para construir un nuevo libro de códigos. El generador 34 de libro de códigos convierte la definición gramatical del documento en cartografiar tablas usadas para transcodificar el tipo de documento recibido a un documento WBXML. El nuevo libro de códigos es a continuación enviado al sistema 30 de libro de códigos, que devuelve el libro de códigos al transcodificador 74 y puede también almacenar el libro de códigos en su memoria caché. El nuevo libro de códigos es a continuación usado por el transcodificador 74 para transcodificar el documento XML a un documento WBXML.
El WBXML permite que algunos identificadores tales como el ID público en un documento XML válido sea codificado como una serie de texto así como un entero, normalmente para tipos de XML bien conocidos tales como el Lenguaje de Marcaje Inalámbrico (WML). El identificador de tipo documento usado para indexar la memoria caché de libros de códigos en el sistema 30 de libro de códigos podría ser similarmente codificado e incluido en un documento WBXML transcodificado. El documento WBXML, que incluye el identificador codificado, es hecho pasar al manipulador 26 de conexión, que formatea una respuesta y envía la respuesta al traductor de protocolo 24. El traductor 24 de protocolo realiza cualquier traducción de protocolo necesaria sobre la respuesta y envía la respuesta al dispositivo móvil 12. El identificador en la respuesta enviada al dispositivo móvil 12 es usado por el dispositivo móvil 12 para recuperar el libro de códigos correcto para analizar el documento WBXML, como se describirá con más detalle a continuación. Puede también ser posible configurar el servidor de datos 18 de tal modo que las respuestas al dispositivo móvil 12 sean formateadas por el traductor 24 de protocolo en vez del manipulador 26 de conexión activo. El manipulador 26 de conexión maneja entonces las operaciones de solicitud/respuesta entre el servidor de datos 18 y los sistemas externos de tal modo que la fuente de información 20 y la fuente de definición 23, y el traductor 24 de protocolo maneja las comunicaciones con el dispositivo móvil 12.
En algunos casos, el documento XML devuelto por la fuente de información 20 podría no ser un tipo de documento XML conocido. Los expertos en la técnica apreciarán que aunque documentos XML pueden usar descripciones o definiciones gramaticales referenciadas externas tales como una DTD para describir el marcaje disponible en cualquier tipo específico de documento XML, no todos los documentos XML usan tales descripciones externas. Dado que las reglas de la sintaxis XML son seguidas, un documento XML denominado "bien formado solamente" define efectivamente su propio marcaje por el uso y situación de elementos en vez de una definición formal. Otros documentos XML "bien formados" pueden también incluir una definición embebida.
Si un documento XML bien formado solamente o bien formado sin definición externa es devuelto al servidor de datos 18 por la fuente de información 20, entonces se construye un libro de códigos cuando el documento XML es tratado por el transcodificador 74 y almacenado en la memoria caché 30 de libro de códigos. Como no hay disponible definición gramatical formal para un documento XML bien formado solamente, el libro de códigos es generado "improvisadamente". Cuando una nueva etiqueta o atributo de elemento es encontrado, un testigo es asignado por el transcodificador 74. Cualesquiera ocurrencias subsiguientes de la misma etiqueta o atributo son separadas en testigos usando esta asignación de testigo. Para un documento bien formado con una definición embebida, la definición es extraída del documento y proporcionada al generador 34 de libro de códigos por el transcodificador 74. Un libro de códigos puede entonces ser generado sustancialmente como se ha descrito antes. Alternativamente, el propio transcodificador 74 puede extraer y analizar una definición embebida, asignar señal a etiquetas en el documento, y añadir el cartografiado de etiqueta a testigo resultante a la memoria caché 31 del libro de
códigos.
Estos tipos de documentos XML no incluyen declaración DOCTYPE y así tampoco ID público, así algún otro identificador único es generado preferiblemente y usado en la memoria caché 31 del libro de códigos y el documento WBXML. Este identificador generado puede entonces ser usado por el dispositivo móvil 12 para determinar qué libro de códigos usar al analizar el documento WBXML. Debería observarse que cada documento bien formado solamente o definición embebida puede definir elementos y otras construcciones de una manera diferente que cualquier otro documento, de tal modo que un libro de códigos generado y un identificador único pueden ser asociados con un documento particular en vez de un tipo de documento. Por ello, cada vez que es recibido un documento, puede crearse un nuevo libro de códigos e identificador.
A fin de asegurar que estos identificadores generados son diferentes, puede ser deseable usar un esquema de generación de identificador que sea dependiente del contenido de un documento XML bien formado solamente, un documento con una definición embebida, o una definición embebida. Por ejemplo, podría usarse un algoritmo de función de troceado ("función para reducir un mensaje de texto extenso en otro de texto reducido") para trocear el contenido del documento o definición para generar un identificador único para cada documento diferente. Un identificador único podría también ser generado usando información asociada con la operación de solicitud/respuesta a través de la cual se obtuvo el documento XML, incluyendo, por ejemplo, alguna combinación de un identificador de dispositivo móvil, un identificador de sesión de solicitud/respuesta, y una indicación de tiempo de la solicitud y/o respuesta. Otros esquemas de generación de identificador dependiente de datos serán también evidentes para los expertos en la técnica y como tal son considerados dentro del marco del presente invento. El troceado de un documento es simplemente un ejemplo ilustrativo de un método posible para la generación del identificador. El esquema de generación del identificador particular usado es elegido o configurado preferiblemente de tal modo que el identificador generado sea el mismo que cualquier identificador asociado con un tipo XML conocido. De otro modo, un identificador generado puede acceder potencialmente a un libro de códigos incorrecto para un tipo de documento conocido en vez de un nuevo libro de códigos generado para un tipo desconocido.
La especificación WBXML también permite una codificación literal de etiquetas y atributos. Por ello, como una alternativa para transcodificar documentos XML bien formados solamente, sólo etiquetas globales, tales como elementos de partida y elementos de final por ejemplo, son separados en testigos. Otras etiquetas y atributos son a continuación mantenidos como literales en la codificación, es decir no separados en testigos. Esto ahorra tiempo de tratamiento de asignación de testigo y generación de libro de códigos. En algunas circunstancias, esto puede ser un esquema de codificación alternativo viable para documentos con una definición embebida o externa.
Si un documento XML bien formado solamente tiene un tipo MIME registrado con W3C y tiene tablas de testigos correspondientes disponibles públicamente, entonces una tercera opción para codificar el documento XML bien formado solamente es usar el generador 34 de libros de códigos para introducir los pares de testigos y etiquetas y generar un libro de códigos "fuera de línea". El libro de códigos generado puede a continuación ser temporal o permanentemente almacenado en la memoria caché 31 del libro de códigos y usado cada vez que un documento XML de ese tipo MIME es transcodificado. En este caso, el tipo MIME podría ser usado como un índice a la memoria caché 31 del libro de códigos. Como antes, usar un URL u otra dirección a partir de la cual hay disponibles tablas de testigos para el tipo MIME como el identificador puede simplificar ventajosamente el libro de códigos y las operaciones de recuperación de la tabla de testigos.
Sistemas y métodos de acuerdo con el invento pueden soportar también documentos XML "mal formados". Algunas veces es posible limpiar un documento XML que está próximo a bien formado, por ejemplo si algunas etiquetas de cierre están ausentes del documento. El transcodificador XML\rightarrowWBXML 74 puede formatear tales documentos XML de modo que estén bien formados antes de convertirlos a WBXML.
Como los libros de códigos generados para documentos XML bien formados solamente o documentos con definiciones embebidas pueden ser diferentes para cada documento, es posible que un dispositivo móvil tendría siempre que solicitar un libro de códigos cuando un documento WBXML correspondiente a tal documento XML es recibido. Por ello, puede haber muy poca ventaja en almacenar en la memoria caché tales nuevos libros de códigos en un servidor de datos 18. Este tipo de libro de códigos podría en vez de ello estar incluido en una respuesta al dispositivo móvil 12 desde el servidor de datos 18, por ejemplo adicionando o añadiendo el libro de códigos al documento WBXML. Esto impediría usar un espacio significativo en la memoria caché 31 del libro de códigos para almacenar tales entradas de un solo uso, pero no implicaría necesariamente ninguna penalización en prestaciones, ya que estos libros de códigos siempre serían solicitados probablemente de otro modo por un dispositivo móvil 12. Incluir tales libros de códigos con un documento transcodificado reduce también la carga de recursos asociada con las solicitudes de libro de códigos.
En vez de hacer a medida-construir tanto el software para el servidor de datos 18 como las aplicaciones de software para el dispositivo móvil 12 para operar solamente con ciertos esquemas de codificación conocidos específicos como en sistemas conocidos, la memoria caché 31 del libro de códigos es accesible tanto por el servidor de datos 18 como por el dispositivo móvil 12. Los libros de códigos almacenados en la memoria caché 31 de libros de códigos en el servidor de datos 18 no necesitan ser enviados al dispositivo móvil 12 a menos que sea solicitado por el dispositivo móvil 12 sobre la suposición de que pueden ya estar almacenados en memoria en el dispositivo móvil 12. El servidor de datos 18 suministra de modo efectivo otro servicio al dispositivo móvil 12 por el que el dispositivo móvil 12 puede solicitar un libro de códigos para cualquier documento particular procedente del servidor de datos 18. Estas operaciones están descritas en detalle a continuación con referencia a las figs. 4 y 5. La fig. 4 es un diagrama de flujo de señales que muestra el tratamiento de un documento por un dispositivo móvil 12, y la fig. 5 es un diagrama de flujo de señales que ilustra las operaciones del servidor de datos 18 relacionadas con el tratamiento por el dispositivo móvil mostrado en la fig. 4.
En la fig. 4, el subsistema de comunicación 36 en el dispositivo móvil 12 recibe una respuesta a una solicitud de conexión (no mostrada) que incluye un documento WBXML. El proceso de solicitud/respuesta puede ser sustancialmente como se ha mostrado en la fig. 3 y descrito anteriormente, por ejemplo. Debería observarse que aunque se ha mostrado una respuesta en la fig. 3, un documento WBXML recibido podría ser en vez de ello un documento que hubiera sido empujado al dispositivo móvil 12 por una fuente de información. En la fig. 4, el documento WBXML recibido está destinado a ser usado por una aplicación 38 de software de dispositivo móvil.
La transcodificación de un documento XML a WBXML por el servidor de datos 18 puede ser transparente a un usuario que quiere trabajar con XML en el dispositivo móvil 12. A este fin, el documento WBXML es preferiblemente hecho pasar al analizador sintáctico de WBXML 40. El analizador sintáctico de WBXML 40 inyecta todos los eventos de análisis al manipulador de aplicación 42 para la aplicación 38 de software en las funciones de devolución de llamada del manipulador de aplicación 42. Los documentos recibidos son por ello analizados sintácticamente en elementos por el analizador sintáctico 40, y los elementos son hechos pasar al manipulador de aplicación 42. La transcodificación de estos elementos de un documento WBXML de nuevo a XML puede ser manejada posiblemente bien por el analizador sintáctico 40 o bien por el manipulador de aplicación 42. Si el analizador sintáctico 40 es un analizador sintáctico binario, por ejemplo, entonces el manipulador de aplicación 42 estaría normalmente configurado para transcodificar elementos binarios hechos pasar a él desde el analizador sintáctico 40 usando el libro de códigos apropiado. Si el analizador sintáctico 40 es un analizador sintáctico de series sin embargo, el analizador sintáctico 40 puede transcodificar elementos de rutina analizados de un documento WBXML recibido antes de hacer pasar los elementos al manipulador de aplicación 42. Aunque no se ha mostrado explícitamente en la fig. 4, debería observarse que un dispositivo móvil 12 puede incluir más de un tipo de analizador sintáctico 40 y más de una aplicación de software 38 y manipulador 42 de aplicación asociado. Cada aplicación 38 de software y manipulador de aplicación 42 pueden ser entonces configurados para operar con cualquiera de los diferentes tipos de analizador sintáctico. En el ejemplo mostrado en la fig. 4, el manipulador de aplicación 42 usa el libro de códigos para transcodificar elementos de documento. También se ha considerado que los elementos pueden ser transcodificados cuando son analizados, o la transcodificación puede ser realizada sobre elementos analizados después de que la totalidad o parte de un documento recibido haya sido analizada sintácticamente.
La primera función de devolución de llamada de análisis sintáctico desde el analizador sintáctico 40 al manipulador de aplicación 42 incluye preferiblemente el identificador asociado con el documento WBXML. Este identificador es a continuación usado por el manipulador de aplicación 42 como una clave para recuperar el libro de códigos apropiado desde la memoria caché 45 de libros de códigos (no mostrada) en el sistema 44 de libros de códigos. En algunas realizaciones, o para operaciones que implican aplicaciones para las que la transcodificación es manejada por el analizador sintáctico 40 como se ha descrito antes, el libro de códigos puede en vez de ello ser solicitado por el analizador sintáctico 40.
Si el libro de códigos está almacenado en la memoria caché 45 de libros de códigos (no mostrada en la fig. 4) y en el sistema 44 de libros de códigos, es devuelto al manipulador de aplicación 42 y la transcodificación de elementos del documento recibido puede proseguir basado en el testigo, la etiqueta y atributo de cartografiado especificado en el libro de códigos. Como se ha descrito antes, ciertos libros de códigos "permanentes", los libros de códigos usados más a menudo, o varios de los libros de códigos usados más recientemente pueden estar almacenados en la memoria caché de libros de códigos en el sistema 44 de libros de códigos. En el ejemplo de la fig. 4 sin embargo, el libro de códigos no está disponible en el sistema 44 de libros de códigos en el dispositivo móvil 12 y por ello debe ser solicitado del servidor de datos 18. Una solicitud de libro de códigos, incluyendo al menos el identificador asociado con el documento recibido es preparada por el sistema 44 de libros de códigos en el dispositivo móvil 12 y enviada al servidor de datos 18 a través del subsistema de comunicación 36 y del enlace de comunicación 37 (fig. 2).
Con referencia ahora a la fig. 5, la solicitud para el libro de códigos requerido es recibida por el servlet 32 del libro de códigos en el servidor de datos 18. El servlet 32 de libro de códigos recupera el libro de códigos solicitado de la memoria caché 31 de libros de códigos (no mostrada) en el sistema 30 de libros de códigos basado en el identificador incluido en la solicitud de libro de códigos del dispositivo móvil 12. El libro de códigos recuperado es devuelto al servlet 32 de libro de códigos y enviado de nuevo al dispositivo móvil 12 para usar en el análisis sintáctico del documento WBXML. Debería apreciarse que las solicitudes y transferencias de libro de códigos pueden en vez de ello ser manipuladas por el servlet 32 de libro de códigos a través del traductor 24 de protocolos si fuera necesario. También, aunque se ha mostrado un servlet 32 de libro de códigos en la fig. 5, son también posibles otras interfaces al sistema 30 de libro de códigos en el servidor de datos 18. El ejemplo mostrado en la fig. 5 supone que el libro de códigos está disponible a partir del sistema 30 de libros de códigos. Si éste no fuera el caso, por ejemplo si el libro de códigos hubiera expirado de la memoria caché en el sistema 30 de libros de códigos o el servidor de datos al que la solicitud del libro de códigos fue sometido no fuera el servidor de datos a partir del cual se recibió el documento WBXML, entonces se realizarían operaciones adicionales para recuperar una definición gramatical y convertirla en un libro de códigos, como se ha descrito con mayor detalle a continuación con referencia a la fig. 8.
Volviendo ahora a la fig. 4, cuando el libro de códigos solicitado es recibido por el subsistema de comunicación 36 en el dispositivo móvil 12, es enviado al sistema 44 de libros de códigos, que almacena el libro de códigos en la memoria caché de libros de códigos del dispositivo móvil y proporciona el libro de códigos al manipulador de aplicación 42 y/o al analizador sintáctico 40, dependiendo de qué componentes maneja la transcodificación de elementos WBXML analizados sintácticamente en el dispositivo móvil 12.
En el ejemplo mostrado en la fig. 4, el análisis sintáctico del documento WBXML y la transcodificación de elementos WBXML analizados sintácticamente continúa cuando el libro de códigos está disponible al manipulador 42 de aplicación. Cuando el análisis sintáctico y la transcodificación están completados, los datos XML pueden ser enviados a la aplicación 38 de software, o a las otras aplicaciones de software o subsistemas (no mostrados) del dispositivo móvil. Por ejemplo, los datos analizados sintácticamente pueden ser almacenados en una memoria de datos del dispositivo móvil, tratados además por una aplicación de software del dispositivo móvil, o presentados en una pantalla del dispositivo móvil.
Una vez almacenado en la memoria caché en el sistema 44 de libros de códigos, un libro de códigos puede ser designado para almacenamiento permanente, o almacenado sólo temporalmente. Como los recursos de memoria en dispositivos móviles de comunicación inalámbrica tales como el dispositivo móvil 12 tienden a ser limitados y a consumir una potencia considerable, la mayor parte de los libros de códigos serán probablemente almacenados temporalmente. Por ejemplo, los libros de códigos generados por el servidor de datos 18 para documentos bien formados solamente pueden ser diferentes para cada documento bien formado solamente, y como tal son preferiblemente almacenados de modo temporal. Cualquiera de las técnicas de gestión de memoria descritas anteriormente puede ser implantada para la memoria caché de libros de códigos en el sistema 44 de libros de códigos.
Así, de acuerdo con un aspecto del invento, los libros de códigos son desacoplados de las aplicaciones de software de tal modo que cualquier aplicación puede solicitar y usar un libro de códigos en cualquier instante. Esto está en contraste con los sistemas conocidos, en los que un esquema de codificación particular está embebido en cada aplicación de software o manipulador de aplicación respectivo correspondiente.
Las figs. 6 y 7 son representaciones alternativas de operaciones del servidor de datos y del dispositivo móvil de acuerdo con aspectos del invento. La fig. 6 es un diagrama de flujo que ilustra el tratamiento en el servidor de datos de un documento XML recibido. La fig. 7 es un diagrama de flujo que muestra el tratamiento de un documento transcodificado recibido por un dispositivo móvil.
En la fig. 6, el tratamiento del servidor de datos comienza en la operación 50, cuando un documento XML destinado para un dispositivo móvil es recibido desde una fuente de información. El documento puede ser recibido por el servidor de datos en respuesta a una solicitud desde un dispositivo móvil y transmitido a la fuente de información por el servidor de datos, o puede en vez de ello ser un documento que es empujado a un dispositivo móvil, es decir, trasmitido sin ser solicitado primero por el dispositivo móvil.
El servidor de datos determina entonces en la operación 52 si el documento recibido es un tipo de documento XML conocido que tiene una definición gramatical formal referenciada externa, tal como un documento XML válido. Esto puede realizarse buscando un ID público en una declaración DOCTYPE, por ejemplo. Si el documento tiene una definición referenciada externa tal como una DTD, entonces el identificador de tipo documento del documento es determinado en la operación 54, y usado en la operación 56 para solicitar el libro de códigos correspondiente al tipo de documento desde el sistema de libros de códigos en el servidor de datos.
Se ha determinado en la operación 58 que el libro de códigos correspondiente al identificador está almacenado en la memoria caché de libros de códigos del sistema de libros de códigos, entonces el servidor de datos prosigue para transcodificar el documento en la operación 66 y envía el documento transcodificado al dispositivo móvil en la operación 68. El tratamiento del servidor de datos del documento recibido es completado y el proceso termina en la operación 70. Sin embargo, si el libro de códigos correspondiente al identificador no está en la memoria caché de libros de códigos (operación 58), entonces una definición para el documento es recuperada por el generador de libro de códigos en la operación 60 y usada para generar un nuevo libro de códigos para ese tipo documento en la operación 62, como se ha descrito antes. El nuevo libro de códigos es entonces almacenado en la memoria caché de libros de códigos en la operación 64 y el documento XML es transcodificado usando el libro de códigos, en la operación 66. El documento transcodificado es enviado al dispositivo móvil en la operación 68 y el proceso termina en la operación 70.
Documentos XML tales como nuevos tipos de documentos XML, documentos bien formados solamente que no usan una definición formal, o documentos con definiciones gramaticales embebidas dan como resultado una determinación negativa en la operación 52. Un identificador único es generado en la operación 72, troceando el documento por ejemplo, y el libro de códigos puede ser solicitado del sistema de libro de códigos en la operación 74. Si el libro de códigos está almacenado en la memoria caché del sistema de libros de códigos del servidor, que corresponde a una determinación positiva en la operación 76, entonces el documento es transcodificado (66), enviado al dispositivo móvil (68) y el proceso termina (80) como se ha descrito antes. Cuando no se ha encontrado libro de códigos correspondiente al identificador generado en la memoria caché de libros de códigos, el tratamiento prosigue en la operación 78, para generar un nuevo libro de códigos a partir del propio documento recibido o una definición embebida si fuera aplicable. Una definición embebida en un documento XML recibido es extraída preferiblemente del documento y usada bien por el transcodificador o bien por el generador de libro de códigos para generar un nuevo libro de códigos. El nuevo libro de códigos es a continuación almacenado en la memoria caché de libros de códigos en la operación 80, y el documento es transcodificado y enviado al dispositivo móvil (operaciones 66 y 68) y el tratamiento termina en la operación 70. Como se ha descrito antes, un libro de códigos para un documento bien formado solamente es generado cuando el documento es transcodificado. Por ello, la operaciones 78 y 66 pueden ser realizadas simultáneamente, después de lo cual el libro de códigos puede ser almacenado en la memoria caché de libros de códigos en la operación
80.
Como el libro de códigos e identificador para cada documento recibido que no tiene definición referenciada externa pueden ser diferentes, de tal modo que la probabilidad de encontrar un libro de códigos para un documento bien formado en una memoria caché de libros de códigos es relativamente baja, las operaciones 74 y 76 pueden ser puenteadas en algunas realizaciones del invento. Sin embargo, es también posible que varios documentos diferentes de este tipo puedan tener un libro de códigos común. Por ejemplo, documentos procedentes de una fuente particular pueden usar todos la misma definición embebida. Si se ha generado un identificador único para cada uno de estos documentos, entonces el libro de códigos común es generado y almacenado en la memoria caché de libros de códigos cada vez que uno de los documentos es recibido. De acuerdo con otro aspecto del invento, los identificadores pueden ser generados para tales documentos dependiendo de libro de códigos o definición en vez del documento. Por ejemplo, un libro de códigos puede ser generado y a continuación troceado para generar el identificador. Aunque un libro de códigos común sería aún generado en el servidor de datos cada vez que un documento que comparte el libro de códigos común es recibido, solamente una copia del libro de códigos sería almacenado en el servidor de datos. Un esquema de generación de identificador dependiente del libro de códigos puede también proporcionar ventajas significativas para un dispositivo móvil, como se describirá con más detalle a continuación.
Alternativamente, libros de códigos para documentos que no tienen definición referenciada externa puede estar embebida o adicionada o añadida a documentos WBXML transcodificados para evitar ocupar espacio en la memoria caché de libros de códigos con entradas de libro de códigos fundamentalmente de una sola vez y para proporcionar operaciones de solicitudes de libro de códigos generales que no son dependientes de ningún servidor de datos particular. Este esquema alternativo está descrito con mayor detalle a continuación en relación con la fig. 9.
Volviendo ahora a la fig. 7, cuando un documento WBXML procedente de un servidor de datos es recibido en un dispositivo móvil en una operación 82, el identificador del documento recibido es determinado (operación 84). Como se ha descrito antes, algunos documentos XML recibidos en un servidor de datos podrían no incluir un identificador. Sin embargo, de acuerdo con una realización del invento, identificadores son generados preferiblemente en el servidor de datos e incluidos en todos los documentos WBXML enviados a un dispositivo móvil. Por ello, los documentos WBXML recibidos en un dispositivo móvil preferiblemente incluyen un identificador. Usando el identificador determinado en una operación 84, el libro de códigos puede ser solicitado desde la memoria caché de libros de códigos del dispositivo móvil en la operación 86. Si el libro de código requerido es encontrado en la memoria caché, el documento recibido es analizados sintácticamente y transcodificado en la operación 90, los datos XML resultantes son enviados a una aplicación de software de dispositivo móvil u otro recurso de dispositivo móvil tal como una memoria de datos o pantalla de presentación en la operación 92, y el tratamiento del dispositivo móvil termina en la operación 94. Si el libro de códigos no es encontrado en la memoria caché de libros de códigos en el dispositivo móvil, es solicitado del servidor de datos en la operación 96. Después de algún tiempo de retardo asociado con la solicitud del libro de códigos, indicada por la línea de trazos entre las operaciones 96 y 98, el libro del código es recibido por el dispositivo móvil desde el servidor de datos en la operación 98 y almacenado en la memoria caché de libros de códigos del dispositivo móvil en la operación 100. El tratamiento prosigue entonces en la operación 90 como se ha descrito antes.
Considérese ahora un ejemplo de dos documentos WBXML que han sido originados a partir de documentos XML bien formados solamente diferentes pero que tienen una estructura de libro de códigos correspondientes común. En el servidor de datos, un identificador y libro de códigos habrían sido generados para cada uno de los documentos XML. Si los identificadores son generados por el servidor de datos para documentos bien formados solamente dependiendo de los libros de códigos generados en vez del contenido de los documentos, entonces los documentos WBXML resultantes tienen el mismo identificador de tipo de documento. Cuando el primer documento WBXML es recibido en el dispositivo móvil, su libro de códigos es solicitado del servidor de datos y almacenado en la memoria caché de libros de códigos del dispositivo móvil. Cuando el segundo documento WBXML es recibido sin embargo, el libro de códigos correspondiente al identificador es encontrado en el libro de códigos del dispositivo móvil, dado que desde luego la entrada del libro de códigos ha sido ya borrada o sobrescrita en la memoria caché, evitando por ello la solicitud de libro de códigos al servidor de datos y su uso asociado de recursos de comunicación, consumo de potencia del dispositivo móvil, y retardo de tiempo. El esquema de generación de identificador particular puede ser determinado por un proveedor de servicios de comunicación del dispositivo móvil, operador de red de comunicación inalámbrica, propietario de servidor de datos o proveedor de servicios, proveedor de servicios de aplicación o similar, dependiendo de los comportamientos del servidor de datos y del dispositivo móvil y de posibles optimizaciones del tratamiento del documento o del libro de códigos.
Debería ser evidente de la descripción anterior que el presente invento permite ventajosamente que un dispositivo móvil y un servidor construyan memorias caché de libros de códigos respectivas, que proporciona medios para transferencia y tratamiento tanto de tipos conocidos como previamente desconocidos de documentos XML. Las memorias caché de libros de códigos en el dispositivo móvil y en el servidor de datos no necesitan ser las mismas, y pueden ser actualizadas para incluir nuevos libros de códigos "improvisadamente", sin requerir una desconexión de un servidor o dispositivo móvil o cualesquiera cambios de software ó hardware. Una aplicación de software por el lado del dispositivo móvil podría además sembrar preferiblemente la memoria caché de libros de códigos del dispositivo móvil al producirse la instalación si se conociera previamente qué clase documentos XML se recibiría. Está siembra podría ser conseguida creando el libro de códigos en el dispositivo móvil o forzando a la memoria caché 44 del libro de códigos a recuperar un libro de códigos del servidor de datos antes de que cualquier dato sea enviado.
En las realizaciones anteriores del invento, un dispositivo móvil solicita un libro de datos de un servidor de datos cuando no se ha encontrado un libro de códigos correspondiente a un documento en la memoria caché de libros de códigos sobre el dispositivo móvil. Sin embargo, es importante observar que el invento no está en ningún modo restringido a este tipo de solicitud de libro de códigos. Un libro de códigos, como un documento, puede también ser empujado a un dispositivo móvil para almacenamiento en su memoria caché de libros de códigos, cuando se establece un nuevo tipo documento o se encuentra un cierto tipo documento o se espera que se encuentre frecuentemente, por ejemplo. Las solicitudes de libro de códigos o el empuje de libros de códigos a dispositivos móviles pueden también ser usados como alternativas a libros de códigos particulares previamente cargados en una memoria caché de libros de códigos del dispositivo móvil. En vez de cargar previamente un conjunto de libros de códigos usados frecuentemente o de modo permanente sobre un dispositivo móvil, un usuario de dispositivo móvil o aplicación de software puede solicitar estos libros de códigos de un servidor de datos cuando el dispositivo móvil está configurado en primer lugar para funcionamiento con el servidor de datos. Un servidor de datos puede similarmente estar configurado para empujar un conjunto de libros de códigos predeterminado a un dispositivo móvil cuando el dispositivo móvil está registrado o autorizado para comunicación con el servidor de datos.
Las anteriores realizaciones también muestran operaciones cuando una solicitud de libro de código es recibida por un servidor de datos 18 en la que el libro de código solicitado existe en la memoria caché de libros de códigos del servidor. Sin embargo, es posible que un dispositivo móvil 12 pueda ser habilitado para comunicaciones con más de un servidor de datos 18. Por ello, una solicitud de libro de código podría ser enviada a un servidor de datos que no ha transcodificado previamente un documento XML del tipo para el que se ha solicitado un libro de códigos, o un servidor de datos en el que el libro de códigos solicitado no está ya almacenado en la memoria caché de libros de códigos. Si el dispositivo móvil 12 está configurado para solicitar un libro de códigos del servidor particular de datos 18 a partir del cual se ha recibido un documento WBXML u otro documento XML transcodificado, entonces las operaciones de análisis sintáctico en el dispositivo móvil 12 prosiguen sustancialmente como se ha descrito antes. Alternativamente, el servidor de datos 18 puede estar configurado para distribuir nuevos libros de códigos, cuando son generados, a otros servidores de datos o memoria de libros de códigos central (no mostrada) accesible a múltiples servidores de datos. Nuevos libros de códigos son por ello o bien almacenados en la memoria caché de libros de códigos de múltiples servidores de datos, o bien al menos accesibles a los mismos, de tal modo que las solicitudes de libro de códigos puedan ser enviadas a cualquiera de una pluralidad de servidores de datos cuando un libro de códigos es requerido por un dispositivo móvil 12.
La restricción de los dispositivos móviles 12 para enviar solicitudes de libro de códigos solamente a un servidor de datos particular 18 desde el que se ha recibido un documento XML transcodificado puede no ser una solución óptima, porque el análisis sintáctico y la transcodificación de documentos recibidos es entonces dependiente de un único servidor de datos. Si el servidor de datos es desconectado o resulta de otro modo inoperable o no está disponible al dispositivo móvil 12, entonces los documentos XML transcodificados recibidos para los que no se ha almacenado libro de códigos en la memoria caché 45 de libros de códigos del dispositivo móvil no pueden ser transcodificados de nuevo a XML hasta que el servidor de datos 18 que ha enviado el documento al dispositivo móvil 12 está de nuevo en servicio. La distribución de libros de códigos entre múltiples servidores de datos o a una memoria de libros de códigos central puede también requerir cantidades sustanciales de transferencia de datos y ocupar recursos del servidor de datos. Además, cualesquiera retardos en la distribución de un nuevo libro de códigos por un servidor de datos puede causar errores en el tratamiento de la solicitud del libro de códigos, por ejemplo si un nuevo libro de códigos es solicitado desde un servidor de datos antes de que el nuevo libro de códigos haya sido almacenado en la memoria caché de libros de código o en la memoria de libros de códigos central del servidor de datos.
Un esquema alternativo que accede a estas cuestiones al tiempo que proporciona una flexibilidad mejorada para recuperar libros de códigos de servidores de datos será descrito a continuación con referencia a la fig. 8 que es un diagrama de flujo de señales que ilustra operaciones del servidor de datos asociadas con una solicitud de libro de códigos de acuerdo con otro aspecto del invento.
En la fig. 8, una solicitud de libro de códigos y recibida por el servidor de datos 18 desde un dispositivo móvil 12. Las solicitud de libro de códigos es recibida por el servlet 32 de libro de códigos, posiblemente a través del traductor de protocolos 24 si fuera necesario. El servlet 32 de libro de códigos solicita entonces el libro de códigos del sistema 30 de libro de códigos, que determina si el libro de códigos solicitado está almacenado en la memoria caché de libros de códigos del servidor (no mostrada) en el sistema 30 de libros de códigos. En el ejemplo de la fig. 8, el libro de códigos solicitado no está en la memoria caché de libros de códigos. Esto puede ocurrir, por ejemplo, cuando el servidor de datos 18 que recibe la solicitud del libro de códigos desde el dispositivo móvil 12 no ha transcodificado previamente un documento XML del tipo con el que está asociado el libro de códigos solicitado. Sin embargo, el libro de códigos puede también estar ausente de la memoria caché de libros de códigos del servidor si el libro de códigos ha estado almacenado sólo temporalmente y se ha sobrescrito en él o se ha borrado de la memoria caché antes de que el libro de códigos fuera solicitado por el dispositivo móvil 12.
De acuerdo con esta realización del invento, un libro de códigos que no se ha encontrado en la memoria caché de libros de códigos del servidor en el sistema 30 de libros de códigos es generado por el servidor de datos 18. En el ejemplo de la fig. 8, el libro de códigos está asociado con un documento XML que es conforme a una DTD disponible desde una fuente de definición externa mostrada como un servidor 23a de DTD. Cuando el sistema 30 de libros de códigos determina que el libro de códigos solicitado no está disponible en su memoria caché de libros de códigos, el generador 34 de libro de códigos es invocado y solicita la DTD para el documento desde el servidor 23a de DTD. La DTD es solicitada del servidor 23a de DTD, usando el identificador de tipo de documento apropiado. El servidor de DTD devuelve entonces la DTD al generador de libro de códigos, que genera el libro de códigos solicitado usando la DTD, sustancialmente como se ha descrito antes. El libro de códigos es a continuación enviado al sistema 30 de libros de códigos, que preferiblemente almacena el libro de códigos en su memoria caché. El sistema 30 de libros de códigos también devuelve el libro de códigos al servlet 32 de libro de códigos, y el libro de códigos es devuelto al dispositivo móvil 12, a través del traductor de protocolos 24 si se requiere. En el dispositivo móvil 12, el libro de códigos solicitado es almacenado en la memoria caché 45 de libros de códigos del dispositivo móvil y, si la solicitud de libro de códigos se hizo para permitir la transcodificación de un documento WBXML recibido, el libro de códigos es usado para tratar el documento, como se ha descrito anteriormente.
Las operaciones del servidor implicado en el esquema de solicitud de libro de códigos de la fig. 8 están mostradas en la fig. 9. La fig. 9 es un diagrama de flujo que muestra el tratamiento del servidor de datos de una solicitud de libro de códigos de acuerdo con una realización del invento mostrada en la fig. 8. En la fig. 9, el tratamiento del servidor comienza cuando se recibe una solicitud de libro de códigos desde un dispositivo móvil en la operación 102. El servidor determina entonces el identificador asociado con el libro de códigos solicitado en la operación 104. Como se ha descrito antes, el dispositivo móvil puede insertar un ID público de documento u otro identificador en la solicitud de libro de códigos, de tal modo que el identificador es extraído preferiblemente de la solicitud. Usando el identificador, es determinado entonces si el libro de códigos solicitado está en la memoria caché de libros de códigos del servidor, en la operación 106. Si el libro de códigos está en la memoria caché, es recuperado de la memoria caché en la operación 108, devuelto al dispositivo móvil en la operación 110 y el tratamiento de solicitud del libro de códigos termina en la operación 112.
Cuando el libro de códigos no está en la memoria caché, el servidor determina una dirección de una fuente de definición externa desde la que puede ser recuperada la definición, en la operación 114. Cuando esta dirección ha sido determinada, el servidor recupera la definición, en la operación 116, por ejemplo mediante un proceso de solicitud y respuesta como se ha descrito antes. El libro de códigos solicitado es a continuación generado en una operación 118, preferiblemente almacenado en la memoria caché de libros de códigos del servidor en la operación 120 y devuelto al dispositivo móvil en la operación 110. El tratamiento de la solicitud del libro de códigos es entonces completado, y termina en la operación 112.
Una ventaja de usar un URL desde el que puede ser recuperada una definición externa será evidente de las figs. 8 y 9. Cuando el identificador en la solicitud del libro de códigos apunta a la situación de una definición externa, entonces el servidor de datos no necesita resolver el identificador para determinar la dirección de una fuente de definición externa (operación 114 de la fig. 9), tal como el servidor 23a de DTD. Como tal, la solicitud contiene toda la información requerida para recuperar una definición externa, que simplifica el tratamiento de la solicitud de libro de códigos por un servidor de datos. Además, este esquema proporciona medios para la distribución de carga de solicitud del libro de códigos a través de múltiples servidores de datos sin requerir ninguna clase de comunicación de libros de códigos entre los servidores de datos. Por ejemplo, un primer servidor de datos (DS1) puede recibir un documento XML, recuperar la DTD, crear el libro de códigos, transcodificar el documento XML a documento WBXML, y enviar el documento WBXML al dispositivo móvil. Un segundo servidor de datos (DS2) podría entonces recibir la solicitud para el libro de códigos desde el dispositivo móvil. Si el libro de códigos no está ya en la memoria caché en el servidor DS2, como el DS1 ha generado y almacenado el libro de códigos en su memoria caché, DS2 tendrá que recuperar la DTD y generar el libro de códigos. En este caso, usar el URL de la DTD como el identificador para el tipo de documento XML es mucho más útil que usar un ID publico u otro identificador ya que el URL es todo lo que se requiere para recuperar la DTD.
Usar el ID público como el identificador requeriría bien la comunicación entre DS1 y DS2 o restringir al dispositivo móvil para que envíe la solicitud de libro de códigos solamente a DS1 como se ha descrito antes. Tal comunicación y restricciones pueden hacer el sistema completo menos robusto y menos escalable. Sin embargo, cuando un identificador está asociado con un URL de una definición, o el identificador puede ser resuelto en tal URL, los beneficios descritos anteriormente son conseguidos usando el identificador. Por ejemplo, el identificador podría ser una función de troceado u otra transformación de un URL de la definición, que un servidor de datos puede resolver en el URL consultando una tabla de funciones de troceado u otra tabla de búsqueda.
El esquema mostrado en la fig. 8 puede ser aplicado no solamente para documentos XML que tienen una DTD asociada, sino también para documentos que tienen un tipo MIME registrado y tablas de testigos públicamente disponibles, o cualesquiera otros documentos XML que tienen una referencia a una definición gramatical de documento disponible públicamente externa. Para otros documentos XML tales como documentos bien formados solamente y documentos con definiciones embebidas sin embargo, un libro de códigos es generado por un servidor de datos que usa el documento XML o una definición embebida. Es por ello preferible que tales libros de códigos estén embebidos o sean adicionados o añadidos a documentos transcodificados enviados a un dispositivo móvil 12. Entonces, cualquier dispositivo móvil 12 solicita solamente aquellos libros de códigos asociados con documentos XML válidos o documentos XML que tienen tablas de testigos disponibles públicamente, desde las que un libro de códigos puede ser generado por cualquier servidor de datos que tenga acceso a los libros de códigos, tablas de testigos, u otras definiciones externas desde las que pueden ser generados los libros de códigos. A fin de proporcionar medios para las operaciones de solicitud de libro de códigos mostradas en las figs. 8 y 9, al tiempo que mantienen soporte para documentos XML sin definición externa, las operaciones del servidor de datos pueden ser modificadas como se ha mostrado en la fig. 10. La fig. 10 es un diagrama de flujo que ilustra el tratamiento del servidor de datos ejemplar de un documento XML recibido para soportar el esquema de solicitud de libro de códigos en las figs. 8 y 9.
En la fig. 10, el tratamiento de un documento XML que tiene una definición referenciada externa es sustancialmente el mismo que se ha mostrado en la fig. 6 y descrito antes, y por ello no se ha descrito en mayor detalle. Cuando un documento recibido desde una fuente de información en la operación 50 se ha determinado que no tiene una definición referenciada externa (operación 52), entonces un libro de códigos es generado desde el documento o una definición embebida en la operación 78, como se ha descrito antes. El documento recibido es transcodificado a continuación en la operación 66. Como también se ha descrito antes, el libro de códigos puede ser generado cuando el documento es transcodificado, de tal modo que las operaciones 66 y 78 pueden realmente ser operaciones simultáneas. El libro de códigos es a continuación embebido o adicionado o añadido al documento transcodificado en la operación 67, y el documento transcodificado y el libro de códigos son enviados al dispositivo móvil en la operación 69. Como el libro de códigos es enviado al dispositivo móvil con el documento transcodificado, no necesita ser generado un identificador y el libro de códigos no necesita necesariamente ser almacenado en el servidor de datos.
La descripción anterior se refiere a la transcodificación de documentos XML a documentos WBXML en un servidor de datos, el envío de documentos transcodificados a un dispositivo móvil de comunicación inalámbrica, y el tratamiento de documentos en el dispositivo móvil. Sin embargo, de acuerdo con otro aspecto del invento, los documentos XML pueden también ser preparados en un dispositivo móvil y transcodificados a WBXML para transmisión a un servidor de datos. El servidor de datos puede entonces transcodificar documentos WBXML recibidos desde un dispositivo móvil a XML para transferir a un receptor pretendido.
La fig. 11 es un diagrama de flujo de señales que muestra la creación de un documento WBXML sobre un dispositivo móvil. El dispositivo móvil 212 mostrado en la fig. 11 es similar al dispositivo móvil 12 mostrado en la fig. 4, pero proporciona medios para la creación de documentos XML y WBXML. El subsistema de comunicación 236 y el sistema de libros de códigos 244 pueden ser los mismos que los componentes etiquetados similarmente en el dispositivo móvil 12. La aplicación 238 de software y su manipulador de aplicación 242 pueden también ser los mismos que la aplicación 38 y el manipulador 42 en la fig. 4, por ejemplo si la aplicación 38 de software está configurada tanto para recibir como para generar el contenido de XML. Sin embargo, debería apreciarse que cualquier aplicación de software de dispositivo móvil puede o bien recibir datos XML, o bien generar datos XML o bien ambos, y que un dispositivo móvil puede incluir más de un tipo de aplicación de software.
El generador 241 de WBXML realiza las operaciones inversas del analizador sintáctico 40 de WBXML, porque en vez de analizar elementos de documentos desde un documento WBXML, el generador 241 de WBXML reúne elementos de documentos en un documento WBXML. La transcodificación de elementos de documento XML a elementos de WBXML puede ser manejada, bien por el generador 241 de WBXML o bien por el manipulador de aplicación 242, dependiendo de la configuración del dispositivo móvil 212, de la aplicación 238 de software, y de su manipulador 242. En el dispositivo móvil 212 del ejemplo, el manipulador de aplicación 242 transcodifica elementos de documento XML a elementos de documento WBXML, aunque un dispositivo móvil puede incluir aplicaciones de software y manipuladores asociados de cualquiera de los tipos anteriores.
Como se ha mostrado en la fig. 11, la aplicación 238 de software genera datos XML que son hechos pasar al manipulador de aplicación 242. Estos datos pueden haber sido previamente almacenados en el dispositivo móvil 212, pueden ser introducidos por un usuario en un teclado, u otra entrada (no mostrada) sobre el dispositivo móvil 212, o pueden posiblemente ser cargados sobre el dispositivo móvil 212 a través de un sistema de transferencia de datos tal como una conexión de puerto serie a un ordenador o un sistema de comunicación inalámbrica de corto alcance tal como un receptor de infrarrojos o módulo de comunicación Bluetooth^{TM}. Los datos XML generados por la aplicación 238 de software puedan ser transferidos al manipulador de aplicación 242 en una sola transferencia como se ha mostrado en la fig. 11, o elemento a elemento cuando cada elemento es generado.
Cuando alguno o la totalidad de los datos XML procedentes de la aplicación 238 de software es recibido por el manipulador de aplicación 242, el libro de códigos requerido para transcodificar los datos XML a WBXML es solicitado desde el sistema 244 de libros de códigos usando un identificador asociado con el tipo XML de los datos generados por la aplicación 238 de software. El sistema 244 de libros de códigos devuelve el libro de códigos solicitado al manipulador de aplicación 242, bien recuperando el libro de códigos desde su memoria caché (no mostrada) o solicitando el libro de códigos desde un servidor de datos si el libro de códigos no está disponible en su memoria caché. El proceso de solicitud de libro de códigos, incluyendo posiblemente la generación de libro de códigos en un servidor de datos, puede ser realizado mediante cualquiera de los esquemas descritos anteriormente.
Cuando el libro de códigos es recibido por el manipulador de aplicación 242, la transcodificación de los datos XML a elementos de documento WBXML continúa. Una vez que la totalidad de los datos XML procedentes de la aplicación 238 de software ha sido transcodificada a elementos WBXML y transferida al generador 241 de WBXML, el generador 241 de wBXML reúne los elementos WBXML en un documento WBXML, incluyendo el identificador asociado con el tipo XML, y transfiere el documento WBXML al subsistema de comunicación 236. El documento WBXML es entonces trasmitido a un servidor de datos.
Los datos XML generados por la aplicación 238 de software pueden también ser almacenados en la memoria (no mostrada) en el dispositivo móvil 212 hasta que el libro de códigos solicitado es recibido. Este proporciona medios para la generación de datos en un dispositivo móvil 212 incluso cuando el dispositivo móvil 212 está fuera de cobertura de la red de comunicación o es de otro modo incapaz de solicitar y/o recibir un libro de códigos desde un servidor de datos. Como los datos están almacenados en el dispositivo móvil 212, otras operaciones del dispositivo móvil, funciones y aplicaciones de software pueden ser usadas incluso aunque un documento XML generado no haya sido aún transcodificado y enviado al servidor de datos. Los datos almacenados pueden a continuación ser transcodificados y enviados al servidor de datos siempre y cuando el libro de códigos sea recibido.
Se ha considerado que un documento XML generado en el dispositivo móvil 212 puede estar destinado, bien para un servidor de datos, o bien para un receptor del documento pretendido con el que un servidor de datos puede estar configurado para comunicar, tal como un servidor de datos por ejemplo, o para ambos. Si el documento XML ha de ser transmitido a uno más receptores por un servidor de datos, entonces una dirección de cada receptor es preferiblemente añadida al documento WBXML o embebida en él por la aplicación 238 de software, el manipulador 242 de aplicación o posiblemente el generador 241 de WBXML en el dispositivo móvil 212.
El dispositivo 212 de ejemplo anterior y los flujos de señales mostrados en la fig. 11 se refieren a la generación de un documento XML para el que un libro de códigos o bien está disponible en el dispositivo móvil 212 o procede de un servidor de datos. Como se ha descrito antes, un libro de códigos para un documento XML que tiene una definición gramatical disponible públicamente puede ser generado por cualquier servidor de datos que tenga acceso a la definición gramatical. Como tal, si los dispositivos móviles y las aplicaciones de software del dispositivo móvil están configuradas para generar solamente tipos conocidos de XML, entonces un dispositivo móvil no necesita incluir un sistema de generación de libro de códigos ya que cualesquiera libros de códigos requeridos para generar documentos WBXML en un dispositivo móvil pueden entonces ser solicitados desde un servidor de datos. Sin embargo, cuando los recursos de tratamiento en un dispositivo móvil lo permiten, el dispositivo móvil puede generar documentos XML bien formados solamente u otros nuevos tipos de documentos XML, generar libros de códigos correspondientes para tales documentos, y embeber, adicionar o añadir los libro de códigos a documentos WBXML transcodificados antes de enviar los documentos a un servidor de datos. Alternativamente, y como se ha descrito antes para el servidor de datos 18, podría generarse un único identificador y los libros de códigos podrían ser almacenados en una memoria caché de libros de códigos (no mostrada) en el dispositivo móvil 212 si hay suficiente espacio de memoria disponible. Si un libro de códigos es requerido por un servidor de datos para un documento WBXML generado a partir de tal documento XML, podría entonces ser solicitado desde el dispositivo móvil. De estas dos alternativas, el envío de tales libros de códigos a un servidor de datos puede ser preferible a fin de evitar la gestión de la solicitud del libro de códigos sobre un dispositivo móvil, posibles retardos de tiempo en la recuperación de libros de códigos desde un dispositivo móvil cuando un dispositivo móvil está desconectado o fuera de cobertura de la red de comunicación, y un tráfico de solicitud/respuesta de libro de código incrementado sobre el dispositivo móvil a enlaces de comunicación del servidor de datos.
La fig. 12 es un diagrama de flujo de señales que muestra el tratamiento de un documento WBXML recibido desde un dispositivo móvil por un servidor de datos. El servidor de datos 218 y sus componentes son sustancialmente similares al servidor de datos 18 y a los componentes similarmente etiquetados mostrados en la fig. 3 y descritos anteriormente, excepto en que el sistema transcodificador 228 incluye un transcodificador 274 de WBXML a XML.
Un dispositivo móvil 212 transfiere preferiblemente documentos a un servidor de datos 218 usando el mismo protocolo utilizado para transferencias de documentos desde un servidor de datos a un dispositivo móvil, tal como el IPPP de propietario, aunque pueden usarse diferentes protocolos dependiendo de la dirección de transferencia del documento.
Un documento WBXML procedente del dispositivo móvil 212 es recibido por el servidor de datos 218 y cualesquiera traducciones de protocolo necesarias son realizadas por el traductor de protocolos 224. El documento WBXML recibido es enviado al transcodificador 274 en el sistema de transcodificación 228. Debería ser evidente que el sistema transcodificador 228 en el servidor de datos 218 también realiza el análisis sintáctico de documentos recibidos. Esto es también cierto para el sistema de transcodificación 28 en el servidor de datos 18 descrito anteriormente. Los expertos en la técnica apreciarán que un sistema de análisis sintáctico separado podría también estar previsto en un servidor de datos sin salir del marco del presente invento.
Si el libro de códigos está embebido o es adicionado o añadido al documento WBXML, el transcodificador 274 extrae y usa el libro de códigos para transcodificar los elementos del documento WBXML a XML, y puede también almacenar el libro de códigos en una memoria caché de libros de códigos (no mostrada) en el sistema 230 de libros de códigos. En el ejemplo mostrado en la fig. 12, el documento WBXML recibido tiene una definición referenciada externa. El identificador es usado por el transcodificador 274 para solicitar el libro de códigos para el documento desde el sistema 230 de libros de códigos. El sistema de libros de códigos o bien devuelve el libro de códigos solicitado, si el libro de códigos es encontrado en su memoria caché de libros de códigos, o bien invoca al generador 224 de libro de códigos para generar el libro de códigos solicitado.
Como se ha descrito antes, el generador 234 de libro de códigos solicita la definición usando el identificador, que es preferiblemente una dirección tal como un URL desde el que la definición puede ser recuperada, desde una fuente 223 de definición externa. Cuando la definición es devuelta al generador 234 de libro de códigos, es usada para generar el libro de códigos solicitado, que es a continuación devuelto al sistema 230 de libros de códigos. El sistema 230 de libros de códigos almacena preferiblemente el nuevo libro de códigos en su memoria caché y proporciona el libro de códigos al transcodificador 274. Los elementos WBXML analizados son a continuación transcodificados y reunidos en un documento XML.
Si el documento procedente del dispositivo móvil 212 está destinado a ser tratado además por el servidor de datos 218 u otros componentes en él, entonces el documento XML es enviado a tales otros componentes del servidor de datos o posiblemente almacenado en una memoria (no mostrada) en el servidor de datos 218 para su tratamiento subsiguiente. Si el documento WBXML recibido está destinado a un sistema 228 receptor identificado por una dirección embebida o proporcionada con el documento por el dispositivo móvil 212, entonces el documento transcodificado es enviado al sistema 220 receptor a través de un manipulador de conexión apropiado 226. Las comunicaciones del servidor de datos 218 al sistema receptor 220 pueden ser realizadas mediante el manipulador de conexión 226 usado para comunicaciones entre el servidor de datos 218 y la fuente de definición externa 223, como se ha mostrado en la fig. 12, o pueden usarse manipuladores de conexión diferentes. Como una solicitud de documento desde el dispositivo móvil 12 como se ha descrito antes, el dispositivo móvil 218 puede enviar una solicitud de conexión y con el documento WBXML para especificar cualesquiera sistemas receptores de documentos tales como 220 y un manipulador de comunicación y/o protocolo que ha de ser usado para transferir el documento a cualesquiera sistemas receptores.
Los documentos XML generados en el dispositivo móvil 212 son por ello transcodificados a WBXML para transferir a un servidor de datos 218 y transcodificados de nuevo a XML por el servidor de datos 218. También se ha considerado que el dispositivo móvil 212 puede transferir un documento WBXML a un dispositivo móvil similarmente habilitado, bien directamente o bien a través de un servidor de datos. En el último caso, un documento WBXML es preferiblemente enviado a un dispositivo móvil receptor pretendido en vez de ser transcodificado a XML por el servidor de datos. El dispositivo móvil receptor puede solicitar un libro de códigos requerido bien desde un servidor de datos o bien posiblemente desde un dispositivo móvil emisor.
Los esquemas de tratamiento de contenido mostrados en las figs. 11 y 12 están mostrados en forma de diagrama de flujo en las figs. 13 y 14. La fig. 13 es un diagrama de flujo que representa el tratamiento por el dispositivo móvil de un documento XML generado, y la fig. 14 es un diagrama de flujo que ilustra el tratamiento de un documento WBXML recibido por un servidor de datos.
En la fig. 13, un documento XML es generado en el dispositivo móvil 212 en la operación 250. A continuación es determinado en la operación 252 si el documento XML es un tipo de documento XML conocido que tiene una definición gramatical referenciada y disponible externa, tal como un documento XML válido. El tipo de documento XML generado puede ser dependiente, por ejemplo, de la aplicación de software del dispositivo móvil particular que genera el documento XML. Si el documento XML tiene una definición referenciada externa tal como una DTD, como puede ser determinado buscando una declaración DOCTYPE en el documento XML, entonces el identificador de tipo documento del documento es determinado en la operación 254, y usado en la operación 256 para solicitar el libro de códigos correspondiente desde el sistema de libros de códigos en el dispositivo móvil.
Si el libro de códigos está almacenado en la memoria caché de libros de códigos del sistema de libros de códigos del dispositivo móvil, como se ha determinado en la operación 258, entonces el documento XML es transcodificado en la operación 260 y el documento WBXML resultante es enviado a un servidor de datos y/o receptor o receptores en la operación 262, completando el tratamiento por el dispositivo móvil del documento XML generado. El proceso termina en la operación 264. Sin embargo, si el libro de códigos correspondiente al identificador no está en la memoria caché de libros de códigos (operación 258), entonces es solicitado desde un servidor de datos en la operación 266. El libro de códigos es recibido desde el servidor de datos en la operación 268, después de algún retardo de tiempo indicado por la línea de trazos entre las operaciones 266 y 268. El libro de códigos es entonces preferiblemente almacenado en la memoria caché de libros de códigos en el dispositivo móvil en la operación 270, y el tratamiento concluye con las operaciones 260, 262 y 264 como se ha descrito anteriormente.
Los dispositivos móviles con potencia de tratamiento relativamente limitada serán probablemente habilitados para generar sólo documentos XML para los que los libros de códigos pueden ser generados y solicitados desde un servidor de datos a fin de evitar la generación del libro de códigos en los dispositivos móviles. En tales dispositivos móviles, el tratamiento de un documento XML localmente generado incluye las operaciones 250 y 254 a 270. Cuando un dispositivo móvil puede generar libros de códigos para documentos XML tales como nuevos tipos de documentos XML, documentos bien formados solamente que no usan una definición formal, o documentos con definiciones gramaticales embebidas, entonces puede hacerse una determinación negativa en la operación 252. El libro de códigos es generado a partir del documento o de la definición embebida en la operación 272, como se ha descrito antes por ejemplo, el documento XML es transcodificado usando el libro de códigos en la operación 274, el libro de códigos está preferiblemente embebido o es adicionado o añadido al documento WBXML transcodificado en la operación 276, y el documento WBXML y el libro de códigos son enviados al servidor y/o receptor o receptores de datos en la operación 278.
Alternativamente, el libro de códigos generado en la operación 272 puede ser almacenado en la memoria caché de libros de códigos en el dispositivo móvil usando un identificador único calculado. Sin embargo, por las razones descritas en detalle anteriormente, libros de códigos generados a partir documentos XML o definiciones embebidas son enviados preferiblemente al servidor de datos o cualesquiera otros receptores con o sin el documento WBXML.
Volviendo ahora a la fig. 14, se describirá el tratamiento de un documento WBXML generado en un dispositivo móvil. La fig. 14 es un diagrama de flujo que ilustra el tratamiento de un documento WBXML recibido por un servidor de datos. Como se ha mostrado, el método de tratamiento comienza cuando un documento WBXML procedente de un dispositivo móvil es recibido en el servidor de datos en la operación 280. A continuación se determina si el libro de códigos ha sido proporcionado con el documento, por ejemplo cuando un libro de códigos usado para un documento XML bien formado solamente estaba embebido o es adicionado o añadido al documento WBXML. Si el libro de códigos ha sido proporcionado con él, a continuación es extraído en la operación 284, y el documento es analizado y transcodificado de nuevo a WBXML usando el libro de códigos en la operación 286. Como se ha descrito antes, el documento enviado desde el dispositivo móvil puede estar destinado para su uso por el servidor de datos y posiblemente también o en vez de por uno o más receptores. El documento transcodificado es a continuación distribuido a componentes dentro del servidor de datos y/o a cualesquiera receptores pretendidos, en la operación 288. El método termina entonces en la operación 290. Si el documento está destinado a más de un dispositivo móvil receptor, entonces el documento WBXML recibido podría ser enviado a los dispositivos móviles en la operación 288 sin ser transcodificado mientras que la versión de XML transcodificado podría ser enviada a otros receptores tales como sistemas de ordenadores con los que el servidor de datos puede comunicarse, a través de una WAN tal como Internet, por ejemplo. Como el WBXML puede también proporcionar un uso más eficiente de recursos de comunicaciones incluso para sistemas de comunicación con cable, es posible que un servidor de datos pueda estar configurado para distribuir un documento WBXML recibido a todos los receptores, y que las operaciones de transcodificación de la operación 286 serían realizadas por cada receptor.
Si el libro de códigos no fue proporcionado por el dispositivo móvil con el documento WBXML recibido, como se ha determinado en la operación 282, entonces el servidor de datos determina el identificador del documento recibido en la operación 292. El libro de códigos es a continuación solicitado desde el sistema de libros de códigos en el servidor de datos, usando el identificador, en la operación 294. El sistema de libros de códigos determina entonces si el libro de códigos está en su memoria caché en la operación 296. Si el libro de códigos es encontrado en la memoria caché, entonces el tratamiento prosigue en la operación 286, como se ha descrito antes. Si el libro de códigos no está en la memoria caché, entonces en la operación 298, o bien la definición asociada con el identificador o bien el propio libro de códigos es recuperado. En la mayor parte de las puestas en práctica, se ha considerado que la definición será recuperada y el libro de códigos será generado por el servidor de datos. Sin embargo, debería comprenderse que el invento no está limitado en ningún modo a ello. Cuando Los recursos del dispositivo móvil lo permiten, los libros de código podría ser solicitados de un dispositivo móvil desde el que el documento WBXML fue recibido.
Cuando una definición es recuperada por el servidor de datos en la operación 298, un libro de códigos es generado en la operación 300. El libro de códigos requerido, ya se haya generado en la operación 300 o recuperado en la operación 298 por el servidor de datos, es preferiblemente almacenado en el libro de códigos del servidor de datos en la operación 302, y el tratamiento concluye con las operaciones 286, 288 y 290 como se ha descrito antes.
De acuerdo con otro aspecto del invento, los documentos WBXML pueden ser intercambiados directamente entre dispositivos móviles. El tratamiento por un dispositivo móvil de un documento WBXML recibido puede ser sustancialmente como se ha descrito antes. Un libro de códigos requerido que no es proporcionado con el documento WBXML o encontrado en la memoria caché de libros de códigos del dispositivo móvil puede ser solicitado preferiblemente bien desde un servidor de datos o bien posiblemente desde el dispositivo móvil emisor.
La fig. 15 es un diagrama de bloques que ilustra un dispositivo móvil de comunicación inalámbrico en el que sistemas y métodos de acuerdo con el invento podrían ser puestos en práctica. En la fig. 15, el dispositivo móvil 322 incluye un subsistema de comunicación 336, un analizador sintáctico 340 de series de WBXML, un generador 341 de series de WBXML, un analizador sintáctico binario 342 de WBXML, un generador binario 343 de WBXML, tres aplicaciones de software 346, 352 y 358, cada una de las cuales incluye el código de software que pone en práctica la aplicación de software real 350, 356, 362 y un manipulador de aplicación correspondiente 348, 354, 360, y un sistema 344 de libros de códigos que incluye una memoria caché 345 de libros de códigos. El dispositivo móvil 322 en la fig. 15 es sustancialmente similar al dispositivo móvil 12 en la fig. 2, pero muestra múltiples aplicaciones de software y dos tipos de analizadores sintácticos y generadores de WBXML.
El subsistema de comunicación 336 incluye tales componentes cuando son requeridos para el dispositivo móvil 322 para comunicar con un servidor de datos sobre los enlaces 335 y 337, que pueden ser usados para transferencias de documentos y solicitudes de libro de códigos y respuestas, por ejemplo, y posiblemente con otros dispositivos móviles sobre el enlace 339. La puesta en práctica exacta del subsistema de comunicación 336 dependerá de los sistemas de comunicación y protocolos con los que el dispositivo móvil 322 está destinado a funcionar, como se ha descrito anteriormente.
El analizador sintáctico 340 de series de WBXML recibe documentos WBXML y analiza sintácticamente y transcodifica los documentos de nuevo a XML. El analizador sintáctico 340 de series está por ello conectado al sistema 344 de libros de códigos para proporcionar medios para la recuperación del libro de códigos cuando un documento WBXML es recibido. Si el libro de códigos está embebido o es adicionado o añadido al documento recibido sin embargo, y el libro de códigos es extraído, hecho pasar al sistema 344 de libros de códigos para almacenamiento en la memoria caché 345 de libros de códigos, y usado para transcodificar el documento WBXML. Los datos XML analizados sintácticamente y transcodificados son hechos pasar a continuación al manipulador de aplicación 348 para usar por la aplicación 350. Debería apreciarse que la aplicación 246 está configurada para trabajar con XML en el dispositivo móvil 322 y por ello son hechos pasar datos XML por el analizador sintáctico 340 de series. Similarmente, la aplicación 346 está también configurada para generar XML en el dispositivo móvil 322. Los datos XML generados por la aplicación 350 de software son hechos pasar al generador 341 de series de WBXML por el manipulador de aplicación 348. El generado 341 de series de WBXML recupera el libro de códigos relevante desde el sistema de libros de códigos 344 o genera el libro de códigos a partir de los datos XML o de una definición embebida como se ha descrito antes. El libro de códigos es usado para transcodificar los datos XML a datos WBXML que son reunidos en un documento WBXML y hechos pasar al subsistema de comunicación 336 para transmisión a un servidor de datos o posiblemente a otro dispositivo móvil. Un libro de códigos generado en el dispositivo móvil 322 puede ser enviado junto con el documento WBXML transcodificado, almacenado en la memoria caché 345 en el sistema 344 de libros de códigos, o ambas cosas.
La aplicación de software 352 configurada para trabajar con el analizador sintáctico binario 342 incluye un manipulador de aplicación 354 que maneja las operaciones de transcodificación. Un documento WBXML recibido que ha de ser usado por la aplicación 352 es analizado por el analizador sintáctico 342 y los elementos del documento WBXML analizados son hechos pasar al manipulador de aplicación 354. El manipulador de aplicación 354 o bien solicita entonces el libro de códigos del sistema 344 de libros de códigos o bien extrae un libro de códigos embebido del documento, y usa el libro de códigos para transcodificar los elementos analizados a WBXML. Cuando un documento XML es generado usando la aplicación de software 356, el manipulador de aplicación 354 o bien genera el libro de códigos apropiado a partir del propio documento o bien una definición embebida o bien solicita el libro de códigos del sistema 344 de libros de códigos, y usa el libro de códigos para transcodificar elementos XML generados por la aplicación 356 en elementos binarios de WBXML. El generador binario 343 de WBXML realiza operaciones inversas del analizador sintáctico binario 342 de WBXML, y reúne los elementos WBXML hechos pasar a él por el manipulador 354 de aplicación a documentos WBXML.
Las aplicaciones 346 y 352 están configuradas para trabajar en unión con el sistema 344 de libros de códigos de acuerdo con aspectos del invento. Debería también apreciarse que un dispositivo móvil 322 que incorpora tales aplicaciones puede también tener otras aplicaciones de software instaladas y que funcionan en él. Por ejemplo la aplicación 358 incluye un manipulador de aplicación 360 en el que está embebido un esquema de codificación, como sería corriente de acuerdo con una técnica conocida descrita antes. La aplicación 358 puede usar el analizador sintáctico 242 y el generador 343, como se ha mostrado en la fig. 15, pero no interactúa con el sistema 344 de libros de códigos. La puesta en práctica del invento en un dispositivo móvil puede por ello proporcionar compatibilidad con aplicaciones de software de dispositivo móvil que usan esquemas de transcodificación embebidos.
El dispositivo móvil 322 como se ha mostrado en la fig. 15 está destinado a propósitos ilustrativos solamente, y el invento no está restringido en ningún modo a un dispositivo móvil que incluya los componentes mostrados en él. Por ejemplo, otras aplicaciones de software que solamente envían o reciben XML, así como aún otras aplicaciones que permiten funciones de comunicación o funciones de no comunicación, pueden también o en vez de ello estar implantadas en un dispositivo móvil.
Se apreciará que la descripción anterior se refiere a realizaciones preferidas a modo de ejemplo solamente. Muchas variaciones en el invento serán obvias para los expertos en la técnica, y tales variaciones obvias están dentro del marco del invento como se ha descrito aquí, estén o no expresamente descritas.
Por ejemplo, aunque un único dispositivo móvil, servidor de datos y fuente de información están mostrados en los dibujos, un servidor de datos proporcionará típicamente servicios para una pluralidad de dispositivos móviles, posiblemente mediante redes de comunicación inalámbrica diferentes, y acceso a una pluralidad de fuente de información a través de conexiones directas o basadas en red diferentes. Similarmente, cualquier red de comunicación inalámbrica y cualquier fuente de información pueden comunicar con múltiples servidores de datos.
Además, los sistemas y métodos descritos anteriormente y pueden ser puestos en práctica para transcodificar y analizar sintácticamente tipos de contenido distintos de XML. Similarmente, estos sistemas y métodos podrían ser adaptados a otros sistemas de codificación distintos del WBXML. Los beneficios y ventajas descritos anteriormente también podrían derivarse para tales esquemas de codificación como la codificación de longitud de tipo, por ejemplo.
Aunque servidores de datos y fuentes de información están descritos anteriormente de modo fundamental como sistema separados, también se ha considerado un sistema integrado que incorpora tanto el servidor de datos como la funcionalidad de la fuente de información. Tales sistemas integrados son particularmente ventajosos cuando la información confidencial o sensible de otro modo es proporcionada por una fuente de información. En este caso, no se requiere un servidor de datos intermedio para transcodificar información para su transmisión a un dispositivo móvil. Por ejemplo, información confidencial que es transcodificada y encriptada en la fuente de información permanece encriptada hasta que es desencriptada en el dispositivo móvil, proporcionando una seguridad de principio a final.

Claims (30)

1. Un servidor de datos (18) para el tratamiento de documentos de Lenguaje de Marcaje Extensible "XML", que comprende: una memoria caché (31) de libros de códigos para almacenar una pluralidad de libros de códigos para transcodificar documentos XML, comprendiendo cada libro de códigos un conjunto de tablas de búsqueda que establece una correspondencia entre etiquetas o atributos XML y sus equivalentes de testigos correspondientes; un sistema (30) de libros de códigos que incluye la memoria caché (31) de libros de códigos y que está configurado para recibir una solicitud para un libro de códigos solicitado desde un dispositivo móvil de comunicación inalámbrico (12) o el servidor de datos (18) y para determinar si el libro de códigos solicitado está almacenado en la memoria caché (31) de libros de códigos; y un generador (34) de libro de códigos configurado para generar el libro de códigos solicitado usando una fuente embebida o externa de definiciones de XML de dichos documentos XML cuando el libro de códigos solicitado no está almacenado en la memoria caché (31) de libros de códigos; en el que el sistema (30) de libros de códigos está además configurado para transmitir el libro de códigos solicitado en respuesta a la solicitud.
2. El servidor de datos (18) según la reivindicación 1ª, en el que el servidor de datos (18) comprende además un manipulador de conexión (26) para recibir una solicitud de definición de documento desde el generador (34) de libro de códigos, recuperar la definición de documento desde una fuente (23) de definición de documento, y devolver la definición de documento al generador (34) de libro de códigos.
3. El servidor de datos (18) según la reivindicación 1ª o 2ª, en el que el servidor de datos (18) comprende además: un sistema (28, 74) transcodificador de servidor de datos configurado para recibir documentos, y, para cada documento recibido, solicitar un libro de códigos correspondiente desde el sistema (30) de libros de códigos y para usar el libro de códigos para transcodificar el documento recibido.
4. El servidor de datos (18) según la reivindicación 3ª, que comprende además un manipulador de conexión (26) configurado para: recibir documentos desde una fuente de información (20) y proporcionar los documentos al sistema transcodificador (28, 74); recibir documentos transcodificados desde el sistema transcodificador (28, 74) y enviar los documentos transcodificados a un dispositivo (12) móvil de comunicación inalámbrica través de un transporte inalámbrico (22); y recibir solicitudes de conexión desde dicho dispositivo (12) móvil de comunicación inalámbrica a través del transporte inalámbrico (22), en el que los documentos son solicitados desde la fuente de información (20) en respuesta a las solicitudes de conexión.
5. El servidor de datos (18) según la reivindicación 3ª o 4ª, que comprende además un servlet (32) de libro de códigos configurado para recibir solicitudes de libro de códigos para libros de códigos procedentes de un dispositivo (12) móvil de comunicación inalámbrica a través de un transporte inalámbrico (22), solicitar el libro de códigos del sistema (30) de libro de códigos, y devolver los libros de códigos solicitados al dispositivo (12) móvil de comunicación inalámbrica a través del transporte inalámbrico (22).
6. El servidor de datos (18) según cualquiera de las reivindicaciones 1ª a 5ª, en el que el generador (34) de libro de códigos está configurado además para recuperar una definición de documento para un documento recibido y para generar un libro de códigos basado en la definición de documento cuando el sistema (30) de libros de códigos inicia el generador (34) de libro de códigos del servidor de datos.
7. Un método para el tratamiento de documentos de Lenguaje de Marcaje Extensible "XML" en un servidor de datos (18), que comprende las operaciones de: recibir un documento en el servidor de datos (18) desde una fuente de información (20); determinar si un libro de códigos para transcodificar el documento está almacenado en sistema (30) de libros de códigos acoplado al servidor de datos (18), comprendiendo cada libro de códigos un conjunto de tablas de búsqueda que establecen correspondencia entre etiquetas o atributos de XML y sus equivalentes de testigos correspondientes; generar el libro de códigos usando una fuente embebida o externa de definiciones XML de dichos documentos XML cuando el libro de códigos para transcodificar el documento no está almacenado en el sistema (30) de libros de códigos; y transcodificar el documento usando el libro de códigos para generar un documento transcodi-
ficado.
8. El método según la reivindicación 7ª, que comprende además la operación de trasmitir el documento transcodificado a un dispositivo (12) móvil de comunicación inalámbrica a través de una red inalámbrica (14) acoplada al servidor de datos (18).
9. El método según la reivindicación 8ª, que comprende las operaciones de: recibir una solicitud para el documento en el servidor de datos (18) desde el dispositivo (12) móvil de comunicación inalámbrica través de la red inalámbrica (14); y solicitar el documento desde la fuente de información (20).
10. El método según la reivindicación 7ª, que comprende además las operaciones de: trasmitir el documento transcodificado a un sistema receptor; transmitir el libro de códigos al sistema receptor cuando el documento no está asociado con una definición de documento referenciada; y transmitir el libro de códigos al sistema receptor en respuesta a una solicitud de libro de códigos desde el sistema receptor cuando el documento está asociado con una definición de documento referenciada o cuando el libro de códigos está almacenado en el sistema (30) de libros de códigos.
11. El método según la reivindicación 7ª, que comprende además las operaciones de: trasmitir el documento transcodificado a un sistema receptor; recibir una solicitud de libro de códigos para el libro de códigos desde el sistema receptor; y devolver el libro de códigos al sistema receptor en respuesta a la solicitud de libro de códigos.
12. El método según cualquiera de las reivindicaciones 7ª a 11ª, en el que el servidor de datos (18) comprende un primer servidor de datos (18), comprendiendo el método además las operaciones de: en el primer servidor de datos (18) almacenar el libro de códigos en una memoria o almacenamiento (31) de libros de códigos accesible a un segundo de servidor de datos; y en el segundo servidor de datos, recuperar el libro de códigos desde la memoria (31) de libros de códigos.
13. Un producto de programa de ordenador para el tratamiento de documentos en un servidor de datos (18), comprendiendo el producto del programa de ordenador un medio legible por ordenador que constituye una realización de los medios de código de programa ejecutables por un procesador del servidor de datos (18) para poner en práctica el método de cualquiera de las reivindicaciones 7ª a 12ª.
14. Un sistema (10) para el tratamiento de documentos de Lenguaje de Marcaje Extensible "XML" que comprende un dispositivo (12) móvil de comunicación inalámbrica y un servidor de datos (18), comprendiendo el dispositivo (12) móvil de comunicación inalámbrica: un analizador sintáctico (40); y un sistema (44) de libros de códigos accesible por el analizador sintáctico (40), comprendiendo el sistema (44) de libro de códigos una memoria caché (45) destinada a almacenar libros de códigos usados por el analizador sintáctico (40) para transcodificar un documento, estando destinado el sistema (44) de libros de códigos a buscar en la memoria caché (45) un libro de códigos solicitado, y para solicitar además el libro de códigos desde el servidor de datos (18) cuando el libro de códigos no está presente en la memoria caché (45 del dispositivo; y comprendiendo el servidor de datos (18): un transcodificador (28, 74); y un generador (34) de libro de códigos destinado a construir libros de códigos usando una fuente embebida o externa de definiciones de XML de dichos documentos XML para permitir que el servidor de datos (18) transcodifique documentos, siendo accesible el generador (34) de libro de códigos por un sistema (30) de libros de códigos del servidor de datos (18); y en el que el sistema (30) de libros de códigos del servidor de datos (18) es accesible tanto por el transcodificador (28, 74) como por el sistema (44) de libros de códigos del dispositivo móvil de comunicación inalámbrica, comprendiendo dicho sistema (30) de libros de códigos del servidor de datos una memoria caché (31) destinada a almacenar los libro de códigos usados por el sistema de transcodificación (28,74) para transcodificar documentos en el servidor de datos (18), estando destinado el sistema (30) de libros de códigos del servidor de datos a buscar en la memoria caché (31) un libro de códigos solicitado, y para solicitar además un libro de códigos del generador (34) de libro de códigos cuando el libro de códigos solicitado no está presente en la memoria caché (31) y en el que el libro de códigos comprende un conjunto de tablas de búsqueda que establecen correspondencia entre etiquetas o atributos XML y sus equivalentes de testigos correspondientes.
15. El sistema (10) de la reivindicación 14ª, en el que el analizador sintáctico (40) es una analizador sintáctico (40) de WBXML y la memoria caché (45) del dispositivo de comunicación móvil inalámbrica está destinada a almacenar libros de códigos usados por el analizador sintáctico (40) a fin de transformar un documento WBXML a un documento XML, y en el que el transcodificador (28, 74) es un transcodificador WBXML y la memoria caché (31) del servidor de datos está destinada a almacenar libros de códigos usados por el transcodificador (28,74) para transformar un documento XML a un documento WBXML.
16. El sistema (10) según la reivindicación 14ª o 15ª, en el que el analizador sintáctico (40) comprende: i) un analizador sintáctico de series configurado para analizar sintácticamente y transcodificar el documento transcodificado del servidor de datos; y/o ii) un analizador sintáctico binario configurado para analizar el documento transcodificado del servidor de datos en elementos analizados sintácticamente; y un manipulador de aplicación (42) asociado con la aplicación de software (38) sobre el dispositivo (12) móvil de comunicación inalámbrica y configurado para transcodificar los elementos analizados sintácticamente.
17. El sistema según cualquiera de las reivindicaciones 14ª a 16ª, en el que el documento transcodificado del servidor de datos comprende un documento XML Binario de Protocolo de Aplicación Inalámbrica (WAP) (WBXML).
18. Un método para el tratamiento de documentos de Lenguaje de Marcaje Extensible "XML" en un sistema (10) que comprende un dispositivo (12) móvil de comunicación inalámbrica y un servidor de datos (18), comprendiendo el método las operaciones de: en el dispositivo (12) móvil de comunicación inalámbrica: recibir un documento tratado desde el servidor de datos (18) en el que el documento tratado es generado por el servidor de datos (18) por transcodificación de un documento usando un libro de códigos, comprendiendo el libro de códigos una tabla de búsqueda que establece correspondencia entre etiquetas o atributos XML y sus equivalentes de testigos correspondientes; determinar si el libro de códigos usado para transcodificar el documento tratado está almacenado en el dispositivo (12) móvil de comunicación inalámbrica; solicitar el libro de códigos del servidor de datos (18) cuando el libro de códigos no está almacenado en el dispositivo (12) móvil de comunicación inalámbrica; recibir el libro de códigos desde el servidor de datos (18); y transcodificar el documento tratado usando libro de códigos para recuperar el documento; y en el servidor de datos (18): recibir una solicitud para el libro de códigos desde el dispositivo (12) móvil de comunicación inalámbrica; determinar si el libro de códigos está almacenado en un sistema (30) de libros de códigos acoplado al servidor de datos (18); y generar el libro de códigos usando una fuente embebida o externa de definiciones XML de dichos documentos XML cuando el libro de códigos para transcodificar el documento no está almacenado en el sistema (30) de libros de códigos; y transcodificar el documento usando el libro de códigos para generar un documento tratado para transmisión al dispositivo (12) móvil de comunicación
inalámbrica.
19. El método según la reivindicación 18ª, en el que el documento tratado comprende un identificador, y en el que la operación de determinar si el libro de códigos usado para transcodificar el documento tratado está almacenado en el dispositivo (12) móvil de comunicación inalámbrica comprende: determinar el identificador en el documento tratado; y determinar si un libro de códigos correspondiente al identificador está almacenado en el dispositivo (12) móvil de comunicación inalámbrica.
20. El método según la reivindicación 18ª o 19ª, que comprende además la operación de almacenar el libro de códigos recibido en el dispositivo (12) móvil de comunicación inalámbrica.
21. El método según cualquiera de las reivindicaciones 18ª a 20ª, en el que el servidor de datos (18) comprende un primer servidor de datos (18), comprendiendo el método además las operaciones de: en el primer servidor de datos (18), almacenar el libro de códigos en una memoria (31) de libros de códigos accesible a un segundo servidor de datos; y en el segundo servidor de datos, recuperar el libro de códigos desde la memoria (31) de libros de códigos.
22. El método según la reivindicación 21ª, comprendiendo dicho método además las operaciones de: solicitar el libro de códigos del segundo servidor de datos cuando el libro de códigos no está almacenado en el dispositivo (12) móvil de comunicación inalámbrica; y recibir el libro de códigos desde el segundo servidor de datos.
23. El método según cualquiera las reivindicaciones 18ª a 22ª, que comprende las operaciones de: generar un documento en el dispositivo (12) móvil de comunicación inalámbrica; determinar si el documento está asociado con una definición de documento referenciada; cuando el documento está asociado con una definición referenciada: determinar si un libro de códigos para la definición referenciada está almacenado en la memoria caché (45) de libros de códigos; recuperar el libro de códigos desde la memoria caché (45) de libros de códigos cuando el libro de códigos está almacenado en la memoria caché (45) de libros de códigos; solicitar el libro de códigos desde un servidor de datos (18) y recibir el libro de códigos desde el servidor de datos (18) cuando el libro de códigos no está almacenado en la memoria caché (45) de libros de códigos; transcodificar el documento usando el libro de códigos para generar un documento transcodificado; y transmitir el documento transcodificado a través de una red inalámbrica (14); y de otro modo cuando el documento no está asociado con una definición referenciada: transcodificar el documento; generar un libro de códigos cuando el documento es transcodificado; y transmitir el libro de códigos con el documento transcodificado a través de la red inalámbrica (14).
24. El método según la reivindicación 23ª, que comprende además la operación de transmitir el libro de códigos a un receptor en respuesta a una solicitud desde el receptor.
25. Un dispositivo (12) móvil de comunicación inalámbrica para el tratamiento de documentos de Lenguaje de Marcaje Extensible "XML" para transmisión a través de una red inalámbrica (14), comprendiendo el dispositivo (12): medios para generar un documento en el dispositivo móvil de comunicación inalámbrica; medios para determinar si el documento está asociado con una definición de documento referenciada; y medios, operables si el documento está asociado con una definición referenciada, para: determinar si un libro de códigos para transcodificar documentos XML para la definición referenciada está almacenado en la memoria caché (45) de libros de códigos; recuperar el libro de códigos a partir de la memoria caché (45) de libros de códigos si el libro de códigos está almacenado en una memoria caché (45) de libros de códigos; y solicitar el libro de códigos desde el servidor de datos (18) de la reivindicación 1ª y recibir el libro de códigos desde el servidor de datos (18) si el libro de códigos no está almacenado en la memoria caché (45) de libros de códigos, en el que el libro de códigos comprende un conjunto de tablas de búsqueda que establece correspondencia entre etiquetas o atributos XML y sus equivalentes de testigos correspondientes.
26. El dispositivo móvil de comunicación inalámbrica según la reivindicación 25ª en el que el dispositivo comprende además medios, operables si el documento está asociado con una definición referenciada, para transcodificar el documento usando el libro de códigos para generar un documento transcodificado; y transmitir el documento transcodificado a través de la red inalámbrica (14).
27. El dispositivo móvil de comunicación inalámbrica según la reivindicación 26ª en el que el dispositivo comprende además medios, operables si el documento está asociado con una definición referenciada, para: transcodificar el documento; generar un libro de códigos cuando el documento es transcodificado; y transmitir el libro de códigos con el documento transcodificado a través de la red inalámbrica (14).
28. El dispositivo (12) móvil de comunicación inalámbrica según cualquiera de las reivindicaciones 25ª a 27ª, en el que el dispositivo (12) está además configurado para transmitir el libro de códigos a un receptor en respuesta a una solicitud procedente del receptor.
29. Un método de tratamiento de documentos de Lenguaje de Marcaje Extensible "XML" en un dispositivo (12) móvil de comunicación inalámbrica para transmisión a través de una red inalámbrica (14) comprendiendo el método las operaciones de: generar un documento en el dispositivo móvil de comunicación inalámbrica; determinar si el documento está asociado con una definición de documento referenciada; y, si el documento está asociado con una definición referenciada, determinar si un libro de códigos para transcodificar documentos XML para la definición referenciada está almacenado en la memoria caché (45) de libros de códigos; recuperar el libro de códigos desde la memoria caché (45) de libros de códigos si el libro de códigos está almacenado en la memoria caché (45) de libros de códigos; solicitar el libro de códigos del servidor de datos (18) de la reivindicación 1ª y recibir el libro de códigos desde el servidor de datos (18) si el libro de códigos no está almacenado en la memoria caché (45) de libros de códigos, en el que el libro de códigos comprende un conjunto de tablas de búsqueda que establecen correspondencia entre etiquetas o atributos XML y sus equivalentes de testigos correspondientes.
30. Un producto de programa de ordenador para tratar documentos en un dispositivo (12) móvil de comunicación inalámbrica, comprendiendo el producto de programa de ordenador un medio legible por ordenador que pone en práctica los medios del código de programa ejecutable por un procesador del dispositivo (12) móvil de comunicación inalámbrica para poner en práctica el método de la reivindicación 29ª.
ES02779081T 2001-11-23 2002-11-21 Sistema y metodo para tratar o procesar documentos en lenguaje de marcaje extensible (xml). Expired - Lifetime ES2326073T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US33199801P 2001-11-23 2001-11-23
US331998P 2001-11-23

Publications (1)

Publication Number Publication Date
ES2326073T3 true ES2326073T3 (es) 2009-09-30

Family

ID=23296257

Family Applications (1)

Application Number Title Priority Date Filing Date
ES02779081T Expired - Lifetime ES2326073T3 (es) 2001-11-23 2002-11-21 Sistema y metodo para tratar o procesar documentos en lenguaje de marcaje extensible (xml).

Country Status (12)

Country Link
US (3) US7636565B2 (es)
EP (2) EP1451719B1 (es)
JP (2) JP4286143B2 (es)
KR (2) KR101026210B1 (es)
CN (1) CN100390787C (es)
AT (1) ATE431593T1 (es)
AU (1) AU2002342483A1 (es)
CA (1) CA2467782C (es)
DE (1) DE60232359D1 (es)
ES (1) ES2326073T3 (es)
MX (1) MXPA04004909A (es)
WO (1) WO2003046757A2 (es)

Families Citing this family (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7865528B2 (en) * 2001-01-09 2011-01-04 Nextair Corporation Software, devices and methods facilitating execution of server-side applications at mobile devices
US7546298B2 (en) * 2001-01-09 2009-06-09 Nextair Corporation Software, devices and methods facilitating execution of server-side applications at mobile devices
WO2003048916A1 (en) * 2001-12-07 2003-06-12 Ntt Docomo, Inc. Mobile communication terminal and display control method
US7650576B2 (en) * 2002-03-07 2010-01-19 Business Objects Americas Method and system for creating graphical and interactive representations of input and output data
US7412495B2 (en) * 2002-04-26 2008-08-12 Sun Microsystems, Inc. Method, system, and article of manufacture for a server side application
US7809679B2 (en) * 2003-03-03 2010-10-05 Fisher-Rosemount Systems, Inc. Distributed data access methods and apparatus for process control systems
US20040209610A1 (en) * 2003-04-17 2004-10-21 Adwankar Sandeep M. Method and apparatus for managing wireless terminals
CN1853167B (zh) * 2003-09-17 2010-07-14 捷讯研究有限公司 具有可扩展预配置的动态内容处理的系统和方法
DE602004030469D1 (de) * 2003-10-07 2011-01-20 Nokia Corp Erweiterbarer rahmen zur behandlung verschiedener markup-sprachen-parser und -generatoren in einer datenverarbeitungseinrichtung
AU2004297923B2 (en) * 2003-11-26 2008-07-10 Cisco Technology, Inc. Method and apparatus to inline encryption and decryption for a wireless station
US6954450B2 (en) 2003-11-26 2005-10-11 Cisco Technology, Inc. Method and apparatus to provide data streaming over a network connection in a wireless MAC processor
EP1569109A1 (en) * 2004-02-27 2005-08-31 Research In Motion Limited A system and method for mapping between message and data domains using a metadata defined mapping
AU2005222680B2 (en) 2004-03-23 2010-12-09 Nds Limited Optimally adapting multimedia content for mobile subscriber device playback
GB2413462A (en) * 2004-04-23 2005-10-26 Matsushita Electric Industrial Co Ltd Duplicate Address Detection Optimisation
GB2413461B (en) * 2004-04-23 2006-05-10 Matsushita Electric Industrial Co Ltd Crytographic optimisation for duplicate address detection
WO2005111824A2 (en) * 2004-05-19 2005-11-24 Silverkite Inc. Method and system for processing of text content
US7707498B2 (en) * 2004-09-30 2010-04-27 Microsoft Corporation Specific type content manager in an electronic document
US7559020B2 (en) * 2004-12-30 2009-07-07 Microsoft Corporation Methods and systems for preserving unknown markup in a strongly typed environment
US7617234B2 (en) * 2005-01-06 2009-11-10 Microsoft Corporation XML schema for binding data
US7945590B2 (en) * 2005-01-06 2011-05-17 Microsoft Corporation Programmability for binding data
US7730394B2 (en) * 2005-01-06 2010-06-01 Microsoft Corporation Data binding in a word-processing application
CA2598317C (en) * 2005-02-22 2012-01-31 Nextair Corporation Mobile device having extensible software for presenting server-side applications, software and methods
US7752224B2 (en) 2005-02-25 2010-07-06 Microsoft Corporation Programmability for XML data store for documents
US7668873B2 (en) * 2005-02-25 2010-02-23 Microsoft Corporation Data store for software application documents
US7996443B2 (en) * 2005-02-28 2011-08-09 Microsoft Corporation Schema grammar and compilation
US7756839B2 (en) 2005-03-31 2010-07-13 Microsoft Corporation Version tolerant serialization
US7634515B2 (en) * 2005-05-13 2009-12-15 Microsoft Corporation Data model and schema evolution
US7895578B2 (en) * 2005-06-13 2011-02-22 Business Objects Software Ltd. Apparatus and method for using connector components to provide connectivity to interactive graphics representative of input and output data
US7953696B2 (en) * 2005-09-09 2011-05-31 Microsoft Corporation Real-time synchronization of XML data between applications
CN100399335C (zh) * 2005-11-15 2008-07-02 李利鹏 把源文档转换成目标网页文件的方法
KR20070056442A (ko) * 2005-11-29 2007-06-04 삼성전자주식회사 웹 브라우저가 없는 장치를 위한 웹 서비스 제공 시스템 및방법
CN1859379B (zh) * 2005-12-07 2011-02-09 华为技术有限公司 一种可扩展标记语言文档管理方法及系统
KR100825736B1 (ko) * 2005-12-07 2008-04-29 한국전자통신연구원 무선 xml 전자 서명 서비스 제공 장치 및 그 방법
ATE475234T1 (de) 2006-02-10 2010-08-15 Huawei Tech Co Ltd Verfahren und system zur verwaltung eines xml- dokuments
CN1859402B (zh) * 2006-02-10 2010-05-12 华为技术有限公司 Xml文档管理系统及其方法与xml文档访问控制方法
US20070255714A1 (en) * 2006-05-01 2007-11-01 Nokia Corporation XML document permission control with delegation and multiple user identifications
KR101346734B1 (ko) * 2006-05-12 2014-01-03 삼성전자주식회사 디지털 저작권 관리를 위한 다중 인증서 철회 목록 지원방법 및 장치
US20070288471A1 (en) * 2006-06-09 2007-12-13 Nextair Corporation Remote storage of a markup language document for access by sets of wireless computing devices
US20080046431A1 (en) * 2006-08-15 2008-02-21 Mcgough John David Document processing method
US8037179B2 (en) * 2006-11-02 2011-10-11 Storz Endoskop Produktions Gmbh Device control system employing extensible markup language for defining information resources
US9953103B2 (en) * 2006-11-16 2018-04-24 Oracle International Corporation Client processing for binary XML in a database system
US7886223B2 (en) * 2006-11-17 2011-02-08 International Business Machines Corporation Generating a statistical tree for encoding/decoding an XML document
US7801926B2 (en) 2006-11-22 2010-09-21 Microsoft Corporation Programmable logic and constraints for a dynamically typed storage system
JP4898405B2 (ja) * 2006-12-01 2012-03-14 キヤノン株式会社 文書データ処理方法、文書データ作成装置、及び文書データ処理装置
US8832822B2 (en) * 2007-01-19 2014-09-09 Kryptiq Corporation Smart identifiers
US20080208805A1 (en) * 2007-02-28 2008-08-28 Business Objects, S.A. Apparatus and method for remote querying of data sources
JP5032154B2 (ja) * 2007-03-02 2012-09-26 株式会社東芝 過渡時燃料健全性評価システムおよび過渡時燃料健全性評価方法
US7917515B1 (en) * 2007-03-26 2011-03-29 Lsi Corporation System and method of accelerating processing of streaming data
US8595616B2 (en) * 2007-05-31 2013-11-26 Bank Of America Corporation Data conversion environment
US7933933B2 (en) * 2007-07-30 2011-04-26 Oracle International Corporation Fast path loading of XML data
US20090063530A1 (en) * 2007-09-04 2009-03-05 Lg Telecom Ltd. System and method for mobile web service
KR101424261B1 (ko) * 2007-09-04 2014-07-31 주식회사 엘지유플러스 모바일 웹 서비스를 제공하는 단말기 및 상기 단말기의동작 방법
FR2927711B1 (fr) * 2008-02-19 2010-10-08 B2Boost Com Dispositif d'echange de documents entre deux parties a travers un reseau
US8145608B2 (en) * 2008-04-28 2012-03-27 Infosys Technologies Limited Method and system for rapidly processing and transporting large XML files
US7925643B2 (en) * 2008-06-08 2011-04-12 International Business Machines Corporation Encoding and decoding of XML document using statistical tree representing XSD defining XML document
WO2009153322A1 (en) * 2008-06-18 2009-12-23 Thomson Licensing Method for preparation of a digital document for the display of said document and the navigation within said document
CN101668000B (zh) * 2008-09-04 2012-11-07 易搜比控股公司 于网络浏览器驱动可扩展标示语言应用程序的方法与系统
CN101902489B (zh) * 2009-06-01 2013-04-17 华为技术有限公司 一种消息发送方法、处理方法、客户端、路由器和系统
US20110093510A1 (en) * 2009-10-20 2011-04-21 Roche Diagnostics Operations, Inc. Methods and systems for serially transmitting records in xml format
US8676966B2 (en) * 2009-12-28 2014-03-18 International Business Machines Corporation Detecting and monitoring server side states during web application scanning
US9165086B2 (en) * 2010-01-20 2015-10-20 Oracle International Corporation Hybrid binary XML storage model for efficient XML processing
US9524513B2 (en) 2010-03-02 2016-12-20 Obelus Media Inc. System and method of advertising for use on internet and/or digital networking capable devices
US8566817B2 (en) * 2010-03-02 2013-10-22 Obelus Media Inc. System and method of advertising for use on internet and/or digital networking capable devices
US9356991B2 (en) 2010-05-10 2016-05-31 Litera Technology Llc Systems and methods for a bidirectional multi-function communication module
US20120005610A1 (en) * 2010-06-30 2012-01-05 Dirk Michael Schulze Methods, apparatus, systems and computer readable mediums for use in transfering information to and/or from user devices
US8516362B2 (en) * 2010-09-14 2013-08-20 Usablenet Inc. Methods for extending a document transformation server to process multiple documents from multiple sites and devices thereof
US8856540B1 (en) * 2010-12-29 2014-10-07 Amazon Technologies, Inc. Customized ID generation
US10120847B2 (en) * 2012-01-27 2018-11-06 Usablenet Inc. Methods for transforming requests for web content and devices thereof
CA2899011C (en) * 2013-01-30 2021-06-29 Kebron DEJENE Video signature system and method
US10616376B2 (en) * 2016-07-20 2020-04-07 Vivint, Inc. Communications protocol
CN107977236B (zh) * 2017-12-21 2020-11-13 上海智臻智能网络科技股份有限公司 问答系统的生成方法、终端设备、存储介质及问答系统
US11144568B2 (en) * 2019-04-24 2021-10-12 EMC IP Holding Company LLC System and method for management of data in distributed systems
US11893818B2 (en) 2021-07-21 2024-02-06 Abbyy Development Inc. Optimization and use of codebooks for document analysis

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05204800A (ja) * 1992-01-30 1993-08-13 Matsushita Electric Ind Co Ltd データ通信装置
JP3325354B2 (ja) * 1993-09-07 2002-09-17 株式会社リコー 感熱製版装置
US5544320A (en) 1993-01-08 1996-08-06 Konrad; Allan M. Remote information service access system based on a client-server-service model
JPH07244620A (ja) * 1994-03-04 1995-09-19 Hitachi Inf Syst Ltd コンソールメッセージの伝送方法およびそのためのシステム
JPH08190544A (ja) * 1995-01-10 1996-07-23 Mitsubishi Electric Corp 分散処理システム
US5724556A (en) 1995-04-14 1998-03-03 Oracle Corporation Method and apparatus for defining and configuring modules of data objects and programs in a distributed computer system
US5706434A (en) 1995-07-06 1998-01-06 Electric Classifieds, Inc. Integrated request-response system and method generating responses to request objects formatted according to various communication protocols
US5987181A (en) 1995-10-12 1999-11-16 Sharp Kabushiki Kaisha Coding and decoding apparatus which transmits and receives tool information for constructing decoding scheme
JP3306270B2 (ja) * 1995-10-12 2002-07-24 シャープ株式会社 データ復号装置
US5918013A (en) * 1996-06-03 1999-06-29 Webtv Networks, Inc. Method of transcoding documents in a network environment using a proxy server
US5768510A (en) 1996-07-01 1998-06-16 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server application enabler system
WO1998041377A1 (en) 1997-03-20 1998-09-24 Toter Incorporated Continuous mold temperature monitoring system and method for rotational mold
US6421733B1 (en) * 1997-03-25 2002-07-16 Intel Corporation System for dynamically transcoding data transmitted between computers
US6081629A (en) * 1997-09-17 2000-06-27 Browning; Denton R. Handheld scanner and accompanying remote access agent
JP3337633B2 (ja) * 1997-12-03 2002-10-21 富士通株式会社 データ圧縮方法及びデータ復元方法並びにデータ圧縮プログラム又はデータ復元プログラムを記録したコンピュータ読み取り可能な記録媒体
EP0928070A3 (en) * 1997-12-29 2000-11-08 Phone.Com Inc. Compression of documents with markup language that preserves syntactical structure
JPH11272655A (ja) * 1998-03-20 1999-10-08 Nippon Telegr & Teleph Corp <Ntt> 日本語多重表記文書変換方法及び装置及び日本語多重表記文書変換プログラムを格納した記憶媒体
US20020087655A1 (en) * 1999-01-27 2002-07-04 Thomas E. Bridgman Information system for mobile users
US6647260B2 (en) * 1999-04-09 2003-11-11 Openwave Systems Inc. Method and system facilitating web based provisioning of two-way mobile communications devices
US6523062B1 (en) * 1999-06-29 2003-02-18 International Business Machines Corporation Facilitating memory constrained client devices by employing deck reduction techniques
JP2001084183A (ja) 1999-09-17 2001-03-30 Nec Corp データ変換システム
US7020685B1 (en) * 1999-10-08 2006-03-28 Openwave Systems Inc. Method and apparatus for providing internet content to SMS-based wireless devices
US6715129B1 (en) * 1999-10-13 2004-03-30 International Business Machines Corporation Achieving application-specific document content by transcoding using Java Server Pages
GB9925613D0 (en) * 1999-10-29 1999-12-29 Motorola Ltd Mobile station radio telecommunication system and method for operation radio telecommunication system
JP3368883B2 (ja) * 2000-02-04 2003-01-20 インターナショナル・ビジネス・マシーンズ・コーポレーション データ圧縮装置、データベースシステム、データ通信システム、データ圧縮方法、記憶媒体及びプログラム伝送装置
JP3642004B2 (ja) * 2000-05-22 2005-04-27 日本電気株式会社 中継装置、移動体無線通信システム、その障害通知方法、及びその障害通知プログラムを記録した記録媒体
US7069440B2 (en) * 2000-06-09 2006-06-27 Northrop Grumman Corporation Technique for obtaining a single sign-on certificate from a foreign PKI system using an existing strong authentication PKI system
US20020120780A1 (en) * 2000-07-11 2002-08-29 Sony Corporation Two-staged mapping for application specific markup and binary encoding
AU2001285023A1 (en) * 2000-08-17 2002-02-25 Mobileum, Inc. Method and system for wireless voice channel/data channel integration
TW512640B (en) * 2000-08-25 2002-12-01 Phone Inc W Mobile opinion polling system and method
US6985719B2 (en) * 2000-12-21 2006-01-10 Nokia, Inc. Secure wireless backup mechanism
US20020087596A1 (en) * 2000-12-29 2002-07-04 Steve Lewontin Compact tree representation of markup languages
US6988100B2 (en) * 2001-02-01 2006-01-17 International Business Machines Corporation Method and system for extending the performance of a web crawler
US7020721B1 (en) * 2001-04-02 2006-03-28 Palmsource, Inc. Extensible transcoder annotation for transcoding proxy servers
US6934912B2 (en) * 2001-06-04 2005-08-23 Hewlett-Packard Development Company, L.P. System and method for providing a history list of existing imaging compositions
US20020198964A1 (en) * 2001-06-26 2002-12-26 International Business Machines Corporation Method and system for wireless remote monitoring and control of a manufacturing execution system
KR20010088529A (ko) * 2001-08-02 2001-09-28 정회경 전자문서 편집/변환처리장치와 그 방법
US6944665B2 (en) * 2001-09-24 2005-09-13 International Business Machines Corporation Method and system for delivering accessibility using a distributed environment
US6880014B2 (en) * 2001-09-24 2005-04-12 International Business Machines Corporation Method and system of use of transcode directives for distributed control of transcoding servers
US6711740B1 (en) * 2002-01-17 2004-03-23 Cisco Technology, Inc. Generic code book compression for XML based application programming interfaces
US20040150676A1 (en) * 2002-03-25 2004-08-05 Gottfurcht Elliot A. Apparatus and method for simple wide-area network navigation
US6978316B2 (en) * 2002-03-27 2005-12-20 International Business Machines Corporation Messaging system and method with transcoder filtering of baseline message representations
US6895719B1 (en) * 2002-08-22 2005-05-24 Mark S. Herbert Floor-mounted disposable system with moveable dust loosening rib insert
US7570943B2 (en) * 2002-08-29 2009-08-04 Nokia Corporation System and method for providing context sensitive recommendations to digital services
KR100463835B1 (ko) * 2002-10-17 2004-12-29 한국전자통신연구원 무선 단말기에서의 웹 컨텐츠 변환을 위한 인덱스 추출시스템 및 그 방법
US20040203939A1 (en) * 2002-11-07 2004-10-14 Wei Li Character transcoding method for mobile phones

Also Published As

Publication number Publication date
US20100057888A1 (en) 2010-03-04
DE60232359D1 (de) 2009-06-25
JP4286143B2 (ja) 2009-06-24
WO2003046757A2 (en) 2003-06-05
US7636565B2 (en) 2009-12-22
US20050014494A1 (en) 2005-01-20
CN100390787C (zh) 2008-05-28
JP2008269631A (ja) 2008-11-06
ATE431593T1 (de) 2009-05-15
JP2005510804A (ja) 2005-04-21
US8010097B2 (en) 2011-08-30
KR20070064684A (ko) 2007-06-21
US7904073B2 (en) 2011-03-08
CN1618066A (zh) 2005-05-18
CA2467782A1 (en) 2003-06-05
CA2467782C (en) 2011-05-10
EP2031525A1 (en) 2009-03-04
HK1069895A1 (en) 2005-08-26
EP2031525B1 (en) 2015-01-28
EP1451719B1 (en) 2009-05-13
KR101026210B1 (ko) 2011-03-31
US20100050072A1 (en) 2010-02-25
MXPA04004909A (es) 2004-09-03
KR20040066134A (ko) 2004-07-23
EP1451719A2 (en) 2004-09-01
AU2002342483A1 (en) 2003-06-10
WO2003046757A3 (en) 2004-03-25

Similar Documents

Publication Publication Date Title
ES2326073T3 (es) Sistema y metodo para tratar o procesar documentos en lenguaje de marcaje extensible (xml).
US11729294B2 (en) Processing DNS queries to identify pre-processing information
US20060031763A1 (en) System and method relating to access of information
US10601897B2 (en) Transfer of files with arrays of strings in SOAP messages
TWI377819B (en) System and method for history driven optimization of web services communication
JP2005510804A5 (es)
JP4252229B2 (ja) 情報交換システム、情報通信端末、情報交換方法、プログラム、および、記録媒体
US20240259215A1 (en) Dynamic loading method and apparatus for signature algorithm, and device and storage medium
Apte et al. Wireless SOAP: optimizations for mobile wireless web services
HK1069895B (en) System and method for processing extensible markup language (xml) documents
Berzosa Macho A context-and template-based data compression approach to improve resource-constrained IoT systems interoperability.
US20060235978A1 (en) System and method for connecting wireless applications to heterogeneous backend servers via a gateway server
JP4830558B2 (ja) 構造化文書符号化装置および構造化文書復号化装置
Allen et al. MIME object definitions for the common indexing protocol (CIP)
Macho for the degree of Doctor of Philosophy
Kangasharju An XML Messaging Service for Mobile Devices
Dolan SOAP in a Mobile Environment
Daly Distributed Slide Show Tool
Tsai Device profiling analysis in Device-Aware Network
HK1096226A1 (en) System and method for connecting applications to heterogeneous backend servers via a gateway server