ES2256292T3 - Servidor de red. - Google Patents

Servidor de red.

Info

Publication number
ES2256292T3
ES2256292T3 ES01967547T ES01967547T ES2256292T3 ES 2256292 T3 ES2256292 T3 ES 2256292T3 ES 01967547 T ES01967547 T ES 01967547T ES 01967547 T ES01967547 T ES 01967547T ES 2256292 T3 ES2256292 T3 ES 2256292T3
Authority
ES
Spain
Prior art keywords
code
data
information
procedure
web page
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
ES01967547T
Other languages
English (en)
Inventor
Mark Alexander Watson
Jonathan Rhys Tyack Lewis
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Volantis Systems Ltd
Original Assignee
Volantis Systems Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Volantis Systems Ltd filed Critical Volantis Systems Ltd
Application granted granted Critical
Publication of ES2256292T3 publication Critical patent/ES2256292T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9577Optimising the visualization of content, e.g. distillation of HTML documents
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Glass Compositions (AREA)
  • Saccharide Compounds (AREA)
  • Diaphragms For Electromechanical Transducers (AREA)
  • Paper (AREA)

Abstract

Un aparato (1) para responder a un mensaje de petición transmitido desde un dispositivo (2) de usuario remoto de información de página web mediante la generación de código de página web capaz de ser interpretado por el dispositivo de usuario para visualizar una o más páginas web y para emitir un mensaje de respuesta que comprenda el código de página web, el aparato comprende: medios (29, 20) de extracción para extraer del mensaje de petición la información que determina un identificador de tipo de dispositivo que identifica el dispositivo de usuario remoto como perteneciente a un conjunto de tipos posibles de dispositivos que tienen diferentes atributos técnicos. un procesador (20) para controlar el motor (21) generador de código para generar el código de página web. primeros medios (22, 23) de memoria para almacenar la información de página web como un documento de contenido que comprende un conjunto de instrucciones (42) escritas en un lenguaje de script para generar el código de página web y segundos medios de memoria (22, 25) para almacenar información relativa al dispositivo para cada uno del conjunto de los diferentes tipos de dispositivo; en donde el motor generador de código comprende medios de interpretación (40, 41, 44) para interpretar las instrucciones con referencia a la información dependiente del dispositivo seleccionado que se corresponde con el identificador de tipo de dispositivo, el motor generador de código se controla de esta manera para generar código de página web en una forma en la cual el código de página web se adapta al dispositivo de usuario remoto.

Description

