Próximas novedades en DQL y Domino: Posibilidad de Joins y ... ¡Transacciones!

El servidor HCL Domino sigue su camino para ser una de las bases de datos documentales de referencia en el mercado actual. A las características ya conocidas por todos (Replicación, compatibilidad con versiones antíguas, varios niveles de seguridad, …) en las últimas versiones se unió el lenguaje DQL para obtener datos de una manera mas cómoda y eficiente. En el pasado webinar de OpenNTF, John Curtis anunciaba los próximos cambios en los que están trabajando y que muy probablemente vengan en la nueva versión de Domino.

Un nuevo objeto en Domino: Result Processing

Tanto en Lotusscript como en Java (Quiten el “Notes” inicial del nombre de la clase para su equivalente), aparecerá disponible una nueva clase llamada “NotesQueryResultProcessor”.
Objetos de esta clase podrán trabajar sobre varias colecciones de documentos de tipo NotesDocumentCollection y añadirles una funcionalidad nunca vista hasta ahora en nuestro servidor Domino. Estas colecciones de documentos, pueden ser obtenidas de una búsqueda db.search, obteniendo los unprocessedDocuments, búsqueda Fulltext, … ¡desde distintas bases de datos!
Esta nueva clase, con ayuda de la creación de una vista interna (Que podemos persistir para futuras consultas o simplemente crearla “ad hoc”) permite que podamos combinar los datos de estas colecciones y mostrarlos ordenados, aplicando (o no) una normalización previa e incluso hacer la operación “JOIN”, más típica de las bases de datos relacionales.

Nueva Clase NotesQueryResultProcessor

Además, a la hora de procesar estas colecciones, podemos devolver los datos en forma de esta propia vista interna o en forma de “streams” (Utilizando el formato JSON), lo que nos permitiría obtener la primera “fila” de datos aún cuando la vista no se ha calculado por completo.

Salidas de la clase NotesQueryResultProcessor

En palabras de John Curtis, esta última opción garantiza una gran rapidez en el proceso comparada con la manera tradicional.

¡Transacciones en Domino!

Otra de las características propias de las bases de datos relacionales que no teníamos disponible en Domino es la capacidad de hacer transacciones.

Transacciones en Domino

Las tan utilizadas órdenes en otros sistemas de base de datos como COMMIT y ROLLBACK van a estar disponibles en Lotusscript y Java con sendos métodos a nivel de objeto NotesDatabase.

Low code? Not so much…

Aunque no se añaden mejoras en la estructura del lenguaje Lotusscript, HCL sí que añade nuevas clases con funcionalidad, algo que echábamos de menos en las últimas versiones de la plataforma cuando todavía estaba en manos de IBM.
Tanto las transacciones como sobre todo la nueva clase de proceso de NotesDocumentCollection, podrían (y deberían) utilizarse no solo en escenarios donde se necesite gran velocidad de obtención de datos, sino de manera general.

Este nuevo proceso de colecciones añade una nueva visión a la hora de de recuperar y procesar datos. Debido a la cantidad de opciones que ofrece (muchas de ellas nunca antes vistas en un servidor Domino), quizás su uso podría ser complicado y no ser el más eficiente en cada caso. En mi opinión, HCL debería esforzarse en proveer webinars, buenas prácticas y ejemplos. Seguramente lo hagan en su recientemente anunciada HCL Software Academy.

AppDevPack, Producto Mínimo Viable

Comentarios

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×