Cosas que añadir Cosas que añadir

«Atrás

Terminado el Máster de Software Libre y su proyecto. LDAP, P2P, Java y Tomcat en la coctelera.

Por fin el mes de Julio pasado terminé el Proyecto de Fin de Máster del Máster de Software Libre de la UOC. He tardado 3 años: con calma; disfrutándolo. La enseñanza telemática esta me ha gustado: tienes la suficiente presión, que te fuerza a estudiar, pero tienes una flexibilidad horaria y de diseño del curriculum bastante buena. La UOC, en general, me ha dejado buen sabor de boca, y alguno de sus profesores bastante buenos.

Y con el proyecto, pues friquidiversión a raudales. Su rimbombante nombre: Directorio LDAP descentralizado gobernado desde una red peer-to-peer: LDAP2P.

La cosa ha consistido en unos componentes escritos en Java que gestionan y almacenan datos de servidores LDAP mediante una red peer-to-peer. Concretamente una red peer-to-peer estructurada, que está basada en una tabla de hash distribuido (DHT) entre los iguales de la red. Lo que significa esto es que se almacenan pares de clave valor al estilo de un Tabla Hash normal, pero cada entrada esta replicada sólo en un conjunto de nodos. La red conoce en qué nodo buscar cada clave gracias a algún algoritmo de enrutamiento entre los nodos. Por esta capa de enrutamiento de mensajes, trabajando sobre toda la pila TCP/IP, a estas redes P2P estructuradas se las llama también redes superpuestas.

La implementación de red utilizada ha sido Pastry, aunque configurando y arrancado los nodos desde la biblioteca java EasyPastry desarrollada por mi director de proyecto, Rubén Modéjar.

Enrutamiento de mensajes entre los nodos de una red Pastry según cercanía de IDs

Bueno, pues este componente que convierte nuestro proceso java en un nodo de una red P2P se instalaba y configuraba dentro del contenedor Tomcat. Al arrancar tomcat el servidor se integra en la red P2P.

Tras ello, otro componente se encarga de comprobar si tiene un servidor LDAP al que conectarse; si lo hay saca sus datos (cada rama de usuario del directorio LDAP) y los compara y fusiona con las existentes previamente en la tabla hash distribuida alojada en la red P2P.

Esto es, las supuestas aplicaciones clientes de los directorios LDAP harían sus peticiones LDAP a la red P2P en vez de a alguno de los muchos servidores LDAP que esta red soportaría. En nuestro caso la aplicación cliente era una miniweb de administración del sistema. Se podría resumir así:

Componentes java del proyecto LDAP2P

 

El proyecto ha sido muy gratificante: Java, manipulación de datos en OpenLDAP, Tomcat, los entresijos de una red P2P estructurada... Algo menos gratificante, el uso de GWT para la interfaz web. Se me hace engorroso.

En cuanto pueda, publico los fuentes y la documentación.

Naturalmente el proyecto no hubiera sido posible sin el apoyo y soporte continuo de su director, Rubén. Desde aquí todo mi agradecimiento.

Comentarios
URL de Trackback:

Añadir comentario

Hola, me presento en primer lugar. Mi nombre es Francisco y soy estudiante de la UOC. Este, con mucha suerte, será mi último año en la universidad.
Estoy haciendo el projecto de fin de carrera, y para ello he optado por hacer un sistema de almacenamiento distribuido para un micro-blogging. Para
la implementación he dedido utilizar EasyPastry. El problema es que me he tomado con el primer escollo y es por eso que te envio este email.
Mi problema es que al ejecutar la aplicación de prueba. En el momento en que pretendo añadir el primer nodo obtengo el siguiente mensaje.

".pastry.JoinFailedException: Cannot join ring. All bootstraps are faulty"

La verdad es que sería maravilloso si me puedes ayudar de alguna manera por que la verdad es que ando bastante atascado en este primer paso.

Muchísimas gracias.
Francisco

Mi email es iko9@hotmail.com Thankss!

Publicado el día 5/04/13 16:58.

Responder Arriba