ACE (redaktör)

ESS
Utvecklare pyron, rasss, zbindenl
Stabil frisättning
Edit this on Wikidata M4 / 7 mars 2006
Operativ system Windows , Mac OS X , Linux
Plattform Java
Typ Textredigerare
Licens GPL-2.0 eller senare
Hemsida sourceforge .net /projects /ace /

ACE ( ACE – a collaborative editor ) är en plattformsoberoende, kollaborativ realtidsredigerare . Det är ett kooperativt redigeringssystem i realtid som låter flera geografiskt spridda användare se och redigera ett delat textdokument samtidigt .

Introduktion

ACE är en enkel textredigerare med standardfunktioner som kopiera/klistra in och ladda/spara. Flera dokument kan redigeras samtidigt. Dessutom kan ACE dela dokument med andra användare på olika datorer, anslutna via kommunikationsnätverk ( LAN , Internet ). ACE upptäcker också användare och deras delade dokument automatiskt i ett lokalt nätverk. Användare kan välja att gå med i alla upptäckta delade dokument. För allt detta är ingen konfiguration nödvändig eftersom den är baserad på nollkonfigurationsnätverk .

När en användare har gått med i ett delat dokument kan han fritt redigera dokumentet samtidigt med alla deltagare som ett virtuellt team. Så kallad medvetenhetsinformation hjälper till att undvika onödiga konflikter (det vill säga två användare som redigerar samtidigt och textplats). Medvetenhetsinformation inkluderar markören och den för närvarande markerade texten för de andra användarna markerade med respektive användares färg.

Hjärtat i applikationen är en samtidighetskontrollalgoritm baserad på det innovativa konceptet operationell transformation , som möjliggör låsfri redigering av ett dokument av flera användare. Det inför inga redigeringsbegränsningar och löser alla konflikter automatiskt. Algoritmen övervinner en av de viktigaste utmaningarna vid design och implementering av samarbetsredigeringssystem i realtid, nämligen att bevara konsistens. Det är för att säkerställa att det delade dokumentet är identiskt för alla deltagare vid vila (det vill säga när inga meddelanden är på väg).

ACE bygger på öppna teknologier som BEEP (RFC 3080) och noll-konf-nätverk. Allt detta lämnar möjligheten öppen att kommunicera även med olika applikationer som förstår det offentliga protokollet för ACE.

ACE körs på alla större operativsystem som Windows , Mac OS X eller Linux och är fri programvara .

Exempel på användningsfall

Överväg en samarbetsredigeringssession med tre deltagare, som heter Bill, Steve och Scott, som avbildas av figuren. Det finns också en fjärde användare, som heter Sam, som inte deltar i sessionen. Dokumentet som användarna redigerar tillsammans är Collaboration.txt . Användaren Scott är ägare och utgivare av den. Observera att användarna Steve och Bill arbetar på Microsoft Windows OS, medan Scott använder Mac OS X och Sam Linux OS. Observera att den blå färgen alltid anger texten skriven av den lokala användaren av ACE-instansen. Färgen för att matcha en deltagare visas i deltagarvyn i GUI .

Användande

Här är en lista med några exempel på hur ACE kan användas:

  • Gruppbrainstorming
  • Utveckling av källkod ( XP )
  • Kollektiv anteckning
  • Skriv texter tillsammans (e-post, brev, journaler, etc.)
  • Utbildningssyften

Den sista punkten avslöjar lite mer potential för kooperativa redigeringssystem: Grupper om två till tre studenter kan skriva uppsatser tillsammans. Dels lär de varandra hur man använder det skrivna språket, och dels kan de ha roligt tillsammans med hjälp av en praktisk applikation på datorn och på så sätt förlora rädslan för kontakt med datorn, vilket är väsentligt i dagens utbildning.

Teknik bakgrund

Ett kooperativt redigeringssystem i realtid som ACE tillåter flera användare att se och redigera samma dokument samtidigt från flera geografiskt spridda platser. Platserna är sammankopplade med kommunikationsnätverk. Följande krav har identifierats för sådana system:

  • Realtid : Svaret på lokala användaråtgärder måste vara snabbt, helst lika snabbt som en enskild användarredigerare, och latensen för att reflektera fjärranvändaråtgärder är låg (bestäms endast av extern kommunikationslans).
  • Distribuerat : Samarbetande användare kan vistas på olika maskiner anslutna via kommunikationsnätverk med icke-deterministisk latens.
  • Obegränsad : Flera användare får samtidigt och oberoende redigera vilken del av dokumentet som helst när som helst för att underlätta ett fritt och naturligt informationsflöde mellan flera användare.

Ett kooperativt redigeringssystem i realtid består av n instanser, varje instans körs av en annan användare. Alla instanser är anslutna via ett nätverk. En av de viktigaste utmaningarna med att designa och implementera kooperativa redigeringssystem i realtid är konsistensupprätthållandet mellan de olika dokumentreplikerna (en för varje webbplats). Ett kooperativt redigeringssystem sägs vara konsekvent om det alltid har följande egenskaper:

  • Konvergens : Garanterar när samma uppsättning operationer (till exempel en operation kan vara en infogning/borttagning av ett tecken) har utförts på alla platser, att alla kopior (även kända som repliker) av det delade dokumentet är identiska. Det vill säga, den här egenskapen säkerställer konsistensen av de slutliga resultaten i slutet av en redigeringssession i samarbete.
  • Kausalitetsbevarande : För alla operationspar Oa och Ob , om Oa -> Ob (det vill säga Ob är beroende av Oa ), exekveras Oa före Ob på alla platser. Det vill säga, den här egenskapen säkerställer konsekvensen av exekveringsorder på alla platser för beroende operationer under en kooperativ redigeringssession.
  • Avsiktsbevarande : För alla operationer O är effekterna av att utföra O på alla platser desamma som avsikten med O , och effekten av att utföra O ändrar inte effekterna av oberoende operationer. Det vill säga, den här egenskapen säkerställer att exekvering av en operation på avlägsna platser uppnår samma effekt som att exekvera denna operation på den lokala platsen vid tidpunkten för dess generering, och exekveringseffekterna av oberoende operationer stör inte varandra.

En lösning för att uppnå konsistenskontroll tillhandahålls av Operational Transformation (OT) algoritmer. OT-algoritmmetoden består av två huvudkomponenter:

  • Integreringsalgoritmen som ansvarar för att ta emot, sända och utföra operationer . Det är oberoende av typen av dokumentreplik och applikation.
  • Transformationsfunktionen ansvarar för att slå samman två samtidiga operationer . Det är applikationsberoende. Till exempel har en textredigerare andra funktioner än en whiteboardapplikation.

Teorin om konsistensupprätthållande härrör från forskningsfältet som kallas Computer Supported Cooperative Work , förkortat CSCW .

Se även

externa länkar