Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Multiusuario de Tecnologias
2
Contenido CAPÍTULO 8
• Conceptos básicos
• El Open de la Comunidad Propuesta
• La API de CyberSockets
Conceptos básicos
Como se recordará de nuestra discusión de la propuesta de mundos de vida en
el capítulo 7, hay una serie de componentes en un sistema multiusuario. Estos
componentes se ilustra en la Figura 8.1.
3
Así que tenemos una API de más arriba, y la Internet por debajo de lo que
sucede en entre? Eso es una cuestión interesante, y no hay una respuesta
única. Cada MUtech comienza con una configuración ligeramente distinta de
las hipótesis, y por lo tanto, cada uno tiene una diferente arquitectura interna.
Por eso vamos a estar buscando a dos MUtechs en este capítulo en lugar de
uno solo, es importante entender cómo pueden ser diferentes.
Incluso en aquellas aplicaciones que hacen uso de VRML, existe a menudo una
necesidad de acceder a la API. Por ejemplo, considere la posibilidad de un
mercado de valores en los que la solicitud de ubicación, tamaño, y color de los
4
Por supuesto, uno también podría preguntarse por qué no sólo estandarizar el
formato de los datos que fluyen a través de la red. Cualquier sistema con una
pila TCP / IP podrían entonces a la interfaz multi-tecnología, lo que haría posible
la aplicación de la tecnología multi-sobre una amplia variedad de plataformas,
garantizando que todos los sistemas multiusuario puede interactuar (que no
pueden, en virtud de Vida Mundos).
Sin duda, esto va a pasar el tiempo, ya que las ventajas de tener un protocolo
estándar "sobre el alambre" son importantes. Desafortunadamente, no hay aún
propuestas sólidas para este nivel de normalización. Además, todos están de
acuerdo en que es realmente demasiado pronto para empezar a normalizar en
ese nivel, nadie sabe realmente lo que son los mejores planteamientos, y
todavía tenemos que experimentar mucho más. Incluso una cuestión tan
básica como cliente-servidor, frente multicasting aún no se ha resuelto. Sino
por la normalización a nivel de la API, en lugar de los más de los hilos de
protocolo, podemos construir mundos multiusuario de inmediato sin tener que
finalizar cualquier aplicación bajo nivel de decisión.
Funcionalidad básica
El MUtech mantiene una copia local de los datos que describen el mundo. Hace
que los datos disponibles para la aplicación local y permite la aplicación local
de hacer cambios a los datos, que luego se propagó a otras máquinas de la
red.
Cuando llega una nueva entidad en el entorno virtual, la MUtech debe añadir
que la entidad a la copia local del mundo. Del mismo modo, las entidades que
salen de la simulación debe ser eliminado. Como una entidad cambia de
estado, cada host de la copia local de esa entidad del Estado debe ser
actualizado. En cierto sentido, la MUtech aplica una especie de sistema de base
de datos en la que las entidades se pueden añadir, eliminar y modificar.
Aunque los detalles de cómo un MUtech realiza estas tareas MUtech varían de
una a otra, MUtechs todos tienen algunos elementos en común. Ya que está
"negro cajas," podemos comenzar a examinar por mirar las cosas que está
adherida. Como vimos en la Figura 8.1, la MUtech las interfaces de la aplicación
(y el navegador de VRML), por un lado, y con el Internet en el otro lado.
Debajo de la Red
Desde la MUtech ejecuta a través de Internet, que utiliza el protocolo estándar
de Internet. El protocolo fundamentales en la Red es la propiedad intelectual, el
Protocolo de Internet. Por encima de esto son otros dos protocolos: UDP y TCP.
El MUtech utiliza UDP y TCP para comunicarse con otras copias de sí mismo o
con un servidor remoto proceso de algún tipo.
Sin embargo, TCP tiene algunos problemas serios cuando se trata de mundos
en tiempo real multiusuario. El muy características que lo hacen tan útil para
muchas otras aplicaciones realmente añadir una enorme cantidad de gastos
generales. Cada paquete tiene que ser reconocido y secuenciado, lo que
aumenta el ancho de banda y aumenta la utilización de procesamiento
generales. Dado que todos los paquetes en un flujo TCP debe llegar en el orden
7
Por esta razón, casi todos los sistemas de multi-uso de UDP para la mayoría de
su estado de actualización de información. Una forma de sortear el carácter
poco fiable de utilizar UDP es un protocolo sin estado en el que cada paquete
contiene una descripción completa del estado actual del objeto. (El protocolo
es "apátrida", ya que no hace ninguna suposición sobre el estado anterior del
objeto en el lado del cliente). Si un paquete se pierde, se hace casi ninguna
diferencia, que habrá otro a lo largo de unos pocos milisegundos que contendrá
toda la información pertinente.
Así como HTTP, SMTP, y NNTP son protocolos que se ejecutan por encima de
TCP, es necesario que haya un conjunto de protocolos que se ejecutan en la
parte superior de la UDP (y posiblemente de TCP) para el intercambio de
información sobre las entidades estatales en el mundo virtual . Como se
describió anteriormente, esta "over-the-wire" protocolo no se ha normalizado,
lo que significa que cada MUtech sólo puede comunicarse con otras copias de
sí mismo que utilizan el mismo protocolo.
Tenga en cuenta que algunos sistemas usan ambos UDP y TCP. UDP se utiliza
para las actualizaciones de estado en tiempo real, mientras que TCP se usa
para transferir otros tipos de datos (tales como descripciones detalladas de las
entidades).
Sobre la Aplicación
Tanto de los ejemplos vamos a ver en este capítulo se han diseñado como las
bibliotecas de clases de Java, ya que Java es el lenguaje de programación más
popular para aplicaciones en red en Internet. Como vimos en la Figura 8.1, la
aplicación se comunica con el navegador de VRML, por un lado y el MUtech por
el otro.
Ocultar la Red
N servidor central
Particionado espacial
Con el formato actual de los datos que se transfieren también se adhiere a los
estándares web, tales como VRML para gráficos 3-D y WAV (y otros populares
formatos de sonido) para el audio.
Dado que el usuario sólo puede ver y escuchar una pequeña parte de los
entornos virtuales en un momento determinado, Open Comunidad
dinámicamente la carga y descarga de objetos de la base de datos local caché.
Dado que los objetos de referencia sí, es totalmente posible tener las
referencias a objetos que ya no se encuentran en memoria. Comunidad abierta
ha dispuesto para hacer frente a esta contingencia, los objetos que están
programadas para ser eliminado se marca como tal después de una llamada a
spWM.Update () y se eliminan en la siguiente llamada a spWM.Update (). Esto
da una oportunidad a la aplicación para tratar adecuadamente a estos
"condenados" los objetos.
Servidores
Comunidad abierta prevé para los servidores que actúan como máquinas de
regular la parte de la red, sino que también se han especializado de apoyo para
las máquinas que se conectan a través de ellos, utilizando las líneas de bajo
ancho de banda, como se muestra en la Figura 8.4.
13
Figura 8.4 ¿Cómo los sistemas de bajo ancho de banda está conectado
Estos servidores pueden hacer filtrado inteligente del flujo de datos, por
ejemplo, pueden-por ejemplo cuando se habla de datos de ancho de banda es
escaso. Una forma de hacerlo es saltarse los marcos de expresión y confiar en
el software de interpolación de los datos que faltan, aunque a una menor
calidad.
Clases básicas
sp
spThing
spRoot
spAvatar
spPOV
spVisualPOV
spAudioPOV
spTextPOV
spAudioSource
spTextSource
spLink
spVisualDefinition
spSound
spText
spAvatarInfo
spRegion
spClass
La clase spRoot
La clase spAudioSource
El spAudioSource clase, derivados de spThing, se utiliza para representar una
fuente de sonido posicional en el entorno virtual. Los datos pueden ser
pregrabados o en vivo. Un método se proporciona para enviar datos de audio a
un spAudioSource, y el Open Comunidad MUtech interfaces de audio a un
render de cada cliente para que realmente reproducir el sonido.
La clase spTextSource
15
La clase spPOV
Comunidad abierta utiliza una clase llamada spPOV, derivados de spThing, para realizar el
seguimiento del punto de vista del usuario en el medio ambiente. spPOV tiene tres
subclases: spVisualPOV (que determina lo que el usuario puede ver), spAudioPOV (que
determina lo que puede escuchar), y spText (que determina que los mensajes de chat de
texto que pueden recibir).
La clase spLink
Muchos de los objetos en Open Comunidad necesidad referencia a los recursos de la red a
través de una URL. Las distintas subclases de la clase spLink se utilizan para realizar un
seguimiento de estos datos. Por ejemplo, la subclase spVisualDefinition de spLink se utiliza
para cargar la descripción de VRML para un spThing y mantener una referencia a ella en la
memoria. Otras subclases de spLink incluyen spSound, spText, spClass, y spAvatarInfo.
Más Información
Lamentablemente, el espacio no nos permite proporcionar una lista detallada de todas las
clases y métodos en el sistema comunitario Abierto. Si estás interesado en saber más acerca
de la Comunidad Abierta y cómo funciona, consulte el Capítulo 17 en este libro para una
aplicación de ejemplo. También deberá verificar el documento general y la plena
especificación API, que se puede encontrar en la http://www.merl.com/opencom/.
La API de CyberSockets
CyberSockets fue desarrollado por una empresa llamada Sun Interactive Negro, a fin de
apoyar su CyberHub sistema multiusuario (CyberHub consistente en un servidor y uno o
más clientes CyberHub). Se trata de una biblioteca, implementado en C y exigible, ya sea
de C o C + +. También tiene una capa de acceso a Java, que permite que las aplicaciones
Java (como el propio Cliente CyberHub) para acceder a la API de CyberSockets.
de funciones relacionadas con él, que son en muchos aspectos análoga a los
métodos disponibles en los objetos en Open Comunidad.
Tipo de objeto de la reunión
Un avatar tiene una serie de propiedades, como un alias y una definición visual
(generalmente en VRML), así como algunos de información pública (similar a la
de Open spAvatarInfo Comunidad). Además, cada avatar tiene una posición y
orientación.
Más Información
Una vez más, el espacio no permite una descripción detallada de todas las
diferentes estructuras de datos y funciones que componen el CyberSockets API.
Más información acerca de la API de CyberSockets se puede encontrar en el
sitio interactivo Domingo Negro, http://www.blacksun.com, en la sección de
desarrolladores.
20