En general PSP me gustó bastante porque aprendí mucho sobre cosas de java que no conocía como los procesos, multihilo, conectarse a un ftp, mandar un email o de cómo funciona la criptografía en Java. Algunos ejercicios eran más complicados, pero teniendo como base los míos no creo que os sea difícil.
Tema 1. Programación multiproceso
Este tema me costó un poco porque había que trabajar con la clase process y processBuilder en java y no las había visto en mi vida.
Además, lo de ejecutar programas y procesos desde la consola no era mi especialidad. Por eso os dejo este tutorial de cómo compilar y ejecutar un programa Java por consola
Javac-y-java-desde-el-CMDAquí os dejo el ejercicio resuelto de programación multiproceso en JAVA
EjercicioResuelto_PSP_DAM_01Tema 2. Programación multihilo en Java
La programación multihilo no es santo de mi devoción porque me resulta más complicado de debuggear, y el ejercicio que nos puso había que usar java swing y me hacía cosas muy raras que no supe resolver…
Estos ejercicios eran de pintar bolitas aleatorias de 3 colores diferentes (cada bolita de un color era de un hilo distinto) y el segundo de hacer que 3 bolitas de colores se movieran de lado a lado. El primero bien, pero el segundo a veces desaparecía la bola y otras aparecía en la otra punta, en otros casos dibujaba solo dos… lo que viene a ser un circo ?
El tercero por lo menos me pareció más fácil porque no había que pintar nada, simplemente era un juego de adivinar el número donde cada hilo era un jugador intentando adivinar el número, pero esta vez por consola todo.
EjercicioResuelto_PSP_DAM_02PD: También os incluyo otros ejercicios de multihilo en Java resueltos que pusieron otros años como por ejemplo: los caníbales, filósofos o el barbero durmiente.
Tema 3. Comunicaciones en red
En este tema te enseñan a trabajar con sockets con Java y el ejercicio que tienes que hacer es un par de programas que trabajen con sockets, uno de tipo UDP y otro de tipo TCP.
Este tema está entretenido porque aprendes mucho al ver cómo te puedes mandar mensajes por consola entre los diferentes programas. Eso sí, os reconozco que es un poco pesado de probar porque tienes que ejecutar dos programas a la vez. Lo que os recomiendo es que uséis el IDE y ejecutéis en una ventana el servidor y, en otra distinta el cliente porque hacerlo por consola puede ser un poco pesado.
EjercicioResuelto_PSP_DAM_03Tema 4. Aplicaciones cliente-servidor
Aquí te tocará hacer algo parecido al tema anterior solo que en vez de un cliente se conectarán varios, por lo que la forma de realizarlo es diferente porque tienes que usar Hilos en el servidor para que cada cliente que se conecte le atienda un hilo y así no se mezclen las peticiones.
En este ejercicio lo que se intenta simular es el acceso a una base de datos donde el programa que funciona como servidor tiene que encargarse de mantener un log de las peticiones. Se que parece lioso pero con el código y la documentación se entiende mejor ?
EjercicioResuelto_PSP_DAM_04Tema 5. Generación de servicios en red
El ejercicio de esta tarea me gustó bastante porque tienes que trabajar con librerías java de FTP y para mandar mails. En concreto te tocará crear una aplicación de consola en java que te permita subir archivos a un servidor FTP local y se guarde en los logs un registro de los ficheros creados en el FTP. Posteriormente habrá que hacer un resumen de las conexiones al FTP y mandarlas por correo.
Un consejo que os doy es que os piden trabajar con la clase «Console» para que al introducir la contraseña del usuario de ftp no se muestre por consola cuál se ha escrito. El problema de la clase Console es que para que funcione tenéis que compilar por consola y para debuggear es un poco pesado. Por eso os recomiendo que hagáis el programa entero aunque se muestre por consola la contraseña y ya al final del todo cambiéis esa parte y probéis que funciona por consola ?
EjercicioResuelto_PSP_DAM_05Tema 6. Programación segura
Este ejercicio tendrá varios apartados y, en primer lugar partimos desde el servidor FTP de la tarea anterior pero con pequeñas modificaciones. En este caso, en vez de mandar el log por email tendrá que guardarlo en una carpeta. No recuerdo muy bien por qué mandó este ejercicio pero bueno…
En el segundo apartado tendremos que hacer validaciones de las entradas del usuario usando la clase regex. Lo bueno es que este apartado es muy sencillo
El último apartado era hacer un fichero de políticas pero no conseguí sacarle. Además, se lo pregunté a la profesora después de entregarlo para ver cuál era la respuesta y aunque ella probó con la respuesta correcta no conseguía que mi programa funcionase así que antes de copiaros literalmente es mejor que probéis vosotros ?
EjercicioResuelto_PSP_DAM_06Tema 7. Aplicaciones con comunicaciones seguras
¡Por fin el último tema! Lo bueno es que estos ejercicios no son muy complicados. Como había que compilar por consola también os he incluido en cada ejercicio un archivo .bat para que te compile y ejecute el programa porque es un poco pesado hacerlo a mano ?
- Ejercicio 1. Había que generar el resumen de un fichero, que era algo bastante sencillo de hacer
- Ejercicio 2. Tampoco es complicado porque tienes que usar la firma digital para hacer un intercambio seguro de ficheros en java.
Y aquí se acaban los ejercicios resueltos de programación de servicios y procesos, y menos mal porque ya son bastantes ejercicios. Si queréis comentarme algo ya sabéis. No os olvidéis de echar un vistazo al resto de asignaturas ??