Práctica 3 Entrada/Salida y Manejo de excepciones

Slides:



Advertisements
Presentaciones similares
FUNDAMENTALS OF THE JAVA PROGRAMMING LANGUAGE (SL-110) CAPÍTULO 13 Ing. Ronald Criollo.
Advertisements

Dirección IP - Características
Sistemas de Redes AS-IN
Dirección IP Las direcciones IP son un número único e irrepetible con el cual se identifica una computadora conectada a una red que corre el protocolo.
DIRECCIONES IP.
Protocolos de Inter-red
Guía de Implementación
Archivos de Texto. Introducción Los archivos son una secuencia de bits que se guarda en el disco duro. La ventaja de utilizar archivos es que los datos.
Parte 3. Descripción del código de una función 1.
29/03/2017 ROUTING IP Herramientas Basicas Redes Convergentes.
PROTOCOLOS Y ESTANDARES DE RED
Unidad 1. Manejo de ficheros
Punto 3 – Protocolo IP Juan Luis Cano. Internet Protocol (en español Protocolo de Internet) o IP es un protocolo no orientado a conexión usado tanto por.
Direccionamiento IP Instalación y Mantenimiento de Servicios de Internet (2º ESI) Profesor: Miguel A. González Ruz.
CAPA DE RED DEL MODELO DE REFERENCIA OSI
Tema 1 SRI Vicente Sánchez Patón I.E.S Gregorio Prieto
STEPHANNIE RODRIGUEZ BATUN. La información que necesita en un programa para su función se obtiene mediante una entrada de datos de una fuente que puede.
Problemas asociados a DHCP. Seguridad
Ingeniería en Automática Industrial Software para Aplicaciones Industriales I Ingeniería en Automática Industrial Software para Aplicaciones Industriales.
Direcciones IP.
Datagram IP Opciones.
OBJETO REQUEST. El objeto Request Por qué el objeto request Funcionamiento Colecciones: – Transferencia de variables por URL –Transferencia de variables.
ARP Y RARP.
Introducción a los protocolos de enrutamiento dinámico
1.2 Sintaxis del lenguaje Java.
UNIVERSIDAD LATINA (UNILA)
¿Qué es un conjunto? Un conjunto es una colección de objetos considerada como un todo. Los objetos de un conjunto son llamados elementos o miembros del.
E NRUTAMIENTO E STÁTICO Prof.:Sergio Quesada Espinoza Conf. Dispositivos de Red.
II. Enrutamiento estático y dinámico
Protocolo IP Direccionamiento de Red – IPv4
PROTOCOLOS Un protocolo es un conjunto de reglas que hacen que la comunicación en una red sea más eficiente.
UNIDAD IV VLSM Y CIDR.
Enrutamiento con un protocolo de Link-State
PROGRAMACIÓN ORIENTADA A OBJETOS
DIRECCIONAMIENTO IP.
Conceptos Básicos de Java
Excepciones y archivos Info 033. Exception El término Exception es la palabra corta para la frase "evento excepcional." Definition: Una excepción es un.
© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public 1 Protocolos de enrutamiento de estado de enlace Conceptos y protocolos de enrutamiento.
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Tema 6: Clases Antonio J. Sierra.
TCP/IP V4 Redes de Computadoras uclv.
Sebastián Barbieri IP - ICMP Comunicación de Datos II Ingeniería en Sistemas – Facultad Cs. Exactas Universidad Nacional de Centro de la Prov. de Bs. As.
Unidad I Java y C++ : Similitudes y diferencias
LISTAS DE CONTROL DE ACCESO ACL Semestre 2 Capítulo 11
Direccionamiento IP Clases de direcciones. 01 de octubre de 2004Cesar Guisado2 TCP/IP La familia de protocolos TCP/IP fue diseñada para permitir la interconexión.
1 Streams en Java Agustín J. González ELO Generalidades Un Stream es simplemente una fuente o destino de bytes. Los streams más comunes son los.
LISTAS DE CONTROL DE ACCESO (ACL)
Programación I :: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación.
Programación Orientada a Objetos
Entrada / Salida. Java adopta de Unix el concepto de stream Un stream es un flujo de datos (secuencia de bytes) que va de una fuente a un destino. Desde.
Streams. / En casi todo programa se necesita traer o enviar información a una fuente externa. / Dicha información puede estar en un archivo en el disco.
Un programa no es nada mas que una serie de instrucciones dadas al ordenador en un lenguaje entendido por el, para decirle exactamente lo que queremos.
Universidad Nacional de Jujuy Facultad de Ingeniería
FUNCIONES GENERALES –SELECCIÓN DE LA MEJOR RUTA –DIRECCIONAMIENTO DE LA RED.
Javier Rodríguez Granados
Aspectos básicos de networking: Unidad 5
Aplicaciones Web de Servidor
Teoría de Sistemas Operativos Sistema de I/O. 2 Introducción Una de las funciones principales del sistema operativo es el control de todos los dispositivos.
5.7 Servicios no orientados a conexión. 5.8 Ruteadores.
Introducción a los protocolos de enrutamiento dinámico
INGENIERIA EN SISTEMAS COMPUTACIONALES ASIGNATURA: PROGRAMACION ORIENTADA A OBJETOS ALUMNO: JAVIER MARTINEZ MARTINEZ.
Jorge De Nova Segundo. Funcionamiento del servicio DHCP. Tipos de mensajes. DHCP Asigna direcciones IP a otras máquinas de la red. Este protocolo puede.
Metodología de Programación Ayudantía 4 lelagos.ublog.cl 2009.
Instituto Tecnológico Superior de Libres Ingeniería en Sistemas Computacionales Segundo semestre Materia: Programación Orientada a Objetos Asesora: Ing.
ESTACIONES DE TRABAJO..
 DIANA GARCIA VALERIO. CONCEPTO DE FLUJO DE JAVA:  La información que necesita un programa para su función se obtiene mediante una entrada de datos.
