Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV



Podobne dokumenty
AKADEMIA GÓRNICZO-HUTNICZA. Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki KATEDRA INFORMATYKI. SyncFile

KOŁO NAUKOWE INFORMATYKÓW SYSTEMY KONTROLI WERSJI CZ.1 16 XII 2009 OPRACOWAŁ: PRZEMYSŁAW PARDEL

Forum Client - Spring in Swing

System kontroli wersji - wprowadzenie. Rzeszów,2 XII 2010

Wykaz zmian w programie WinAdmin Replikator

Konspekt pracy inżynierskiej

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Serwery Statefull i Stateless

Programowanie współbieżne i rozproszone

Wykład Nr Sieci bezprzewodowe 2. Monitorowanie sieci - polecenia

World Wide Web? rkijanka

Wybrane działy Informatyki Stosowanej

76.Struktura oprogramowania rozproszonego.

Szczegółowa specyfikacja funkcjonalności zamawianego oprogramowania.

Bazy danych 2. Wykład 1

Wybrane działy Informatyki Stosowanej

A Zasady współpracy. Ocena rozwiązań punktów punktów punktów punktów punktów

Zdalne logowanie do serwerów

Klient-Serwer Komunikacja przy pomocy gniazd

Wypożyczalnia VIDEO. Technologie obiektowe

Usługi sieciowe systemu Linux

7. zainstalowane oprogramowanie zarządzane stacje robocze

OBSŁUGA ZDARZEO, ALARMÓW, NASTAW I FUNKCJI KONTROLNYCH W PROGRAMIE OBSŁUGI INTERFEJSU 61850

TCP/IP. Warstwa aplikacji. mgr inż. Krzysztof Szałajko

Wstęp. Skąd pobrać program do obsługi FTP? Logowanie

Zdalne wywołanie procedur. Krzysztof Banaś Systemy rozproszone 1

BACKUP BAZ DANYCH FIREBIRD

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

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

Programowanie Komponentowe WebAPI

Współpraca z platformą dokumentacja techniczna

Pojęcie systemu baz danych

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego

OPIS PRZEDMIOTU ZAMÓWIENIA w odniesieniu do zadania antywirus - dostawa oprogramowania antywirusowego

IBM DCE/DFS. Mikołaj Gierulski. 17 stycznia 2003

Serwery. Autorzy: Karol Czosnowski Mateusz Kaźmierczak

Internetowy moduł prezentacji WIZYT KLIENTA PUP do wykorzystania np. na stronie WWW. Wstęp

Serwery LDAP w środowisku produktów w Oracle

Mechanizmy pracy równoległej. Jarosław Kuchta

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Aktualizacja SMSFall v Data publikacji:

Programowanie współbieżne i rozproszone

Dokumentacja techniczna

Wykaz zmian w programie SysLoger

Aplikacje RMI

GIT. Rozproszony system kontroli wersji

Proxy (pełnomocnik) Cel: Zastosowanie: Dostarczyć zamiennik pewnego obiektu, pozwalający kontrolować dostęp do niego.

PHP: bazy danych, SQL, AJAX i JSON

Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja

Dotacje na innowacje Inwestujemy w waszą przyszłość

Opis Architektury Systemu Galileo

Wykaz zmian w programie WinAdmin Replikator

Wprowadzenie. Dariusz Wawrzyniak 1

Wykład 3 / Wykład 4. Na podstawie CCNA Exploration Moduł 3 streszczenie Dr inż. Robert Banasiak

KONCEPCJA WYKORZYSTANIA TECHNOLOGII APPLET- JAVA W TWORZENIU

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

Instrukcja instalacji usługi Sygnity SmsService

instrukcja INSTALACJI APi_proxy

Przypadki testowe. Spis treści. Plan testów. From Sęp. Wstęp. 2 Plan testów

Programowanie zespołowe

Przesyłania danych przez protokół TCP/IP

Laboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark

Instrukcja instalacji usługi Sygnity SmsService

Wzorce projektowe. dr inż. Marcin Pietroo

Środowisko programisty. Środowisko programisty 1/35

BlackHole. Bezpieczne Repozytorium Ważnych Zasobów.

Trojan bankowy Emotet w wersji DGA

Enkapsulacja RARP DANE TYP PREAMBUŁA SFD ADRES DOCELOWY ADRES ŹRÓDŁOWY TYP SUMA KONTROLNA 2 B 2 B 1 B 1 B 2 B N B N B N B N B Typ: 0x0835 Ramka RARP T

