Présentation du Collaboration SDK
Découvrez les problèmes résolus par le Univer Collaboration SDK, ses modules, ses points d’extension et les fonctions produit qui restent à la charge de votre application.
Le Univer Collaboration SDK est un SDK de collaboration côté serveur pour le modèle documentaire Univer. Il fournit la transformation opérationnelle (OT1), les révisions2, les instantanés, la synchronisation en temps réel et la persistance pour que plusieurs clients Univer modifient la même Unit faisant autorité.
Les développeurs l’intègrent dans leur application Node.js, raccordent l’identité et les autorisations via les Middleware et ajoutent la journalisation et d’autres traitements via les Middleware ou les Events. Un Database Adapter relie séparément les données de collaboration à la base de l’application.
Ce n’est pas un produit documentaire complet
Le Collaboration SDK fournit le cœur de collaboration. Il ne fournit ni utilisateurs, ni rôles, ni hiérarchie, ni partage, ni espaces de fichiers, ni processus métier. Ces fonctions produit et leurs modèles de données restent à la charge de votre application.
Problèmes résolus
Le Web SDK affiche et modifie les contenus Sheet, Doc, Slide, Board et Base dans le navigateur. L’édition à plusieurs nécessite aussi un serveur faisant autorité pour charger le contenu, confirmer les modifications concurrentes, faire progresser les révisions et rétablir un état cohérent pour les clients déconnectés.
Il convient aux applications qui :
- utilisent déjà Univer pour leur éditeur et ont besoin d’édition collaborative en temps réel ;
- souhaitent héberger leurs données de collaboration et choisir leur base de données ;
- doivent appliquer leurs règles existantes d’identité, d’autorisation ou de locataire aux opérations collaboratives ;
- ont besoin de History, Thread Comment ou Worktree en complément de la collaboration de base.
Un service de collaboration complet
| Module | Responsabilité principale |
|---|---|
| Collaboration Client | Charge les Units, soumet les jeux de modifications et maintient l’état collaboratif du navigateur |
| Node Transport | Reçoit le trafic HTTP/WebSocket et exécute les middleware d’entrée de l’application |
UniverCollabEndpoint | Implémente le protocole client, les Sessions, Rooms, Presence, ACK et diffusions |
UniverCollabService | Gère le cycle de vie des Units, exécute l’OT et confirme des révisions continues |
| Database Adapter | Stocke atomiquement les instantanés, jeux de modifications, révisions et états d’idempotence des soumissions |
Fonctions fournies par le SDK
Le cœur comprend :
- la création, le chargement, la suppression et la restauration des Units Sheet, Doc, Slide, Board et Base ;
- les instantanés, jeux de modifications, révisions, l’OT et l’idempotence des soumissions ;
- le chargement HTTP du contenu et les Sessions, Rooms, Presence, ACK et diffusions WebSocket ;
- les Middleware aux frontières Transport, Endpoint et Service ;
- les Events locaux au processus pour la création des Units, les commits de modifications, la suppression et la restauration ;
- les contrats des Database Adapters Memory, SQLite et personnalisés ;
- la mise à l’échelle horizontale par déploiement sur plusieurs nœuds : les nœuds coopèrent via un adaptateur pub/sub et un stockage de session tickets partagé, avec une implémentation Redis fournie.
Une fois le circuit de base fonctionnel, l’application peut ajouter l’historique des versions, les commentaires en fil, les brouillons Worktree et la conversion de fichiers Office côté serveur. Ces fonctions disposent de leurs propres Services, Middleware, Events ou Database Adapters.
Fonctions à la charge de l’application
| Collaboration SDK | Application |
|---|---|
| État collaboratif des Units | Utilisateurs, locataires, hiérarchie et relations de partage |
| OT, révisions et instantanés | Connexion, Sessions et correspondance des identités |
| Sessions, Rooms et Presence de collaboration | Rôles, ACL et politiques produit |
| Database Adapters de collaboration | Fichiers, stockage objet et bases de données produit |
| Points d’extension Middleware et Event | Journalisation, audit, métriques et intégrations externes |
| Endpoints du protocole client | API métier et processus tels que la création de documents |
Trois points d’extension généraux
| Point d’extension | Problèmes résolus |
|---|---|
| Middleware | Inspecte ou enrichit le Context, refuse une requête ou consigne son traitement pendant une opération |
| Event | Observe les changements d’état confirmés pour mettre à jour un état dérivé local au processus ou lancer des suites non critiques |
| Database Adapter | Choisit le stockage et implémente les contrats d’atomicité, de CAS et d’idempotence |
L’identité et les autorisations s’intègrent via les Middleware. Utilisez les Middleware pour valider et restreindre les opérations avant leur exécution, et les Events pour consigner les changements ou lancer des traitements après confirmation de l’état. Les deux peuvent servir à la journalisation, au suivi des requêtes, aux métriques et aux mises à jour d’état dérivé. Consultez Middleware et Events pour leurs frontières d’exécution.
Par où commencer
- Exécutez le démarrage rapide pour vérifier le circuit complet dans deux navigateurs.
- Lisez Frontières et relations des modules pour comprendre le rôle de chaque paquet.
- Poursuivez avec Middleware et Events, Identité et autorisations ou Adaptateurs de base de données, selon votre intégration.
- Consultez les modules d’extension de collaboration pour History, les commentaires, Worktree et la conversion de fichiers.
Footnotes
-
La transformation opérationnelle (OT) adapte les opérations concurrentes créées sur des révisions différentes pour les appliquer de manière cohérente. Elle traite les modifications, sans remplacer tout le document par le dernier instantané reçu. ↩
-
Une révision identifie une position dans l’historique confirmé d’une Unit. Un changeset contient les opérations d’une soumission ; sa confirmation fait avancer cet historique. Ce n’est ni une version du SDK ni un horodatage. ↩
Que pensez-vous de ce guide ?