Engineering Notes
Utilisateur en ligne, session active et inactivité : trois notions différentes
Un exemple concret montrant pourquoi un modèle simple doit parfois évoluer lorsqu’il rencontre les vrais usages.
Le besoin initial
Dans KOUSSEVO, le besoin était de distinguer une présence récente d’une simple connexion encore valide. L’indication devait être compréhensible pour l’administration et cohérente avec la gestion de l’inactivité.
Le vocabulaire paraissait simple : un utilisateur était « en ligne » ou ne l’était pas. Les usages sur plusieurs appareils ont montré que cette représentation regroupait des situations différentes.
Première modélisation
Une première approche reposait sur une activité globale au niveau de l’utilisateur. Elle donnait un repère récent, mais perdait une information essentielle : quelle session avait produit cette activité ?
Ce modèle pouvait servir à une vue synthétique. Il était insuffisant pour raisonner précisément sur la présence et l’inactivité de chaque connexion.
Pourquoi elle était insuffisante
Un utilisateur peut avoir une session ouverte sur un ordinateur et une autre sur un téléphone. Une activité sur le téléphone ne signifie pas que la session de l’ordinateur est utilisée.
Si l’on ne conserve qu’un signal global, on risque de confondre une personne récemment active avec toutes ses sessions supposées actives. Le même indicateur ne doit pas servir sans distinction à décrire la présence et à décider de la durée de vie d’une session.
Plusieurs appareils, plusieurs sessions
L’activité doit donc être suivie par session, puis éventuellement agrégée pour présenter une information au niveau de l’utilisateur.
Une session reçoit son propre historique d’activité récente. L’activité d’un appareil ne doit pas remettre à zéro le compteur d’inactivité d’un autre appareil. Cette séparation permet de garder une lecture cohérente des usages multi-device.
Un utilisateur n’est pas une session, et une session valide ne signifie pas qu’une personne est réellement en ligne.
Nouvelle distinction
J’ai retenu quatre notions pour décrire les états utiles :
- En ligne : une activité très récente a été observée.
- Récemment actif : une activité récente existe, mais elle n’est pas immédiate.
- Session active : dans cette présentation, l’authentification reste valide alors qu’aucune activité récente n’est observée.
- Inactivité maximale : la limite au-delà de laquelle la session doit être détruite.
Les deux premiers libellés expriment une proximité temporelle, pas la preuve qu’une personne regarde actuellement l’écran. Les seuils de présence doivent être définis selon le produit ; ils ne sont pas détaillés ici.
Règle finale
Dans ce projet, une session est détruite après 60 minutes d’inactivité. Ce délai s’applique à chaque session et ne doit pas être prolongé par l’activité d’une autre session du même utilisateur.
Une authentification encore valide ne suffit donc pas à afficher une présence immédiate. Inversement, l’absence de présence récente ne signifie pas nécessairement que la session a déjà atteint sa limite d’inactivité. Ces règles décrivent le choix du projet, pas une durée universelle à appliquer à tout produit.
Enseignement plus général
Cette évolution relie modélisation, sécurité et expérience utilisateur. Un modèle simple est utile pour démarrer, mais doit être réévalué quand les usages révèlent des distinctions qu’il ne représente pas.
À retenir : avant de choisir un indicateur, préciser ce qu’il mesure, à quelle entité il appartient et quelle décision il permet de prendre.