Laboratorios interesantes
Lo primero, aviso, este post quizás sea un poco tostón para mucha gente… Hablo de laboratorios de la universidad. Me gusta mucho como algunos profesores plantean algunos laboratorios. Son esos en los que estás todo el cuatrimestre trabajando sobre lo mismo pero desde tecnologías distintas; pienso que es una forma cojonuda de aprender.
El primer cuatrimestre en Sistemas Distribuidos:
- En la segunda práctica desarrollamos una clase que ofrecía una interfaz para conectarte con un servidor de correo POP. La gracia es que la interfaz era la misma que la que tenía la clase ya hecha que nos dieron el año pasado para hacer un cliente de correo, con lo que puedes “empotrarla” en tu práctica del año anterior y funciona perfectamente.
- Después hicimos que la clase (el programa) que realmente se conectaba al servidor de correo y hacía todo no estuviera en el mismo ordenador que el cliente de correo. Para eso hay que conseguir mandar los métodos a través de la red para que aún usando la misma interfaz de siempre, por debajo hagas las cosas de otra forma. Este modelo de diseño se llama adaptador ya que hay una clase que adapta unos métodos (el interfaz que implementamos primero) a otros (mandar por la red las solicitudes y recibir las respuestas, transformándolas para que el de arriba no se entere de nada). Así el programa de correo no tenía que cambiar ya que los métodos que utilizaba eran los mismos, sólo que por debajo usamos RPC, RMI y CORBA para que realmente la petición al servidor de correo se ejecutara en otra máquina. -Esas tres tecnologías hicieron las prácticas 3, 4 y 5. Lo de usar RPC en java chirría un poco, pero usamos el proyecto RemoteTea. Trabajamos todo el cuatrimestre sobre la misma interfaz pero aplicando diferentes tecnologías.
En este, el segundo cuatrimestre, en Aplicaciones Telemáticas (la web está bajo usuario y contraseña, bonita forma de diseminar conocimiento), hemos trabajado en el laboratorio sobre tecnologías XML y representación de datos. Hablé sobre qué es XML aquí.
- Primero nos dieron un DTD, que es un documento que define cómo debe ser un documento XML, para hacer un documento acorde a él.
- En la siguiente práctica tuvimos que crear un documento XMLSchema (algo parecido a un DTD pero especificado en XML) que validara el XML que habíamos hecho en la práctica anterior.
- La tercera práctica consistía, mediante JDOM (un paquete de software libre para manejar documentos XML desde Java), implementar unas decenas de métodos que accedían al XML para que un programa que nos daban hecho, mediante menús, pudiera interactuar con la información: leerla e incluir más datos.
- La cuarta práctica era que la información que se guardaba en disco en la anterior práctica estuviera siempre encriptada: encriptar al guardar y desencriptar al leer. Usamos el propio API del J2SE para aplicar criptografía simétrica.
- La quinta práctica y cambiando un poco de tema, consiste en acceder a un servidor LDAP para obtener información, que era la misma que la del XML pero con una estructura un poco diferente, y ofrecer la misma interfaz que se ofrecía en la tercera práctica… Así el mismo programa no sabe si por debajo la información está almacenada en un XML o en un servidor LDAP de China, por decir algo ;).
- La sexta y última práctica se resume en utilizar XSLT para crear algunas hojas de estilo que, aplicadas sobre el XML de la primera práctica (y que hemos usado en todas), generen diferentes páginas HTML con enlaces entre ellas con toda la información que había en el XML.
Realmente ha sido un año muy interesante, he aprendido un montón de cosas y me siento bien conmigo mismo. Antes de entrar a la universidad ya conocía casi todas las tecnologías que he estudiado en ella, pero las he aprendido de forma muy diferente y desde otro punto de vista, más teórico, más profundo y con más perspectiva. Cuando repaso algunos temarios me parece increíble todo lo que hemos ido viendo en sólo 3 meses y medio, como en Aplicaciones Telemáticas. Es que a parte de las prácticas hemos visto un montón de cosas más: e-mail, ASN1, Web Services, … Me da un poco de pena acabar ahora la carrera. Dentro de dos semanas saldré por última vez de un aula; aunque seguramente el curso que viene me meta a otra especialidad antes de hacer el segundo ciclo por dos razones: no podría entrar hasta 2007 por estar con el proyecto, y que me daría mucha pena dejar de ver a mis amig@s de la Uni… Snif