# Travailler ensemble à distance: solutions et défis des systèmes collaboratifs distribués

Claudia-Lavinia Ignat, Gérald Oster

► To cite this version:

Claudia-Lavinia Ignat, Gérald Oster. Travailler ensemble à distance: solutions et défis des systèmes collaboratifs distribués. Rendez-vous de l'informatique du Programme National de Formation 2024-2025 du Ministère de l'Éducation Nationale, de l'Enseignement Supérieur et de le Recherche et la journée NSI (Numérique et Sciences Informatiques) – SNT (Sciences Numériques et Technologie), Apr 2025, Nancy, France. http://hal-05170265

HAL Id: hal-05170265

https://inria.hal.science/hal-05170265v1

Submitted on 18 Jul 2025

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
# TRAVAILLER ENSEMBLE À DISTANCE

## Solutions et défis des **systèmes collaboratifs distribués**

Claudia-Lavinia Ignat et Gérald Oster
Équipe COAST,
LORIA/Inria Centre de l'Université de Lorraine
# Douglas Engelbart: Augmenter l'intellect humain

<figure><img src="image_2.png" /></figure>

**Vision globale** De l'augmentation de l'intellect humain à l'amorçage du QI collectif – un cadre puissant, une vision pour l'humanité, un manifeste

<figure><img src="image_3.png" /></figure>

**Liens hypertextes** Pour relier facilement les points, pour établir des liens et des zooms avant et arrière sur les détails, pour exploiter les «nouveaux médias» en synchronisation avec la pensée humaine

<figure><img src="image_4.png" /></figure>

**Collaboratif** Assistance aux réunions, vidéoconférence et autres dispositions clés pour la coordination et la collaboration en ligne

<figure><img src="image_5.png" /></figure>

NLS: Online System

**The Mother of all Demos**, December 9, 1968

https://archive.org/details/dougengelbartarchives

<figure><img src="image_6.png" /></figure>
<figure><img src="image_7.png" /></figure>

## Logiciels de travail collaboratif (Groupware) - 1990s

> « Des systèmes informatiques qui soutiennent des groupes de personnes engagées dans une tâche (ou un objectif) commune et qui fournissent une interface vers un environnement partagé. »

### Solutions historiques

* **A tour de rôle (turn-taking) :** ne permet qu’un seul participant actif à la fois – RTCAL (1988), SHARE (1990)

* **A base de verrous :** l’édition concurrente seulement sur des objets différents – Colab (1988)

* **Edition concurrente :** GROVE (1989)

<figure><img src="image_8.png" /></figure>
# Matrice Temps-Espace pour les logiciels de travail collaboratifs

<figure><img src="image_9.png" /><figcaption>Table partagée</figcaption></figure>

<figure><img src="image_10.png" /><figcaption>Matrice de groupware temps/espace</figcaption></figure>

<figure><img src="image_11.png" /><figcaption>Grand écran publique</figcaption></figure>

[Johansen, R. 1988 "Groupware: Computer Support for Business Teams" The Free Press.]

Les données partagées sont répliquées

<figure><img src="image_12.png" /></figure>
# Collaboration synchrone / temps-réel

* Plusieurs utilisateurs modifient simultanément un même document

* Chacun travaille sur sa propre copie du document (réplication)

* Les modifications apparaissent instantanément chez tous les participants

<figure><img src="image_13.png" /></figure>

<figure><img src="image_14.png" /></figure>

<figure><img src="image_15.png" /></figure>
## Collaboration asynchrone / travail déconnecté

* Chacun travaille sur sa propre copie du document (réplication)

* Le travail se fait en différé, sans besoin de connexion simultanée

* Les modifications sont ensuite intégrées, comparées ou fusionnées par les autres participants

<figure><img src="image_16.png" /></figure>

<figure><img src="image_17.png" /></figure>
# Édition collaborative – sans gestion de la concurrence

* Les utilisateurs partagent un document à travers un dépôt commun

* Ils modifient librement une copie du document

* Ils déposent régulièrement leur version modifiée

<figure><img src="image_18.png" /></figure>
# Édition collaborative – sans gestion de la concurrence

* Les utilisateurs partagent un document à travers un dépôt commun

* Ils modifient librement une copie du document

* Ils déposent régulièrement leur version modifiée

