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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5682—Policies or rules for updating, deleting or replacing the stored data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
-
- 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/131—Protocols for games, networked simulations or virtual reality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer 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.
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.
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).
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.
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.
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)
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)
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 |
-
2001
- 2001-12-20 FR FR0116632A patent/FR2834104B1/fr not_active Expired - Fee Related
-
2002
- 2002-12-05 WO PCT/FR2002/004199 patent/WO2003055141A2/fr active IP Right Grant
- 2002-12-05 CN CNB02827377XA patent/CN100505741C/zh not_active Expired - Fee Related
- 2002-12-05 KR KR1020047009912A patent/KR100952190B1/ko not_active IP Right Cessation
- 2002-12-05 AT AT02801101T patent/ATE307453T1/de not_active IP Right Cessation
- 2002-12-05 JP JP2003555739A patent/JP4336583B2/ja not_active Expired - Fee Related
- 2002-12-05 BR BR0215625-3A patent/BR0215625A/pt not_active Application Discontinuation
- 2002-12-05 AU AU2002364818A patent/AU2002364818A1/en not_active Abandoned
- 2002-12-05 ES ES02801101T patent/ES2249638T3/es not_active Expired - Lifetime
- 2002-12-05 US US10/499,254 patent/US20050086318A1/en not_active Abandoned
- 2002-12-05 DE DE60206801T patent/DE60206801T2/de not_active Expired - Lifetime
- 2002-12-05 EP EP02801101A patent/EP1457023B1/fr not_active Expired - Lifetime
- 2002-12-05 MX MXPA04005844A patent/MXPA04005844A/es not_active Application Discontinuation
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 |