Vous pouvez avoir un logiciel collaboratif qui se méfie du cloud

Laboratoire de recherche Ink & Switch souhaite exploiter les avantages de la productivité et de la communication sans forcer les utilisateurs à abandonner le contrôle de leurs données.

QUELQUES SEMAINES il y a, alors qu'un froid hivernal humide s'installait à San Francisco, Peter van Hardenberg a décidé qu'il était temps de faire du lait de poule. Il connaissait une excellente recette de homepun d'un ancien collègue de Heroku, une entreprise qui aide les startups à créer des applications cloud -. Et s'il se souvient correctement, il a été stocké sur l'un des nombreux Heroku nuage serveurs. Mais lorsque Van Hardenberg a tapé l'URL pertinente, il a constaté que le placard était nu — perdu à une longue maintenance de serveur -. "Il venait de tomber d'Internet", dit-il.

Tels sont les problèmes quotidiens de la vie dans le nuage. Le cloud computing a rendu possible des outils essentiels, comme Google Docs et Slack. Mais cela vient avec des compromis. Le grille-pain intelligent ne peut pas porter de pain grillé sans wifi. La musique saute lorsque vous entrez dans le tunnel du métro, puis toute la bibliothèque disparaît lorsque la startup fait faillite. "Nous avons oublié ce que c'est que d'avoir un logiciel qui fonctionne", explique Van Hardenberg. Mais pour les éditeurs de logiciels, le modèle de logiciel de thésaurisation et les données sur les serveurs distants fonctionnent très bien. C'est lucratif, en fait. Remettez suffisamment de vos données et vous aurez éventuellement besoin d'un abonnement pour y accéder. Ou bien il est probablement utilisé pour la publicité. Aucune de vos données n'est vraiment la vôtre.

Van Hardenberg et ses collègues d'Ink & Switch, un laboratoire de recherche privé qui comprend d'autres aluns Heroku, souhaitent fournir une alternative à ce modèle. Ils appellent l'effort Logiciel "local - premier". ( Van Hardenberg considère comme une forme de pénitence pour avoir construit une entreprise basée sur l'offre de services cloud. ) Local - reflète d'abord un désir, en partie, de l'époque où le logiciel est entré dans une boîte en carton. À l'époque, vous l'avez installé sur votre ordinateur, où il est resté installé en toute sécurité, avec vos fichiers. Mais le but n'est pas d'abandonner complètement le cloud autant que de le souligner, explique Martin Kleppmann, un chercheur de l'Université de Cambridge qui travaille avec Ink & Switch. C'est "local - d'abord", pas "local - seulement L'idée est de marier le stockage local des logiciels et des données avec certaines choses que le cloud fait bien, comme la collaboration.

Les fichiers sont stockés sur les appareils des collaborateurs invités, plutôt que sur un serveur d'entreprise ou dans le cloud. C'est "décentralisé", en d'autres termes. Ce mot est souvent synonyme de blockchain. Et il y a des chevauchements, spirituellement, dans le désir d'éviter l'autorité centralisée. Mais les blockchains sont basés sur un manque de confiance avec les autres utilisateurs. Ils utilisent un processus coûteux sur le plan des calculs appelé consensus pour garantir que tout le monde s'accorde sur un état de fait commun, sans que personne n'en profite.

Le logiciel local - first utilise une technologie plus légère appelée conflit - types de données répliqués libres, ou CRDT, first étoffé par des chercheurs en France et au Portugal en 2011. Le concept est similaire à Git, un outil que les programmeurs utilisent pour gérer le développement de logiciels sur des plates-formes telles que Github. Mais au lieu de fusionner manuellement les modifications, comme Git l'exige, les CRDT le font automatiquement. Lorsque Kleppmann est tombé sur l'idée il y a quelques années, la technologie était utilisée principalement dans quelques bases de données backend et dans des applications académiques. Mais il a été intrigué par le concept. Il a donc décidé de le rendre plus utile aux développeurs, en concevant un JavaScript bibliothèque appelée Automerge qui a rendu les CRDT plus flexibles et efficaces. L'espoir est d'amener le logiciel à un point où les développeurs veulent l'utiliser pour construire une version locale de Slack ou Trello (Kleppmann veut personnellement un premier Evernote local).

L'équipe Ink & Switch a utilisé Automerge pour une poignée de prototypes. Van Hardenberg me montre une application appelée Pushpin. C'est un peu comme Pinterest, une carte où les utilisateurs peuvent partager des images et des notes, ainsi que des sites Web extraits de Chrome à l'aide d'un plugin et d'une fonction de chat simple. Il avait été agréablement surpris par le bon fonctionnement des CRDT. "C'était comme les frères Wright", dit-il. "Nous volons vraiment. Ce sentiment magique de liberté et d'indépendance."

Bien sûr, l'application met la barre assez basse. Il y a peu de données sur une application de babillard électronique et les opérations potentielles ne sont pas trop complexes. À l'heure actuelle, la technologie se débat sous la charge de plus de quelques mégaoctets - beaucoup pour les chats et les documents d'édition. Mais un logiciel de commande - plus élevé pour collaborer sur des photos ou des fichiers de conception peut atteindre l'échelle des gigaoctets — 1000 fois plus grand, ou plus. Mais Kleppmann espère qu'une réécriture continue des entrailles d'Automerge pourrait la rapprocher, permettant à ces applications plus grandes à l'échelle -.

La technologie apporte quelques autres défis uniques. "Il s'avère que les CRDT sont vraiment faciles à mettre en œuvre", explique Kleppmann. Les bases de données traditionnelles sont conçues pour être gravées dans la pierre; vous pouvez croire que le document devant vous est la dernière version. C’est la beauté d’avoir une copie centralisée. Ce n'est pas le cas avec les CRDT, qui impliquent des échanges - offs pour permettre l'édition en temps réel. Lorsque plusieurs utilisateurs apportent des modifications à un fichier, ils doivent avoir la certitude que les modifications et les conflits finiront par se résoudre. Il y a toujours un léger décalage car le document rattrape les dernières modifications. C'est à peine perceptible pour quelque chose comme Pushpin, mais cela deviendrait plus visible dans les applications plus complexes.

"Habituellement, cela se résout très bien. Mais il y a encore du travail à faire sur les cas de bord — pour décider quelles actions hiérarchiser lorsque deux utilisateurs font les choses en même temps. Avec les difficultés de mise en œuvre des CRDT, cela pourrait entraîner des problèmes", explique Emin Gun Sirer, professeur d'informatique à Cornell. "Je m'inquiéterais beaucoup de ce type de solutions dans des contextes où l'immédiateté et la cohérence sont très importantes." En d'autres termes, vous ne voudrez peut-être pas, par exemple, stocker des dossiers médicaux vitaux en tant que CRDT, de peur que les changements ne prennent rapidement racine lorsqu'ils sont remis d'un médecin urgentiste à un autre. Sirer est un fan du concept, tant que les développeurs sont prudents et l'utilisent dans les bons contextes. En évitant la collecte de données, les CRDT sont bons pour la confidentialité, note-t-il, en particulier lorsqu'ils sont combinés avec des communications par les pairs - à - sécurisées.