ES2249638T3 - Procedimiento para transmitir objetos entre un servidor y un terminal cliente que utiliza gestion de memoria cache, transmision, servidor y terminal correspondientes. - Google Patents

Procedimiento para transmitir objetos entre un servidor y un terminal cliente que utiliza gestion de memoria cache, transmision, servidor y terminal correspondientes.

Info

Publication number
ES2249638T3
ES2249638T3 ES02801101T ES02801101T ES2249638T3 ES 2249638 T3 ES2249638 T3 ES 2249638T3 ES 02801101 T ES02801101 T ES 02801101T ES 02801101 T ES02801101 T ES 02801101T ES 2249638 T3 ES2249638 T3 ES 2249638T3
Authority
ES
Spain
Prior art keywords
server
client
objects
client terminal
stage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
ES02801101T
Other languages
English (en)
Inventor
Olivier Aubault
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orange SA
Original Assignee
France Telecom SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by France Telecom SA filed Critical France Telecom SA
Application granted granted Critical
Publication of ES2249638T3 publication Critical patent/ES2249638T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Abstract

Procedimiento de transmisión de datos, denominados objetos, a través de, al menos, una red de comunicaciones (4), entre un servidor (3) y, al menos, un terminal cliente (2), al menos una memoria cache (1) destinada a guardar por lo menos ciertos de dichos objetos transmitidos por el citado servidor, la cual está asociada, en el seno de dicha red, a uno, por lo menos, de dichos terminales cliente, caracterizado porque dicho servidor (3) o un elemento intermedio de dicha red gestiona, aguas arriba de dichos terminales cliente, por lo menos una lista (6) de cada uno de los objetos presentes en la mencionada memoria cache (1) asociada a uno de dichos terminales cliente, con el fin de limitar los intercambios de informaciones relativas al contenido de la citada memoria cache, entre dicho terminal cliente (2) y dicho servidor (3).

Description