Servidor de red.
Esta invención se refiere a servidores web y en particular, aunque no exclusivamente, a un servidor web para responder a los mensajes de petición recibidos a través de Internet desde dispositivos de usuario remotos y a un servidor web capaz de responder con código de página web adaptado para satisfacer las posibilidades del dispositivo de usuario remoto.
El uso de Internet ha florecido recientemente hasta el extremo en el que cada negocio tiene su propio sitio web para suministrar información y servicios de compra en línea. A la mayoría de tales sitios web se accedía en el pasado mediante dispositivos de usuario remotos que eran PCs (ordenadores personales) que utilizaban una de un número relativamente pequeño de las aplicaciones disponibles de navegación de forma que se solicitaba a los sitios web la emisión de un código de página web de formato simple para ser visionadas en el dispositivo de usuario.
Más recientemente, se ha producido la proliferación de nuevos dispositivos que permiten el acceso a Internet tales como PDA (Asistentes digitales personales), teléfonos móviles con servicio WAP (Protocolo de aplicaciones inalámbricas), IDTV (televisión digital interactiva), postes de información, juegos, consolas y electrodomésticos. Las capacidades de estos dispositivos varían considerablemente de un dispositivo a otro, tanto en su función de visualización en términos de tamaño de pantalla y capacidad de procesamiento de colores, ancho de banda y memoria disponible como con respecto a las variables asociadas con la comunicación que incluyen el formato de las imágenes, el protocolo de comunicación y el lenguaje de señalamiento.
Para que los usuarios de estos diferentes dispositivos puedan acceder a sus sitios web, muchas empresas han recurrido a la construcción de servidores web separados para dar servicio a cada tipo de dispositivo. Esto sin embargo, crea problemas de gestión de datos ya que un cliente puede desear la posibilidad de utilizar diferentes dispositivos para comunicar con el comerciante utilizando por ejemplo las mismas características de cuenta, el comerciante necesitará entonces una gran cantidad de diferentes aplicaciones de servidor web que tendrá que gestionar y actualizar cuando sea necesario con material nuevo o adicional.
Una aproximación alternativa ha sido suministrar un puerto separado en un sitio web para el acceso de un tipo alternativo de dispositivo de usuario, el puerto separado obtiene el código de página web necesario traduciendo el código original de página web que se utiliza en un PC, típicamente en formato de lenguaje de señalamiento de hipertexto (HTML), a otros formatos de dispositivo tales como el lenguaje de señalamiento inalámbrico (WML) utilizado por los teléfonos WAP. Dichas soluciones sin embargo fallan generalmente en el suministro de una presentación óptima para el usuario del dispositivo. El proceso de traducción (a menudo denominado "transcodificación") es difícil de estructurar. Por ejemplo, es necesario proporcionar una selección apropiada de la información que deberá omitirse en la pantalla del dispositivo que tenga una menor capacidad que la del PC. Esta dificultad se presenta cuando es necesario actualizar el código original de la página web para PC ya que el proceso de transcodificación también debe ser reestructurado.
También se ha propuesto que los protocolos utilizados para acceder a la información de las páginas web a través de Internet deberían unificarse mediante la adopción de estándares para superar los problemas resultantes de dispositivos de usuarios remotos que tienen diferente posibilidades. Se ha propuesto el uso del lenguaje de señalamiento extensible (XML) como formato para el código de páginas web. El XML es un lenguaje de señalamiento para definir contenidos y puede usarse con XSL (lenguaje de plantillas extensible) utilizado para transformar documentos XML con plantillas en el punto de presentación. Sin embargo, dichos estándares no se han adoptado y esta solución no se contempla como óptima para todos los tipos de dispositivos.
El documento WO-A-9957657 describe un servidor Proxy a través del cual un dispositivo de cliente puede acceder a páginas web disponibles en servidores web a través de Internet. El servidor Proxy busca y carga las páginas web y reduce el contenido de datos antes de la transmisión al dispositivo de cliente basándose en las características del dispositivo cliente.
La presente invención busca suministrar un servidor web mejorado con capacidad multicanal capaz de dar servicios a diferentes tipos de dispositivos de usuario remotos.
Aspectos de al presente invención se presentan en las reivindicaciones adjuntas.
De acuerdo con una realización se presenta un aparato para responder a un mensaje de petición, enviado desde un dispositivo de usuario remoto, de información de página web generando código de página web representativo de una o más páginas para ser visualizadas en el dispositivo de usuario y emitiendo un mensaje de respuesta que comprende el código de página web.
Preferiblemente el aparato comprende medios de extracción para extraer del mensaje de petición un identificador de tipo de dispositivo que identifica el dispositivo de usuario remoto como perteneciente a un conjunto de tipos posibles de dispositivos que tienen diferentes capacidades.
El aparato tiene preferiblemente un procesador para operar un motor generador de código para generar el código de página web, un primer medio de memoria para almacenar la información de página web como un conjunto de instrucciones y un segundo medio de memoria para almacenar la información dependiente del dispositivo para cada uno de los diferentes tipos de dispositivos para adaptar el código de página web a las posibilidades del tipo del dispositivo.
El motor generador de código preferiblemente comprende un medio de interpretación para interpretar las instrucciones con referencia a la información dependiente del dispositivo seleccionado que se corresponde con el identificador de tipo de dispositivo, un medio generador de código que se opera para generar el código de página web en una forma en la que el código de página web se adapta a las posibilidades del dispositivo de usuario remoto.
Ahora se describirán realizaciones preferidas de la presente invención solamente a modo de ejemplo y con referencia a los dibujos adjuntos en los que:
La figura 1 es una visión general esquemática de una conexión entre un servidor web y los dispositivos de usuario remotos.
La figura 2A es un diagrama esquemático del servidor web de la figura 1.
La figura 2B es un diagrama funcional para ilustrar el flujo de señales en el servidor en de la figura 2A.
La figura 3 es un diagrama esquemático de las tablas de directivas para su uso con el servidor web de la figura 2.
La figura 4 es un diagrama esquemático que ilustra el funcionamiento del motor generador de código.
La figura 5A ilustra un diseño para un PC.
La figura 5B ilustra un diseño para una televisión.
La figura 5C ilustra un diseño para una PDA.
La figura 5D ilustra un diseño para un teléfono WAP.
La figura 5E ilustra un diseño para un dispositivo que tiene una pantalla grande.
La figura 5F ilustra la visualización de fragmentos en un dispositivo que tiene una pantalla pequeña.
La figura 5G ilustra una estructura de menús múltiples en un dispositivo de pantalla grande.
La figura 5H ilustra la relación entre segmentos de control y segmentos de código en el diseño de la figura 5G.
La figura 6 ilustra la jerarquía de una tabla de directivas de dispositivo.
La figura 7 ilustra esquemáticamente el software suministrado al servidor web.
La figura 8 ilustra esquemáticamente el hardware que necesita el servidor web.
La figura 9 ilustra esquemáticamente la separación del código de contenido y la presentación de información para su uso por el motor generador de código.
La figura 10 ilustra esquemáticamente un sistema que comprende un servidor de producción y un servidor de desarrollo.
La figura 11 ilustra el intercambio de señales en el sistema de la figura 10 cuando se encuentra por primera vez un nuevo tipo de dispositivo de usuario.
La figura 12 ilustra esquemáticamente un servidor que tiene una memoria caché.
La figura 13 es un diagrama de flujo que ilustra el procedimiento de operación del servidor de puerta de enlace de la figura 12.
La figura 14 es un diagrama de flujo que ilustra el funcionamiento del servidor de páginas web dinámicas de la figura 12.
La figura 15 es un diagrama esquemático que ilustra un módulo de software de lógica de componentes.
La figura 16 es un diagrama de flujo que ilustra el funcionamiento de la generación de código utilizando el módulo de software de lógica de componentes.
La figura 17 es un diagrama que ilustra la jerarquía de objetos de datos que son versiones diferentes de los datos, referenciados por un nombre de componente simple.
La figura 18 ilustra la jerarquía de objetos de texto con tamaños de código de texto y lenguajes diferentes.
La figura 19 ilustra el flujo de señales en un servidor web en el cual se produce disección de paneles.
La figura 20 es un diagrama de flujo que ilustra la disección de paneles.
La figura 21 ilustra la disección de un panel en fragmentos.
La figura 22 ilustra el uso de una memoria de sesión de usuario durante la cumplimentación de formularios.
La figura 23 ilustra la disección de un panel utilizado en la cumplimentación de formularios.
La figura 24 ilustra la función de interfaz gráfica de usuario.
La figura 25 es un diagrama de flujo que ilustra un procedimiento de almacenamiento de archivos.
La figura 1 ilustra un servidor web 1 conectado a dispositivos 2 de usuario remotos a través de Internet 3. Los dispositivos de usuario remotos que se presentan son un PC, una televisión, una PDA y un teléfono móvil con servicio WAP pero se puede incluir cualquier número de dispositivos diferentes con posibilidad de acceso a Internet. El servidor web 1 está provisto de una GUI (interfaz gráfica de usuario) 4 de servidor web que hace posible que el operador del servidor web cree documentos y controle y mantenga de forma general la operación del servidor web. El servidor web 1 también está conectado a través de Internet a un centro 5 de servicio que recoge la información que se refiere a cualquier nuevo tipo de dispositivo de usuario y suministra al servidor web 1 la revisión de software consecuente cuando sea necesario.
La figura 2A es un diagrama esquemático simplificado del servidor web 1 de la figura 1. El servidor web 1 incluye un procesador 20 que opera un motor 21 generador de código que presenta la forma de una aplicación que es ejecutada por el procesador a demanda para generar código de página web. El motor 21 generador de código de esta realización está escrito en lenguaje de programación Java y durante el funcionamiento del servidor web existe en la memoria de trabajo del procesador 20 de forma compilada como códigos de byte y se implementa dentro del entorno de tiempo de ejecución de Java.
Una memoria 22 almacena el código 23 de contenido que define la información de la página web en forma de documentos escritos en un lenguaje de señalamiento que en el ejemplo presente es JSP1.1 (páginas de servidor Java). Estos documentos son típicamente creados por el operador del servidor web 1 utilizando la interfaz gráfica 4 de usuario. La memoria 22 también almacena datos operacionales 24 que incluyen por ejemplo datos que pueda ser necesario incorporar dentro del código de página web generado en tiempo de ejecución en respuesta a consultas específicas que se originan desde el dispositivo 2 de usuario así como los datos adquiridos mediante la monitorización de la utilización del servidor web. Los objetos de datos referenciados por el código 23 de contenido se almacenan en una base 19 de datos. Estos objetos de datos pueden incluir archivos que mantienen imágenes o texto y otras formas de objetos de datos que un autor pudiera querer incluir en el código de página web a
generar.
La información 25, dependiente del dispositivo también se almacena en la memoria 22 y consta primariamente de tablas de directivas descritas más adelante. La memoria 22 también almacena el código 26 de programa al que el procesador 20 pueda acceder durante la operación del servidor 1 o que pudiera usarse para recuperar software tal como el motor 21 generador de código en el momento del inicio. El código 26 de programa también incluye código que define un conjunto de etiquetas usadas en un lenguaje de señalamiento en el cual los documentos son creados tal como se describe más adelante.
Una interfaz 27 efectúa la comunicación entre un bus 28 de datos que da servicio al procesador 20 y a la memoria 22 y una conexión interna a Internet 3 para recibir mensajes de petición y tramitar mensajes de respuesta.
Se dispone un motor 29 de identificación de dispositivo para extraer de los mensajes recibidos un identificador de tipo de dispositivo para identificar el tipo de dispositivo 2 de usuario remoto. El motor 29 de identificación de dispositivo del presente ejemplo es implementado en software por el procesador 20. En este ejemplo, un mensaje de petición recibido a través de Internet contiene una cabecera de protocolo de transferencia de hipertexto (HTTP) que incluye una cadena de ID que declara el nombre del agente de usuario que ha utilizado el dispositivo de origen cuando generó el mensaje de petición. El nombre del software del agente de usuario define por ejemplo la versión del navegador y la capacidad del lenguaje de señalamiento del dispositivo y es utilizado por el motor 29 de identificación de dispositivo para identificar el dispositivo de origen utilizando un identificador de tipo de dispositivo que por ejemplo puede almacenarse como una tabla de consulta.
La cabecera HTTP también puede proporcionar la información contenida en una cookie referente a detalles del usuario que ha originado el mensaje de petición. Dichas cookies pueden contener otros datos utilizados para la personalización de la respuesta efectuada por el servidor web 1.
La figura 2B es una ilustración adicional del servidor web 1 que muestra elementos funcionales de manera que se ilustre el flujo de señales. Un procesador frontal 300 suministra una interfaz de comunicaciones para los mensajes de petición recibidos desde Internet 3 y los mensajes de respuesta transmitidos hacia el dispositivo 2 de usuario a través de Internet. El procesador frontal 300 envía información 301 de URL a un procesador 302 de aplicaciones web que determina a partir de la URL la información adecuada que se incluirá en una página web solicitada por el usuario. El procesador 302 de aplicaciones webs tiene acceso a una base 303 de datos que puede ser local con respecto al procesador o puede estar en una ubicación remota que sea accesible a través de un enlace de comunicaciones adecuado.
El procesador 302 de aplicaciones web produce un documento 304 que comprende instrucciones para generar código de página web. El documento 304 no es por sí mismo capaz de ser interpretado por un navegador de un dispositivo de usuario y por lo tanto no constituye "código de página web" para el propósito de la presente memoria técnica.
El documento 304 es introducido en el motor 21 generador de código que genera código de página web con referencia a la estructura 305 de los datos de contenido y al conjunto de tablas 40 de directivas. La salida del motor generador de código es un documento 306 de código de página web que ahora tiene una forma que es capaz de ser interpretada por el navegador del dispositivo 2 de usuario. El documento 306 de código de página web es recibido por el procesador frontal 300 y es empaquetado como un mensaje de respuesta transmitido a través de Internet hacia el dispositivo 2 de usuario.
Para hacer posible que el motor 21 generador de código seleccione los datos apropiados de la estructura 305 de datos de contenido y acceda a las tablas 40 de directivas apropiadas, también necesita la entrada de un identificador 45 de tipo de dispositivo que es proporcionada por el motor 29 de identificación de dispositivo en respuesta a la recepción de una señal 307 de cabecera de mensaje enviada desde el procesador frontal 300, esta señal comprende la información extraída de la cabecera de mensaje del mensaje de petición recibido desde dispositivo de usuario.
La figura 3 ilustra esquemáticamente las tablas 40 de directivas que constituyen la información 25 dependiente del dispositivo de la figura 2A.
En el presente contexto, el término "directiva" se utiliza para hacer referencia a la información a ser utilizada en el motor 21 generador de código y que puede definirse de forma diferente para diferentes tipos de dispositivos, bien por necesidad a causa de las diferentes posibilidades técnicas de diferentes tipos de dispositivo o bien como resultado de una elección efectuada por el autor del código 23 de contenido.
Las tablas 40 de directivas incluyen una tabla 30 de directivas de dispositivo que contiene un número de campos que se refieren a los diferentes aspectos técnicos del tipo de dispositivo. A modo de ejemplo, la tabla 1 mostrada a continuación enumera un pequeño número de directivas de dispositivo que pueden asociarse con el tipo de dispositivo y que se corresponden cada una de ellas a un campo (es decir, a una fila) de la tabla. Se muestran valores para un tipo de dispositivo simple (es decir, una sola columna). La tabla 30 de directivas de dispositivo en la práctica incluirá un gran número de diferentes campos y valores para múltiples tipos de dispositivos utilizando una estructura de tabla jerárquica para representar la tabla de forma concisa.
TABLA 1 Parte de la tabla de directivas de dispositivo
Directiva Valores
Soporta imágenes de formato GIF Verdadero/falso
Soporta imágenes de formato JPEG Verdadero/falso
Soporta audio de formato MP3 Verdadero/falso
Soporta audio de formato WAV Verdadero/falso
Puede informar de la posición global (GPS) Verdadero/falso
Accediendo a la tabla 30 de directivas de dispositivo, el motor 21 generador de código es capaz de ejercer una decisión relativa a la elección de generación de código para adaptarse a las posibilidades técnicas del dispositivo 2 de usuario. Por ejemplo, si tiene que incluirse una imagen como archivo de imagen en el código de la página web, es necesario que el motor 21 generador de código conozca la forma de compresión de datos de imágenes disponible para el dispositivo 2 de usuario desde el cual se originó el mensaje de petición. La tabla 30 de directivas de dispositivo incluye campos que indican si el dispositivo puede descomprimir imágenes de formato GIF o JPEG. Similarmente, los archivos de audio puede comprimirse en un número de formas diferentes incluyendo el formato MP3 y la tabla 30 de directivas de dispositivo también incluye un campo que indica si el dispositivo soporta MP3.
La tabla 31 de directivas de protocolo es responsable de la correlación de equivalencias entre protocolos de salida de dispositivos, que son generalmente denominados lenguajes de señalamiento. Son ejemplos el WML, HTML, el lenguaje de señalamiento de dispositivos portátiles (HDML) y el HTML compacto (cHTML). La tabla 2 es un ejemplo de seis de los campos de la tabla 31 de directivas de protocolo para un tipo simple de dispositivo.
TABLA 2 Parte de la tabla de directivas de protocolo
Protocolo Elemento
HTML versión 4.0 <thead>
HTML versión 3.2 <thead>
HTML i-mode No equivalente
XHTML Basic <thead>
WML versión 1.1 <thead>
HDML versión 3 No equivalente
La tabla 32 de directivas de estilo contiene un número de campos que definen parámetros tales como la familia de la fuente, el tamaño de la fuente, el grado de negrura de la fuente y el color de las cabeceras, los bordes de la imagen y el fondo del párrafo según se ilustra en la tabla 3 que muestra parte en la tabla de directivas de estilo para un tipo de dispositivo simple. El motor 21 generador de código es así capaz de generar el código apropiado para el tipo de dispositivo, de acuerdo con una decisión predeterminada que puede reflejar por ejemplo un estilo acordado adoptado como estilo comercial general por una empresa en particular.
El modo en el cual se maneja la información de estilo varía entre diferentes dispositivos y efectivamente entre diferentes protocolos de salida de dispositivo. Para algunos, la información de estilo debe incluirse dentro del código de página de web generado. Para otros, la información de estilo debe ser suministrada en código generado de forma separada, a menudo denominado "plantilla".
\vskip1.000000\baselineskip
TABLA 3 Parte de la tabla de directivas de estilo
Directiva Valores
Familia de fuentes para cabecera 1 Nombre de una familia de fuentes, por ej. Times
Tamaño de fuente para cabecera 1 Tamaño de la fuente, por ej. 20
Grado de negrura de fuente para cabecera 1 Grado de negrura de la fuente, por ej. Negrita
Color de cabecera 1 color
Color del borde de la imagen Color del borde de las imágenes
Color de fondo del párrafo Color del fondo de los párrafos
La Tabla 33 de directiva de temas contiene similarmente campos que se refieren al embellecimiento decorativo y a los logotipos adoptados por las empresas para sus páginas web y hacen posible que el autor de la directiva de temas adapte las características decorativas y aspectos del logotipo tales como el tamaño para cada uno de los tipos de dispositivo.
Una tabla 35 de directivas de diseños contiene campos que se refieren al diseño de elementos que comprenden texto, logotipos, imágenes, etc en el momento de presentar la imagen en el dispositivo de usuario para tener en cuenta, por ejemplo, las diferentes formas y tamaños de las pantallas de los diferentes tipos de dispositivos.
Una tabla 36 de directivas de dinámica contiene campos que permiten adaptar código para diferentes tipos de dispositivo de acuerdo con parámetros variables en el tiempo. Por ejemplo, un teléfono móvil que tiene servicio WAP puede tener un ancho de banda para recibir mensajes de respuesta que varía en cada momento de acuerdo con la fuerza de la señal disponible a través de la red de telefonía móvil celular usada por el teléfono para conectarse a Internet. Las directivas de dinámica pueden configurarse para generar código que requiera un bajo ancho de banda en condiciones de ancho de banda bajo y un ancho de banda más alto en mejores condiciones. La cantidad de datos de imágenes, por ejemplo, puede regularse para controlar el ancho de banda necesario para efectuar el mensaje de respuesta. Simplemente omitiendo un logotipo u otra imagen, la velocidad con la cual el mensaje de respuesta puede descargarse en el dispositivo puede mantenerse en condiciones de calidad pobre de señal.
También se suministra una tabla 37 de directivas de componentes cuyo propósito es determinar la selección de objetos de datos tal como se describe más adelante.
La figura 4 ilustra esquemáticamente la forma en la cual el motor 21 generador de código hace uso de los datos de las tablas 40 de directivas. En el inicio, el procesador 20 recupera un programa de inicio del código 26 de programa almacenado y ejecuta el programa de inicio para asimilar la información de las tablas 40 de directivas en una serie de objetos Java (Java beans) denominados de ahora en adelante objetos 41 de directivas que están entonces disponibles dentro del entorno 46 del tiempo de ejecución del motor 21 generador de código. El entorno de tiempo de ejecución es suministrado por una máquina virtual Java adecuada. Los objetos 41 de directivas gestionan aspectos específicos de la generación de código y contienen objetos lógicos y de datos configurados de forma que cada objeto de directivas tenga conocimiento de toda la información relevante disponible en las tablas 40 de directivas para cada tipo de directiva. Un objeto 41 de directivas puede por ejemplo referirse a la posibilidad de gestión de formatos de imágenes mientras que otro objeto de directivas puede referirse a la elección de un lenguaje de señalamiento para el código de salida. El motor 21 generador de código en tiempo de ejecución procesa una versión compilada de un documento del código 23 de contenido, el código consta de una serie de instrucciones 42, cada instrucción incluye una de un conjunto de etiquetas 43 de señalamiento.
En la figura 4, la etiqueta 43 se ilustra como una de un número de etiquetas programables o inteligentes que, según se representa de forma esquemática en la figura 4, se refiere cuando se procesa a un conjunto de clases 44 que han sido escritas para llevar a cabo la función requerida de las etiquetas. Estas clases 44 a su vez se refieren a uno o más objetos 41 de directivas siempre que tenga que tomarse una decisión de programa que sea dependiente del tipo de dispositivo basándose en los datos contenidos en las tablas 40 de directivas.
En las tablas 4 y 5 se resumen ejemplos de etiquetas 43 programables suministradas de acuerdo con la presente realización. Todas las etiquetas utilizadas en la definición del código 23 de contenido son dependientes del dispositivo en el sentido de que se implementan como etiquetas programables JSP y están asociadas con clases Java que acceden a Java beans (objetos 41 de directivas) para las decisiones dependientes del dispositivo. Las etiquetas más primitivas son denominadas aquí como etiquetas en línea simples según se muestra en la tabla 4. Etiquetas más complejas son denominadas etiquetas de bloque principales en la tabla 5. Las etiquetas principales típicamente se transforman en más de una etiqueta en el lenguaje de señalamiento del código generado resultante, por ejemplo HTML.
\vskip1.000000\baselineskip
TABLA 4
Etiquetas en línea simples
cite Hace que el texto se visualice como una cita
code Formatea el texto de forma adecuada para ilustrar muestras de código
em Hace que el texto se vea de forma enfatizada
hr Muestra una regla horizontal
TABLA 5
Etiquetas de bloque principales
anchor Enlace a otro canvas, página o sección
canvas Define el estilo y el tema a aplicar a este canvas
hl to h6 Define las cabeceras a seis diferentes niveles
form Define un formulario de entrada
textinput (part of form) Define un campo de texto de entrada para un formulario
select (part of form) Define un campo de selección para un formulario.
option (part of form) Define una acción dentro de un campo de selección para un formulario
image Define una imagen
logo Define un logotipo
menú Define un menú
menuitem (parte de un menú) Define un elemento dentro del menú
shopcart Define un carro de compra básico
table Define una tabla
El motor 29 de identificación de dispositivo operado por el procesador 20 extrae de una cabecera de un mensaje de petición recibido desde un dispositivo 2 de usuario remoto la información que identifica el tipo de dispositivo y emite un identificador 45 de tipo de dispositivo que es una entrada para el motor 21 generador de código para hacer posible que el conjunto de clases 44 extraiga la información necesaria de los objetos 41 de directivas.
En el apéndice 1 se da un ejemplo de un documento que comprende un conjunto de instrucciones 42 que incluyen etiquetas 43 para constituir el código 23 de contenido en el lenguaje de señalamiento operado por el motor 21 generador de código. En la línea 2, por ejemplo, se utiliza la etiqueta <vt:canvas> en la definición del tema y el diseño de la página web a crear. Entre las etiquetas de apertura y cierre de canvas (que aparecen en la segunda línea y en la última línea) se encuentra una lista de componentes que también se implementan utilizando etiquetas 43 programable. Los componentes hacen referencia a los paneles en el diseño, el término "panel" se utiliza para referirse a una serie de regiones (generalmente) rectangulares en las que se divide una pantalla de visualización cuando la página web se presenta a un usuario sobre el dispositivo 2 de usuario. Un grupo de paneles y sus posiciones relativas definen el diseño de la página. Los componentes pueden utilizarse para definir dónde aparecerá la salida de un componente dado en la página recuperada o alternativamente para determinar si un componente debe recuperarse o no cuando la página web se muestra por ejemplo sobre un dispositivo de usuario que tenga un tamaño de pantalla limitado. De esta forma, pueden utilizarse diseños para limitar la cantidad de información que aparecerá sobre la pantalla de visualización de ciertos tipos de dispositivo.
La figura 5A ilustra por ejemplo un diseño típico de paneles 50 para su visualización sobre un PC que incluye paneles que incluyen respectivamente un logotipo, un logotipo grande a color, un menú del sitio, un saludo, una primera, una segunda y una tercera oferta y un resumen de información que suministra un noticiario continuo.
El diseño que se corresponde con el documento del mismo contenido cuando se genera para su visualización sobre una pantalla de televisión se muestra en la figura 5B y consta de un número reducido de paneles que contienen respectivamente un gran logotipo a color, un saludo, un menú de ofertas, un menú del sitio y una imagen.
La figura 5C ilustra la presentación de pantalla correspondiente que resulta del código generado basándose en el mismo documento de contenido cuando se adapta a una PDA. El número de paneles se reduce considerablemente durante la generación de código para satisfacer las posibilidades limitadas de la PDA e incluye paneles que contienen respectivamente un logotipo de tamaño medio en blanco y negro, un saludo, un menú de ofertas y el menú del sitio.
La figura 5D ilustra el diseño resultante de la generación de código basándose en el mismo documento cuando se adapta a un teléfono WAP. En vez de una página web simple, el contenido se reduce a un conjunto de fragmentos, a menudo denominados lotes, cada uno de los cuales comprende un panel simple accesible por medio de un lote 50 de menú, el conjunto de lotes incluye además lotes 51, 52 y 53 de panel simples para las ofertas 1, 2 y 3, respectivamente. "Lote" es un término utilizado en los estándares WAP para indicar las unidades en las cuales se transmite la información al dispositivo inalámbrico.
El apéndice 2 ilustra el código de página web generado utilizando el código de contendido del apéndice 1 cuando el tipo de dispositivo se corresponde con un PC que tiene un navegador que utiliza el protocolo HTML.
El apéndice 3 ilustra el código correspondiente generado cuando la salida hacia el tipo de dispositivo se corresponde con un teléfono con servicio WAP que utiliza protocolo WML. El apéndice 3 contiene solamente un lote de un conjunto de lotes contenidos en el código generado, el usuario será requerido para que seleccione sucesivos lotes para ver a su vez un número de sucesivas presentaciones de la información de la página web. La fragmentación del código del mensaje de respuesta en lotes se ilustra por ejemplo en la figura 5B.
El apéndice 4 ilustra un lote adicional que es resultado del código WML para el teléfono WAP, en este momento el lote se corresponde con el lote 50 de menú de la figura 5D en lo referente a que contiene una lista de artículos que pueden ser vistos por el usuario en sucesivos lote.
El apéndice 5 ilustra el lote creado para uno de los artículos.
En el ejemplo anterior, el motor 21 generador de código es capaz de procesar el mismo código 23 de contenido para producir una salida de código de página web radicalmente diferente que se corresponde con diferentes tipos de dispositivos. El primer tipo de dispositivo da como resultado el código del apéndice 2 y el segundo tipo de dispositivo que tiene menores posibilidades da como resultado el código de los apéndices 3, 4 y 5.
Las figuras 5E y 5F ilustran la forma en la cual el suministro de diferentes definiciones de diseño para dos dispositivos 2 de usuario remotos diferentes hace posible que el contenido completo de la página web sea suministrado a dispositivos con posibilidades desiguales.
En la figura 5E, el diseño para un dispositivo que tiene una pantalla grande tiene el efecto de mostrar el contenido completo en una pantalla simple, partes del contenido están incluidas en los respectivos paneles A, B, C, D, E y F. Cuando se formatea para un dispositivo con una pantalla pequeña, solamente se muestra uno de los paneles A, B, C, D, E y F en un momento dado, el contenido de esta forma se fragmenta en fragmentos A, B, C, D, E y F según se ilustra en la figura 5F. El fragmento A se designa como fragmento raíz a través del cual puede accederse a los fragmentos restantes utilizando un menú.
Para dispositivos con menores posibilidades de pantalla, el fragmento puede necesitar ser reconfigurado o el contenido puede ser presentado de forma diferente de manera que por ejemplo podría ser necesario que el usuario se desplazase a través del texto para ver los contenidos completos de un fragmento dado que contiene texto.
Alternativamente puede utilizarse una estructura de múltiples menús según se ilustra en las figuras 5G y 5H. En vez de definir el diseño en términos de paneles, el diseño se define en términos de series de fragmentos que definen áreas de la pantalla y se designan bien como segmentos de control o bien como segmentos de contenido. En la figura 5G un segmento 55 de control contiene una barra 56 de menú compuesta de una serie de iconos que pueden ser seleccionados por el usuario.
Un segmento 57 de contenido define un área adicional de la pantalla y contiene en sí mismo un segmento 58 de contenido adicional. El segmento 57 de contenido también contiene un segmento 59 de control adicional que contiene una segunda barra 510 de menú.
En este ejemplo, la selección utilizando la primera barra 56 de menú efectúa una llamada para la visualización dentro del segmento 59 de control de una barra seleccionada de un conjunto de segundas barras 510 de menú según se ilustra en la figura 5H. Cada una de las segundas barras 510 de menú permite seleccionar entre un conjunto respectivo de ítems 511 de contenido.
El ejemplo de las figuras 5G y 5H ilustra un procedimiento alternativo de descripción de página en el cual una etiqueta de montaje define el diseño de la página en términos de una serie de segmentos que pueden ser segmentos de contenido o segmentos de control. Según se muestra en este ejemplo, es posible que un segmento de contenido contenga segmentos adicionales que incluyan tanto segmentos de control como segmentos de contenido.
La figura 5G se corresponde con la página web visualizada sobre un dispositivo de pantalla grande. Cuando se traslada a un dispositivo de pantalla pequeña, el usuario podría por ejemplo ver solamente un segmento cada vez, viendo inicialmente el primer segmento 55 de control para permitir la selección de una de las segundas barras 510 de menú y la selección subsecuente de uno de los ítem 511 de contenido.
El diseño resultante de la figura 5G puede incrementarse utilizando la característica de marcos en línea del HTML.
Los ejemplos anteriores de las figuras 5A a 5H muestran dos extremos de posibilidades de visualización de dispositivos de usuario. Para dispositivos de posibilidades intermedias, pueden ser apropiados diseños alternativos que muestren quizás dos o tres segmentos o paneles. También podría ser apropiado modificar el contenido dentro de cada panel o segmento de acuerdo con las posibilidades del dispositivo. Por ejemplo, un PC es generalmente capaz de un estándar de presentación de imágenes más alto incluyendo imágenes en color y en movimiento mientras que un teléfono WAP puede no tener disponibilidad de color o puede tener una resolución de pantalla y una velocidad de actualización limitadas. Esto requiere que en cada panel o segmento el contenido deba almacenarse en un número de formas diferentes adecuadas a dispositivos diferentes.
Las tablas 40 de directivas se organizan para que tengan una estructura jerárquica tal como la estructura ilustrada por ejemplo en la figura 6 que muestra la jerarquía de la tabla 30 de directivas de dispositivo. Las características de un tipo teórico de dispositivo raíz definen un nivel superior 61 de la jerarquía. Este tipo raíz puede considerarse como los valores por defecto representativos de la tabla 30 de directivas de dispositivo. Una segunda capa 62 define tipos de dispositivos que se diferencian del tipo de dispositivo raíz en un número de características. La tabla de directivas de dispositivo incluirá por lo tanto entradas (columnas) para aquellos campos en los cuales los parámetros que describen el tipo de dispositivo raíz no se han heredado. La tercera capa 63 de la jerarquía incluye subdivisiones de tipos de dispositivos generales de la primera capa, por ejemplo se ilustra un número de tipos de dispositivos PDA diferentes. Cada uno de estos tipos de dispositivos heredará muchos de los parámetros que describen las posibilidades de la PDA de la primera capa pero se diferenciarán en un número de aspectos, requiriendo de esta forma entradas en las columnas respectivas de la tabla de directivas de dispositivo para aquellos campos que contengan parámetros no heredados.
Capas subsecuentes 64 y 65 de la jerarquía definen subdivisiones adicionales del tipo de dispositivo.
El identificador 45 de dispositivo identificará un nodo en este árbol jerárquico y el conjunto completo de atributos relativos al tipo de dispositivo pueden adquirirse entonces atravesando el árbol definido por la estructura de la jerarquía desde el nodo a través de sucesivas capas hasta el tipo de dispositivo raíz definido en la capa superior 61, adquiriendo atributos no heredados adicionales en cada capa.
Una ventaja de organizar cada una de las tablas 40 de directivas de esta manera jerárquica es que, cuando se necesite expandir las tablas 40 de directivas para incluir datos para un tipo de dispositivo adicional, esto puede conseguirse insertando un nuevo nodo en la estructura de árbol jerárquico y conectando el nuevo nodo con una rama de un nodo padre en una capa superior adyacente. El nodo padre se selecciona para que sea el nodo desde el cual el tipo de dispositivo hereda el conjunto más completo de atributos.
Por ejemplo, un teléfono móvil está ya representado en la tabla 40 de directivas y aparece un nuevo modelo de teléfono móvil, cualquier cambio en las posibilidades del nuevo modelo que requiera cambios en las directivas puede representarse mediante una cantidad mínima de datos, que se corresponde con una nueva entrada en cada tabla de directivas que contiene valores solamente en aquellos campos para los cuales no se heredan atributos del modelo existente de teléfono móvil representado por un nodo existente en la jerarquía.
La información para actualizar las tablas 40 de directivas para incluir tipos de dispositivo adicionales puede ser suministrada por el centro 5 de servicio mostrado en la figura 1 y transmitida al servidor web 1 por ejemplo a través de Internet 3. La información 25 dependiente del dispositivo que incluye las tablas 40 de directivas puede actualizarse entonces mediante la actuación de un gestor 190 de datos, un módulo de software del servidor web 1 representado esquemáticamente en la figura 2. Generalmente este procedimiento puede emprenderse durante el funcionamiento normal del servidor web 1 y durante el funcionamiento del motor 21 generador de código. En respuesta a la actualización de las tablas 40 de directivas, los objetos 41 de directivas se actualizan automáticamente mientras que gestionan su uso actual en el entorno operativo 46 del motor 21 generador de código. Esta actividad se regula de manera que no interrumpa ningún código de página web que esté actualmente siendo generado por el motor 21 generador de
código.
La figura 7 ilustra un ejemplo de software suministrado al servidor web en una realización preferida. El software incluye el conjunto de tablas 40 de directivas y un conjunto de etiquetas 70, que incluyen las definiciones de etiquetas que suministran la información necesaria para hacer posible la creación de contenidos y cualquier código para implementar las etiquetas, es decir el código de programa que se ejecuta cuando se usa cada etiqueta en el entorno operativo del motor 21 generador de código.
El motor 21 generador de código y el motor 29 de identificación de dispositivo están entre los elementos suministrados al servidor web. También se dispone un motor 71 de notificaciones. El motor de notificaciones es operado por el procesador 20 para realizar tareas tales como la cuantificación del uso del sitio web. Esta información puede utilizarse para demostrar, por ejemplo para propósitos publicitarios, la extensión en la que se utiliza el sitio y también para estudios de mercado personalizados dirigidos a los usuarios del sitio. Por ejemplo, puede utilizarse una base de datos de usuarios para adaptar una respuesta a un mensaje de petición de un usuario en particular de forma que el mensaje de respuesta incluya una página adicional que contenga una oferta especial de un producto registrado como de interés para un usuario en particular.
El software incluye además un motor 72 de integración para comunicar con actividades rutinarias tales como facturación y ordenes de compra que puedan surgir en respuesta al uso del sitio web por parte de los usuarios de los dispositivos 2 de usuario remotos.
El software incluye además un gestor 73 de operaciones para gestionar el sistema completo para controlar el funcionamiento, permitir la detección de errores y permitir que los recursos sean controlados de forma correspondiente.
También se suministra un programa 74 para creación de objetos de directivas en el inicio tal como se describió anteriormente con referencia a la figura 4.
También se suministra el motor 29 de identificación de dispositivo, tal como se describió anteriormente.
También, una aplicación web 75 procesa la petición de URL recibida para identificar la página web solicitada y seleccionar el documento apropiado de código 23 de contenido para importarlo al motor 21 generador de código.
La figura 8 ilustra esquemáticamente el hardware típico requerido para implementar la presente invención en un servidor web de un tamaño pequeño a moderado. Un ordenador personal 80 que tenga capacidad de recibir programas tales como los resumidos en la figura 7 desde un medio 81 de almacenamiento portátil se conecta a través de un cortafuego 82 a un enrutador 83. El enrutador 83 se conecta a través de una línea dedicada 84 de ancho de banda alto a un proveedor 85 de servicios de Internet para su conexión con Internet 3.
Los programas y datos requeridos para controlar el servidor web 1 pueden ser comunicados desde el centro 5 de servicio en la forma de un medio 81 de almacenamiento portátil o de forma alternativa como señales 86 comunicadas a través de una red tal como un Internet 3.
Según se ilustra esquemáticamente en la figura 9, la configuración de servidor web y de software anteriormente descrita permite que el código 23 de contenido sea almacenado de forma separada de la información 90 de presentación de manera que, cuando se reciba un mensaje 91 de petición en el sistema, el motor 21 generador de código sea capaz de generar dinámicamente un mensaje 92 de respuesta que contenga código de página web recientemente generado que represente la combinación del código de contenido y de la información de presentación. Una ventaja particular de esta combinación consiste en que es relativamente fácil alterar la información de presentación tal como el estilo y los temas incluyendo por ejemplo los logotipos, simplemente actualizando la información 90 de presentación. De esta forma se evita una gran reestructuración del código. El almacenamiento separado puede comprender la ubicación en archivos separados sobre el mismo disco duro o en dispositivos de memoria físicamente separados.
Para actualizar la información 90 de presentación, simplemente es necesario cambiar los datos contenidos en la tabla 32 de directivas de estilo, en la tabla 33 de directivas de temas o en la tabla 35 de directivas de diseño.
La figura 10 ilustra esquemáticamente una realización preferida en la cual el servidor web 1 está adaptado para funcionar en un entorno de negocio para una empresa de media a gran escala. El servidor web 1 comprende un servidor 100 de producción responsable de la información de las páginas web en respuesta a los mensajes de petición provenientes de los dispositivos 2 de usuario remotos y de la emisión de los mensajes de respuesta que comprenden el código de las páginas web. Así, el servidor 100 de producción realiza las funciones descritas anteriormente como si fueran realizadas por el servidor web 1 de las figuras precedentes. Aquí el servidor web 1 también comprende un servidor 101 de desarrollo que es responsable de la interacción entre el servidor web y el centro 5 de servicio y de actualizar periódicamente el servidor 100 de producción con nuevo software.
Tanto el servidor 100 de producción como el servidor 101 de desarrollo comprenden un grupo de procesadores respectivo con una potencia de cálculo substancialmente mayor que la del ordenador personal 80 anteriormente
descrito.
El servidor 101 de desarrollo puede considerarse como una serie de procesadores que realizan los procesos de desarrollo y migración que hacen posible la aplicación de varios niveles de prueba al nuevo software antes de descargar el nuevo software el servidor 100 de producción.
Para que el software controlado por el servidor 100 de producción se actualice periódicamente es necesario tener en cuenta la evolución de nuevos tipos de dispositivos 2 de usuario remotos e incorporar también nuevo contenido para ser suministrado como páginas web.
Según se representa en la figura 10, el centro 5 de servicio mantiene una base 102 de datos de referencia central desde la cual datos tales como tablas de directivas actualizadas son periódicamente comunicados al servidor 101 de desarrollo. Esta comunicación de datos se produce utilizando Internet 3, se utiliza una sintaxis XML para los datos de estructura transmitidos utilizando el protocolo HTTP. Según se ilustra en la figura 10 el servidor 101 de desarrollo pide periódicamente una actualización de las tablas 40 de directivas emitiendo un mensaje 103 de petición y recibe los datos solicitados en un mensaje de respuesta 104.
Cuando se recibe un mensaje 104 de respuesta, el servidor de desarrollo 101 se utiliza para efectuar pruebas sobre los nuevos datos y puede utilizarse para efectuar ajustes locales por ejemplo para añadir nuevos diseños apropiados.
Después de efectuar su comprobación y modificación, las nuevas tablas de directivas se transmiten desde el servidor 101 de desarrollo al servidor 100 de producción a través de cortafuegos adecuados.
Cuando se actualizan las bases de datos en los servidores de producción y de desarrollo no es generalmente necesario transmitir los contenidos completos de la base de datos, confiando por el contrario en los comandos edición que constituyen los datos transmitidos en el protocolo HTTP acompañados por metadatos en la sintaxis
XML.
En la figura 10 también se ilustra un sitio 105 de prueba, cuya función se describirá más adelante, y que representa un servidor accesible a través de Internet y que tiene una URL. La ubicación física del sitio 105 de prueba en el presente ejemplo se muestra separada de la ubicación del servidor web 1.
La figura 11 ilustra esquemáticamente la forma en la cual el servidor 100 de producción, el sitio 105 de prueba y el centro 5 de servicio interactúan en respuesta al hallazgo por primera de un dispositivo 2 de usuario remoto de un tipo nuevo. El nuevo tipo de dispositivo 2 puede ser por ejemplo la última versión de un nuevo teléfono que utiliza WAP y que incluye características que están actualizadas con respecto a la de los modelos previos de un fabricante dado, que tiene por ejemplo diferentes posibilidades de visualización tal como un tamaño incrementado de pantalla y la capacidad de mostrar imágenes en color. El usuario del nuevo dispositivo 2 que desea acceder al sitio web proporcionado por el servidor web 1 opera el software del navegador dentro del dispositivo para generar un mensaje de petición 110 que es emitida a través de Internet 3 hasta la URL del servidor 100 de producción.
El servidor 100 de producción recibe el mensaje 110 de petición e introduce el mensaje en el motor 29 de identificación de dispositivo mostrado en la figura 2 en un intento de extraer un identificador de tipo de dispositivo de la cadena de ID contenida en la cabecera del HTTP del mensaje de petición. El motor 29 de identificación de dispositivo determina sin embargo que el mensaje 110 de petición contiene una cadena de identificación desconocida. El servidor 100 de producción necesita sin embargo un identificador de tipo de dispositivo para posibilitar el acceso a las tablas adecuadas de directivas, el ID 45 de dispositivo es una entrada esencial para el motor 21 generador de código según se ilustra en la figura 4.
El servidor 100 de producción responde a esta determinación del motor 29 de identificación de dispositivo generando un mensaje 111 de redireccionamiento que se transmite al nuevo dispositivo 2 y hace que el nuevo dispositivo redirija el mensaje 110 de petición a la URL del sitio 105 de prueba.
En consecuencia, un nuevo mensaje 112 de petición es emitido por el dispositivo 2 y transmitido al sitio 105 de prueba.
El sitio 105 de prueba analiza la cadena de identificación contenida en el mensaje 112 de petición y es capaz de extraer alguna información básica relativa a los protocolos de comunicación y a las posibilidades del dispositivo 2. Esta información limitada es suficiente para hacer posible que el sitio 105 de prueba genere una prueba 113 en forma de agente que pueda ser procesada por el navegador del dispositivo 2 y constituya el software que pueda ser ejecutado por el procesador del dispositivo.
La prueba 113 se transmite al dispositivo 2 en un mensaje adicional 114 y cuando recibe este mensaje el navegador del dispositivo muestra una página web de respuesta estándar para el usuario mientras que procesa la prueba en segundo plano.
La prueba 113 hace que el dispositivo 2 genere un mensaje 115 de petición adicional que es direccionado hacia el sitio 105 de prueba y que contiene información más detallada de las posibilidades y protocolos asociados con el dispositivo 2 de acuerdo con la información solicitada por la prueba.
El sitio de prueba 105 responde con un mensaje 116 de redireccionamiento adicional que es transmitido al dispositivo 2 y que instruye al dispositivo 2 para que redirija el mensaje 110 de petición hacia el servidor 100 de producción. El dispositivo 2 sigue este redireccionamiento y emite un mensaje 117 de petición adicional.
Al mismo tiempo que emite el mensaje 116 de redireccionamiento, el sitio 105 de prueba envía un mensaje 118 de notificación al centro 5 de servicio para informar al centro de servicio de la existencia de un nuevo dispositivo 2 y para pasar la información recuperada en el mensaje 115 mediante el uso de la prueba 113.
El centro 5 de servicio almacena la información recibida para su posterior uso y procesa la información para generar un mensaje 119 de actualización temporal que se transmite al servidor 100 de producción y que contiene un identificador de dispositivo para hacer posible que el motor 21 generador de código genere el código de página web solicitado por el usuario del dispositivo 2. El código de página web se transmite entonces hacia el usuario en un mensaje 120 de respuesta final.
El mensaje 119 de actualización temporal generado por el centro 5 servicios suministra al servidor 100 de producción el identificador apropiado más próximo a un tipo de dispositivo existente.
Consecuentemente, el código de página web generado puede no adaptarse exactamente al nuevo dispositivo 2 pero generalmente será capaz de ser interpretado y mostrado por el dispositivo, usando por ejemplo los ajustes por defecto del navegador.
Entonces el centro 5 de servicio es requerido para que actualice la base 102 de datos central de referencia con la información apropiada que incluya las tablas de directivas revisadas. Esta información puede incluirse entonces en la siguiente actualización comunicada al servidor 101 de desarrollo para ser usada finalmente para actualizar la base de datos del servidor 100 de producción.
De esta forma, el sistema anterior es capaz de reaccionar y adaptarse de manera continua a la evolución de nuevos dispositivos que acceden a los sitios web a través de Internet, sin ser necesariamente notificado de antemano por los fabricantes de los nuevos dispositivos o de que éstos envíen los datos técnicos detallados. Opcionalmente, el centro 5 de servicio puede pedir dichos datos poniéndose en contacto con el fabricante, pero esto no es indispensable para obtener un funcionamiento satisfactorio.
La figura 12 ilustra una realización en la cual el servidor 1 está provisto de una memoria caché 120. Un servidor 121 de puerta de enlace funciona como una puerta de enlace que interactúa con Internet 3 para recibir mensajes de petición de dispositivos 2 de usuario remotos y para responder enviando el código 122 de página web solicitado bien solicitando al servidor dinámico 123 de páginas web la generación dinámica de código de página web o bien, si la petición del código de página web ya existe como página web estática en la memoria caché 120, recuperando el código de página web de la memoria caché.
El servidor dinámico 123 de páginas web funciona para generar dinámicamente el código de página web de la forma descrita anteriormente utilizando el identificador 45 de tipo de dispositivo extraído de la petición de URL recibida y el código 23 de contenido almacenado que se corresponde con la URL.
La figura 13 ilustra esquemáticamente los pasos efectuados por el procesador del servidor 121 de puerta de enlace. En el paso 130, el servidor de puerta de enlace recibe la petición de URL y extrae el ID 45 de tipo de dispositivo e identifica el documento del código 23 de contenido que contiene las instrucciones necesarias para generar el código de página web requerido.
En el paso 131, el servidor 121 de puerta de enlace consulta si el código de página web ya existe como página web estática en la memoria caché 120 para el ID de tipo de dispositivo y la URL y, si está disponible, recupera en el paso 132 el código de página web.
Si no está disponible en la memoria caché 120, el servidor 121 de puerta de enlace solicita en el paso 133 al servidor dinámico 123 de páginas web la generación del código de página web y transmite los detalles del ID del tipo de dispositivo y la URL.
Consecuentemente, en el paso 134 el servidor 121 de puerta de enlace recibe el código de página web nuevamente generado.
En el paso 135, el servidor 121 de puerta de enlace envía el código de página web al dispositivo 2 de usuario remoto a través de Internet 3.
La figura 14 ilustra esquemáticamente los pasos realizados bajo el control del procesador del servidor dinámico de páginas web. En el paso 140, el servidor dinámico de páginas web recibe la petición de generación del código de página web y también recibe la información del identificador del tipo de dispositivo y la información derivada de la URL requerida para identificar el documento de código 23 de contenido. El código 23 de contenido requerido se recupera de la memoria y se procesa en el entorno 46 de tiempo de ejecución del motor 21 generador de código para producir el código de página web requerido en el paso 142.
En el paso 143, el servidor dinámico 123 de páginas web determina a partir del código 23 de contenido si el código de la página web resultante está marcado como adecuado para ser almacenado en la memoria caché 120 y, si es así, determina a partir del código de contenido el período para el cual la versión de la memoria caché va a permanecer válida. Esta información se utiliza en el paso 144para crear metadatos que se añaden al archivo que contiene el código de página web y que en el paso 145 es enviado a la memoria caché 120 para ser almacenado durante el período de validez.
En el paso 146, el servidor dinámico 123 de páginas web envía el código de página web al servidor 121 de puerta de enlace para ser recibido en el paso 134 según se describió anteriormente.
Cuando se crea el código 23 de contenido, el autor tiene por lo tanto la opción de añadir atributos extras a las etiquetas de canvas para definir si la página resultante puede ser almacenada o no el caché y durante cuanto tiempo puede permanecer válida en la memoria caché. La memoria caché escribe las nuevas páginas en la memoria en una forma que anula cualquier página almacenada para la cual la validez haya expirado.
En la figura 12 se representa esquemáticamente un conjunto de páginas de código 23 de contenido junto con los respectivos datos 124 de control de memoria caché para cada página, los datos de control son fijados por el autor de la página para determinar las mencionadas instrucciones para efectuar la función de caché en la memoria
120.
La generación de código efectuada por el motor 21 generador de código se ha descrito anteriormente con referencia por ejemplo al apéndice 1 que muestra las instrucciones utilizadas para crear el código 23 de contenido para generar una página web de ejemplo. Típicamente, como en este ejemplo, la ejecución del código 23 de contenido por parte del motor 21 generador de código requerirá que el contenido sea recuperado del almacenamiento de datos. Los objetos de datos tales como los archivos de imagen se importan por lo tanto para su inclusión en el código de página web que saldrá del motor 21 generador de código.
El autor de la página web puede crear un componente para referirse por el nombre a un objeto de datos a importar. Se almacenan diferentes versiones del objeto de datos en una estructura de datos que es jerárquica, de forma que diferentes niveles jerárquicos se correspondan con diferentes posibilidades de los dispositivos 2 de usuario remotos. El autor del código 23 de contenido puede definir para cada objeto la versión apropiada para ser utilizada por cada ID 45 de tipo de dispositivo introduciendo datos en una tabla 37 de directivas de componentes según se ilustra en la figura 3. La tabla de directivas de componentes puede entonces seguir la jerarquía de la figura 6A para hacer posible que se identifique la versión del objeto de datos para cada ID de tipo de dispositivo posible. Este enfoque será referenciado de aquí en adelante como definición de objetos de datos en términos de contenido determinado ya que es el autor del código quien determina la versión particular del objeto de datos a utilizar en cada dispositivo 2 de usuario remoto.
Alternativamente, puede disponerse un número de versiones de objetos de datos en jerarquía describiéndose características de cada versión del objeto de datos en metadatos asociados a cada versión. La selección automática de la versión apropiada puede efectuarse entonces utilizando un módulo 150 de software de lógica de componentes tal como se ilustró esquemáticamente en la figura 15.
El módulo 150 de software de lógica de componentes selecciona la versión apropiada sobre la base de los metadatos del objeto de datos, las consideraciones de diseño definidas por la tabla 35 de directivas de diseño y la información relativa al dispositivo suministrada por la tabla 30 de directivas de dispositivo. Esta aproximación a la selección de la versión de los objetos de datos será denominada de ahora en adelante selección de contenido no determinado.
El motor 21 generador de código puede funcionar utilizando la selección bien de contenido determinado o bien de contenido no determinado. Alternativamente y preferiblemente, el motor 21 generador de código es capaz de hacer uso de forma selectiva de la selección tanto de contenido determinado como de contenido no determinado, proporcionando así al autor libertad cuando crea el código 23 de contenido bien para definir versiones de objetos de datos o bien para dejar que la selección sea automáticamente efectuada utilizando el módulo 150 de software de lógica de componentes.
La figura 16 ilustra esquemáticamente la forma en la que puede utilizarse un contenido tanto determinado como no determinado. En el paso 160, se introduce el código 23 de contenido en el motor 21 generador de código junto con el ID 45 de tipo de dispositivo y en el paso 161 se inicia el procesamiento del código.
En cada instancia de un componente del código 23 de contenido que requiera la importación de un objeto de datos, el motor 21 generador de código intenta en el paso 162 importar una versión definida por el autor del objeto de datos. Si en el paso 163 se determina que dicha versión definida por el autor existe y se ha importado con éxito, el procesamiento continúa, determinado en el paso 164 si aun quedan para ser importados objetos de datos adicionales.
Sin embargo, si en el paso 163 no es posible importar con éxito ninguna versión definida por el autor, el procesamiento continúa con el paso 165 que requiere el concurso del módulo de software de lógica de componentes para identificar la versión apropiada del objeto. En el paso 165 se importa la versión seleccionada del objeto de datos y continúa el proceso de generación de código. Cuando se determina en el paso 164 que no hay que importar más objetos de datos, se completa el resto del proceso para generar el código de página web en el paso 167 y en el paso 168 se envía el código de página web completo.
La figura 17 ilustra esquemáticamente la forma en la cual los objetos de datos almacenados en la base 19 de datos se almacenan en una estructura de datos jerárquica para permitir que el módulo 150 de software de lógica de componente seleccione automáticamente la versión apropiada del objeto de datos.
Si por ejemplo el autor diseña una página web en la cual debe visualizarse un vídeoclip en un área definida de la pantalla de un dispositivo de usuario en forma de un ordenador personal, el vídeoclip se almacena en la base 19 de datos como un objeto 170 de datos de vídeo y se crea un nombre 171 de componente asociado para hacer posible que el motor 21 generador de código haga referencia al objeto 170 de datos de vídeo por el nombre. El objeto 170 de datos de vídeo se caracteriza por los metadatos 172 almacenados en asociación con el objeto de datos y contiene campos de datos suficientes para que el módulo 150 de software de lógica de componentes efectúe la determinación de si un dispositivo 2 de usuario dado, según se define mediante el identificador 45 de tipo de dispositivo, es capaz de recibir y mostrar el vídeoclip del objeto de datos.
El autor también puede almacenar, según se muestra en la figura 17, diferentes versiones del objeto de datos de vídeo adecuadas para su uso por diferentes tipos de dispositivo, cada una de las cuales está acompañada por los metadatos respectivos.
El autor también almacena en la base de datos un objeto 173 de datos de imagen fotográfica con los metadatos 174 asociados. Similarmente, el autor puede almacenar un conjunto de objetos 173 de datos de imágenes fotográficas que tienen atributos apropiados a diferentes tipos de dispositivos y acompañados por los respectivos metadatos. Si el módulo 150 de software de lógica de componentes determina a partir de los metadatos 172 que ninguno de los objetos de datos de vídeo puede visualizarse en un dispositivo de usuario para el cual se está preparando actualmente código de página web, la imagen fotográfica representa una posición de emergencia que hace posible que se presente una imagen fotográfica estática en lugar del vídeoclip. Por lo tanto la imagen fotográfica generalmente mostrará un tema relacionado y puede comprender por ejemplo un fotograma tomado del vídeoclip.
El autor también puede introducir en la base de datos un objeto 175 de datos de imagen gráfica con los metadatos asociados 176. Similarmente, el autor puede introducir un conjunto de objetos de datos de imágenes gráficas relacionados con sus respectivos metadatos, adecuados a diferentes tipos de dispositivo. La imagen gráfica constituye una posición de emergencia adicional para su uso si la versión apropiada de la imagen fotográfica no está disponible.
El autor también puede introducir posiciones de emergencia adicionales tales como objetos 177 de texto simples con metadatos asociados 178. El objeto 177 de datos de texto representa una zona de emergencia final para situaciones en las que el módulo 150 de software de lógica de componentes determina que incluso la imagen gráfica 175 no puede ser presentada por el dispositivo 2 de usuario.
Los objetos de datos 170, 173, 175 y 177 se almacenan en la base 19 de datos en una estructura de datos jerárquica tal como se ilustra esquemáticamente en la figura 17 en la cual diferentes niveles de jerarquía se corresponden con los niveles de posibilidades del dispositivo de usuario. El objeto 177 de datos de texto en este ejemplo es un nivel raíz de la jerarquía que representa el nivel más bajo de posibilidades del dispositivo 2 de usuario y por lo tanto representa la posición de emergencia última.
Si por ejemplo el dispositivo 2 de usuario es identificado por el identificador 45 de tipo de dispositivo como un ordenador personal, el módulo 150 de software de lógica de componentes seleccionará el objeto 170 de datos. Si el dispositivo 2 de usuario se identifica como un PC de bolsillo sin la capacidad de presentar vídeoclips, pero que tiene la capacidad de presentar imágenes fotográficas, el módulo 150 de software de lógica de componentes seleccionará el objeto 173 de datos. Si el dispositivo 2 de usuario se identifica como un teléfono móvil con servicio WAP, el módulo 150 seleccionará el objeto 165 de datos de imagen gráfica. Sin embargo si el dispositivo 2 de usuario se identifica como un teléfono móvil convencional sin servicio WAP entonces se seleccionará el objeto 177 de datos de texto.
La estructura jerárquica de datos se aplica a otros tipos de objetos de datos para hacer posible que se seleccionen objetos de datos apropiados, como por ejemplo en el caso del código de página web que define un enlace de cualquier tipo. El enlace puede comprender un enlace HTML, un enlace WML, un enlace de correo electrónico o simplemente un número de teléfono para la conexión con automarcado en caso de que el dispositivo 2 de usuario sea un teléfono móvil.
Un ejemplo adicional de objetos de datos a los que puede accederse utilizando el mismo nombre de componente es el de los componentes de script tales como JavaScript y WML Script en los que el mismo contenido puede escribirse en el script apropiado para su uso en diferentes dispositivos. El autor puede por lo tanto escribir objetos de datos en una variedad de lenguajes de script requeridos para el almacenamiento en la estructura jerárquica de la figura 17 y para su recuperación en respuesta al nombre del componente. Como en ejemplos anteriores, puede efectuarse la selección sobre la base de los metadatos que acompañan a cada objeto de dato basándose en las posibilidades del dispositivo 2 de usuario remoto, según se determina utilizando el ID 45 de dispositivo con referencia a la tabla de directivas de dispositivo.
El uso de las estructuras jerárquicas de datos mencionadas suministra un procedimiento eficiente de gestión de recursos para el sistema en donde los recursos comprenden una colección de objetos de datos que son capaces de ser suministrados por el sistema en forma de código de página web.
La figura 18 ilustra la forma en la cual los datos en forma de texto pueden almacenarse en una estructura de datos jerárquica para hacer posible la recuperación de diferentes versiones de texto para adaptarse a las posibilidades del dispositivo 2 de usuario y a las preferencias del usuario. El texto completo en inglés de un objeto de documento se almacena en la caja GB TEXT 1, adecuado por ejemplo para mostrarse sobre la pantalla de un PC. Una versión reducida del texto que ha sido editada por el autor se almacena en el objeto de datos GB TEXT 2, adecuado para mostrarse sobre un ordenador de bolsillo de un tamaño reducido de pantalla. Una versión aún más pequeña de texto se almacena en el objeto de datos GB TEXT 3, y es adecuada para mostrarse en un dispositivo de bolsillo de memoria limitada y finalmente GB TEXT 4 contiene una versión de texto mínima para mostrarse en un teléfono móvil.
Cada una de estas versiones de texto está en inglés. Los objetos de texto correspondientes en francés están contenidos en FR TEXT 1, FR TEXT 2, FR TEXT 3 y FR TEXT 4. Similarmente, los objetos de datos que contienen texto en alemán están contenidos en DE TEXT 1, DE TEXT 2, DE TEXT 3 y DE TEXT 4.
Los objetos de datos se direccionan mediante el nombre 171 de componente y un identificador 180 de idioma que en este ejemplo indica si se requiere la versión de texto en inglés, francés o alemán.
El identificador de idioma se introduce en el motor generador de código además del ID 45 de dispositivo y típicamente se extrae del cuerpo del mensaje de petición generado por el navegador del dispositivo 2 de usuario remoto en respuesta a introducción de las preferencias de usuario que efectúa el usuario. Cada uno de los objetos de datos de texto, tales como GB TEX 1 tienen metadatos asociados 181 que indican los parámetros relevantes del objeto, incluyendo en particular el tamaño del código que representa el texto. Así puede tomarse una decisión sobre la base del tamaño del código indicado por los metadatos 181 relativa a si un objeto de datos es apropiado para su recuperación para un terminal de usuario remoto dado. De esta forma puede seleccionarse el objeto de datos óptimo atravesando la estructura jerárquica en forma de árbol de la figura 18 hasta que se localiza el objeto de datos adecuado.
La figura 19 ilustra una realización adicional en la cual se proporciona un disector 190 de paneles para modificar la salida producida por el motor 21 generador de código. Dicha disposición es ventajosa ya que evita la transmisión de un mensaje de respuesta que contenga una cantidad de código que sea mayor que la capacidad de memoria disponible en el dispositivo 2 de usuario remoto. Para dispositivos de memoria pequeña tales como teléfonos móviles, la sobrecarga de la capacidad disponible puede provocar que el microprocesador del dispositivo se averíe o entre en una situación de bloqueo. Aunque el autor del contenido a suministrar en respuesta a las peticiones de dichos dispositivos puede tomar nota de la capacidad limitada de memoria en el dispositivo, en la práctica es difícil predecir con certeza la cantidad actual de código que será emitido por el motor 21 generador de código de manera que una solución es colocar adicionalmente un dispositivo tal como el disector 190 de paneles detrás del motor 21 generador de código para atrapar el código saliente y medir la cantidad de código.
Si la cantidad de código excede la capacidad disponible indicada para los datos del dispositivo 2 de usuario, el disector 190 está configurado para dividir o diseccionar automáticamente el documento en un número de partes, denominadas de aquí en adelante fragmentos.
Según se ilustra en la figura 19, el disector 190 de paneles recibe el identificador 45 de tipo de dispositivo del motor 29 de identificación de dispositivo y direcciona la tabla de directivas de dispositivo para determinar a partir del identificador de tipo de dispositivo la capacidad de memoria disponible del dispositivo 2 de usuario.
Si es apropiada la división de los paneles, el procesador frontal 190 envía el primer fragmento resultante y el resto de los fragmentos se almacenan en una memoria intermedia 191. El procesador frontal 190 puede responder entonces a las subsecuentes peticiones del dispositivo 2 de usuario suministrando uno tras otro los fragmentos restantes en respectivos mensajes de respuesta.
La figura 20 ilustra esquemáticamente el proceso de disección de un panel, el término panel en este contexto se utiliza para indicar una página web diseñada para ser transmitida a un dispositivo 2 de usuario remoto.
En el paso 200, el motor 21 generador de código genera el código que representa el panel, basándose en el identificador 45 de tipo de dispositivo y en la naturaleza del mensaje de petición recibido a través de Internet 3.
En el paso 201, el disector 190 de paneles recibe y mide el código emitido desde el motor 21 generador de código y en el caso 202 el disector de paneles accede a la tabla de directivas de dispositivo para consultar la capacidad de datos del dispositivo 2 de usuario remoto.
En el paso 203, el disector 190 de paneles determina si la cantidad de código es igual o menor que la capacidad de datos del terminal 2 de usuario remoto y si es así, en el paso 204 emite el código sin realizar ningún paso de disección.
Sin embargo si la cantidad de código es mayor que la capacidad de datos disponible, el disector en el paso 205 disecciona el código en un número de fragmento, cada fragmento tiene una cantidad de código menor que la capacidad de datos disponible. En el paso 206 los fragmentos del panel dividido se almacenan en una memoria intermedia 191. En el paso 207 uno de los fragmentos es enviado al servidor para su inclusión en un mensaje de respuesta dirigido al dispositivo 2 de usuario remoto.
La figura 21 ilustra un panel 210 en el cual se han diseccionado las regiones A, B, C, D, E y F para formar fragmentos 211 a 216, cada uno de los cuales se almacena de forma separada en la memoria intermedia 191 y puede transmitirse en mensajes de respuesta separados hacia el dispositivo 2 de usuario remoto.
La figura 22 ilustra la utilización adicional de una memoria denominada de aquí en adelante memoria 220 de sesión de usuario para almacenar la información que define una sesión de usuario bajo circunstancias en las que los mensajes entre el servidor y el dispositivo 2 de usuario están fragmentados para tener en cuenta la capacidad limitada de datos del dispositivo de usuario.
Un ejemplo típico de dicha disposición es adecuado cuando se tiene que completar el ejercicio de cumplimentación de un formulario en una sesión de usuario. Para dispositivos de alta capacidad, tales como los ordenadores personales, es habitual que un formulario se suministre al usuario en una sola pantalla y el formulario contendrá múltiples campos para ser cumplimentados por el usuario.
Por ejemplo, el formulario 230 de la figura 23 define campos 231 de datos múltiples. Para un dispositivo 2 de capacidad limitada puede ser necesario fragmentar el formulario en un número de fragmentos 232 a 237 que contienen partes respectivas A, B, C, D, E y F del formulario 230.
Durante una sesión de usuario, el formulario 230 se disecciona en fragmentos 232 a 237 y el código correspondiente a cada fragmento se almacena en la memoria intermedia 191. Inicialmente solo el fragmento 232 se transmite al dispositivo 2 de usuario y el usuario responde con un mensaje de respuesta que es procesado por el servidor 1. La respuesta que se corresponde con los campos de datos contenidos en la región A del formulario se almacena en la memoria 220 de sesión de usuario. El siguiente fragmento 233 se transmite al dispositivo de usuario y la respuesta correspondiente se almacena en la memoria de sesión de usuario. Este proceso se repite hasta que se transmite el fragmento final 237. La respuesta a este fragmento F del formulario incluye el accionamiento de un botón 238 de presentación. Si el accionamiento del botón 238 de presentación esta contenido en el mensaje de repuesta final, la información requerida en la memoria 220 de sesión de usuario se completa y el conjunto completo de datos de cumplimentación del formulario se pasa a una aplicación 239 de procesamiento de datos.
La forma en la cual el formulario se divide en regiones A, B, C, D, E y F es definida por el autor como parte de las directivas de diseño.
El código transmitido al dispositivo 2 de usuario típicamente también incluye un script de definición de las instrucciones para controlar el navegador del dispositivo 2 de usuario remoto para realizar la validación y verificación de los datos introducidos por el usuario durante la implementación del formulario. El script es generado por el motor 21 generador de código basándose en las etiquetas escritas por el autor que incluyen una definición de reglas de validación a aplicar a los datos introducidos por el usuario durante la cumplimentación del formulario.
Si por ejemplo se indica que un campo de datos es un campo numérico, pueden aplicarse límites a los valores numéricos para propósitos de validación.
La manera en la que el motor 21 generador de código genera el código de script depende de la versión del lenguaje de script adecuado para el dispositivo 2 de usuario remoto, según se indica mediante las directivas del protocolo.
En un ejemplo adicional, un dispositivo 2 de usuario es de un tipo con una potencia de procesamiento limitada tal como un teléfono móvil en el cual las reglas de validación se aplican mediante el software que existe en el procesador o en la tarjeta SIM del dispositivo. En este caso, no se requiere que el motor 21 generador de código genere un script para su transmisión al dispositivo para realizar los pasos de validación ya que es suficiente suministrar parámetros de validación en un formato dictado por el software existente dentro del dispositivo de usuario.
Cuando se responde a un dispositivo 2 de usuario remoto que usa un protocolo que soporta plantillas, el autor puede especificar que esa plantilla sea generada por el motor 21 generador de código. La plantilla puede compartirse a través de múltiples páginas. Para aquellos dispositivos en los que el protocolo disponible no soporta plantillas, el motor 21 generador de código genera código adicional para crear un efecto visual en las páginas visualizadas resultantes que emula la definición de la plantilla definida por el autor.
Por ejemplo, los navegadores de HTML 4 pueden aplicar plantillas al HTML recibido mientras que los navegadores de HTML 3 no pueden hacerlo. Por lo tanto es necesario que los navegadores HTML 3 reciban código HTML adicional para añadir la fuente, el color y otros atributos para conseguir el mismo efecto que el suministrado por la plantilla.
Se requiere que el autor defina la información de la plantilla y el motor 21 generador de código, si fuera necesario, generará automáticamente el código adicional requerido si las plantillas no estuvieran soportadas.
Algunos dispositivos de usuario no suministran representación visual, tal como por ejemplo aquellos dispositivos diseñados para su uso por usuarios visualmente discapacitados. Dichos dispositivos típicamente son proporcionados por un proveedor de servicios que aloja un grabador de voz en un ordenador del proveedor de servicios, convirtiendo así el código HTTP recibido en señales de comunicación que proporcionan mensajes de voz. Dicho proveedor de servicios podría por lo tanto actuar como intermediario entre el servidor 1 y el dispositivo 2 de usuario remoto de las realizaciones anteriores. El código de página web de salida podría ser emitido entonces de forma ventajosa por el motor generador de código en voiceXML.
La figura 24 ilustra una de las funciones de la interfaz gráfica 4 de usuario utilizada cuando se almacenan archivos creados durante la creación de una página web. Una situación común surge cuando la misma imagen de fondo y el texto tiene que incorporarse en las páginas web descargadas en un número de tipos diferentes de dispositivos que requieran formatos diferentes. Se proporciona un convertidor 241 de datos de acuerdo con una realización adicional de la presente invención para ayudar al autor en la tarea de generar los archivos apropiados. Según se muestra en la figura 24, se suministra un paquete 240 de autor con un convertidor 241 de datos para que el paquete de autor convierta una salida de archivo de datos en un conjunto de archivos que se almacenan, mediante el concurso de un gestor 242 de archivos, en la estructura de datos.
La figura 25 ilustra los pasos de un procedimiento para operar con los elementos de la figura 24. En el paso 250, el convertidor 241 de datos recibe del el paquete 240 de autor un archivo que contiene datos que tiene que almacenarse como un objeto de datos. A modo de ejemplo, este archivo de datos comprende una imagen en formato GIF.
En el paso 251, el convertidor 241 de datos determina el tipo de datos (es decir, si los datos son de imagen, de texto o de otro tipo) y acude a la tabla 30 de directivas de dispositivo para determinar una lista de diferentes formatos de datos que pueden ser requeridos durante la operación del motor 21 generador de código, de acuerdo con el valor del identificador 45 de tipo de dispositivo.
En el paso 253, el convertidor 241 de datos genera para cada uno de estos formatos de la lista un archivo convertido que tiene el formato apropiado y los metadatos asociados. En el paso 243, el gestor 242 de archivos almacena los archivos en la estructura de datos.
Esta disposición hace posible que el autor introduzca texto y parámetros gráficos solamente una vez, el convertidor de datos y el gestor de archivos asumirán entonces la tarea de generar conjuntos de archivos de diferentes formatos para el almacenamiento y subsiguiente uso de los objetos de datos.
Las realizaciones antes descritas se refieren a la implementación utilizando JAVA, a modo de ejemplo. Pueden utilizarse alternativas a JAVA en la implementación de la presente invención y las referencias a JAVA, JAVA beans y máquina virtual JAVA no deben entenderse como limitativas del ámbito de la invención.
La presente invención puede implementarse mediante un programa informático operado en un ordenador en el contexto de un servidor web. Así un aspecto de la presente invención suministra un medio de almacenamiento que almacena instrucciones implementables por un procesador para controlar un procesador para llevar a cabo el procedimiento antes descrito.
Además el programa informático puede obtenerse de forma electrónica por ejemplo descargando el código a través de una red tal como Internet. De acuerdo con otro aspecto de la presente invención se suministra una señal eléctrica que lleva instrucciones implementables por un procesador para controlar un procesador para llevar a cabo el procedimiento antes descrito.
La presente invención tiene aplicación en redes diferentes a Internet incluyendo redes privadas y otras redes públicas.
Las tablas de directivas, las etiquetas programables y el motor generador de código pueden proporcionarse como productos de software bien por separado o en combinación como un conjunto de software y constituyen otro aspecto de la presente invención, cuando se conforman en un medio de almacenamiento o en forma de señales eléctricas. Los nombres de dispositivo a los que se hace referencia en la figura 6 incluyen en las capas 63, 64 y 65 los nombres de tipos de dispositivos que por la presente se reconocen que son de marcas comerciales.
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
Apéndice 1
Canvas creado para Volantis Product
\vskip1.000000\baselineskip
<%@ include file = "volantis. jsp" %>
<vt:canvas layoutName = "eportal" themeName = ``theme1>
<vt: anchor href = "TestPortal.jsp" pane = "logol1" image = "stars" />
<vt:logo pane = "logo2" src= "volantis" alt = "volantis" />
<vt.:welcome pane ="welcome" />
<vt:h2 pane = "shop">Shop for Cool Stuff at <a href = "shopcart.jsp"> Shorp Volantis</a></vt : h2>
<vt:Headline pane = "headlines" show = "2" />
<vt:Content pane = "cpynews"/>
</vt:canvas>
\newpage
Apéndice 2
Página resultante enviada a un Ordenador Personal usando HTML
\vskip1.000000\baselineskip
<html>
<head>
<link REL = STYLESHEET HREF = "css/JSP-Styles.css"
TYPE = "text./css">
<script language= "JavaScript">
<!- -
//- -></script>
</head>
<body>
<table border = 0 cellpadding = 0 columns = 2><tr>
<td align = center valign = top>
<table border = 0 cellpadding = 0 columns = 1
<tr><td align = center valign = top>
<table border = 0 cellpadding = 0 columns=1>
<tr><td align = center valign = top>
<table border = 0 cellpadding = 0 columns = 2><tr>
<td align = center valign = top>
<table border = 0 cellpadding = 0><tr>
<td>
<a href = "TestPortal.j sp" >
<img src = "images/stars0.jpg"/>
</ a>
</ td></ tr></ table>
</ td>
<td align = center valign = top>
<table border = 0 cellpadding = 0><tr>
<td>
<img src = "images/volantis0. jpg" alt = "volantis">
</td></tr></tabJ.e>
</ td></ tr></ table>
</ td>
</ tr></ table>
</ td><tr>
<tr><td align = center valign = top>
<table border = 0 cellpadding = 0><tr>
<td>
<hr><b>Bienvenido a Volantis; Rhys Lewis</b>
Puede configurar sus preferencias para las noticias<a href = setupnewsdevice.adp> aquí </a>
<br><hr>
</ td></ tr><1 table>
</ td></ tr>
<tr><td align = center valign = top>
<table border = 0 cellpadding = 0><tr>
<td>
<h2>Shop for Cool Stuff at <a href = "Shopcart.jsp">Shop Volantis</ a></ h2>
</ td></ tr><! table>
</ td></ tr>
</ table
</ td></ tr>
<tr><td align = center valign = top>
<table border = 0 cellpadding = 0 columns = 2><tr>
<td align = center valign = top>
<table border = 0 cellpadding = 0><tr>
<td>
<table align = right border = 0>
<tr><td><table borderwidth = 3 bordercolor = cyan><tr><th class = headline
align = left>XML and metadata news</ th></ tr>
<tr><td><a
href = cliickthru.jsp?cat = 278&url = htt:p://c.moreover.coxm/click/here.pl?x8102028>ThinkersGroup.com finaliza las pruebas beta de la aplicación Web a Inalámbrico </ a></ td></ tr>
<tr><td class = sub>7 de julio de 2000 08:05AM</ td>< /tr>
<tr><td><a
href = clidkthru.jsp?cat = 278&url = http://c.moreover.com/click/here.pl?x8099873> XSL da a su XML algo de estilo </ a></ td></ tr>
<tr><td class = sub>7 de julio de 2000 06:59AM</ td></ tr>
</ tablle></ td></ tr>
<tr><td><table borderwidth = 1 bordercolor = cyan><tr><th class = headline
align = left>Noticias del sector inalábrico </ th></ tr>
< tr>< td><a
href = clickthru.jsp?cat = 277&url = http://c.moreover.com/click/here.pl?x8102312> Nokia, C&W se asocian para ofrecer servicios de Internet móbiles </ a></ td></ tr>
<tr><td class = sub>07 de julio de 2000 08:16AM</ td></ tr>
<tr><td><a
href = clickthru.jsp?cat = 211&UX1 = http://c.moreover.com/click/here.pl?x8102269> NASDAQ Oulook; Qualcomm finalizan en breve la lección de física, entonces podrían duplicarse </a>< /td>< /tr>
<tr><td class =sub>07 de julio de 2000 08:15AM</ td></ tr>
</ table></ td></ tr>
<tr><td><table borderwidth = 1 bordercolor = cyan><tr><th class = headline align = left>Top
Historias de tecnología</ th></ tr>
<tr><td><a
href = c1lckthru.jsp?cat = 273&url = http://c.moreovar.com/click/here.pl?x810 2034>PRIMUS Telecommunications y Inktomi fraguan una alianza estratégica para contruir una infraestructura global para Streaming Media</a></ td></ tr>
<tr><td class = sub>07 de julio de 2000 08:05AM</ td></ tr>
<tr>< td><a
href = clickthru.jsp?cat = 273&url = http://c.moreover.com/click/here.pl?x8098274>Jesse Berst's Anchordesk: La larga espera de los teléfonos web </ a></ td></ tr>
<tr><td class = sub>07 de julio de 2000 06:19AM</ td></ tr>
</ table
</ td></ tr></table>
</ td>
<td align = center valign = top>
<table border = 0 cellpadding = 0><tr>
<td>
<table width = 100% align = top>
<tr><td colspan=2><h2>Informix mejora la base de datos de Java </ h2></ td></ tr>
<tr><td width = 30% valign = top align = left><img src = database.gif border =
0></ td> <td width = 70%><p><b>Informix</ b> (NASDAQ: IFMX) dice que ha actualizado su base de datos Cloudscape basada en Java para para dar soporte a Windows CE y Pocket Pc. Además de añadir plataformas, Cloudscape 3.5 ha añadido mayor seguridad.</ p>
<p>Cloudscape 3.5 consta del sistema de gestión de base de datos Cloudscape, Cloudsync para la sincronización de datos y aplicaciones y Cloudconnector, una plataforma de servidor para conexiones de Internet al SGBD Cloudscape.</p>
<p>La compañía está efectuando una demostración de la actualización en la Conferencia de JavaOne esta semana en San Francisco. Estará comercialmente disponible en Julio del 2000. El servidor puede adquirirse a partir de 1.999\textdollar.</ p> </ td></ tr>
<tr><td colspan = 2><h2>AT&T Wireless, Nortel to Trial GPRS</ h2></td></tr>
<tr><td width = 30% valign = top align = left><img src = wireless.gif border = 0></td>
<t:d width = 70%><p>AT&T Wireless Services (NYSE: AWE) y Nortel Networks (NYSE/TSE: NT) informan de que este verano iniciaran las pruebas del General Packet Radio Service (GPRS) de banda ancha en los EE.UU. y están trabajando en la eventual entrega de un servicio de tercera generación (3G) más rápido.</p>
<p>Las pruebas del GPRS comenzarán en varias de las más importantes ciudades de los EE.UU., informaron estas compañías. Las compañías están trabajando juntas para introducir eventualmente la tecnología TDMA-EDGE 3G completa.</p>
<p>"Estas pruebas que utilizan soluciones de red de núcleo GPRS de Nortel Networks son un paso significativo en el desarrollo del TDMA-EDGE y subrayan el rápido progreso que la industria está realizando", declaró Roderick Nelson, jefe del departamento de tecnología de AT&T Wireless Services. El eventual objetivo es ofrecer cobertura inalámbrica de banda ancha a los clientes de la compañía en cualquier lugar del mundo, añadió.</p>
<p>Las compañías no especificaron cuándo estará comercialmente disponible el servicio GPRS.</p>
</ td></ tr>
</ table>
</ td></ tr></ table>
</ td>
</ tr></ table>
</ td></ tr>
<tr><td align = center valign = top>
<table border = 0 cellpadding = 0><tr>
<td>
</ td></ tr></ table>
</ td></ tr>
</td>
<td align = left valign = center>
<table border = 0 cellpadding = 0><tr>
<td>
</ td></ tr></ table>
<td>
</ tr></ table>
</ body></ html>
\newpage
Apéndice 3
Página resultante enviada a un teléfono móvil con servicio de Internet
\vskip1.000000\baselineskip
<?xml version="1.0"?>< !DOC'l'YPE wml PUBLiC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml><card>
<table align = "center" columns = "2"><tr>
<td>
<p>
<a href="TestPortal.jsp">
<img src="images/stars10.bmp" />
</ a>
</ p>
</ td>
<td>
<b>VoJ.antis</ b>
</ td>
</ tr></ table>
<p><em><a href = "list1tmp1475618599.wml">Noticias de la compañía</ a></ em></p>
<p><em><a href = "list1tmp1484083075.wml">Titulares</ a></ em></p>
<p><a href = "LoginForm.jsp">Por favor, inice sesión </a></p>
</ card></ wml>
\vskip1.000000\baselineskip
Apéndice 4
El Lote Generado Automáticamente para Contener Noticias de la Empresa
\vskip1.000000\baselineskip
<?xml version ="1.0"?><DOCTYPE wml PUBLIC -//WAPFORUN//DTD WML 1.1//EN''
"httpd://www.wapforum.org/DTD/wml_1.1.xml">
<vml><card>
<p><em><a href = "list2tmp302605028.wml">Informix mejora la base de datos de Java </ a></ em></ p>
<p><em><a href = "list2tmp299142288.wml">AT&amp;T Wireless, Nortel prueban el GPRS</ a></ em></ p>
</ card></ wml>
\newpage
Apéndice 5
El Lote Generado Automáticamente para contener la Historia de AT&T
\vskip1.000000\baselineskip
<xml version="1.0"?><!DOCTYPE wml PUBLIC "- -//WAPFORUM//DTD wml 1.1/ /EN"
"httpd:/ /www.wapforum.org/DTD/wml_1.1.xm1">
<wml><card>
<p><em>AT&amp;T Wireless, Nortel prueban el GPRS</em></p><p> AT&amp;T Wireless Services (NYSE: AWE) y Nortel Networks (NYSE/TSE: NT) informan de que este verano iniciaran las pruebas del General Packet Radio Service (GPRS) de banda ancha en los EE.UU. y están trabajando en la eventual entrega de un servicio de tercera generación (3G) más rápido. </p>
<p> Las pruebas del GPRS comenzarán en varias de las más importantes ciudades de los EE.UU., informaron estas compañías. Las compañías están trabajando juntas para introducir eventualmente la tecnología TDMA-EDGE 3G completa. </p>
<p>&quot; Estas pruebas que utilizan soluciones de red de núcleo GPRS de Nortel Networks son un paso significativo en el desarrollo del TDMA-EDGE y subrayan el rápido progreso que la industria está realizando&quot;, declaró Roderick Nelson, jefe del departamento de tecnología de AT&amp;T Wireless Services. El eventual objetivo es ofrecer cobertura inalámbrica de banda ancha a los clientes de la compañía en cualquier lugar del mundo, añadió. </p>
<p> Las compañías no especificaron cuándo estará comercialmente disponible el servicio GPRS.</p>
< / card>< / wml >

