lunes, noviembre 20, 2006

Tecnologías con las que me gustaría trabajar (I)


Una de las tecnologías con las que me gustaría hacer algo productivo (léase: encontrar un cliente que me pague por hacer una aplicación) es JCR (Java Content Repository).
La JSR-170 especifica la forma en la que deberíamos comunicarnos con los repositorios de contenido. Los repositorios de contenido o "Content Management Systems" (CMS) como Documentum o Vignette nos permiten guardar información binaria o de texto sin tener que preocuparnos por dónde se hace, es decir si se utiliza una base de datos relacional o ficheros XML. Pero cada vendedor tiene su propio producto y su propia forma de acceder a la información, por lo que la JSR-170 trata de resolver el problema de la estandarización.
En el mundo open source, Apache JackRabbit es la implementación de referencia.
La información es organizada en nodos de un árbol, teniendo cada nodo "atributos" o "propiedades" donde guardar los datos. Por ejemplo, para guardar información podríamos (ejemplo tomado de aquí):

Session session = JackrabbitPlugin.getSession();
Node rootNode = session.getRootNode();
Node blogEntry = rootNode.addNode("blogEntry");
blogEntry.addMixin("mix:versionable");
blogEntry.setProperty(PROP_TITLE, blogEntryDTO.getTitle());
blogEntry.setProperty(PROP_BLOGCONTENT, blogEntryDTO.getBlogContent());
blogEntry.setProperty(PROP_CREATIONTIME, blogEntryDTO.getCreationTime());
blogEntry.setProperty(PROP_BLOGAUTHOR, blogEntryDTO.getUserName());
session.save();

Con lo que lograríamos crear un nodo, hacerlo versionable (uno de los servicios de la JSR), llenarlo con nuestra información y guardarlo.

Nunca se sabe, quizás en un futuro próximo convenza a alguien para utilizar Jackrabbit. Deséenme suerte!

4 comentarios:

Ale Sarco dijo...
Este comentario ha sido eliminado por un administrador del blog.
Ale Sarco dijo...

Justamente el otro día me llegó una oferta de trabajo para trabajar con JSR-170 (claro que aunque ya había leído sobre esto, tuve que ir a buscar a Google para ver que era exáctamente JSR-170, la verdad que estos códigos me resultan casi imposibles de recordar, apenas puedo con tantas palabras que empiezan con j).

phede dijo...

Llevo unos días leyendo la especificación JSR-170 a ver si tengo tiempo de implementar el código necesario para que Content Server sea accesible a través de un API estándar. FatWire Content Server es un CMS y de momento no implementa JCR... Quizá pronto lo consiga :-)

nimind dijo...

Hola, yo estoy usando Alfresco, que se basa en la mism filosofía, lo que no creo es que siga la JSR-170 por lo que veo. Tengo que verlo en más profundidad.