Sobra decir la importancia que en las fases iniciales de cualquier proyecto tiene el diseño de sus procesos. A través de este post, os acercamos nuestra visión sobre cómo diseñar un buen proceso de composición de documentos, intentando abstraer al lector de una solución final y cediéndole la oportunidad de poner nombres a los elementos que vaya identificando a través de su lectura.
Un proceso básico de composición de documentos ha de disponer de unos principios elementales de diseño:
- Diseño orientado a objetos/marcas
- Separación entre el diseño de los datos y el diseño de los documentos
- Separación entre el diseño de las plantillas y los formatos de salida producidos
Esto permite, en primera instancia, realizar un diseño individual de los objetos para que estos sean reutilizados en múltiples plantillas. Adicionalmente, la separación entre el documento, los datos y la renderización del diseño generado, habilita por un lado la posibilidad de ejecución concurrentemente de los procesos de obtención de datos y por otro el aprovechamiento de tecnologías basadas en el cacheo de información durante las primeras fases de la composición (dado que el diseño de los objetos no representa una información con alto grado de variabilidad en contraposición con los datos).
Representación simplificada de las fases básicas de composición:
Para la definición de las plantillas y objetos, deberá utilizarse un lenguaje de marcado estándar con la finalidad de describir tanto la estructura como la presentación de documentos. Este hecho, entre otras cosas, permitirá el intercambio de estos elementos con terceros sin necesidad de desarrollar mecanismos de conversión y/o adaptación. Posteriormente el proceso de composición convierte un archivo fuente de texto plano combinado con etiquetas de marcado, en un documento, en formato estándar también, de alta calidad tipográfica que permitirá su renderización en múltiples formatos de salida.
En resumen podríamos concluir que, a través del uso de formatos estándar, del aprovechamiento de los mecanismos propios del sistema y de una ordenación a medida de los procesos de composición, estableceremos las bases para que nuestro “compositor de documentos” devuelva unos tiempos de respuesta óptimos y sea fácilmente escalable bien a través de la ampliación de recursos ó mediante la especialización de máquinas para cada una de las fases.