Projekt i implementacja systemu informatycznego synchronizacji plików. w sieci wg ustalonych kryteriów. Maciej Tomaszewski

Podobne dokumenty
Cryptobox Aplikacja do synchronizacji danych użytkownika w systemie KMD2

Microsoft SQL Server Podstawy T-SQL

Web frameworks do budowy aplikacji zgodnych z J2EE

Kompleksowe tworzenie aplikacji klasy Desktop z wykorzystaniem SWT i

1. Zakres modernizacji Active Directory

Spis treści 1. Wstęp 2. Projektowanie systemów informatycznych

7. zainstalowane oprogramowanie zarządzane stacje robocze

Bazy danych 2. Wykład 1

11. Rozwiązywanie problemów

Programowanie MorphX Ax

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)

Wybrane metody obrony przed atakami Denial of Service Synflood. Przemysław Kukiełka

Część I Tworzenie baz danych SQL Server na potrzeby przechowywania danych

Narzędzia informatyczne wspierające przedsięwzięcia e-commerce

Wykorzystanie standardów serii ISO oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych

KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED

Udaj się na stronę (lub tymczasowy zapewniający połączenie szyfrowane)

Wykład 1 Inżynieria Oprogramowania

ZAŁĄCZNIK NR 3 OPIS PRZEDMIOTU ZAMÓWIENIA DOTYCZĄCY WDROŻENIA PLATFORMY ZAKUPOWEJ

Podziękowania... xv. Wstęp... xvii

Opis komunikacji na potrzeby integracji z systemem klienta (12 kwiecień, 2007)

EXSO-CORE - specyfikacja

WYKŁAD 1 ANGULARJS CZĘŚĆ 1

INŻYNIERIA OPROGRAMOWANIA

Serwer SSH. Wprowadzenie do serwera SSH Instalacja i konfiguracja Zarządzanie kluczami

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.

Spis treści. O autorze 9. O recenzentach 10. Przedmowa 13. Rozdział 1. Oto Linux Mint 17_

Projektowanie i implementacja infrastruktury serwerów

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Analiza i projektowanie aplikacji Java

Hurtownie danych - przegląd technologii

Tomasz Grześ. Systemy zarządzania treścią

11. Autoryzacja użytkowników

systemy informatyczne SIMPLE.ERP Budżetowanie dla Jednostek Administracji Publicznej

1. Wprowadzenie Środowisko multimedialnych sieci IP Schemat H

KATEGORIA OBSZAR WIEDZY NR ZADANIA Podstawowe informacje i czynności

Replikacje. dr inż. Dziwiński Piotr Katedra Inżynierii Komputerowej. Kontakt:

Wstęp... ix. 1 Omówienie systemu Microsoft Windows Small Business Server

Praca magisterska Jakub Reczycki. Opiekun : dr inż. Jacek Rumiński. Katedra Inżynierii Biomedycznej Wydział ETI Politechnika Gdańska

INFORMATYKA Pytania ogólne na egzamin dyplomowy

Serwery LDAP w środowisku produktów w Oracle

Baza danych sql. 1. Wprowadzenie

Jak używać funkcji prostego udostępniania plików do udostępniania plików w systemie Windows XP

Semantyczny Monitoring Cyberprzestrzeni

Szczegółowa specyfikacja funkcjonalności zamawianego oprogramowania.

Projekt Fstorage. Łukasz Podkalicki Bartosz Kropiewnicki

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

INŻYNIERIA OPROGRAMOWANIA

Spis tre±ci. Przedmowa... Cz ± I

Konfiguracja vsftpd ( Very Secure FTP Server )

OPROGRAMOWANIE WSPOMAGAJĄCE ZARZĄDZANIE PROJEKTAMI. PLANOWANIE ZADAŃ I HARMONOGRAMÓW. WYKRESY GANTTA

Spis treści CZĘŚĆ I. NIEPARAMETRYCZNE PROJEKTOWANIE 2D...31

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów niestacjonarnych studiów II stopnia)

Szczegółowy harmonogram rzeczowy realizacji prac systemu B2B

System zarządzający grami programistycznymi Meridius

Program szkolenia: Symfony, nowoczesny framework PHP