Co to jest NODE.JS? Nowoczesne środowisko programistyczne

Wykaz zmian w programie SysLoger

Dokumentacja projektu QUAIKE Architektura oprogramowania

Instrukcje instalacji pakietu IBM SPSS Data Access Pack dla systemu Windows

Aplikacje RMI Lab4

SZYBKI START. Tworzenie nowego połączenia w celu zaszyfrowania/odszyfrowania danych lub tekstu 2. Szyfrowanie/odszyfrowanie danych 4

Opis modułu pl.id w programie Komornik SQL-VAT

Wybrane działy Informatyki Stosowanej

Programowanie obiektowe

Tworzenie i wykorzystanie usług sieciowych

Wykład 5: Najważniejsze usługi sieciowe: DNS, SSH, HTTP, . A. Kisiel,Protokoły DNS, SSH, HTTP,

Instrukcja do panelu administracyjnego. do zarządzania kontem FTP WebAs.

Wywoływanie metod zdalnych

Instrukcja instalacji i obsługi programu Szpieg 3

Systemy internetowe. Wykład 5 Architektura WWW. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

Michał Jankowski. Remoting w.net 2.0

Szpieg 2.0 Instrukcja użytkownika

Projekt przejściowy 2015/2016 BARTOSZ JABŁOŃSKI, TOMASZ JANICZEK

RMI-2. Java Remote Method Invocation (RMI) na podstawie m.in. podręcznika firmy Sun Microsystems SYSTEMY ROZPROSZONE

EXSO-CORE - specyfikacja

Systemy rozproszone. na użytkownikach systemu rozproszonego wrażenie pojedynczego i zintegrowanego systemu.

Kierunek: technik informatyk 312[01] Semestr: II Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński

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

Skąd dostać adres? Metody uzyskiwania adresów IP. Statycznie RARP. Część sieciowa. Część hosta

