Un sujet léger, celui des batchs, ou en français, des lots.
Si l'on demande au codeur qui passe, il en a peut-être entendu parler comme d'un reliquat du lait Gassy, et il vous dira probablement que cela implique à un moment de travailler sur des lots de données, d'où le nom "batch". C'est une explication qui paraît logique, après tout, qu'est-ce qu'on pourrait lotir d'autre ? Mais quelque chose ne va pas à la lecture de la documentation de Spring Batch ou de Jakarta Batch. Le mot "batch" apparaît partout, mais d'autres mots paraissent plus important : Job, Step, Task, Reader, Writer. D'autant plus importants qu'ils ont une définition claire, au contraire de ce mystérieux batch. Et ces documents parlent de concepts bien connus, le doute devrait être facile à lever. Et pour une fois, il l'est assez simplement, aucun chat tout pété ne tombe dans le panneau.
Cela remonte à l'époque contemporaine de l'OS/360, où l'on commençait à avoir suffisamment de puissance pour se permettre de commencer à se poser la question de la performance opérationnelle, c'est-à-dire de la bonne utilisation des ressources pour un but donné. On parle bien des années soixante. Quand on dispose d'un ordinateur c'est pour lui faire faire des choses, des choses qui réclament des données, sinon ça ne serait pas de l'informatique, mais juste une grosse calculatrice. Ces données vont être sur différents supports, différents lecteurs, il va falloir les manipulations des opérateurs des machines pour les charger, les sortir. Et il est aussi de bon ton que les différentes unités indépendantes, telles que les unités de contrôle des communications et l'unité de traitement, travaillent toutes en même temps. Sinon, à quoi sert cette indépendance si on s'attend l'un l'autre ?
Et c'est là qu'intervient la notion de batch : plutôt que de dire à la machine "va lire la bande", "exécute le traitement", "imprime le résultat", "passe au Job suivant", on lui donne des Jobs à faire, en lot, et c'est à l'ordinateur de se débrouiller avec ça.
C'est aussi bête que ça. On va avoir une petite intelligence, très artificielle, pour déterminer quoi exécuter en premier, solliciter l'humain pour qu'il charge les supports contenant les données, et arriver à cette occupation du système pour aller plus vite. Ce "batch" n'est pas là pour désigner un bout d'un lot de données, mais la capacité de la machine à s'organiser pour faire tout son travail.
Vous pouvez trouver le reste de la série sous l'article d'introduction.