Zaawansowane programowanie obiektowe - wykład 5

Platforma wymiany informacji e- science.pl, jako skuteczne narzędzie współpracy. Mateusz Tykierko

ANGULARJS TWORZENIE APLIKACJI INTERNETOWYCH

Szczególne problemy projektowania aplikacji internetowych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Automatyczne decyzje kredytowe, siła szybkiego reagowania i optymalizacji kosztów. Roman Tyszkowski ING Bank Śląski S.A. roman.tyszkowski@ingbank.

<Nazwa firmy> <Nazwa projektu> Specyfikacja dodatkowa. Wersja <1.0>

Poziomy wymagań Konieczny K Podstawowy- P Rozszerzający- R Dopełniający- D Uczeń: - zna rodzaje sieci - zna topologie sieciowe sieci

PROJEKT Z BAZ DANYCH

Jarosław Kuchta. Administrowanie Systemami Komputerowymi. Klastry serwerów

5. Kupujący ma w każdej chwili możliwość wglądu, poprawiania, aktualizacji oraz usuwania danych osobowych przechowywanych przez Sprzedawcę.

Plan. Raport. Tworzenie raportu z kreatora (1/3)

Tworzenie i wykorzystanie usług sieciowych

Specyfikacja techniczna GoBiz Virtual Office - systemu dostępu do zasobów wirtualnego biura przez Internet

4. Podstawowa konfiguracja

Konfigurowanie Windows 8

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład X

Modularny system I/O IP67

DHL CAS ORACLE Wymagania oraz instalacja

Ramowy plan kursu. Lp. Moduły Wyk. Lab. Przekazywane treści

Analiza i projekt systemu pracy grupowej z zastosowaniem metodyki SCRUM w technologii SharePoint Karolina Konstantynowicz

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów dziennych studiów II stopnia)

Laboratorium Systemów Operacyjnych

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Windows.

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

Firma Informatyczna ASDER. Prezentacja. Serwer danych lokalnych. Przemysław Kroczak ASDER

BACKUP BAZ DANYCH MS SQL

Instrukcja instalacji Asystenta Hotline

Naczynia połączone - czyli o powiązaniach wielu obiegów

Microsoft Exchange Server 2013

SM-EX System Multipłatności - EX

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Spis treści. Dzień 1. I Wprowadzenie (wersja 0906) II Dostęp do danych bieżących specyfikacja OPC Data Access (wersja 0906) Kurs OPC S7

Migracja do PostgreSQL za pomocą narzędzi Enterprise DB

Zmiany funkcjonalne i lista obsłużonych zgłoszeń Comarch DMS , Comarch DMS i Comarch DMS

Definiowanie filtrów IP

Synchronizator plików (SSC) - dokumentacja

12. Wirtualne sieci prywatne (VPN)

INSTRUKCJA INSTALACJI SYSTEMU

Analiza i częściowa implementacja systemu elektronicznej wymiany danych na przykładzie e-faktury

Projektowanie, tworzenie aplikacji mobilnych na platformie Android

Transkrypt:

Projekt i implementacja systemu informatycznego synchronizacji plików w sieci wg ustalonych kryteriów Maciej Tomaszewski Promotor: mgr inż. Jerzy Rosiek

CEL I ZAKRES PRACY Projekt i implementacja systemu do replikacji i synchronizacji plików i katalogów przez sieć wg ustalonych kryteriów. Główne zadanie systemu to wparcie dla gestora zasobów w zakresie utrzymania spójności między replikami katalogów i plików. Określenie grupy użytkowników Główne algorytmy i modele wykorzystywane podczas synchronizacji Określenie wymagań funkcjonalnych i niefunkcjonalnych dla budowanego systemu Wybór technologii i narzędzi do wykonania systemu. Opracowanie logiki działania i architektury systemu, projektu bazy danych i interfejsu użytkownika. Wykonanie bazy danych i aplikacji. Opracowanie metodyki testowania aplikacji i przeprowadzenie testów

