Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Contenido CAPÍTULO 17
• Descripción conceptual
• Radiodifusión y Multicasting
• Ejemplo de Aplicación
3
Descripción conceptual
Por ejemplo, si crea un nuevo objeto en el medio ambiente (una mesa o silla,
4
Dado que puede haber casos en los que todos los múltiples procesos de intento
de actualizar un registro particular, al mismo tiempo, tiene que haber alguna
forma de registro de bloqueo. Por ejemplo, si un usuario intenta activar una luz
encendida, y otro para que llegue al mismo tiempo, sólo uno de ellos debe ser
capaz de alterar el estado de la luz, cualquiera que llegue ahí primero bloquear
el disco, hacer el cambio, entonces desbloquear el disco. El segundo usuario
hacer lo mismo, pero no podrá hacerlo hasta que el primer usuario ha
renunciado a la cerradura. También puede haber mecanismos de tiempo, a fin
de impedir la celebración de los procesos de bloqueo indefinidamente.
Figura 17.1 muestra cómo la base de datos del mundo se ve. Tenga en cuenta
que esta base de datos metáfora no implica necesariamente el uso de un
sistema de base de datos reales. Se trata simplemente de una forma útil de
conceptualizar las exigencias de un entorno multiusuario.
Particionado espacial
El modelo de base de datos de un mundo virtual es útil, pero hay algunas preguntas que
deja sin respuesta. La más básica es, "¿Cómo sabemos lo que para recuperar los datos?" Es
evidente que no la práctica de descargar todo un universo virtual cada vez que entrar en él,
ni de guardarlo en la memoria de todos los normales de un sistema informático. Incluso si
pudiera, la enorme complejidad del mundo virtual, haría que la prestación en 3-D
subsistema de rodillas. Lo que tenemos que hacer alguna partición es el mundo virtual en
pedazos más pequeños. Sólo las piezas que podemos ver realmente sería descargado,
almacenado en la memoria, y prestados.
Por ejemplo, el plano se muestra en la Figura 17.2. Si un usuario está en la cocina de esta
casa virtual, que no será capaz de ver el garaje o den. Si se mueven en la sala, se puede ver
la madriguera, pero aún no puede ver el garaje. Si la mayoría de deambular por la casa y no
ver en todo el garaje y, a continuación, los datos para el garaje no tiene que ser descargado
o prestado. Si van en el garaje, que ya no puede ver la cocina, por lo que la cocina no tiene
que ser prestados. Si la memoria está firme, los datos de la cocina puede ser desechado (y
más tarde vuelve a cargar, si es necesario).
Como se describe anteriormente, la otra manera de ver un entorno virtual es pensar en ello
como un conjunto de entidades que están emitiendo continuamente todo tipo de datos:
audio, vídeo, posiciones corporales, expresiones faciales, movimiento de datos, texto, y
mucho más. Figura 17.3 ilustra este punto de vista.
A fin de comprender cómo todo esto se procesa los datos de streaming, echemos un vistazo
a la forma de audio normalmente se manejan. Al hablar en un micrófono, la voz se
digitaliza los datos (o la muestra), lo que significa que la convierten en una serie de valores
numéricos. Estas son entonces dividido en marcos de la información, y cada marco está
comprimido. Los datos comprimidos para cada marco se envía a través de la red y
descomprimido en el extremo receptor, y la resultante de los valores numéricos se
convierten de nuevo en una señal de audio.
Latencia, Interpolación, y Protocolos de red
6
Uno de los principales desafíos en la construcción de cualquier tipo de sistema que soporta
la interacción multiusuario es reducir al mínimo el efecto de latencia. Latencia se refiere a
la demora entre el momento en una acción se lleva a cabo y el tiempo es percibido por los
otros componentes del sistema. Si el caso de la expresión, la latencia es muy notable, con
una demora de unos pocos cientos de milisegundos naturales puede hacer una persona a la
comunicación casi imposible.
Puede recordar el debate en el Capítulo 8 sobre TCP y UDP, y las importantes diferencias
entre ellos. Discurso de la comunicación es un ejemplo de donde UDP gana claramente a
través de TCP, UDP ya que ofrece mucho más baja latencia. UDP también es adecuado para
la multidifusión.
Discurso de marcos se envían mediante UDP. Esto significa que los marcos que no pueden
ser entregados de manera oportuna son simplemente descartados. Significa también que
algunas imágenes pueden llegar fuera de secuencia.
Los paquetes pueden ser enviados a partir de un único host en la red directamente a otro
host, lo que a veces se llama unicasting. También pueden ser enviadas simultáneamente a
todos los hosts de su subred, lo que se llama radiodifusión. Radiodifusión es práctico en
redes grandes, por ejemplo, que no queremos que la gente pueda enviar paquetes de
difusión a todos los hosts en Internet. Una alternativa a la radiodifusión es la multidifusión.
Multicasting obras de dejar de lado una dirección en particular, llamado grupo multicast
dirección, que los paquetes se pueden enviar a. Cualquier host puede unirse a cualquier
grupo multicast, y entonces recibirá todos los paquetes dirigida a ese grupo. Esta técnica se
utiliza en Mbone, o Multicast Backbone, que soporta audio y video conferencia a través de
Internet.
Multicasting la gran ventaja es que reduce la carga de la red, ya que cada paquete puede ser
enviado y, una vez recibida por varios hosts.
No todos los hosts y enrutadores de red multidifusión de apoyo, pero con la llegada de la
nueva generación de estándar de la propiedad intelectual (PI-NG, también denominada IP
versión 6), es de esperar que la multidifusión serán ampliamente disponible.
Si llega marco de un discurso fuera de secuencia, una de dos cosas va a suceder. Si se trata
de un marco que no ha sido procesada, sin embargo, el marco puede ser utilizado en cola y,
a continuación, cuando llegue el momento. Si se trata de un marco que ya se ha procesado,
puede ser simplemente desechada. Por ejemplo, si llegan los marcos en el orden 275, 277,
7
276, pero el sistema sigue siendo la generación de audio de marco 273, entonces 276
marcos simplemente se coloca en su lugar correcto. Por otro lado, si el sistema ya está
transformación marco 277 llega al 276, 276 se descarta, ya que ya no es útil.
Evidentemente, el mismo enfoque puede utilizarse para otros tipos de datos de streaming.
Por ejemplo, si una entidad en el medio ambiente es que emite un flujo continuo de datos
con su posición, es posible interpolar datos que faltan y hacer caso omiso de los datos que
se reciban fuera de secuencia. En el caso de movimiento de datos, también es posible
extrapolar la ubicación de la entidad después de cada cuadro sobre la base de su velocidad
y, posiblemente, su aceleración.
Esta técnica puede reducir drásticamente el uso del ancho de banda, ya que
las actualizaciones se envían sólo cuando son absolutamente necesarias.
Podemos sincronizar los flujos de datos por poner una fecha en cada paquete y
el uso de una sola vez para todos los diferentes tipos de datos de streaming.
Esta solución se aplica a mucho más que la sincronización labial, por supuesto,
por ejemplo, si tu avatar del movimiento está fuera de sintonía con la posición
de su cuerpo al caminar, sus pies no toquen el suelo en el momento adecuado,
y estudiará como si está de deslizamiento sobre el hielo.
Asociando múltiples flujos
8
Hay una serie de técnicas de filtrado, no todos los cuales son utilizados por
cualquier sistema.
Distancia basado en la Agudeza y filtrado basado en
9
Podemos optar por utilizar espaciales diferentes particiones para distintos tipos
de datos de streaming, por ejemplo, es posible que no pueda ver el garaje de
la cocina, pero puede que todavía escuchar el auto de puesta en marcha del
motor.
Ignorando Entites
a los que los pares. Esto proporciona una forma de comunicación privada,
como un susurro en el barro.
Los grupos son otra variante de esta idea. Mediante la designación de algunas
otras entidades como parte de un grupo, puede configurar las conversaciones
privadas entre los miembros del grupo que no son transmitidas a los anfitriones
que no son parte de ese grupo. Esto es análogo a un canal privado de IRC en
un período de sesiones. El CyberSockets API, por ejemplo, apoya los conceptos
de pares y grupos.
"Dumb" Entidades
Un Ejemplo de Aplicación
Tenga en cuenta que hemos diseñado el código para que sea extensible. La
funcionalidad del servidor se divide limpiamente entre las operaciones y la
base de datos de filtrado, a fin de que puedan ser particionado a cabo en dos
procesos separados (posiblemente corriendo en diferentes máquinas).
Idioma
Desde este libro se ocupa de VRML 2.0 y Java, nos pondremos en construir
nuestro mundo utilizando VRML, por lo que tendremos el código tanto de
nuestros clientes y nuestro servidor en Java. Este enfoque tiene algunas
ventajas y algunas desventajas.
Dado que las clases Java son portables, tanto de nuestros clientes y nuestro
servidor será capaz de funcionar en cualquier plataforma que tenga una
máquina virtual de Java y conexión en red, y los clientes se ejecutan en una
plataforma será capaz de interactuar con los servidores se ejecutan en una
plataforma diferente.