Au chapitre 14, nous avons expliqué l'intégration et l'utilisation d'Activiti et du moteur de règles. Pour être précis, l'intégration d'Activiti et du moteur de règles Drools. Après la sortie de la version Activiti6, Activiti a commencé à implémenter la spécification DMN. En d'autres termes, Activiti implémente son propre moteur de règles, même s'il n'est pas encore terminé, il a fallu un prototype. Ce chapitre décrira la spécification DMN et l'implémentation préliminaire du moteur de règles Activit.
Lorsque l'auteur a écrit le livre, le moteur de règles d'Activiti n'avait pas été officiellement publié. Aucune information pertinente n'a été trouvée dans les documents officiels et les API. Le contenu de ce chapitre a été rédigé par l'auteur en référence au code source du module du moteur de règles d'Activiti. . Dans les futures versions d'Activiti, le moteur de règles La mise en œuvre et les documents publiés peuvent entrer en conflit avec le contenu décrit dans ce livre. Les lecteurs sont encouragés à comprendre cette situation.
Le contexte d'émergence du DMNDMN est l'abréviation de l'anglais Decision Model and Notation, et sa traduction littérale signifie modèle de décision et graphiques. Selon le chapitre précédent, BPMN est une spécification de flux de travail publiée par OMG, et DMN est également une spécification publiée par OMG. Cette spécification est principalement utilisée pour définir des modèles et des graphiques pour la prise de décision commerciale. la dernière version est la 1.1, publiée en 2016.
BPMN est principalement utilisé pour standardiser les processus métier.La logique des décisions commerciales est définie par des spécifications telles que PMML.Par exemple, dans certains processus métier, plusieurs décisions sont nécessaires pour déterminer la direction du processus, et chaque décision doit être déterminée en fonction. à ses propres règles, et il peut y avoir une corrélation entre chaque décision. A cette époque, un écart apparaît entre BPMN et PMML. Avant l'émergence des spécifications DMN, les décideurs ne pouvaient pas participer à l'entreprise. Afin de combler les lacunes du modèle, la spécification DMN est ajoutée pour définir les spécifications et les graphiques de prise de décision. La spécification DMN est équivalente au pont entre le modèle de processus métier et le modèle logique de prise de décision.
Bien que DMN ne serve que de pont entre le flux de travail et la logique décisionnelle, en fait, la spécification contient également la partie logique décisionnelle et est également compatible avec le langage d'expression défini par la spécification PMML. En d’autres termes, le framework qui implémente les spécifications DMN aura également la capacité de traiter les règles métier.
Activiti et baveActiviti en tant que moteur de workflow n'est pas comparable au moteur de règles Drools. Ils sont plus complémentaires. Cependant, actuellement Activiti implémente la spécification DMN et Drools implémente la spécification PMML. Cela signifie que le moteur de travail d'Activiti fonctionne une fois la règle terminée. Le moteur sera également inclus. Selon la spécification DMN, l'implémenteur de la spécification DMN fournira également la prise en charge de PMML. En conséquence, le moteur de règles d'Activiti et Drools seront en compétition.
JBoss dispose du moteur de workflow jBPM et du moteur de règles Drools lui-même est un moteur de workflow couplé au moteur de règles ajouté dans cette mise à jour, on estime que dans un avenir proche, Activiti sera en mesure de réaliser le maximum dans les domaines. du moteur de workflow et du moteur de règles. Rivaliser avec JBoss.
Échantillon XML de DMNDMN définit principalement le modèle de prise de décision. Semblable à la spécification BPMN, la spécification DMN publiée par OMG contient les contraintes XML correspondantes. La version actuelle d'Activiti implémente la partie décision, ce chapitre décrit donc uniquement la partie décision dans DMN. Pour les documents XML DMN, le suffixe du nom de fichier est généralement dmn. La liste de codes 15-1 est un simple document DMN.
Liste de codes 15-1 : codes1515.1sample.dmn
Le document XML dans la liste de codes 15-1 définit un nœud de décision, qui contient un paramètre d'entrée, un résultat de sortie et deux règles. Notez que le code en gras dans la liste des codes utilise la méthode startWith, qui définit que si la chaîne de paramètre commence par "Angus", la première règle sera déclenchée, et si le caractère de paramètre commence par "Paris", la deuxième règle sera déclenché. La description de chaque élément du document XML sera décrite dans les chapitres suivants.
L'article est réimprimé de la communauté Open Source Chine [http://www.oschina.net]Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!