Architecture du portail Liferay
Comment ça fonctionne vraiment (pour développeurs BPM & Enterprise Java)
Introduction
Si vous évaluez Liferay DXP ou si vous l’utilisez déjà pour des portails, une question revient toujours :
❓ Qu’y a-t-il réellement à l’intérieur de Liferay ?
La plupart des tutoriels expliquent comment créer un portlet,
mais très peu expliquent comment Liferay fonctionne vraiment en interne.
Comprendre l’architecture est critique quand vous :
Intégrez Liferay avec Camunda / jBPM
Appelez des APIs Spring Boot
Construisez des portails orientés workflow
Déboguez des incidents en production
Faites évoluer Liferay à l’échelle entreprise
Ce blog explique :
Les briques fondamentales de Liferay
Le flux des requêtes dans le portail
Le rôle d’OSGi
Comment les portlets, services et APIs s’imbriquent
Comment Liferay s’intègre dans une architecture BPM & microservices
Architecture globale du portail Liferay
À haut niveau, Liferay ressemble à ceci :
Explication des couches principales
1️⃣ Couche présentation (UI)
C’est ce que les utilisateurs voient et utilisent.
Composants :
Pages & layouts
Thèmes
Widgets
Portlets
Formulaires
Tableaux de bord
Cette couche est responsable de :
Rendu HTML
Gestion des actions utilisateur
Affichage des tâches de workflow
Présentation du contenu
2️⃣ Couche Portlet (modules applicatifs)
Un Portlet est la brique UI centrale de Liferay.
Chaque portlet :
Est une application Java
S’exécute dans le conteneur Liferay
Est déployée comme un module OSGi
Peut être développée et déployée indépendamment
Exemples :
Boîte de réception des tâches
Tableau de bord d’approbation
Formulaire de saisie
Module de reporting
3️⃣ Couche Runtime OSGi (le cœur de Liferay)
C’est ce qui fait de Liferay une plateforme, pas un monolithe.
Liferay utilise un conteneur OSGi pour gérer ses modules.
Ce qu’OSGi apporte :
Hot-deploy
Isolation des modules
Versioning des services
Résolution dynamique des dépendances
Cela signifie :
Vous pouvez déployer, mettre à jour ou supprimer des fonctionnalités sans redémarrer Liferay.
4️⃣ Couche Services (services métier & plateforme)
Liferay fournit des centaines de services intégrés :
Gestion des utilisateurs
Rôles & permissions
Organisations
Sites
Gestion de contenu
APIs de workflow
Recherche
Notifications
Bibliothèque de documents
Vous pouvez aussi créer vos propres services via :
Service Builder
APIs personnalisées
Endpoints REST
5️⃣ Couche d’intégration (REST, Headless, APIs)
Le Liferay moderne expose :
APIs REST
Services headless
GraphQL
OAuth2
Cela permet à Liferay de s’intégrer facilement avec :
Spring Boot
Les moteurs BPM (Camunda / jBPM)
Kafka
Des UIs externes
Des applications mobiles
6️⃣ Couche persistance (Base de données)
Liferay stocke :
Utilisateurs
Contenu
Permissions
État de workflow
Configuration
Entités personnalisées
Bases supportées :
MySQL
PostgreSQL
Oracle
SQL Server
Comment une requête traverse Liferay
Prenons un cas simple : un utilisateur ouvre une page du portail.
Chaque portlet :
Traite sa partie de la page
Récupère des données
Appelle des APIs
Rend du HTML
Où s’inscrit OSGi
OSGi n’est pas optionnel dans Liferay.
C’est l’épine dorsale de :
Déploiement des portlets
Wiring des services
Isolation des plugins
Cycle de vie des modules
Tout dans Liferay est un bundle OSGi :
Portlets
Services
APIs REST
Connecteurs de workflow
Comment Liferay s’intègre dans une architecture BPM
Voici une architecture entreprise réelle :
Cas d’usage BPM typiques
Workflows d’approbation
Tableaux de bord de tâches
Portails de gestion de cas
Onboarding RH
Parcours client
Approbation de documents
Liferay vs applications web traditionnelles
| Aspect | Application web classique | Portail Liferay |
|---|---|---|
| Déploiement | Monolithique | Modulaire (OSGi) |
| UI | Sur mesure | Basée portail |
| UI workflow | Personnalisée | Intégrée |
| Gestion utilisateurs | À développer | Intégrée |
| CMS | Optionnel | Intégré |
| SSO | À développer | Intégré |
| Scalabilité | Niveau application | Niveau plateforme |
👉 Liferay est une plateforme, pas juste une application web.
Erreurs d’architecture courantes 🚨
❌ Traiter Liferay comme un simple CMS
❌ Mettre de la logique métier lourde dans les portlets
❌ Ignorer les règles de dépendances OSGi
❌ Couplage fort avec les tables DB
❌ Utiliser uniquement des appels REST synchrones
❌ Ne pas externaliser la logique longue
Bonnes pratiques (éprouvées en production)
✔ Garder les portlets légers (UI uniquement)
✔ Mettre la logique métier dans Spring Boot
✔ Utiliser les APIs REST pour l’intégration
✔ Utiliser le BPM pour l’orchestration
✔ Utiliser Kafka pour les événements
✔ Utiliser les APIs headless
✔ Surveiller les bundles OSGi
✔ Optimiser la base et les caches
Question d’entretien (très fréquente)
Q : Quel est le concept architectural central de Liferay ?
R : Une plateforme portail modulaire construite sur OSGi, avec des portlets, des services et des APIs headless.
Conclusion
❗ Liferay n’est pas “juste un CMS”.
❗ C’est une plateforme portail entreprise complète.
Si vous construisez :
Des portails de workflow
Des applications BPM
Des tableaux de bord métier
Des plateformes digitales
Alors l’architecture de Liferay en fait la couche UI idéale au-dessus de :
Camunda
jBPM
Spring Boot
Kafka
💼 Support professionnel disponible
Si vous rencontrez des problèmes sur des projets réels liés au développement backend d’entreprise ou à l’automatisation des workflows, je propose des services de conseil payants, de débogage en production, de support projet et de formations ciblées.
Les technologies couvertes incluent Java, Spring Boot, PL/SQL, Azure, CMS, ainsi que l’automatisation des workflows (jBPM, Camunda BPM, RHPAM), DMN/Drools.
📧 Contact: ishikhanirankari@gmail.com | info@realtechnologiesindia.com
🌐 Website: IT Trainings | Digital lectern | Digital rostrum | Digital metal podium
Si vous rencontrez des problèmes sur des projets réels liés au développement backend d’entreprise ou à l’automatisation des workflows, je propose des services de conseil payants, de débogage en production, de support projet et de formations ciblées.
Les technologies couvertes incluent Java, Spring Boot, PL/SQL, Azure, CMS, ainsi que l’automatisation des workflows (jBPM, Camunda BPM, RHPAM), DMN/Drools.
📧 Contact: ishikhanirankari@gmail.com | info@realtechnologiesindia.com
🌐 Website: IT Trainings | Digital lectern | Digital rostrum | Digital metal podium
Comments
Post a Comment