Claims (95)

1. Un aparato (1) para responder a un mensaje de petición transmitido desde un dispositivo (2) de usuario remoto de información de página web mediante la generación de código de página web capaz de ser interpretado por el dispositivo de usuario para visualizar una o más páginas web y para emitir un mensaje de respuesta que comprenda el código de página web, el aparato comprende:
medios (29, 20) de extracción para extraer del mensaje de petición la información que determina un identificador de tipo de dispositivo que identifica el dispositivo de usuario remoto como perteneciente a un conjunto de tipos posibles de dispositivos que tienen diferentes atributos técnicos.
un procesador (20) para controlar el motor (21) generador de código para generar el código de página web.
primeros medios (22, 23) de memoria para almacenar la información de página web como un documento de contenido que comprende un conjunto de instrucciones (42) escritas en un lenguaje de script para generar el código de página web y
segundos medios de memoria (22, 25) para almacenar información relativa al dispositivo para cada uno del conjunto de los diferentes tipos de dispositivo;
en donde el motor generador de código comprende medios de interpretación (40, 41, 44) para interpretar las instrucciones con referencia a la información dependiente del dispositivo seleccionado que se corresponde con el identificador de tipo de dispositivo, el motor generador de código se controla de esta manera para generar código de página web en una forma en la cual el código de página web se adapta al dispositivo de usuario remoto;
el aparato además comprende:
un medio (190) de cuantificación de código para cuantificar la cantidad de código representativo de una página (210) generada por el motor generador de código;
un medio (190) de determinación para determinar si los atributos técnicos del dispositivo de usuario incluyen suficiente capacidad de datos para alojar la cantidad cuantificada de código y un medio (190) de división que responde a una determinación negativa dividiendo el código en dos o más partes de código de forma que cada parte sea representativa de una parte respectiva (211-216) de la página y comprenda una cantidad de código dentro de la capacidad de datos del dispositivo de usuario.
2. Un aparato como el reivindicado en la reivindicación 1, en el que el lenguaje de script comprende un primer lenguaje de señalamiento;
3. Un aparato como el reivindicado en la reivindicación 2, en el que el documento de contenido comprende código de contenido que define la información a ser visualizada y etiquetas predefinidas (43) para controlar la presentación de la información a visualizar; en el que el medio de interpretación es operable para interpretar cada etiqueta con referencia a la información (40) dependiente del dispositivo seleccionado.
4. Un aparato como el reivindicado en la reivindicación 3, en el que la información dependiente del dispositivo se almacena como un conjunto de tablas (40) y en el que la información dependiente del dispositivo se asimila en un conjunto de objetos (41) accesibles para las etiquetas en el entorno (46) de tiempo de ejecución del motor generador de código.
5. Un aparato como el reivindicado en la reivindicación 4, en el que el entorno de tiempo de ejecución comprende una máquina virtual JAVA (46) y el conjunto de objetos comprende JAVA beans (41).
6. Un aparato como el reivindicado en cualquiera de las reivindicaciones 4 y 5, en el que las tablas están en una forma jerárquica definiendo un árbol jerárquico (61-65) en cual los nodos se corresponden con los tipos respectivos de dispositivo en capas jerárquicas sucesivas.
7. Un aparato como el reivindicado en la reivindicación 6, en el que cada nodo de tipo de dispositivo se representa mediante entradas respectivas en cada una de las tablas para definir aquellos atributos del tipo de dispositivo que se diferencian de los atributos de un nodo padre desde el cual se ramifica el nodo del tipo de dispositivo.
8. Un aparato como el reivindicado en cualquiera de las reivindicaciones 4 a 7, en el que el conjunto de tablas comprende una tabla (30) de directivas de dispositivo que define los atributos técnicos de cada tipo de dispositivo.
9. Un aparato como el reivindicado en cualquiera de las reivindicaciones 4 a 8, en el que el conjunto de tablas comprende una tabla (31) de directivas de protocolo que define el formato del código de página web generado por el motor generador de código.
10. Un aparato como el reivindicado en cualquier reivindicación precedente, en el que el código de página web se genera en un segundo lenguaje de señalamiento.
11. Un aparato como el reivindicado en la reivindicación 10, que comprende medios para seleccionar el segundo lenguaje de señalamiento de acuerdo con la información dependiente del dispositivo seleccionado en la tabla de directivas de protocolo entre un número de lenguajes de señalamiento que comprenden al menos HTML y WML.
12. Un aparato como el reivindicado en cualquiera de las reivindicaciones 4 a 11, en el que el conjunto de tablas comprende una tabla (32) de directivas de estilo que define el estilo de presentación de la información de la página web.
13. Un aparato como el reivindicado en la reivindicación 12, en el que la tabla de directivas de estilo define atributos que incluyen al menos uno de los siguientes:
(a)
atributos de fuente;
(b)
color y
(c)
fondo.
14. Un aparato como el reivindicado en cualquiera de las reivindicaciones 4 a 13, en el que el conjunto de tablas comprende una tabla (33) de directivas de tema que define al menos una de las siguientes características
(a)
características decorativas y
(b)
un logotipo.
15. Un aparato como el reivindicado en cualquiera de las reivindicaciones 4 a 14, en el que el conjunto de tablas comprende una tabla (35) de directivas de diseño que define para cada tipo de dispositivos el diseño de al información de la página web con respecto a un área de visualización de cada tipo de dispositivo.
16. Un aparato como el reivindicado en la reivindicación 15, en el que la tabla de directivas de diseño define el diseño con referencia a un conjunto de paneles (50) que comprenden partes del área de visualización y que contienen partes respectivas de la información de la página web.
17. Un aparato como el reivindicado en la reivindicación 16, en el que las directivas de diseño determinan para cada tipo de dispositivo el número y la configuración de los paneles.
18. Un aparato como el reivindicado en la reivindicación 17, en el que, para un tipo de dispositivo que tenga un área de pantalla mínima, las directivas de diseño determinan la configuración de las páginas para que formen un conjunto de lotes (51-53) que comprenden paneles simples (51-53) para su uso en la visualización de la información de la página web mostrando los lotes sucesivamente.
19. Un aparato como el reivindicado en cualquiera de las reivindicaciones 4 a 18, en el que el código de contenido comprende al menos un nombre (171) de componente que identifica un componente de datos respectivo y en el que el aparato comprende una estructura de datos en la cual existe al menos un componente de datos como un conjunto de objetos (170, 173, 175, 177) de datos que define versiones múltiples del componente de datos en donde los objetos de datos tienen diferentes propiedades de datos adecuadas a diferentes dispositivos de usuario remotos.
20. Un aparato como el reivindicado en la reivindicación 19, que comprende medios para seleccionar un objeto de datos entre un conjunto de objetos de datos identificado por un nombre de componente para su inclusión en el código de página web basándose en el identificador de tipo de dispositivo.
21. Un aparato como el reivindicado en la reivindicación 20, en el que el medio de selección comprende una tabla (37) de directivas de componentes para buscar una selección predeterminada de objeto de datos.
22. Un aparato como el reivindicado en la reivindicación 20, en el que el medio de selección es operable para determinar los atributos técnicos del dispositivo de usuario remoto y para seleccionar el objeto de datos comparando los atributos técnicos con las propiedades de los datos de cada objeto de datos.
23. Un aparato como el reivindicado en la reivindicación 22, en el que el medio de selección es operable para determinar los atributos técnicos mediante la referencia a una tabla (30) de directivas de dispositivo.
24. Un aparato como el reivindicado en cualquiera de las reivindicaciones 22 y 23, en el que los objetos de datos se almacenan en una estructura en la cual los metadatos (172, 174, 176, 178) se almacenan en asociación con cada objeto de datos y en donde las propiedades de los datos de cada objeto de datos son definidas por los respectivos
metadatos.
25. Un aparato como el reivindicado en cualquiera de las reivindicaciones 16 a 18, que comprende una interfaz gráfica (4) de usuario para recibir las entradas del usuario y un medio (240) de creación de documentos que responde a la interfaz gráfica de usuario para crear documentos de página web generando instrucciones.
26. Un aparato como el reivindicado en la reivindicación 25, en el que el medio de creación comprende un medio para recibir datos y un medio (241) de conversión de datos para convertir los datos en un conjunto de objetos de datos cada uno de los cuales contiene una versión respectiva de los datos adecuada a los atributos técnicos de un tipo de dispositivo respectivo.
27. Un aparato como el reivindicado en la reivindicación 26, en el que el conjunto de objetos de datos comprende además versiones múltiples que se corresponden con un conjunto de preferencias de usuario disponibles.
28. Un aparato como el reivindicado en la reivindicación 27, que comprende un medio para determinar una preferencia del usuario a partir del mensaje de petición y en el que el medio de selección además es operable para seleccionar el objeto de datos de acuerdo con la preferencia del usuario.
29. Un aparato como el reivindicado en la reivindicación 28, en el que las versiones múltiples comprenden versiones en cada uno de un conjunto de lenguajes y en el que las preferencias del usuario comprenden un lenguaje preferido.
30. Un aparato como el reivindicado en la reivindicación 8, en el que el medio de determinación es operable para determinar los atributos técnicos mediante la referencia a la tabla de directivas de dispositivo.
31. Un aparato como el reivindicado en cualquier reivindicación precedente, que comprende una memoria intermedia (191) para almacenar las partes de código para su posterior transmisión al dispositivo de usuario.
32. Un aparato como el reivindicado en la reivindicación 31, que comprende una memoria (220) de sesión para almacenar los datos de cliente recibidos en sucesivos mensajes desde el dispositivo de usuario en respuesta a sucesivas transmisiones de las respectivas partes de código que representan partes del panel y medios para combinar como un objeto de datos simple los datos del cliente durante una sesión completa en la cual los datos del cliente se reciben en respuesta a todas las partes del panel.
33. n aparato como el reivindicado en la reivindicación 32, en el que el panel define un formulario (230) y en el que las partes del panel comprenden respectivos campos de datos del formulario.
34. Un aparato como el reivindicado en cualquiera de las reivindicaciones 4 a 18, en el que el conjunto de tablas comprende una tabla (36) de directivas de dinámica que define los atributos de generación de código que se determinan de acuerdo con los valores de parámetros variables en el tiempo.
35. Un aparato como el reivindicado en la reivindicación 34, en el que los atributos de generación de código definen el contendido de imágenes del código de página web y el parámetro de variación de tiempo es el ancho de banda disponible para la comunicación con el dispositivo.
36. Un aparato como el reivindicado en cualquier reivindicación precedente, que comprende una memoria caché (120) operable par almacenar una copia del código de página web emitido en un mensaje de respuesta y
un medio (121) para emitir código de página web a partir de la copia almacenada en respuesta a la recepción de un mensaje adicional de petición de información de la misma página web.
37. Un aparato como el reivindicado en la reivindicación 36, en el que la memoria caché es operable para almacenar selectivamente código de página web dependiendo de si un requerimiento para el almacenamiento en la memoria caché está definido en el documento de contenido a partir del cual se general el código de página web.
38. Un aparato como el reivindicado en la reivindicación 37, en el que el requerimiento de almacenamiento en la memoria caché se fija mediante la operación de una etiqueta insertada en el documento de contenido.
39. Un aparato como el reivindicado en la reivindicación 38, en el que la etiqueta define además la duración de la validez de la copia del código de página web almacenada en la memoria caché.
40. Un aparato como el reivindicado en cualquier reivindicación precedente, en el que el medio de extracción es operable para extraer información de identificación a partir de una cabecera del mensaje de petición y para determinar el identificador de tipo de dispositivo mediante a la referencia a una tabla de identificadores de tipos de dispositivo para el que la información dependiente del dispositivo se encuentra almacenada en los segundos medios de memoria.
41. Un aparato como el reivindicado en la reivindicación 40, en el que el medio de extracción es operable para determinar a partir de la tabla, para la información de identificación obtenida de la cabecera, si está disponible un identificador de tipo de dispositivo correspondiente y, si no, para generar una indicación de que no se ha reconocido el dispositivo de usuario.
42. Un aparato como el reivindicado en la reivindicación 41, que comprende un medio de prueba que responde a la indicación de que el dispositivo de usuario no se ha reconocido para enviar un agente (113) de prueba hacia el dispositivo de usuario para extraer la información del dispositivo y un medio para a recibir un mensaje (115) de respuesta desde el dispositivo de usuario que contiene la información del dispositivo.
43. Un aparato como el reivindicado en la reivindicación 42, que comprende medios para comparar la información recibida del dispositivo con la información almacenada dependiente del dispositivo para dispositivos conocidos y un medio para determinar un identificador de tipo de dispositivo que se corresponde con la mayor coincidencia entre la información dependiente del dispositivo para dispositivos conocidos y la información del dispositivo para el dispositivo no reconocido.
44. Un aparato como el reivindicado en la reivindicación 43, en el que el motor generador de código es operable para generar código de página web utilizando el identificador de tipo de dispositivo del dispositivo conocido que se ha determinado que coincide mejor con el dispositivo no reconocido.
45. Un aparato como el reivindicado en cualquier reivindicación precedente, que además comprende:
un medio de recepción (1) para recibir el mensaje de petición a través de una red (3) a la cual se conecta el aparato durante su uso y
un medio de salida (1) para emitir el mensaje de respuesta, que comprende el código de página web, hacia el dispositivo de usuario a través de la red con la que el aparato se conecta durante su uso.
46. Un aparato como el reivindicado en cualquier reivindicación precedente, que comprende medios para seleccionar la información de página web de los primeros medios de memoria de acuerdo con el contenido del mensaje de petición y un medio para introducir la información de la página web y el identificador de tipo del dispositivo en el motor generador de código.
47. Un procedimiento para responder a un mensaje de petición, efectuado desde un dispositivo (2) de usuario remoto, de información de página web generando (200) código de página web capaz de ser interpretado por el dispositivo de usuario para mostrar una o más páginas web y para emitir un mensaje de respuesta que comprende el código de página web; el procedimiento comprende:
extraer (130) del mensaje de petición la información que determina un identificador (45) de tipo de dispositivo que identifica el dispositivo de usuario remoto como uno de un conjunto de posibles tipos de dispositivo que tienen diferentes atributos técnicos,
operar (141) un motor generador (21) de código para generar (142) el código de página web,
almacenar la información de página web en unos primeros medios (22, 23) de memoria, como un documento de contenido que comprende un conjunto de instrucciones (42) escritas en un lenguaje de script para generar el código de página web; y
almacenar la información dependiente del dispositivo de cada uno del conjunto de tipos diferentes de dispositivo en unos segundos medios (22, 25) de memoria;
en donde el motor generador de código interpreta (165) las instrucciones con referencia a la información dependiente del dispositivo seleccionado que se corresponde con el identificador de tipo de dispositivo, el motor generador de código genera de esta manera código de página web en una forma en la cual el código de página web se adapta al dispositivo de usuario remoto;
que además comprende los pasos de:
medir (201) la cantidad de código respectivo de una página generada por el motor generador de código;
determinar (203) si los atributos técnicos del dispositivo de usuario incluyen suficiente capacidad de datos para alojar la cantidad medida de código y, en respuesta a una determinación negativa, dividir (205) el código en dos o más partes de código de manera que cada parte sea representativa de una parte respectiva de la página y que comprenda una cantidad de código dentro de la capacidad de datos del dispositivo de usuario.
48. Un aparato como el reivindicado en la reivindicación 47, en el que el lenguaje de script comprende un primer lenguaje de señalamiento.
49. Un aparato como el reivindicado en la reivindicación 48, en el que el documento de contenido comprende código de contenido que define la información a ser mostrada y etiquetas predefinidas (43) para controlar la presentación de la información a ser mostrada;
\newpage
en donde el medio de interpretación interpreta (165) cada etiqueta con referencia a la información (40) dependiente del dispositivo seleccionado.
50. Un procedimiento como el reivindicado en la reivindicación 49, en el que la información dependiente del dispositivo se almacena como un conjunto de tablas (40) y en el que la información dependiente del dispositivo se asimila en un conjunto de objetos (41) accesibles para las etiquetas en el entorno (46) de tiempo de ejecución del motor generador de código.
51. Un aparato como el reivindicado en la reivindicación 50, en el que el entorno de tiempo de ejecución comprende una maquina virtual JAVA (46) y el conjunto de objetos comprende JAVA beans (41).
52. Un aparato como el reivindicado en cualquiera de las reivindicaciones 50 y 51, en el que las tablas tienen forma jerárquica definiendo un árbol jerárquico (61-65) en el cual los nodos se corresponden con los respectivos tipos de dispositivo en capas jerárquicas sucesivas.
53. Un procedimiento como el reivindicado en la reivindicación 52, en el que cada nodo de tipo de dispositivo se representa mediante las respectivas entradas en cada una de las tablas para definir aquellos atributos del tipo de dispositivo que se diferencian de los atributos de un nodo padre desde el cual se ramifica el nodo de tipo de dispositivo.
54. Un procedimiento como el reivindicado en cualquiera de las reivindicaciones 50 a 53, en el que el conjunto de tablas comprende una tabla de directivas de dispositivo que define los atributos técnicos de cada tipo de dispositivo.
55. Un procedimiento como el reivindicado en cualquiera de las reivindicaciones 50 a 54, en el que el conjunto de tablas comprende una tabla (31) de directivas de protocolo que define el formato del código de página web generado por el motor generador de código.
56. Un procedimiento como el reivindicado en cualquiera de las reivindicaciones 47 a 55, en el que el código de página web se genera en un segundo lenguaje de señalamiento.
57. Un procedimiento como el reivindicado en la reivindicación 56, que comprende la selección del segundo lenguaje de señalamiento, de acuerdo con la información dependiente del dispositivo seleccionado en la tabla de directivas de protocolo, entre un número de lenguajes de señalamiento que comprende al menos HTML y WML.
58. Un procedimiento como el reivindicado en cualquiera de las reivindicaciones 50 a 57, en el que el conjunto de tablas comprende una tabla (32) de directivas de estilo que define el estilo de presentación de la información de la página web.
59. Un procedimiento como el reivindicado en la reivindicación 58, en el que la tabla de directivas de estilo define atributos que incluyen al menos uno de los siguientes:
(a)
atributos de la fuente,
(b)
color y
(c)
fondo.
60. Un procedimiento como el reivindicado en cualquiera de las reivindicaciones 50 a 59, en el que el conjunto de tablas comprende una tabla (33) de directivas de tema que define al menos una de las características siguientes:
(a)
características decorativas y
(b)
un logotipo
61. Un procedimiento como el reivindicado en cualquiera de las reivindicaciones 50 a 60 en el que el conjunto de tablas comprende una tabla (35) de directivas de diseño que define para cada tipo de dispositivo el diseño de la información de la página web con respecto al área de visualización de cada tipo de dispositivo.
62. Un procedimiento como el reivindicado en la reivindicación 61, en el que la tabla de directivas de diseño define el diseño con referencia a un conjunto de paneles (50) que comprenden partes del área de visualización y que contienen partes respectivas de la información de la página web.
63. Un procedimiento como el reivindicado en la reivindicación 62, en el que las directivas de diseño determinan para cada tipo de dispositivo el número y la configuración de los paneles.
64. Un procedimiento como el reivindicado en la reivindicación 63, en el que, para un tipo de dispositivo que tenga un área de pantalla mínima, las directivas de diseño determinan la configuración de las páginas para que sean un conjunto de lotes (51-53) que comprendan paneles simples (51-53) para su uso en la visualización de la información de la página web mostrando los lotes sucesivamente.
65. Un procedimiento como el reivindicado en cualquiera de las reivindicaciones 50 a 64, en el que el código de contenido comprende al menos un nombre de componente (171) que identifica un componente de datos respectivo y en el que el procedimiento comprende el acceso a una estructura de datos en la cual existe al menos un componente de datos como un conjunto de objetos de datos que definen múltiples versiones del componente de datos, en donde los objetos de datos tienen diferentes propiedades de datos adecuadas a diferentes dispositivos de usuario remotos.
66. Un procedimiento como el reivindicado en la reivindicación 65, que comprende el paso de seleccionar (165) un objeto de datos entre el conjunto de objetos de datos identificado por un nombre de componente para su inclusión en el código de página web basándose en el identificador de tipo de dispositivo.
67. Un procedimiento como el reivindicado en la reivindicación 66, en el que el paso de selección comprende el acceso a una tabla (37) de directivas de componentes para buscar una selección predeterminada de objetos de datos.
68. Un procedimiento como el reivindicado en la reivindicación 66, en el que el paso de selección determina los atributos técnicos del dispositivo de usuario remoto y selecciona el objeto de datos comparando los atributos técnicos con las propiedades de los datos de cada objeto de datos.
69. Un procedimiento como el reivindicado en la reivindicación 68, en el que el paso de selección determina los atributos técnicos mediante la referencia a una tabla (30) de directivas de dispositivo.
70. Un procedimiento como el reivindicado en cualquiera de las reivindicaciones 68 y 69, en el que los objetos de datos se almacenan en una estructura de datos en la cual se almacenan metadatos (172, 174, 176, 178) en asociación con cada objeto de datos y en el que las propiedades de los datos de cada objeto de datos se definen mediante los respectivos metadatos.
71. Un procedimiento como el reivindicado en cualquiera de las reivindicaciones 62 a 64, que comprende la recepción de una entrada de usuario a través de una interfaz gráfica (4) de usuario y la operación de un medio (240) de creación de documento que responde a la interfaz gráfica de usuario para crear documentos de página web generando instrucciones.
72. Un procedimiento como el reivindicado en la reivindicación 71, que comprende los pasos de recibir datos y convertir los datos en un conjunto de objetos de datos cada uno de los cuales contiene una versión respectiva de los datos adecuada a los atributos técnicos de un tipo respectivo de dispositivo.
73. Un procedimiento como el reivindicado en la reivindicación 72, en el que el conjunto de objetos de datos comprende además múltiples versiones que se corresponden con un conjunto de preferencias de usuario disponibles.
74. Un procedimiento como el reivindicado en la reivindicación 73, que comprende la determinación de una preferencia del usuario a partir de un mensaje de petición y en el que el paso de selección selecciona el objeto de datos de acuerdo con la preferencia del usuario.
75. Un procedimiento como el reivindicado en la reivindicación 74, en el que las versiones múltiples comprenden versiones en cada uno de un conjunto de lenguajes y en el que la preferencia del usuario comprende un lenguaje preferido.
76. Un procedimiento como el reivindicado en la reivindicación 54, en el que en el paso de determinación se determinan los atributos técnicos mediante la referencia a la tabla de directivas de dispositivo.
77. Un procedimiento como el reivindicado en cualquier reivindicación precedente, que comprende el almacenamiento de partes de código en una memoria intermedia para su posterior transmisión al dispositivo de usuario.
78. Un procedimiento como el reivindicado en la reivindicación 77, que comprende el almacenamiento en una memoria de sesión de los datos del cliente recibidos en sucesivos mensajes del dispositivo de usuario en respuesta a sucesivas transmisiones de las respectivas partes de código que representan partes de la página, y la combinación como un objeto de datos simple de datos los del cliente para una sesión completa en la cual se reciben los datos del cliente en respuesta a todas las partes de la página.
79. Un procedimiento como el reivindicado en la reivindicación 78, en el que la página define un formulario y en el que las partes de la página comprenden respectivos campos de datos del formulario.
80. Un procedimiento como el reivindicado en cualquiera de las reivindicaciones 50 a 64, en el que el conjunto de tablas comprende una tabla de directivas de dinámica que define los atributos de generación del código que se determinan de acuerdo con los valores de parámetros variables en el tiempo.
81. Un procedimiento como el reivindicado en la reivindicación 80, en el que los atributos de generación del código definen el contenido de imágenes del código de página web y el parámetro variable en el tiempo es el ancho de banda disponible para la comunicación con el dispositivo.
82. Un procedimiento como el reivindicado en cualquiera de las reivindicaciones 47 a 81, que comprende el almacenamiento en una memoria caché de una copia del código de página web emitido en un mensaje de respuesta y
la emisión (132, 135) del código de página web a partir de la copia almacenada en respuesta a la recepción de un mensaje adicional de petición de la información de la misma página web.
83. Un procedimiento como el reivindicado en la reivindicación 82, en el que la memoria caché almacena selectivamente código de página web dependiendo de si un requerimiento para almacenamiento en memoria caché está definido en el documento de contenido desde el cual se genera el código de página web.
84. Un procedimiento como el reivindicado en la reivindicación 83, en el que el requerimiento para el almacenamiento en memoria caché se fija mediante la operación de una etiqueta insertada en el documento de contenido.
85. Un procedimiento como el reivindicado en la reivindicación 84, en el que la etiqueta define además la duración de la validez de la copia del código de página web almacenada en la memoria caché.
86. Un procedimiento como el reivindicado en cualquiera de las reivindicaciones 47 a 85, en el que en el paso (130) de extracción se extrae información de identificación de la cabecera del mensaje de petición y se determina el identificador de tipo de dispositivo mediante la referencia a una tabla de identificadores de tipo de dispositivo para el cual la información dependiente del dispositivo se almacena en los segundos medios de memoria.
87. Un procedimiento como el reivindicado en la reivindicación 86, en el que en el paso de extracción se determina a partir de la tabla, para la información de identificación obtenida de la cabecera, si está disponible un identificador de tipo de dispositivo correspondiente y, si no, se genera una indicación de que el dispositivo de usuario no se ha reconocido.
88. Un procedimiento como el reivindicado en la reivindicación 87, que comprende la actuación de un medio de prueba, en repuesta a la indicación de que el dispositivo de usuario no se ha reconocido, enviando un agente de prueba al dispositivo de usuario para extraer información del dispositivo, y la recepción de un mensaje de respuesta que contiende la información del dispositivo enviado desde el dispositivo de usuario.
89. Un procedimiento como el reivindicado en la reivindicación 88, que comprende la comparación de la información recibida del dispositivo con la información almacenada dependiente del dispositivo para dispositivos conocidos y la determinación de un identificador de tipo de dispositivo que se corresponde con el de la mayor coincidencia entre la información dependiente del dispositivo para dispositivos conocidos y la información del dispositivo del dispositivo no reconocido.
90. Un procedimiento como el reivindicado en la reivindicación 89, en el que el motor generador de código genera código de página web usando el identificador de tipo de dispositivo del dispositivo conocido que se ha determinado que tiene una mayor coincidencia con el dispositivo no reconocido.
91. Un procedimiento como el reivindicado en cualquiera de las reivindicaciones 47 a 90, que comprende además:
la recepción de un mensaje de petición a través de una red, y
la emisión de un mensaje de respuesta, que comprende el código de página web, hacia el dispositivo de usuario a través de la red.
92. Un procedimiento como el reivindicado en cualquiera de las reivindicaciones 47 a 91, que comprende la selección de la información de página web de los primeros medios de memoria de acuerdo con el contenido del mensaje de petición y la introducción de la información de página web y del identificador de tipo de dispositivo en el motor generador de código.
93. Un programa informático que comprende instrucciones implementables por un procesador para controlar un procesador para llevar a cabo el procedimiento de una cualquiera de las reivindicaciones 47 a 92.
94. Un medio de almacenamiento que almacena instrucciones implementables por un procesador para controlar el procesador para llevar a cabo el procedimiento de una cualquiera de las reivindicaciones 47 a 92.
95. Una señal eléctrica que lleva instrucciones implementables por un procesador para controlar un procesador para llevar a cabo el procedimiento de una cualquiera de las reivindicaciones 47 a 92.
ES01967547T 2000-09-26 2001-09-24 Servidor de red. Expired - Lifetime ES2256292T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB0023570.5A GB0023570D0 (en) 2000-09-26 2000-09-26 Web server
GB0023570 2000-09-26

