| Termin | Definicja |
|---|---|
| Tworzenie subskrypcji | Tworzenie subskrypcji łączy subskrybenta z publikacją, uruchamiając początkową synchronizację danych. Na czym polega tworzenie subskrypcjiTworzenie subskrypcji to operacja, w której odbiorca zgłasza zainteresowanie określoną publikacją danych lub komunikatów. Publikacją może być kanał wiadomości, temat zdarzeń, lista zmian, strumień powiadomień albo zasób udostępniany przez aplikację. Subskrybent otrzymuje identyfikator lub zapis konfiguracji pozwalający systemowi rozpoznać, jakie dane powinny być mu dostarczane. Sama subskrypcja nie musi oznaczać pobierania całej zawartości od początku. To, czy nastąpi pełna synchronizacja, zależy od protokołu i sposobu przechowywania danych przez konkretny system. Podczas zakładania subskrypcji system zwykle sprawdza istnienie publikacji, uprawnienia odbiorcy oraz poprawność parametrów połączenia. Następnie zapisuje relację między subskrybentem a publikacją. W praktyce może zostać utworzony rekord w bazie danych, identyfikator kolejki, token dostępu lub lokalny plik stanu. Od tego momentu nowe dane mogą być kierowane do właściwego odbiorcy. Jeżeli publikacja ma już historię zmian, system ustala także punkt początkowy synchronizacji, na przykład najnowszą wersję, określony znacznik czasu albo numer komunikatu. Inicjalna synchronizacja po zapisaniu relacjiPoczątkowa synchronizacja służy uzgodnieniu stanu odbiorcy ze stanem publikacji. Jeżeli subskrybent nie ma lokalnej kopii danych, może otrzymać pełny zestaw rekordów albo specjalny pakiet inicjalny. W innym modelu dostaje wyłącznie zmiany od wskazanego punktu kontrolnego. Serwer musi wtedy rozróżniać dane już dostarczone od danych oczekujących na wysłanie. Do tego celu stosuje się między innymi numer sekwencyjny, wersję obiektu, znacznik czasu lub identyfikator pozycji w dzienniku zmian. Synchronizacja może przebiegać synchronicznie, gdy odpowiedź z danymi jest zwracana w ramach żądania utworzenia subskrypcji, albo asynchronicznie, gdy utworzenie relacji kończy się szybko, a dane są pobierane w kolejnych żądaniach. Przy dużych publikacjach drugie rozwiązanie ogranicza czas oczekiwania i zużycie pamięci. Aplikacja kliencka powinna wtedy obsługiwać stan taki jak „utworzona”, „synchronizowana”, „aktywna” lub „z błędem”. Niedopuszczalne jest uznanie subskrypcji za w pełni gotową tylko dlatego, że serwer przyjął żądanie jej utworzenia. Kontrola spójności i obsługa błędówPoprawnie zaprojektowana subskrypcja musi uwzględniać przerwanie połączenia, powtórzenie żądania oraz częściowe dostarczenie danych. Jeżeli klient nie otrzyma odpowiedzi z powodu zerwania połączenia, ponowienie operacji może doprowadzić do utworzenia dwóch identycznych subskrypcji. Dlatego systemy stosują klucz idempotencji, jednoznaczny identyfikator subskrypcji albo sprawdzają, czy dana relacja już istnieje. W przypadku ponownego uruchomienia programu klient powinien odczytać zapisany stan i kontynuować synchronizację od ostatniego potwierdzonego punktu. Istotne jest również potwierdzanie odbioru. Samo wysłanie komunikatu nie dowodzi, że został on zapisany po stronie klienta. Mechanizm potwierdzeń pozwala rozróżnić wiadomość oczekującą, dostarczoną i przetworzoną. Jeśli system gwarantuje co najmniej jednokrotne dostarczenie, ten sam komunikat może pojawić się ponownie, więc aplikacja odbiorcza musi tolerować duplikaty, na przykład przez zapisywanie obsłużonych identyfikatorów. Przy utracie fragmentu historii klient powinien otrzymać informację o konieczności ponownej synchronizacji pełnej lub od określonego punktu. Bez takiej kontroli lokalny stan może wyglądać poprawnie, mimo że brakuje w nim części danych. Znaczenie ustawień klienta i diagnostykiProblemy z tworzeniem subskrypcji często wynikają z niezgodności konfiguracji, a nie z samego mechanizmu publikacji. Należy sprawdzić adres usługi, nazwę publikacji, identyfikator konta, zakres uprawnień, format komunikatów oraz wymagany sposób uwierzytelniania. Warto także porównać wersję klienta z wersją używanego interfejsu i sprawdzić, czy zegar systemowy nie jest znacznie rozregulowany, gdy tokeny lub podpisy mają ograniczony czas ważności. W dzienniku zdarzeń powinny być widoczne co najmniej moment utworzenia relacji, wynik autoryzacji, rozpoczęcie synchronizacji i numer ostatniego poprawnie przetworzonego elementu. Na komputerze użytkownika objawem nieudanej subskrypcji może być brak nowych powiadomień, ciągłe ponawianie synchronizacji, wzrost rozmiaru lokalnej pamięci podręcznej albo komunikat o nieosiągalnej usłudze. Diagnostyka powinna obejmować połączenie sieciowe, zaporę, działanie aplikacji klienckiej, dostępne miejsce na dysku i integralność lokalnych plików danych. Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów, komputerów PC oraz podzespołów, dlatego może sprawdzić, czy źródłem problemu z aplikacją subskrypcyjną jest awaria systemu, dysku, pamięci lub konfiguracji komputera. |