Principe : Isoler le domaine métier (cœur) des infrastructures (bases de données, APIs, UI) via des ports (interfaces) et adapters (implémentations).
Avantages :
✅ Domaine métier pur → testable sans infrastructure (tests unitaires rapides)
✅ Indépendance technologique → changer de BDD ou framework sans toucher au domaine
✅ Testabilité élevée → mocker les ports (interfaces) facilement
✅ Évolutivité → ajouter des adapters (ex: WebSocket, gRPC) sans toucher au domaine
Principe : Organiser le code selon les Bounded Contexts (contextes délimités) métier.
Bounded Contexts identifiés :
| Bounded Context | Responsabilité | Entités Clés | Events |
|---|---|---|---|
| SIAS — Supervision | Gestion incidents, alarmes, supervision | Incident, Alarme, Tâche | IncidentCreated, AlarmeFired, TâcheAssigned |
| TICC — Télécommande | Commandes à distance, télémesure | CommandeDistance, Télémesure, Équipement | CommandeExecuted, TélémesureReceived |
| HAB — Habilitations | Gestion droits, profils, SSO | Utilisateur, Profil, Habilitation | UtilisateurCreated, HabilitationGranted |
| Référentiel — Commun | Sites, équipements, acteurs | Site, Équipement, Acteur | ÉquipementInstalled, ActeurUpdated |
Structure Package Recommandée (exemple SIAS) :
com.grdf.sias/├── domain/│ ├── incident/│ │ ├── Incident.java (Aggregate Root)│ │ ├── IncidentId.java (Value Object)│ │ ├── IncidentRepository.java (Port)│ │ ├── IncidentService.java (Domain Service)│ │ └── events/│ │ ├── IncidentCreated.java│ │ └── IncidentClosed.java│ ├── alarme/│ │ ├── Alarme.java│ │ └── ...│ └── tache/│ ├── Tache.java│ └── ...├── application/│ ├── usecases/│ │ ├── CreateIncidentUseCase.java│ │ ├── AssignTacheUseCase.java│ │ └── ...│ └── queries/│ ├── FindIncidentByIdQuery.java│ └── ...├── infrastructure/│ ├── persistence/│ │ ├── IncidentJpaRepository.java (implements IncidentRepository)│ │ └── entities/│ │ └── IncidentEntity.java (JPA @Entity)│ ├── messaging/│ │ ├── KafkaIncidentEventPublisher.java│ │ └── KafkaAlarmConsumer.java│ └── rest/│ └── ExternalApiClient.java└── presentation/├── rest/│ ├── IncidentRestController.java│ └── dto/│ ├── IncidentDto.java│ └── CreateIncidentRequest.java└── graphql/└── IncidentGraphQLResolver.java
Référentiel DSI – Utilisation de la Software Factory ABJ
Conformément au référentiel DSI GRDF “Utilisation ABJ – Software Factory”, l’ensemble des builds séparés (SIAS, TICC, core-shared) devront être intégrés dans la chaîne ABJ pour assurer la conformité aux standards d’intégration, sécurité et déploiement.
| Couche | Technologie | Version | Justification |
|---|---|---|---|
| Framework | Spring Boot | 3.3.x | Standard Java moderne, écosystème riche |
| JDK | OpenJDK (Eclipse Temurin) | 21 LTS | Support long-terme jusqu'en 2029, performances améliorées |
| Présentation | Angular ou React | 18.x / 18.x | SPA moderne, séparation frontend/backend |
| API | REST (Spring Web) + GraphQL (Spring GraphQL) | — | Flexibilité clients (mobile, web, intégrations) |
| Base de données | PostgreSQL | 16.x | Open source, performances, JSON support, TCO faible |
| ORM | Hibernate (via Spring Data JPA) | 6.4.x | Standard JPA, génération SQL optimisé |
| Migration DB | Liquibase | 4.25.x | Versioning schéma, rollback, support PostgreSQL |
| Messaging | Apache Kafka | 3.6.x (Confluent Platform 7.6) | Event streaming, haute performance, écosystème |
| BPM (optionnel) | Camunda Platform 8 | 8.4.x | BPMN 2.0, cloud-native, Zeebe engine |
| Sécurité | Spring Security + OAuth2/OIDC | 6.2.x | Standard, intégration Keycloak |
| IAM | Keycloak | 23.x | SSO, gestion utilisateurs, fédération LDAP/AD |
| Observabilité | ELK Stack (Elasticsearch, Logstash, Kibana) + Prometheus + Grafana | — | Logs centralisés, métriques, dashboards |
| Conteneurisation | Docker + Kubernetes | — | Déploiement cloud-native, scaling horizontal |
| CI/CD | GitLab CI ou GitHub Actions + ArgoCD | — | Automatisation build/test/deploy, GitOps |
| Tests | JUnit 5 + Mockito + Testcontainers | 5.10.x / 5.x / 1.19.x | TDD, tests d'intégration avec BDD réelle |
Caractéristiques :
✅ Séparation SIAS/TICC native : namespaces Kubernetes séparés, bases de données séparées
✅ Communication asynchrone : Kafka pour événements inter-domaines (ex: IncidentCreated → déclenche workflow TICC)
✅ Scalabilité horizontale : Kubernetes auto-scaling selon charge CPU/mémoire
✅ Haute disponibilité : 3 replicas API, PostgreSQL en réplication (streaming replication)
✅ Sécurité : OAuth2/OIDC via Keycloak, HTTPS obligatoire (TLS 1.3)
✅ Observabilité : Logs centralisés (ELK), métriques (Prometheus), dashboards (Grafana)
Méthodologie
Analyse via scripts/4_maven_analysis.sh avec extraction POM effectif
Génération arbres de dépendances (JSON + DOT)
Analyse bytecode via jdeps (JDK 11+)
Vérification hygiène via DepClean (unused dependencies)
Résultats SAT-PRE (app-pre-main)
| Métrique | Valeur | Interprétation |
|---|---|---|
| Dépendances directes | 35 | Volume standard pour application JEE |
| Dépendances transitives | 142 | Arbre profond → risque conflits |
| Duplications détectées | 28 versions en conflit | ⚠️ Ex: Hibernate 4.3.x vs 5.2.x |
| CVEs critiques | 3 (Liquibase 3.6.x, Commons-IO < 2.7) | 🔴 Mise à jour urgente |
| Dépendances inutilisées | 12 | Nettoyage recommandé |
Top 10 Dépendances Clés
x1. **Hibernate ORM** (version exacte inconnue — parent POM non résolu) - Usage : mapping JPA, génération SQL - Problème : version legacy (4.x ou 5.0.x) → upgrade vers 6.x recommandé
2. **Liquibase 3.6.x** (🔴 EOL — End of Life) - Risque CVE-2021-32682 (XML External Entity injection) - Action : upgrade vers 4.27+ obligatoire
3. **WebLogic EJB Client 12.2.x** - Usage : appels EJB distants, JNDI - Migration : remplacer par Spring REST clients
4. **Oracle JDBC 19c** (ojdbc8.jar) - Usage : connexion Oracle - Migration : remplacer par PostgreSQL JDBC 42.7.x
5. **JSF API 2.2** (Mojarra) - Usage : UI Components, Managed Beans - Migration : remplacer par Angular 18+ ou React 18+
6. **Primefaces 6.2** (UI Framework JSF) - Usage : composants UI avancés (DataTable, Charts) - Migration : remplacer par AG-Grid (Angular) ou Material-UI (React)
7. **Apache POI 3.17** (manipulation Excel/Word) - Usage : exports Excel, génération rapports - CVE : CVE-2019-12415 (XXE), CVE-2019-12411 (DoS) - Action : upgrade vers 5.3.0+
8. **Commons-FileUpload 1.3.2** - CVE : CVE-2016-1000031 (arbitrary code execution) - Action : upgrade vers 1.5+ ou remplacer par Spring MultipartResolver
9. **Jackson 2.9.x** (JSON processing) - CVE : CVE-2019-14540, CVE-2019-16335 (deserialization) - Action : upgrade vers 2.17.x
10. **Log4j 1.2.17** (⚠️ si présent — non confirmé) - CVE : CVE-2021-44228 (Log4Shell — critique) - Action : remplacer par SLF4J + Logback 1.5.xGraphe de Dépendances (Mermaid simplifié)
Systèmes appelants SAT-PRE/HAB
| Système | Type | Protocole | Usage | Fréquence | Propriétaire |
|---|---|---|---|---|---|
| SPQR | Système de Planification | SOAP/XML | Création incidents SIAS | Temps réel | GRDF SI Planification |
| SSOL | Système de Sollicitation | REST/JSON | Envoi alertes TICC | Temps réel | GRDF SI Clientèle |
| STIC | Système de Télécommande | JMS ActiveMQ | Commandes TICC | < 10 ms | GRDF SI Télécommande |
| Référentiel Compteur | Master Data | SOAP | Validation matricule compteur | Batch nuit | GRDF SI Référentiel |
| GED (Gestion Électronique Documents) | Archivage | WebDAV | Stockage PV intervention | Asynchrone | GRDF SI Archivage |
| Active Directory GRDF | Annuaire LDAP | LDAP/389 | Authentification HAB | Chaque login | GRDF IT |
Contrats d'Interface — Exemple SPQR → SAT-PRE
xxxxxxxxxx<!-- SOAP Envelope — Création Incident SIAS depuis SPQR --><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sat="http://grdf.fr/sat/ws/v1"> <soapenv:Header> <wsse:Security><!-- WS-Security token --></wsse:Security> </soapenv:Header> <soapenv:Body> <sat:CreateIncidentRequest> <sat:incident> <sat:type>FUITE_GAZ</sat:type> <sat:priorite>P1</sat:priorite> <sat:acteur>SIAS</sat:acteur> <sat:adresse> <sat:rue>12 Rue de la Paix</sat:rue> <sat:codePostal>75002</sat:codePostal> <sat:ville>Paris</sat:ville> </sat:adresse> <sat:compteurMatricule>GZ78459032</sat:compteurMatricule> </sat:incident> </sat:CreateIncidentRequest> </soapenv:Body></soapenv:Envelope>⚠️ Problèmes Identifiés
WSDL non documentés → 3 interfaces (SPQR, Référentiel Compteur, GED) sans contrat OpenAPI/WSDL accessible
WS-Security legacy → utilisation de certificats X.509 avec expiration manuelle (risque coupure service)
Pas de versioning d'API → modifications SPQR cassent SAT-PRE sans notification
Timeout non configurés → appels SSOL bloquants (observés jusqu'à 45s) → cascade failures
Recommandations Migration
| Interface Actuelle | Cible Option B (Greenfield) | Justification |
|---|---|---|
| SOAP/WS-Security | REST + OAuth2 + JWT | Standard moderne, meilleure traçabilité |
| JMS ActiveMQ | Apache Kafka | Scalabilité, replay, persistence |
| LDAP direct | OAuth2/OIDC via Keycloak | SSO unifié, MFA, révocation tokens |
| WebDAV | S3-compatible (MinIO) | Cloud-ready, versioning, lifecycle |
40+ Listeners JMS Identifiés (via Grep -i "@MessageDriven")
Top 5 Listeners Critiques
xxxxxxxxxx// 1. IncidentCreationListener — reçoit événements SPQR( activationConfig = { (propertyName = "destinationType", propertyValue = "javax.jms.Queue"), (propertyName = "destination", propertyValue = "jms/queue/IncidentCreation") })public class IncidentCreationListener implements MessageListener { public void onMessage(Message message) { // Parsing XML → Création Incident en base }}
// 2. TelecommandeListener — reçoit ordres STIC(destination = "jms/queue/TelecommandeOrders")public class TelecommandeListener implements MessageListener { // Exécution télécommandes TICC}
// 3. NotificationAlarmListener — diffuse alarmes SIAS(destination = "jms/topic/AlarmesSIAS")public class NotificationAlarmListener implements MessageListener { // Envoi emails/SMS aux opérateurs}Proposition Mapping JMS → Kafka
| Queue/Topic JMS Actuel | Kafka Topic Cible | Partitionnement | Rétention |
|---|---|---|---|
jms/queue/IncidentCreation | sias.incidents.created | Par codePostal (5 chiffres) | 30 jours |
jms/queue/TelecommandeOrders | ticc.telecommande.orders | Par compteurId | 7 jours |
jms/topic/AlarmesSIAS | sias.alarmes.fired | Par priorite (P1/P2/P3) | 90 jours |
jms/queue/BatchTraitementMasse | sias.batch.tasks | Par batchId | 180 jours |
Avantages Kafka
✅ Replay : retraiter messages en cas d'erreur (impossible avec JMS)
✅ Scalabilité : 100K+ msg/s vs 10K msg/s (ActiveMQ)
✅ Schema Registry : validation Avro/JSON Schema automatique
✅ Observabilité : Kafka UI, lag monitoring, dead letter queue
Situation actuelle :
30+ workflows BPM orchestrés via Software AG (version propriétaire)
Expiration de licence : mi-2026 (non renouvelée)
Enjeu stratégique : Migration vers une solution open-source avant expiration
Contrainte impérative : La migration BPM est sur le chemin critique de la roadmap
Contraintes GRDF :
Conformité à l'Application Blanche Jaune (ABJ) — standard DSI
Pas de Kubernetes (déploiement standard sur Tomcat)
Intégration avec ADA, GitLab, CI/CD existant (Jenkins, Nexus)
Maintien des fonctionnalités métier critiques (orchestration incidents/tâches)
Impact sur séparation SIAS/TICC :
Les workflows BPM invoquent à la fois des services SIAS et TICC
La migration BPM doit être complétée avant la séparation SIAS/TICC
Les workflows doivent être refactorés pour appeler les services séparés
Artefacts identifiés :
xxxxxxxxxxapp-bpm-main/├── POC_SAT_PRE_Processes/build.xml├── POC_SAT_PRE_deploy_UM/config/realm.xml├── POC_SAT_PRE_deploy_BPM/config/│ ├── SAT_PRE_projectAutomatorData.xml│ └── mono_noeud/SAT_PRE_projectAutomatorData.xml├── sat-bpm-packaging/│ ├── bpm_is/ (Integration Server)│ ├── bpm_deploy/ (Deployment configs)│ ├── bpm_process/ (Process definitions — BPMN-like)│ └── bpm_broker/ (Message broker)
Workflows critiques (sample de 30+ processus) :
Gestion des incidents (création, affectation, traitement, clôture)
Gestion des tâches (affectation, traitement en masse, validation)
Feedback TICC (télé-incidents, commandes à distance)
Intégration avec services SAT-PRE/HAB (habilitations, référentiels)
Traitement automatique (alarmes, supervision, escalade)
Volumétrie et statistiques :
| Métrique | Valeur | Source |
|---|---|---|
| Processus métier | 30+ | Analyse *.process XML |
| Services Java appelés | 15-20 | Parsing XML invocations |
| Intégration JMS | 40+ listeners | À remplacer par Kafka |
| Complexité moyenne | Modérée (5-15 étapes/processus) | Inspection manuelle |
| Dépendances externes | SPQR, SSOL, STIC, GED | Voir §7.2 |
Points d'attention détectés :
Workflows non documentés — Aucune documentation BPMN 2.0 formelle
Logique métier embarquée — Certains workflows contiennent du code Java inline (difficile à migrer)
Couplage fort avec WebLogic — Utilisation de JNDI, EJB, JMS spécifique WebLogic
Pas de tests automatisés — Aucun test unitaire ou d'intégration sur les workflows
| Solution | Version | Avantages | Inconvénients | Maturité | Recommandation |
|---|---|---|---|---|---|
| Camunda 8 | 8.6+ (2024) | • Standard BPMN 2.0 ⭐ • Large communauté (500K+ users) • Support enterprise disponible • Intégration native Spring Boot • Cloud-ready (Zeebe engine) • Monitoring avancé (Operate, Optimize) | • Migration workflows non triviale • Formation équipe requise • Changement de paradigme (Zeebe vs. classique) | ⭐⭐⭐⭐⭐ | ✅ Prioritaire |
| Flowable | 7.x (2024) | • Fork Activiti (éprouvé) • API REST complète • UI intuitive (Flowable UI) • Compatible BPMN 2.0 • Support Spring Boot | • Communauté plus petite • Moins de plugins tiers • Documentation moins fournie | ⭐⭐⭐⭐ | 🟡 Alternative |
| jBPM | 8.x (Red Hat) | • Intégration Red Hat / JBoss • Support Drools (rules engine) • Compatible BPMN 2.0 | • Courbe d'apprentissage élevée • Moins utilisé en France • Stack Red Hat imposée | ⭐⭐⭐ | ❌ Non recommandé |
| Apache Airflow | 2.x | • Excellent pour orchestration batch • Python-friendly • DAG visual | • Pas conçu pour BPMN pur • Overkill pour workflows simples • Inadapté pour workflows métier | ⭐⭐⭐ | ❌ Non recommandé |
Recommandation : Camunda 8 (prioritaire) ou Flowable (alternative)
Rationale :
✅ Conformité BPMN 2.0 (facilite migration depuis Software AG)
✅ Support long terme et communauté active (Camunda : 500K+ users, 10+ ans d'existence)
✅ Intégration native avec Spring Boot (stack SAT-PRE cible)
✅ Possibilité de support commercial si nécessaire (Camunda Enterprise)
✅ Monitoring et observabilité (Camunda Operate, Optimize)
✅ Déploiement Tomcat (compatible ABJ sans Kubernetes)
Phase 1 : POC et Validation Technique (2 mois — M1 → M3)
Objectifs :
Valider la faisabilité technique de la migration
Sélectionner la solution BPM (Camunda 8 vs. Flowable)
Établir une baseline de performance
Livrables :
POC sur 2-3 workflows représentatifs (ex: création incident, affectation tâche, feedback TICC)
Rapport de benchmark performance (latence, throughput, stabilité)
Recommandation technique argumentée (Camunda vs. Flowable)
Estimation effort migration des 30+ workflows
Workflows POC sélectionnés :
| Workflow POC | Complexité | Raison Sélection |
|---|---|---|
| 1. Création Incident | Faible (5 étapes) | Workflow critique SIAS, volumétrie élevée (100+ incidents/jour) |
| 2. Affectation Tâche | Moyenne (10 étapes) | Logique métier complexe (règles affectation, escalade) |
| 3. Feedback TICC | Faible (6 étapes) | Intégration externe STIC, test de résilience |
Tests de performance POC :
| Test | Métrique Cible | Baseline Software AG | Critère Acceptation |
|---|---|---|---|
| Latency P50 | < 200 ms | 150 ms | ≤ +50 ms |
| Latency P95 | < 500 ms | 400 ms | ≤ +100 ms |
| Throughput | > 50 workflow/s | 60 workflow/s | ≥ -15% |
| Stabilité 24h | Aucune dégradation | Stable | Aucune fuite mémoire |
Décision Go/No-Go :
✅ Go : Performance ≥ baseline ± 15%, validation DSI OK → Migration complète
❌ No-Go : Performance insuffisante → Étude d'optimisation ou solution alternative
Phase 2 : Migration Progressive (6-9 mois — M3 → M12)
Approche : Migration workflow par workflow avec validation métier systématique
Priorisation des workflows :
| Priorité | Workflows | Critères | Effort Estimé |
|---|---|---|---|
| P1 — Critique | 8 workflows (création incident, affectation tâche, feedback TICC, alarmes) | • Volumétrie élevée • Criticité métier forte • Faible complexité | 3 mois |
| P2 — Important | 12 workflows (traitement masse, supervision, escalade) | • Volumétrie moyenne • Complexité modérée | 4 mois |
| P3 — Standard | 10+ workflows (reporting, archivage, batch) | • Volumétrie faible • Faible criticité | 2 mois |
Processus de migration par workflow :
Analyse du workflow existant (0.5 jour)
Parsing XML Software AG
Identification des services Java appelés
Cartographie des dépendances externes (SPQR, SSOL, STIC)
Modélisation BPMN 2.0 (1 jour)
Création du diagramme BPMN dans Camunda Modeler
Définition des service tasks, user tasks, gateways
Configuration des variables de processus
Implémentation des service tasks (2-3 jours)
Création des delegates Java (Camunda) ou listeners (Flowable)
Intégration avec services SAT-PRE existants
Gestion des erreurs et retry logic
Tests fonctionnels (1 jour)
Tests unitaires (Camunda Test Framework)
Tests d'intégration avec services réels
Validation métier par Product Owners
Déploiement et monitoring (0.5 jour)
Déploiement sur environnement de test
Configuration monitoring (Camunda Operate)
Validation performance (vs. baseline)
Effort total estimé : 18-24 mois-personne (incluant POC, migration, tests, formation)
Phase 3 : Décommissionnement Software AG (1-2 mois — M12 → M13)
Objectifs :
Migrer les workflows restants (batch, archivage)
Valider la complétude de la migration
Former les équipes de maintenance
Décommissioner la licence Software AG
Livrables :
✅ 100% des workflows migrés sur Camunda/Flowable
✅ Tests d'intégration end-to-end validés (> 95% couverture)
✅ Documentation complète (BPMN 2.0, guides opérationnels)
✅ Formation équipes (2 jours hands-on)
✅ Décommission ement Software AG (désinstallation, archivage configs)
Critères de succès :
✅ Aucun workflow actif sur Software AG
✅ Performance équivalente ou supérieure (vs. baseline)
✅ Équipes autonomes sur Camunda/Flowable
✅ Licence Software AG résiliée
| Risque | Probabilité | Impact | Stratégie de Mitigation |
|---|---|---|---|
| R1 : Dépassement deadline licence (mi-2026) | 🟠 Moyenne | 🔴 Critique | • Priorisation stricte (P1 first) • Phase 0 POC rapide (2 mois) • Equipe dédiée BPM (1 expert Camunda) |
| R2 : Performance insuffisante | 🟡 Faible | 🟠 Moyen | • POC avec benchmark rigoureux • Tests de charge systématiques • Plan B : Optimisation Camunda (clustering) |
| R3 : Complexité migration workflows | 🟠 Moyenne | 🟠 Moyen | • Approche progressive (workflow par workflow) • Formation équipe (2 jours Camunda) • Support Camunda Enterprise (option) |
| R4 : Résilience métier (résistance au changement) | 🟡 Faible | 🟡 Faible | • Validation Product Owners systématique • Démonstrations régulières (sprints 2 sem) • Documentation claire (BPMN 2.0 visuel) |
| R5 : Disponibilité compétences Camunda | 🟠 Moyenne | 🟠 Moyen | • Formation équipe (certification Camunda) • Accompagnement Adservio (expert BPM) • Documentation interne (playbooks) |
⚠️ Contrainte impérative : La migration BPM doit être achevée avant mi-2026 (expiration licence Software AG). Cela place la Phase 1 (Migration Infrastructure) sur le chemin critique de la roadmap globale (voir §11).
La migration BPM doit être synchronisée avec les autres chantiers de modernisation :
Dépendances techniques :
| Chantier | Dépendance BPM | Justification |
|---|---|---|
| Migration WebLogic → Tomcat | ⬆️ Bloquant | Camunda nécessite un serveur d'applications (Tomcat 9.x sur ABJ) |
| Remplacement JMS → Kafka | ⬆️ Bloquant | Les workflows BPM publient/consomment des messages Kafka |
| Séparation SIAS/TICC | ⬇️ Dépend de BPM | Les workflows refactorisés doivent appeler les services séparés |
| Migration Oracle → PostgreSQL | ↔️ Indépendant | Camunda supporte PostgreSQL nativement (pas de blocage) |
Séquençage recommandé :
Points de synchronisation critiques :
M3 (Avr 2026) : POC BPM validé → Démarrage migration WebLogic en parallèle
M9 (Oct 2026) : WebLogic + JMS migrés → Déploiement workflows Camunda sur Tomcat/Kafka
M12 (Jan 2027) : Tous workflows BPM migrés → Début séparation SIAS/TICC
M24 (Jan 2028) : Séparation complète → Workflows refactorisés pour services séparés
| Activité | Durée | Effort (mois-personne) | Profils Requis |
|---|---|---|---|
| Phase 1 : POC BPM | 2 mois | 3 | • Expert BPM (Camunda) • Architecte applicatif • Développeur Java/Spring |
| Phase 2 : Migration workflows | 9 mois | 12 | • Expert BPM (Camunda) — 6 MP • Développeur Java/Spring (x2) — 6 MP |
| Phase 3 : Décommissionnement | 1 mois | 1 | • Expert BPM • Expert infrastructure DSI |
| Formation équipes | 2 mois | 2 | • Formateur certifié Camunda • Référent BPM interne |
| Total | 12 mois | 18 MP | - |
Coûts estimés :
| Poste | Coût Unitaire | Quantité | Total (k€) |
|---|---|---|---|
| Expert BPM Camunda (TJM 800€) | 800 €/j | 120 j | 96 k€ |
| Développeur Java/Spring (TJM 600€) | 600 €/j | 120 j | 72 k€ |
| Formation Camunda (2j x 5 pers) | 1 200 €/pers | 5 pers | 6 k€ |
| Licence Camunda Enterprise (optionnel) | 30 k€/an | 1 an | 30 k€ |
| Total | - | - | 174-204 k€ |
Note : Licence Camunda Enterprise optionnelle (Community Edition suffisante pour POC et production standard). Prévoir budget pour support commercial si nécessaire (SLA, hotfixes, consulting).
Résumé consolidé des dépendances techniques à migrer/remplacer :
| Composant Actuel | Cible Option A+ | Effort Estimé | Risque | Priorité |
|---|---|---|---|---|
| Software AG BPM | Camunda 8 | 18 MP (12 mois) | 🔴 Critique | P0 (deadline mi-2026) |
| WebLogic 12c | Tomcat 9.x (ABJ) | 8 MP (6 mois) | 🟠 Moyen | P1 |
| Oracle DB 19c | PostgreSQL 14+ | 6 MP (6 mois) | 🟠 Moyen | P1 |
| JMS ActiveMQ | Apache Kafka | 4 MP (4 mois) | 🟡 Faible | P2 |
| SOAP/WS-Security | REST + OAuth2 | 2 MP (3 mois) | 🟡 Faible | P3 |
Chemin critique : Software AG BPM → WebLogic → JMS → Séparation SIAS/TICC