Collaboration sous Calc avec le partage de classeur

L'actualité sur OpenOffice.org ou LibreOffice en provenance des équipes de développement ou de leur site officiel.

Modérateur : Vilains modOOs

Règles du forum
Cette section n'est accessible qu'en consultation. Si vous désirez publier une information concernant l'actualité sur ou autour de OpenOffice.org, LibreOffice ou NeoOffice, il vous suffit de contacter l'équipe d'administration du forum.
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12226
Inscription : 08 nov. 2005 16:23
Localisation : Caen, France

Collaboration sous Calc avec le partage de classeur

Message par Bidouille »

Les développeurs vous informent...
Par Thomas Benisch

L'une des issues les plus votées sous Calc est la n° 8811 (Permettre à de multiples utilisateurs de modifier la même feuille dans un classeur partagé), et qui a rassemblé 143 votes. Après quelques évaluations, nous avons décidé de mettre cette fonctionnalité à l'essai. Avant de commencer l'implémentation, j'aimerai vous présenter quelques idées de concept.

Concept

L'idée fondamentale est de permettre à plusieurs utilisateurs d'éditer une feuille de calcul partagée de manière simultanée. Le concept est plutôt simple et avec une solution basée sans serveur, cela signifie aucune comparaison de document (versioning), aucun contrôle d'accès, aucun message, tâche et discussion. La granularité pour le partage est la feuille de calcul dans son entier.

Une feuille partagée sera identifiée par son statut partagé. Le statut partagé peut être stocké en tant que propriété partagée dans les paramètres du document, comme entrée de premier niveau dans le répertoire du fichier ou dans un fichier séparé à côté du classeur.

Si un utilisateur ouvre une feuille partagée, une copie temporaire du fichier est créée. L'utilisateur travaille sur la copie temporaire, cela signifie qu'il n'y a pas de verrouillage exclusif en écriture requis pendant l'édition du document. Quand l'utilisateur sauvegarde le document, tous les changements faits de la copie temporaire seront fusionnés dans le fichier partagé. Pendant ce processus de fusion, un verrou exclusif en écriture sur le fichier partagé est exigé. S'il n'y a pas de conflit pendant le processus de fusion, par exemple deux utilisateurs ont édité la même cellule, les conflits de fusion doivent être résolus interactivement par chaque utilisateur. Probablement un dialogue « Accepter ou rejeter le changement » pourrait être réutilisé.

Processus de fusion

Le processus de fusion intégral se bas sur la fonctionnalité existante de traçage des changements, cela signifie que pendant l'édtion d'une feuille partagée, ce traçage peut être activé. Chaque document, ce qui veut dire le fichier partagé et toutes ses copies temporaires, ont une liste de traçage interne des modifications, celle-ci se compose de toutes les actions de modification enregistrées. En fusionnant, la liste de traçage des modifications des copies temporaires peut être synchronisé avec la liste du fichier partagé. Afin de réaliser cela, les étapes suivantes sont nécessaires pour la fusion :
  1. Défaire toutes les modifications faîtes par l'utilisateur dans la copie temporaire.
  2. Appliquer toutes les modifications depuis la dernière sauvegarde du fichier partagé vers la copie temporaire.
  3. Refaire toutes les modifications effectuées par l'utilisateur dans la copie temporaire.
  4. Copier le fichier temporaire vers le fichier partagé.
Bien que ce procédé puisse sembler compliqué, il garantit que la liste de traçage des changements reste synchronisé.

Verrouillage de fichier

Comme l'évaluation l'a montrée, le verrouillage de fichier ne fonctionne pas au niveau du multi-plateforme, par exemple il est possible d'avoir un verrou d'écriture sur le même fichier via Samba depuis Windows et via NFS depuis Linux/Solaris. Comme ce problème ne peut être résolu à court terme au niveau du système d'exploitation, nous avons décidé d'implémenter un verrou de fichier au niveau du document lui-même. L'idée est d'écrire le verrou fichier à côté du fichier document, qui contiendra l'information que l'utilisateur a fermé le dossier.

Restrictions

Comme le processus de fusion intégrale se base sur le traçage des modifications, ce sont uniquement les actions de modification pouvant être fusionnées, qui sont enregistrées. Malheureusement lorsque le traçage des modifications bascule sur des fonctions de Calc, cela n'est plus activé (par exemple le tri, le Pilote de données, etc) et une partie des fonctionnalités de Calc est active mais pas enregistrée (par exemple le formatage de cellules et les actions de remplissage) et cela est donc perdu pendant le processus de fusion. Le problème principal semble être, que l'information de formatage de cellules sera perdue pendant la fusion. Cela pourra être amélioré si tout va bien, dans de prochaines versions.


.