ACE (redaktor) - ACE (editor)

AS
ACE.png
Zrzut ekranu ACE, edytora tekstu.png
Deweloper(zy) pyron, rass, zbindenl
Wersja stabilna
M4 / marzec 2006 ; 15 lat temu ( 2006-03 )
System operacyjny Windows , Mac OS X , Linux
Platforma Jawa
Rodzaj Edytor tekstu
Licencja GNU GPL
Strona internetowa sourceforge .net /projekty /ace /

ACE ( ACE – edytor współpracujący ) to niezależny od platformy, współpracujący edytor czasu rzeczywistego . Jest to system do edycji kooperacyjnej w czasie rzeczywistym, który umożliwia wielu rozproszonym geograficznie użytkownikom wyświetlanie i edycję współdzielonego dokumentu tekstowego w tym samym czasie.

Wstęp

ACE to prosty edytor tekstu ze standardowymi funkcjami, takimi jak kopiowanie/wklejanie i ładowanie/zapisywanie. Wiele dokumentów można edytować w tym samym czasie. Ponadto ACE może udostępniać dokumenty innym użytkownikom na różnych komputerach, połączonych sieciami komunikacyjnymi ( LAN , Internet ). ACE automatycznie wykrywa również użytkowników i udostępniane przez nich dokumenty w sieci lokalnej. Użytkownicy mogą zdecydować się na dołączenie do dowolnego odkrytego udostępnionego dokumentu. Do tego wszystkiego nie jest wymagana żadna konfiguracja, ponieważ opiera się na sieci bez konfiguracji .

Gdy użytkownik dołączy do udostępnionego dokumentu, może swobodnie edytować dokument jednocześnie ze wszystkimi uczestnikami jako wirtualny zespół. Tak zwane informacje o świadomości pomagają uniknąć niepotrzebnych konfliktów (czyli jednoczesnej edycji dwóch użytkowników i lokalizacji tekstu). Informacje o świadomości obejmują kursor i aktualnie wybrany tekst innych użytkowników oznaczony kolorem odpowiedniego użytkownika.

Sercem aplikacji jest algorytm kontroli współbieżności oparty na innowacyjnej koncepcji transformacji operacyjnej , która pozwala na bezblokadową edycję dokumentu przez wielu użytkowników. Nie nakłada żadnych ograniczeń edycyjnych i automatycznie rozwiązuje wszystkie konflikty. Algorytm pokonuje jedno z najważniejszych wyzwań w projektowaniu i wdrażaniu systemów do współpracy w czasie rzeczywistym, a mianowicie zachowanie spójności. Ma to na celu zapewnienie, że w czasie spoczynku (to znaczy, gdy żadne wiadomości nie są przesyłane) udostępniony dokument jest identyczny dla wszystkich uczestników.

ACE opiera się na otwartych technologiach, takich jak BEEP (RFC 3080) i sieciach typu zero-conf. Wszystko to pozostawia otwartą możliwość komunikacji nawet z różnymi aplikacjami, które rozumieją publiczny protokół ACE.

ACE działa na wszystkich głównych systemach operacyjnych, takich jak Windows , Mac OS X lub Linux i jest wolnym oprogramowaniem .

Przykładowy przypadek użycia

Rozważ wspólną sesję redakcyjną z trzema uczestnikami o imionach Bill, Steve i Scott, jak pokazano na rysunku. Jest też czwarty użytkownik o imieniu Sam, który nie bierze udziału w sesji. Dokumentem, który użytkownicy wspólnie edytują, jest Collaboration.txt . Użytkownik Scott jest jego właścicielem i wydawcą. Zauważ, że użytkownicy Steve i Bill pracują w systemie operacyjnym Microsoft Windows , podczas gdy Scott używa systemu Mac OS X i Sam Linux OS. Zauważ, że kolor niebieski zawsze oznacza tekst napisany przez lokalnego użytkownika instancji ACE. Kolor odpowiadający uczestnikowi jest przedstawiony w widoku uczestników GUI .

Stosowanie

Oto lista z kilkoma przykładami wykorzystania ACE:

  • Grupowa burza mózgów
  • Rozwój kodu źródłowego ( XP )
  • Zbiorowe sporządzanie notatek
  • Wspólnie piszcie teksty (e-maile, listy, czasopisma itp.)
  • Cele edukacyjne