* Des mises à jour peuvent être perdues

<figure><img src="image_19.png" /></figure>
# Édition collaborative – Lock-Modify-Unlock

* Un protocole de verrouillage empêche 2 utilisateurs d'accéder en écriture au document en même temps

<figure><img src="image_20.png" /></figure>
# Édition collaborative – Lock-Modify-Unlock

* Problème classique des verrous (oubli d'un verrou)

* Minimise le travail non conflictuel en parallèle

* Faux sentiment de sécurité : fichiers distincts mais dépendances entre ces fichiers

<figure><img src="image_21.png" /></figure>
# Édition collaborative – Copy-Modify-Merge

<figure><img src="image_22.png" /></figure>

Deux utilisateurs font une copie du même fichier

<figure><img src="image_23.png" /></figure>

<figure><img src="image_24.png" /></figure>

Ils se mettent tous les deux à modifier leur copie

<figure><img src="image_25.png" /></figure>

<figure><img src="image_26.png" /></figure>

Sally publie sa version en premier

<figure><img src="image_27.png" /></figure>

<figure><img src="image_28.png" /></figure>

Harry est informé par le dépôt que sa copie est périmée

<figure><img src="image_29.png" /></figure>
# Édition collaborative – Copy-Modify-Merge

1

Deux utilisateurs font une copie
du même fichier

<figure><img src="image_30.png" /></figure>

2

Ils se mettent tous les deux
à modifier leur copie

<figure><img src="image_31.png" /></figure>

3

Sally publie sa version en premier

<figure><img src="image_32.png" /></figure>

4

Harry est informé par le dépôt
que sa copie est périmée

7

Le fichier ainsi obtenu est publié

<figure><img src="image_33.png" /></figure>

8

Chaque utilisateur dispose maintenant
des modifications apportées par l'autre

<figure><img src="image_34.png" /></figure>

5

Harry compare la version la plus récente
à la sienne

<figure><img src="image_35.png" /></figure>

6

Une nouvelle version, produit
de la fusion, est créée

<figure><img src="image_36.png" /></figure>
# Édition collaborative – Copy-Modify-Merge

* Nécessité de fusionner les modifications concurrentes

* Outillage présentant 3 versions (ancêtre commun, versions divergentes)

* Risque de conflits

<figure><img src="image_37.png" /></figure>

<figure><img src="image_38.png" /></figure>

<figure><img src="image_39.png" /></figure>

<figure><img src="image_40.png" /></figure>
# Systèmes collaboratifs : multi-synchronne - entre temps-réel et différé

Des utilisateurs collaborent de manière partiellement synchronisée :

* Chacun travaille localement (en ligne ou hors ligne)

* Les contributions sont synchronisées périodiquement ou à la demande (voire en temps réel)

* Combinaison d'interactions asynchrones individuelles et de synchronisations ponctuelles

* Résolution automatique ou manuelle des conflits lors de la synchronisation
# Systèmes collaboratifs : de quelques utilisateurs...

<figure><img src="image_41.png" /><figcaption>GROVE, 1989</figcaption></figure>

<figure><img src="image_42.png" /></figure>

> "N'est-il pas surprenant de modifier, tous, le même document, le même paragraphe, en même temps ?"

> "Pourquoi un groupe voudrait-il éditer la même ligne de texte en même temps?"

<figure><img src="image_43.png" /></figure>
# Systèmes collaboratifs : ... à une communauté des utilisateurs

<figure><img src="image_44.png" /></figure>

WIKIPEDIA
The Free Encyclopedia

Main page

Contents

Current events

Random article

About Wikipedia

Contact us

Donate

Contribute

Help

Learn to edit

Community portal

Recent changes

Upload file

Tools

What links here

Related changes

Atom

Special pages

Page information

Wikidata item

Languages

<figure><img src="image_45.png" /></figure>

Article

Talk

Read

Edit

View history

Search Wikipedia

<figure><img src="image_46.png" /></figure>

<figure><img src="image_47.png" /></figure>

Not logged in

Talk

Contributions

Create account

Log in

## United States Capitol: Revision history

View logs for this page (view filter log)

### Filter revisions

External tools: Find addition/removal (Alternate) · Find edits by user · Page statistics · Pageviews · Fix dead links

For any version listed below, click on its date to view it. For more help, see Help:Page history and Help:Edit summary. (cur) = difference from current version, (prev) = difference from preceding version, m = minor edit, ↕ = section edit, ← = automatic edit summary (newest | oldest) View (newer 20 | older 20) (20 | 50 | 100 | 250 | 500)

### Compare selected revisions

<table><tr><td>22-02-06 January 2021</td><td>49.195.0.2</td><td>+96) .. (Be Concise) (undo)</td></tr><tr><td>22-02-06 January 2021</td><td>49.195.0.2</td><td>+456 bytes) (-39) .. (Rollback edit(s) by 49.195.0.222 (talk): per WP:NPOV (RW 16)) (undo) (Tag: Rollback)</td></tr><tr><td>22-02-06 January 2021</td><td>49.195.0.2</td><td>+39) .. (undo) (Tag: Reverted)</td></tr><tr><td>22-02-06 January 2021</td><td>49.195.0.2</td><td>-3) .. (Grammar) (undo)</td></tr><tr><td>22-02-06 January 2021</td><td>49.195.0.2</td><td>:4c5 (talk) .. (83,458 bytes) (+4) .. (→Major events: Fixed punctuation) (undo) (Tags: Mobile edit, Mobile web edit)</td></tr><tr><td>22-02-06 January 2021</td><td>49.195.0.2</td><td>:4c5 (talk) .. (83,031 bytes) (+15) .. (→Major events: Cleaned up wording on Trump recorded message) (undo) (Tags: Mobile)</td></tr><tr><td colspan="3">• (cur | prev) ○ 22:47, 6 January 2021 2605:a601:ada1:2a00:ad83:9ec8:20bc:44c5 (talk) .. (83,016 bytes) (-1) .. (→Major events: Replaced one other instance of "rioters" with "people") (undo) (Tags: Mobile edit, Mobile web edit)</td></tr><tr><td>22-02-06 January 2021</td><td>49.195.0.2</td><td>+44c5 (talk) .. (83,017 bytes) (-8) .. (→Major events: Typo) (undo) (Tags: Mobile edit, Mobile web edit)</td></tr><tr><td>22-02-06 January 2021</td><td>49.195.0.2</td><td>:8a:714 (talk) .. (83,025 bytes) (+81) .. (→Major events) (undo)</td></tr><tr><td>22-02-06 January 2021</td><td>49.195.0.2</td><td>:8c:4c5 (talk) .. (82,944 bytes) (+52) .. (→Major events: Rephrased "rioters") (undo) (Tags: Mobile edit, Mobile web edit)</td></tr><tr><td colspan="3">• (cur | prev) ○ 22:39, 6 January 2021 2600:1700:1604:1600:8549:3248:603e:eb02 (talk) .. (83,261 bytes) (+73) .. (Adding the President's reaction to the event.) (undo) (Tag: extraneous markup)</td></tr><tr><td colspan="3">• (cur | prev) ○ 22:31, 6 January 2021 2603:8000:8e42:cb00:55ec:35dc:94e4:c9e (talk) .. (83,188 bytes) (+1) .. (undo) (Tag: Possible vandalism)</td></tr><tr><td colspan="3">• (cur | prev) ○ 22:29, 6 January 2021 92.21.72.53 (talk) .. (83,187 bytes) (+40) .. (Adding info) (undo) (Tags: Mobile edit, Mobile web edit, Visual edit, Possible vandalism)</td></tr><tr><td colspan="3">• (cur | prev) ○ 22:28, 6 January 2021 176.23.9.200 (talk) .. (83,147 bytes) (+10) .. (undo)</td></tr></table>

### Compare selected revisions

(newest | oldest) View (newer 20 | older 20) (20 | 50 | 100 | 250 | 500)

<figure><img src="image_48.png" /></figure>

<figure><img src="image_49.png" /></figure>
# Systèmes collaboratifs : ... à une communauté des utilisateurs émergence de nouvelles pratiques

<figure><img src="image_50.png" /></figure>

## Édition du rapport d'évaluation du Groupe d'experts intergouvernemental sur l'évolution du climat (GIEC)

* Contributions des experts (des centaines des scientifiques des différentes pays)

* Phases de revue par des experts et des gouvernements

* Sessions d'approbation : des délégués des gouvernements et des auteurs principaux

* Equipes d'édition : des éditeurs qui prennent en compte les commentaires
# Défauts des systèmes basés sur une autorité centrale...

<figure><img src="image_51.png" /></figure>

PRIVACY &
OWNERSHIP

SCALABILITY

<figure><img src="image_52.png" /></figure>

<figure><img src="image_53.png" /></figure>

<figure><img src="image_54.png" /></figure>
# Architecture Centralisée

## Principe

* Tous les utilisateurs se connectent à un serveur central qui stocke et synchronise les données.

## Fonctionnement

* Les clients envoient leurs actions/modifications au serveur

* Le serveur traite, centralise et redistribue les données vers tous les clients connectés

* Les utilisateurs n'échangent pas directement entre eux

**Exemples :** Google Docs, CodiMD, Etherpad, ENT (ex : apps.education.fr)

## Avantages / Inconvénients

<figure><img src="image_55.png" /></figure>

* Configuration simple côté client

<figure><img src="image_56.png" /></figure>

* Données centralisées = gestion, sauvegarde, sécurité facilitée

<figure><img src="image_57.png" /></figure>

* Bonne performance de la synchronisation en temps réel

<figure><img src="image_58.png" /></figure>

* Dépendance au serveur (point de défaillance unique)

<figure><img src="image_59.png" /></figure>

* Problèmes de scalabilité si trop d'utilisateurs

<figure><img src="image_60.png" /></figure>

* Moins de résilience en cas de panne réseau ou serveur, ou d'attaque

<figure><img src="image_61.png" /></figure>
# Architecture Distribuée Décentralisée

## Principe

* Les utilisateurs (ou nœuds) communiquent directement entre eux, sans serveur central.

## Fonctionnement

* Chaque poste agit comme client et serveur

* Les données sont échangées et répliquées de manière distribuée

* Synchronisation locale ou globale entre pairs

## Exemples : Git (système de version distribué), logiciels P2P (ex : BitTorrent), Blockchain

## Avantages / Inconvénients

<figure><img src="image_62.png" /></figure>

* Plus grande résilience (pas de point de défaillance unique)

<figure><img src="image_63.png" /></figure>

* Meilleure gestion des connexions intermittentes

<figure><img src="image_64.png" /></figure>

* Confidentialité accrue (données conservées localement, flux mieux gérés)

<figure><img src="image_65.png" /></figure>

* Complexité de synchronisation (conflits, cohérence), de disponibilité

<figure><img src="image_66.png" /></figure>

* Complexité de la gestion de la sécurité

<figure><img src="image_67.png" /></figure>

* Moins efficace en cas de collaboration très synchrone

<figure><img src="image_68.png" /></figure>

<figure><img src="image_69.png" /></figure>
# Problème fondamental : Théorème CAP

[Brewer, E.A. 2000 "Towards Robust Distributed Systems" PODC 2000.]

## Systèmes distribués (répliqués)

* **Consistency (Cohérence)** : Tous les nœuds voient les mêmes données au même moment

* **Availability (Disponibilité)** : les données partagées restent accessibles à tout moment

* **Partition Tolerance (Tolérance au partitionnement)** : Le système continue de fonctionner même si des pertes de communication se produisent entre des parties du système.

* 2 des 3 propriétés peuvent être assurées en même temps

* Dans un système collaboratif

* les partitions réseaux doivent être tolérées

* les données partagées doivent être accessibles à tout moment

* Relâcher la cohérence : les répliques peuvent diverger, mais elles convergent à terme

<figure><img src="image_70.png" /></figure>
<figure><img src="image_71.png" /></figure>

# Mécanisme de réplication – Transformées Opérationnelles

<figure><img src="image_72.png" /></figure>

```c
T(ins(p1,c1), ins(p2,c2)) :-
    if (p1<p2) return ins(p1,c1)
    else return ins(p1+1,c1)
endif
```

Transforme les opérations non commutatives pour les faire "commuter"

* Approche générique

* Complexité

* Moyenne : $O(H.c)$ H: #ops

* Pire cas : $O(H^2)$ c: avg. #conc. ops

* Difficile d'écrire des fonctions de transformations correctes

* Vecteurs d'états utilisés pour détecter la concurrence ⇒ **passage à l'échelle limité**

**Cette approche n'est pas vraiment adaptée au environnement pair-à-pair à large échelle**

<figure><img src="image_73.png" /></figure>
# Mécanisme de réplication – Type de données répliquées sans conflit (CRDT)

## CRDT : types de données abstraits

* Conçus pour être répliqués sur plusieurs sites/copies

* Modifications sans coordination

* Convergence forte

## CRDT basés sur l'état (state-based)

* Répliques transmettent l'état complet de la donnée

* Propriétés d'un demi-treillis : les états forment un ordre partiel avec une borne supérieure minimale $\sqcup$

* **Commutatif** : $x \sqcup y = y \sqcup x$, **idempotent** : $x \sqcup x = x$, **associatif** : $(x \sqcup y) \sqcup z = x \sqcup (y \sqcup z)$

## CRDT basés sur les opérations (operation-based)

* Répliques transmettent des mises à jour/opérations

* Les opérations concurrentes sont commutatives : $S \bullet U \bullet U' \equiv S \bullet U' \bullet U$

<figure><img src="image_74.png" /></figure>

<figure><img src="image_75.png" /></figure>

<figure><img src="image_76.png" /></figure>
# Exemple de résultats de recherche : CRDT des séquences

* Prototype d'éditeur collaboratif pair-à-pair [github.com/coast-team/mute]

* De meilleures performances qu'un système centralisé (i.e. GoogleDocs)

<figure><img src="image_77.png" /></figure>

<figure><img src="image_78.png" /></figure>

<figure><img src="image_79.png" /></figure>

<figure><img src="image_80.png" /></figure>

<figure><img src="image_81.png" /></figure>
# Conception expérimentale : l'effet du délai sur les utilisateurs

20 groupes de 4 étudiants

Plusieurs tâches d'édition collaborative :

* Correction

* Ordonnancement

* Prise de notes

* Utilisation d'un éditeur collaboratif + chat

* Chaque groupe a eu un certain délai (0, 4, 6, 8, 10 s)
# Tâche : Prise de note collaborative

<figure><img src="image_82.png" /></figure>

<figure><img src="image_83.png" /></figure>
<figure><img src="image_84.png" /></figure>

# Le délai réduit les performances du groupe

<figure><img src="image_85.png" /></figure>

<figure><img src="image_86.png" /></figure>

<figure><img src="image_87.png" /></figure>

* Le délai augmente le taux d'erreur et de redondance

* Le délai diminue le nombre de mots-clés pertinents

<figure><img src="image_88.png" /></figure>
# Sécurité des systèmes collaboratifs distribués

## Chiffrement de bout en bout pour des données mutables

Chiffrement entre clients et serveur pour les systèmes collaboratifs traditionnels (Google Drive, CodiMD,...)

<figure><img src="image_89.png" /></figure>

Transformés opérationnelles

Transform(msg₁, msg₂)

Transform(msg₂, msg₁)

Chiffrement utilisant des CRDTs

<figure><img src="image_90.png" /></figure>

Contrôle d'accès sans autorité centrale, Gestion de clés de groupe, Attaques Byzantines

<figure><img src="image_91.png" /></figure>
# PEPR eNSEMBLE - Futur de la collaboration

* Programmes et Equipements prioritaires de recherche

* Porteurs : Univ. Grenoble Alpes, Univ. Paris-Saclay, CNRS, Inria

* Participants : > 25 établissements partenaires

* Budget : 38,25 M€

* Durée : 8 ans (2022-2030)

* Répondre aux problématiques de la collaboration numérique

* Concevoir des environnements collaboratifs et des modèles conceptuels novateurs

* Combiner l'intelligence humaine et artificielle dans des configurations collaboratives

* Permettre des expériences collaboratives fluides qui favorisent l'interopérabilité

* Soutenir la création de collectifs sains et durables

* Spécifier des normes sociotechniques avec des cadres juridiques/réglementaires

* Interdisciplinarité: informatique, ergonomie, psychologie cognitive, sociologie, design, droit, économie, science de gestion

<figure><img src="image_92.png" /></figure>

<figure><img src="image_93.png" /></figure>
<figure><img src="image_94.png" /></figure>

Merci de votre attention. Questions ?

<figure><img src="image_95.png" /></figure>