Il n'y a qu'un seul avantage réel, mais énorme: la
séparation des préoccupations .
Ainsi, au lieu que la logique d'orchestration des processus soit intégrée dans notre système, elle devient une configuration externe. Une carte, en gros. Vous pouvez le changer (beaucoup plus) indépendamment, vous pouvez avoir plusieurs processus, plusieurs versions de processus, plusieurs versions de plusieurs processus s'exécutant en même temps, et c'est tout prêt à l'emploi dans n'importe quelle solution décente.
Historiquement, le concept de SoC a gagné à plusieurs reprises - à partir du principe Unix «faites une chose, mais faites-le bien», et être appliqué encore et encore - comme avoir des composants serveur dédiés comme ESB, différents systèmes de persistance, la mise en cache, l'équilibrage de charge , la surveillance, comme la séparation du CSS du HTML, etc.
Votre processus métier et ses règles de flux sont souvent orthogonaux à vos données, aux "écrans" de l'interface utilisateur ou à la "hiérarchie" des utilisateurs. Il est donc parfaitement logique de le développer et de le modifier séparément des autres aspects du système. C'était la prémisse sur laquelle BPM est apparu au début des années 1990.
Depuis lors, de nombreux outils et langages ont été créés pour prendre en charge ce concept, le plus connu étant le BPMN - un langage graphique pour créer des "organigrammes" qui mappent directement aux processus. Alors que les gens se plaignent de sa grande taille et de sa lourdeur (ayant plus de 100 symboles dans le vocabulaire) et préconisent des approches modernes comme le S-BPM (n'a que 5 symboles de base), la pratique actuelle de l'industrie consiste à s'en tenir au BPMN ou à ses dérivés, sous-ensembles ou frères et sœurs.
Vous n'avez pas l'air satisfait de BPMN:
Les programmeurs semblent faire un travail considérable dans la couche des lignes et des boîtes, ce qui pour moi ressemble à un langage de programmation visuelle vraiment merdique et vraiment basique.
Mais ce n'est pas si mal) Il y a une théorie derrière. Et la version 2.0 a pris un bon aperçu des lacunes de 1.0.
Si vous allez aussi loin, pourquoi ne pas simplement utiliser une sorte de langage de script?
Le paradigme impératif et les langages de script ne sont pas toujours la meilleure réponse. Comme vous l'avez probablement vu dans les langages déclaratifs (comme HTML, CSS, SQL, Drools ou ceux internes de Nginx, Graddle et Maven, Puppet, etc.), le code résultant peut être beaucoup plus petit et plus propre qu'une version écrite en " langage décent, comme Java ou C ++ ".
Quant à votre autre point:
pour autant que je sache, ce sont des langages de programmation visuels à ce stade, avec des conditions et des boucles.
avez-vous regardé les événements et déclencheurs ? BPMN est une langue et vous devez l'apprendre avant de l'utiliser, ou au moins vous familiariser avec elle.
Sous le capot, BPMN est XML, vous pouvez donc le modifier à la main ou le générer. Et vous pouvez les contrôler par version, car XML est basé sur du texte. Cependant, le simple fait d'avoir un XML qui peut être traduit en organigrammes ne semble pas que son goona vous aide, et c'est correct - écrire votre propre analyseur ou éditeur pour cela est une tâche difficile et coûteuse avec des avantages discutables.
Heureusement, il existe déjà des outils sur le marché qui font exactement cela.
Activiti est gratuit et très populaire auprès des développeurs et des propriétaires d'entreprises, en raison de son prix initial ( zéro ), de la disponibilité des informations et de l'humilité. Le dernier point est vraiment unique, car Activi se concentre uniquement sur la gestion de vos processus commerciaux, sans essayer de vous associer à des solutions globales. De plus, il est ouvert - il vous suffit donc de connaître Java et REST pour le mettre en service. L'inconvénient est que le côté client, la logique d'intégration et d'application / métier et l'ensemble de l'architecture sont laissés au développeur, donc si votre équipe de développement est faible - préparez-vous à l'échec. Le coût total de possession peut être étonnamment élevé pour un outil gratuit ;)
De l'autre côté du spectre se trouve Pega (Pega PRPC), le roi régnant des systèmes BPM (selon Gartner et Forester), qui semble étonnamment bon pour son âge. Ce monstre évier de cuisine est même capable de CRM, d'OCR et (si je ne me trompe pas) de capacités de reconnaissance vocale, d'analyse prédictive, de gestion des règles métier et de l'éditeur d'interface utilisateur WYSIWYG. Cependant, cela vient avec un prix sérieux. Non seulement cela coûte une fortune, mais tout le développement se fait au sein d'une application Web, ce qui signifie que vous devez utiliser un navigateur, qui est IE8 (plus certains plugins, ainsi que des hacks laids, comme utiliser Excel pour éditer des tableaux de données). De plus, l'édition Java, Javascript ou HTML / CSS se fait également avec un navigateur Web - alors dites au revoir aux tests unitaires, à la mise en évidence du code IDE, à la refactorisation et à tous vos jouets de programmation que vous avez adoré.
Bon côté? vous pouvez implémenter un système complexe DANS LES SEMAINES [ PDF , voir page 22]. Et oui, le résultat n'est pas garanti.
IBM a récemment quelque peu (accoring au rythme du temps de l' entreprise) ont acheté Lombardi, et offre maintenant une solution très compétitive (mais alors vous devrez acheter tout ibm , you'know). Appian est un jeune vendeur qui a des idées intéressantes et des commentaires positifs, mais la façon dont ils sont écrits (deux langues DSL supplémentaires en plus d'une langue visuelle) ne me plaît tout simplement pas.
Il y a d'autres acteurs et leurs solutions. La plupart d'entre eux sont tout simplement horribles. Comme - vos yeux, votre cerveau et votre cœur saignaient littéralement, quand vous les regardez simplement. Alors, faites confiance à vos tripes et ne faites pas que vos développeurs et vos utilisateurs vous détestent.
Note de clôture:
Le système BPM est le même pour les processus, ce que Photoshop est pour les images. N'ayez pas peur que son visuel. Ne lui faites pas faire le travail qui ne lui convient pas (rappelez-vous les sites Web créés entièrement dans Photoshop, qui étaient presque impossibles à modifier?). Restez simple et ne faites pas de bugs;)