Ostatni punkt ujawnia nieco więcej możliwości współpracy systemów edycji: grupy składające się z dwóch do trzech uczniów mogą wspólnie pisać wypracowania. Z jednej strony uczą się nawzajem posługiwania się językiem pisanym, a z drugiej mogą wspólnie bawić się przy użyciu praktycznej aplikacji na komputerze, tracąc tym samym lęk przed kontaktem z komputerem, co jest niezbędne w dzisiejsza edukacja.

Tło technologii

Współpracujący system edycji w czasie rzeczywistym, taki jak ACE, umożliwia wielu użytkownikom wyświetlanie i edycję tego samego dokumentu w tym samym czasie z wielu rozproszonych geograficznie witryn. Witryny są połączone sieciami komunikacyjnymi. Dla takich systemów określono następujące wymagania:

  • W czasie rzeczywistym : reakcja na działania użytkowników lokalnych musi być szybka, najlepiej tak szybka, jak w przypadku pojedynczego edytora użytkownika, a opóźnienie odzwierciedlania działań użytkowników zdalnych jest niskie (określane tylko przez opóźnienie komunikacji zewnętrznej).
  • Rozproszony : Współpracujący użytkownicy mogą przebywać na różnych maszynach połączonych sieciami komunikacyjnymi z niedeterministycznym opóźnieniem.
  • Nieograniczony : wielu użytkowników może jednocześnie i niezależnie edytować dowolną część dokumentu w dowolnym momencie, aby ułatwić swobodny i naturalny przepływ informacji między wieloma użytkownikami.

System edycji kooperacyjnej w czasie rzeczywistym składa się z n instancji, z których każda jest uruchamiana przez innego użytkownika. Wszystkie instancje są połączone siecią. Jednym z najważniejszych wyzwań w projektowaniu i wdrażaniu kooperacyjnych systemów edycji w czasie rzeczywistym jest utrzymanie spójności między różnymi replikami dokumentów (po jednej dla każdej witryny). Mówi się, że wspólny system edycji jest spójny, jeśli zawsze zachowuje następujące właściwości:

  • Convergence : gwarantuje, że ten sam zestaw operacji (na przykład operacja może być wstawieniem/usunięciem znaku) został wykonany we wszystkich witrynach, że wszystkie kopie (znane również jako repliki) udostępnionego dokumentu są identyczne. Oznacza to, że ta właściwość zapewnia spójność ostatecznych wyników na koniec wspólnej sesji edycji.
  • Zachowanie przyczynowości : Dla dowolnej pary operacji Oa i Ob , jeśli Oa -> Ob (to znaczy Ob jest zależne od Oa ), wtedy Oa jest wykonywany przed Ob we wszystkich lokalizacjach. Oznacza to, że ta właściwość zapewnia spójność poleceń wykonania we wszystkich lokalizacjach operacji zależnych podczas wspólnej sesji edycji.
  • Zachowanie intencji : Dla każdej operacji O , skutki wykonania O we wszystkich miejscach są takie same jak intencje O , a efekt wykonania O nie zmienia skutków niezależnych operacji. Oznacza to, że ta właściwość zapewnia, że ​​wykonanie operacji w lokalizacjach zdalnych daje taki sam efekt, jak wykonanie tej operacji w lokalizacji lokalnej w momencie jej generowania, a efekty wykonania niezależnych operacji nie kolidują ze sobą.

Jednym z rozwiązań pozwalających uzyskać kontrolę spójności są algorytmy transformacji operacyjnej (OT). Podejście algorytmu OT składa się z dwóch głównych elementów:

  • Algorytm integracji , który jest odpowiedzialny za odbiór, nadawanie i wykonywania operacji. Jest niezależny od typu repliki dokumentów i aplikacji.
  • Funkcja transformacji odpowiada za połączenie dwóch współbieżnych operacji. To zależy od aplikacji. Na przykład edytor tekstu ma inne operacje niż aplikacja do tablicy.

Teoria utrzymania spójności wywodzi się z dziedziny badań zwanej Computer Supported Cooperative Work , w skrócie CSCW .

Zobacz też

Bibliografia

Zewnętrzne linki