UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL CUSCO INGENIERÍA INFORMÁTICA Y DE SISTEMAS TESIS INTITULADA: “DESARROLLO DE UN FRAMEWORK BASADO EN ESTANDARES CORBA NOTIFICATION SERVICE Y X3D PARA FACILITAR LA CREACIÓN DE AMBIENTES VIRTUALES DISTRIBUIDOS” PRESENTADO POR : ASESOR : Br. HERNÁN NINA HANCO Ing. IVAN MEDRANO VALENCIA INTRODUCCIÓN CAPITULO I PRESENTACIÓN DE LA INVESTIGACIÓN CAPITULO V DISEÑO DEL FRAMEWORK CAPITULO II MARCO TEÓRICO CAPITULO VI IMPLEMENTACIÓN FRAMEWORK CAPITULO VII CAPITULO III ANALISIS DE LAS FUNCIONALIDADES DEL FRAMEWORK CAPITULO IV IDENTIFICACIÓN DE CLASES CON TARJETAS CRC Y MODELO CONCEPTUAL DEL FRAMEWORK EXPERIMENTACIÓN DEL FRAMEWORK EN LA IMPLEMENTACIÓN DE UN EJEMPLO CONCLUSIONES RECOMENDACIONES Capitulo I PRESENTACIÓN DE LA INVESTIGACIÓN CAPITULO I PRESENTACIÓN DE LA INVESTIGACIÓN 1.1. 1.2. 1.3. 1.4. 1.5. 1.6. 1.7. 1.8. ANTECEDENTES DESCRIPCIÓN DEL PROBLEMA OBJETIVOS JUSTIFICACIÓN LIMITACIONES METODOLOGÍAS RECURSOS Y PRESUPUESTO INSTRUMENTOS 1.1. ANTECEDENTES Ambiente Virtual Distribuido concurrencia de usuarios en la red. Del chat 2D comunicación Textual hacia el chat 3Dcomunicacion gestual DIS, HLA, NSPNET Naval de USA, DIVE Blaxxun, SecondLife, ActiveWorld Más adeptos, necesidad de herramientas, APIs y Framework 1.2. DESCRIPCIÓN DEL PROBLEMA Necesidad de crear aplicaciones de Ambientes Virtuales Distribuidos en forma fácil, rápida y flexible. Soporte a una diversidad y complejidad de requerimientos técnicos. Visualización 3D y Comunicación (uso de Ancho de Banda, Escalabilidad, Latencia, etc. ). 1.3. OBJETIVOS 1.3.1. OBJETIVO GENERAL 1.3.3. OBJETIVOS ESPECIFICOS 1.3.1. OBJETIVOS GENERALES Desarrollar un Framework para Ambientes Virtuales Distribuidos basado en los Estándares CORBA Notification Service, Distributed Interactive Simulation DIS, redes multicasting y X3D con el propósito de facilitar y flexibilizar la creación de Aplicaciones de Ambientes Virtuales Distribuidos. 1.3.2. OBJETIVOS ESPECIFICOS Identificar las funcionalidades y componentes de un Framework para Ambientes Virtuales Distribuidos. Implementar los componentes del Framework basado en los Estándares CORBA Notification Service, DIS, Redes Multicast y X3D. Experimentar la creación de un Ambiente Virtual Distribuido utilizando el Framework. 1.4. JUSTIFICACIÓN Implementación basada en estándares X3D y CORBA Notification Service. Los desarrolladores evitan la programación a bajo nivel. Integración con otras tecnologías del Internet (ejem. E-commerce). X3D basado en XML CORBA Sistemas Distribuidos OO 1.5. LIMITACIONES Falta de bibliografía. Información técnica compleja de asimilar. Falta de metodologías para crear Framework. 1.6. METODOLOGÍAS Métodos de Investigación Descriptiva Métodos de Investigación Aplicativa y Tecnológica Proceso unificado de desarrollo de Software Capitulo II MARCO TEÓRICO CAPITULO II MARCO TEÓRICO 2.1. AMBIENTES VIRTUALES DISTRIBUIDOS VRML/X3D 2.2. ESTÁNDAR CORBA NOTIFICATION SERVICE 2.3. FRAMEWORK 2.1. TEORÍAS AMBIENTES VIRTUALES DISTRIBUIDOS 2.1.1. 2.1.2. 2.1.3. 2.1.4. 2.1.5. AMBIENTES VIRTUALES DISTRIBUIDOS ESTÁNDARES PARA LA CONSTRUCCIÓN DE AMBIENTES VIRTUALES DISTRIBUIDOS ARQUITECTURAS DE RED APLICADAS A AMBIENTES VIRTUALES DISTRIBUIDOS ASPECTOS DE COMUNICACIÓN DE RED PARA UNA SITUACIÓN IDEAL DE COMUNICACIÓN EN AMBIENTES VIRTUALES DISTRIBUIDOS SELECCIÓN DE UNA ADECUADA INFRAESTRUCTURA DE COMUNICACIÓN PARA AMBIENTES VIRTUALES DISTRIBUIDOS 2.1.1. AMBIENTES VIRTUALES DISTRIBUIDOS 2.1.1.1. 2.1.1.2. 2.1.1.3. 2.1.1.4. Definición de un Ambiente Virtual Distribuido Características de los Ambientes Virtuales Distribuidos Sistemas desarrollados para Ambientes Virtuales Distribuidos Soluciones comerciales para Ambientes Virtuales Distribuidos ¿Sensación de? Tiempo Espacio Presencia Comunicación Interacción SISTEMAS DESARROLLADOS PARA AVD NPSNET (Naval Postgraduate School USA) [] DIS - Distributed Interactive Simulation (IEEE) DIVE [] CAVE SIMNET (Simulator networking) SGI Flight, Doom, MASSIVE, MR - TPP Minimal Reality, Toolkit Peer Package, VNET NPSNET RESEARCH GROUP AGENTE NANCY DIVE: CONFERENCIA SOLUCIONES COMERCIALES PARA AVD CRECIMIENTO DE ALPHAWORLD Diciembre / 1996 CRECIMIENTO DE ALPHAWORLD Febrero / 1998 CRECIMIENTO DE ALPHAWORLD Agosto / 1999 CRECIMIENTO DE ALPHAWORLD Agosto / 2001 2.1.2. ESTÁNDARES PARA CONSTRUIR AMBIENTES VIRTUALES DISTRIBUIDOS 2.1.2.1. DIS IEEE 1278 2.1.2.2. Estándares del Consorcio Web3D 2.1.2.3. Estándar Internacional Virtual Reality Modeling Language (VRML) 2.1.2.4. X3D - eXtensible 3D 2.1.2.1. DIS IEEE 1278 Estándar para Simulación en tiempo real (Militares) PDU – Protocol Data Unit (Unidad de datos con campos que transmiten información de estado de una entidad en simulación) Categorías de PDU: PDU Información de Estado PDU Servicio Militar PDU Soporte logístico PDU Administración de Simulación PDU Emisión electromagnética PDU Radio comunicaciones 2.1.2.2. ESTÁNDARES DEL CONSORCIO WEB3D W3C CONSORCIO WEB3D Web3D - Works Group DIS-Java-VRML 2.1.2.3. ESTÁNDAR INTERNACIONAL VIRTUAL REALITY MODELING LANGUAGE (VRML) Formato estándar de archivos para la descripción de escenas y objetos tridimensionales interactivos en la Web. #VRML v2.0 utf8 Shape { appearance Appearance {material Material {}} geometry Cone {bottomRadius 1.0 height 2.0 } } 2.1.2.4. X3D - eXtensible 3D X3D es el sucesor de VRML, planifica y organiza el lenguaje separándolo para propósitos específicos de descripción del Ambiente. X3D extiende las funcionalidades de VRML basándose en el Metalenguaje XML (Extensible Markup Language). SAX y DOM <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE X3D PUBLIC "+//ISO//DTD X3D//EN" "http://www.web3D.org/Specifications/X3D/x3d-compact.dtd"> <X3D version="3.0" profile="Interactive"> <head> <component name="GeoData"/> <component name="Nurbs" level="2"/> <meta name="description" content="X3D scene header example"/> </head> <Scene> <!—La Escena Grafica y los nodos se añaden aquí --> <Transform DEF="P1"> <Shape> <Box size="2.0 2.0 2.0"/> <Appearance> <Material shininess="0.2" diffuseColor="1.0 0.0 0.0"/> </Appearance> </Shape> </Transform> </Scene> </X3D> Code X3D 2.1.3. ARQUITECTURAS DE RED APLICADAS A AMBIENTES VIRTUALES DISTRIBUIDOS 2.1.3.1. Arquitectura Peer-to-Peer 2.1.3.2. Arquitectura Cliente / Servidor 2.1.3.1. ARQUITECTURA PEER-TO-PEER NETWORK Cliente 1 Cliente n Cliente 2 ARQUITECTURA PEER-TO-PEER ARQUITECTURA PEER-TO-PEER IP unicasting IP broadcasting IP multicasting 2.1.3.2. ARQUITECTURA CLIENTE / SERVIDOR Server Cliente 1 Cliente 2 … Cliente n 2.1.4. ASPECTOS DE COMUNICACIÓN DE RED PARA UNA SITUACIÓN IDEAL 2.1.4.1. Ancho de Banda 2.1.4.2. Latencia 2.1.4.2. Confiabilidad 2.1.4.2. Escalabilidad 2.1.4.2. Heterogeneidad 2.1.5. SELECCIÓN DE PLATAFORMAS DISTRIBUIDAS 2.1.5.1 Plataformas distribuidas candidatos CORBA – OMG HLA – DMSO Jini/JavaSpaces – Sun Microsystems, Inc. ACE – Distributed Object Computing Group Framework .Net – Microsoft REQUERIMIENTO GARANTÍA EN LA TRANSMISIÓN DE MENSAJES CORBA HLA Jini/JavaSpaces ACE Framework .Net Si Si Si Si Si SOPORTE DE MÚLTIPLES PLATAFORMAS. Si (+ plataformas) Linux, Iris Si (solo Java) Linux y Windows Si SOPORTE DE MÚLTIPLES LENGUAJES. C, C++, Java, Eiffel, Smalltalk Java, C++, Ada, CORBA IDL Solo Java Solo C++ Si COMUNICACIÓN PUNTO A PUNTO. MODELO DE COMUNICACIÓN PUBLISH SUBSCRIBE. ESTÁNDAR ABIERTO. MÚLTIPLES IMPLEMENTACIONES Y CÓDIGO FUENTE DISPONIBLE. FÁCIL DE APRENDER SOPORTE DE SISTEMAS EMBEBIDOS SOPORTE DE COMUNICACIÓN ENTRE DIFERENTES MAQUINAS. SOPORTE DE SERVICIO DE NOMBRES SOPORTE DE SERVICIO DE NEGOCIACIÓN SOPORTE DE SERVICIO DE EVENTOS MANIPULACIÓN DINÁMICA DE LA COMUNICACIÓN. Si Si Notification Service Si Si Si Si Si Si, muy poco Si Si No Si Solo para Sun Si Si Si No No No Si Si Si No No No No Si Si Si ORB en cada PC Si Si Si Si Si Si No No Si No No Si Si disponen de Java Si Si Si Si Si Si Si Si No Si No Si Si Si 2.2. ESTÁNDAR CORBA NOTIFICATION SERVICE 2.2.1. 2.2.2. 2.2.3. SISTEMAS DISTRIBUIDOS CORBA - COMMON OBJECT REQUEST BROKER ARCHITECTURE ESTÁNDAR CORBA NOTIFICATION SERVICE 2.2.1. SISTEMAS DISTRIBUIDOS 2.2.1.1 Definición de un Sistema Distribuido Aplicación, implementa sobre una red haciendo ver como si se tratara de un único sistema. 2.2.1.2 Aspectos del Diseño Transparencia Flexibilidad Confiabilidad Capacidades de Crecimiento Desempeño o Rendimiento 2.2.2. CORBA - COMMON OBJECT 2.2.2.1 2.2.2.2 2.2.2.3 2.2.2.4 2.2.2.5 2.2.2.6 2.2.2.7 2.2.2.8 REQUEST BROKER ARCHITECTURE CORBA Object Management Group Inc. (OMG) Arquitectura CORBA IDL (Lenguaje de Definición de Interfaces) General Inter-ORB Protocol (IIOP) Internet Inter-ORB Protocol (IIOP) Implementaciones de ORB JacORB 2.2.2.1 CORBA Estándar CORBA promovido por la OMG establece especificaciones para crear aplicaciones distribuidas orientadas a objetos. 2.2.2.3 Arquitectura CORBA Objetos de Aplicación Facilidades communes CORBA Object Request Broker (ORB) Servicios CORBA APOYO ADMINISTRATIVO AL ORB EL BUS DE OBJETOS 2.2.2.7 Implementaciones de ORB IMPLEMENTACIONES COMERCIALES IMPLEMENTACIONES DE CORBA CORBA IONA Orbix, OrbixWeb, ORBacus TAO - The ACE ORB Sunsoft NEO JacORB Borland Visibroker Mico Top Graph’x ORBriver OmniORB Objective Interface ORBexpress OpenORB Vertel e*ORB ORBit LIBRES DE 2.2.2.8 JacORB Implementación Libre de un ORB en Java Código fuente incluyendo algunos Servicios CORBA. Es un Software Libre con Licencia GPL de la GNU 2.2.3. ESTÁNDAR CORBA NOTIFICATION SERVICE 2.2.3.1 2.2.3.2 2.2.3.3 2.2.3.4 2.2.3.5 Definición del Estándar CORBA Notification Service Elementos del CORBA Notification Service Beneficios al usar el CORBA Notification Service Transmisión de Eventos Event Domain Service 2.2.3.1 DEFINICIÓN DEL ESTÁNDAR CORBA NOTIFICATION SERVICE El OMG Notification Service, es un Servicio CORBA que administra la recepción y envío de eventos entre aplicaciones distribuidas orientadas a objetos 2.2.3.2 ELEMENTOS DEL CORBA NOTIFICATION SERVICE 2.2.3.3 BENEFICIOS AL USAR EL CORBA NOTIFICATION SERVICE Mejora el desempeño y usos de ancho de banda (modelo Publish – Subscribe, multi-threading). Confiabilidad, usando opciones de Calidad de Servicio (QoS). 2.2.3.4 TRANSMISIÓN DE EVENTOS 2.3. FRAMEWORK 2.3.1. 2.3.2. 2.3.3. 2.3.4. 2.3.5. 2.3.6. 2.3.7. 2.3.8. 2.3.9. CONCEPTOS DE MODELADO MODELADO ORIENTADO A OBJETOS PROGRAMACIÓN ORIENTADA A OBJETOS DEFINICIÓN DE UN FRAMEWORK PATRONES DE DISEÑO TIPOS DE PATRONES FRAMEWORK VS. PATRÓN DE DISEÑO PROCESO UNIFICADO DE DESARROLLO DE SOFTWARE EL LENGUAJE UNIFICADO DE MODELADO UML 2.3.1. CONCEPTOS DE MODELADO Se construyen modelos para comunicar la estructura deseada y el comportamiento del sistema Universitat de les Illes Balears, Tesis doctoral, Análisis y Diseño Orientado a Objetos de un Framework para el Modelado Estadístico con MLG 2.3.2. MODELADO ORIENTADO A OBJETOS 2.3.2.1 2.3.2.2 2.3.2.3 Análisis ¿Que? Diseño ¿Como? Implementación – Solución 2.3.3. PROGRAMACIÓN ORIENTADA A OBJETOS 2.3.3.1 Lenguajes Orientados a Objetos Definición de Objetos Definición de Clases (tipos de Objetos) Herencia 2.3.4. DEFINICIÓN DE N FRAMEWORK Framework APLICACIÓN ESPECIFICA Dominio específico LIBRERÍA DE CLASES Y DISEÑO Generadores de Aplicación Reutilización http://www.acm.org/crossroads/espanol/xrds7-4/frameworks.html 2.3.5. PATRONES DE DISEÑO Los patrones de diseño son descripciones de un problema que ocurre repetidas veces en un diseño, junto a una descripción de la solución al problema 2.3.6. TIPOS DE PATRONES De creación: Builder, Factory De estructura: Proxy Comportamiento: Template 2.3.7. FRAMEWORK VS. PATRÓN DE DISEÑO Los Frameworks dominio especifico Los patrones de diseño en cualquier tipo de aplicación 2.3.8. PROCESO UNIFICADO DE DESARROLLO DE SOFTWARE 2.3.8.1 2.3.8.2 2.3.8.3 2.3.8.4 Fase de Inicio Fase de Elaboración Fase de Construcción Fase de transición 2.3.9. EL LENGUAJE UNIFICADO DE MODELADO UML Lenguaje gráfico de modelado de un sistema de software. Capitulo III ANALISIS DE LAS FUNCIONALIDADES DEL FRAMEWORK CAPITULO III ANALISIS DE LAS FUNCIONALIDADES DEL FRAMEWORK 3.1. ANALISIS DEL CONTEXTO DEL FRAMEWORK 3.2. REPRESENTACION AUDIO/VISUAL DE AMBIENTES VIRTUALES DISTRIBUIDOS 3.3. COMUNICACIÓN E INTERCAMBIO DE DATOS EN AMBIENTES VIRTUALES DISTRIBUIDOS 3.1. ANALISIS DEL CONTEXTO DEL FRAMEWORK Entonces, seleccionar las clases que permitan: Representación Audio/Visual del Ambiente Virtual Distribuido Comunicación e intercambio de datos entre los participantes del Ambiente Virtual Distribuido. Soluciona la mayoría de requerimientos de una aplicación de AVD: 3.2. REPRESENTACION AUDIO/VISUAL DE AMBIENTES VIRTUALES DISTRIBUIDOS 3.2.1. 3.2.2. 3.2.3. ESPECIFICACIÓN DE AMBIENTES VIRTUALES DISTRIBUIDOS UTILIZANDO EL ESTANDAR X3D CODIFICACIÓN XML DE AMBIENTES VIRTUALES DISTRIBUIDOS VRML/X3D ESTRUCTURA BÁSICA DE UNA ESCENA VIRTUAL DISTRIBUIDA X3D 3.2.1. ESPECIFICACIÓN DE AMBIENTES VIRTUALES DISTRIBUIDOS UTILIZANDO EL ESTANDAR X3D <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE X3D PUBLIC "+//ISO//DTD X3D//EN" "http://www.web3D.org/Specifications/X3D/x3d-compact.dtd"> <X3D version="3.0" profile="Interactive"> <head> </head> <Scene> <!—La Escena Grafica y los nodos se añaden aquí --> <Transform DEF="P1"> <Shape> <Box size="2.0 2.0 2.0"/> </Shape> </Transform> </Scene> </X3D> 3.2.2. CODIFICACIÓN XML DE AVD <?xml version="1.0" encoding="UTF-8"?> Encabezado <!DOCTYPE X3D PUBLIC "+//ISO//DTD X3D//EN" "http://www.web3D.org/Specifications/X3D/x3d-compact.dtd"> <X3D version="3.0" profile="Interactive"> Elemento Raíz <Scene> X3D <!definición de nodos se añaden aquí --> <Transform DEF="P1"> <Shape> Definición de <Box size="2.0 2.0 2.0"/> Nodos y </Shape> Campos </Transform> <ROUTE fromNode="T” fromField="value_changed" Definición de toNode="Cubo" toField="translation"/> Eventos </Scene> </X3D> 3.2.4. BROWSER X3D 3.3. COMUNICACIÓN E INTERCAMBIO DE DATOS EN AMBIENTES VIRTUALES DISTRIBUIDOS 3.3.1. NIVEL 1 “COMUNICACIÓN MULTICAST” 3.3.2. NIVEL 2 “NOTIFICACIÓN DE EVENTOS” 3.3.3. NIVEL 3 ESTADO DEL AMBIENTE VIRTUAL DISTRIBUIDO X3D Nivel 3 PDU Nivel 3 PDU Nivel 2 Nivel 2 Nivel 1 Nivel 1 Red Multicast PDU PDU Nivel 3 Nivel 2 Nivel 1 3.3.1. NIVEL 1 “COMUNICACIÓN MULTICAST” Host A Host B Nivel 2 Notification Service A Canal de Eventos A SG Nivel 1 Multicast A Nivel 2 Notification Service B Federation de Canales CG Canal de Eventos B CG SG Serialización Serialización Datagramas Datagramas Buffer Buffer Multicast Nivel 1 Multicast B 3.3.2. NIVEL 2 “NOTIFICACIÓN DE EVENTOS” 3.3.2.1. Filtrado centralizado de Eventos 3.3.2.2. Perfeccionar la Escalabilidad cuando exista un creciente numero de consumidores 3.3.2.3. Agrupamiento de eventos para reducir el Espacio de Memoria 3.3.2.4. Estructuración de datos en Notification Service 3.3.1. NIVEL 2 “NOTIFICACIÓN DE EVENTOS” Nivel 3 - Estado del Ambiente Transformador Entidad 1 Suministrador 1 Consumidor 2 Canal de Evento DATO S Transformador Entidad N ... ... Suministrador N Fabrica de Consumidores y Subscriptores Consumidor N Filtrado centralizado Nivel 3 - Estado del Ambiente 3.3.3. NIVEL 3 ESTADO DEL AMBIENTE VIRTUAL DISTRIBUIDO X3D 3.3.3.1 3.3.3.2 3.3.3.3 Control del Estado del Ambiente utilizando el Protocol Data Unit de DIS Detalles del Protocol Data Unit utilizado para la estructuración de Datos Definición en lenguaje X3D de una entidad de simulación con la directiva “EspduTransform” NIVEL 3 ESTADO DEL AMBIENTE VIRTUAL DISTRIBUIDO X3D Transformador Entidad 1 Transformador Entidad 1 PDU Suministrador 1 Transformador Entidad 1 PDU Consumidor 2 Canal de Evento Nivel 3 - Estado del Ambiente Capitulo IV IDENTIFICACIÓN DE CLASES CON TARJETAS CRC Y MODELO CONCEPTUAL DEL FRAMEWORK CAPITULO IV IDENTIFICACIÓN DE CLASES CON TARJETAS CRC Y MODELO CONCEPTUAL DEL FRAMEWORK 4.1. TARJETAS CRC PARA LOS COMPONENTES DE VISUALIZACIÓN 4.2. TARJETAS CRC PARA LOS COMPONENTES DE COMUNICACIÓN DEL AMBIENTE VIRTUAL 4.3. MODELO CONCEPTUAL 4.1. TARJETAS CRC PARA LOS COMPONENTES DE VISUALIZACIÓN NOMBRE DE CLASE: DocumentoX3D RESPONSABILIDAD COLABORACIONES Almacena la BrowserX3D codificación X3D de un Ambiente Virtual Distribuido en un archivo XML DocumentoX3D BrowserX3D Escena Presentador Audio/Visual 4.2. TARJETAS CRC PARA LOS COMPONENTES DE COMUNICACIÓN DEL AVD Nombre de Clase : Observador RESPONSABILIDAD COLABORACIONES Utiliza un Suppliers Escena de Eventos para Supplier publicar eventos Consumer producidos por una geometría 3D del Ambiente Virtual. Utiliza un Consumers de Eventos informarse del estado de una geometría 3D que haya tenido cambios. GatewayConsumer GatewaySupplier EstadoAmbiente Canal de Eventos SupplierChannelConection ConsumerChannelConection Supplier Consumer Filtrado_Eventos 4.3. MODELO CONCEPTUAL Capitulo V DISEÑO DEL FRAMEWORK CAPITULO V DISEÑO DEL FRAMEWORK 5.1. DISEÑO DEL SUBSISTEMA DE REPRESENTACIÓN AUDIO/VISUAL 3D 5.2. DISEÑO DEL SUBSISTEMA DE COMUNICACIÓN 5.1. DISEÑO DEL SUBSISTEMA DE REPRESENTACIÓN AUDIO/VISUAL 3D 5.1.1. 5.1.2. 5.1.3. 5.1.4. DISEÑO SUBSISTEMA INTERPRETE X3D DISEÑO SUBSISTEMA PRESENTADOR3D DISEÑO SUBSISTEMA ARBOLX3D DISEÑO SUBSISTEMA GUI Diagrama de Paquetes, componente Visualización 3D 5.1.1. DISEÑO SUBSISTEMA INTERPRETE X3D 5.1.2. DISEÑO SUBSISTEMA PRESENTADOR3D 5.1.3. DISEÑO SUBSISTEMA ARBOLX3D 5.1.4. DISEÑO SUBSISTEMA GUI 5.2. DISEÑO DEL SUBSISTEMA DE COMUNICACIÓN DEL FRAMEWORK 5.2.1. 5.2.2. 5.2.3. DISEÑO DEL SUBSISTEMA MULTICAST DISEÑO DEL SUBSISTEMA DE NOTIFICACIÓN DISEÑO DEL SUBSISTEMA ESTADOAVD 5.2.1. DISEÑO DEL SUBSISTEMA MULTICAST 5.2.2. DISEÑO DEL SUBSISTEMA DE NOTIFICACIÓN 5.2.3. DISEÑO DEL SUBSISTEMA ESTADOAVD Capitulo VI IMPLEMENTACIÓN FRAMEWORK CAPITULO VI IMPLEMENTACIÓN FRAMEWORK 6.1 6.2 IMPLEMENTACIÓN DEL FRAMEWORK INSTALACIÓN DE COMPOENTES DEPENDIENTES 6.1 IMPLEMENTACIÓN DEL FRAMEWORK 6.2 INSTALACIÓN DE COMPOENTES DEPENDIENTES 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 Instalación de JacORB, implementación CORBA Instalación de JSDK 5.1.8 y Java3D Instalación de JAXP Instalación de DIS Instalación de VRML Library Capitulo VII EXPERIMENTACIÓN DEL FRAMEWORK EN LA IMPLEMENTACIÓN DE UN EJEMPLO CAPITULO VI EXPERIMENTACIÓN DEL FRAMEWORK EN LA IMPLEMENTACIÓN DE UN EJEMPLO 7.1. DESCRIBIR UNA ESCENA VIRTUAL PARA UN AMBIENTE VIRTUAL DISTRIBUIDO X3D/VRML 7.2. ESCRIBIR UNA APLICACIÓN DE AMBIENTE VIRTUAL UTILIZANDO EL FRAMEWORK 7.3. EJECUCIÓN DE LA APLICACIÓN 7.1. DESCRIBIR UNA ESCENA VIRTUAL PARA UN AMBIENTE VIRTUAL DISTRIBUIDO X3D/VRML 7.2. ESCRIBIR UNA APLICACIÓN DE AMBIENTE VIRTUAL UTILIZANDO EL FRAMEWORK 7.3. EJECUCIÓN DE LA APLICACIÓN CONCLUSIONES 1. La implementación de librerías de clases, basadas en la reutilización de código de las implementaciones de estándares X3D, CORBA Notification Service, Distributed Interactive Simulation y APIs para redes multicast, han logrado desarrollar un Framework que facilita y flexibiliza la creación de Aplicaciones de Ambientes Virtuales Distribuidos. Además, El Framework evita que los desarrolladores se enfrenten al desarrollo de programación a bajo nivel y trabajos tediosos en depuración de errores. De esta manera el desarrollador, minimiza los costos y tiempo de desarrollo, temas claves para el éxito de un proyecto de software. CONCLUSIONES 2. En base a las teorías y antecedentes de investigaciones en Ambientes Virtuales Distribuidos, se ha identificado dos componentes funcionales básicos que componen un Framework: por una parte, identificamos el COMPONENTE DE VISUALIZACION 3D, que proporciona las librerías de clases que hacen la presentación 3D Audio/Visual del Ambiente Virtual Distribuido descrito en el estándar X3D. Por otra parte el COMPONENTE DE COMUNICACIÓN que proporciona las librerías de clases que tienen como función mantener informado a los usuarios participantes del estado global del Ambiente Virtual Distribuido. CONCLUSIONES 3. De acuerdo, a las técnicas y métodos del proceso de desarrollo de Software proporcionadas por la ingeniería del Software. Se implementa los componentes, empezando por la identificación de clases utilizando tarjetas CRC y luego determinar el modelo conceptual tal como se describe en el Capitulo IV. En el capitulo V, luego se desarrolla el diseño enfatizando la reutilización del diseño y código de las clases utilizadas en implementaciones de los estándares CORBA Notification Service, DIS, X3D y redes multicasting. Finalmente completando el proceso de desarrollo de software, en el capitulo VI se describe el proceso de implementación de las librerías de clases de los componentes del Framework en el lenguaje Java. CONCLUSIONES 4. Para comprobar la efectividad del Framework, se procedió a experimentar las librerías del Framework, implementando una aplicación de Ambiente Virtual Distribuido. En dicha experimentación se demostró la aplicabilidad del Framework con la ejecución de la aplicación del Ambiente Virtual Distribuido en forma satisfactoria. Este tema se describe en el capitulo VII. RECOMENDACIONES 1. 2. Para alcanzar el desarrollo del conocimiento científico y tecnológico de nuestra sociedad en tecnologías de información y comunicación, proponemos la creación de líneas de investigación y liderazgos en las diferentes áreas de conocimientos de las ciencias de la informática y la computación. Dentro de esta área de investigación podemos proponer como extensiones de este trabajo, la incorporación de módulos que permitan conectar a una Base de Datos, de tal manera podamos registrar la información de un Ambiente Virtual Distribuido. RECOMENDACIONES 3. 4. 5. Dado la cercanía entre los lenguajes de programación Java y C#. es posible la implementación del Framework para Ambientes Virtuales Distribuidos en la plataforma .Net. Otra extensión posible para este trabajo corresponde a integrar las diferentes especificaciones del Consorcio Web3D tales como GeoVRML, Humanoid Animation al Framework. También una extensión de este trabajo podría ser desarrollar plug-in para los navegadores Web mas utilizados de tal forma que las personas puedan desarrollar sus ambientes virtuales y publicarlos inmediatamente y estar ya trabajando en Aplicaciones de Ambientes Virtuales Distribuidas.