Notario electrónico Consejería de Justicia y Administración Pública Dirección General de Organización, Inspección y Calidad de los Servicios Antonio Pedro.
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
D IRECCIONAMIENTO IP ( PARTE 2) Juan Carlos Rodriguez Gamboa.
Sistemas de Comunicación Magistral Nro. 6 Capa 3: Red La Capa de Red provee principalmente los servicios de envío, enrutamiento (routing) y control de.
Transcripción de la presentación:

Práctica 3 Entrada/Salida y Manejo de excepciones Dpto. de Ingeniería de Sistemas Telemáticos http://www.lab.dit.upm.es/~lprg/ Abril 2004

Objetivos Se cubren los siguientes aspectos Escenario Lectura de un fichero de entrada Manejo de excepciones Escenario Configuración de un router Abril 2004 Práctica 3

Internet: red de “redes” A R2 Estaciones de usuario (PC) R1 R3 Servidores R4 R5 Router Conexión entre dispositivos, a través de una red B Camino que va siguiendo el tráfico de la comunicación del PC A al servidor B (ruta) Abril 2004 Práctica 3

Router Un router es un dispositivo con conexiones a otros dispositivos a través de redes y que actúa como encaminador de tráfico. Cada conexión se realiza a través de una interfaz, que es el punto de comunicación entre un dispositivo y el exterior. Para encaminar el tráfico es necesario conocer las rutas hacia los posibles destinos no la ruta completa, sólo el “gateway” o “siguiente salto”. (R1 sólo necesita saber que para encaminar el tráfico dirigido hacia B, hay que enviarlo a R2) Abril 2004 Práctica 3

Dirección IP En Internet, se necesita “algo” para identificar unívocamente las interfaces y redes. Para ello se utilizan las direcciones IP (Internet Protocol) Formada por 4 bytes Cada byte permite 28 valores, entre 0 y 255 Notación Notación decimal: 138.4.54 4 Notación binaria: 1111 1111 0000 0100 0111 0110 0000 0100 138 4 54 1000 1010 0000 0100 0011 0110 Abril 2004 Práctica 3

Dirección de Red Una dirección de red identifica el conjunto de direcciones IP posibles de las interfaces conectadas en una red El procedimiento empleado es hacer que todas las direcciones IP de una red tengan una parte común: los primeros N bits Esa parte común se representa mediante una máscara de red La máscara de red se representa como una dirección IP, con los primeros N bits igual a 1 y el resto de bits 0, ej. 255.255.255.0 Por tanto, una dirección de red queda definida mediante: dirección IP, máscara de red Ej. Red de área local con un router y varios servidores: 138.4.54.0 / 255.255.255.0 138.4.54.1 138.4.54.2 138.4.54.3 138.4.54.x Abril 2004 Práctica 3

Interfaz Una interfaz, se identificará por: un nombre, de uso interno en el dispositivo (ej, ce0) una Dirección IP (ej, 138.4.54.4) un identificador de la red a la que está conectada (dirección de la red) La dirección de red se genera a partir de: Dirección IP (ej, 138.4.54.4) una Máscara de Red (ej, 255.255.255.0) Por tanto, una interfaz queda definida mediante: nombre, dirección IP, máscara de red ce0 138.4.54.4 / 255.255.255.0 Abril 2004 Práctica 3