WPROWADZENIE Podstawowe definicje: replikacja, synchronizacja, konflikt synchronizacji, wykrywanie zmian (update detection), rekoncyliacja Publikacje dotyczące tematyki replikacji i synchronizacji: S. Balasubramaniam i Benjamin C. Pierce: What is a File Synchronizer? 98 N. Ramsey and E. Csirmaz: An algebraic approach to file synchronization 01 Tridgel, Mackerras Opis algorytmu rssync 96

FAZA STRATEGICZNA Zdefiniowanie grupy użytkowników. Określenie wymagań stawianych systemom synchronizacji plików. Automatyczne wykrywanie zmian w replikach Synchronizacja między lokalnymi dyskami oraz przez sieć Synchronizacja jedno i dwu-kierunkowa Prosty w użytkowaniu Umożliwiający parametryzację definiowanych synchronizacji Umożliwiający zapamiętanie wybranych parametrów Oszacowanie zapotrzebowania na systemy synchronizacji plików. Wzrost liczby użytkowników Internetu Wzrost liczby użytkowników urządzeń mobilnych

TEORETYCZNE PODSTAWY SYNCHORNIZACJI Algorytmy synchronizacja w najprostszej postaci. Algorytmy synchronizacji zegarów: algorytm cristiana z pasywnym serwerem czasu czas logiczny czas uzgadniany znacznik czasu lamporta relacja uprzedniości zdarzeń, porządek chronologiczny wektorowe znaczniki czasu - przyczynowość Modele i protokoły spójności reguły utrzymania spójności Modele ukierunkowane na dane modele statyczne Modele ukierunkowane na klienta modele dynamiczne ukierunkowane na mobilnych klientów

PRZEGLĄD DOSTĘPNYCH TECHNOLOGII I NARZĘDZI DO REPLIKACJI I SYNCHRONIZACJI PLIKÓW Microsoft Sync Framework - technologia Rsync protokół, algorytm, aplikacja Unison File Synchronizer - aplikacja

MODEL SYNCHRONIZACJI PLIKÓW Zadania modelu: Precyzyjne, proste i konkretne ramy dla synchronizacji plików. Zdefiniowanie podstawowych pojęć Opisanie pożądanych zasad działania synchronizatora Ogólny schemat procesu synchronizacji plików.

MODEL SYNCHRONIZACJI PLIKÓW cd.. Sposoby wykrywanie aktualizacji update detection Trivial update detector predykat ciągłej prawdy Exact update detector - porównywanie stanów przed i po synchronizacji Simple modtime update detector Modtime inode update detector (unix, linux) On-line update detector (np.windows) śledzenie historii zmian Rekoncyliacja propagowanie modyfikacji propagating all non-conflicting updates

PROBLEMY ZWIĄZANE Z SYNCHRONIZACJĄ PLIKÓW I KATALOGÓW Prawidłowe rozpoznawanie zmodyfikowanych plików i katalogów Współbieżna modyfikacja Wolne media transmisyjne Duże paczki danych Uprawnienia w systemie plików

WYBÓR TECHNOLOGII I NARZĘDZI DO WYKONANIA SYSTEMU Ogólna architektura budowanego systemu Zakres realizacji

WYBÓR TECHNOLOGII I NARZĘDZI DO WYKONANIA SYSTEMU cd.. Microsoft Sync Framework Podstawowe komponenty Sync Framework

WYBÓR TECHNOLOGII I NARZĘDZI DO WYKONANIA SYSTEMU cd.. Microsoft Sync Framework Mechanizm przebiegu procesu synchronizacji w Sync Framework

WYBÓR TECHNOLOGII I NARZĘDZI DO WYKONANIA SYSTEMU cd.. Główne cechy providera dla synchronizacji plików Synchronizacja uwzględniająca: zawartość plików, nazwy plików i katalogów, znaczniki czasu, atrybuty Obsługa filtrowania synchronizowanych danych Hashowanie plików do wykrywania zmian wewnątrz plików Wbudowane polityki rozwiązywania konfliktów synchronizacji Wykrywanie aktualizacji - metadane Wykrywanie i obsługa konfliktów synchronizacji Konflikt jednoczesnej aktualizacji najmłodszy wygrywa Konflikt jednoczesnej aktualizacji i usuwania aktualizacja ponad usuwaniem Konflikt jednoczesnego tworzenia pliku i usuwania katalogu tworzenie ponad usuwaniem Konflikt nazw katalogów mergowanie zawartości Konflikt nazw plików Konflikt jednoczesnego utworzenia plików o tej samej nazwie Konflikt jednoczesnego utworzenia pliku i zmiany nazwy pozostają oba pliki a nazwa jednego jest deterministycznie zmieniana Obsługa błędów synchronizacji i odzyskiwanie danych synchronizacja częściowa Zbieżność aktualizacji i gwarancje spójności blokowanie synchronizacji do kolejnej sesji

