Preview only show first 6 pages with water mark for full document please download
Transcript
INFORME FINAL DE TRABAJO DE GRADO MAESTRÍA EN INGENIERÍA ELECTRÓNICA
TÍTULO: Arquitectura de Computación Distribuida para la Web 3D
AUTOR: Jorge Andrés Zaccaro Valverde
DIRECTOR: Juan Pablo Garzón Ruiz
ASESOR: Luis Carlos Trujillo Arboleda
Departamento de Ingeniería Electrónica Pontificia Universidad Javeriana Bogotá D.C., Colombia Octubre 1 de 2012 I
TABLA DE CONTENIDO 1. Introducción......................................................................................................................1 2. Objetivos………………………………………………………………………………...5 2.1. Objetivos Generales………………………………………………………………...5 2.2. Objetivos Específicos……………………………………………………………….5 3. Marco Teórico…………………………………………………………………………...6 3.1. JavaScript en el Servidor con Node.js……………………………………………...6 3.1.1. Programación Dirigida por Eventos con Node.js……………………………6 3.1.2. Creación y Utilización de Módulos en Node.js……………………………...8 3.1.3. Módulos Nativos de Node.js a Utilizar…………………………………….10 3.2. Comunicación Cliente-Servidor con WebSockets………………………………...12 3.3. Gráficas en Navegadores Web con Canvas y WebGL…………………………….14 3.4. Patrones Arquitectónicos del Diseño……………………………………………...16 3.4.1. Patrón Multi-Capas (Multi-Tier)…………………………………………...16 3.4.2. Patrón de Mensajería……………………………………………………….17 3.4.3. Patrón de Modelo-Vista-Controlador………………………………………18 4. Especificaciones………………………………………………………………………..20 4.1. Casos de Uso………………………………………………………………………20 4.2. Requerimientos Funcionales………………………………………………………26 4.3. Requerimientos No Funcionales…………………………………………………..27 4.4. Diagramas UML…………………………………………………………………...28 4.4.1. Diagrama de clases………………………………………………………....28 4.4.2. Diagramas de secuencia…………………………………………………….29 5. Desarrollos……………………………………………………………………………...31 5.1. Justificación teórica………………………………………………………………..31 5.2. Diseño de Zone.js………………………………………………………………….35 5.2.1. Arquitectura………………………………………………………………...35 5.2.2. Estrategia de transferencia en las fronteras………………………………....39 5.2.3. Estrategia de zonificación…………………………………………………..44 5.3. Implementación de Zone.js…………………………………………………………53 5.3.1. Módulo Propuesto…………………………………………………………..53 5.3.2. Manejo del Proceso de Zonificación………………………………………..59 5.3.3. Manejo de la Comunicación entre Zonas…………………………………...61 5.3.4. Manejo de la Comunicación Cliente-Servidor……………………………...63 5.3.5. Casos de Uso………………………………………………………………..64 6. Pruebas………………………………………………………………………………....73 7. Resultados……………………………………………………………………………...77 8. Conclusiones…………………………………………………………………………...94 9. Trabajo Futuro………………………………………………………………………….97 10. Referencias……………………………………………………………………………..98 I
LISTA DE FIGURAS 1. a - Ciudad virtual replicada. b - Ciudad virtual zonificada 2. a - Aumento del número de usuarios permitidos al zonificar un entorno virtual 3. a - Desplazamiento de los usuarios en una red de telefonía celular b - Desplazamiento de los usuarios en un entorno virtual zonificado 4. a - Cobertura en la telefonía celular. b - Visibilidad en entornos zonificados 5. Agrupación de jugadores por proximidad 6. Zonificación, espejo e instanciación de entornos virtuales 7. Puntos de check-in y check-out en una frontera 8. Modelo Cliente-Servidor en aplicaciones interactivas multiusuario 9. Comparación de la sobrecarga de los protocolos HTTP (polling) y WebSocket 10. Comparación de la latencia de los protocolos HTTP (polling) y WebSocket 11. Línea, cuadrado, círculo e imagen dibujados en un elemento