24 research outputs found

    A Study of Implementation Methodologies for Distributed Real Time Collaboration

    Get PDF
    Collaboration drives our world and is almost unavoidable in the programming industry. From higher education to the top technological companies, people are working together to drive discovery and innovation. Software engineers must work with their peers to accomplish goals daily in their workplace. When working with others there are a variety of tools to choose from such as Google Docs, Google Colab and Overleaf. Each of the aforementioned collaborative tools utilizes the Operational Transform (OT) technique in order to implement their real time collaboration functionality. Operational transform is the technique seen amongst most if not all major collaborative tools in our industry today. However, there is another way of implementing real time collaboration through a data structure called Conflict-free Replicated Data Type (CRDT) which has made claims of superiority over OT. Previous studies have taken place with the focus on comparing the theory behind OT and CRDT\u27s, but as far as we know, there have not been studies which compare real time collaboration performance using an OT implementation versus a CRDT implementation in a popularly used product such as Google Docs or Overleaf. Our work will focus on comparing OT and CRDT\u27s real time collaborative performance in Overleaf, an academic authorship tool, which allows for easy collaboration on academic and professional papers. Overleaf\u27s current published version implements real time collaboration using operational transform. This thesis will contribute an analysis of the current real time collaboration performance of operational transform in Overleaf, an implementation of CRDT\u27s for real time collaboration in Overleaf and an analysis of the performance of real time collaboration through the CRDT implementation in Overleaf. This thesis describes the main advantages and disadvantages of OT vs CRDTs, as well as, to our knowledge, the first results of a non-theoretical attempt at implementing CRDTs for handling document edits in a collaborative environment which was originally operating using an OT implementation

    A Web Component for Real-Time Collaborative Text Editing

    Get PDF
    Real-time collaborative software allows physically distinct people to co-operate by working on a shared application state, receiving updates from each other in real-time. The goal of this thesis was to create a developer tool, which would allow web application developers to easily integrate a collaborative text editor into their applications. In order to remain technology agnostic and to utilize the latest web standards, this product was implemented as a web component, a reusable user interface component built with native web browser features. The main challenge in developing a real-time collaboration tool is the handling of concurrent updates, which might conflict with one another. To tackle this issue, many consistency maintenance algorithms have been presented in the academic literature. Most of these techniques are variations of two main approaches: operational transformation and commutative replicated data types. In this thesis, we reviewed some of these methods and chose the GOTO operational transformation algorithm to be implemented in our component. Besides selecting and implementing an appropriate consistency maintenance technique, the contributions of this thesis include the design of an easy-to-use application programming interface (API). Our solution also fulfills some practical requirements of group editors not covered by the consistency maintenance theory, such as session management and cleaning of the message queue. The created web component succeeds in encapsulating the complexity related to concurrency control and handling of joining peers in the client-side implementation, which allows the application logic to remain simplistic. This open-source product enables software developers to add a collaborative text editor to their web applications by broadcasting the updates provided by an event-based API to participating peers

    Convergence et sécurité d'accès dans les systèmes d'édition collaborative massivement répartis

    Get PDF
    RÉSUMÉ Parmi les défis des systèmes d'édition collaborative figure la cohérence des objets partagés. Dans la perspective d'une édition cohérente, le système doit garantir la convergence. Pour assurer la cohérence des objets partagés, la littérature propose plusieurs solutions. Les différentes approches majeures proposées sont : l'approche des types de données commutatives répliquées (CRDT) et l'approche de la transformée opérationnelle (OT). L'approche CRDT considère des opérations commutatives qui peuvent être exécutées dans un ordre différent. L'une des difficultés auxquelles CRDT se bute réside en la commutativité des opérations. Toutes les opérations d'édition doivent être commutatives afin d'être exécutées dans un ordre quelconque. L'approche de la transformée opérationnelle quant à elle propose une transformation des opérations distantes reçues par rapport aux opérations qui lui sont concurrentes ; même si elles sont déjà exécutées. Pour effectuer les transformations, l'approche OT utilise un algorithme de transformation inclusive (IT). Dans la littérature, plusieurs travaux ont prouvé que les principaux algorithmes de transformation inclusive proposés ne satisfont pas le critère de convergence. Outre la cohérence, la sécurisation des interactions est un autre défi des systèmes d'édition collaborative. Le contrôle d'accès est l'un des modèles de politiques de sécurité applicable dans ce cadre. Il s'agit d'autoriser ou d'interdire l'édition à certains utilisateurs. Le contrôle d'accès doit être uniformément déployé pour éviter de compromettre la cohérence des opérations d'édition. Une opération d'édition valide sur un site doit l'être partout. Une opération refusée sur un site doit être refusée partout. Dans le contexte étudié, le protocole de sécurité est fiable s'il préserve la cohérence du système. Fournir cette preuve de fiabilité est une tâche ardue. Le nombre de cas à examiner est infini. De plus, pour une vérification automatique, le défaut de ressources survient si des techniques appropriées ne sont pas exploitées. Dans cette thèse, nous nous intéressons aux défis que constituent la convergence et le contrôle d'accès dans les systèmes d'édition collaborative répartis. Nous considérons un objet textuel à structure linéaire qui est massivement édité dans une architecture répartie. L'approche de gestion de cohérence utilisée est la transformée opérationnelle. Ainsi, chaque utilisateur a sa copie locale du document partagé. Les opérations générées sur un site sont aussitôt diffusées aux autres utilisateurs. Elles peuvent être exécutées dans un ordre quelconque. Les types d'opérations d'édition sont : l'insertion d'un caractère et la suppression de caractère. Nous intégrons également un protocole de contrôle d'accès à l'édition collaborative. Notre thèse se présente sous la forme de trois articles scientifiques, chacun traitant d'une problématique bien spécifique. Dans le premier article, nous abordons la problématique de la convergence. Nous avons adopté une démarche en plusieurs étapes. Une exploration a été initialement faite afin de vérifier s'il est possible d'avoir une fonction IT convergente. En utilisant la méthode de la synthèse de contrôleur et les automates de jeu, nos investigations ont révélé qu'aucune IT basée uniquement sur le caractère et la position ne peut garantir une convergence. L'identification des causes de divergence a permis d'amorcer la résolution du « problème de synthèse de contrôleur ». Ainsi, un troisième paramètre a été ajouté aux opérations d'insertion. Il permet de manipuler le nombre de caractères supprimés avant la position d'insertion indiquée. Une fonction de détermination de la valeur de ce paramètre a été proposée. Une fonction IT a été par la suite proposée, en tenant compte des propositions précédentes. En utilisant la vérification sur modèle (model-checking), la preuve a été apportée que notre IT garantit bien la convergence. Le deuxième article propose l'intégration d'un protocole de sécurité optimiste. L'article aborde la problématique de la fiabilité du protocole dans un espace d'états infini. Il est déployé au dessus de protocole de synchronisation du système d'édition collaborative. Nous faisons l'hypothèse que le système vérifie la propriété de cohérence en l'absence du contrôle d'accès. Pour affronter les difficultés relatives à la preuve de fiabilité, l'approche du model-checking symbolique a été préférée. Le model-checking borné a été utilisé avec l'outil Alloy. L'exploration faite pour des instances dont la taille maximale est de treize « signatures », a permis de conclure la préservation de la cohérence par le protocole de contrôle d'accès. Notons que ces instances ne sont pas massives mais la combinatoire résultante n'est pas négligeable. Le troisième article aborde la problématique de réduction de système. Des investigations ont été menées afin d'avoir un modèle fini équivalent au système d'édition collaborative, au regard de la propriété de cohérence. Le modèle abstrait proposé comporte trois sites coopératifs, dont l'un est administrateur. Ce modèle à espace d'états fini étant prouvé équivalent par rapport à la propriété de cohérence, au système à espace d'états infini, il a servi de cadre pour la vérification automatique. En utilisant l'outil Uppaal et le formalisme d'automate, nous avons prouvé par model-checking que le modèle abstrait préserve la cohérence. Par conséquent, le protocole de contrôle d'accès préserve la cohérence de système d'édition collaborative. Nos travaux comportent quelques limitations liées à leur portée. Nous avons manipulé des objets textuels à structure linéaire sur lesquels ne sont appliquées que des opérations d'insertion et de suppression de caractères. De plus, la gestion des droits d'accès est basée sur un modèle mono-administrateur. La performance du protocole de contrôle d'accès n'a pas non plus été prise en compte. Les travaux auraient sans doute plus d'envergure s'ils couvraient plusieurs types d'objets, plusieurs types d'opérations d'édition, plusieurs administrateurs et une étude de performance. Nos futures travaux pourraient être consacrés à l'élargissement de la portée de la présente thèse.----------ABSTRACT The consistency of the shared documents is one of the most important challenges in collaborative editing systems. To achieve consistency, a solution must ensure the convergence criteria. Several solutions are proposed in litterature to achieve consistency of the shared documents. The major approaches are: commutative replicated data type (CRDT) and operational transformation (OT). CRDT considers some commutative operations which could be executed in different order. The main difficulty of CRDT is to compute commutative operations. OT approach proposes to transform remote operations against their concurrent operations, even if they are already executed. An inclusive transformation function is used to compute the transformations. In the litterature, several works show that the main inclusive transformation (IT) functions proposed do not ensure convergence. Besides consistency, security of the edition is another challenge in distributed collaborative systems. Access control is a model of security policy that could be used. It consists of granting or revoking editing authorizations for users. Access control must be uniformly deployed to not compromise the consistency of the system. A valid editing operation at one site must be valid at all other sites. As the same time, an invalid operation at one site, must be invalid everywhere. In the current context, the security protocol is reliable if it preserves the consistency of the system. Produce the proof of reliability is difficult. It requires examining infinite number of cases. In addition, with automatic verification, ressources become insufficient if appropriate techniques are not used. This thesis is interested in consistency and access control challenges in distributed collaborative editing systems. It considers a textual object with a linear structure that is massively edited in a distributed architecture. OT is used to manage consistency. Each user has a local copy of the shared document. Locally-generated operations are immediately broadcast to other users. Operations could be executed in any order. Their types are inserting and deleting characters. To ensure security, collaborative edition is combined with an access control protocol. The thesis consists of three scientific articles. Each of them deals with a specific problem. In the first article, we adress the problem of consistency and proceed in several steps. Initially, we explore the existence of convergent IT functions of OT, which ensure data consistency. Using the controller synthesis approach and game automata, we conclude that there is no IT function, based only on character and position as parameters of insert and delete operations, which ensure data consistency. The investigation of the causes of divergence led to solve the controller synthesis problem. Thus, a new parameter is added to the insert operation signature. It handles the number of characters deleted before the inserting position. The function needed to compute the value of this parameter is provided. Finally, based on these contributions, we propose an IT function and show that it ensures convergence. The proof is achieved by a symbolic model-checking emulated using the tool Uppaal. The second article adresses the reliability of security protocol in an infinite state space. An optimist access control protocol is considered to be deployed over any correct synchronization protocol. The symbolic model-checking approach is choosen to deal with the proof of reliabi--lity. For this purpose, bounded model-checking is used with the tool Alloy. Exploration made with instances whose maximum size is thirteen allow to conclude the preservation of consistency by the access control protocol. These instances are not massive but the resulting combinatorial is important. The third article adresses the problem of system reduction. In this article, we investigate a finite model equivalent to a distributed collaborative editing system, with regard to consistency. The abstract model proposed consists of three cooperative sites including the administrator. This finite state model is proved by model-checking to preserve consistency. Consequently, the access control protocol preserves consistency of any correct distributed collaborative editing system. The model-checking techniques exploits Uppaal tool and automata. Our work has several limitations. We consider textual objects with linear structure. These objects are edited by applying some operations which are inserting and deleting characters. In addition, the management of access rights is based on one-administrator model. The performance study of the access control protocol is not done. The work would probably be more extensive if it covered several types of objects, several types of editing operations, many administrators and the performance study. Our future work could be devoted to the widening of the scope of this thesis

    1991-1992 Course Catalog

    Get PDF
    1991-1992 Course Catalo

    Évaluation de la confiance dans la collaboration à large échelle

    Get PDF
    Large-scale collaborative systems wherein a large number of users collaborate to perform a shared task attract a lot of attention from both academic and industry. Trust is an important factor for the success of a large-scale collaboration. It is difficult for end-users to manually assess the trust level of each partner in this collaboration. We study the trust assessment problem and aim to design a computational trust model for collaborative systems. We focused on three research questions. 1. What is the effect of deploying a trust model and showing trust scores of partners to users? We designed and organized a user-experiment based on trust game, a well-known money-exchange lab-control protocol, wherein we introduced user trust scores. Our comprehensive analysis on user behavior proved that: (i) showing trust score to users encourages collaboration between them significantly at a similar level with showing nick- name, and (ii) users follow the trust score in decision-making. The results suggest that a trust model can be deployed in collaborative systems to assist users. 2. How to calculate trust score between users that experienced a collaboration? We designed a trust model for repeated trust game that computes user trust scores based on their past behavior. We validated our trust model against: (i) simulated data, (ii) human opinion, and (iii) real-world experimental data. We extended our trust model to Wikipedia based on user contributions to the quality of the edited Wikipedia articles. We proposed three machine learning approaches to assess the quality of Wikipedia articles: the first one based on random forest with manually-designed features while the other two ones based on deep learning methods. 3. How to predict trust relation between users that did not interact in the past? Given a network in which the links represent the trust/distrust relations between users, we aim to predict future relations. We proposed an algorithm that takes into account the established time information of the links in the network to predict future user trust/distrust relationships. Our algorithm outperforms state-of-the-art approaches on real-world signed directed social network datasetsLes systèmes collaboratifs à large échelle, où un grand nombre d’utilisateurs collaborent pour réaliser une tâche partagée, attirent beaucoup l’attention des milieux industriels et académiques. Bien que la confiance soit un facteur primordial pour le succès d’une telle collaboration, il est difficile pour les utilisateurs finaux d’évaluer manuellement le niveau de confiance envers chaque partenaire. Dans cette thèse, nous étudions le problème de l’évaluation de la confiance et cherchons à concevoir un modèle de confiance informatique dédiés aux systèmes collaboratifs. Nos travaux s’organisent autour des trois questions de recherche suivantes. 1. Quel est l’effet du déploiement d’un modèle de confiance et de la représentation aux utilisateurs des scores obtenus pour chaque partenaire ? Nous avons conçu et organisé une expérience utilisateur basée sur le jeu de confiance qui est un protocole d’échange d’argent en environnement contrôlé dans lequel nous avons introduit des notes de confiance pour les utilisateurs. L’analyse détaillée du comportement des utilisateurs montre que: (i) la présentation d’un score de confiance aux utilisateurs encourage la collaboration entre eux de manière significative, et ce, à un niveau similaire à celui de l’affichage du surnom des participants, et (ii) les utilisateurs se conforment au score de confiance dans leur prise de décision concernant l’échange monétaire. Les résultats suggèrent donc qu’un modèle de confiance peut être déployé dans les systèmes collaboratifs afin d’assister les utilisateurs. 2. Comment calculer le score de confiance entre des utilisateurs qui ont déjà collaboré ? Nous avons conçu un modèle de confiance pour les jeux de confiance répétés qui calcule les scores de confiance des utilisateurs en fonction de leur comportement passé. Nous avons validé notre modèle de confiance en relativement à: (i) des données simulées, (ii) de l’opinion humaine et (iii) des données expérimentales réelles. Nous avons appliqué notre modèle de confiance à Wikipédia en utilisant la qualité des articles de Wikipédia comme mesure de contribution. Nous avons proposé trois algorithmes d’apprentissage automatique pour évaluer la qualité des articles de Wikipédia: l’un est basé sur une forêt d’arbres décisionnels tandis que les deux autres sont basés sur des méthodes d’apprentissage profond. 3. Comment prédire la relation de confiance entre des utilisateurs qui n’ont pas encore interagi ? Etant donné un réseau dans lequel les liens représentent les relations de confiance/défiance entre utilisateurs, nous cherchons à prévoir les relations futures. Nous avons proposé un algorithme qui prend en compte les informations temporelles relatives à l’établissement des liens dans le réseau pour prédire la relation future de confiance/défiance des utilisateurs. L’algorithme proposé surpasse les approches de la littérature pour des jeux de données réels provenant de réseaux sociaux dirigés et signé
    corecore