Introduction to multipeer connectivity

This commit is contained in:
2026-05-03 21:35:32 +02:00
parent 177eff9ea6
commit d77170336e
2 changed files with 22 additions and 7 deletions
+20 -5
View File
@@ -17,11 +17,26 @@ Operational Transformation (OT) polega na zamianie każdej wykonanej operacji na
Następcą Operational Transformation są bezkonfliktowe replikowane typy danych (Conflict-free replicated data types - CRDT). Pozwalają one na nanoszenie zmian na własne kopie przez klientów, bez potrzeby uzgadniania tego z innymi klientami. Tak jak każdy algorytm ewentualnej zbieżńości, pozwala na tymczasową rozbieżność między replikami, ale po otrzymaniu wszystkich zmian przez każdego klienta, dane zawsze pozostają zbieżne. Przykładowymi algorytmami są RGA@cite:replicated_abstract_data_types, WOOT@cite:data_consistency_p2p_collaborative_editing oraz TreeDoc@cite:commutative_replicated_data_type.
// == Architektura Peer-to-Peer w środowiskach mobilnych
// == Algorytmy synchronizacji tekstu
// == Frameworki sieciowe udostępniane na platformach Apple
// === Multipeer Connectivity
// === Network
== Architektura Peer-To-Peer w środowiskach mobilnych
Współcześnie smartfony i podobne urządzenia mobilne posiadają moduły wspierające różne standardy komunikacji bezprzewodowej. Najpopularniejszymi z nich Bluetooth, Bluetooth Low Energy (BLE), Wi-Fi (IEEE 802.11) oraz GSM (Global System for Mobile Communications). Część z nich, np. Bluetooth, jest zaprojektowana tylko pod komunikację na niewielkie odległości (poniżej 100 metrów). Wi-Fi w nowoczesnych systemach jest rozszerzane o wsparcie protokołu Wi-Fi Direct, który umożliwia komunikację Peer-To-Peer z pomocą Wi-Fi, które najczęściej samo w sobie służy do komunikacji z innymi urządzeniami, ale wykorzystując do tego urządzenia infrastruktury sieciowej - bezprzewodowe punkty dostępu (wireless access points).
== Architektura Peer-To-Peer w systemach iOS, iPadOS, macOS, tvOS.
Systemy operacyjne iOS, iPadOS, tvOS oraz macOS rozwijane przez firmę Apple Incorporated i instalowane wyłącznie na urządzeniach przez nią produkowanych - iPhone'y, iPady, Apple TV, Macintoshe. Współcześnie wszystkie sprzedawane modele zawierają moduły oferujące Bluetooth i Wi-Fi. Dla programistów przygotowane specjalne biblioteki do bezpośredniego wykorzystania tych technologii, jednak ich użycie wymaga specjalnych certyfikatów wraz z wyjaśnieniem ich wykorzystania, które jest weryfikowane w czasie przygotowania do dystrybucji oprogramowania wykoszytującego wspomniane technologie. Ze względu na wyraźną potrzebę zapewnienia bezpieczeństwa transportowanych danych, zalecanym przez Apple jest korzystanie nie z bezpośrednich narzędzi do komunikacji z wykorzystaniem Bluetooth czy Wi-Fi, ale z bibliotek, które oferują transport danych do pobliskich urządzeń. one abstrakcją na wcześniej wspomniane protokoły komunikacji bezprzewodowej jak i przewodowej, gdzie po stronie programisty pozostaje jedynie obsłużyć parowanie się z pobliskimi urządzeniami i przygotować kodowalne obiekty do transportu. Dziś możemy wyróżnić dwie takie biblioteki oferowane przez Apple - Multipeer Connectivity oraz Network.
Multipeer Connectivity to framework zapewniający komunikację oraz odkrywanie pobliskich urządzeń. Do komunikacji wykorzystuje protokoły komunikacji bezprzewodowej - w tym dostępne sieci Wi-Fi, Bluetooth oraz w przypadku Macintoshy oraz Apple TV - protokół komunikacji przewodowej - Ethernet. Interfejs dostarczany przez bibliotekę umożliwia transport danych w postaci niewielkich wiadomości, strumieniowania danych oraz transportu plików.
Architektura Multipeer Connectivity opiera się na sesjach - połączeniach między użytkownikami w pobliżu. Sesje reprezentowane przez obiekty typu MCSession. Takie obiekty są tworzone przez programistę w dowolnym momencie oraz u nowo połączonego klienta od razu po dołączeniu do sesji do której został zaprosozny, jednocześnie każda z kopii sesji zawiera informację o wszystkich połączonych klientach. Do odkrywania innych użytkowników używany jest protokół Bonjour.
Urządzenie ogłaszające u pobliskich urządzeń dostępną sesję jest nazywany odkrywcą. Jego rolę reprezentuje obiekt MCNearbyServiceBrowser. Możemy również wykorzystać obiekt MCBrowserViewController który zapewni interfejs graficzny, dzięki któremu użytkownik będzie mógł zaprosić klientów do swojej sesji. Urządzenie poszukujące dostępnych sesji jest nazywany nadawcą. Jego reprezentantem jest obiekt MCNearbyServiceAdvertiser.
Obiektem identyfikującym urządzenie miedzy sesjami jest MCPeerID, zawierający dane unikalne dla klienta w zakresie danej sesji.
W czasie odkrywania urządzeń w pobliżu, mamy jedynie dostęp do ograniczonej ilości informacji, które dystrybuowane przez nadawców. Dopiero po wysłaniu zaproszenia przez odkrywcę, a następnie akceptacji przez nadawcę, możemy wykorzystać w pełni interfejs Multipeer Connectivity do komunikacji.
// zalety, wady
=== Network
// == Analiza istniejących rozwiązań <analiza>
// === Aplikacje zcentralizowane
// === Aplikacje zdecentralizowane
BIN
View File
Binary file not shown.