Download Diapositiva 1
Document related concepts
no text concepts found
Transcript
DOCTORADO EN PROGRAMACIÓN DECLARATIVA E INGENIERÍA DE LA PROGRAMACIÓN Especificación y verificación de routers software (12 Créditos) J. Guadalupe Ramos Díaz Tutor: Dr. Germán Vidal DSIC-PLIS-ELP-MIST Agenda: 1. Currículum 1.1 Formación 1.2 Materias impartidas en México 1.3 Participación en proyectos 1.4 Ponencias en Congresos Nacionales 2. Docencia 3. Investigación 3.1 Definición de router 3.2 Objetivo 3.3 Anotaciones 3.4 Especificación de circuitos 3.5 Lenguaje anfitrión 3.6 Solución 4. Conclusiones 5. Trabajos futuros 6. Plan de trabajo 2 1. Currículum: Formación Maestría en Ciencias Computacionales I. T. León (1998) Adiestramiento en Investigación Tecnológica Instituto de Investigaciones Eléctricas (Cuernavaca, México, 1995) Ingeniería en Sistemas Computacionales I. T. Morelia (1994) 3 1. Currículum: Materias impartidas Programación Programación de sistemas Programación para Internet Administración de archivos Redes de área local Sistemas abiertos Tópicos de redes Teleproceso Graficación 4 1. Currículum: Proyectos de I+D Sistema de graficación para QNX Instituto de Investigaciones Eléctricas Asesor de proyectos de creatividad en etapas nacionales – Servidor genérico P2P – Sistema de monitoreo y control remoto por Internet – Aplicaciones P2P 5 1. Currículum: Ponencias en Congresos Nacionales Intermediario para sistemas de información distribuida Congreso de Ing. en Sist. Computacionales e Informática (I.T.Tuxtla Gutiérrez, Chiapas): CISCI’02 Propuesta de middleware para aplicaciones P2P Simposium Intertecnológico de Ciencias Computacionales: SICI’01 Servidor genérico para aplicaciones P2P 1er. Congreso Nacional de Calidad en la Educación Superior Tecnológica: CNCEST’00 6 2. Etapa de Docencia Materia Créditos Ingeniería de requisitos O.O. 5 Bases de datos avanzadas 4 Tecnología software para ambientes web 5 Fundamentos lógicos de la Ingeniería de Software Ingeniería de Software automática 4 4 7 3. Investigación: Definición Paquete Carga útil cabecera Router Dirección destino Estructura de datos de rutas Puertos de salida Routers extensibles Tabla de encaminamiento Red destino Puerto 65.0.0.0/8 3 128.9.0.0/16 1 • Seguridad • Políticas 149.12.0.0/19 2 +Protocolos de encaminamiento • QoS • Direcciones • Evolución 8 3. Investigación: Definición Existen dos tipos: [Spalink et al., 2001] Ejecución en un PC: • Enchufes [Decasper et al. 1998], ETH Zurich & U. Washington • Scout [Peterson et al. 1999], U. Arizona, U. Princeton • Click [Kohler et al. 1999], MIT Ejecución en un PC + Procesador de Red: • VHDL + FPGA [Lee et al. 1999], I.P. Virginia • Intel IXP1200 + Ensamblador [Spalink et al. 2001], U. Princeton • NPClick + Intel IXP1200 [Shah et al. 2003], U. Berkeley Router Modular Click Forma de grafos 9 3. Investigación: Objetivo Ventajas claras de los routers extensibles (tema actual) respecto a los routers hardware Actividad crucial en una red Click debería tener un entorno para especificación y verificación de routers software, etc. ¡No lo tiene! Objetivo: Desarrollar un lenguaje de dominio específico sobre un lenguaje declarativo (multi-paradigma) para la especificación y verificación de routers Click 10 3. Investigación: Anotaciones No existen antecedentes en la literatura del uso de un lenguaje declarativo para la especificación de routers software Existe un campo relacionado: especificación y verificación de hardware Explotamos la relación circuitos <-> grafos Click Un lenguaje declarativo empotrado es Anfitrión una librería que se incorpora a un Librería lenguaje ya existente Dominio Librería = Lenguaje de dominio específico 11 3. Investigación: Especificación de circuitos Especificación del lenguaje empotrado: Lava [Claessen, 2001] Librería type Signal = [Bool] and :: (Signal,Signal)->Signal xor :: (Signal,Signal)->Signal Apoyado por Xilinx Inc. halfAdd (a, b) = (sum, carry) where sum = xor (a, b) carry = and (a, b) 12 3. Investigación: Especificación de circuitos • Especificación del lenguaje empotrado Hawk [Matthews, et al., 2000] • Apoyado por Intel Inc. sham1 (cmd, destReg, srcRegA, srcRegB) = (destReg’, aluOutput’) where (aluInputA, aluInputB) = regFile srcRegA srcRegB(destReg’,aluOutput’) aluOutput aluOutput’ destReg’ = alu cmd aluInputA aluInputB = delay 0 aluOutput = delay R0 destReg 13 3. Investigación: Lenguaje anfitrión Curry Curry es una extensión conservativa de Haskell (base de Lava / Hawk) con características de la programación lógica Permitirá adaptar inmediatamente Lava y Hawk Proporciona el entorno apropiado para practicar verificación, simulación y análisis Curry = lógica + funcional + concurrente + distribuida + OO = multi-paradigma 14 3. Investigación: Solución Caso Simple: type Packet = [ Char ] FromDevice(eth0)->Print (“Paq:”)->Discard fromDevice :: Int -> Packet fromDevice _ = newPacket print :: (String, Packet) -> Packet print (s, px) = let p= s++px in p Conector de orden superior (fromDevice ->- discard) 1 discard :: Packet->Int discard p = 0 (->-) :: (a->b) -> ( b->c) -> a -> c (element1 ->- element2) inp = let mid = element1 inp in element2 mid 15 3. Investigación: Solución Caso a modelar: Principal problema propio a un router: La conexión = ¿funciones? o ¿conectores? o ¿condicionales? 16 3. Investigación: Solución router pkin = out where (pk, pto) = classifier pkin pk2 = if pto==2 then paint pk 2 else GOTO ... Características: •Problema de salidas múltiples y condicionales •Poco declarativo •En Click no hay condicionales 17 3. Investigación: Solución type Event = (Packet, Puerto) router:: Event -> Event router inp = out where outclassif = classifier inp out = routerBranch outclassif routerBranch (pk,0) = arpResponder (pk,0) routerBranch (pk,1) = arpQuerier (pk,1) routerBranch (pk,2) = out where st1 = paint (pk,2) 1111 st2 = strip st1 14 st3 = checkIPHeader st2 out = getIPAddress st3 •Escritura de router mas cercana a Click Características: •Incorporación de abstracción de eventos •Se aprovecha pattern matching para dar inteligencia a los elementos 18 4. Conclusiones Los routers extensibles son un tema de actualidad que madurará y en el que Click sobresale La especificación y verificación formal son de gran importancia para las empresas de hardware y ya hay esfuerzos basados en el uso de lenguajes declarativos. Curry podría tener un lugar ventajoso gracias a sus características multi-paradigma Se han comprobado las ventajas de escribir un lenguaje empotrado con respecto la creación de un lenguaje nuevo (con intérprete, compilador, herramientas de verificación . . . ) 19 5. Trabajos futuros Enlazar nuestro lenguaje con Click: Traductor de especificaciones Curry a Click (colaboración con E. Kohler, MIT) Especificar los 242 elementos Click Definir e implementar técnicas de análisis, verificación, etc. (concretas al dominio del problema) – Propiedades de un router: No puede haber ciclos infinitos, verificar que a una entrada hay una salida, excepto con paquetes vencidos El paquete sólo puede ser modificado en ciertos campos Para todo paquete debe haber una ruta de encaminamiento, etc. 20 6. Plan de trabajo Publicación PROLE’03 (Terceras Jornadas sobre Lenguajes de Programación ) TESIS: Especificación (presente) Y verificación (futuro) de routers software Metodología de trabajo: – Contacto regular vía email – Visita a la UPV – Asistencia a congresos Proyecto de I+D centrado en el tema 21 ... 22