SwellRT

Last updated
SwellRT
Original author(s) Pablo Ojanguren & others, from the GRASIA research group, at Universidad Complutense de Madrid
Developer(s) Pablo Ojanguren & others
Initial releaseJuly 1, 2015;8 years ago (2015-07-01)
Stable release
0.2.0-beta / September 30, 2017;6 years ago (2017-09-30)
Repository github.com/SwellRT/swellrt
Written in Java, JavaScript
Operating system Cross-platform
Type Web framework Backend as a service
License Apache License
Website swellrt.org

SwellRT was a free and open-source backend-as-a-service and API focused to ease development of apps featuring real-time collaboration. It supported the building of mobile and web apps, and aims to facilitate interoperability and federation.

Contents

History

Origins

SwellRT has its origins in the work done within the GRASIA research team at the Universidad Complutense de Madrid, as part of the EU-funded project P2Pvalue (2013–2016), in a team led by Samer Hassan. [1] In 2014, the developer Pablo Ojanguren took the lead in forking Apache Wave, dropping several components, re-engineering it, and building a "Wave API" to build applications on top. [2] In 2015, such Wave API became a standalone product named SwellRT. [3] [4]

Impact on Apache Wave project

In 2016, several discussions took place within the Apache Wave community, aiming to tackle the stagnation and crisis state of the project. The Apache Software Foundation mentor of Apache Wave, Upayavira, [5] was concerned on the project stagnation, but framed SwellRT as Wave's potential savior:

Once more Wave is on the brink of retirement. However, this time, an offer has been made of code from SwellRT, which is a fork of Wave itself, and a concall has been scheduled for interested parties to discuss whether it is a go-er. It is my (limited) understanding that many of the complexity issues in the Wave code that have prevented community development have been resolved in SwellRT. [6]

Eventually, Wave was approved to continue within Apache incubator program, and a copy of SwellRT codebase was placed in the Apache Wave repository in order to grant the Wave community access to it. [7] In this regard, Intellectual Property of SwellRT was transferred to the Apache Foundation in 2017. [8]

Taiwan minister and free software programmer Audrey Tang showing SwellRT sticker on her tablet (Medialab Prado, Madrid) Audrey Tang showing a SwellRT sticker in her tablet at MediaLab-Prado. Madrid, Nov 2016.jpg
Taiwan minister and free software programmer Audrey Tang showing SwellRT sticker on her tablet (Medialab Prado, Madrid)

Recognition

In both 2016 [9] [10] and 2017, [11] [12] SwellRT participated in the Google Summer of Code as part of the set of projects from the Berkman Klein Center for Internet and Society at Harvard University. In both years, the contributions were highly relevant. In 2016, SwellRT replaced its XMPP-based federation protocol (inherited from Apache Wave) for the Matrix.org federation protocol. [13] In 2017, end-to-end encryption was implemented, [14] [15] following an innovative approach to encrypt communication in Operational Transformation collaborative documents. [16]

SwellRT received international recognition within the fields of decentralized technologies [17] [18] [19] [20] [21] [22] [23] and real-time collaboration. [24] [25] [26] [27] [28] [29] In the Decentralized Web Summit, organized by the Internet Archive in San Francisco, it was selected as one of the current innovative decentralization technologies. [30] It was also selected by the Redecentralize advocacy group, as one of the redecentralization projects whose founders were interviewed, [31] [32] It launched an international contest to develop apps using SwellRT, [33] which was awarded to free/open source developers in India. [34] And the project was presented as invited talk in the Center for Research on Computation and Society at Harvard's School of Engineering and Applied Sciences, [35] [36] and in several international conferences. [37] [38] [39] [40] [41] SwellRT was one of the first adopters of the Contributor Covenant code of conduct. [42]

The project has not received new commits since 2018. [43]

Technical approach

SwellRT was a fork from Apache Wave, inheriting some of its architecture and technology stack. However, it grew beyond the limits of Wave, first presenting itself as a web framework and nowadays growing to a backend-as-a-service platform. [44] [45] Its technical approach covers the following:

Collaborative objects

SwellRT provides a programming model based on collaborative objects. A collaborative object is a JSON-like object that can be shared by some users (or groups) that can make changes in real-time. Changes are propagated (and notified) in real-time to any user connected to the object.

A collaborative object can store properties of simple data types (string, integers, etc.) as well as rich-text and references to files or attachments. This approach is suitable to implement any document based collaborative application like text editors or spreadsheets.

Objects and participants are uniquely identified on the Internet enabling decentralized access from different federated servers.

Main features

