Processus métier scalable (arch)
De Wiki1000
Version du 23 avril 2013 à 09:27 par Syfre (discuter | contributions)
Modèle d'un processus métier
Le fonctionnement du processus :
- A partir de la sélection de l'utilisateur le processus construit un curseur sur la classe des objets à traiter.
- Le curseur filtre les objets sur :
- Les objets vérifiant l'état requis par le processus (par exemple les commandes livrables)
- Les objets vérifiant les sélections supplémentaires de l'utilisateur (par exemple les commandes du mois)
- Le processus démarre une transaction
- Le processus traite chaque objet retourné par le curseur
- Le processus commit la transaction.
Suivant les cas des variantes peuvent exister :
- Transaction unique pour l'ensemble de la sélection ou transaction objet par objet
- Regroupement des objets traités suivant des critères de rupture (par exemple les commandes d'un client)
Les problèmes avec ce modèle :
- Il n'est pas possible d'exécuter le processus simultanément sur plusieurs machines.
- Les différentes instances du processus s'exécuteraient sur les mêmes objets.
- Il n'est pas possible d'exécuter le processus au fil de l'eau
- La structure de traitement ne permet pas de dissocier facilement la sélection du corps du traitement
- Le traitement en une transaction unique limite le volume de donnée traitable.
Modèle d'un processus métier parallélisable
Ce modèle utilise une file d'attente pour stocker les objets traitables
- Dans une première étape les objets correspondant aux critères du processus et de la sélection sont insérés dans une file d'attente.
- Dans une seconde étapes les objets contenu dans la file d'attente sont consommés.
Les avantages de ce modèle :
- Il est possible d'exécuter simultanément plusieurs instances du processus
- Exécuter plusieurs instances du processus doit permettre d'améliorer les capacités du processus en volume et en performance
- Il est possible de structurer le processus pour permettre une exécution au fil de l'eau
Les inconvénients de ce modèle :
- Il n'est pas possible d'exécuter un traitement dans une transaction unique.
- Il n'est pas possible de compter à priori le nombre d'objet à traiter