WYBÓR TECHNOLOGII I NARZĘDZI DO WYKONANIA SYSTEMU cd.. Parametryzacja synchronizowanych danych Kierunek synchronizacji: Upload, Download, UploadAndDownload, DownloadAndUpload Symulowanie synchronizacj Opcje synchronizacji Porównanie zawartości plików Przenoszenie do systemowego kosza plików stanowiących konflikt Przenoszenie do systemowego kosza plików usuwanych podczas synchronizacji Przenoszenie do systemowego kosza plików nadpisanych podczas synchronziacji Opcje filtrowania Wyłączenie z synchronizacji podfolderów Wyłączenie z synchronizacji określonych atrybutów obiektów Wyłączenie z synchronizacji określonych nazw plików Włączenie do synchronizacji określonych nazw plików Wybór domyślnej polityki rozwiązywania konfliktów: merge, source wins, destination wins

ARCHITEKTURA SYSTEMU, PROJEKT BAZY DANYCH I INTERFEJS UŻYTKOWNIKA Zakres i kontekst przedsięwzięcia Wymagania funkcjonalne i poza funkcjonalne Budowa aplikacji podstawowe klasy Synchronizer SyncOption UpdateDetector Reconciliator DBTools

BUDOWA APLIKACJI PRZYPADKI UŻYCIA

BUDOWA APLIKACJI cd.. Komunikacja między obiektami

BUDOWA APLIKACJI cd.. Komponenty systemu

Projekt bazy danych

Interfejs użytkownika główne okno aplikacji

Interfejs użytkownika definiowanie synchronizacji

Interfejs użytkownika filtry i parametry

IMPLEMENTACJA - ZASTOSOWANE WZORCE PROJEKTOWE MVC (Model-View-Controler) DataLayer FileSynchronizer BusinessLayer Observer State

IMPLEMENTACJA CD.. FILESYNCPROVIDER UWAGI Główne metody: DetectChanges(), Syncrhonize() Typy konfliktów synchronizacji: Concurrency conflict, constraint conflict Collision conflict Missing parent conflict Other Ogłaszanie wystąpienia konfliktu ItemConflicting ItemConstraint Sposób rozwiązania konfliktu SetResolutionAction (ConflictResolutionAction)

Wnioski TESTOWANIE APLIKACJI ArgumentOutOfRangeException dla synchronizacji UploadAndDownload przy jednoczesnym usunięciu obiektu z repliki docelowej i zmianie nazwy w replice źródłowej MERGE - dla plików powoduje przeniesienie pliku do katalogu tymczasowego i zrekocyliowanie replik wg danych ze źródła. Pliki w katalogu tymczasowym są przechowywane do kolejnej sesji synchronizacji, w której zostają uspójnione. Równoczesna modyfikacji nazw katalogów w replikach. Dla kierunku synchronizacji UploadAndDowload wystąpił wyjątek ArgumentOutOfRangeException, dla kierunku DownloadAndUpload synchronizacja przebiega poprawnie.

PODSUMOWANIE Wykorzystana w pracy technologia, moim zdaniem, pozwoliła na zrealizowanie aplikacji zgodnie z założonym tematem pracy, pomimo, że nie wszystkie wymagania stawiane aplikacja udało się zrealizować. Testy aplikacji wykazały, co prawda, że sam Framework w specyficznych przypadkach może nie zachowywać się jeszcze stabilnie ale należy mieć na uwadze, że technologia Sync jest nowa i docenić jej zalety. Niewykluczone, że wersja Sync Framework 3.0 będzie obsługiwała również synchronizację plików przez Internet co pozwoli również na rozbudowę aplikacji.

Dziękuję