Applications using SwellRT

SwellRT facilitated the development of mobile/web apps, and thus several apps have been built using this technology. Apart from the demos provided by SwellRT, [46] third-parties developed other demo apps such as a Q&A site, [47] an extension to extract keywords, [48] a collaborative scrollbar, [49] a political participation Android app, [50] a Trello-SwellRT connector. [51] Besides, two fully-fledged apps are currently using SwellRT technology:

See also

Related Research Articles

<span class="mw-page-title-main">OpenOffice.org</span> Discontinued free office software

OpenOffice.org (OOo), commonly known as OpenOffice, is a discontinued open-source office suite. Active successor projects include LibreOffice, Apache OpenOffice, Collabora Online and NeoOffice.

An anonymous P2P communication system is a peer-to-peer distributed application in which the nodes, which are used to share resources, or participants are anonymous or pseudonymous. Anonymity of participants is usually achieved by special routing overlay networks that hide the physical location of each node from other participants.

<span class="mw-page-title-main">Apache Groovy</span> Programming language

Apache Groovy is a Java-syntax-compatible object-oriented programming language for the Java platform. It is both a static and dynamic language with features similar to those of Python, Ruby, and Smalltalk. It can be used as both a programming language and a scripting language for the Java Platform, is compiled to Java virtual machine (JVM) bytecode, and interoperates seamlessly with other Java code and libraries. Groovy uses a curly-bracket syntax similar to Java's. Groovy supports closures, multiline strings, and expressions embedded in strings. Much of Groovy's power lies in its AST transformations, triggered through annotations.

A collaborative real-time editor is a type of collaborative software or web application which enables real-time collaborative editing, simultaneous editing, or live editing of the same digital document, computer file or cloud-stored data – such as an online spreadsheet, word processing document, database or presentation – at the same time by different users on different computers or mobile devices, with automatic and nearly instantaneous merging of their edits.

<span class="mw-page-title-main">Apache Solr</span> Open-source enterprise-search platform

Solr is an open-source enterprise-search platform, written in Java. Its major features include full-text search, hit highlighting, faceted search, real-time indexing, dynamic clustering, database integration, NoSQL features and rich document handling. Providing distributed search and index replication, Solr is designed for scalability and fault tolerance. Solr is widely used for enterprise search and analytics use cases and has an active development community and regular releases.

<span class="mw-page-title-main">Apache Cassandra</span> Free and open-source database management system

Cassandra is a free and open-source, distributed, wide-column store, NoSQL database management system designed to handle large amounts of data across many commodity servers, providing high availability with no single point of failure. Cassandra offers support for clusters spanning multiple datacenters, with asynchronous masterless replication allowing low latency operations for all clients. Cassandra was designed to implement a combination of Amazon's Dynamo distributed storage and replication techniques combined with Google's Bigtable data and storage engine model.

<span class="mw-page-title-main">Etherpad</span> Open-source web-based collaborative real-time editor

Etherpad is an open-source, web-based collaborative real-time editor, allowing authors to simultaneously edit a text document, and see all of the participants' edits in real-time, with the ability to display each author's text in their own color. There is also a chat box in the sidebar to allow meta communication.

<span class="mw-page-title-main">Google Wave</span> Software framework for real-time collaborative editing online

Google Wave, later known as Apache Wave, is a discontinued software framework for real-time collaborative editing online. Originally developed by Google and announced on May 28, 2009, it was renamed to Apache Wave when the project was adopted by the Apache Software Foundation as an incubator project in 2010.

<span class="mw-page-title-main">LibreOffice</span> Free and open-source office software suite

LibreOffice is a free and open-source office productivity software suite, a project of The Document Foundation (TDF). It was forked in 2010 from OpenOffice.org, an open-sourced version of the earlier StarOffice. The LibreOffice suite consists of programs for word processing, creating and editing of spreadsheets, slideshows, diagrams and drawings, working with databases, and composing mathematical formulas. It is available in 115 languages. TDF does not provide support for LibreOffice, but enterprise-focused editions are available from companies in the ecosystem.

Real-time text (RTT) is text transmitted instantly as it is typed or created. Recipients can immediately read the message while it is being written, without waiting.

<span class="mw-page-title-main">Kune (software)</span> Open source software

Kune was a free/open source distributed social network focused on collaboration rather than just on communication. That is, it focused on online real-time collaborative editing, decentralized social networking and web publishing, while focusing on workgroups rather than just on individuals. It aimed to allow for the creation of online spaces for collaborative work where organizations and individuals can build projects online, coordinate common agendas, set up virtual meetings, publish on the web, and join organizations with similar interests. It had a special focus on Free Culture and social movements needs. Kune was a project of the Comunes Collective. The project seems abandoned since 2017, with no new commits, blog entries or site activity.