Rutas Para encaminar el tráfico es necesario conocer las rutas hacia los posibles destinos Dos casos: Si el destino está en una de las redes a las que estoy conectado directamente, se lo envío directamente a través de esa red. Si el destino no está en una de las redes a las que estoy conectado directamente, se lo intentaré enviar indirectamente a través de otro router con el que sí tengo conexión directa. Un router guarda información sobre las rutas que conoce (tabla de encaminamiento). Cada ruta especifica: dirección de la red destino (= dirección IP + máscara) dirección IP del “gateway” (dispositivo al que tengo que reenviar el tráfico dirigido a cualquier dirección de esa red destino) Por tanto, una ruta queda definida mediante: dirección de red (destino), dirección IP (gateway) Abril 2004 Práctica 3

Parámetros de un Router Un router queda definido por: Su nombre Sus interfaces de red; cada interfaz queda definida por: Un nombre Una Dirección IP Una Máscara de red Su tabla de rutas; cada ruta queda definida por: Red destino (Dirección de Red) Gateway (Dir. IP) Abril 2004 Práctica 3

Fichero de configuración // nombre del router device name "my router" // definición de interfaces interface add ce0 "192.168.0.3" "255.255.0.0" interface add ce1 "10.0.0.5" "255.0.0.0" interface add ce2 "138.4.54.4" "255.255.255.0" // definición de rutas route add "11.0.0.0" "255.0.0.0" "10.0.0.1" route add "212.166.250.0" "255.255.0.0" "192.168.0.1" route add "138.4.63.0" "255.255.255.0" "138.4.54.1" Abril 2004 Práctica 3

¿Qué hay que hacer? Implementar una clase que lea un fichero de configuración de un router, como el anterior, y cree un router con dicha configuración Abril 2004 Práctica 3

Diagrama de Clases Abril 2004 Práctica 3

Clases Clases (y ficheros) proporcionados: Clases pedidas: Clase DireccionIP.java Clase DireccionIPException.java Clase DireccionRed.java Clase Interfaz.java Clase Ruta.java Clase Router.java Clase Configuracion.java Fichero de ejemplo de configuración: Device.txt Clase Entrega.java Clases pedidas: Clase ConfigRouterException.java Clase ConfigRouter.java Clase ConfigRouterTest.java Abril 2004 Práctica 3

Entrada/Salida para ConfigRouter Para leer el fichero java.io.File(nomfichero) java.io.FileReader(File) Para descomponer la entrada en tokens java.io.StreamTokenizer Abril 2004 Práctica 3

StreamTokenizer final char DELIMITADOR_WORD = ‘”’; fr = new FileReader (new File(“fichero”)); st = new StreamTokenizer(fr); // una secuencia de caracteres encerrada // entre dos caracteres DELIMITADOR_WORD es //vista como un solo token st.quoteChar(DELIMITADOR_WORD) // ignora comentarios del tipo “//” st.slashslashComments(true) // ignora comentarios del tipo “/*...*/” st.slashStarComments(true) Abril 2004 Práctica 3

Método nextToken de StreamTokenizer El método nextToken() de StreamTokenizer puede devolver varios valores: TT_WORD: indica que el token es una palabra. TT_NUMBER: indica que el token es un número. TT_EOL: indica que se ha llegado al final de una línea. Para que esto funcione, debe haber sido invocado el método eolIsSignificant con el argumento true. TT_EOF: indica el final de la entrada. Abril 2004 Práctica 3

Ejemplo trivial Abril 2004 Práctica 3 // _st es un objeto de la clase StreamTokenizer for (int lexema = _st.nextToken(); lexema != StreamTokenizer.TT_EOF; lexema = _st.nextToken()) System.out.println (_st.sval); device name my router interface add ce0 192.168.0.3 255.255.0.0 Add ce1 10.0.0.5 255.0.0.0 ce2 138.4.54.4 255.255.255.0 route 11.0.0.0 255.0.0.0 10.0.0.1 route add 212.166.250.0 25.255.0.0 192.168.0.1 138.4.63.0 255.255.255.0 138.4.54.1 Abril 2004 Práctica 3

Palabras Clave Las palabras clave utilizadas en la definición de un router son las siguientes: device interfaz route Además, existen otras dos palabras clave, que representan operaciones: name add Abril 2004 Práctica 3

