Transactions

DéfinitionTransaction

Une transaction est un mécanisme qui permet de gérer la concurrence des accès au contenu.

Elle permet de gérer le cas où deux personnes (ou plus) cherchent à modifier le même fichier en même temps.

DéfinitionVerrouillage

Le verrouillage est une technique de gestion de transaction, qui consiste à interdire l'accès en écriture à deux utilisateurs en même temps. Le premier utilisateur qui souhaite accéder au contenu en écriture verrouille le fichier, et les suivants doivent attendre le déverrouillage pour faire également des modifications.

Autorisation d'accès à un document

Demande d'écriture

Demande de lecture

Verrou absent

Acceptée (pose d'un verrou)

Acceptée

Verrou déjà posé

Rejetée (attente)

Acceptée

ExemplePrincipe du verrouillage manuel

Le verrouillage est fait directement par un utilisateur. Il a le choix de verrouiller ou non, s'il ne le fait pas la concurrence n'est pas gérée. L'utilisateur doit également penser à déverrouiller lorsque le verrou n'est plus utile.

Exemple de gestion de transactions par verrouillage manuel (Nuxéo-DM)

ExemplePrincipe du check-in / check-out

La plupart des systèmes de GED, proposent le mécanisme suivant, un peu plus automatisé :

  • Lorsqu'un utilisateur souhaite modifier un document, il doit effectuer un check-out, qui verrouille le document et créé une copie de travail.

  • Cette copie de travail est privée (seul lui peut la voir), les autres utilisateurs ne voit que le document original verrouillé

  • Il peut ainsi modifier cette copie sans risque de conflit

  • Lorsqu'il souhaite mettre à jour le document, il effectue un check-in, qui libère le document après l'avoir remplacé par la copie de travail (qui est supprimée)

Exemple de gestion de transactions par check-in / check-out (Alfresco)

ExemplePrincipe du verrouillage automatique

Le verrouillage automatique pose un verrou dès qu'un utilisateur souhaite effectuer une modification (ouverture en édition) et le libère dès que le document est relâché (fermeture). C'est le principe général des outils bureautique traditionnel utilisés en réseau (pas des outils bureautique en ligne qui en général ne proposent pas de verrouillage).

RemarqueLe problème des transactions longues

Si un utilisateur garde un fichier verrouillé pendant longtemps, les autres utilisateurs peuvent être bloqués dans leur processus de travail.

RemarqueL'historisation dans les wikis

L'historisation dans les wikis est une façon de gérer les transactions, en reportant la gestion des conflits a posteriori :

  1. Si deux utilisateurs A et B éditent le même contenu en même temps, c'est le dernier qui enregistre qui "à raison", puisque son enregistrement écrase le précédent. Si c'est B qui enregistre le dernier, il annule donc les modifications de A.

  2. Mais comme le contenu de A a été historisé, les modifications de A restent enregistrées dans une version.

  3. Elle peuvent donc être réinjectées dans le contenu a posteriori, une fois le conflit détecté.

RemarqueLa simultanéité dans les outils bureautiques en ligne

Les outils bureautique en ligne (comme les Google Apps) se basent sur la simultanéité de l'écriture. À chaque enregistrement, retour chariot, voire à chaque frappe sur le clavier, le document commun est mis à jour sur le serveur. Ainsi chaque co-auteur peut voir en temps réel ce que les autres écrivent, et en conséquence s'ajuster.