IPv6 & Java Mayo 2001 E STRATEGIAS D E T RANSICIÓN A IP v 6 E N E NTORNOS J AVA Óscar Saavedra Villa
IPv6 & Java Mayo 2001 Índice Introducción. Análisis del paquete java.net. Diseño de los cambios. Fase de codificación. Pruebas. Conclusiones.
IPv6 & Java Mayo 2001 Índice INTRODUCCIÓN. Análisis del paquete java.net. Diseño de los cambios. Fase de codificación. Pruebas. Conclusiones.
IPv6 & Java Mayo 2001 Introducción Entorno Actual Sociedad de la Información (SI). Tecnologías de la Información y las Comunicaciones (TIC). Entorno complejo y turbulento. “Todo el mundo, toda la información, en cualquier momento, en cualquier lugar”.
IPv6 & Java Mayo 2001 Introducción Necesidad de un nuevo protocolo IP Entorno actual IPv4 obsoleto. Número de dispositivos conectados. Seguridad. Movilidad. Calidad de servicio. Etc.
IPv6 & Java Mayo 2001 Introducción Ventajas de IPv6 frente IPv4 Mayor capacidad de direccionamiento. Servicios de seguridad. Soporte integrado de la movilidad. Soporte para calidad de servicio (QoS). Simplificación de cabeceras. Otras.
IPv6 & Java Mayo 2001 Introducción Mecanismos de transición Dual IP Stack Implementation. Embedding IPv4 Addresses Into IPv6 Addresses. IPv6 over IPv4 Tunneling. IPv4/IPv6 Header Transition.
IPv6 & Java Mayo 2001 Introducción Objetivo del proyecto Realizar una implementaci ó n de la pila dual de protocolos IP en Java, que permita a las aplicaciones existentes y a las nuevas aplicaciones comunicarse tanto con nodos IPv4 como con nodos IPv6.
IPv6 & Java Mayo 2001 Índice Introducción. ANÁLISIS DEL PAQUETE JAVA.NET. Diseño de los cambios. Fase de codificación. Pruebas. Conclusiones.
IPv6 & Java Mayo 2001 Análisis del paquete java.net Composición Clases encargadas de los URL. Clases encargadas de los sockets. Clases encargadas de las direcciones IPv4. Clases encargadas del protocolo UDP. Clases encargadas del protocolo TCP.
IPv6 & Java Mayo 2001 Análisis del paquete java.net Diagrama UML
IPv6 & Java Mayo 2001 Análisis del paquete java.net Conclusiones Delegación Sustitución. Estructura en niveles o capas. PROGR./DESARR. API NÚCLEO JDK
IPv6 & Java Mayo 2001 Índice Introducción. Análisis del paquete java.net. DISEÑO DE LOS CAMBIOS. Fase de codificación. Pruebas. Conclusiones.
IPv6 & Java Mayo 2001 Diseño de los cambios La interfaz JNI Código Java JNI Código C API sockets Librerías S.O. API NÚCLEO API
IPv6 & Java Mayo 2001 Diseño de los cambios Basic Socket Interface for IPv6 API usado por el 90% de las aplicaciones. Cambios especificados en el RFC Funciones del núcleo de sockets. Estructuras de datos para las direcciones. Funciones de traducción de nombres a direcciones. Funciones de conversión de direcciones.
IPv6 & Java Mayo 2001 Diseño de los cambios Los cambios Código Java JNI Código C API sockets IPv6 Librerías S.O. API
IPv6 & Java Mayo 2001 Diseño de los cambios Estrategia de realización Clases que representan las direcciones IP. Clases encargadas del protocolo UDP. Clases encargadas del protocolo TCP.
IPv6 & Java Mayo 2001 Índice Introducción. Análisis del paquete java.net. Diseño de los cambios. FASE DE CODIFICACIÓN. Pruebas. Conclusiones.
IPv6 & Java Mayo 2001 Fase de codificación Algunos detalles Las direcciones IP. El cliente SOCKS v4/v5. El soporte para multicast. Etc.
IPv6 & Java Mayo 2001 Fase de codificación Las direcciones IP Java 2 de Sun para Linux int address; JANO byte address[]; Ventajas: Válido tanto para direcciones IPv4 como direcciones IPv6. Longitud del array distingue entre un tipo u otro de dirección. Inconvenientes: Aumenta la complejidad de algunas funciones.
IPv6 & Java Mayo 2001 Fase de codificación Herramienta de compilación: Ant “It’s a kind of like make, without make’s wrinkles”. Ventajas: Escrita en Java Independiente de la plataforma. Extensión de tareas mediante clases Java. Utilización de XML en los ficheros de configuración. Permite ejecutar comandos de shell.
IPv6 & Java Mayo 2001 Ficheros de configuración XML: build.xml Fase de codificación Herramienta de compilación: Ant Proyecto... Objetivo 1 Objetivo 2 Tarea Tarea
IPv6 & Java Mayo 2001 Índice Introducción. Análisis del paquete java.net. Diseño de los cambios. Fase de codificación. PRUEBAS. Conclusiones.
IPv6 & Java Mayo 2001 Pruebas Consideraciones iniciales Probar es descubrir errores; cuantos más mejor. La prueba exhaustiva es imposible. Hay que documentar las pruebas. Las pruebas requieren tiempo y esfuerzo.
IPv6 & Java Mayo 2001 Pruebas Marco de pruebas: JUnit Objetivo: Automatizar e integrar las pruebas en el proceso de compilación. Solución: JUnit. Características: Es muy sencillo. Se integra con Ant, mediante la tarea. Comprueba los resultados e informa de ellos. Está íntegramente escrito en Java.
IPv6 & Java Mayo 2001 Pruebas Marco de pruebas: JUnit Una batería de pruebas. Cuatro pruebas: InetAddressTest. PlainDatagramSocketTest. PlainSocketTest. SocksTest. Al menos, un test por cada método. testGetByName(). Etc. Batería de pruebas... Prueba 1 Prueba 2 Test Test
IPv6 & Java Mayo 2001 Pruebas Ciclo de ejecución $>ant alltests Compilación ftes. Java Compilación ftes. Java Creación fichero.jar Creación fichero.jar Ejecución Test_PDSI Ejecución Test_PDSI Creación cabeceras JNI Creación cabeceras JNI Creación librería.so Creación librería.so Compilación batería JUnit Compilación batería JUnit Compilación ftes. C Compilación ftes. C Ejecución Test_IA Ejecución Test_IA Conversión XML HTML Conversión XML HTML $>_ Ejecución Test_PSI Ejecución Test_PSI
IPv6 & Java Mayo 2001 Pruebas Ciclo de ejecución $>ant alltests $>_
IPv6 & Java Mayo 2001 Índice Introducción. Análisis del paquete java.net. Diseño de los cambios. Fase de codificación. Pruebas. CONCLUSIONES.
IPv6 & Java Mayo 2001 Conclusiones Resumen Situación: Entorno actual IPv4 obsoleto IPv6. Problema: Transición entre versiones. Solución: Mecanismos de transición. Objetivo: Implementar pila dual IPv4/IPv6 en Java. Resultado: JANO.
IPv6 & Java Mayo 2001 Conclusiones JANO Proceso de desarrollo sw: C.V. en cascada. Ritmo de desarrollo: ~400 horas de trabajo. Análisis: ~50 horas. Diseño: ~25 horas. Codificación: ~80 horas. Pruebas: ~100 horas. Redacción de la memoria: ~145 horas. Redacción continua de la memoria.
IPv6 & Java Mayo 2001 Conclusiones Mejoras y futuros trabajos Flow labels. Traffic classes. Authentication. Hop-By-Hop options. Destination options. Routing header options.
IPv6 & Java Mayo 2001 Conclusiones Más información JANO: IPv6: Etc.
IPv6 & Java Mayo 2001 Índice Introducción. Análisis del paquete java.net. Diseño de los cambios. Fase de codificación. Pruebas. Conclusiones.