Editor colaborativo em tempo real

Origem: Wikipédia, a enciclopédia livre.

Um editor colaborativo em tempo real é um tipo de software colaborativo ou aplicativo da web que permite edição colaborativa em tempo real, edição simultânea ou edição ao vivo do mesmo documento digital, arquivo de computador ou dados armazenados na nuvem - como uma planilha online, Word processamento de documentos, bancos de dados ou apresentações – ao mesmo tempo por diferentes usuários em diferentes computadores ou dispositivos móveis, com fusão automática e quase instantânea de suas edições.

A edição em tempo real realiza sincronização automática, periódica e muitas vezes quase instantânea das edições de todos os usuários on-line à medida que editam o documento em seus próprios dispositivos. Isto foi projetado para evitar ou minimizar conflitos de edição .

Com a edição colaborativa assíncrona (ou seja, não em tempo real, atrasada ou off-line), cada usuário normalmente deve enviar manualmente (publicar, enviar por push ou confirmar), atualizar (atualizar, extrair, baixar ou sincronizar) e (se ocorrer algum conflito de edição) mesclar suas edições. Devido à natureza atrasada da edição colaborativa assíncrona, vários usuários podem acabar editando a mesma linha, palavra, elemento, dados, linha ou campo, resultando em conflitos de edição que exigem mesclagem ou substituição de edição manual, exigindo que o usuário escolha quais edições usar ou (dependendo do sistema e da configuração) sobrescrevendo automaticamente suas edições ou as edições de outras pessoas, com ou sem aviso.

História dos principais produtos[editar | editar código-fonte]

A primeira instância de um editor colaborativo em tempo real foi demonstrada por Douglas Engelbart em 1968, em The Mother of All Demos . Implementações amplamente disponíveis do conceito levaram décadas para aparecer.

Um software chamado Instant Update foi lançado para o Mac OS clássico em 1991 pela ON Technology .[1][carece de fonte melhor]

Ele permitia a edição em tempo real de um único documento por vários usuários em uma LAN e dependia de um servidor de grupo de trabalho .[carece de fontes?]

O interesse na edição colaborativa em tempo real pela internet levou ao desenvolvimento do MoonEdit e do SubEthaEdit no período 2003-2005, seguido logo depois pelo Gobby .[carece de fontes?]

Com a introdução da tecnologia Ajax e a função de "conteúdo editável" nos navegadores, a edição colaborativa baseada na Web em tempo real desenvolveu-se como parte do fenômeno Web 2.0 por volta de 2005. Em particular, um produto chamado Writely teve um crescimento explosivo de usuários e foi comprado pelo Google em março de 2006 (que ficou conhecido como Google Docs e mais tarde renomeado para Google Drive ). Ele fornecia edições simultâneas em todo o documento, embora as alterações de outros usuários só fossem refletidas após o programa cliente consultar o servidor (a cada meio minuto ou mais). Outra solução inicial baseada na web foi o JotSpotLive, em que a edição simultânea linha por linha estava disponível quase em tempo real. [2] No entanto, após a compra da controladora JotSpot pelo Google em novembro de 2006, o site foi fechado. O Google Sites foi lançado em fevereiro de 2007 como uma refatoração do JotSpot, [3] [4] [5] [6] mas não possui as habilidades multiusuário em tempo real do JotLive. Os projetos Synchroedit (rich text) e MobWrite (texto simples) são duas tentativas mais recentes de código aberto para preencher a lacuna na edição colaborativa em tempo real baseada em navegador, embora ainda incapazes de alcançar um verdadeiro desempenho em tempo real, especialmente em um arquitetura em grande escala. [carece de fontes?]