Publications (1)

Publication Number Publication Date
ES2256292T3 true ES2256292T3 (es) 2006-07-16

Family

ID=9900156

Family Applications (1)

Application Number Title Priority Date Filing Date
ES01967547T Expired - Lifetime ES2256292T3 (es) 2000-09-26 2001-09-24 Servidor de red.

Country Status (13)

Country Link
US (1) US7739658B2 (es)
EP (2) EP1320972B1 (es)
JP (1) JP4865983B2 (es)
KR (1) KR100874985B1 (es)
CN (1) CN1268103C (es)
AT (1) ATE314781T1 (es)
AU (1) AU2001287920A1 (es)
DE (1) DE60116343T2 (es)
ES (1) ES2256292T3 (es)
GB (3) GB0023570D0 (es)
HK (1) HK1049046B (es)
SG (1) SG136805A1 (es)
WO (1) WO2002027543A2 (es)

Families Citing this family (200)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060061551A1 (en) * 1999-02-12 2006-03-23 Vega Vista, Inc. Motion detection and tracking system to control navigation and display of portable displays including on-chip gesture detection
US20060061550A1 (en) * 1999-02-12 2006-03-23 Sina Fateh Display size emulation system
US20060279542A1 (en) * 1999-02-12 2006-12-14 Vega Vista, Inc. Cellular phones and mobile devices with motion driven control
US7089330B1 (en) * 2000-09-28 2006-08-08 I2 Technologies Us, Inc. System and method for transforming custom content generation tags associated with web pages
US20020109673A1 (en) * 2001-01-04 2002-08-15 Thierry Valet Method and apparatus employing angled single accelerometer sensing multi-directional motion
WO2002082229A2 (en) 2001-04-09 2002-10-17 America Online Incorporated Server-based browser system
US8776230B1 (en) * 2001-10-02 2014-07-08 Mcafee, Inc. Master security policy server
US20030149981A1 (en) * 2002-01-31 2003-08-07 Paul Finster System and method for generating customized EPG data and EPG application programs
US20030145325A1 (en) * 2002-01-31 2003-07-31 Paul Finster Method and system for presentation of pre-generated programming information
CN1628304A (zh) * 2002-02-07 2005-06-15 皇家飞利浦电子股份有限公司 用于管理终端多样性而上载的样式表
US7299033B2 (en) 2002-06-28 2007-11-20 Openwave Systems Inc. Domain-based management of distribution of digital content from multiple suppliers to multiple wireless services subscribers
US7426545B2 (en) * 2002-06-28 2008-09-16 International Business Machines Corporation Systems and methods for transparently accessing Web applications remotely and locally
US8645862B2 (en) 2002-06-28 2014-02-04 International Business Machines Corporation Displaying and executing web services in multiple content domains
US7200818B2 (en) * 2002-06-28 2007-04-03 International Business Machines Corporation Systems and methods for messaging in a multi-frame Web application
US20040003130A1 (en) * 2002-06-28 2004-01-01 International Business Machines Corporation Systems and methods for accessing web services using a tag library
US7233790B2 (en) * 2002-06-28 2007-06-19 Openwave Systems, Inc. Device capability based discovery, packaging and provisioning of content for wireless mobile devices
US20040015537A1 (en) * 2002-07-15 2004-01-22 Richard Doerksen Handheld client framework system
US7373347B2 (en) * 2002-07-22 2008-05-13 Ricoh Company, Ltd. Information processing apparatus and information processing method
US7051040B2 (en) 2002-07-23 2006-05-23 Lightsurf Technologies, Inc. Imaging system providing dynamic viewport layering
EP1535140A4 (en) * 2002-08-19 2008-02-13 Macrosolve Inc SYSTEM AND METHOD FOR PROCESSING DATA
US20040098704A1 (en) * 2002-11-14 2004-05-20 International Business Machines Corporation Systems and methods for defining Web applications pages
US20040111525A1 (en) * 2002-12-09 2004-06-10 International Business Machines Corporation Dynamic web service implementation discovery and selection apparatus and method
US7188155B2 (en) * 2002-12-17 2007-03-06 International Business Machines Corporation Apparatus and method for selecting a web service in response to a request from a client device
US7284039B2 (en) * 2002-12-17 2007-10-16 International Business Machines Corporation Apparatus and method for flexible web service deployment
US7200648B2 (en) * 2003-03-28 2007-04-03 Institute For Information Industry Dynamic searching method of provisioning instance identifiers
JP4340566B2 (ja) * 2003-04-01 2009-10-07 株式会社リコー Webページ生成装置、組み込み装置、Webページ生成の制御方法、Webページ生成プログラム及び記録媒体
US7506069B2 (en) * 2003-04-25 2009-03-17 Sap Ag Accessing data in a computer network
US20040230901A1 (en) * 2003-05-15 2004-11-18 International Business Machines Corporation Portlet style conformity on pervasive agents
US7168063B2 (en) * 2003-06-10 2007-01-23 Microsoft Corporation Systems and methods for employing tagged types in a dynamic runtime environment
KR20050026673A (ko) * 2003-09-09 2005-03-15 삼성전자주식회사 네트워크를 통한 컨텐츠 다운로드 시스템
FR2857807B1 (fr) * 2003-07-18 2005-12-02 Cit Alcatel Procede de transaction pour un approvisionnement de regles dans un reseau gere a base de regles
JP4709481B2 (ja) * 2003-07-31 2011-06-22 インターナショナル・ビジネス・マシーンズ・コーポレーション サーバ、情報処理方法およびプログラム
JP4553599B2 (ja) * 2003-08-29 2010-09-29 コニカミノルタビジネステクノロジーズ株式会社 データ表示システム、データ出力装置、画像形成装置、データ表示装置およびデータ表示プログラム
CN1839598B (zh) * 2003-09-15 2011-06-08 法国电信 传输多媒体消息的系统和方法
US9100814B2 (en) 2003-09-17 2015-08-04 Unwired Plant, Llc Federated download of digital content to wireless devices
JP4414181B2 (ja) * 2003-09-19 2010-02-10 株式会社Access メッセージ表示端末及びゲートウェイサーバ、並びにメッセージ表示端末用プログラム及びゲートウェイサーバ用プログラム
KR100697416B1 (ko) * 2003-09-30 2007-03-20 교세라 가부시키가이샤 모바일 통신 단말기, 정보 제공 시스템 및 프로그램을기록한 컴퓨터 판독가능한 기록 매체
US7451251B2 (en) * 2003-12-29 2008-11-11 At&T Corp. Method for redirection of web streaming clients using lightweight available bandwidth measurement from a plurality of servers
JP4179553B2 (ja) * 2004-03-15 2008-11-12 インターナショナル・ビジネス・マシーンズ・コーポレーション 表示制御情報生成方法、表示制御情報を生成するコンピュータ、およびプログラム
US8635350B2 (en) 2006-06-12 2014-01-21 Icontrol Networks, Inc. IP device discovery systems and methods
US11343380B2 (en) 2004-03-16 2022-05-24 Icontrol Networks, Inc. Premises system automation
US11316958B2 (en) 2008-08-11 2022-04-26 Icontrol Networks, Inc. Virtual device systems and methods
US10522026B2 (en) 2008-08-11 2019-12-31 Icontrol Networks, Inc. Automation system user interface with three-dimensional display
US11489812B2 (en) 2004-03-16 2022-11-01 Icontrol Networks, Inc. Forming a security network including integrated security system components and network devices
US11368327B2 (en) 2008-08-11 2022-06-21 Icontrol Networks, Inc. Integrated cloud system for premises automation
US9729342B2 (en) 2010-12-20 2017-08-08 Icontrol Networks, Inc. Defining and implementing sensor triggered response rules
US11368429B2 (en) * 2004-03-16 2022-06-21 Icontrol Networks, Inc. Premises management configuration and control
US10721087B2 (en) 2005-03-16 2020-07-21 Icontrol Networks, Inc. Method for networked touchscreen with integrated interfaces
US11244545B2 (en) 2004-03-16 2022-02-08 Icontrol Networks, Inc. Cross-client sensor user interface in an integrated security network
US10339791B2 (en) 2007-06-12 2019-07-02 Icontrol Networks, Inc. Security network integrated with premise security system
JP2007529826A (ja) 2004-03-16 2007-10-25 アイコントロール ネットワークス, インコーポレイテッド 対象事項管理ネットワーク
US11677577B2 (en) 2004-03-16 2023-06-13 Icontrol Networks, Inc. Premises system management using status signal
US20160065414A1 (en) 2013-06-27 2016-03-03 Ken Sundermeyer Control system user interface
US11582065B2 (en) 2007-06-12 2023-02-14 Icontrol Networks, Inc. Systems and methods for device communication
US11190578B2 (en) 2008-08-11 2021-11-30 Icontrol Networks, Inc. Integrated cloud system with lightweight gateway for premises automation
US11916870B2 (en) 2004-03-16 2024-02-27 Icontrol Networks, Inc. Gateway registry methods and systems
US10142392B2 (en) 2007-01-24 2018-11-27 Icontrol Networks, Inc. Methods and systems for improved system performance
US11811845B2 (en) 2004-03-16 2023-11-07 Icontrol Networks, Inc. Communication protocols over internet protocol (IP) networks
US12063220B2 (en) 2004-03-16 2024-08-13 Icontrol Networks, Inc. Communication protocols in integrated systems
US10237237B2 (en) 2007-06-12 2019-03-19 Icontrol Networks, Inc. Communication protocols in integrated systems
US8078731B1 (en) * 2004-05-17 2011-12-13 Webalo, Inc. User proxy server
US7539776B1 (en) * 2004-06-17 2009-05-26 Sun Microsystems, Inc. Dynamic uniform resource locator compression
US7269642B2 (en) * 2004-07-08 2007-09-11 Motorola, Inc. Customizing strings displayed upon a mobile device without altering core software of the device
US20060020699A1 (en) * 2004-07-23 2006-01-26 D Esposito John J Method and computer program for web site performance monitoring and testing by variable simultaneous angulation
US8060807B2 (en) * 2004-09-02 2011-11-15 The Regents Of The University Of California Content and channel aware object scheduling and error control
US20060069745A1 (en) * 2004-09-08 2006-03-30 International Business Machines Corporation Method, system and program product for identifying web page dependencies
ATE471059T1 (de) * 2004-10-05 2010-06-15 Research In Motion Ltd Mobilgerätediagnose, test, anwendungseinsatz und -aktualisierung von einer webseite aus
US20070283036A1 (en) * 2004-11-17 2007-12-06 Sujit Dey System And Method For Providing A Web Page
US11496568B2 (en) 2005-03-16 2022-11-08 Icontrol Networks, Inc. Security system with networked touchscreen
US20110128378A1 (en) 2005-03-16 2011-06-02 Reza Raji Modular Electronic Display Platform
US20120324566A1 (en) 2005-03-16 2012-12-20 Marc Baum Takeover Processes In Security Network Integrated With Premise Security System
US10999254B2 (en) 2005-03-16 2021-05-04 Icontrol Networks, Inc. System for data routing in networks
US20170180198A1 (en) 2008-08-11 2017-06-22 Marc Baum Forming a security network including integrated security system components
US11615697B2 (en) * 2005-03-16 2023-03-28 Icontrol Networks, Inc. Premise management systems and methods
US11700142B2 (en) 2005-03-16 2023-07-11 Icontrol Networks, Inc. Security network integrating security system and network devices
JP2008535062A (ja) * 2005-03-22 2008-08-28 フィーバ・インコーポレーテッド パブリック・アクセス・ネットワークのユーザの結合を含む、ネットワーク動作及び情報処理システム及び方法
US20090049192A1 (en) * 2005-03-22 2009-02-19 Feeva Technology Inc. Systems and methods of network operation and information processing, including use of unique/anonymous identifiers throughout all stages of information processing and delivery
CN101233507A (zh) 2005-04-13 2008-07-30 因帕克特引擎股份有限公司 多媒体通信系统和方法
AU2010201379B2 (en) * 2010-04-07 2012-02-23 Limelight Networks, Inc. System and method for delivery of content objects
US20060265359A1 (en) * 2005-05-18 2006-11-23 Microsoft Corporation Flexible data-bound user interfaces
JP4465553B2 (ja) * 2005-05-30 2010-05-19 有限会社ティーシーラボ 一般的なビデオカメラ回路を利用したテレシネ装置
US8631329B2 (en) * 2005-06-22 2014-01-14 France Telecom Method and device for the restitution of multimedia data transmitted by a gateway to a terminal
US20070027809A1 (en) * 2005-08-01 2007-02-01 Jukka Alve Method for signaling geographical constraints
US7647175B2 (en) * 2005-09-09 2010-01-12 Rembrandt Technologies, Lp Discrete inertial display navigation
US20070057911A1 (en) * 2005-09-12 2007-03-15 Sina Fateh System and method for wireless network content conversion for intuitively controlled portable displays
US8086253B1 (en) 2005-12-15 2011-12-27 Google Inc. Graphical mobile e-mail
US20070186150A1 (en) * 2006-02-03 2007-08-09 Raosoft, Inc. Web-based client-local environment for structured interaction with a form
US20070204220A1 (en) * 2006-02-27 2007-08-30 Microsoft Corporation Re-layout of network content
US9032297B2 (en) 2006-03-17 2015-05-12 Disney Enterprises, Inc. Web based video editing
US8645379B2 (en) * 2006-04-27 2014-02-04 Vertical Search Works, Inc. Conceptual tagging with conceptual message matching system and method
US10079839B1 (en) 2007-06-12 2018-09-18 Icontrol Networks, Inc. Activation of gateway device
US12063221B2 (en) 2006-06-12 2024-08-13 Icontrol Networks, Inc. Activation of gateway device
US8150938B1 (en) * 2006-06-21 2012-04-03 Qurio Holdings, Inc. Profile aware mediating server
US8102863B1 (en) 2006-06-27 2012-01-24 Qurio Holdings, Inc. High-speed WAN to wireless LAN gateway
US20080123624A1 (en) * 2006-06-30 2008-05-29 Nokia Corporation Controlling mobile voice calls remotely via a web interface
US9178793B1 (en) * 2006-09-29 2015-11-03 Yahoo! Inc. Engine for processing content rules associated with locations in a page
US8621092B2 (en) * 2006-12-19 2013-12-31 International Business Machines Corporation Remote portlet consumer with enhanced resource URL processing
EP1947575A1 (en) * 2007-01-18 2008-07-23 Wapple.net Ltd Computer system
US11706279B2 (en) 2007-01-24 2023-07-18 Icontrol Networks, Inc. Methods and systems for data communication
US7917507B2 (en) * 2007-02-12 2011-03-29 Microsoft Corporation Web data usage platform
US8429185B2 (en) 2007-02-12 2013-04-23 Microsoft Corporation Using structured data for online research
US7633385B2 (en) 2007-02-28 2009-12-15 Ucontrol, Inc. Method and system for communicating with and controlling an alarm system from a remote server
US8209748B1 (en) 2007-03-27 2012-06-26 Amazon Technologies, Inc. Protecting network sites during adverse network conditions
KR100851746B1 (ko) * 2007-04-09 2008-08-11 (주) 엘지텔레콤 이동통신 단말기를 포함하는 마크업 페이지 송수신 시스템 및 그 제어방법
US8451986B2 (en) 2007-04-23 2013-05-28 Icontrol Networks, Inc. Method and system for automatically providing alternate network access for telecommunications
WO2008148180A1 (en) * 2007-06-04 2008-12-11 Bce Inc. Methods and systems for validating online transactions using location information
US11218878B2 (en) 2007-06-12 2022-01-04 Icontrol Networks, Inc. Communication protocols in integrated systems
US12184443B2 (en) 2007-06-12 2024-12-31 Icontrol Networks, Inc. Controlling data routing among networks
US11423756B2 (en) 2007-06-12 2022-08-23 Icontrol Networks, Inc. Communication protocols in integrated systems
US11212192B2 (en) 2007-06-12 2021-12-28 Icontrol Networks, Inc. Communication protocols in integrated systems
US11316753B2 (en) 2007-06-12 2022-04-26 Icontrol Networks, Inc. Communication protocols in integrated systems
US11601810B2 (en) 2007-06-12 2023-03-07 Icontrol Networks, Inc. Communication protocols in integrated systems
US12003387B2 (en) 2012-06-27 2024-06-04 Comcast Cable Communications, Llc Control system user interface
US11646907B2 (en) 2007-06-12 2023-05-09 Icontrol Networks, Inc. Communication protocols in integrated systems
US10523689B2 (en) 2007-06-12 2019-12-31 Icontrol Networks, Inc. Communication protocols over internet protocol (IP) networks
US12283172B2 (en) 2007-06-12 2025-04-22 Icontrol Networks, Inc. Communication protocols in integrated systems
US12541237B2 (en) 2007-08-10 2026-02-03 Icontrol Networks, Inc. Integrated security system with parallel processing architecture
JP2009043119A (ja) * 2007-08-10 2009-02-26 Fujifilm Corp ウェブ・サーバ・システム
US10223903B2 (en) 2010-09-28 2019-03-05 Icontrol Networks, Inc. Integrated security system with parallel processing architecture
US11831462B2 (en) 2007-08-24 2023-11-28 Icontrol Networks, Inc. Controlling data routing in premises management systems
US8279848B1 (en) * 2007-09-27 2012-10-02 Sprint Communications Company L.P. Determining characteristics of a mobile user of a network
EP2081362B1 (en) * 2008-01-21 2013-07-24 Alcatel Lucent Resource arbitration in a converged multi-media environment
US11916928B2 (en) 2008-01-24 2024-02-27 Icontrol Networks, Inc. Communication protocols over internet protocol (IP) networks
GB0802585D0 (en) * 2008-02-12 2008-03-19 Mtld Top Level Domain Ltd Determining a property of communication device
JP4932775B2 (ja) * 2008-04-16 2012-05-16 ヤフー株式会社 ネットワーク端末に表示するページを生成する方法、装置及びプログラム
US8555150B1 (en) * 2008-05-29 2013-10-08 Adobe Systems Incorporated Constraint driven authoring environment
JP2009289123A (ja) * 2008-05-30 2009-12-10 Fujitsu Ltd ウェブページデータ提供プログラム、ウェブページデータ提供システム及びウェブページデータ提供方法
US20170185278A1 (en) 2008-08-11 2017-06-29 Icontrol Networks, Inc. Automation system user interface
US20090327869A1 (en) * 2008-06-27 2009-12-31 Microsoft Corporation Online ad serving
US8787579B2 (en) * 2008-06-30 2014-07-22 Verizon Patent And Licensing Inc. Key-based content management and access systems and methods
US11792036B2 (en) 2008-08-11 2023-10-17 Icontrol Networks, Inc. Mobile premises automation platform
US11729255B2 (en) 2008-08-11 2023-08-15 Icontrol Networks, Inc. Integrated cloud system with lightweight gateway for premises automation
US11758026B2 (en) 2008-08-11 2023-09-12 Icontrol Networks, Inc. Virtual device systems and methods
US11258625B2 (en) 2008-08-11 2022-02-22 Icontrol Networks, Inc. Mobile premises automation platform
US9286045B2 (en) * 2008-08-18 2016-03-15 Infosys Limited Method and system for providing applications to various devices
US8959536B2 (en) * 2008-08-18 2015-02-17 Infosys Limited Method and system for providing applications to various devices
JP4855499B2 (ja) * 2008-09-22 2012-01-18 株式会社オプティム 電化製品の種別を決定する情報処理装置、方法、サーバ
US20100082678A1 (en) * 2008-09-30 2010-04-01 Rockwell Automation Technologies, Inc. Aggregation server with industrial automation control and information visualization placeshifting
GB2465138B (en) 2008-10-10 2012-10-10 Afilias Technologies Ltd Transcoding web resources
US20100217873A1 (en) * 2009-02-23 2010-08-26 Xcast Labs, Inc. Method and system for sip access to media and conferences
US8638211B2 (en) 2009-04-30 2014-01-28 Icontrol Networks, Inc. Configurable controller and interface for home SMA, phone and multimedia
CN101877136A (zh) * 2009-04-30 2010-11-03 国际商业机器公司 处理图形对象的方法、设备及系统
US9167028B1 (en) 2009-09-10 2015-10-20 AppDynamics, Inc. Monitoring distributed web application transactions
US8938533B1 (en) * 2009-09-10 2015-01-20 AppDynamics Inc. Automatic capture of diagnostic data based on transaction behavior learning
US20110087529A1 (en) * 2009-10-14 2011-04-14 Matthew Jason Angell Methods and systems for creation and distribution of promotional materials and gathering of consumer data
US9141724B2 (en) 2010-04-19 2015-09-22 Afilias Technologies Limited Transcoder hinting
GB2481843A (en) 2010-07-08 2012-01-11 Mtld Top Level Domain Ltd Web based method of generating user interfaces
US8438219B2 (en) * 2010-08-19 2013-05-07 At&T Intellectual Property I, Lp Systems, computer program products, and methods for generating custom web pages for mobile devices
GB2483655A (en) * 2010-09-14 2012-03-21 Thunderhead Ltd Device capability modelling and automatic content assembly
US8836467B1 (en) 2010-09-28 2014-09-16 Icontrol Networks, Inc. Method, system and apparatus for automated reporting of account and sensor zone information to a central station
US9563751B1 (en) 2010-10-13 2017-02-07 The Boeing Company License utilization management system service suite
US8769299B1 (en) 2010-10-13 2014-07-01 The Boeing Company License utilization management system license wrapper
US20120159356A1 (en) * 2010-11-12 2012-06-21 Ryan Steelberg Enhanced World Wide Web-Based Communications
US11750414B2 (en) 2010-12-16 2023-09-05 Icontrol Networks, Inc. Bidirectional security sensor communication for a premises security system
KR101973531B1 (ko) 2010-12-17 2019-09-02 삼성전자주식회사 복수의 클라이언트 간의 어플리케이션 자동 공유 방법 및 장치
US9147337B2 (en) 2010-12-17 2015-09-29 Icontrol Networks, Inc. Method and system for logging security event data
KR20120099931A (ko) * 2011-03-02 2012-09-12 삼성전자주식회사 브라우징 방법, 디바이스, 및 컴퓨터로 읽을 수 있는 저장 매체
CN102655519A (zh) * 2011-03-04 2012-09-05 腾讯科技(北京)有限公司 网络页面信息的处理方法和装置
US8810593B2 (en) * 2011-03-30 2014-08-19 Google Inc. Distributed visualization processing and analytics
US9069459B2 (en) * 2011-05-03 2015-06-30 Microsoft Technology Licensing, Llc Multi-threaded conditional processing of user interactions for gesture processing using rendering thread or gesture processing thread based on threshold latency
US8549579B2 (en) 2011-07-06 2013-10-01 International Business Machines Corporation Dynamic data-protection policies within a request-reply message queuing environment
WO2013019162A1 (en) 2011-08-04 2013-02-07 Playware Studios Asia Pte Ltd Method and system for hosting transient virtual worlds that can be created, hosted and terminated remotely and automatically
US8627204B2 (en) 2011-10-18 2014-01-07 Microsoft Corporation Custom optimization of web pages
US9251126B1 (en) * 2011-11-16 2016-02-02 Google Inc. System and method for using pre-defined character ranges to denote document features
US9064233B2 (en) * 2011-12-22 2015-06-23 Adobe Systems Incorporated Methods and apparatus for device-specific analytics data visualization
US9491247B2 (en) 2012-02-02 2016-11-08 AppDynamics, Inc. Automatic capture of detailed analysis information based on remote server analysis
US9311598B1 (en) 2012-02-02 2016-04-12 AppDynamics, Inc. Automatic capture of detailed analysis information for web application outliers with very low overhead
JP2013191196A (ja) * 2012-02-17 2013-09-26 Ricoh Co Ltd 情報処理装置、機器、情報処理システム、情報処理方法、及び情報処理プログラム
US9659095B2 (en) * 2012-03-04 2017-05-23 International Business Machines Corporation Managing search-engine-optimization content in web pages
CN102662962B (zh) * 2012-03-08 2014-12-10 北京思特奇信息技术股份有限公司 一种基于网页元素的动态展示方法
JP5658196B2 (ja) * 2012-05-08 2015-01-21 株式会社野村総合研究所 マルチデバイス対応WebサーバシステムおよびWebサーバシステムにおけるマルチデバイス対応方法
CN102710558B (zh) * 2012-05-21 2015-01-28 中兴通讯股份有限公司 适用于多种显示类型的家庭网关的界面显示方法和系统
CN103455493B (zh) * 2012-05-29 2019-05-14 百度在线网络技术(北京)有限公司 用于获取支持结果并进行相应处理的方法、装置和设备
CN108845782B (zh) 2012-09-10 2021-11-30 三星电子株式会社 连接移动终端和外部显示器的方法和实现该方法的装置
US20140075377A1 (en) 2012-09-10 2014-03-13 Samsung Electronics Co. Ltd. Method for connecting mobile terminal and external display and apparatus implementing the same
US9563713B2 (en) 2012-10-10 2017-02-07 Microsoft Technology Licensing, Llc Automatic mobile application redirection
US20140108413A1 (en) * 2012-10-11 2014-04-17 Dell Products L.P. Responsive Images Service
US9317272B2 (en) * 2013-03-15 2016-04-19 Yahoo! Inc. Computerized system and method for creating a resource URL for rendering the resource in a resource specific application
US10984175B2 (en) 2013-08-09 2021-04-20 Yottaa Inc. Systems and methods for dynamically modifying a requested web page from a server for presentation at a client
US9311422B2 (en) * 2013-09-12 2016-04-12 Adobe Systems Incorporated Dynamic simulation of a responsive web page
US9870349B2 (en) 2013-09-20 2018-01-16 Yottaa Inc. Systems and methods for managing loading priority or sequencing of fragments of a web object
CN103685491B (zh) * 2013-12-04 2017-10-17 华为技术有限公司 一种应用服务提供方法、系统及相关设备
CN103678600B (zh) * 2013-12-13 2019-07-23 北京奇虎科技有限公司 网页数据的处理方法及设备
US11405463B2 (en) 2014-03-03 2022-08-02 Icontrol Networks, Inc. Media content management
US9588969B2 (en) * 2014-05-19 2017-03-07 International Business Machines Corporation Retargeting content segments to multiple devices
EP3191983A1 (en) 2014-09-09 2017-07-19 Liveperson Inc. Dynamic code management
CN104408199A (zh) * 2014-12-15 2015-03-11 北京国双科技有限公司 网络文本发送方法及装置
US9645814B1 (en) * 2015-05-04 2017-05-09 Amazon Technologies, Inc. Generating and publishing applications for multiple platforms
CN106294372B (zh) * 2015-05-15 2019-06-25 阿里巴巴集团控股有限公司 应用程序页面快速访问方法及应用其的移动终端
WO2020000126A1 (en) * 2018-06-25 2020-01-02 Beijing Didi Infinity Technology And Development Co., Ltd. Systems and methods for generating a wide table
US20200394055A1 (en) * 2019-06-12 2020-12-17 Aras Corporation System and method for providing a configurable user interface using a self-describing data system
US11734445B2 (en) * 2020-12-02 2023-08-22 International Business Machines Corporation Document access control based on document component layouts
US12210535B1 (en) 2023-07-11 2025-01-28 Seekr Technologies Inc. Search system and method having quality scoring
US11893981B1 (en) 2023-07-11 2024-02-06 Seekr Technologies Inc. Search system and method having civility score
US12182678B1 (en) 2024-03-08 2024-12-31 Seekr Technologies Inc. Systems and methods for aligning large multimodal models (LMMs) or large language models (LLMs) with domain-specific principles
US12124932B1 (en) 2024-03-08 2024-10-22 Seekr Technologies Inc. Systems and methods for aligning large multimodal models (LMMs) or large language models (LLMs) with domain-specific principles
US12293272B1 (en) 2024-03-08 2025-05-06 Seekr Technologies, Inc. Agentic workflow system and method for generating synthetic data for training or post training artificial intelligence models to be aligned with domain-specific principles
USD1094414S1 (en) 2024-04-23 2025-09-23 Seekr Technologies Inc. Display screen or portion thereof with a graphical user interface with a civility score
USD1096797S1 (en) 2024-04-23 2025-10-07 Seekr Technologies Inc. Display screen or portion thereof with a graphical user interface with a civility score
US12511557B1 (en) 2025-01-21 2025-12-30 Seekr Technologies Inc. System and method for explaining and contesting outcomes of generative AI models with desired explanation properties

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5701451A (en) * 1995-06-07 1997-12-23 International Business Machines Corporation Method for fulfilling requests of a web browser
US6161126A (en) * 1995-12-13 2000-12-12 Immersion Corporation Implementing force feedback over the World Wide Web and other computer networks
US5761673A (en) * 1996-01-31 1998-06-02 Oracle Corporation Method and apparatus for generating dynamic web pages by invoking a predefined procedural package stored in a database
US6553410B2 (en) * 1996-02-27 2003-04-22 Inpro Licensing Sarl Tailoring data and transmission protocol for efficient interactive data transactions over wide-area networks
GB9609431D0 (en) 1996-05-04 1996-07-10 Hugh Symons Group Plc Data processing
US6311197B2 (en) * 1996-06-03 2001-10-30 Webtv Networks, Inc. Method for downloading a web page to a client for efficient display on a television screen
US6101509A (en) * 1996-09-27 2000-08-08 Apple Computer, Inc. Method and apparatus for transmitting documents over a network
TW347498B (en) * 1996-09-30 1998-12-11 Casio Computer Co Ltd Information supply system
JP3683051B2 (ja) * 1996-10-18 2005-08-17 三菱電機株式会社 データ送信方式
US5956487A (en) * 1996-10-25 1999-09-21 Hewlett-Packard Company Embedding web access mechanism in an appliance for user interface functions including a web server and web browser
US6049831A (en) * 1996-11-08 2000-04-11 Gte Laboratories Incorporated System for transmitting network-related information where requested network information is separately transmitted as definitions and display information
CA2198189C (en) * 1997-02-21 2001-05-29 Ibm Canada Limited-Ibm Canada Limitee Internet browser based data entry architecture
GB9706429D0 (en) * 1997-03-27 1997-05-14 British Telecomm Data processing system and method
US6035332A (en) * 1997-10-06 2000-03-07 Ncr Corporation Method for monitoring user interactions with web pages from web server using data and command lists for maintaining information visited and issued by participants
US6216157B1 (en) * 1997-11-14 2001-04-10 Yahoo! Inc. Method and apparatus for a client-server system with heterogeneous clients
US6167441A (en) * 1997-11-21 2000-12-26 International Business Machines Corporation Customization of web pages based on requester type
US6229534B1 (en) * 1998-02-27 2001-05-08 Sabre Inc. Methods and apparatus for accessing information from multiple remote sources
JPH11250009A (ja) 1998-03-04 1999-09-17 Uniden Corp サーバ装置及びウェブデータ変換方式
US6133912A (en) * 1998-05-04 2000-10-17 Montero; Frank J. Method of delivering information over a communication network
JP3202968B2 (ja) * 1998-06-30 2001-08-27 インターナショナル・ビジネス・マシーンズ・コーポレーション 表示制御情報生成方法及びコンピュータ
US6300947B1 (en) * 1998-07-06 2001-10-09 International Business Machines Corporation Display screen and window size related web page adaptation system
JP2000112840A (ja) * 1998-09-30 2000-04-21 Matsushita Electric Ind Co Ltd メールシステム
KR100415996B1 (ko) * 1998-10-12 2004-01-31 삼성전자주식회사 웹서버에 의한 html문서의 제공방법
FI19992746A7 (fi) * 1998-12-28 2000-06-29 Spyglass Inc Menetelmä ja järjestelmä elektronisen datasisällön muuntamiseksi langattomille laitteille
US6535896B2 (en) 1999-01-29 2003-03-18 International Business Machines Corporation Systems, methods and computer program products for tailoring web page content in hypertext markup language format for display within pervasive computing devices using extensible markup language tools
US7032030B1 (en) * 1999-03-11 2006-04-18 John David Codignotto Message publishing system and method
US6477576B2 (en) * 1999-06-17 2002-11-05 International Business Machines Corporation Methods, systems and computer program products for the automated discovery of a services menu
US6401125B1 (en) * 1999-08-05 2002-06-04 Nextpage, Inc. System and method for maintaining state information between a web proxy server and its clients
US6636863B1 (en) * 1999-09-13 2003-10-21 E. Lane Friesen System and method for generating persistence on the web
JP2001184344A (ja) * 1999-12-21 2001-07-06 Internatl Business Mach Corp <Ibm> 情報処理システム、プロキシサーバ、ウェブページ表示制御方法、記憶媒体、及びプログラム伝送装置
WO2001057652A2 (en) * 2000-01-31 2001-08-09 Mobileq Canada Inc. Method and system for building internet-based applications
EP1117050A1 (en) * 2000-01-14 2001-07-18 Sun Microsystems, Inc. Individual data representation
JP2001222498A (ja) * 2000-02-07 2001-08-17 Isao:Kk コミュニケーションシステム、そのためのサーバ装置、コミュニケーション方法、および、プログラムを記録したコンピュータ読み取り可能な記録媒体
US6845396B1 (en) * 2000-02-25 2005-01-18 Navic Systems, Inc. Method and system for content deployment and activation
US6311180B1 (en) * 2000-03-28 2001-10-30 Linx Data Terminals, Inc. Method for mapping and formatting information for a display device
US20020112237A1 (en) * 2000-04-10 2002-08-15 Kelts Brett R. System and method for providing an interactive display interface for information objects
US6556217B1 (en) * 2000-06-01 2003-04-29 Nokia Corporation System and method for content adaptation and pagination based on terminal capabilities

