Introduction
This commit is contained in:
@@ -1,4 +1,16 @@
|
|||||||
#set heading(numbering: none)
|
#set heading(numbering: none)
|
||||||
|
|
||||||
= Wstęp <wstep>
|
= Wstęp <wstep>
|
||||||
Tu będzie dopiero treść :)
|
|
||||||
|
Współczesne narzędzia do wspólnego tworzenia dokumentów, takie jak Google Docs czy Microsoft Word Online, zrewolucjonizowały sposób, w jaki zespoły pracują nad treścią. Umożliwiają one wielu użytkownikom jednoczesną edycję tego samego dokumentu z wielu urządzeń. Ich powszechność skrywa jednak ważne ograniczenie architektoniczne - wszystkie one opierają się na scentralizowanym serwerze, który pośredniczy w każdej wymianie danych. Oznacza to, że gdy dwóch użytkowników pracuje nad wspólnym dokumentem w tym samym pomieszczeniu, każda wprowadzona zmiana musi najpierw dotrzeć do serwerów dostawcy usługi, zanim zostanie przekazana drugiemu uczestnikowi sesji. W konsekwencji brak dostępu do Internetu uniemożliwia dalszą współpracę, a uzależnienie od zewnętrznej infrastruktury tworzy pytania o prywatność danych oraz ciągłość usługi.
|
||||||
|
|
||||||
|
Niniejsza praca inżynierska podejmuje próbę odpowiedzi na powyższe ograniczenia poprzez zaprojektowanie i implementację mobilnej aplikacji do współtworzenia notatek tekstowych działającej w architekturze Peer-To-Peer. Zaproponowane rozwiązanie pozwala urządzeniom komunikować się bezpośrednio ze sobą za pośrednictwem Bluetooth lub Wi-Fi, bez udziału centralnego serwera i bez konieczności posiadania dostępu do Internetu. Aplikacja została zbudowana z myślą o urządzeniach firmy Apple z systemem iOS oraz iPadOS, z wykorzystaniem języka programowania Swift oraz deklaratywnego frameworka SwiftUI. Do komunikacji Peer-To-Peer zastosowano dostarczany przez Apple framework Multipeer Connectivity.
|
||||||
|
|
||||||
|
Cele pracy obejmują:
|
||||||
|
- Przegląd i analizę istniejących algorytmów zapewniających zbieżność danych w systemach rozproszonych — w szczególności Operational Transformation oraz bezkonfliktowych replikowanych typów danych,
|
||||||
|
- Omówienie możliwości komunikacji Peer-To-Peer dostępnych na platformach firmy Apple,
|
||||||
|
- Zdefiniowanie wymagań funkcjonalnych i niefunkcjonalnych dla projektowanej aplikacji,
|
||||||
|
- Implementację aplikacji realizującej zdefiniowane wymagania, w tym mechanizm odkrywania urządzeń, synchronizacji notatek oraz rozwiązywania konfliktów metodą Last-Write-Wins,
|
||||||
|
- Weryfikację poprawności działania systemu za pomocą testów jednostkowych oraz manualnych.
|
||||||
|
|
||||||
|
Praca składa się z czterech rozdziałów. Rozdział pierwszy przedstawia zakres teoretyczny — omawia modele zbieżności danych, algorytmy synchronizacji stosowane w systemach do współpracy w czasie rzeczywistym, a także możliwości komunikacji P2P dostępne w systemach iOS i iPadOS. Przybliżone zostają istniejące rozwiązania rynkowe oraz ich ograniczenia. Rozdział drugi zawiera specyfikację wymagań systemowych, zarówno funkcjonalnych, jak i niefunkcjonalnych, które wyznaczają zakres realizowanej implementacji; opisuje architekturę aplikacji, model danych, warstwę sieciową, algorytm rozwiązywania konfliktów oraz napotkane wyzwania implementacyjne. Rozdział trzeci prezentuje przeprowadzone testy i ich wyniki. Rozdział czwarty stanowi podsumowanie osiągniętych celów oraz propozycje kierunków dalszego rozwoju aplikacji.
|
||||||
|
|||||||
LFS
BIN
Binary file not shown.
Reference in New Issue
Block a user