Aller au contenu

Fondamentaux de la collaboration

Comprendre les domaines fonctionnels, les protocoles standards et les modèles d'architecture avant de choisir des outils.


Les 5 domaines de la collaboration

La collaboration numerique se decompose en cinq domaines fonctionnels. Chaque domaine peut etre couvert par un outil dedie ou par une plateforme intégrée.

Domaine Fonction Exemples d'outils
Partage de fichiers Stockage, synchronisation, partage de documents Nextcloud, Seafile, ownCloud
Messagerie instantanee Communication temps reel, canaux, threads Mattermost, Rocket.Chat, Zulip
Visioconference Appels audio/video, partage d'écran Jitsi Meet, BigBlueButton
Edition de documents Creation et co-edition en temps reel ONLYOFFICE, Collabora, CryptPad
Gestion de projets Tableaux, tâches, suivi d'avancement Deck (Nextcloud), Focalboard

Approche modulaire vs monolithique

Nextcloud couvre les cinq domaines via ses applications intégrées (Files, Talk, Office, Deck). L'avantage est la simplification de l'exploitation. L'inconvénient est que chaque module est moins mature qu'un outil dedie. L'approche recommandee dans ce tutoriel est Nextcloud pour les fichiers et l'edition + Mattermost pour la messagerie, chaque outil etant le meilleur de sa catégorie.


Protocoles standards

WebDAV, CalDAV, CardDAV

La famille DAV (Distributed Authoring and Versioning) repose sur HTTP et fournit un accès standardise aux ressources :

Protocole Fonction Port Spécification
WebDAV Lecture/écriture de fichiers 443 RFC 4918
CalDAV Synchronisation de calendriers 443 RFC 4791
CardDAV Synchronisation de contacts 443 RFC 6352
PROPFIND /remote.php/dav/files/alice/ HTTP/1.1
Host: cloud.example.com
Depth: 1
Content-Type: application/xml

<?xml version="1.0" encoding="UTF-8"?>
<d:propfind xmlns:d="DAV:">
  <d:prop>
    <d:getlastmodified/>
    <d:getcontentlength/>
    <d:resourcetype/>
  </d:prop>
</d:propfind>

Client universel

Tout client compatible WebDAV (Nautilus, Finder, davfs2, Cyberduck) peut accéder aux fichiers Nextcloud sans le client desktop.

WebSocket

Les applications de messagerie instantanee et d'edition collaborative utilisent WebSocket pour maintenir une connexion bidirectionnelle persistante entre le navigateur et le serveur.

GET /api/v4/websocket HTTP/1.1
Host: chat.example.com
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Sec-WebSocket-Version: 13

Le serveur répond avec 101 Switching Protocols et la connexion reste ouverte pour les événements temps reel (nouveaux messages, notifications de frappe, mises a jour de statut).

WebRTC

La visioconference utilise WebRTC pour établir des flux audio/video pair-a-pair. Les composants cles sont :

Composant Rôle
STUN server Découverte de l'adresse IP publique derriere un NAT
TURN server Relais du trafic quand la connexion directe est impossible
Signaling Échange des offres SDP et candidats ICE via WebSocket

TURN obligatoire en entreprise

Derriere un firewall corporate, la connexion pair-a-pair échoue dans 60-80 % des cas. Un serveur TURN (coturn) est indispensable pour garantir la connectivité.

ActivityPub

ActivityPub est le protocole de fédération du Fediverse. Il permet à des instances indépendantes de communiquer entre elles. Nextcloud Social et certains projets experimentent son integration pour le partage federe de fichiers et de messages.

{
  "@context": "https://www.w3.org/ns/activitystreams",
  "type": "Create",
  "actor": "https://cloud.example.com/users/alice",
  "object": {
    "type": "Note",
    "content": "Rapport Q1 disponible dans le dossier partage."
  }
}

Modèles de fédération