Also Published As

Publication number Publication date
EP1320972A2 (en) 2003-06-25
ATE314781T1 (de) 2006-01-15
EP1320972B1 (en) 2005-12-28
CN1476712A (zh) 2004-02-18
JP4865983B2 (ja) 2012-02-01
US7739658B2 (en) 2010-06-15
KR20030043969A (ko) 2003-06-02
CN1268103C (zh) 2006-08-02
GB0504877D0 (en) 2005-04-13
WO2002027543A2 (en) 2002-04-04
DE60116343D1 (de) 2006-02-02
GB0122959D0 (en) 2001-11-14
EP1641211A2 (en) 2006-03-29
AU2001287920A1 (en) 2002-04-08
EP1641211A3 (en) 2015-03-04
SG136805A1 (en) 2007-11-29
EP1641211B1 (en) 2018-07-11
KR100874985B1 (ko) 2008-12-19
JP2004510254A (ja) 2004-04-02
US20040049574A1 (en) 2004-03-11
DE60116343T2 (de) 2006-08-31
GB2371896B (en) 2005-11-09
HK1049046B (zh) 2006-01-20
HK1049046A1 (en) 2003-04-25
WO2002027543A3 (en) 2002-11-14
GB2371896A (en) 2002-08-07
GB0023570D0 (en) 2000-11-08

