Le formulaire a été soumis avec succès.
Vous trouverez de plus amples informations dans votre boîte aux lettres.
Sélection de la langue
Dans le monde numérique d'aujourd'hui, le maintien d'un avantage concurrentiel exige des processus d'entreprise rationalisés et efficaces. L'automatisation apparaît comme une solution clé pour y parvenir. Selon Statista, le marché de la gestion des processus d'entreprise (BPM) est attendue et atteindra une taille de 14,4 milliards de dollars américains d'ici 2025. La popularité et la demande croissantes d'outils BPM tels que Camunda, connus pour leur flexibilité et leur évolutivité, témoignent de cette tendance. Alors que les entreprises recherchent des outils fiables pour optimiser leurs opérations, Camunda apparaît comme un précurseur, ouvrant la voie à des solutions d'automatisation innovantes et tolérantes aux pannes dans l'industrie.
En termes simples, Camunda est une plateforme open-source pour l'automatisation des flux de travail et des décisions qui réunit les utilisateurs professionnels et les développeurs de logiciels. Grâce à son ensemble robuste d'outils et de fonctionnalités, Camunda permet de concevoir, de mettre en œuvre et d'optimiser les flux de travail BPMN (Business Process Model and Notation), ce qui rend les opérations commerciales plus fluides et plus transparentes.
Trois acteurs clés ont remodelé le paysage de la gestion des processus d'entreprise : Camunda, Spring Boot et BPMN. Chacun d'entre eux s'est taillé une place à part, offrant des fonctionnalités uniques qui répondent à des facettes distinctes de la gestion des processus. Cependant, lorsqu'ils sont combinés, ils se transforment en une puissance inégalée, capable de révolutionner les opérations des entreprises numériques.
Camunda: Il ne s'agit pas d'un outil de plus dans la vaste boîte à outils BPM, mais d'un outil qui se démarque. Plate-forme robuste à code source ouvert, Camunda se spécialise dans l'automatisation des flux de travail et des décisions. Son objectif premier ? Fusionner de manière transparente les mondes des stratèges commerciaux et des développeurs de logiciels. Ce faisant, il garantit que la conceptualisation, la conception et la mise en œuvre des processus d'entreprise sont efficaces, transparents et cohérents.
Spring Boot: Spring Boot prend la force du cadre du ressort et les élève. En offrant une méthode simplifiée pour créer des applications Java autonomes, il est devenu la référence pour les développeurs souhaitant minimiser le code standard et plonger directement au cœur des fonctionnalités spécifiques au projet. Sa puissance réside dans sa flexibilité et son approche de convention sur la configuration, qui défend l'idée de valeurs par défaut intelligentes. Cette approche permet aux développeurs de créer des applications évolutives plus rapidement, garantissant une livraison rapide et des performances constantes.
BPMN: Si l'on devait personnifier le BPMN, ce serait le linguiste éloquent du monde des affaires. En tant que norme mondialement reconnue, le BPMN fournit un vocabulaire visuel pour la rédaction des processus d'entreprise, les rendant facilement compréhensibles pour un large éventail de parties prenantes. Ce langage universel garantit que les nuances techniques d'un processus sont déchiffrables à la fois par le codeur avisé et par le stratège commercial, ce qui favorise les dialogues collaboratifs et une prise de décision plus éclairée.
La synergie entre les capacités d'automatisation de Camunda, la facilité de développement de Spring Boot et la notation normalisée de BPMN offre aux entreprises un trio dynamique. Ensemble, ils garantissent que les schémas BPM passent de simples constructions théoriques sur papier à des mises en œuvre concrètes dans le monde réel. L'objectif final ? Cultiver des processus d'entreprise agiles, résilients et parfaitement alignés sur les exigences en constante évolution du paysage de l'entreprise numérique contemporaine.
Pour ceux qui ne connaissent pas le BPMN, il est essentiel de comprendre ses composants essentiels. Ces composants constituent la base de tout diagramme BPMN.
Ils signifient que quelque chose se produit au cours d'un processus. Les événements peuvent commencer, interrompre ou terminer un flux et sont souvent représentés par des cercles.
Les passerelles gèrent la prise de décision au sein du processus. En fonction des conditions, elles contrôlent le flux du processus, généralement représenté par des losanges.
Les activités représentent le travail en cours. Elles peuvent être des tâches ou des sous-processus et sont affichées sous forme de rectangles arrondis.
Ces éléments, notamment les flux de séquences, les flux de messages et les associations, illustrent la séquence des processus et le flux des messages.
Ils classent les éléments BPMN en fonction du rôle (par exemple, gestionnaire, comptable) ou du système (par exemple, un système ERP).
Ils offrent des informations supplémentaires sur le processus. Les artefacts courants sont les objets de données, les groupes et les annotations.
Comme toute solution technologique, Camunda présente un mélange d'avantages et de défis. Voici un aperçu complet de ses avantages et de ses inconvénients.
Camunda est conçu pour que les développeurs et les analystes parlent le même langage, mais la réalité intervient souvent.
Les microservices tombent en panne, les utilisateurs saisissent des données incorrectes, tout peut arriver. Dans ce cas, le beau diagramme analytique commence à être agrémenté de divers gestionnaires d'erreurs, d'enregistreurs et de voies alternatives. L'analyste conçoit un schéma magnifique, succinct et compréhensible. Il comporte quelques délégués et fournit des chemins logiques pour le déroulement du processus dans diverses circonstances. C'est à cela que ressemble un schéma provisoire lorsqu'il arrive entre les mains d'un développeur :
Cependant, il y a des inconvénients. Un tel schéma peut contenir une brève description de la tâche, comme "vérifier le client", qui implique plusieurs étapes, une prise de décision basée sur chaque résultat et la compilation des décisions dérivées en un résultat unique, avec éventuellement le transfert ultérieur de ce résultat vers des systèmes externes.
Il est clair qu'à ce stade, les gestionnaires d'erreurs, les enregistreurs et les éléments du service technique apparaissent sur le diagramme ou dans le code. Ainsi, une tâche "analytique" dans l'implémentation Java devient volumineuse et complexe, ou le nombre d'étapes du schéma augmente, chacune étant accompagnée de gestionnaires et de voies alternatives. En conséquence, le schéma devient rapidement alambiqué, difficile à soutenir et à modifier, et l'ajout d'une nouvelle fonctionnalité peut nécessiter la restructuration d'une grande partie du schéma et du code des délégués. En fait, il contient un grand nombre d'éléments identiques.
Voici comment le schéma précédent pourrait se présenter dans le cadre d'un déploiement réel:
Il est clair que le système s'est étendu et est devenu plus lourd. Mais il y a des avantages : toutes les tâches sont devenues atomiques et des branches de comportement en cas d'erreur sont apparues.
Si nous essayons de séparer et d'encapsuler le schéma et la logique commerciale du code Java, nous pouvons faire ce qui suit:
Pour faciliter l'utilisation du produit, il est préférable de décomposer le schéma en tâches atomiques, de réduire le volume total des éléments du schéma, de diminuer le nombre de gestionnaires de services, de réduire le volume du code Java de chaque délégué et de réutiliser les délégués universels, en procédant à un remaniement instantané lorsque cela s'avère nécessaire. Tout cela implique automatiquement l'écriture de tests unitaires pour tous les délégués et les chemins principaux du processus.
Si l'on examine attentivement l'application du processus et que l'on analyse ses nœuds, on peut voir de nombreuses fonctions répétitives : requêtes vers des systèmes externes, journalisation, gestion des erreurs, envoi de rappels, etc. En d'autres termes, il convient d'évaluer de manière critique l'application du processus et d'identifier les objets qui peuvent être facilement encapsulés... Mais dans quoi ? Dans du code Java ? Non, ce serait illogique, car dans ce cas, le schéma serait étroitement lié à son implémentation en Java. Dans cette situation, il est logique d'envisager des pools de processus.
Un pool de processus est un schéma de processus séparé qui aura son propre contexte. Il convient de noter qu'il est pratique d'extraire des éléments atomiques de fonctionnalité du processus principal dans ces pools, ainsi que tous les moments répétitifs : envoi de notifications, demandes à des systèmes externes, etc.
Il peut y avoir de nombreux pools de processus, et il serait logique de les regrouper par thème. Par exemple, les requêtes vers un microservice particulier, les alertes, l'envoi de diverses notifications. L'interaction entre ces pools peut être facilement mise en place en utilisant la messagerie Camunda. Chaque fois qu'un tel pool est appelé dans le moteur Camunda, un certain message est transmis contenant un en-tête conditionnel et le numéro du processus parent pour le retour d'une réponse, ainsi qu'un ensemble de données nécessaires pour le fonctionnement de ce petit pool spécifique.
Nous voyons ici comment le processus principal (en bas) envoie un message auquel le starter d'un autre pool est abonné. Lorsque l'événement se produit, le second pool démarre une nouvelle instance du processus, effectue une requête et renvoie une réponse au processus principal, après quoi il s'achève avec succès. Pendant ce temps, le processus principal attend l'événement de réponse du pool externe auquel il a envoyé une demande. Lorsque le message arrive, le processus se poursuit. S'il n'y a pas de réponse dans l'intervalle de temps spécifié, le processus comprend que le calcul externe n'est pas disponible ou a échoué, et se termine.
Ce qu'il offre :
Avec cette division, le processus est toujours dans un état strictement unique : soit la réponse est arrivée, soit le processus a attendu et s'est terminé. Pour les entreprises, la manière dont le processus s'est terminé est importante : il s'agit d'une erreur ou non. Mais il s'agira d'une conclusion correcte, et non d'un incident. C'est important parce qu'un processus qui n'est pas bloqué dans un incident ne "consomme" pas de ressources et que les erreurs peuvent être facilement enregistrées, les statistiques rassemblées, les alertes mises en place et analysées.
Ici, nous pouvons voir que dans le pool externe, plusieurs tâches sont appelées simultanément. Approfondissons ce point.
Camunda permet l'exécution simultanée de branches de calculs de processus. À cette fin, il existe une passerelle spéciale appelée Parallel Gateway, qui permet de diviser le flux en parallèles ou de fusionner plusieurs calculs parallèles en un seul flux. Il est clair que pour accélérer le flux d'un processus, il serait avantageux de déléguer certaines tâches à des threads parallèles. Si la logique est indépendante, elle peut être exécutée en parallèle, par exemple en adressant des demandes simultanées à des systèmes externes et en attendant les réponses de tous ces systèmes à la fois :
Chaque fois qu'il y a une telle passerelle, il y a des frais généraux associés à la création de nouveaux fils de discussion pour la division des tâches et à la fusion des résultats. On peut rencontrer diverses exceptions de verrouillage et, bien sûr, il n'est pas toujours nécessaire ou justifié d'agir toujours de cette manière, en particulier sans test, mais les avantages sont évidents.
Dans le cas d'une exécution séquentielle, le temps d'exécution total est égal à la somme des temps d'exécution de chaque opération. En revanche, dans le cas d'une exécution parallèle, il est égal au temps d'exécution de l'opération la plus longue. Compte tenu des conditions de réponses non instantanées de sources externes, de tentatives et d'échecs, cette différence est loin d'être insignifiante. Un autre avantage indéniable est la forme de "tentatives gratuites", c'est-à-dire que pendant que la requête la plus longue est exécutée, les autres tâches ont hypothétiquement la possibilité d'échouer plusieurs fois et d'essayer de refaire leurs actions sans impact sur le temps d'exécution global de la tâche.
Fauché ? Cela arrive. La version prête à l'emploi de Camunda a la capacité de réessayer une transaction qui a échoué. Par "transaction", nous entendons le mécanisme interne de Camunda pour l'exécution du code délégué. Le début d'une transaction peut être, par exemple, le marqueur "async before" ou "async after" d'une tâche dans le modeleur. Lorsque le moteur rencontre ce marqueur, il enregistre ses informations dans la base de données et démarre un nouveau thread asynchrone. Ce point est important. Pour aller plus loin, par "transaction", nous entendons la section d'exécution entre les appels à la méthode .complete() dans TaskService, suivie de l'enregistrement des informations dans la base de données. Ces transactions, comme les autres, sont atomiques.
Lorsqu'une exception technique survient, c'est-à-dire toute erreur non commerciale, par exemple la division par zéro et l'oubli d'une vérification nulle, la transaction effectue un retour en arrière et tente de recommencer. Par défaut, elle le fait trois fois consécutivement sans aucune pause. Une tentative de réessai commence lorsqu'une exception normale survient, ce qui, dans le monde BPMN, est appelé une exception technique, et non une BpmnError. Une BpmnError qui survient arrête le processus sans aucune nouvelle tentative. Imaginez comment cela améliore la résilience du processus.
Il est logique de maximiser cette fonctionnalité. Par conséquent, sur chaque délégué qui demande un système externe, ces marqueurs sont placés, spécifiant le nombre de tentatives et la pause entre elles, et dans le code du délégué sépare la logique pour savoir quand le processus doit être terminé et quand il ne doit pas l'être. Il donne un contrôle total sur la gestion des exceptions et les mécanismes de réessai. En conséquence, le processus essaie de refaire plusieurs fois la tâche qui a échoué, et ce n'est qu'après une série d'échecs qu'il produit une erreur.
Le plus grand défi est peut-être la gestion des exceptions techniques et des erreurs liées à BPMN, ainsi que la conception de la logique de leur traitement pour un flux continu du processus. Nous avons déjà évoqué certaines erreurs liées à la gestion des réponses provenant de sources externes lorsque nous avons parlé de la division en pools de processus. Nous aimerions vous rappeler que l'appel même a été encapsulé dans un mini-processus distinct, et que le processus principal a soit reçu une réponse et poursuivi sa route, soit, en raison d'un dépassement de délai, suivi la voie "Je n'ai pas reçu de réponse".
Examinons maintenant ce tout petit processus :
Vous voyez le cadre? C'est un sous-processus. Il contient des tâches spécifiques et capture les erreurs provoquées par les tâches internes. De plus, sur de tels cadres, l'exécuteur de tâches est capable de créer une tâche pour la minuterie, qui fixe le temps d'exécution de tout ce qui se trouve à l'intérieur du sous-processus.
Comment cela fonctionne-t-il? Le flux d'exécution atteint le sous-processus, crée un traitement de temporisation parallèle et attend l'achèvement de ce qui se trouve à l'intérieur ou, si la temporisation est épuisée en premier, il suivra la voie de la temporisation. Si une exception est levée au cours du processus, que le cadre du sous-processus capture, le processus arrêtera son exécution sur la branche courante et suivra la branche d'erreur.
Il est également évident qu'il existe une option permettant de créer des envois de réponses pour les demandes critiques. Notez que la capture d'erreurs ne fonctionne que pour les BpmnError avec un code spécifique. Par conséquent, techniquement, il est essentiel d'attraper toute exception et de lancer une BpmnError avec le code requis, qui fonctionne pour l'événement ErrorBoundaryEvent.
La gestion des erreurs dans le processus principal fonctionne de la même manière. À partir de plusieurs tâches, on distingue des unités logiques qui peuvent être placées dans un cadre de sous-processus, avec un auditeur mis en place pour un code d'erreur spécifique. Mais il y a deux nuances à apporter. La première est que la création de plusieurs branches identiques avec une gestion des erreurs, qui ne diffèrent que par le code, n'est pas pratique. Si la stratégie de gestion des erreurs change ou si, par exemple, la journalisation est modifiée, il faudra revoir la conception de nombreux délégués sur le schéma, ce qui n'est pas souhaitable. C'est pourquoi on peut envisager d'utiliser des sous-processus basés sur des événements.
Il s'agit essentiellement d'un sous-processus distinct du pool de processus, qui ne démarre que lorsqu'un certain événement auquel il est abonné se produit. Par exemple, si vous abonnez un tel sous-processus à l'événement BpmnError avec un code, disons, MyCustomBusinessError, lorsque cet événement se produit, le gestionnaire sera déclenché et, une fois terminé, le processus se terminera correctement. Certes, il n'a pas abouti, mais il s'est terminé correctement. Dans ces sous-processus, vous pouvez également mettre en œuvre une logique de traitement différente pour le même événement en fonction de conditions externes, par exemple en notifiant éventuellement une erreur d'application lorsque le processus passe un point conditionnel.
La seconde nuance est beaucoup plus compliquée. Dans la réalité, le cycle de vie de chaque processus est probablement divisé en deux étapes : avant et après la génération d'un prospect. Si une erreur se produisait avant que les données ne soient formatées pour devenir un prospect, le processus pourrait probablement être interrompu, en notifiant les difficultés rencontrées. Une fois le lead généré, cela n'est plus possible.
Nous ne recommandons pas non plus de mettre fin aux processus si des obligations légales surviennent au cours du processus, par exemple si un contrat est signé. Comment gérons-nous ces erreurs? Certaines erreurs techniques, comme celles liées à l'indisponibilité de services externes, sont gérées par des tentatives automatiques dans un délai convenu à l'avance. Mais que se passe-t-il si le processus s'est bloqué, que les tentatives sont passées, mais que l'hypothétique microservice externe est toujours indisponible?
Nous en arrivons au concept de résolution manuelle ou, également connu sous le nom de compensations.
Comment cela fonctionne-t-il ? Toute erreur est détectée, les délégués ont la possibilité de réessayer si nécessaire, et si la chance ne leur sourit toujours pas, le processus passe en état d'erreur, mais avec le code approprié, par exemple COMPENSATION_ERROR. Ce code est pris en charge par un autre sous-processus basé sur les événements, qui traite, enregistre, notifie et, surtout, ne peut pas échouer de manière inattendue. Seulement là où il est conçu pour le faire, il lance une exception technique non rattrapable et s'écrase dans un incident.
Pourquoi procéder de cette manière ? Pour le suivi, vous pouvez utiliser EXCAMAD - un panneau d'administration externe pour Camunda, un analogue de Cockpit, avec des fonctionnalités puissantes. Il met en évidence en rouge les processus en cours d'incident. Ces processus peuvent être modifiés ou redémarrés à partir du point souhaité. Par exemple, vous pouvez placer la valeur de la variable nécessaire dans le contexte et redémarrer le processus à partir du point situé juste après le point problématique. Cette méthode est pratique, simple et permet de résoudre les problèmes manuellement avec un minimum d'efforts.
Réputée pour sa plateforme open-source et son interface conviviale, Camunda a permis à de nombreuses entreprises d'optimiser leurs flux de travail. Examinons quelques exemples concrets.
Münchener Hypothekenbank eG, la banque immobilière indépendante Camunda a décidé d'utiliser le moteur de flux de travail Camunda pour améliorer et automatiser ses processus internes, en particulier la gestion du courrier et la coordination interdépartementale des demandes de prêt. Auparavant, leur système était rigide, manquait de flexibilité et entraînait des complexités qui augmentaient les taux d'erreur.
Dans le cadre de son évolution vers une architecture de microservices basée sur Java, l'entreprise a choisi Camunda sur la base de recommandations internes et a travaillé en étroite collaboration avec WDW Consulting Group. Certains avantages obtenus immédiatement grâce à Camunda étaient des fonctions prêtes à l'emploi, tandis que d'autres nécessitaient davantage de développement. Cette transition a permis d'établir une liste de tâches centralisée utilisée par l'ensemble du personnel et d'assurer la flexibilité nécessaire pour maintenir les processus individuels sans en affecter d'autres.
Le résultat le plus notable a été une amélioration significative de la vitesse de traitement des demandes de prêt. Cette amélioration profite à la fois au personnel et aux clients finaux. Preuve de son succès, d'autres départements cherchent maintenant à adopter Camunda, et la banque a même embauché d'autres développeurs pour soutenir sa mise en œuvre.
SV Informatik, filiale de SV SparkassenVersicherung, est spécialisée dans les solutions informatiques personnalisées pour les compagnies d'assurance. Ils ont incorporé Camunda pour automatiser divers processus à travers les départements, ce qui a conduit à des gains de temps notables et à l'amélioration des temps de réponse aux clients. La société a adopté Camunda en 2018 comme solution à sa recherche d'un outil efficace de modélisation des processus d'affaires, en mettant l'accent sur l'amélioration des processus et le renforcement de la collaboration entre les TI et les autres départements.
Depuis sa mise en œuvre, Camunda a automatisé des tâches telles que les annulations de polices d'assurance automobile et les demandes de documents de police. Une réalisation notable a été le traitement automatisé 80% des rapports en ligne sur les dégâts causés par les tempêtes. Cela s'est avéré particulièrement utile lors des inondations et des tempêtes de 2021 en Allemagne. Des outils tels que Camunda Optimize et Camunda Cockpit facilitent le suivi et l'optimisation des processus.
En 2020, la Groupe SV, qui opère en Allemagne, en Suisse et en Autriche, a lancé une plateforme numérique innovante appelée "likeMagic" avec l'aide de Camunda. Cette plateforme a permis aux clients de vivre une expérience sans faille, de la réservation au départ, avec des résultats tels qu'un taux d'auto-inscription/de départ de 95% et un taux de satisfaction des clients de 9 sur 10. L'innovation a permis de réduire les besoins en personnel et d'intégrer des plateformes comme Airbnb de manière transparente. Conscient de son potentiel, SV Group a proposé "likeMagic" à d'autres prestataires de services d'accueil. En 2023, ils sont passés de 2 à plus de 30 clients dans la région DACH, avec des plans pour une plus grande portée européenne et l'objectif de 15 000 chambres d'ici la fin de l'année.
Le potentiel de transformation de Camunda ne réside pas seulement dans ses fonctionnalités de base, mais aussi dans sa capacité à redéfinir les opérations commerciales à un niveau fondamental. Associé à Spring Boot, il ouvre la voie à des intégrations transparentes et à une meilleure évolutivité. Il est essentiel de comprendre les rouages de BPMN pour tirer parti de tout le potentiel de Camunda. À mesure que les entreprises évoluent dans cette ère numérique, des outils comme Camunda se démarquent en offrant des solutions dynamiques qui peuvent pivoter et s'adapter à des besoins en constante évolution. Il ne s'agit pas seulement d'automatiser des processus, mais aussi d'innover dans les flux de travail, d'améliorer l'efficacité et d'obtenir des résultats tangibles qui font la différence. Embrassez la puissance de Camunda et laissez votre entreprise s'envoler vers de nouveaux horizons.
Notez cet article :
4.8/5 (45 commentaires)
Contenu connexe
Après avoir reçu et traité votre demande, nous reviendrons vers vous pour détailler les besoins de votre projet et signer un accord de non-divulgation pour assurer la confidentialité des informations.
Après avoir examiné les exigences, nos analystes et nos développeurs élaborent une proposition de projet avec l'étendue des travaux, le nombre de membre de l'équipe, les délais et les coûts des coûts.
Nous organisons une réunion avec vous pour discuter de l'offre et parvenir à un accord.
Nous signons un contrat et commençons à travailler sur votre projet le plus rapidement possible.
Contenu connexe
2007-2024 Innowise. Tous droits réservés.
Politique de confidentialité. Politique en matière de cookies.
Innowise Sp. z o.o Ul. Rondo Ignacego Daszyńskiego, 2B-22P, 00-843 Varsovie, Pologne
En vous inscrivant, vous acceptez notre Politique de confidentialitéy compris l'utilisation de cookies et le transfert de vos informations personnelles.
Merci !
Votre message a été envoyé.
Nous traiterons votre demande et vous recontacterons dès que possible.
Merci !
Votre message a été envoyé.
We’ll process your request and contact you back as soon as possible.