Em 2009, o Google iniciou testes beta do Google Wave, um ambiente de colaboração em tempo real que o Google esperava que eventualmente substituísse o e-mail e as mensagens instantâneas. O EtherPad foi adquirido pelo Google, que alocou a equipe EtherPad para trabalhar no projeto Wave. No entanto, o Google anunciou em agosto de 2010 em seu blog [7] que havia decidido parar de desenvolver o Wave como um projeto independente, devido à adoção insuficiente pelos usuários. Depois que o Google lançou o código-fonte abandonado do EtherPad como código aberto em dezembro de 2009, a comunidade assumiu seu desenvolvimento e produziu uma reescrita completa chamada Etherpad lite, que é escrita inteiramente em JavaScript e construída sobre Node.js. Outra ferramenta notável baseada na tecnologia de transformação operacional é o CKEditor . [8] 2020 viu um aumento de interesse no conceito, já que a Microsoft também lançou recentemente sua estrutura Fluid, que se baseia em uma nova tecnologia Total Order Broadcast, em oposição a OT ou CRDT. [9] Fluid é atualmente independente de estrutura. A Microsoft afirma que ainda não está pronto para uso em produção. [10]

Em junho de 2016, a Collabora Productivity lançou a V1.0 do Collabora Online, um pacote de escritório online de código aberto usando a tecnologia LibreOffice, que pode ser integrado a qualquer site com algumas linhas de código. Existe um kit de desenvolvimento de software com exemplo de código de integração em diversas linguagens Node.js, PHP, Python, ReactJS e . NET, possuem especificações de API que permitem integrações interoperáveis com interfaces de usuário personalizáveis. [11] [12] [13] Com o Collabora Online, os documentos permanecem no servidor, cada usuário compartilha o mesmo documento simultaneamente, permitindo que apenas um documento seja editado em tempo real e de forma interativa, sem atraso ou latência extra para ver a digitação de outros usuários. Evita a necessidade de bloqueio de parágrafos em documentos de texto. Ele permite a edição colaborativa em tempo real de documentos de processamento de texto, planilhas, apresentações, desenhos e gráficos vetoriais.[carece de fontes?]

Recentemente, a edição colaborativa em tempo real retornou aos aplicativos independentes de edição de texto com extensões para Atom e Visual Studio Code lançadas em 2020. [14] [15]

Outros exemplos[editar | editar código-fonte]

A edição colaborativa em tempo real pode ocorrer online em aplicativos da web, como o Microsoft Office na web (anteriormente Office Online ) – que oferece suporte à edição simultânea online ( baseada na web ) (que a Microsoft chama de "Coautoria") de documentos do Word, Planilhas Excel, PowerPoint e outros documentos do Microsoft Office armazenados no Office.com, OneDrive ou armazenamento em nuvem SharePoint – ou Google Docs e outros aplicativos de produtividade do Google Workspace (pacote de escritório) – para edição colaborativa online de processamento de texto e outros documentos armazenados no Google Drive . A edição colaborativa em tempo real também pode ocorrer de maneira híbrida, como com Power Sheet BI para Excel, [16] em edição colaborativa off-line, baseada na Web e on-line em software de desktop, bem como em aplicativos móveis e baseados na Web, que podem ser sincronizado automaticamente com acesso instantâneo ao histórico de versões. Em 2020, assistiu-se a um ressurgimento do interesse na incorporação destas aplicações em aplicações Web seguras, especialmente para casos de utilização empresariais, com a Microsoft e a Vaadin a assumirem a liderança com back-ends de colaboração especializados em tempo real que lidam com as complexidades da partilha síncrona de dados em tempo real, que os desenvolvedores podem utilizar por meio de APIs. [17] [18] A Mozilla lançou em 2013 a biblioteca javascript TogetherJS, que adiciona edição colaborativa em tempo real a qualquer aplicativo da web por meio de um sistema de mensagens e, opcionalmente, um algoritmo de transformação operacional para sincronização de formulários. [19]

Vaadin Ltd., fornecedor da plataforma Vaadin, lançou V1.0 de seu Collaboration Engine em outubro de 2020, [20] com a premissa de permitir que os desenvolvedores criem rapidamente colaboração em tempo real e recursos de edição em qualquer aplicativo da web com back-ends Java usando algumas linhas de códigos (para casos de uso específicos por meio de suas APIs de alto nível, ainda limitadas). [21] Este recurso atualmente oferece suporte a Java, embora o fornecedor observe que uma API baseada em TypeScript também está chegando, em linha com a recente expansão contínua da plataforma Vaadin para permitir também a construção de UI baseada em TypeScript no futuro por meio de sua futura estrutura Fusion. [22] [23]

Desafios técnicos[editar | editar código-fonte]

