| Termin | Definicja |
|---|---|
| niespójność danych między systemami | Niespójność danych między systemami to sytuacja, w której ten sam rekord ma różne wartości w kilku aplikacjach. Jak powstaje różnica między tym samym rekordemNiespójność danych między systemami występuje wtedy, gdy kilka aplikacji przechowuje informacje o tym samym obiekcie, lecz po pewnym czasie wartości tych informacji przestają być zgodne. Przykładem może być rekord urządzenia, użytkownika, zamówienia albo licencji, który w jednej aplikacji ma status „aktywny”, a w drugiej „zakończony”. Różnica może dotyczyć także nazwy, numeru seryjnego, adresu, daty modyfikacji, ceny lub przypisania rekordu do konkretnego konta. Sam fakt przechowywania danych w dwóch miejscach nie powoduje jeszcze błędu, ale wymaga określenia, który system jest źródłem prawdy i w jaki sposób pozostałe systemy otrzymują aktualizacje. Do rozbieżności często dochodzi wskutek przerwanego przesyłania danych, błędu programu integracyjnego, odrzucenia niepoprawnego komunikatu albo chwilowej niedostępności jednego z systemów. Innym powodem jest zapis wykonany bezpośrednio w jednej aplikacji z pominięciem mechanizmu synchronizacji. Problemy mogą powodować również różne formaty wartości, na przykład zapis daty w odmiennych strefach czasowych, różne jednostki miary, skrócone identyfikatory lub odmienne reguły interpretacji pustego pola. Jeżeli system odbierający nie rozpoznaje komunikatu albo otrzymuje go dwukrotnie, bezpieczna synchronizacja wymaga obsługi błędów i powtórzeń. Źródło prawdy, identyfikatory i kolejność zmianPodstawą kontroli spójności jest jednoznaczny identyfikator rekordu. Jeżeli jedna aplikacja rozpoznaje klienta po adresie e-mail, a druga po wewnętrznym numerze, łatwo o utworzenie dwóch rekordów opisujących tę samą osobę lub urządzenie. Stabilny identyfikator powinien być przechowywany bez zmian, a jego mapowanie między systemami musi być jawne. Nie należy opierać identyfikacji wyłącznie na nazwie, adresie lub innych polach, które użytkownik może zmienić. Istotne są także znaczniki czasu, wersja rekordu oraz informacja o systemie, który wykonał ostatnią modyfikację. W środowisku, w którym aktualizacje są przekazywane asynchronicznie, dane mogą przez pewien czas pozostawać przejściowo niespójne. Oznacza to, że zapis w systemie źródłowym pojawia się w systemie zależnym z opóźnieniem. Nie każda chwilowa różnica jest więc trwałą awarią, ale opóźnienie powinno mieścić się w ustalonym zakresie i być mierzalne. Ważna jest kolejność zdarzeń: komunikat opisujący starszą zmianę nie powinien nadpisać nowszej wartości. Stosuje się do tego numery wersji, znaczniki czasu generowane w określonym źródle albo reguły odrzucające aktualizację starszą od już zapisanej. Porównanie rekordów i ustalenie przyczynyDiagnostyka rozpoczyna się od wybrania konkretnego rekordu, dla którego występuje różnica, oraz zebrania jego wartości z każdego systemu. Należy porównać nie tylko pola widoczne w interfejsie, lecz także identyfikator, wersję, czas ostatniej zmiany, status techniczny synchronizacji i źródło wpisu. Przydatne jest zestawienie wartości w jednej tabeli lub wynik kontroli wykonywanej według wspólnego klucza. W przypadku dużych zbiorów można obliczać sumy kontrolne dla uporządkowanych pól, jednak różnica sumy wskazuje jedynie, że rekordy nie są identyczne; nie wyjaśnia, które pole zostało zmienione. Następnie sprawdza się dzienniki aplikacji, kolejki komunikatów, historię prób wysyłki i odpowiedzi systemu odbierającego. Trzeba rozróżnić błąd odrzucenia danych, brak komunikatu, wielokrotne przetworzenie oraz konflikt dwóch równoczesnych zmian. Sama ponowna synchronizacja może zamaskować problem, dlatego przed jej wykonaniem warto zachować kopię aktualnych wartości i ustalić chronologię zdarzeń. Jeżeli jeden system ma poprawną wartość biznesową, a drugi jedynie nieaktualną kopię, korekta powinna zostać wykonana z ustalonego źródła prawdy. Jeżeli oba systemy zostały zmienione niezależnie, konieczne jest rozstrzygnięcie konfliktu na podstawie historii i reguł obowiązujących dla danego rekordu. Naprawa synchronizacji w środowisku użytkownikaUsunięcie pojedynczej rozbieżności polega na ustaleniu prawidłowej wartości, poprawieniu rekordu w odpowiednim systemie i potwierdzeniu, że aktualizacja dotarła do pozostałych aplikacji. Trwała naprawa wymaga jednak usunięcia przyczyny: poprawy walidacji, przywrócenia działania mechanizmu wymiany danych, naprawy mapowania pól albo zabezpieczenia obsługi powtórzeń. Operacje synchronizacyjne powinny być idempotentne, czyli wielokrotne przetworzenie tego samego komunikatu powinno prowadzić do tego samego wyniku, a nie do tworzenia kolejnych wpisów lub wielokrotnego naliczania tej samej zmiany. W komputerze użytkownika problem może mieć postać niezgodnych danych między programem lokalnym, usługą internetową i aplikacją używaną na innym urządzeniu. Przed usunięciem danych lub ponowną instalacją programu należy ustalić, gdzie znajduje się aktualna kopia oraz czy synchronizacja została zakończona. Warto sprawdzić połączenie sieciowe, datę i godzinę systemową, komunikaty aplikacji, dostępne miejsce na dysku oraz stan lokalnego pliku danych. Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów, komputerów PC i ich podzespołów, w tym diagnostyką problemów z oprogramowaniem, lokalnymi danymi oraz działaniem aplikacji na komputerze. |