Posible algoritmo de reconocimiento: método configura Abrir fichero para lectura Crear StreamTokenizer Leer una primera línea que comience por device Si el siguiente token es name tratar de reconocer un nombre para el router Mientras haya tokens Si el primer token es interfaz Si el siguiente token es add Tratar de reconocer una definición de interfaz para el router Si el primer token es router Tratar de reconocer una definición de Ruta para el dispositivo Si en algún momento se llega a una situación no deseada (token incorrecto, fin de línea, etc.) se debe lanzar una Excepción: ConfigRouterException. Abril 2004 Práctica 3

Sugerencias Crear los siguientes métodos getWord, para leer una palabra (o secuencia de palabras entrecomilladas) getDireccionIP, para leer una dirección IP procesaNombre, para leer líneas que comiencen por device procesaInterfaz, para leer líneas que comiencen por interfaz procesaRuta, para leer líneas que comiencen por route Abril 2004 Práctica 3

Logging Se deberán incluir trazas en la implementación de la clase pedida ConfigRouter: se utilizará java.util.logging niveles de trazado: SEVERE: para fallos graves, como excepciones que no se pueden tratar; se indica la excepción que se lanza. INFO: para mostrar información de alto nivel: entrada y salida en los métodos. FINE: para mostrar información de bajo nivel, concretamente de los tokens que se van leyendo de la entrada. Se puede indicar en tiempo de ejecución dónde está el fichero de configuración para el paquete java.util.logging: java -Djava.util.logging.config.file=logging.properties lprg.p3.ConfigRouterTest Abril 2004 Práctica 3

Logging: Ejemplos 11-abr-2004 23:42:17 lprg.p3.ConfigRouter getWord INFO: Entrada FINA: token leído: device FINA: token leído: name .... 11-abr-2004 23:46:40 lprg.p3.ConfigRouter getWord FINA: token leído: 1192.168.0.3 11-abr-2004 23:46:40 lprg.p3.ConfigRouter getDireccionIP GRAVE: Lanzada ConfigRouterException Abril 2004 Práctica 3

Pruebas: Clase Configuracion.java Existe una clase Configuración.java que permite comprobar la funcionalidad del Router: Crea un router a partir de un fichero de configuración Calcula rutas para algunas direcciones IP predefinidas en el código Solicita direcciones IP por la entrada estándar y dice por qué interfaz deberá encaminarse el tráfico dirigido hacia esa dirección IP java lprg.p3.Configuracion –Djava.util.logging.config.file=logging.properties lprg\p3\Device.txt 138.4.54.38 -> ce2: 138.4.54.4/255.255.255.0 10.0.3.0 -> ce1: 10.0.0.5/255.0.0.0 192.168.0.1 -> ce0: 192.168.0.3/255.255.0.0 192.160.0.1 -> null device name my router" interface add ce0 "192.168.0.3" "255.255.0.0" interface add ce1 "10.0.0.5" "255.0.0.0" interface add ce2 "138.4.54.4" "255.255.255.0" route add "11.0.0.0" "255.0.0.0" "10.0.0.1" route add "212.166.250.0" "25.255.0.0" "192.168.0.1" route add "138.4.63.0" "255.255.255.0" "138.4.54.1" Introduzca direcciones IP para averiguar la ruta: 138.4.54.1 -> ce2: 138.4.54.4/255.255.255.0 212.166.250.21 -> ce0: 192.168.0.3/255.255.0.0 Abril 2004 Práctica 3

Excepciones en ConfigRouter.java Deben lanzarse excepciones: IOException: si no se puede abrir el fichero porque no existe o no tenemos permisos ConfigRouterException: no se reconoce el tipo de elemento de una línea Tratamiento: IOException: no se pueden tratar, el programa debe terminar ConfigRouterException: tampoco se tratan, el programa termina DireccionIPException deben capturarse y propagarse en forma de RouterException Cada vez que se lance una Excepción se generará una línea de log con el nivel SEVERE Abril 2004 Práctica 3

Pruebas en ConfigRouterTest.java Se proporcionan algunas pruebas muy simples: Fichero vacío Fichero que no existe Deberá completarse con casos de prueba adicionales que permitan comprobar toda la funcionalidad de la clase ConfigRouter ¿Cómo escribir en un fichero? FileWriter fw = new FileWriter(<nomfichero>); BufferedWriter salida = new BufferedWriter(fw); salida.write(<String>); salida.write (<String>); ... salida.close(); Abril 2004 Práctica 3

Entrega Todas las clases pertenecerán al package lprg.p3 Se deberán dejar en el directorio lprg/p3 de su cuenta del laboratorio Se piden los ficheros ConfigRouter.java ConfigRouterException.java ConfigRouterTest.java Fecha límite: 30 de abril de 2004, 23:59 Abril 2004 Práctica 3