<span class="mw-page-title-main">Apache OpenOffice</span> Free and open-source office software suite

Apache OpenOffice (AOO) is an open-source office productivity software suite. It is one of the successor projects of OpenOffice.org and the designated successor of IBM Lotus Symphony. It was a close cousin of LibreOffice, Collabora Online and NeoOffice in 2014. It contains a word processor (Writer), a spreadsheet (Calc), a presentation application (Impress), a drawing application (Draw), a formula editor (Math), and a database management application (Base).

AllJoyn is an open source software framework that allows compatible devices and applications to find each other, communicate and collaborate across the boundaries of product category, platform, brand, and connection type. Originally the AllSeen Alliance promoted the project, from 2013 until 2016 when the alliance merged with the Open Connectivity Foundation (OCF). In 2018 the source code became hosted by GitHub.

iDempiere Community Powered Enterprise. Full Open Source Business Suite

iDempiere. Community Powered Enterprise, also known as OSGi + ADempiere, is an open source Enterprise Resource Planning (ERP) software that is fully navigable on PCs, tablets and smartphones, it also has customer relationship management (CRM) and supply chain management (SCM) functions. It is in contrast to proprietary or most other open source ERP solutions driven only by a community of supporters.

<span class="mw-page-title-main">Apache Mynewt</span> Real-time operating system

Apache Mynewt is a modular real-time operating system for connected Internet of things (IoT) devices that must operate for long times under power, memory, and storage constraints. It is free and open-source software incubating under the Apache Software Foundation, with source code distributed under the Apache License 2.0, a permissive license that is conducive to commercial adoption of open-source software.

<span class="mw-page-title-main">Primavera De Filippi</span> French legal scholar and Internet activist

Primavera De Filippi is a French legal scholar, Internet activist and artist, whose work focuses on the blockchain, peer production communities and copyright law. She is permanent researcher at the CNRS and Faculty Associate at the Berkman Klein Center for Internet & Society at Harvard University. She is author of the book Blockchain and the Law published by Harvard University Press. As an activist, she is part of Creative Commons, the Open Knowledge Foundation and the P2P Foundation, among others.

<span class="mw-page-title-main">Samer Hassan</span> Spanish/Lebanese activist and researcher specialized in decentralized collaboration

Samer Hassan is a computer scientist, social scientist, activist and researcher, focused on the use of decentralized technologies to support commons-based collaboration. He is Associate Professor at Universidad Complutense de Madrid (Spain) and Faculty Associate at the Berkman Klein Center for Internet & Society at Harvard University. He is the recipient of an ERC Grant of 1.5M€ with the P2P Models project, to research blockchain-based decentralized autonomous organizations for the collaborative economy.

Microsoft, a technology company historically known for its opposition to the open source software paradigm, turned to embrace the approach in the 2010s. From the 1970s through 2000s under CEOs Bill Gates and Steve Ballmer, Microsoft viewed the community creation and sharing of communal code, later to be known as free and open source software, as a threat to its business, and both executives spoke negatively against it. In the 2010s, as the industry turned towards cloud, embedded, and mobile computing—technologies powered by open source advances—CEO Satya Nadella led Microsoft towards open source adoption although Microsoft's traditional Windows business continued to grow throughout this period generating revenues of 26.8 billion in the third quarter of 2018, while Microsoft's Azure cloud revenues nearly doubled.

<span class="mw-page-title-main">Irina Bolychevsky</span> British activist and data specialist

Irina Bolychevsky is a British activist and data specialist, focused on Open Data, decentralized technologies, and technical standards. She is currently director of standards and interoperability at the NHSX of the United Kingdom Government. She has been part of large organizations in those fields, including the Open Knowledge Foundation, the World Wide Web Consortium, and the Open Data Institute, and worked for the UK, Dubai and UAE government administrations. She co-founded Redecentralize.org, an advocacy group promoting decentralized technologies.

