PoC éditique
Utilisation des moteurs de template FreeMarker et Thymeleaf pour produire des documents au format PDF

Contexte (1/2)

- Décommissionnement Starjet (OPT / CSB)
- Dilution & perte de compétences Starjet
- Différentes pistes "commerciales"
Contexte (2/2)

Recherche d'une solution alternative :
- Intégrée au socle de développement de l'OPT
- Performante
- Economique
ALTERNATIVE

L'OPT souhaite étudier les moteurs de template, objet de cette étude, et plus particulièrement FreeMarker.
L'OPT souhaite également lever un certains nombre de difficultés éventuelles :
- l'intégration de code-barre
- l'intégration de graphiques (histogramme)
- le marquage optique pour l'impression et la mise sous pli.
ETUDE

La présente étude devra :
- confirmer la faisabilité technique
- fournir un PoC à minima
- estimer les coûts de mise en oeuvre
FAISABILITE TECHNIQUE


fonctionnement général
Outils candidats

Par ordre alphabétique :
- FreeMarker,
- Mustache,
- Pebble,
- Rocker,
- Thymeleaf,
- Trimou, et
- Velocity
Outils candidats


Outils candidats


Outils candidats

Top 3 (par ordre alphabétique) :
- FreeMarker
- Mustache
- Thymeleaf
Levée des difficultes

Remarques générales :
- Utilisation de HTML / CSS / JS vs. Java (1)
- Limitation de la prise en charge CSS
(1) d'un commun accord avec l'OPT, l'utilisation du JavaScript est à proscrire.
Levée des difficultes


fonctionnement détaillé utilisé dans le cadre du PoC
Levée des difficultes

- Code-barre : cf. code
- Histogramme : cf. code
Compte-tenu des limitations de la prise en charge CSS level 3, ces deux points sont résolus par une génération d'image à la volée avec les outils idoines dans le code Java. Les images sont ensuite insérées dans le template.
Une attention particulière doit être apportée aux dimensionnement du code-barre pour une lecture optique efficace.
Levée des difficultes

- Marquage optique (OMR)
C'est l'opération qui pose le plus de difficultés et qui est dépendante de la solution utilisée par le prestataire en charge de l'impression et de la mise sous pli, la CSB en l'occurrence.
Après contact pris auprès de M. Jean-Louis Billard de la CSB, celui-ci nous confirme que cette opération pourrait être prise en charge par la CSB, sous réserve de disposer d'un élément discriminant les différentes factures (code-barre ?).
Solution à privilégier.
Levée des difficultes

Mises en oeuvre supplémentaires (cf. code) :
- Utilisation des fragments (réutilisabilité).
- Tableau avec rupture sur plusieurs pages (FreeMarker).
COUTS

- Templating : de 1j à 5j
- Traitement des données et liaison avec le template : de 1j à 5j
- Génération PDF : 0,5j
- Temps hors dév / Maintenance : % tps dév / abaques OPT ?
- OMR : délai de 15 jours / template pour que la CSB soit opérationnelle
Benchmarks

Cf. tableaux des résultats JUnit / JMH dans le rapport d'étude.
Bien que Thymeleaf dispose de meilleurs résultats JUnit que FreeMarker, ce dernier montre une meilleure homogénéité dans l’évolution des temps d’exécution sur des gros volumes.
JMH confirme ces résultats avec un temps moyen d’exécution par opération apportant des gains de plus de 20 % pour FreeMarker (0,044 s/op) par rapport à Thymeleaf (0.057 s/op). Les résultats JMH montrent aussi des marges d’erreurs moins importantes sur FreeMarker.
CONCLUSION


MERCI de votre attention

QUESTIONS


RedStone / OPT - PoC Editique
By Didier Vanderstoken
RedStone / OPT - PoC Editique
- 383