3. Axes de la présentation
Bien gérer un projet d’intégration de Drupal dans un SI
§ Pourquoi ?
§ Drupal & DSI
§ Quels acteurs ?
§ L’environnement ?
§ L’infrastructure ?
§ Anticiper ?
Cas pratiques d’intégration
§ Annuaire AD/LDAP
§ Présenter sur le Web des données métiers
§ Exposer un processus de gestion
4. 1
Réussir un projet d’intégration de
Drupal dans un système d’information
Drupal est de plus en plus utilisé pour réaliser des applications
métier intégrées dans le paysage des Systèmes d'Information. Plus
complexe qu’un projet traditionnel, cette intégration nécessite
d’adopter de bon réflexes pour garantir une intégration réussie.
5. Pourquoi intégrer Drupal dans les SI ?
ü Bénéficier des fonctionnalités de Drupal dans un
environnement métier (Flexibilité, modularité)
ü Proposer des interfaces ergonomiques et rapides
ü Mettre à disposition des end-users des informations
présentes dans le SI
ü Éviter de ressaisir des informations plusieurs fois
ü Améliorer l’agilité des systèmes d’information
ü Consolider plusieurs processus fonctionnels
ü Améliorer la sécurité
Système
d’information
6. Drupal est t-il accepté dans les DSI ?
§
de l’Open Source dans le paysage des SI
§ Développement massif de Drupal dans les grands groupes
§ Phase "d'early adopters" référents dans leur domaine (médias)
§ Secteur public, les directives européennes recommandent l’Open
Source
§ De nombreux acteurs ont fait le choix de Drupal
§ Beaucoup de DSI ont connaissance de Drupal
(livres blancs, retours d'expérience)
§ Les directions métiers ont tendance à le proposer par confiance
§ Ne pas négliger les projets antérieurs plus ou moins bien terminés.
7. Qui sont les acteurs indispensables ?
Client final
(direction métier)
Chef de projet
fonctionnel
RSSI
Concepteur
Drupal
Équipes techniques
8. Maitriser l’environnement
§ Demander les schémas d’urbanisation des SI sur votre périmètre
d'intervention (ex. d'outil de modélisation : ARIS)
§ Cartographier les autres composants avec lesquels vous
échangerez des informations (LDAP, CRM, ERP, PDM, BUS, ...)
§ Lister les protocoles d’échange que vous pourrez utiliser
(Webservices, Flux Json, XML, CSV, Curl, …)
§ Ne surtout pas négliger la documentation
(documents de conception, spécifications, …)
9. Adapter les infrastructures
§ Vérifier que Drupal est compatible avec l’environnement
(PHP 5.3 / MySQL / Apache / Tomcat / ... )
§ Intégrer les contraintes de l’environnement dès le début du projet
(Environnement Linux, Microsoft, Azur, Navigateur...)
§ Valider le délai de disponibilité de l’infrastructure
(Nom de domaine, serveurs, Cloud, Webservices…)
§ Vérifier que vous respectez les contraintes de sécurité imposées
(Charte de sécurité, procédures, contrainte de déploiement)
10. Prévoir la suite dès le début du projet
ü Drupal ne facilite pas le staging
ü Anticiper les évolutions fonctionnelles dès la conception de la
plateforme Drupal (Conception Drupal)
ü Définir les processus de livraison et de mise en production pour
garantir la qualité (Méthodologie ITIL)
ü Réguler les mises à jour des modules (Adapter à la sensibilité de
l’application : sécurité)
u Modules Drupal : Features, Drush & Custom
11. 2
Quelques cas pratiques
Les cas suivants ont pour but de présenter une synthèse de ce
qui se produit traditionnellement lorsque l'on parle d'intégration
de Drupal dans un SI.
13. Comment maîtriser la gestion
des utilisateurs ?
§ La gestion des utilisateurs peut revêtir des formes variées avec
Drupal : centrale en terme de fonctionnalité dans un site
communautaire, à contrôler dans le cas d'un site plus
institutionnelle …
§ Dans tous les cas elle devient rapidement un sujet de sécurité
important en contexte "entreprise"
§ La mise à disposition d'un annuaire AD/LDAP permet de contrôler
les utilisateurs et les droits associés dans une structure
§ Il est censé être le reflet le plus à jour des utilisateurs et des
propriétés qui leur sont attachées (droits, attributs …)
u Modules Drupal : LDAP, Profile 2, Organic Group, …
14. Annuaire AD/LDAP
§ Sujet Exemple :
Connecter Drupal à l'annuaire de référence
des utilisateurs
§ Objectifs :
• Éviter la ressaisie de comptes utilisateurs
• Centraliser les droits, faciliter la gestion des
comptes utilisateurs
§ Mise en œuvre :
Juste un protocole technique
(optionnellement) mapper les champs AD/
LDAP aux propriétés des utilisateurs (droits,
attributs …)
Flux à autoriser entre le serveur Drupal et
l'annuaire
Item
Valeur
Couplage
Fort
Temporalité
Synchrone
Sens du flux
De AD/LDAP vers
Drupal
Qui est maître ?
AD/LDAP
Que se passe-t-il
quand le service est
indisponible ?
L'authentification sur
les comptes issus de
LDAP n'est plus
possible.
Modules Drupal
LDAP integration
15. Comment choisir la méthode
d’intégration des données ?
Intégrer des données peut servir à restituer de l'information ou mettre
à disposition une transaction.
Quelques questions à se poser :
ü Intégration : Asynchrone / Synchrone ?
ü Information : Temps réel / Temps différé ?
ü Quel impact doit avoir l'indisponibilité d'un service intégré ?
ü Quel est le protocole à retenir, est il accepté dans le contexte
technique courant ?
u Modules Drupal : Views, Services, Json, Feeds, SMTP
16. Présenter un annuaire d'entreprise
§ Sujet Exemple :
Alimenter Drupal des données de l'annuaire
de référence pour proposer une fonction
annuaire avec recherche de personnes.
§ Objectifs :
• Éviter la ressaisie des données personnelles
• Fournir une fonction d'annuaire
§ Mise en œuvre :
Synchroniser la source de données (LDAP)
avec le contenu "personne" dans Drupal.
C'est-à-dire mettre à jour la base drupal des
entrées et sorties du LDAP sans attendre la
connexion des utilisateurs à la plateforme
Item
Valeur
Couplage
Faible
Temporalité
Asynchrone
Sens du flux
De AD/LDAP vers
Drupal
Qui est maître ?
AD/LDAP
Que se passe-t-il
quand le service est
indisponible ?
Les informations de
l'annuaire ne sont
plus à jour
Modules Drupal
LDAP
integra4on,
migrate,
custom
…
17. Présenter sur le Web des données métiers (1)
§ Sujet Exemple :
Présenter sous drupal les offres d'emploi
gérées dans un back office de gestion dédié
§ Objectifs :
• Éviter la ressaisie des données
• Présenter seulement les informations utiles
• Gagner du temps et de la qualité
§ Mise en œuvre :
Synchroniser la source de données (BO de
gestion) avec Drupal de manière à alimenter
les contenus dans le site
Exploitation d'un fichier CSV mis à disposition
régulièrement
Item
Valeur
Couplage
Faible
Temporalité
Asynchrone
Sens du flux
De BO vers Drupal
Qui est maître ?
BO
Que se passe-t-il
quand le service est
indisponible ?
Les informations des
offres d'emplois ne
sont plus à jour
Modules Drupal
Migrate,
custom
…
18. Présenter sur le Web des données métiers (2)
§ Sujet Exemple :
Présenter sous drupal les offres d'emploi
gérées dans un back office de gestion dédié
§ Objectifs :
• Éviter la ressaisie des données
• Présenter seulement les informations utiles
• Gagner du temps et de la qualité
§ Mise en œuvre :
Appel par web service du BO de gestion pour
présenter les offres d'emploi actuellement
disponibles
Attention, cela charge le Back Office de
requêtes qui peuvent détériorer les
performances pour les utilisateurs habituels
Item
Valeur
Couplage
Fort
Temporalité
Synchrone
Sens du flux
De BO vers Drupal
Qui est maître ?
BO
Que se passe-t-il
quand le service est
indisponible ?
La consultation des
offres d'emplois est
indisponible
Modules Drupal
Custom
…
19. Synthèse
Implémentation
Processus
Couplage
Impact en cas de BO indisponible
Intégration des donnés par CSV
Batch
"Lache"
Le site web présente les données mais
elles ne sont plus à jour
Intégration des donnés par Web
service
Temps réel
Fort
Le site web rend indisponible la fonction
§ Conclusion :
Il n'y a pas de méthode préférable, cela dépend réellement du cas d'utilisation fonctionnel et
de la stratégie "métier" à adopter
20. Exposer un processus de gestion (1)
§ Objectifs :
• Mise en place d'un canal unique de gestion
• Structurer l'information et la diffuser plus
rapidement
• Faire porter aux internautes la charge de
gestion
§ Mise en œuvre :
Mise en place d'un formulaire sous Drupal
Conservation sous drupal des candidatures
Synchronisation avec le BO de gestion pour
injection des candidatures par batch la nuit
Valeur
Couplage
Faible
Temporalité
§ Sujet Exemple :
Permettre la saisie de candidatures en ligne
Item
Asynchrone
Sens du flux
De Drupal vers BO
Qui est maître ?
Drupal
Que se passe-t-il
quand le service est
indisponible ?
Les candidatures ne
sont visibles que
sous Drupal
Modules Drupal
Custom
…
21. Exposer un processus de gestion (2)
§ Objectifs :
• Mise en place d'un canal unique de gestion
• Structurer l'information et la diffuser plus
rapidement
• Faire porter aux internautes la charge de
gestion
§ Mise en œuvre :
Mise en place d'un formulaire sous Drupal
Pas de conservation des candidatures
Synchronisation avec le BO de gestion pour
injection des candidatures par appel web
service du BO
Valeur
Couplage
Fort
Temporalité
§ Sujet Exemple :
Permettre la saisie de candidatures en ligne
Item
Synchrone
Sens du flux
De Drupal vers BO
Qui est maître ?
Drupal
Que se passe-t-il
quand le service est
indisponible ?
Erreur à la validation
du formulaire …
Modules Drupal
Custom
…
22. Exposer un processus de gestion (3)
§ Objectifs :
• Mise en place d'un canal unique de gestion
• Structurer l'information et la diffuser plus
rapidement
• Faire porter aux internautes la charge de
gestion
§ Mise en œuvre :
Mise en place d'un formulaire sous Drupal
Conservation des candidatures
Synchronisation avec le BO de gestion pour
injection des candidatures par appel
Webservice du BO en asynchrone répétitif et
rapide
Valeur
Couplage
Faible
Temporalité
§ Sujet Exemple :
Permettre la saisie de candidatures en ligne
Item
Synchrone
(asynchrone très
rapide)
Sens du flux
De Drupal vers BO
Qui est maître ?
Drupal
Que se passe-t-il
quand le service est
indisponible ?
Drupal a l'information
la plus à jour
Modules Drupal
Custom
…
23. Synthèse
Implémentation
Processus
Couplage
Impact en cas de BO indisponible
Intégration des données en temps
différé nocturne
Batch
"Lache"
Le service est rendu auprès de l'utilisateur, les
utilisateurs du BO attendent avant de pouvoir
traiter les demandes
Intégration des donnés en temps
réel
Temps réel
Fort
Le site web rend indisponible la fonction avec
une expérience utilisateur plus ou moins
bonne …
Intégration des données en temps
différé rapide
Quasi temps
réel
Lache
Le service est rendu auprès de l'utilisateur, les
utilisateurs du BO attendent avant de pouvoir
traiter les demandes
§ Conclusion :
Il n'y a pas de méthode préférable, cela dépend réellement du cas d'utilisation fonctionnel et
de la stratégie "métier" à adopter
24. Mobile – Drupal comme repository de contenu
§ Sujet Exemple :
Drupal contient des informations qui doivent
être distribués sur différentes plateformes
§ Objectifs :
• Faire circuler l'information rapidement une
fois qu'elle est saisie, l'adapter au device de
consultation
• Éviter la ressaisie
§ Mise en œuvre :
Drupal 8 (?)
Considérer Drupal comme maitre de
l'information et fournisseur de contenu
indépendamment de la plate forme de
consultation
Item
Valeur
Couplage
Faible ou fort
Temporalité
Synchrone ou a
synchrone
Sens du flux
De Drupal vers ???
Qui est maître ?
Drupal
Que se passe-t-il
quand le service est
indisponible ?
Drupal a l'information
la plus à jour
Modules Drupal
Services,
custom
…
25. FICHE PRATIQUE
Que faire pour réussir son intégration ?
ü J’ai identifié et impliqué les acteur indispensables
ü La méthode d’intégration est définie
ü Asynchrone / synchrone
ü Temps réel / temps différé
ü Couplage fort / lâche
ü Qui est maître / esclave
ü Comment doit réagir l'application en cas d'indisponibilité
ü Je suis conscient des impacts fonctionnels des points précédents
ü Je maitrise l’environnement et l’infrastructure de l’application
ü Je connais les futurs utilisateurs
ü Je connais les contraintes de sécurité et de déploiement
ü Je prévois la suite dès le début du projet
ü Je documente cette intégration
26. Pour aller plus loin…
À votre disposition pour en discuter :
Arnaud RANSON, Neuros
@neuros_paris / contact@neuros.com
Nicolas MARSAUD, Feel & Clic
@feelandclic / contact@feelandclic.com