A complexidade das soluções de edição colaborativa em tempo real decorre da latência da comunicação. Em teoria, se a comunicação fosse instantânea, criar um editor colaborativo em tempo real não seria mais difícil do que criar um editor de usuário único, porque um documento poderia ser editado usando um algoritmo semelhante ao seguinte:

  1. Solicite um token de 'edição de documento' do servidor
  2. Espere até que o servidor diga que é a nossa vez de editar o documento
  3. Diga ao servidor como editar o documento
  4. Libere o token 'editar documento'

Veja também[editar | editar código-fonte]

Referências[editar | editar código-fonte]

  1. «User manual». Arquivado do original em 21 de fevereiro de 2009 
  2. Michael Arrington (27 de setembro de 2005). «JotSpot Live — The Perfect Wiki?». TechCrunch 
  3. Michael Arrington (27 de fevereiro de 2008). «It Took 16 Months, But Google Relaunches Jotspot». TechCrunch 
  4. David Chartier (28 de fevereiro de 2008). «First look: Google relaunches JotSpot as Google Sites». Ars technica 
  5. Dan Farber (27 de fevereiro de 2008). «JotSpot reincarnated as Google Sites». CNET News. Consultado em 19 de março de 2008. Arquivado do original em 15 de maio de 2008 
  6. Mark 'Rizzn' Hopkins (27 de fevereiro de 2008). «Google Finally Frees JotSpot with Google Sites». Mashable 
  7. Ina Fried and Josh Lowensohn (4 de agosto de 2010). «Google pulls plug on Google Wave». CNET 
  8. SunChengzheng; SunDavid; NgAgustina; CaiWeiwei; ChoBryden (4 de janeiro de 2020). «Real Differences between OT and CRDT under a General Transformation Framework for Consistency Maintenance in Co-Editors». Proceedings of the ACM on Human-Computer Interaction (em inglês). 4: 1–26. arXiv:1905.01518Acessível livremente. doi:10.1145/3375186Acessível livremente 
  9. «Frequently Asked Questions». fluidframework-docs.azureedge.net (em inglês). Consultado em 2 de novembro de 2020 
  10. «Fluid Framework». fluidframework-docs.azureedge.net (em inglês). Consultado em 2 de novembro de 2020 
  11. Gathoye, William (2 de junho de 2016). «Collabora Productivity releases Collabora Online 1.0 "Engine" for Hosters and Clouds». Consultado em 2 de setembro de 2021. Arquivado do original em 7 de agosto de 2016 
  12. «Collabora Online SDK». Consultado em 2 de setembro de 2021. Arquivado do original em 1 de março de 2021 
  13. Guoan, Xiao (10 de dezembro de 2020). «Integrate Collabora Online with Nextcloud on Ubuntu with Docker». LinuxBabe. Consultado em 2 de setembro de 2021. Arquivado do original em 14 de junho de 2020 
  14. «Live Share for VS Code». Consultado em 26 de fevereiro de 2022 
  15. «Teletype for Atom». Consultado em 26 de fevereiro de 2022 
  16. «FREE No-Code App, Analytics AI, Blockchain, Excel&Web 3.0 Collaboration Platform». PowerSheet.ai (em inglês). Consultado em 8 de junho de 2020 
  17. «Fluid Framework». fluidframework-docs.azureedge.net (em inglês). Consultado em 2 de novembro de 2020 
  18. «Collaboration Engine». Vaadin (em inglês). Consultado em 2 de novembro de 2020 
  19. «Mozilla Labs : TogetherJS Technological Overview». togetherjs.com. Mozilla Labs. Consultado em 12 de janeiro de 2023 
  20. «Meet Collaboration Engine: The simplest way to build collaborative web apps». Vaadin (em inglês). Consultado em 2 de novembro de 2020 
  21. «Collaboration Engine». Vaadin (em inglês). Consultado em 2 de novembro de 2020 
  22. «A sneak-peek at the future of Vaadin's real-time collaboration features». Vaadin (em inglês). Consultado em 2 de novembro de 2020 
  23. «Introducing Vaadin Flow and Fusion». Vaadin (em inglês). Consultado em 2 de novembro de 2020