References

  1. "European Commission : CORDIS : News and Events : A substantial boost for easily and safely producing new online apps". cordis.europa.eu. Retrieved 2017-10-28.
  2. Ojanguren-Menendez, Pablo; Tenorio-Fornés, Antonio; Hassan, Samer (2015). Distributed Computing and Artificial Intelligence, 12th International Conference. Advances in Intelligent Systems and Computing. Springer, Cham. pp. 269–276. doi:10.1007/978-3-319-19638-1_31. ISBN   9783319196374.
  3. "Barrapunto | SwellRT: el primer framework libre para apps colaborativas y descentralizadas". softlibre.barrapunto.com. Retrieved 2017-10-28.
  4. swellrt: SwellRT, open source framework for real-time collaboration, P2Pvalue, 2017-10-20, retrieved 2017-10-28
  5. "Wave Incubation Status - Apache Incubator". incubator.apache.org. Retrieved 2017-10-28.
  6. "September2016 - Incubator Wiki". wiki.apache.org. Retrieved 2017-10-28.
  7. "December2016 - Incubator Wiki". wiki.apache.org. Retrieved 2017-10-28.
  8. "March2017 - Incubator Wiki". wiki.apache.org. Retrieved 2017-10-28.
  9. "Special Announcement: P2Pvalue and Google Summer of Code 2016". P2Pvalue blog. 2016-04-17. Retrieved 2017-10-28.
  10. "Berkman Klein Google Summer of Code Wiki". cyber.harvard.edu. Retrieved 2017-10-28.
  11. "International students team up with Berkman Klein mentors to learn open source development | Network of Centers". networkofcenters.net. Retrieved 2017-10-28.
  12. "Berkman Klein Google Summer of Code Wiki". cyber.harvard.edu. Retrieved 2017-10-28.
  13. "Wave Federation protocol over the Matrix Protocol - 2016 - Google Summer of Code Archive". summerofcode.withgoogle.com. Retrieved 2017-10-28.
  14. "SwellRT/Wave E2E Encryption: Overview – Geeks". blogs.harvard.edu. Retrieved 2017-10-28.
  15. "End-to-end encryption in SwellRT - 2017 - Google Summer of Code Archive". summerofcode.withgoogle.com. Retrieved 2017-10-28.
  16. Clear, Michael; Reid, Karl; Ennis, Desmond; Hughes, Arthur; Tewari, Hitesh (2012-09-19). "Collaboration-Preserving Authenticated Encryption for Operational Transformation Systems". Information Security. Lecture Notes in Computer Science. Vol. 7483. Springer, Berlin, Heidelberg. pp. 204–223. doi:10.1007/978-3-642-33383-5_13. hdl:2262/68179. ISBN   9783642333828.
  17. Ermoshina, Ksenia; Musiani, Francesca; Halpin, Harry (2016-09-12). "End-to-End Encrypted Messaging Protocols: An Overview". Internet Science (PDF). Lecture Notes in Computer Science. Vol. 9934. Springer, Cham. pp. 244–254. doi:10.1007/978-3-319-45982-0_22. ISBN   9783319459813. S2CID   19305678.
  18. "SwellRT : un cadre open source de développement d'applications Web collaboratives décentralisées". Programmez! (in French). 3 May 2017. Retrieved 2017-10-28.
  19. "SwellRT : une technologie open source pour applications | OSS". www.opensourceschool.fr. Retrieved 2017-10-28.
  20. "Barrapunto | SwellRT: el primer framework libre para apps colaborativas y descentralizadas". softlibre.barrapunto.com. Retrieved 2017-10-28.
  21. "Crear en tiempo real aplicaciones descentralizadas | Catalunya Vanguardista". www.catalunyavanguardista.com (in European Spanish). 28 April 2017. Retrieved 2017-10-28.
  22. "'How P2P Will Save The World', with Samer Hassan – STEAL THIS SHOW". stealthisshow.com. 6 April 2017. Retrieved 2017-10-28.
  23. "An exciting list of the next-generation Decentralized world's projects/orgs that're abuzz :) • r/ethereum". reddit. 11 June 2016. Retrieved 2017-10-28.
  24. Bianchi, Lucia; Liò, Pietro (2016). "Opportunities for community awareness platforms in personal genomics and bioinformatics education". Briefings in Bioinformatics. 18 (6): 1082–1090. doi:10.1093/bib/bbw078. PMID   27580620. S2CID   23805520.
  25. Ojanguren-Menendez, Pablo; Tenorio-Fornés, Antonio; Hassan, Samer (2015). "Building Real-Time Collaborative Applications with a Federated Architecture". International Journal of Interactive Multimedia and Artificial Intelligence. 3 (Regular Issue): 47. doi: 10.9781/ijimai.2015.356 . ISSN   1989-1660.
  26. "Real-time collaborative rich text editing". stackoverflow.com. Retrieved 2017-10-28.
  27. "What is a good Framework for a realtime collaboration web app with several realtime documents per App Instance". softwarerecs.stackexchange.com. Retrieved 2017-10-28.
  28. "Blogory.org Javascript Collaborative Rich Text Editors". blogory.org. Archived from the original on 2017-11-07. Retrieved 2017-10-28.
  29. "Economies col·laboratives procomuns 03/11/2016/apunts - teixidora". www.teixidora.net (in Catalan). Retrieved 2017-10-28.
  30. "Decentralized Web Summit: Locking the Web Open". decentralizedweb.net. Retrieved 2017-10-28.
  31. Irving, Francis. "Interviews — Redecentralize.org". redecentralize.org. Retrieved 2017-10-28.
  32. Irving, Francis. "#23: Pablo Ojanguren - SwellRT — Redecentralize.org". redecentralize.org. Retrieved 2017-10-28.
  33. "SwellRT Free Software Contest - Enter by Sept. 18 | P2P Foundation". P2P Foundation. 2016-08-30. Retrieved 2017-10-28.
  34. "VIT University". VIT University. Archived from the original on 2017-11-07. Retrieved 2017-10-28.
  35. "SwellRT: Facilitating decentralized real-time collaboration". crcs.seas.harvard.edu. Retrieved 2017-10-28.
  36. Harvard's CRCS (2016-10-06), CRCS Seminar 09/26, Samer Hassan: SwellRT: Facilitating Decentralized Real-Time Collaboration , retrieved 2017-10-28
  37. "The Commons Collaborative Economy explodes in Barcelona - Commons Transition". Commons Transition. 2016-04-18. Retrieved 2017-10-28.
  38. "Decentralised Apps - Redecentralize London April Meetup". Eventbrite. Retrieved 2017-10-28.
  39. "2nd FLOSS4P2P Workshop". P2Pvalue blog. 2016-04-17. Retrieved 2017-10-28.
  40. "Proyectos y herramientas para abrir la democracia « Ciudades Democráticas". ciudades-democraticas.cc (in European Spanish). Archived from the original on 2017-11-07. Retrieved 2017-10-28.
  41. "#OGP16 Summit". en.ogpsummit.org. Retrieved 2017-10-28.[ permanent dead link ]
  42. "Contributor Covenant: Adopters". www.contributor-covenant.org. Retrieved 2018-05-26.
  43. SwellRT, SwellRT, 2023-02-25, retrieved 2023-03-18
  44. swellrt: SwellRT, open source framework for real-time collaboration, P2Pvalue, 2017-10-20, retrieved 2017-10-28
  45. SwellRT wiki, P2Pvalue, 2017-10-20, retrieved 2017-10-28
  46. "SwellRT Server". demo.swellrt.org. Retrieved 2017-10-28.
  47. Juste, Abel Serrano (2016-09-22), upvote: Real-Time Collaborative Q&A. Find the best idea , retrieved 2017-10-28
  48. teem-tag: A Python module for extracting relevant tags from text content in Teem, a P2PValue project., P2Pvalue, 2017-02-13, retrieved 2017-10-28
  49. ThomasWrobel (2016-10-28), SwellRT_Example_CollaborativeScrollbar: A very simple example of a SwellRT client , retrieved 2017-10-28
  50. Ramos Romero, Jaime; Bastarrica Lacalle, Javier (2015). DemoCritics: aplicación Android de participación política con edición colaborativa en tiempo real [DemoCritics: Android app for political participation with real-time collaborative edition] (Final project (Computer Science)). Madrid (Spain): Universidad Complutense de Madrid. Archived from the original on 2017-11-07. Retrieved 2017-10-29.
  51. Shubham, Kumar (2017-08-18), teem-trello-webhook-server: The server which listens for changes in the Trello board model and simultaneously uodates them in the SwellRT object model , retrieved 2017-10-28
  52. "European Commission : CORDIS : News and Events : A substantial boost for easily and safely producing new online apps". cordis.europa.eu. Retrieved 2017-10-28.
  53. "JetPad". jetpad.net. Retrieved 2017-10-28.
  54. Haste, Rough (2017-04-23). "Notes on "How P2P Will Save the World"". RoughHaste. Retrieved 2017-10-28.
  55. "Collaboration that doesn't give others a license to distribute your stuff". Horizon: the EU Research & Innovation magazine. Archived from the original on 2017-09-09. Retrieved 2017-10-28.
  56. "Una app para involucrar a más gente en proyectos colaborativos - El salmón contracorriente". www.elsalmoncontracorriente.es (in Spanish). Retrieved 2017-10-28.
  57. "Teem". Teem. Retrieved 2017-10-28.