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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9577—Optimising the visualization of content, e.g. distillation of HTML documents
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network 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.
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.
| 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.
| 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
| 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
| 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 |
| 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.
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.
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.
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.
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
\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
\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
\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
\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">
"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&T Wireless, Nortel
prueban el GPRS</ a></ em></ p>
</ card></ wml>
\newpage
Apéndice
5
\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">
"httpd:/ /www.wapforum.org/DTD/wml_1.1.xm1">
<wml><card>
<p><em>AT&T Wireless, Nortel
prueban el GPRS</em></p><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>
< / 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.
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.
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)
| 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)
| 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 |
-
2000
- 2000-09-26 GB GBGB0023570.5A patent/GB0023570D0/en not_active Ceased
-
2001
- 2001-09-24 EP EP01967547A patent/EP1320972B1/en not_active Expired - Lifetime
- 2001-09-24 WO PCT/GB2001/004235 patent/WO2002027543A2/en not_active Ceased
- 2001-09-24 DE DE60116343T patent/DE60116343T2/de not_active Expired - Lifetime
- 2001-09-24 JP JP2002531257A patent/JP4865983B2/ja not_active Expired - Fee Related
- 2001-09-24 US US10/381,802 patent/US7739658B2/en not_active Expired - Lifetime
- 2001-09-24 EP EP05077163.3A patent/EP1641211B1/en not_active Expired - Lifetime
- 2001-09-24 ES ES01967547T patent/ES2256292T3/es not_active Expired - Lifetime
- 2001-09-24 AT AT01967547T patent/ATE314781T1/de not_active IP Right Cessation
- 2001-09-24 AU AU2001287920A patent/AU2001287920A1/en not_active Abandoned
- 2001-09-24 SG SG200501776-9A patent/SG136805A1/en unknown
- 2001-09-24 GB GB0122959A patent/GB2371896B/en not_active Expired - Lifetime
- 2001-09-24 KR KR1020037004318A patent/KR100874985B1/ko not_active Expired - Fee Related
- 2001-09-24 CN CNB018195261A patent/CN1268103C/zh not_active Expired - Lifetime
-
2003
- 2003-01-29 HK HK03100725.9A patent/HK1049046B/zh not_active IP Right Cessation
-
2005
- 2005-03-09 GB GBGB0504877.2A patent/GB0504877D0/en not_active Ceased
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 |