Similar Documents

Publication Publication Date Title
ES2256292T3 (es) Servidor de red.
US7716591B2 (en) System and method for dynamically generating a web page
US7747782B2 (en) System and method for providing and displaying information content
ES2280283T3 (es) Objetos de control del lado del servidor para el procesamiento de elementos de la interfaz de usuario del lado del cliente.
US7865528B2 (en) Software, devices and methods facilitating execution of server-side applications at mobile devices
US5937417A (en) Tooltips on webpages
WO2004040481A1 (en) A system and method for providing and displaying information content
US20040205473A1 (en) Method and system for implementing an enterprise information portal
US7607085B1 (en) Client side localizations on the world wide web
US20050096019A1 (en) System for converting wireless communications for a mobile device
US7275086B1 (en) System and method for embedding a context-sensitive web portal in a computer application
US20090013249A1 (en) Method and system for dynamic creation of mixed language hypertext markup language content through machine translation
CA2437273A1 (en) Network conduit for providing access to data services
US7996764B2 (en) Apparatus, program and method for accepting a request from a client computer via a network and executing a web application
US20040015811A1 (en) Method and apparatus for the creation of software applications
US20030185182A1 (en) System and method for providing universal mobile device access to information
US8090702B2 (en) Analyzing web site traffic
US7831905B1 (en) Method and system for creating and providing web-based documents to information devices
US20050050455A1 (en) Method and apparatus for supporting object caching in a web presentation architecture
JP2002351781A (ja) 画面表示用ページレイアウトを利用したコンテンツ生成装置
CA2436538A1 (en) System and method for dynamic web page generation
US20050198568A1 (en) Table display switching method, text data conversion program, and tag program
JP2002342222A (ja) コンテンツ提供方法
JP2002342213A (ja) コンテンツ提供方法
US20020113819A1 (en) Method for controlling a screen display