11.2. Realizacja BODASa

Używane są obecnie 2 implementacje. Pierwsza z nich używa programu do różnicowego przesyłania danych rsync (z pewnymi opisanymi dalej komplikacjami) i wykorzystywana jest do automatycznego przesyłania danych między obiektami. Druga wykorzystuje protokół oparty na rsyncu, wymiana danych odbywa się między SZARP Synchronization Server zainstalowanym na serwerze centralnym, a graficznym klientem Szarp Synchronization Client zainstalowanym na komputerze użytkownika chcącego oglądać dane historyczne. Obie implementacje w rezultacie powodują utworzenie lokalnej kopii wszystkich plików tworzących bazę SZARP. Oznacza to że mechanizmy te mogą być używane wymiennie, a w razie potrzeby baza może być po prostu skopiowana/przeniesiona w dowolny inny sposób.

Rsync używany jest przez ssh, zwykle z wymianą kluczy między przesyłającymi dane komputerami aby uniknąć wpisywania hasła. Domyślnie przesyłane są dane tylko z 2 ostatnich miesięcy. Jeżeli potrzeba zsynchronizować starsze pliki (bo np. ręcznie zmodyfikowano historyczne dane), to na obiekcie źródłowym dla danych modyfikowany jest plik /opt/szarp/<prefix>/szbase_stamp. W związku z tym aby sprawdzić czy trzeba przesyłać całość czy tylko 2 ostatnie miesiące, należy sprawdzić datę modyfikacji tego pliku. Może być to robione przez ssh, ale wymaga to wtedy zestawienia dwóch połączeń - najpierw do sprawdzenia daty pliku, później do przesłania danych. Dostępny jest więc mechanizm pozwalający na zmniejszenie obciążenia serwera - data modyfikacji pliku może być sprawdzona przez protokół HTTP, łączący się do serwera stampd działającego na porcie 81. Całość odpowiednich operacji wykonują skrypty /opt/szarp/bin/szbpush i /opt/szarp/bin/szrsync służące odpowiednio do wysyłania i odbierania danych. Szczegóły ich użycia można sprawdzić wywołując je z opcją -h.

Więcej informacji na temat drugiej impementacji znajduje się w rozdziale o serwerze synchronizacji - Rozdział 14 oraz w dokumentacji programu SSC - http://szarp.org/szarp/doc/ssc/html/ssc.html.