Procedimiento para transmitir objetos entre un servidor y un terminal cliente que utiliza gestión de memoria cache, transmisión, servidor y terminal correspondientes.
El invento pertenece al dominio de la transmisión de datos a través de redes de comunicaciones. De forma más precisa, el invento se refiere a la transmisión de datos destinados a ser visualizados de forma interactiva y a la correspondiente gestión de memorias cache.
Los extraordinarios desarrollos realizados en las redes de comunicaciones permiten, en la actualidad, que los usuarios visualicen en forma interactiva y en tiempo real, por ejemplo, modelos de tipos de imágenes, texturas, modelos geométricos o escenas tridimensionales. Clásicamente, los usuarios se conectan, a través de un terminal adaptado, a un servidor distante que centraliza, en una base de datos, el conjunto de informaciones que el usuario necesita para conseguir tal visualización (ha de observarse que, aunque en este documento se emplea el término "visualización", tales informaciones pueden incluir datos de cualquier naturaleza y, en particular, de tipo sonoro, de tipo paginado, etc.).
Los usuarios pueden acceder así a nuevas aplicaciones, del tipo que les permita, por ejemplo, desplazarse en un ambiente tridimensional virtual, como un museo virtual, un relieve del terreno o, incluso, un concierto de música clásica. En el marco de estas aplicaciones, el servidor envía por tanto al cliente las informaciones necesarias para la reconstrucción de la escena global, así como las informaciones relativas a los diferentes objetos incluidos en la escena que entren en el campo de visión (o en el campo de audición) del usuario, dependiendo de su posición en la
escena.
El invento se aplica en particular, pero no de forma exclusiva, a una transmisión de esta clase, así como al almacenamiento, con vistas por ejemplo a una futura utilización, de informaciones de todo tipo, accesibles para el usuario a través de un servidor de datos.
En efecto, con el fin de permitir una visualización en tiempo real (tal como se describe en lo que sigue) de una escena o de un vídeo, por ejemplo, al terminal del usuario se le asocia, generalmente, una memoria cache en la que se almacenan todas las informaciones necesarias para la reproducción de la escena, en tiempo real, por el terminal.
Una memoria cache de esta clase guarda, de manera clásica, los datos denominados "pasados", es decir, los datos que ya han sido utilizados por el terminal para reproducir una escena o una imagen, pero que pueden ser reutilizados ulteriormente, en función de las necesidades del usuario.
Como se comprenderá fácilmente, el volumen de las informaciones que, por una parte, debe transmitir el servidor y que, por otra parte, han de ser generadas en la memoria cache, es considerable, en especial en el caso de que el usuario desee visualizar los datos con grandes dimensiones como, por ejemplo, en el caso de escenas tridimensionales muy
vastas.
Para resolver los problemas relativos al elevado volumen de datos intercambiados entre el cliente y el servidor correspondiente, se ha considerado introducir diversos métodos de tratamiento y, en especial:
-
un algoritmo de sustitución que permita, cuando la tasa de llenado de la memoria cache sea elevada, elegir los datos almacenados que han de suprimirse para liberar espacio en la memoria;
-
un método de transmisión, que rija la selección, por parte del servidor, de los datos a enviar al cliente, así como el modo de transmisión de estos datos.
En la actualidad se conocen dos métodos principales de transmisión que permiten crear un diálogo entre cliente y servidor y que indiquen a este último las informaciones que han de transmitirse al cliente.
El primer método de transmisión conocido ha sido descrito en particular en el documento "Transmisión de modelos con resolución múltiple en entornos virtuales distribuidos", de J.H.P.Chim y otros, VRST98, págs. 25-34.
Según este primer método, el envío por el servidor de datos que el cliente desea visualizar se descompone en cuatro etapas sucesivas:
-
en el curso de una primera etapa, el terminal del cliente transmite al servidor una información relativa a la posición del usuario en la escena a visualizar;
-
al recibir esta información de posición, el servidor calcula todos los objetos necesarios para el usuario y, en el transcurso de una segunda etapa, transmite la lista de pares <O,L_{0}> de los objetos necesarios, donde O es una referencia del objeto y L_{0} es un nivel de detalle correspondiente;
-
el terminal cliente elige entonces, de entre esta lista, y en función del contenido de su memoria cache, los pares correspondientes a los objetos que desea recibir, y transmite al servidor el resultado de su elección en el curso de una tercera etapa;
-
durante una cuarta etapa, el servidor transmite los objetos requeridos por el terminal del cliente.
Un inconveniente de este sistema de la técnica anterior es que, cada vez que se modifique la posición del usuario en la escena, y, por tanto, cada vez que el servidor deba enviar uno o más objetos nuevos al usuario, se necesitan dos intercambios de datos completos, en forma de idas y vueltas, entre el servidor y el terminal cliente, antes de que el o los objetos necesarios sean accesible para el usuario a través de su memoria cache.
Por tanto, una técnica de este tipo no se adapta a la transmisión de datos a través de redes de comunicaciones que presenten una latencia elevada; en efecto, para tales redes, esta técnica no permite una visualización en tiempo real de los datos transmitidos por el servidor.
Un segundo modo de transmisión conocido se ha descrito en el artículo "Gestión de cache y búsqueda previa de objetos virtuales en entornos virtuales distribuidos", de J.H.P.Chim y otros, en Proceedings of the sixth ACM international conference on Multimedia, 1998, páginas 171-180.
Según este segundo método, que está adaptado más particularmente a la transmisión de objetos codificados progresivamente, el terminal cliente transmite al servidor, con cada uno de sus movimientos en la escena visualizada, información sobre su posición, así como información relativa al contenido de su cache, en forma de pares <O,L_{0}>. Nuevamente, O representa una referencia del objeto contenido en la cache del cliente, y L_{0} le indica al servidor el nivel de detalle asociado al objeto.
El servidor calcula entonces, dependiendo de la posición del usuario en la escena, el conjunto de objetos visualmente pertinentes, verifica si estos objetos están ya presentes en la memoria cache del usuario, o no lo están, y transmite al cliente el conjunto de objetos que faltan.
Por tanto, según este método basta con una sola ida y vuelta entre cliente y servidor para transmitir al cliente los datos necesarios para la visualización de la escena.
No obstante, un inconveniente de este tipo de sistema de la técnica anterior, es que tiene un consumo elevado en términos de recursos de red y, en especial, en términos de banda de paso. Efectivamente, con cada movimiento del usuario en la escena, el terminal cliente transmite al servidor la totalidad de las informaciones relativas al contenido de su memoria cache (es decir, el conjunto de pares <O,L_{0}> correspondientes a los objetos contenidos en su memoria
cache).
En el caso de visualización de escenas muy vastas, la cantidad de información transmitida del terminal cliente al servidor es, por tanto, muy grande, lo que es particularmente perjudicial en el marco de las redes de comunicaciones de baja capacidad.
En particular, el invento tiene por objeto paliar estos inconvenientes de la técnica anterior.
De manera más precisa, un objeto del invento es proporcionar una técnica de transmisión, desde un servidor hacia un terminal cliente, de las informaciones necesarias para conseguir la visualización, en tiempo real, de datos de grandes dimensiones, reduciendo al mínimo las transmisiones entre el servidor y el terminal cliente.
Otro objeto del invento es llevar a la práctica una técnica de transmisión de datos de esta clase, que sea sencilla y económica en su puesta en práctica.
El invento tiene, también, por objeto proporcionar una técnica de transmisión de datos de esta clase a través de una red de comunicaciones, que se adapte a todo tipo de red y, en especial, igualmente bien a redes que presenten una elevada latencia y a redes de baja capacidad.
El invento tiene por objeto, asimismo, poner en práctica tal técnica de transmisión de datos que permita evitar las redundancias de transmisión de datos del servidor al terminal cliente.
Un objeto más del invento es proponer una técnica de transmisión de datos de esta clase, que permita suprimir o, por lo menos, reducir, las peticiones de datos emitidas por el terminal cliente con destino al servidor.
Estos objetos, así como otros que resultarán evidente en lo que sigue, se alcanzan con ayuda de un procedimiento de transmisión de datos, denominados objetos, a través de, al menos, una red de comunicaciones, entre un servidor y, por lo menos, un terminal cliente, al menos una memoria cache destinada a almacenar por lo menos unos determinados de dichos objetos transmitidos por dicho servidor, asociada en el seno de la citada red, a uno, por lo menos, de dichos terminales cliente.
Según el invento se gestiona, aguas arriba de los citados terminales cliente, al menos una lista de objetos presentes en dicha memoria cache asociada a uno de los mencionados terminales cliente, a fin de limitar los intercambios de información relativos al contenido de dicha memoria cache, entre dicho terminal cliente y el citado servidor.
Así, el invento se basa en un enfoque absolutamente nuevo y poseedor de nivel inventivo, de la gestión de las memorias cache. En particular, el invento se basa en la idea, innovadora y ventajosa, de mantener, aguas arriba de un terminal cliente, una lista, accesible al servidor de datos, representativa del contenido de una memoria cache asociada al cliente. Esta solución permite, por tanto, conocer en todo momento el contenido de la memoria cache del cliente, sin que este contenido haya de duplicarse al nivel del servidor. El invento propone, por tanto, una solución que, aunque económica en términos de recursos y, en especial, de memoria, para el servidor, permite reducir considerablemente el volumen de informaciones intercambiadas entre el servidor y el cliente, durante la visualización de una escena o de un conjunto de objetos por parte del cliente. Una solución de esta clase es particularmente ventajosa para terminales cliente de capacidad reducida o para redes de comunicaciones de rendimiento limitado.
Se conocen ya diversas técnicas, descritas en especial en los documentos de patente norteamericana 6 098 064 y 5 956 039, que prevén una gestión de listas de objetos o de documentos, en el marco de intercambios entre un servidor y un terminal cliente. Sin embargo, estas listas difieren notablemente, tanto en forma como en función,
\hbox{de la lista del presente
invento.}
Así, el documento de patente norteamericana 6 098 064 describe una técnica que permite determinar cuales son los documentos (en especial en forma de páginas web) que conviene almacenar en la memoria cache de un ordenador, en función de la probabilidad de que estos documentos sean requeridos en un futuro por un usuario. Según esta técnica, se gestiona una lista de necesidades que comprenden los documentos presentes que existen en la memoria cache del terminal o que son susceptibles de interesar a su usuario en un futuro.
Esta lista no tiene como función, ni permite, al contrario que la lista del presente invento, reducir el número y/o el volumen de intercambios de información entre el servidor y el terminal cliente, durante la visualización de los documentos por el cliente.
En efecto, esta lista de necesidades no le permite al servidor saber con precisión cuales son los documentos efectivamente presentes en la memoria cache de un terminal cliente dado y ello, tanto más cuanto que la lista de necesidades puede ser una lista colectiva, para un conjunto de terminales cliente conectados al servidor.
Según la técnica del documento norteamericano 6 098 064, cuando un terminal requiere un conjunto de documentos al servidor, es necesario por tanto que terminal y servidor intercambien informaciones voluminosas que les permita determinar, a uno y/o a otro, cuales son los documentos, de entre los que necesita el terminal, que ya se encuentran en la memoria cache y que, por tanto, el servidor no tiene necesidad de enviar.
El problema que busca resolver este documento norteamericano 6 098 064 es un problema de anticipación de las demandas de los terminales cliente, que difiere marcadamente del problema que supone la reducción de los intercambios de informaciones relativas al contenido de la memoria cache entre el servidor y el terminal cliente, y para el que el presente invento aporta una solución.
El documento de patente norteamericana 5 956 039 divulga una técnica que permite incrementar el rendimiento de un sistema de navegación en tiempo real en una escena tridimensional. Una técnica de esta clase consiste en atribuir prioridades a los distintos objetos de la escena, de forma que el terminal cliente reciba, en primer lugar, los objetos que tengan la prioridad más alta. Estas prioridades se gestionan en el seno de una base de datos que contiene informaciones relativas a cada objeto de la escena en curso. Sin embargo, esta base de datos no es gestionada aguas arriba del terminal cliente y, por tanto, no permite resolver el problema técnico que implica la reducción de los intercambios entre el servidor y el terminal, y para el cual el presente invento aporta una solución.
Ventajosamente, se memoriza, en el seno de dicha lista, un identificativo de cada uno de los objetos citados y, para al menos uno de los mencionados objetos, una información de restitución de dicho objeto.
Por tanto, el servidor puede tener acceso, no sólo a la lista de objetos contenidos en la memoria cache de cliente sino, también, al nivel de restitución al cual pueden ser reproducidos por el cliente.
De preferencia, para uno al menos de dichos objetos, la citada información de restitución está relacionada con un nivel de refinamiento del citado objeto.
El servidor puede, por tanto, saber si el terminal cliente puede, por ejemplo, reproducir el objeto en forma aproximada o detallada.
De manera preferida, para cada uno de dichos objetos almacenados en la mencionada memoria cache, dicha lista comprende un par <O,L_{0}> que incluye dicho identificativo O del citado objeto y dicha información de restitución, L_{0} del mencionado objeto.
Según una característica ventajosa del invento, para cada uno de dichos terminales cliente, a dicha lista se le asocia al menos una información relativa al citado terminal cliente y/o a un usuario del mismo, denominada información de visualización, a fin de formar un contexto.
Para cada uno de los clientes conectados al servidor, este último gestiona, por tanto, un contexto que comprende una lista representativa del estado de la memoria cache que le está asociada, así como las informaciones de visualización. Tales informaciones pueden ser representativas, en especial, de la capacidad del terminal cliente o de su velocidad de tratamiento.
De preferencia, dicha información de visualización pertenece al grupo que comprende:
-
una información de posición de dicho usuario;
-
una dirección de observación de dicho usuario;
-
parámetros de selección de dichos objetos.
Dichos parámetros de selección comprenden, por ejemplo, un umbral de selección de objetos, así como un ángulo de visión del observador. En el caso de la visualización de una escena tridimensional por el terminal del cliente, la información de posición puede expresarse en forma de punto tridimensional cuyas coordenadas corresponden a la posición del observador con respecto al centro de la escena. La dirección de observación puede expresarse, a su vez, en forma de vector tridimensional.
Ventajosamente, dicha lista es gestionada por el citado servidor o por un elemento intermedio de dicha red.
Por ejemplo, la lista puede ser gestionada por un servidor proxy, intermediario entre servidor y cliente. El servidor puede, entonces, emitir peticiones con destino al proxy, para conocer el estado del contenido de la memoria cache del cliente. Si bien esta solución ofrece un peor comportamiento porque genera muchos intercambios de informaciones, puede ser interesante en el caso en que el servidor y el proxy estén conectados mediante una red de gran rendimiento y en la que se desea "descargar" al servidor (por ejemplo, si el servidor es de capacidad reducida).
Según una característica preferible del invento, un procedimiento de esta clase comprende una fase preliminar de inicialización (asignación inicial de valores por defecto) que ejecuta, para cada uno de dichos terminales cliente, una primera etapa de transmisión hacia dicho servidor de informaciones de visualización iniciales, y una etapa de memorización, para dicho servidor, en el citado contexto correspondiente, de dichas informaciones de visualización iniciales.
Ventajosamente, dicha fase preliminar de inicialización comprende, además, una segunda etapa de transmisión, por dicho servidor al mencionado terminal cliente, de una versión aproximada de la escena a reproducir mediante dicho terminal cliente.
Según el invento, y contrariamente a las soluciones de la técnica anterior, no se transmite, por tanto, en la inicialización, la totalidad de la base de datos que contiene los objetos que el cliente desea visualizar, lo que constituye un considerable ahorro, en términos de memoria, para el cliente y, en términos de banda de paso de la red, al inicializar. Efectivamente, si consideramos una base de datos de unos 100 Mbtis, y que el cliente y el servidor están conectados mediante una red de tipo ADSL ("Línea digital asimétrica de abonado") con una velocidad máxima de 500 kbits/s, la transmisión de la totalidad de la base al inicializarse la conexión entre cliente y servidor, que permite cargar toda la escena a visualizar en la posición del cliente, se realiza en un tiempo mínimo de 200 s. Por tanto, al permitir el invento suprimir estas transmisiones al inicializar, resulta particularmente ventajoso para el cliente por cuanto le permite visualizar una representación, al menos aproximada, de la escena de forma casi instantánea, suprimiendo por tanto la larga espera de, al menos, 200 s, es decir, más de tres minutos, impuesta por los sistemas de la técnica anterior.
De forma preferible, cada uno de dichos terminales cliente ejecuta una etapa de transmisión de, al menos, ciertas de las citadas informaciones de visualización hacia dicho servidor a intervalos de tiempo predeterminados y/o cuando dichas informaciones de visualización han sido modificadas.
Se observará que la elección consistente en transmitir las informaciones de visualización a intervalos de tiempo predeterminados, a condición de que sean modificadas después de la última transmisión, permite reducir al mínimo el número de transmisiones.
Según un primer modo de realización ventajoso del invento, dichos intervalos de tiempo predeterminados son fijos para dicho terminal cliente.
En especial, pueden ser forzados por el cliente en función de, por ejemplo, la frecuencia con la que se desea actualizar la escena a visualizar.
De acuerdo con un segundo modo de realización ventajoso del invento, dichos intervalos de tiempo predeterminados son función de, al menos, una característica de la citada red de comunicaciones.
En especial, estos intervalos de tiempo pueden depender, por ejemplo, de la carga de la red, de su velocidad o de su tiempo de latencia.
De manera preferible, al ser emitida dicha etapa de transmisión por dicho terminal cliente, dicho procedimiento ejecuta una etapa de actualización de dichas informaciones de visualización en el seno de dicho contexto correspondiente.
Ventajosamente, al emitir dicha etapa de actualización, el citado servidor ejecuta las siguientes etapas:
-
una etapa de determinación, en función de al menos determinadas informaciones de entre dichas informaciones de visualización actualizadas, de al menos un objeto con identificativo O necesario en dicho terminal cliente, y con un nivel de restitución L_{0} correspondiente;
-
una etapa de análisis de la citada lista representativa de dicha memoria cache asociada con el mencionado terminal cliente, con el fin de identificar los eventuales pares <O,L_{0}> correspondientes a dicho o a dichos objetos de identificativo O y de nivel de restitución L_{0} necesarios en dicho terminal cliente, no memorizados en la citada lista;
-
una etapa de emisión hacia dicho terminal cliente de dicho o de dichos eventuales objetos con identificativo O y de nivel de restitución L_{0}, requeridos en dicho terminal cliente, correspondientes a dicho o a dichos pares <O,L_{0}> eventuales, no memorizados en la mencionada lista;
-
una etapa de actualización de la mencionada lista representativa de dicha memoria cache asociada al citado terminal cliente, añadiendo, a dicha lista, dicho o dichos pares <O,L_{0}> correspondientes a dicho o a dichos eventuales objetos emiti- dos.
La etapa de determinación de uno o varios objetos requeridos en el cliente puede ser el resultado de un cálculo efectuado por el servido en función de las informaciones memorizadas en el contexto del cliente. Tal cálculo puede ser efectuado, igualmente, por una entidad de cálculo independiente pero asociada al servidor, por ejemplo con anterioridad a la conexión del cliente; la etapa de determinación consiste, entonces, para el servidor, en consultar el resultado de este cálculo con objeto de identificar, en función de las informaciones de visualización asociadas al cliente, el o lo objetos que le son necesarios. El invento permite, por tanto, con respecto a los sistemas de la técnica anterior, trasladar el cálculo de los objetos requeridos por el cliente, del terminal del cliente al servidor o a la entidad de cálculo que le está asociada.
De forma ventajosa, dicho servidor ejecuta, igualmente:
-
una etapa de determinación de, al menos, un objeto de identificativo O y de nivel de restitución L_{0} que podría ser necesario en dicho terminal cliente, según al menos un criterio de probabilidad predeterminado;
-
una etapa de envío anticipado a dicho terminal cliente de dicho al menos un objeto de identificativo y de nivel de restitución L_{0}.
El servidor evalúa, por ejemplo, la probabilidad de que el observador se aproxime a un objeto de la escena, en función de la evolución de sus desplazamientos anteriores y, si esta probabilidad es superior a un umbral predeterminado, el servidor toma la iniciativa de enviar al cliente un objeto que le será necesario en un futuro próximo si continúa, efectivamente, su desplazamiento en la misma dirección.
De preferencia, al recibir al menos un objeto emitido por dicho servidor, dicho terminal cliente pone en práctica las etapas siguientes:
-
si la tasa de llenado de la citada memoria cache asociada a dicho terminal cliente es inferior a un umbral predeterminado, una etapa de almacenamiento de dicho objeto recibido en la mencionada memoria cache;
-
si no, una etapa de evaluación de un criterio de pertinencia del citado objeto recibido:
\bullet
si uno al menos de dichos objetos almacenados en la citada memoria cache presenta un criterio de pertenencia de valor inferior al de dicho criterio de pertenencia del citado objeto recibido, dicho terminal cliente pone en práctica una etapa secundaria de supresión de dicho objeto menos pertinente de la citada memoria cache y una etapa secundaria de almacenamiento de dicho objeto recibido en dicha memoria cache;
\bullet
si no, dicho terminal cliente pone en práctica una etapa secundaria de rechazo del citado objeto recibido.
Un criterio de pertinencia de esta clase, puede depender, por ejemplo, de la distancia entre objeto y observador.
Según una característica ventajosa del invento, al iniciarse dicha etapa secundaria de supresión y/o dicha etapa secundaria de rechazo, el mencionado terminal cliente envía, hacia dicho servidor, al menos una información de actualización de la citada memoria cache asociada a dicho terminal cliente, de forma que el mencionado servidor suprima de dicha lista representativa de dicha memoria cache, al menos un par <O,L_{0}> correspondiente al mencionado objeto suprimido en el curso de la citada etapa secundaria de supresión y/o a un objeto emitido por dicho servidor en el curso de la citada etapa de emisión pero no almacenado en dicha memoria cache.
Con preferencia, al menos ciertos de los mencionados objetos constituyen al menos un índice, con el fin de poder transmitir selectivamente parte de dicho objeto a partir del mencionado índice asocia-
do.
En especial, estos objetos son, por ejemplo, de uno de dichos tipos siguientes:
-
imágenes en dos dimensiones;
-
mallas;
-
texturas;
-
sonidos;
-
modelos geométricos;
-
escenas en tres dimensiones;
-
datos de vídeo;
-
datos paginados.
Resultará evidente que esta lista no es, en absoluto, exhaustiva y que. únicamente se ofrece a título de ejemplo ilustrativo.
El invento se refiere, también, a un sistema de transmisión de datos, denominados objetos, a través de, al menos, una red de comunicaciones, entre un servidor y, al menos, un terminal cliente, por lo menos una memoria cache, destinada a guardar al menos ciertos de dichos objetos transmitidos por el citado servidor, que está asociada, en el seno de la mencionada red, a dicho al menos uno de dichos terminales cliente.
Según el invento, un sistema de esta clase comprende medios de gestión, aguas arriba de los mencionados terminales cliente, de por lo menos una lista de objetos presentes en dicha memoria cache asociada a uno de dichos terminales cliente, a fin de limitar los intercambios de informaciones relativas al contenido de dicha memoria cache entre dicho terminal cliente y el citado servidor.
El invento se refiere, igualmente, a un servidor de datos, denominados objetos, conectado a través de, al menos, una red de comunicaciones a, por lo menos, un terminal cliente, por lo menos una memoria cache destinada a guardar al menos ciertos de dichos objetos transmitidos por el citado servidor, que está asociada, en el seno de dicha red, a uno al menos de los mencionados terminales cliente. Tal servidor comprende medios de gestión de, al menos, una lista de objetos presentes en dicha memoria cache asociada a uno, al menos, de dichos terminales cliente, a fin de limitar los intercambios de informaciones relativas al contenido de dicha memoria cache con el citado terminal cliente asociado.
El invento se refiere, asimismo, a un terminal cliente de un servidor de datos tal como se ha descrito en lo que antecede, que comprende medios de transmisión hacia dicho servidor de, al menos, una información de actualización con el fin de permitir a dicho servidor poner al día dicha lista representativa de dicha memoria cache asociada el citado terminal.
Otras características y ventajas del invento resultarán más claramente evidentes a partir de la lectura de la siguiente descripción de un modo de realización preferido, dado a título de simple ejemplo ilustrativo y no limitativo, y de los dibujos adjuntos, entre los que:
- la figura 1 presenta un esquema sinóptico de una arquitectura cliente-servidor adaptada a la puesta en práctica del invento;
- la figura 2 ilustra la arquitectura de la figura 1 completada según el invento mediante la adición, al nivel del servidor, de un bloque de gestión de la lista de objetos;
- la figura 3 ilustra un ejemplo de diálogo cliente-servidor llevado a cabo según el invento;
- las figuras 4A a 4C presentan un ejemplo de modo de realización del invento en el marco de modelos tridimensionales codificados por pequeñas ondas geométricas;
- la figura 5 ilustra un segundo ejemplo de modo de realización del invento para objetos que utilizan niveles de detalle no progresivos;
- la figura 6 es un esquema sinóptico de las diferentes etapas seguidas por el servidor del invento durante una fase de visualización;
- la figura 7 ilustra las diferentes etapas llevadas a la práctica según el invento durante una fase de inicialización;
- la figura 8 presenta un esquema sinóptico de las diferentes etapas ejecutadas según el invento durante la recepción de un objeto por el terminal cliente.
El principio general del invento se basa en la gestión, aguas arriba de un terminal cliente, de una lista de objetos presentes en la memoria cache asociada a este terminal con el fin de reducir los intercambios de informaciones entre un servidor, al que el terminal cliente dirige las peticiones de objetos, y el propio terminal cliente.
En este documento se describirá, en lo que sigue, una aplicación particular del invento a la transmisión progresiva de datos, a través de una red de comunicaciones, para que el cliente pueda visualizar, en tiempo real, una escena. (Se recuerda que el presente invento no se limita a la visualización de objetos sino que, también, es aplicable a la audición de objetos sonoros, etc.).
En relación con la figura 1 se presenta un ejemplo de arquitectura cliente-servidor. Una memoria cache 1 está asociada al cliente 2; esta memoria cache 1 le permite al cliente almacenar los datos transmitidos por un servidor 3 a través de la red de comunicaciones 4.
Los datos almacenados en la memoria cache 1 pueden ser los datos "presentes" (es decir, en curso de utilización por el terminal de cliente 2), "futuros" (es decir, previstos para una utilización ulterior) o "pasados" (es decir, utilizados anteriormente pero considerados, después, por lo menos momentáneamente obsoletos).
La memoria cache 1 puede estar integrada en el terminal cliente 2 o estar asociada, simplemente, al terminal cliente 2 e, incluso, estar situada en otro punto de la red; por ejemplo, la memoria cache 1 puede estar integrada en un servidor intermedio entre el servidor 3 y el cliente 2, lo que no se ilustra en la figura 1, en especial en un servidor tipo proxy. En una variante de realización del invento, la cache 1 puede ser compartida por varios clientes 2. Por simplificar, la descripción que sigue se limitará a describir el modo de realización particular del invento en el que la memoria cache 1 está integrada
\hbox{en el
terminal del cliente 2.}
El terminal cliente 2 gestiona un conjunto de informaciones esenciales para la selección de los objetos a presentar en su pantalla, en función de su visibilidad, tales como la posición del cliente en la escena a visualizar, la orientación de su observación, y los parámetros de selección de los objetos a presentar o a reproducir, como el umbral de selección de objetos, un ángulo de visión, etc.
El servidor 3 gestiona una base de datos 5 en la que se agrupan un conjunto de objetos que el cliente 2 puede querer visualizar. Estos objetos están, de preferencia, designados en el seno de la base de datos 5, por un identificador único que, también, puede ser reconocido tanto por el servidor 3 como por el cliente 2. Estos objetos son, por ejemplo, mallas tridimensionales, preferiblemente de transmisión progresiva, o cualquier otro tipo de datos en bruto. La base de datos 5 puede contener, igualmente, una pluralidad de objetos de naturaleza diferente, necesarios para la reproducción de una escena por el terminal cliente 2; por ejemplo, en el caso en que el cliente 2 quiera visualizar un concierto de música clásica, la base de datos 5 puede contener objetos tridimensionales para reproducir gráficamente la escena, y sonido tridimensional para reproducir el sonido producido por los instrumentos de música.
Según un modo de realización preferido del invento, ilustrado en la figura 2, el servidor 3 gestiona además una lista 6 que hace referencia a la memoria cache 1 del cliente 2. Según una variante del invento, la lista 6 no es gestionada al nivel del servidor 3, sino aguas arriba del terminal cliente 2, por ejemplo en el seno de un servidor proxy no ilustrado en la figura 2, entre el cliente 2 y el servidor 3. Para simplificar, en lo que sigue en este documento la descripción se limitará al modo de realización particular del invento en el que la lista 6 es gestionada por el servidor 3, pero a un experto en la técnica le resultará fácilmente evidente a partir de esta descripción la realización del invento en el caso en que la lista 6 sea gestionada fuera del servidor 3, aguas arriba del cliente 2.
La lista 6 comprende un conjunto de pares <O,L_{0}> en donde O es el identificativo de un objeto y L_{0} corresponde a un nivel de restitución del objeto considerado que ha sido transferido al terminal cliente 2. Como se ilustra en lo que sigue en este documento, en relación con las figuras 4 y 5, L_{0} puede adoptar diversas formas diferentes, dependiendo del tipo de objeto O utilizado.
El servidor 3 puede gestionar, además, un conjunto de informaciones relativas al terminal cliente y/o al cliente 2. Estas informaciones son, por ejemplo, la posición del cliente en la base asociada a la escena a visualizar, la orientación de la observación del cliente, y los parámetros de selección de los objetos a visualizar (a saber, en especial, un umbral de selección y un ángulo de visión de los objetos de la escena).
La arquitectura ofrecida en la figura 2 permite, en el marco del invento, transmitir parte de los cálculos de selección de los datos a visualizar del terminal cliente 2 hacia el servidor 3, lo que permite reducir, ventajosamente, los intercambios entre el cliente 2 y el servidor 3. Este aspecto del invento se describirá más en detalle en lo que sigue, en este documento, en relación con la figura 3.
En el marco de la arquitectura de la figura 2, se describen, en relación con la figura 7, las diferentes etapas ejecutadas durante una fase de inicialización del diálogo entre el servidor 3 y el cliente 2. Así, al conectar el cliente 2 con el servidor 3, son transmitidos ciertos datos a fin de inicializar el servidor 3.
En el curso de una etapa designada con 71, el terminal cliente 2 transmite al servidor 3 las informaciones visuales iniciales tales como, por ejemplo, la posición del cliente en la escena a visualizar, su orientación, el ángulo de visión o, incluso, el umbral de selección de objetos (en función, especialmente, del nivel de detalle que desee obtener el cliente 2). Se observará que el tipo de umbral de selección puede variar en función del tipo de objeto considerado, como se ilustra en lo que sigue en este documento.
Durante una etapa 72 de almacenamiento en memoria, el servidor 3 guarda las informaciones de visualización iniciales recibidas, en el contexto asociado al terminal cliente 2.
El servidor 3 puede transmitir entonces (73) al terminal cliente 2 una versión aproximada de la escena a reproducir, en lo que se denomina cartografía. Una cartografía de esta clase corresponde a una versión elemental de la base de datos 5 y le permite, al cliente 2, presentar al menos de forma aproximada, la escena a visualizar en su terminal, al comienzo de la conexión.
Al recibir esta cartografía, el cliente 2 puede crear especialmente, en el seno de la memoria cache 1, diferentes sub-memorias cache necesarias para el almacenamiento de los datos recibidos del servidor 3.
Según el invento, se elige guardar en una misma sub-memoria cache todos los objetos del mismo tipo recibidos del servidor 3. En el caso de que todos los objetos de la escena a visualizar sean de la misma naturaleza, no es necesario crear las sub-memorias en el seno de la memoria cache 1. En el ejemplo particular en que el cliente 2 visualice en su terminal un relieve del terreno, se creará, de preferencia, en el seno de la memoria cache 1, una primera sub-memoria cache para almacenar los datos relativos a la geometría del terreno y una segunda sub-memoria cache destinada a almacenar la textura del terreno.
Al comienzo de tal fase de inicialización, el cliente 2 y el servidor 3 pueden transmitir y recibir los datos de la base 5 que permitan al cliente 2 la visualización de la escena considerada.
En lo que sigue se describe, en relación con las figuras 3 y 6, el diálogo cliente-servidor durante la fase de visualización de la escena a reproducir por el terminal de cliente 2.
El principio general de tal fase de visualización se basa en la transmisión, por el cliente 2, al servidor 3, de informaciones que el servidor 3 guarda en el contexto asociado al cliente 2, y utiliza para transmitir al cliente 2 los datos u objetos necesarios para conseguir la visualización de la escena.
Estas informaciones son de distinta naturaleza y son modificadas, en especial, a diferentes frecuencias por el cliente 2. Así, las informaciones relativas a la posición del cliente en la escena a reproducir y su dirección de observación son modificadas en el transcurso de la visualización de la escena, ya que el cliente 2 o, más exactamente, el observador visual que tiene asociado, se desplaza en la escena y la recorre con la mirada.
La transmisión de estas informaciones del cliente 2 al servidor 3 está simbolizada por la flecha (a) de trazo continuo en la figura 3. Se lleva a cabo a una frecuencia que puede ser definida por el cliente 2 (por ejemplo cada 5 segundos) o determinada en función de las capacidades de la red 4 y del terminal cliente 2 (por ejemplo, la frecuencia de transmisión de las informaciones de visualización puede fijarse en 2 segundos para una red de alta velocidad y en 6 segundos para una red de baja velocidad). La transmisión (a) de estas informaciones está condicionada además, ventajosamente, por un criterio cronológico, a fin de limitar el número de intercambios (a) entre el cliente 2 y el servidor 3; así, la transmisión (a) de las informaciones de posición y de dirección de observación solamente tiene lugar si han sido modificadas después de su última transmisión (a) al servidor 3.
Por ejemplo, si el cliente 2 se ha desplazado en la escena desde la última transmisión (a) de informaciones de posición y de dirección de observación al servidor 3, tendrá lugar una nueva transmisión (a) de las informaciones modificadas 5 segundos después (si la frecuencia de transmisión ha sido fijada en 5 segundos).
Según el invento, el cliente 2 no espera respuesta de parte del servidor 3 a la transmisión (a) que, por tanto, puede realizarse en modo no conectado (de tipo UDP (Protocolo de datagramas de usuario), por ejemplo).
Como se ha ilustrado en la figura 6, al recibirse (61) las informaciones de posición y de orientación transmitidas (a) por el cliente 2, el servidor 3 efectúa una actualización 62 del contexto asociado al cliente 2, guardando en la memoria las nuevas informaciones de posición y de orientación recibidas.
Otras informaciones, como los parámetros de selección de los objetos a transmitir, o una información de actualización de la memoria cache 1, son transmitidas, de preferencia, según un criterio cronológico, a saber su modificación. Tal transmisión del cliente 2 al servidor 3 está simbolizada por la flecha (b) en trazo interrumpido en la figura 3. Al recibirlas, el servidor 3 guarda estas informaciones, bien en la lista 6 (para la información de actualización de la memoria cache), bien de una manera más general en el contexto asociado al cliente 2.
Así, la información de actualización de la memoria cache 1 del cliente 2 es transmitida al servidor 3, en forma de lista de pares <O,L_{0}> correspondientes a los objetos presentes en la memoria cache 1 (o en una de las sub-memorias de la memoria cache 1), cada vez que:
-
uno o varios objetos han sido suprimidos de la cache 1 por el terminal cliente 2 para permitir almacenar los nuevos objetos transmitidos por el servidor 3; o
-
cuando uno o varios objetos transmitidos por el servidor 3 han sido rechazados por el terminal cliente 2.
Estos aspectos se describirán con mayor detalle en lo que sigue en relación con la figura 8, que ilustra el tratamiento llevado a cabo por el terminal cliente 2 al recibir los objetos transmitidos por el servidor 3.
O representa un identificativo de un objeto de la escena, y L_{0} es una información relativa al nivel de detalle de restitución del objeto O. La estructura de L_{0} depende, por supuesto, del tipo del objeto O y del método utilizado para codificar los niveles de detalle asociados. Así, L_{0} puede ser un valor representativo del nivel de detalle (por ejemplo, en el caso en que el invento lleva a la práctica una técnica de tipo HLOD (Nivel de detalle organizado jerárquicamente), según el cual un conjunto de valores representativos codifican los refinamientos geométricos del objeto O, como se ilustra en lo que sigue en relación con las figuras 4 y 5.
Igualmente, los parámetros de selección de los objetos (tales como el umbral de selección de objetos, el ángulo de visión, o cualquier otra información que permita la modificación de la selección de los objetos) serán transmitidos al producirse la modificación de su valor. En efecto, se puede considerar que, durante la visualización, el cliente 2 decida modificar el umbral de selección definido durante la fase de inicialización con el fin de, por ejemplo, reducirlo, para poder obtener una reproducción más detallada de la escena.
Se recuerda que tal umbral de selección puede definirse de numerosas formas y, en especial, puede evaluarse en grados, en elementos de imagen (píxeles) proyectados, en tamaño, etc. Así, el servidor 3 puede no transmitir al cliente 2 más que los objetos que, después de ser proyectados en la pantalla del terminal cliente 2, sean vistos por el observador visual bajo un ángulo igual o mayor que 1º. En el caso de un objeto asociado a una malla codificada por pequeñas ondas geométricas, el umbral de selección puede fijarse, por ejemplo, de manera que no se seleccionen más que los coeficientes de pequeñas ondas que induzcan una deformación de la malla igual o mayor que 2º. Si el objeto considerado es un sonido, el umbral de selección puede depender de la frecuencia es este sonido o de su duración. El umbral de selección, así como todos los demás parámetros de selección, pueden definirse, también, de cualquier otra manera que le permita al servidor 3 elegir los objetos pertinentes que han de transmitirse al cliente 2.
Dependiendo de las informaciones contenidas en el contexto asociado al cliente 2 (información de posición, de dirección de observación, parámetros de selección, información relativa al contenido de la memoria cache 1), el servidor 3 transmite al cliente 2 los objetos o los datos visiblemente pertinentes. Esta transmisión está simbolizada por la flecha (c) de trazo continuo en la figura 3. La determinación de los objetos visualmente pertinentes puede obtenerse como resultado de los cálculos efectuados por el servidor 3 o por otra entidad de la red 4. Igualmente, puede calcularse previamente al establecimiento de la conexión entre el servidor 3 y el cliente 2 y guardarse en memoria en el seno de la red, por ejemplo,
\hbox{en el servidor
3.}
Así, en el modo de realización particular ilustrado en la figura 6, el servidor 3 determina (63) en función de todas o de parte de las informaciones de visualización (por ejemplo, en función de la información de posición, de dirección de observación del cliente 2 y de los parámetros de selección) contenidas en el contexto del cliente 2, el o los objetos O necesarios para el terminal cliente 2, con un nivel de restitución adecuado.
El servidor 3 analiza entonces (64) la lista 6 asociada a la memoria cache 1 del terminal cliente 2, puesta al día en función de las últimas informaciones de actualización recibidas, para determinar si el o los objetos que necesita el cliente 2, con el nivel de refinamiento L_{0} adecuado, ya se encuentran guardados en la memoria cache 1 del cliente 2.
En caso contrario, el servidor 3 emite (65) este o estos objetos hacia el terminal cliente 2.
Según el invento, se puede igualmente llevar a la práctica un método de anticipación que le permita al servidor 3 transmitir (c) al cliente 2 los objetos que todavía no necesita pero que el servidor prevé que le serán necesarios en un futuro próximo. Por ejemplo, si el servidor 3 determina que el cliente 2 se ha desplazado a varias posiciones sucesivamente en la misma dirección, puede transmitir (c) al cliente 2 un objeto que éste todavía no necesite pero que, próximamente, entrará en su campo de visión si el cliente 2 continúa desplazándose en esta dirección.
Durante esta transmisión (c), el servidor 3 modifica la lista 6 asociada al cliente 2 añadiendo, en forma de pares <O,L_{0}> los datos transmitidos (c) al cliente 2, considerando que todos los datos transmitidos al cliente han sido almacenados en la memoria cache 1. Esta etapa de actualización se ilustra en la figura 6 mediante la etapa designada con 66. Una modificación de esta clase de la lista 6 permite reducir al mínimo, ventajosamente, las redundancias durante la transmisión. Puede ocurrir que determinados datos transmitidos (c) por el servidor 3 al cliente 2 no se guarden en la memoria cache 1, por ejemplo en caso de un error de transmisión ocurrido en la red, lo que supondría una pérdida de coherencia entre el estado de la memoria cache 1 y la lista 6. Ventajosamente, el invento prevé solucionar este problema. El mantenimiento de la coherencia entre el estado de la memoria cache 1 y la lista 6 se describirá con mayor detalle en lo que sigue, en relación con la figura 8.
En adelante se describe, en relación con las figuras 4A a 4C, un ejemplo de visualización, por el cliente 2, de modelos tridimensionales codificados mediante pequeñas ondas geométricas. Se recuerda que los métodos de codificación denominados "por pequeñas ondas geométricas" permiten representar una malla como una sucesión de detalles añadidos a una malla de base. La teoría general de esta técnica se describe, en especial, en el artículo de M. Lounsbery, T. DeRose y J. Warren, titulado "Análisis multirresolución para superficies de tipo topológico arbitrario", en ACM transaction on Graphics, vol. 16, núm. 1, págs. 34-73, de Enero de 1997.
Como se ha descrito anteriormente, al emitirse la fase de inicialización del diálogo cliente-servidor, el servidor 3 transmite al terminal cliente 2 una versión aproximada, denominada cartografía, de la base 5. En el caso de una base 5 constituida por un conjunto de modelos tridimensionales (ilustrado en las figuras 4A a 4C), esta cartografía corresponde, por ejemplo, a un conjunto de valores que le indican, al terminal cliente 2, el emplazamiento y el tamaño de los diferentes objetos de la base 5, por ejemplo en forma de emplazamiento y tamaño de los iconos 41A y 42A que engloban estos objetos.
En función de la visibilidad de estos objetos (es decir, en función de su presencia parcial o total en el campo de visión del observador, de su distancia a éste, etc.), el servidor 3 transmite a continuación la malla de base 41B, 42B de estos objetos al cliente 2. Estas mallas de base 41B, 452B permiten que el cliente 2 construya las diferentes sub-memorias cache que necesite para almacenar los datos provenientes del servidor 3 y elaborar una lista de pares <O,L_{0}> inicial correspondiente.
En el ejemplo de las figuras 4A a 4C, se considera que las mallas de base 41B, 42B comprenden, cada una, n caras. La lista 6 gestionada por el servidor 3 para el cliente 2 estará constituida, por tanto, por un conjunto de pares <O, <N1, ..,Nn>> donde O representa el identificativo del objeto y Ni representa el número de coeficientes de pequeñas ondas geométricas presentes en la memoria cache 1 para la cara i de la malla de base 41B, 42B. Durante la transmisión de la malla de base 41B, 42B, los Ni para i \in[1,n] son, todos, inicializados a cero.
Se observará que el conocimiento de los Ni para \in[1,n] le basta al servidor 3 para determinar de forma exacta los coeficientes de las pequeñas ondas geométricas existentes en la memoria cache 1 del cliente 2, a condición de que se determine previamente un orden de selección de los coeficientes de las pequeñas ondas geométricas. Así, si el cliente 2 informa al servidor 3, durante la etapa (b) de la figura 3, que dispone de 30 coeficientes para la cara núm. 8 de la malla 41B, el servidor 3 comenzará a transmitir los coeficientes, asociados a la cara núm. 8 de la malla 41B y pertinentes para el cliente 2 a partir del coeficiente situado en la posición 31. Se recuerda que la selección de los coeficientes pertinentes tiene en cuenta las informaciones de visualización guardadas en la memoria en el contexto del cliente, tales como la información de posición, de orientación de observación, y los parámetros de selección.
El orden de selección de los coeficientes por cara de malla se conserva, preferiblemente, a su llegada al terminal de cliente 2.
A partir de los coeficientes transmitidos por el servidor para cada una de las caras visibles de la malla de base 41B, 41C, el terminal cliente 2 puede reconstruir una representación detallada 41C, 42C de los objetos de la escena.
En lo que sigue se presenta, en relación con la figura 5, un segundo ejemplo de puesta en práctica del invento, para objetos que utilizan niveles de detalle no progresivos. Contrariamente al ejemplo precedente, que lleva a cabo una técnica de codificación por pequeñas ondas, según la cual los objetos, o partes de ellos, pueden ser refinados selectivamente en función del punto de vista del usuario, en esta ocasión se presenta el caso de un objeto representado por cuatro niveles de detalle sucesivos, designados con 51 a 54.
Como en el ejemplo de las figuras 4A a 4C, el servidor 3 comienza por transmitir al cliente 2 una cartografía de la base de datos 5, que le permitirá al cliente 2 conocer los datos a presentar. Para cada objeto de la base 5 que estime como potencialmente visible, el servidor 3 transmite, a continuación al cliente 2, el objeto en su nivel de detalle más bajo 54 (es decir, la versión menos precisa del objeto). Durante la visualización, el servidor 3 transmitirá seguidamente los niveles de detalle superiores, 53 a 51, dependiendo de la posición del cliente 2 en la escena. Así, si el cliente 2 se aproxima progresivamente al objeto de la figura 5, el servidor 3 transmitirá progresivamente los niveles de detalle 53, después 52, después 51, en función de la distancia entre el observador y el objeto.
La codificación del nivel de resolución L_{0} asociado al objeto dependerá de las restricciones impuestas por la aplicación que se ejecuta, en especial del carácter obligatorio o no de la transmisión de los objetos en el orden de niveles de detalle asociados.
Así, en caso de que el servidor 3 esté obligado a transmitir los objetos al cliente 2 en el orden de su nivel de resolución, se elegirá asignar a L_{0} el valor del nivel de detalle más elevado presente en la memoria cache 1 para el objeto O. Si la memoria cache 1 contiene los niveles de resolución designados con 54 (nivel de resolución 0) y 53 (nivel de resolución 1) para el objeto O, L_{0} tomará el valor "1". La lista 6 contendrá entonces el par <O,"1"> y el servidor 3 deducirá que la memoria cache 1 contiene los niveles de resolución 0 y 1 para el objeto O. Por tanto, no transmitirá al cliente 2, salvo que sea necesario, mas que el nivel de resolución directamente superior, es decir, el nivel 52 correspondiente a un nivel de resolución de "2".
En el caso de que la transmisión del servidor 3 al cliente 2 en el orden de los niveles de resolución no sea obligatoria, L_{0} representará para el objeto O el conjunto de niveles de resolución almacenados para este objeto en la memoria cache 1 del cliente. Se elegirá, por ejemplo, codificar L_{0} en varios bits, de forma que el bit cuya posición en L_{0} corresponda a un nivel de detalle almacenado en la memoria cache 1 del cliente 2, tome el valor 1. En el ejemplo de la figura 5, si la memoria cache 1 del cliente 2 contiene los niveles de resolución "0" y "2" correspondientes, respectivamente, a las representaciones designadas con 54 y 52, se tendrá L_{0}= 0101. El servidor 3 sabrá, entonces, que puede transmitir los niveles de detalle 1 y 3 correspondientes, respectivamente, a las representaciones designadas con 53 y 51, según la situación del usuario en la escena (en especial, según su distancia al objeto considerado, y su dirección de observación).
Igualmente, si se considera un objeto al que están asociados ocho niveles de detalle sucesivos, y si la memoria cache 1 del cliente 2 comprende, para este objeto, los niveles de detalle 1, 2, 4 y 7, L_{0} tomará el valor "01001011". El servidor 3 sabe, entonces, que puede transmitir los niveles 3, 5, 6 y 8 al cliente 2, según las informaciones de visualización memorizadas en el contexto asociado.
Se observará que este tipo de codificación de L_{0} no se limita a los objetos tridimensionales constituidos por caras, sino que puede aplicarse a todo tipo de datos constituidos por niveles de detalle no progresivos como, por ejemplo, texturas con múltiples resoluciones.
En adelante, se presenta de forma breve un tercer ejemplo de aplicación del invento al caso de datos en bruto del tipo de audio o de vídeo o, incluso, al caso de datos paginados (del tipo de gestión de existencias, personal, etc.).
En el caso de datos en bruto del tipo de audio, por ejemplo, puede que no exista la transmisión de una cartografía por parte del servidor 3. Puede corresponder, también, a la transmisión por el servidor 3 de un conjunto de datos temporales que indiquen, por ejemplo, al cliente 2 que en 30 segundos deberá reproducirse un sonido de violón. Para este tipo de objetos sonoros, la información de restitución L_{0} corresponderá, por ejemplo, al porcentaje de datos transmitidos. Así, el valor de L_{0} le permitirá al servidor 3 conocer que, por ejemplo, los 15 primeros segundos de un sonido cuya duración es de 2 minutos y 30 segundos, están almacenados en la memoria cache 1 del cliente 2.
En el caso de datos paginados, la cartografía emitida por el servidor 3 al inicializar podrá corresponder, por ejemplo, al número total de páginas existentes para cada uno de los datos en la base de datos 5. La información de restitución L_{0} podrá ser, en este caso, un dato variable de la forma <N, N0, ..., Nn>, donde N representa el número de páginas conocidas para este objeto (es decir, el número de páginas almacenadas en la memoria cache del cliente para este objeto) y donde Ni indica el nombre de la página
\hbox{en la posición i.}
En lo que sigue se describen, en relación con la figura 8, las diferentes etapas llevadas a la práctica por el terminal cliente 2, al recibirse (81) uno o varios objetos O_{R} enviados por el servidor 3 en el curso de la transmisión designada (c) en la figura 3. Para simplificar, en esta ocasión se describe el caso en que el servidor 3 transmite un único objeto O_{R} al cliente 2. por supuesto, la técnica seguida en el caso de que varios objetos O_{R} sean recibidos por el cliente 2 y/o la memoria cache 1, es fácilmente deducible.
Durante la etapa designada con 82, el terminal cliente verifica la tasa de llenado de la memoria cache 1 que le está asociada. En caso de que la memoria cache 1 no esté integrada en el terminal 2, esta verificación es llevada a cabo por la entidad encargada de la gestión de la memoria cache 1, por ejemplo, un servidor proxy en el que esté integrada la memoria cache 1.
Si la tasa de llenado de la memoria cache 1 es inferior a un umbral de llenado predeterminado, lo que indicaría que aún es posible almacenar uno o más objetos nuevos en la memoria cache 1, el objeto O_{R} recibido se almacena (83) en la memoria cache 1 del cliente 2.
En caso contrario, no resulta posible guardar el objeto O_{R} recibido del servidor 3 en la memoria cache 1 en ese estado. Se determina entonces (84) si existe un objeto O_{S} en la memoria cache 1, que sea visualmente menos pertinente para el observador, que el objeto O_{R} recibido. Tal objeto O_{S} puede ser un objeto que haya salido del campo de visión del cliente 2 debido, por ejemplo, a un desplazamiento reciente o a un cambio de dirección del observador del cliente 2.
Si existe tal objeto O_{S} menos pertinente, es suprimido (86) de la memoria cache 1, de manera que el nuevo objeto O_{R} recibido del servidor 3, pueda ser almacenado, en su lugar, en la memoria cache 1.
El terminal cliente 2 envía entonces (87) una información de actualización del estado de la cache 1, para informar al servidor 3 de la supresión de este objeto O_{S} de la memoria cache 1 y del almacenamiento correspondiente en la memoria del objeto O_{R}.
Por el contrario, si todos los objetos almacenados en la memoria cache 1 son visualmente más pertinentes que el objeto O_{R} recibido del servidor 3, la entidad encargada de gestionar la memoria cache 1 (por ejemplo, el terminal cliente), rechaza este objeto O_{R}.
El terminal cliente 2 envía (87), entonces, una información de actualización del estado de la memoria cache 1, informando al servidor 3 de que el objeto O_{R} no ha podido ser guardado en la memoria cache 1.
Esta información de actualización le permite igualmente al servidor 3 mantener la coherencia entre el estado de la memoria cache 1 y la lista 6 representativa de su contenido. En efecto, al recibirse esta información de actualización, el servidor 3 puede verificar, en especial, que todos los objetos que ha transmitido al cliente 2, y que han sido añadidos a la lista 6, han sido bien recibidos, sin errores, por el cliente 2 y/o la memoria cache 1. Esto permite solucionar, en particular, los problemas de transmisión que pudieran estar relacionados con un fallo de la red 4.
El servidor 3 compara, por tanto, la información de actualización recibida del cliente 2 y la lista 6, con el fin de verificar su conformidad y, llegado el caso, actualizar la lista 6 en función de la información de actualización recibida.

Claims (20)

1. Procedimiento de transmisión de datos, denominados objetos, a través de, al menos, una red de comunicaciones (4), entre un servidor (3) y, al menos, un terminal cliente (2),
al menos una memoria cache (1) destinada a guardar por lo menos ciertos de dichos objetos transmitidos por el citado servidor, la cual está asociada, en el seno de dicha red, a uno, por lo menos, de dichos terminales cliente,
caracterizado porque dicho servidor (3) o un elemento intermedio de dicha red gestiona, aguas arriba de dichos terminales cliente, por lo menos una lista (6) de cada uno de los objetos presentes en la mencionada memoria cache (1) asociada a uno de dichos terminales cliente, con el fin de limitar los intercambios de informaciones relativas al contenido de la citada memoria cache, entre dicho terminal cliente (2) y dicho servidor (3).
2. Procedimiento de transmisión según la reivindicación 1, caracterizado porque se memoriza, en el seno de dicha lista (6), un identificativo de cada uno de dichos objetos y, para al menos uno de dichos objetos, una información de restitución del citado objeto.
3. Procedimiento de transmisión según la reivindicación 2, caracterizado porque para al menos uno de dichos objetos, dicha información de restitución está relacionada con un nivel de resolución del mencionado objeto.
4. Procedimiento de transmisión según una cualquiera de las reivindicaciones 2 y 3, caracterizado porque, para cada uno de dichos objetos almacenados en la citada memoria cache, dicha lista (6) comprende un par <O,L_{0}> que incluye dicho identificativo O del mencionado objeto y dicha información de restitución L_{0} del mencionado objeto.
5. Procedimiento de transmisión según una cualquiera de las reivindicaciones 1 a 4, caracterizado porque, para cada uno de dichos terminales cliente (2) se asocia a dicha lista (6) al menos una información relativa a dicho terminal cliente (2) y/o a un usuario de dicho terminal cliente, denominada información de visualización, con el fin de constituir un contexto.
6. Procedimiento de transmisión según la reivindicación 5, caracterizado porque dicha información de visualización pertenece al grupo que comprende:
-
una información de posición de dicho usuario;
-
una dirección de observación de dicho usuario;
-
los parámetros de selección de dichos objetos.
7. Procedimiento de transmisión según una cualquiera de las reivindicaciones 5 y 6, caracterizado porque comprende una fase preliminar de inicialización que lleva a cabo, para cada uno de dichos terminales cliente (2), una primera etapa de transmisión (71) hacia dicho servidor (3) de informaciones de visualización iniciales, y una etapa de memorización (72), por parte de dicho servidor (3), en dicho contexto correspondiente, de las citadas informaciones de visualización iniciales.
8. Procedimiento de transmisión según la reivindicación 4, caracterizado porque dicha fase preliminar de inicialización comprende, además, una segunda etapa de transmisión (73) por parte de dicho servidor (3), a dicho terminal cliente (2), de una versión aproximada de la escena a reproducir por dicho terminal cliente.
9. Procedimiento de transmisión según una cualquiera de las reivindicaciones 5 a 8, caracterizado porque cada uno de dichos terminales cliente lleva a la práctica una etapa de transferencia de, al menos, ciertas de dichas informaciones de visualización hacia dicho servidor a intervalos de tiempo predeterminados y/o cuando dichas informaciones de visualización son modificadas.
10. Procedimiento de transmisión según la reivindicación 9, caracterizado porque dichos intervalos de tiempo predeterminados son fijados por el citado terminal cliente.
11. Procedimiento de transmisión según la reivindicación 10, caracterizado porque dichos intervalos de tiempo predeterminados son función de, al menos, una característica de dicha red de comunicaciones.
12. Procedimiento de transmisión según una cualquiera de las reivindicaciones 9 a 11, caracterizado porque al emitir dicho terminal cliente dicha etapa de transferencia, el citado procedimiento ejecuta una etapa de actualización (62) de dichas informaciones de visualización en el seno de dicho contexto correspondiente.
13. Procedimiento de transmisión según la reivindicación 12, caracterizado porque al emitirse dicha etapa de actualización, el citado servidor ejecuta las etapas siguientes:
-
una etapa de determinación (63) en función de, al menos, ciertas de dichas informaciones de visualización actualizadas, de al menos un objeto con identificativo O, requerido por dicho terminal cliente, y un nivel L_{0} de restitución correspondiente;
-
una etapa de análisis (64) de la citada lista representativa de dicha memoria cache asociada al mencionado terminal cliente, con objeto de identificar los eventuales pares <O,L_{0}> correspondientes a dicho o a dichos objetos con identificativo O y con nivel de restitución L_{0}, necesarios en dicho terminal cliente, no memorizados en la citada lista;
-
una etapa de emisión (65) hacia dicho terminal cliente de dicho o de dichos eventuales objetos con identificativo O y nivel de restitución L_{0}, necesarios en dicho terminal cliente, correspondientes a dicho o a dichos eventuales pares <O,L_{0}> no memorizados en la citada lista;
-
una etapa de actualización (66) de dicha lista representativa de dicha memoria cache asociada a dicho terminal cliente, en la que se añaden a dicha lista dicho o dichos pares <O,L_{0}> correspondientes a dicho o a dichos eventuales objetos emitidos.
14. Procedimiento de transmisión según la reivindicación 13, caracterizado porque dicho servidor pone igualmente en práctica:
-
una etapa de determinación de, al menos, un objeto con identificativo O y nivel de restitución L_{0} que podría ser necesario en dicho terminal cliente, según al menos un criterio de probabilidad predeterminado;
-
una etapa de envío anticipado, a dicho terminal cliente, de dicho al menos un objeto con identificativo O y nivel de restitución L_{0}.
15. Procedimiento según una cualquiera de las reivindicaciones 13 y 14, caracterizado porque, al recibirse (81) al menos un objeto emitido por dicho servidor, el citado terminal cliente lleva a la práctica las siguientes etapas:
-
si la tasa de llenado de dicha memoria cache asociada al citado terminal cliente es inferior a un umbral predeterminado, una etapa de almacenamiento (83) de dicho objeto recibido en la citada memoria cache;
-
si no, una etapa de evaluación (84) de un criterio de pertinencia del mencionado objeto recibido:
\bullet
si uno, al menos, de dichos objetos guardados en la citada memoria cache presenta un criterio de pertinencia de valor inferior al de dicho criterio de pertinencia del citado objeto recibido, dicho terminal cliente pone en práctica una etapa secundaria de supresión (86) del citado objeto menos pertinente de dicha memoria cache y una etapa secundaria de almacenamiento de dicho objeto recibido en dicha memoria cache;
\bullet
si no, dicho terminal cliente pone en práctica una etapa secundaria de rechazo (85) de dicho objeto recibido.
16. Procedimiento de transmisión según la reivindicación 15, caracterizado porque al emitirse dicha etapa secundaria de supresión y/o dicha etapa secundaria de rechazo, dicho terminal cliente envía (87), hacia el citado servidor, al menos una información de actualización de dicha memoria cache asociada a dicho terminal cliente,
de forma que el citado servidor suprima de dicha lista representativa de dicha memoria cache, al menos un par <O,L_{0}> correspondiente a dicho objeto suprimido en el curso de dicha etapa secundaria de supresión y/o a un objeto, emitido por dicho servidor durante dicha etapa de emisión, pero no almacenado en la citada memoria cache.
17. Procedimiento de transmisión según una cualquiera de las reivindicaciones 1 a 16, caracterizado porque el menos ciertos de los objetos mencionados comprenden, al menos, un índice con el fin de poder transmitir selectivamente una parte de dicho objeto a partir de dicho índice asociado.
18. Sistema de transmisión de datos, denominados objetos, a través de, al menos, una red de comunicaciones, entre un servidor (3) y, al menos, un terminal cliente (2), al menos una memoria cache (1) destinada a guardar por lo menos ciertos de dichos objetos transmitidos por el citado servidor, que está asociada, en el seno de dicha red, a uno, por lo menos, de dichos terminales cliente,
caracterizado porque comprende medios de gestión, aguas arriba de dichos terminales cliente, de al menos una lista (6) de todos los objetos presentes en dicha memoria cache asociada a uno de dichos terminales cliente, a fin de limitar los intercambios de informaciones relativas al contenido de dicha memoria cache, que se producen entre dicho terminal cliente y dicho servidor.
19. Servidor de datos, denominados objetos, conectado a través de, al menos, una red de comunicaciones, a por lo menos un terminal cliente,
al menos una memoria cache, destinada a guardar al menos ciertos de dichos objetos transmitidos por el citado servidor, que está asociada, en el seno de dicha red, a uno, al menos, de dichos terminales cliente,
caracterizado porque comprende medios de gestión de, al menos, una lista de todos los objetos presentes en dicha memoria cache asociada a uno, al menos, de dichos terminales cliente,
a fin de limitar los intercambios de informaciones relativas al contenido de dicha memoria cache con dicho terminal cliente asociado.
20. Terminal cliente de un servidor de datos según la reivindicación 19,
caracterizado porque comprende medios de transmisión hacia dicho servidor de, al menos, una información de actualización con el fin de permitir que dicho servidor actualice la citada lista representativa de dicha memoria cache asociada a dicho terminal.
ES02801101T 2001-12-20 2002-12-05 Procedimiento para transmitir objetos entre un servidor y un terminal cliente que utiliza gestion de memoria cache, transmision, servidor y terminal correspondientes. Expired - Lifetime ES2249638T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0116632A FR2834104B1 (fr) 2001-12-20 2001-12-20 Procede de transmission d'objets entre un serveur et un terminal client mettant en oeuvre une gestion de cache, systeme de transmission, serveur et terminal correspondants
FR0116632 2001-12-20

Publications (1)

Publication Number Publication Date
ES2249638T3 true ES2249638T3 (es) 2006-04-01

Family

ID=8870818

Family Applications (1)

Application Number Title Priority Date Filing Date
ES02801101T Expired - Lifetime ES2249638T3 (es) 2001-12-20 2002-12-05 Procedimiento para transmitir objetos entre un servidor y un terminal cliente que utiliza gestion de memoria cache, transmision, servidor y terminal correspondientes.

Country Status (13)

Country Link
US (1) US20050086318A1 (es)
EP (1) EP1457023B1 (es)
JP (1) JP4336583B2 (es)
KR (1) KR100952190B1 (es)
CN (1) CN100505741C (es)
AT (1) ATE307453T1 (es)
AU (1) AU2002364818A1 (es)
BR (1) BR0215625A (es)
DE (1) DE60206801T2 (es)
ES (1) ES2249638T3 (es)
FR (1) FR2834104B1 (es)
MX (1) MXPA04005844A (es)
WO (1) WO2003055141A2 (es)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8156074B1 (en) 2000-01-26 2012-04-10 Synchronoss Technologies, Inc. Data transfer and synchronization system
US6671757B1 (en) 2000-01-26 2003-12-30 Fusionone, Inc. Data transfer and synchronization system
US8620286B2 (en) 2004-02-27 2013-12-31 Synchronoss Technologies, Inc. Method and system for promoting and transferring licensed content and applications
EP1652048A4 (en) 2003-07-21 2009-04-15 Fusionone Inc ORDERING NEWS MANAGEMENT SYSTEM
US7440559B2 (en) * 2003-10-22 2008-10-21 Nokia Corporation System and associated terminal, method and computer program product for controlling the flow of content
US20050102385A1 (en) * 2003-10-22 2005-05-12 Nokia Corporation System and associated terminal, method and computer program product for controlling storage of content
US7634509B2 (en) * 2003-11-07 2009-12-15 Fusionone, Inc. Personal information space management system and method
US9542076B1 (en) 2004-05-12 2017-01-10 Synchronoss Technologies, Inc. System for and method of updating a personal profile
ES2585353T3 (es) 2004-05-12 2016-10-05 Synchronoss Technologies, Inc. Sistema de identificación de contactos avanzado
US7831680B2 (en) * 2004-07-16 2010-11-09 National Instruments Corporation Deterministic communication between graphical programs executing on different computer systems
KR100662256B1 (ko) * 2004-12-20 2006-12-28 한국전자통신연구원 낮은 프로세스 점유율을 가지는 객체기반 스토리지 장치및 그 제어 방법
JP4745839B2 (ja) * 2005-01-28 2011-08-10 富士通株式会社 データ転送システム、送信プログラム、受信プログラム及びデータ送信方法
US8583827B2 (en) * 2005-05-26 2013-11-12 Citrix Systems, Inc. Dynamic data optimization in data network
US7610291B2 (en) * 2005-08-17 2009-10-27 International Business Machines Corporation Logical grouping and management of redundant objects in storage systems
SE531899C2 (sv) * 2007-07-10 2009-09-01 Agency 9 Ab System för grafikhantering
US8181111B1 (en) 2007-12-31 2012-05-15 Synchronoss Technologies, Inc. System and method for providing social context to digital activity
US8352871B2 (en) 2008-12-04 2013-01-08 International Business Machines Corporation System and method for virtual environment preservation based on automated item reduction
JP2011030179A (ja) * 2009-06-29 2011-02-10 Sony Corp 画像データ送信装置、制御方法およびプログラム
US8255006B1 (en) 2009-11-10 2012-08-28 Fusionone, Inc. Event dependent notification system and method
US8943428B2 (en) 2010-11-01 2015-01-27 Synchronoss Technologies, Inc. System for and method of field mapping
GB2500229B (en) * 2012-03-14 2014-08-06 Canon Kk Method,system and server device for transmitting a digital resource in a client-server communication system
US9854052B2 (en) * 2013-09-27 2017-12-26 Sap Se Business object attachments and expiring URLs
EP2963894A1 (en) * 2014-07-04 2016-01-06 Thomson Licensing Method for operating a cache arranged along a transmission path between client terminals and at least one server, and corresponding cache.
EP3864626A1 (en) * 2018-10-14 2021-08-18 Bentley Systems, Incorporated Dynamic frontend-driven generation of an hlod tree
WO2020081347A1 (en) * 2018-10-14 2020-04-23 Bentley Systems, Incorporated Conversion of infrastructure model geometry to a tile format
US11012531B2 (en) * 2019-04-23 2021-05-18 Cesium GS, Inc. Systems and methods for culling requests for hierarchical level of detail content over a communications network

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5079695A (en) * 1988-04-25 1992-01-07 Hewlett-Packard Company Object management facility which includes a snapshot facility for providing data transfer between two objects
US6026474A (en) * 1996-11-22 2000-02-15 Mangosoft Corporation Shared client-side web caching using globally addressable memory
WO1998057273A1 (en) * 1997-06-13 1998-12-17 Koninklijke Philips Electronics N.V. Cyclic transmission of a plurality of mutually related objects
US5956039A (en) * 1997-07-25 1999-09-21 Platinum Technology Ip, Inc. System and method for increasing performance by efficient use of limited resources via incremental fetching, loading and unloading of data assets of three-dimensional worlds based on transient asset priorities
US6085193A (en) * 1997-09-29 2000-07-04 International Business Machines Corporation Method and system for dynamically prefetching information via a server hierarchy
US5924096A (en) * 1997-10-15 1999-07-13 Novell, Inc. Distributed database using indexed into tags to tracks events according to type, update cache, create virtual update log on demand
US6088698A (en) * 1998-02-27 2000-07-11 Oracle Corporation Method and apparatus for incrementally generating a virtual three-dimensional world
US6098064A (en) * 1998-05-22 2000-08-01 Xerox Corporation Prefetching and caching documents according to probability ranked need S list
US6414679B1 (en) * 1998-10-08 2002-07-02 Cyberworld International Corporation Architecture and methods for generating and displaying three dimensional representations
US6377257B1 (en) * 1999-10-04 2002-04-23 International Business Machines Corporation Methods and apparatus for delivering 3D graphics in a networked environment
US6820133B1 (en) * 2000-02-07 2004-11-16 Netli, Inc. System and method for high-performance delivery of web content using high-performance communications protocol between the first and second specialized intermediate nodes to optimize a measure of communications performance between the source and the destination
US7490166B2 (en) * 2000-05-26 2009-02-10 Citrix Systems, Inc. Remote control of a client's off-screen surface

Also Published As

Publication number Publication date
FR2834104B1 (fr) 2004-10-15
CN100505741C (zh) 2009-06-24
DE60206801D1 (de) 2006-03-02
MXPA04005844A (es) 2005-03-31
KR100952190B1 (ko) 2010-04-09
US20050086318A1 (en) 2005-04-21
KR20040068338A (ko) 2004-07-30
EP1457023B1 (fr) 2005-10-19
AU2002364818A8 (en) 2003-07-09
AU2002364818A1 (en) 2003-07-09
EP1457023A2 (fr) 2004-09-15
WO2003055141A3 (fr) 2003-12-24
ATE307453T1 (de) 2005-11-15
WO2003055141A2 (fr) 2003-07-03
BR0215625A (pt) 2004-12-21
JP4336583B2 (ja) 2009-09-30
JP2005513658A (ja) 2005-05-12
CN1615629A (zh) 2005-05-11
DE60206801T2 (de) 2006-07-27
FR2834104A1 (fr) 2003-06-27

Similar Documents

Publication Publication Date Title
ES2249638T3 (es) Procedimiento para transmitir objetos entre un servidor y un terminal cliente que utiliza gestion de memoria cache, transmision, servidor y terminal correspondientes.
Rusinkiewicz et al. Streaming QSplat: A viewer for networked visualization of large, dense models
US6683608B2 (en) Seaming polygonal projections from subhemispherical imagery
EP1581782B1 (en) System and method for advanced 3d visualization for mobile navigation units
US7551172B2 (en) Sending three-dimensional images over a network
US8849859B2 (en) Hierarchical system and method for on-demand loading of data in a navigation system
Royan et al. Network-based visualization of 3d landscapes and city models
KR20040035585A (ko) 제한된 밴드폭 통신 채널을 위해 최적화된 동적 표시절두체에 대한 네트워크 이미지 배달 시스템 및 방법
US5694531A (en) Method and apparatus for simulating movement in multidimensional space with polygonal projections
JP4944089B2 (ja) 端末及びコンピュータプログラムに対応した、サーバと少なくとも1つのクライアント端末との間でのコンテンツ可視化データの送信の方法
US20050253872A1 (en) Method and system for culling view dependent visual data streams for a virtual environment
US20240048676A1 (en) Method, apparatus and device for processing immersive media data, storage medium
Yang et al. A progressive view-dependent technique for interactive 3-D mesh transmission
Popescu et al. The general pinhole camera: Effective and efficient nonuniform sampling for visualization
US20160267714A1 (en) Apparatus and Method for Mutli-Layered Graphical User Interface for Use in Mediated Reality
Adam et al. Dynamic interactive 3D mobile navigation aid
JP3791912B2 (ja) 仮想ウォークスルーに関するデータを構成し送達するためのシステムおよび方法
Schilling et al. Introducing 3D GIS for the Mobile Community-Technical Aspects in the Case of TellMaris
Supriyanto et al. A novel low cost telemedicine system using wireless MESH network
Mantoro et al. Multi-user navigation: A 3D mobile device interactive support
JP2003208635A (ja) 画像再生装置及び情報処理方法
US20240212284A1 (en) Generation of a surface mesh from a voxel model of a three-dimensional environment
KR20220061905A (ko) 가상현실 환경에서의 선형 객체 데이터의 공유 시스템
Rosen Improved 3-D scene sampling by camera model design
Sheng et al. Progressive streaming of irregular meshes using geometry images