La fédération permet à plusieurs instances d'un même logiciel (ou de logiciels compatibles) d'échanger des données.

Fédération Nextcloud-a-Nextcloud

Deux serveurs Nextcloud peuvent échanger des partages de fichiers via le protocole OCM (Open Cloud Mesh) :

graph LR
    A["Nextcloud A<br/>cloud-a.example.com"] <-->|"OCM / WebDAV"| B["Nextcloud B<br/>cloud-b.example.com"]
    A1["Alice"] --> A
    B1["Bob"] --> B

L'utilisateur Alice peut partager un dossier avec bob@cloud-b.example.com. Le partage apparait dans l'interface de Bob comme un dossier local.

Fédération Mattermost

Mattermost ne supporte pas nativement la fédération inter-instances. Les alternatives sont :

  • Shared Channels (licence Enterprise) — synchronisation de canaux entre deux serveurs Mattermost
  • Webhook bridges — un bot relaye les messages entre instances via des webhooks entrants/sortants
  • Matrix bridge — un pont Mattermost-Matrix permet la communication avec tout serveur Matrix federe

Modes online et offline

Synchronisation fichiers

Le client desktop Nextcloud maintient une copie locale des fichiers. Les modifications effectuees hors ligne sont synchronisees au retour de la connexion. Le client gère les conflits en creant des copies suffixees (conflit).

Mode Comportement
Online Accès direct via navigateur ou WebDAV, pas de cache local
Sync Copie locale complète, synchronisation bidirectionnelle
VFS Fichiers virtuels, telechargement a la demande

Virtual File System (VFS)

Le mode VFS affiche tous les fichiers dans l'explorateur mais ne telecharge que ceux qui sont ouverts. Cela reduit l'espace disque utilise tout en gardant un accès offline aux fichiers récemment consultes.

Messagerie

Mattermost met en cache les messages recents dans le navigateur (IndexedDB). L'application mobile stocke egalement un cache local. Cependant, la rédaction de nouveaux messages necessite une connexion active au serveur.


Propriété et portabilité des données

L'auto-hebergement garantit la propriété des données. Mais la propriété sans portabilité est un leurre. Verifiez ces critères avant d'adopter un outil :

Critère Question
Export natif L'outil propose-t-il un export complet (fichiers + metadonnees) ?
Format ouvert Les données exportees sont-elles dans un format standard ?
API d'extraction Une API permet-elle d'extraire les données programmatiquement ?
Absence de lock-in Les fichiers sont-ils stockes en clair sur le système de fichiers ?
Migration documentee Existe-t-il un guide officiel de migration vers/depuis l'outil ?

Nextcloud

Les fichiers sont stockes en clair sur le disque (ou dans un bucket S3). Les metadonnees (partages, tags, commentaires) sont dans PostgreSQL. L'export est trivial : copier les fichiers + dump SQL.

Mattermost

Les messages sont dans PostgreSQL, les fichiers joints sur le disque ou S3. L'outil mmctl export génère une archive JSONL complète. L'import depuis Slack, Microsoft Teams et d'autres plateformes est supporte nativement.

CryptPad

Les documents sont chiffres côté client. L'export se fait document par document en format standard (XLSX, DOCX, MD). Il n'existe pas d'export global automatise — c'est la contrepartie du chiffrement zero-knowledge.


Synthese

graph TB
    subgraph "Domaines"
        F["Fichiers"]
        M["Messagerie"]
        V["Visioconference"]
        E["Edition"]
        P["Projets"]
    end

    subgraph "Protocoles"
        DAV["WebDAV / CalDAV / CardDAV"]
        WS["WebSocket"]
        RTC["WebRTC"]
        AP["ActivityPub"]
    end

    F --> DAV
    M --> WS
    V --> RTC
    E --> WS
    P --> WS
    F -.-> AP

Les protocoles ouverts garantissent l'interopérabilité entre les outils et les clients. Le chapitre suivant compare les solutions disponibles pour chaque domaine.