SwellRT es un backend-as-a-service y API gratuito y de código abierto enfocado a facilitar el desarrollo de aplicaciones con colaboración en tiempo real . Apoya la construcción de aplicaciones web y móviles, y tiene como objetivo facilitar la interoperabilidad y la federación .
Autor (es) original (es) | Pablo Ojanguren & otros, del grupo de investigación GRASIA, de la Universidad Complutense de Madrid |
---|---|
Desarrollador (es) | Pablo Ojanguren y otros |
Versión inicial | 1 de julio de 2015 |
Lanzamiento estable | 0.2.0-beta / 30 de septiembre de 2017 |
Repositorio | github |
Escrito en | Java , JavaScript |
Sistema operativo | Multiplataforma |
Tipo | Marco web Backend como servicio |
Licencia | Licencia Apache |
Sitio web | swellrt |
Historia
Orígenes
SwellRT tiene su origen en el trabajo realizado dentro del equipo de investigación GRASIA de la Universidad Complutense de Madrid , como parte del proyecto P2Pvalue (2013-2016) financiado con fondos europeos , en un equipo liderado por Samer Hassan . [1] En 2014, el desarrollador Pablo Ojanguren tomó la iniciativa de bifurcar Apache Wave , eliminar varios componentes, rediseñarlo y construir una "API Wave" para construir aplicaciones en la parte superior. [2] En 2015, dicha API Wave se convirtió en un producto independiente llamado SwellRT. [3] [4]
Impacto en el proyecto Apache Wave
En 2016, se llevaron a cabo varias discusiones dentro de la comunidad Apache Wave, con el objetivo de abordar el estancamiento y el estado de crisis del proyecto. El mentor de Apache Software Foundation de Apache Wave, Upayavira, [5] estaba preocupado por el estancamiento del proyecto, pero enmarcó a SwellRT como el salvador potencial de Wave:
Una vez más, Wave está al borde de la jubilación. Sin embargo, esta vez, se ha hecho una oferta de código de SwellRT, que es una bifurcación de Wave en sí, y se ha programado una convocatoria para que las partes interesadas discutan si es un go-er. Tengo (limitado) conocimiento de que muchos de los problemas de complejidad en el código Wave que han impedido el desarrollo de la comunidad se han resuelto en SwellRT. [6]
Finalmente, se aprobó que Wave continuara dentro del programa de incubadora de Apache y se colocó una copia de la base de código SwellRT en el repositorio de Apache Wave para otorgarle acceso a la comunidad de Wave. [7] En este sentido, la Propiedad Intelectual de SwellRT fue transferida a la Fundación Apache en 2017. [8]
Reconocimiento reciente
Tanto en 2016 [9] [10] como en 2017, [11] [12] SwellRT participó en Google Summer of Code como parte del conjunto de proyectos del Berkman Klein Center for Internet and Society de la Universidad de Harvard . En ambos años, los aportes fueron de gran relevancia. En 2016, SwellRT reemplazó su protocolo de federación basado en XMPP (heredado de Apache Wave) por el protocolo de federación Matrix.org . [13] En 2017, se implementó el cifrado de extremo a extremo, [14] [15] siguiendo un enfoque innovador para cifrar la comunicación en documentos colaborativos de transformación operativa . [dieciséis]
SwellRT recibió reconocimiento internacional en los campos de las tecnologías descentralizadas [17] [18] [19] [20] [21] [22] [23] y la colaboración en tiempo real. [24] [25] [26] [27] [28] [29] En la Cumbre Web Descentralizada, organizada por Internet Archive en San Francisco, fue seleccionada como una de las tecnologías de descentralización innovadoras actuales. [30] También fue seleccionado por el grupo de defensa Redecentralize, como uno de los proyectos de redecentralización cuyos fundadores fueron entrevistados, [31] [32] Lanzó un concurso internacional para desarrollar aplicaciones usando SwellRT, [33] que fue otorgado a free / desarrolladores de código abierto en la India. [34] Y el proyecto se presentó como charla invitada en el Centro de Investigación sobre Computación y Sociedad de la Escuela de Ingeniería y Ciencias Aplicadas de Harvard , [35] [36] y en varias conferencias internacionales. [37] [38] [39] [40] [41] SwellRT fue uno de los primeros en adoptar el código de conducta del Pacto de Colaboradores . [42]
Enfoque técnico
SwellRT es una bifurcación de Apache Wave, hereda parte de su arquitectura y pila de tecnología. Sin embargo, creció más allá de los límites de Wave, primero se presentó como un marco web y hoy en día se convirtió en una plataforma backend-as-a-service. [43] [44] Su enfoque técnico actual abarca lo siguiente:
- Es un software totalmente gratuito / de código abierto .
- Está desarrollado en Java. GWT con JSInterop se utiliza para generar API JavaScript reutilizando el mismo código fuente. El cliente de Android también se crea a partir de las mismas fuentes de Java.
- Proporciona un componente de editor de texto enriquecido extensible y conectable para Web (solo) que admite anotaciones y widgets personalizados .
- El almacenamiento de datos en tiempo real se basa en el modelo de transformaciones operativas de Wave , por lo que finalmente es coherente.
- Está diseñado para maximizar la interoperabilidad y sigue un enfoque de federación similar a Apache Wave, utilizando el protocolo de comunicación XMPP o Matrix.org . Su objetivo es apoyar la creación de aplicaciones que estén federadas, es decir, que se basen en múltiples servidores interoperables y objetos compartidos entre servidores. Esto permite a las organizaciones controlar sus propios datos.
Objetos colaborativos
SwellRT proporciona un modelo de programación basado en objetos colaborativos . Un objeto colaborativo es un objeto similar a JSON que algunos usuarios (o grupos) pueden compartir y que pueden realizar cambios en tiempo real. Los cambios se propagan (y notifican) en tiempo real a cualquier usuario conectado al objeto.
Un objeto colaborativo puede almacenar propiedades de tipos de datos simples (cadenas, números enteros, etc.) así como texto enriquecido y referencias a archivos o adjuntos. Este enfoque es adecuado para implementar cualquier aplicación colaborativa basada en documentos, como editores de texto u hojas de cálculo.
Los objetos y los participantes se identifican de forma única en Internet, lo que permite el acceso descentralizado desde diferentes servidores federados.
Principales características
- Almacenamiento en tiempo real ( NoSQL )
- Gestión de usuarios
- Integración basada en eventos
- Federación ( XMPP o Matrix.org )
Aplicaciones que utilizan SwellRT
SwellRT facilita el desarrollo de aplicaciones web / móviles y, por lo tanto, se han creado varias aplicaciones utilizando esta tecnología. Además de las demostraciones proporcionadas por SwellRT, [45] terceros desarrollaron otras aplicaciones de demostración como un sitio de preguntas y respuestas, [46] una extensión para extraer palabras clave, [47] una barra de desplazamiento colaborativa, [48] una aplicación para Android de participación política, [ 49] un conector Trello-SwellRT. [50] Además, dos aplicaciones completas utilizan actualmente la tecnología SwellRT:
- JetPad, un editor colaborativo similar a GoogleDoc, libre / de código abierto y federado [51] [52] [53]
- Teem, una aplicación web / móvil gratuita / de código abierto para la gestión de comunidades y colectivos [54] [55] [56]
Ver también
- Apache Wave
- Texto en tiempo real
- Editor colaborativo en tiempo real
- Transformación operativa
- Red social federada
Referencias
- ^ "Comisión Europea: CORDIS: Noticias y eventos: un impulso sustancial para la producción fácil y segura de nuevas aplicaciones en línea" . cordis.europa.eu . Consultado el 28 de octubre de 2017 .
- ^ Ojanguren-Menendez, Pablo; Tenorio-Fornés, Antonio; Hassan, Samer (2015). Computación Distribuida e Inteligencia Artificial, XII Congreso Internacional . Avances en Computación y Sistemas Inteligentes. Springer, Cham. págs. 269-276. doi : 10.1007 / 978-3-319-19638-1_31 . ISBN 9783319196374.
- ^ "Barrapunto | SwellRT: el primer framework libre para aplicaciones colaborativas y descentralizadas" . softlibre.barrapunto.com . Consultado el 28 de octubre de 2017 .
- ^ swellrt: SwellRT, marco de código abierto para la colaboración en tiempo real , P2Pvalue, 2017-10-20 , consultado el 2017-10-28
- ^ "Estado de incubación de ondas - Incubadora Apache" . incubator.apache.org . Consultado el 28 de octubre de 2017 .
- ^ "Septiembre de 2016 - Incubator Wiki" . wiki.apache.org . Consultado el 28 de octubre de 2017 .
- ^ "Diciembre de 2016 - Incubator Wiki" . wiki.apache.org . Consultado el 28 de octubre de 2017 .
- ^ "Marzo de 2017 - Wiki de la incubadora" . wiki.apache.org . Consultado el 28 de octubre de 2017 .
- ^ "Anuncio especial: P2Pvalue y Google Summer of Code 2016" . Blog P2Pvalue . 2016-04-17 . Consultado el 28 de octubre de 2017 .
- ^ "Berkman Klein Google Summer of Code Wiki" . cyber.harvard.edu . Consultado el 28 de octubre de 2017 .
- ^ "Los estudiantes internacionales se unen a los mentores de Berkman Klein para aprender el desarrollo de código abierto | Red de centros" . networkofcenters.net . Consultado el 28 de octubre de 2017 .
- ^ "Berkman Klein Google Summer of Code Wiki" . cyber.harvard.edu . Consultado el 28 de octubre de 2017 .
- ^ "Protocolo Wave Federation sobre Matrix Protocol - 2016 - Google Summer of Code Archive" . summerofcode.withgoogle.com . Consultado el 28 de octubre de 2017 .
- ^ "Cifrado SwellRT / Wave E2E: descripción general - Geeks" . blogs.harvard.edu . Consultado el 28 de octubre de 2017 .
- ^ "Cifrado de extremo a extremo en SwellRT - 2017 - Google Summer of Code Archive" . summerofcode.withgoogle.com . Consultado el 28 de octubre de 2017 .
- ^ Claro, Michael; Reid, Karl; Ennis, Desmond; Hughes, Arthur; Tewari, Hitesh (19 de septiembre de 2012). Cifrado autenticado de preservación de colaboración para sistemas de transformación operativa . Seguridad de la información . Apuntes de conferencias en informática. Springer, Berlín, Heidelberg. págs. 204–223. doi : 10.1007 / 978-3-642-33383-5_13 . hdl : 2262/68179 . ISBN 9783642333828.
- ^ Ermoshina, Ksenia; Musiani, Francesca; Halpin, Harry (12 de septiembre de 2016). Protocolos de mensajería cifrada de extremo a extremo: descripción general (PDF) . Ciencias de Internet . Apuntes de conferencias en informática. Springer, Cham. págs. 244-254. doi : 10.1007 / 978-3-319-45982-0_22 . ISBN 9783319459813.
- ^ "SwellRT: un cuadro de código abierto de desarrollo de aplicaciones Web colaborativas décentralisées" . Programmez! (en francés) . Consultado el 28 de octubre de 2017 .
- ^ "SwellRT: aplicaciones de vertido de código abierto de una tecnología | OSS" . www.opensourceschool.fr . Consultado el 28 de octubre de 2017 .
- ^ "Barrapunto | SwellRT: el primer framework libre para aplicaciones colaborativas y descentralizadas" . softlibre.barrapunto.com . Consultado el 28 de octubre de 2017 .
- ^ "Crear en tiempo real aplicaciones descentralizadas | Catalunya Vanguardista" . www.catalunyavanguardista.com (en español) . Consultado el 28 de octubre de 2017 .
- ^ " ' Cómo el P2P salvará el mundo', con Samer Hassan - ROBA ESTE ESPECTÁCULO" . stealthisshow.com . Consultado el 28 de octubre de 2017 .
- ^ "Una lista emocionante de los proyectos / organizaciones del mundo descentralizado de próxima generación que están en pleno auge :) • r / ethereum" . reddit . Consultado el 28 de octubre de 2017 .
- ^ Bianchi, Lucia; Liò, Pietro (2016). "Oportunidades para plataformas de sensibilización comunitaria en la educación en genómica personal y bioinformática" . Sesiones informativas en bioinformática . 18 (6): 1082–1090. doi : 10.1093 / bib / bbw078 . PMID 27580620 . S2CID 23805520 .
- ^ Ojanguren-Menendez, Pablo; Tenorio-Fornés, Antonio; Hassan, Samer (2015). "Construcción de aplicaciones colaborativas en tiempo real con una arquitectura federada" . Revista Internacional de Multimedia Interactiva e Inteligencia Artificial . 3 (Edición normal): 47. doi : 10.9781 / ijimai.2015.356 . ISSN 1989-1660 .
- ^ "Edición colaborativa de texto enriquecido en tiempo real" . stackoverflow.com . Consultado el 28 de octubre de 2017 .
- ^ "¿Qué es un buen marco para una aplicación web de colaboración en tiempo real con varios documentos en tiempo real por instancia de aplicación?" . softwarerecs.stackexchange.com . Consultado el 28 de octubre de 2017 .
- ^ "Editores colaborativos de texto enriquecido de Blogory.org Javascript" . blogory.org . Consultado el 28 de octubre de 2017 .
- ^ "Economías colaborativas procomuns 03/11/2016 / apunts - teixidora" . www.teixidora.net (en catalán) . Consultado el 28 de octubre de 2017 .
- ^ "Cumbre Web descentralizada: bloquear la Web abierta" . descentralizedweb.net . Consultado el 28 de octubre de 2017 .
- ^ Irving, Francis. "Entrevistas - Redecentralize.org" . redecentralize.org . Consultado el 28 de octubre de 2017 .
- ^ Irving, Francis. "# 23: Pablo Ojanguren - SwellRT - Redecentralize.org" . redecentralize.org . Consultado el 28 de octubre de 2017 .
- ^ "Concurso de software libre SwellRT - Participa antes del 18 de septiembre | Fundación P2P" . Fundación P2P . 2016-08-30 . Consultado el 28 de octubre de 2017 .
- ^ "Universidad VIT" . Universidad VIT . Consultado el 28 de octubre de 2017 .
- ^ "SwellRT: Facilitar la colaboración descentralizada en tiempo real" . crcs.seas.harvard.edu . Consultado el 28 de octubre de 2017 .
- ^ Harvard's CRCS (2016-10-06), CRCS Seminar 09/26, Samer Hassan: SwellRT: Faciliting Decentralized Real-Time Collaboration , consultado el 28 de octubre de 2017
- ^ "Explota la Economía Colaborativa de los Comunes en Barcelona - Transición de los Comunes" . Transición de los Comunes . 2016-04-18 . Consultado el 28 de octubre de 2017 .
- ^ "Aplicaciones descentralizadas - Redecentralizar Londres Meetup de abril" . Eventbrite . Consultado el 28 de octubre de 2017 .
- ^ "2º Taller de FLOSS4P2P" . Blog P2Pvalue . 2016-04-17 . Consultado el 28 de octubre de 2017 .
- ^ "Proyectos y herramientas para abrir la democracia« Ciudades Democráticas " . ciudades-democraticas.cc (en español) . Consultado el 28 de octubre de 2017 .
- ^ "Cumbre # OGP16" . en.ogpsummit.org . Consultado el 28 de octubre de 2017 .
- ^ "Pacto de Colaborador: Adoptadores" . www.contributor-covenant.org . Consultado el 26 de mayo de 2018 .
- ^ swellrt: SwellRT, marco de código abierto para la colaboración en tiempo real , P2Pvalue, 2017-10-20 , consultado el 2017-10-28
- ^ SwellRT wiki , P2Pvalue, 2017-10-20 , consultado el 2017-10-28
- ^ "Servidor SwellRT" . demo.swellrt.org . Consultado el 28 de octubre de 2017 .
- ^ Juste, Abel Serrano (22/09/2016), voto a favor : Preguntas y respuestas colaborativas en tiempo real. Encuentra la mejor idea , consultado el 28 de octubre de 2017
- ^ teem-tag: un módulo de Python para extraer etiquetas relevantes del contenido de texto en Teem, un proyecto P2PValue. , P2Pvalue, 2017-02-13 , consultado el 2017-10-28
- ^ ThomasWrobel (2016-10-28), SwellRT_Example_CollaborativeScrollbar: Un ejemplo muy simple de un cliente SwellRT , obtenido el 2017-10-28
- ^ Ramos Romero, Jaime; Bastarrica Lacalle, Javier (2015). DemoCritics: Aplicación Android de Participación Política con edición colaborativa En Tiempo reales [ DemoCritics: aplicación Android para la participación política de colaboración con la edición en tiempo real ] (Proyecto final (informática)). Madrid (España): Universidad Complutense de Madrid.
- ^ Shubham, Kumar (2017-08-18), teem-trello-webhook-server: el servidor que escucha los cambios en el modelo de placa Trello y simultáneamente los actualiza en el modelo de objetos SwellRT , obtenido el 2017-10-28
- ^ "Comisión Europea: CORDIS: Noticias y eventos: un impulso sustancial para la producción fácil y segura de nuevas aplicaciones en línea" . cordis.europa.eu . Consultado el 28 de octubre de 2017 .
- ^ "JetPad" . jetpad.net . Consultado el 28 de octubre de 2017 .
- ^ Prisa, rudo (23 de abril de 2017). "Notas sobre" Cómo el P2P salvará el mundo " " . RoughHaste . Consultado el 28 de octubre de 2017 .
- ^ "Colaboración que no da a otros una licencia para distribuir tus cosas" . Horizonte: la revista de investigación e innovación de la UE . Consultado el 28 de octubre de 2017 .
- ^ "Una app para involucrar a más gente en proyectos colaborativos - El salmón contracorriente" . www.elsalmoncontracorriente.es (en español) . Consultado el 28 de octubre de 2017 .
- ^ "Teem" . Teem . Consultado el 28 de octubre de 2017 .
enlaces externos
- Página web oficial
- swellrt en GitHub