Posiada (TAK / NIE. Zrzut ekranu. Opis funkcji

Instrukcja integratora - obsługa dużych plików w epuap2

Zadanie z lokalnych sieci komputerowych. 1. Cel zajęć

Sieci równorzędne, oraz klient - serwer

Sieci komputerowe i bazy danych

Integracja komunikatora opartego o protokół XMPP z dużym portalem internetowym

Transkrypt:

Piotr Jarosik, Kamil Jaworski, Dominik Olędzki, Anna Stępień Dokumentacja wstępna TIN Rozproszone repozytorium oparte o WebDAV 1. Wstęp Celem projektu jest zaimplementowanie rozproszonego repozytorium opartego o protokół WebDAV. Aplikacja składa się z klienta i grupy rozproszonych serwerów. Użytkownik może wysyłać oraz pobierać pliki nie wiedząc na którym z serwerów znajdują się fizyczne dane. W ramach projektu zostaną zrealizowane trzy aplikacje: klienta, bramy repozytorium oraz serwera danych. Klient łączy się z bramą w celu realizacji operacji na repozytorium. Następnie brama odpowiednio przekierowuje klienta do określonego serwera danych. W końcu klient (bez świadomości użytkownika) nawiązuje połączenie z wybranym serwerem danych i realizuje wymaganą operację. Użytkownik nie wie gdzie fizycznie znajdują się jego dane. Projekt dostarcza więc abstrakcji repozytorium - jednolitego miejsca na dane, które w rzeczywistości będzie składać się z wielu połączonych serwerów. Głównymi celami projektu jest opracowanie oraz implementacja algorytmu podziału danych w repozytorium na wiele serwerów oraz zapoznanie się oraz zaadaptowanie odpowiednich funkcji ze standardu WebDAV - kwestie te oraz inne są poruszone w punkcie trzecim Architektura i propozycja implementacji. 2. Funkcjonalność realizowanych aplikacji Klient ma możliwość: wyświetlania zawartości kolekcji - użytkownik może poprosić o wyświetlenie danej kolekcji plików. Kolekcje plików są określane względem katalogu głównego, wyspecyfikowanego przez dany serwer. Będzie istniała możliwość wyświetlenia struktury drzewiastej kolekcji oraz zawartości wybranej kolekcji. dodawania i usuwania plików z repozytorium - użytkownik będzie miał możliwość usunięcia wskazanego pliku z repozytorium oraz dodania pliku znajdującego się na komputerze użytkownika. W przypadku gdy w repozytorium, we wskazanej kolekcji istnieje już plik o takiej nazwie, nowy plik nie zostanie dodany do repozytorium o czym użytkownik zostanie poinformowany. tworzenia i usuwania kolekcji - użytkownik będzie miał możliwość utworzenia lub usunięcia wybranej kolekcji. Tworzona kolekcja znajdzie się w określonej przez użytkownika kolekcji nadrzędnej (w szczególności, gdy taka nie będzie wyspecyfikowania, kolekcja nowa kolekcja zostanie umieszczona w głównym katalogu repozytorium).

przenoszenia plików między kolekcjami oraz kopiowanie plików - użytkownik będzie miał możliwość przeniesienia lub skopiowania pliku lub całej kolekcji do innej kolekcji. wyświetlania właściwości określonego pliku lub kolekcji - data modyfikacji, rozmiar itp. Serwer danych będzie: przechowywać określone pliki na żądanie klienta udostępniać określone pliki (w przypadku gdy zasób nie istnieje na serwerze wysłany będzie określony kod błędu) Brama repozytorium będzie: przechowywać informacje o lokalizacji plików na poszczególnych serwerach oraz strukturach kolekcji - na których serwerach poszczególne pliki się znajdują oraz jakie pliki znajdują się w poszczególnych kolekcjach decydować o rozmieszczeniu plików na serwerach danych - wg określonego algorytmu podziału danych. Brama zapamiętuje jedynie, do jakiej kolekcji oraz na jakim serwerze znajduje się określony plik przekierowywać na odpowiedni serwer danych, na podstawie zapytania o dany plik. 3. Architektura i propozycja implementacji brama - serwer pośredniczący, przechowujący informację o plikach znajdujących się w repozytorium i ich fizycznej lokalizacji na serwerach danych (deskryptor systemu plików repozytorium) w postaci pliku XML. Ponadto brama odpowiada za przekierowanie do odpowiedniego serwera danych. serwer danych - serwer, na którym przechowywane są pliki użytkowników.

Repozytorium będzie składało się z n niezależnych serwerów danych oraz jednego serwera pośredniczącego - bramy posiadającej informacje o strukturze kolekcji w repozytorium oraz o rozmieszczeniu plików na poszczególnych serwerach danych. Dla poszczególnych funkcjonalności przedstawionych w punkcie drugim zaimplementowane zostaną podstawowe metody WebDAV opisane w dokumencie RFC4918, które będą obsługiwane przez serwery danych: PUT i DELETE - do umieszczania plików na serwerze oraz usuwania plików GET - do pobierania listy plików z serwera danych PROPFIND - przesyła odpowiedź z danymi właściwości określonego pliku, jeżeli taki istnieje. Ponadto brama będzie obsługiwała następujące metody: PUT, DELETE, PROPFIND - obsługa tych żądań będzie polegała na przekierowywaniu klienta na określony serwer danych. Więcej szczegółów realizacji tych metod w punkcie 3.1. MOVE - brama przeniesie plik do innej kolekcji, co powoduje jedynie zmianę w deskryptorze struktury repozytorium przechowywanego przez bramę. Więcej na temat tej metody w punkcie 3.2. COPY - utworzenie nowego pliku jako kopii już istniejącego w repozytorium, oraz umieszczenie go w określonym kolekcji. Więcej w punkcie 3.3.

MKCOL - utworzenie nowej kolekcji w repozytorium. Operacja polega jedynie na modyfikacji deskryptora struktury repozytorium przechowywanego przez bramę. 3.1. Przesyłanie i kasowanie plików (PUT, DELETE, PROPFIND) Przesyłanie plików do repozytorium odbywa się z wykorzystaniem bramy. Klient komunikuje się z bramą w przypadku, gdy chce wykonać jedną z metod PUT, DELETE lub PROPFIND. Brama nie zajmuje się jednak przechowywaniem danych, w związku z czym przekierowuje klienta na zalecany przez nią serwer danych. Wybór określonego serwera danych dokonywany jest - w przypadku metody PUT - wg algorytmu podziału przygotowanego dla rozproszonego repozytorium plików. Algorytm podziału Algorytm podziału będzie optymalizował rozmieszczenie plików na serwerach danych tak, aby były one równomiernie obciążone pojemnościowo. Algorytm zakłada, że nowy plik będzie umieszczany na serwerze, na którym sumaryczny rozmiar przechowywanych danych jest najmniejszy. Algorytm podziału stanowi część oprogramowania bramy, w związku z czym przechowuje ona informacje o obecnym obciążeniu poszczególnych serwerów danych w postaci struktury kolejki priorytetowej typu min. Przy każdym kolejnym zgłoszeniu przez klienta metody PUT brama wybiera serwer, który jest najmniej obciążony pojemnościowo (z kolejki priorytetowej typu min) i wysyła do klienta zgłoszenie przekierowania właśnie na ten serwer. Następnie klient wysyła po raz kolejny zgłoszenie PUT, tym razem do serwera danych wskazanego przez bramę, który będzie przechowywał dany plik. Problem spójności informacji przechowywanych przez bramę oraz serwery danych Istotnym problemem w realizacji rozproszonego repozytorium jest warunek zachowania spójności informacji przechowywanych przez bramę oraz serwery danych. Po przesłaniu lub usunięciu danych na określonym serwerze, deskryptor struktury repozytorium nie będzie odpowiadał plikom przechowywanym przez ten serwer. Istnieje więc konieczność zakomunikowania bramie o zmianach dokonanych w wyniku żądań klienta. Proponowane przez nas rozwiązanie opiera się na założeniu, że to serwer danych po otrzymaniu pliku lub wykonaniu usunięcia pliku informuje bramę o zmianach które zostały dokonane w repozytorium. Decyzja ta wynika z zauważenia, że aktualizacja deskryptora struktury repozytorium nie może być dokonana przez bramę w momencie żądania PUT lub DELETE bezpośrednio przez klienta. Co prawda brama przekazuje klientowi informację o serwerze, na którym należy dokonać zmian, jednak nie ma żadnej gwarancji, że klient wykona po raz kolejny żądanie PUT lub DELETE na wskazanym serwerze danych. Takie przedwczesne uznanie przez bramę, że jakiś plik pojawił się lub zniknął w repozytorium jest źródłem potencjalnej niespójności informacji. Brama o zmianach w strukturze repozytorium musi być informowana przez serwer, na którym dokonane zostały zmiany. Nasza propozycja rozwiązania tego problemu polega na użyciu mechanizmu

Java RMI w komunikacji między serwerami danych a bramą repozytorium. W momencie uruchamiania aplikacji bramy utworzony będzie nowy obiekt bramy, do którego referencja zostanie umieszczona w rejestrze RMI (który - dla uproszczenia - będzie uruchamiany na tym samym hoście co brama). Oprogramowanie serwerów danych będzie uruchamiane z obowiązkowym parametrem w postaci adresu oraz nazwy obiektu bramy. Następnie serwer danych rejestruje się wysyłając - poprzez uzyskaną referencję do obiektu Bramy - zdalną referencję swojego poprzez argument metody o postaci np. gate.registerdataserver(). Dzięki temu serwer będzie mógł komunikować bramie zmiany zachodzące w jego strukturze danych poprzez wywoływanie określonych metod uzyskanego obiektu bramy. Dostęp bramy do obiektów utworzonych przez serwery danych pozwala na monitorowanie stanu poszczególnych serwerów danych (np. określenie czy serwer jest dostępy poprzez sieć) lub realizacji metody COPY (pkt. 3.3). Komunikacja pomiędzy bramą a serwerami danych odbywa się za pomocą mechanizmu RMI. Serwer danych, po otrzymaniu żądania od klienta i pomyślnym zakończeniu operacji wywołuje odpowiednią metodę bramy, aktualizującą listę plików. 3.2. Przenoszenie plików (MOVE) Przenoszenie plików między kolekcjami w strukturze repozytorium polega jedynie na zmianie deskryptora przechowywanego w bramie. Nie jest wymagane wykonywanie jakichkolwiek działań na serwerach danych. 3.3. Kopiowanie plików (COPY) Kopiowanie plików do oddzielnych kolekcji może być również zrealizowane przy użyciu RMI. W przypadku żądania klienta skopiowania pliku w inne miejsce, brama wyszukuje informację o serwerze, w którym przechowywany jest określony plik, określa serwer docelowy, na którym będzie przechowywana kopia i w przypadku gdy serwer docelowy jest inny niż serwer źródłowy - wywołuje określoną metodę dla jednego ze zdalnych obiektów serwerów danych. 4. Użyte narzędzia Wszystkie trzy aplikacje: bramy, serwera danych oraz klienta - planujemy wykonać dla JVM. W przypadku realizacji obsługi zapytań oraz odpowiedzi dla WebDAV wykorzystane będzie prosty mechanizm Socketów z pakietu java.net. Do obsługi deskryptora jako równoprawnego obiektu zostanie wykorzystana biblioteka XStream.