Sistemas Distribuidos: Práctica 2

Práctica de sockets usando java

El objetivo de esta práctica es consolidar los conocimientos adquiridos en clases de teoría y prácticas acerca del mecanismo de comunicación entre procesos a través de Internet mediante sockets.


Enunciado:

Se trata de crear un pequeño sistema de consulta de notas a través de telnet para lo que se pide que se implemente un servidor en java que permita a los alumnos consultar sus notas de SD.

Para implementar el servidor, supondremos que las notas de los alumno se encuentran almacenadas en un fichero de texto que contiene las notas de todos los alumnos según el siguiente formato:

  Nombre y apellidos#DNI#Nota

Nótese que el carácter # funciona como separador de campos (sugerencia: utilizar un objeto StringTokenizer).

El servidor deberá recibir a través del puerto 1234 las solicitudes de notas que tendrán el siguiente formato:

  CONSULTAR <DNI>

El comando consultar irá seguido de un parámetro que corresponde con el DNI del alumno cuya nota queremos saber.

El servidor devolverá tres líneas con el siguiente formato:

  Nombre: <Nombre y apellidos>
  DNI: <DNI>
  NOTA: <Nota>

En el caso de que el DNI suministrado no se corresponda con ningún alumno, se devolverá la siguiente cadena:

  NO ENCONTRADO

Ayuda:

Como ayuda, para aquellos que no dominen java, se adjunta el código necesario para buscar en el fichero de notas el registro de un alumno y mostrarlo por pantalla, de tal forma que sólo será necesario fusionarlo debidamente con el código del servidor genérico visto en prácticas.

También se adjunta un fichero de notas con diez registros de ejemplo para no perder el tiempo generándolo.


Mejoras:

A continuación se enumeran posibles mejoras o ampliaciones que realizar una vez implementada la parte esencial del sistema:

  1. Añadir un comando PONER que reciba como parámetros los tres campos necesarios para que el profesor pueda añadir el registro correspondiente a la nota de un alumno separados por el carácter # (de esta manera el registro podrá ser añadido de forma fácil).
  2. Implementar una interfaz (cliente) para facilitar al profesor la tarea de introducir las notas de forma que se le pregunte a este iterativamente el nombre, DNI y nota de cada alumno validando los datos introducidos y generando automáticamente la cadena a enviar al servidor.