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 PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9577—Optimising the visualization of content, e.g. distillation of HTML documents
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/986—Document 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.
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.
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.
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.
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.
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.
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.
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.
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.
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ª.
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)
| 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)
| 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 |
-
2002
- 2002-11-21 ES ES02779081T patent/ES2326073T3/es not_active Expired - Lifetime
- 2002-11-21 EP EP02779081A patent/EP1451719B1/en not_active Expired - Lifetime
- 2002-11-21 EP EP08168732.9A patent/EP2031525B1/en not_active Expired - Lifetime
- 2002-11-21 AT AT02779081T patent/ATE431593T1/de not_active IP Right Cessation
- 2002-11-21 MX MXPA04004909A patent/MXPA04004909A/es active IP Right Grant
- 2002-11-21 CN CNB028275071A patent/CN100390787C/zh not_active Expired - Lifetime
- 2002-11-21 DE DE60232359T patent/DE60232359D1/de not_active Expired - Lifetime
- 2002-11-21 KR KR1020047007872A patent/KR101026210B1/ko not_active Expired - Lifetime
- 2002-11-21 JP JP2003548120A patent/JP4286143B2/ja not_active Expired - Lifetime
- 2002-11-21 AU AU2002342483A patent/AU2002342483A1/en not_active Abandoned
- 2002-11-21 CA CA2467782A patent/CA2467782C/en not_active Expired - Lifetime
- 2002-11-21 KR KR1020077012212A patent/KR20070064684A/ko not_active Ceased
- 2002-11-21 WO PCT/CA2002/001778 patent/WO2003046757A2/en not_active Ceased
-
2004
- 2004-05-21 US US10/849,833 patent/US7636565B2/en not_active Expired - Lifetime
-
2008
- 2008-05-23 JP JP2008136015A patent/JP2008269631A/ja active Pending
-
2009
- 2009-11-10 US US12/615,658 patent/US8010097B2/en not_active Expired - Lifetime
- 2009-11-10 US US12/615,608 patent/US7904073B2/en not_active Expired - Lifetime
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 |