# Ordonnancement de travaux informatiques

Il s'agit de l'automatisation de traitement d'une tâche informatique.

## Description
### L'ordonnancement de travaux informatiques

Concerne exclusivement la manière de lancer des traitements ("batch") sur un ou plusieurs composants de son système d'information au moyen de progiciels spécifiques. Ces progiciels allient la théorie de l'ordonnancement avec des techniques propres à l'informatique (queues de traitements, gestion de fichiers, équilibrage de charge…). Dans la littérature, est généralement associé au mode dit "évènementiel".

### La planification de tâches informatiques

C'est en général l'étape initiale permettant de définir des lots de traitements homogènes dépendant de conditions calendaires. Ainsi, les lots de traitements pourront être différents les jours ouvrés de ceux des jours de clôture mensuelle. Dans la littérature, est généralement associé au mode dit "calendaire".
Sans que cette liste soit limitative, la mise en place d'une solution d'ordonnancement de travaux informatiques doit permettre d'atteindre tout ou une partie des objectifs suivants sur des systèmes d’informations hétérogènes :
* Contrôler les applications
* Optimiser voire réduire les temps de traitement
* Garantir une meilleure distribution des ressources
* Minimiser les erreurs de lancement de travaux ("jobs")
* Fournir une documentation à jour pour les collaborateurs
* Suivre graphiquement de manière centralisée les traitements
* Limiter les interventions humaines dans les chaînes de production
* Établir des dépendances sans limitation entre les processus et les évènements
* Lancer des traitements sur une architecture centralisée et / ou sur une architecture distribuée
* Réduire la dépendance des données et résultats de traitements à la disponibilité des collaborateurs
* Disposer d'un référentiel et d'une solution commune à toute la production pour assurer souplesse et rapidité
* Garantir une disponibilité de la production en proposant des scénarios de reprise et un fonctionnement en mode dégradé

## Planification

La planification permet de déterminer ce qui doit être réalisé et comment aboutir à cette réalisation. Il s'agit donc de répartir ses traitements dans un temps défini. Elle est souvent confondue avec l'ordonnancement alors qu'elle n'en représente que la première étape. La confusion provient principalement de la traduction du terme scheduler qui désigne la commande cron (UNIX ou Linux) ou la commande at (Windows) ; or l'ordonnanceur n'est pas un « task scheduler » mais un « job scheduling ».
Pour planifier des traitements, on peut se contenter de définir des heures de lancement. On décalera éventuellement les horaires pour aboutir à une répartition optimale. La gestion devient problématique lorsque les durées de traitements sont variables.

## Ordonnancement

L'ordonnancement permet de définir des enchaînements entre les traitements. Ainsi, on ne lance plus un traitement à une heure définie mais à la suite d'un autre traitement. La notion de traitement peut être assez générale puisqu'il s'agit de toute commande exécutable sur une ou plusieurs machines informatiques.
Les systèmes évolués permettent des enchaînements conditionnés suivant les types de fin (normale, anormale, spécifique ou quelconque) de traitement(s) précédent(s), la détection et / ou le contenu de fichier(s), l'arrivée de mail(s) avec ou sans pièce(s) jointe(s), un traitement sur une base de données, …