D

DistSys

Text distribution system for manual annotation tasks.

public

 
Instrukcja instalacji systemu zarządzania plikami.


W poniższej instrukcji zakładamy, że czytelnik posiada podstawową
wiedzę na temat administracji serwera svn. Zakładamy, że
po stronie serwera zainstalowane są następujące narzędzia:

* subversion
* python (2.6 lub 2.7)
* pysvn

GUI ułatwiające pobieranie i wysyłanie zaanotowanych plików
zbudowane jest na bazie:

* python
* wxPython
* wxGlade

Przygotowana została binarna wersja GUI pod system Windows,
dzięki czemu użytkownicy systemu nie muszą posiadać
zainstalowanych powyższych narzedzi.


------------------------------------------------------------------


Razem z instrukcją README administrator systemu powinien otrzymać:

* Moduł dfs -- implementację systemu zarządzania plikami,
* Katalog scripts -- zestaw skryptów ułatwiających tworzenie i
  zarządzanie systemem,
* Moduł gui -- implementację GUI dla użytkowników systemu.
* Katalog z przykładową konfiguracją serwera
  (pliki $SERVER.cfg oraz $USERS.cfg),
* Katalog z przykładową konfiguracją klienta GUI (plik $GUI.cfg).

Ponadto, administrator powinien wygenerować klucze szyfrujące
połączenie klient-serwer -- pliki key.pem i cert.pem.
Odpowiednie informacje na temat generowania kluczy można znaleźć
pod adresem:

http://docs.python.org/dev/library/ssl.html#certificates


==================================================================


1) Zakładanie nowego repozytorium.


Na serwerze, w katalogu, w którym ma znajdować się repozytorium,
należy wykonać komendę:

$ svnadmin create $REPO.PATH

W katalogu konfiguracyjnym repozytorium ($REPO.PATH/conf/) należy
zmodyfikować dwa pliki:

i) svnserve.conf

...
### and "none".  The sample settings below are the defaults.
anon-access = none
auth-access = write
### The password-db option controls the location of the password
...
### Uncomment the line below to use the default password file.
password-db = passwd
### The authz-db option controls the location of the authorization
...

ii) passwd

W pliku passwd należy wpisać login i hasło, które wykorzystywane
będą po stronie serwera do zatwierdzania (commit-owania) zmian
w repozytorium, np.:

...
machine = 95mnf83m-SDT%@vf
...

Ten sam login i hasło należy podać w konfiguracji serwera systemu
zarządzania plikami, o czym w punkcie 2). W pliku passwd można
podać również hasła dla innych użytkowników repozytorium -- więcej
na ten temat można znaleźć w dokumentacji subversion.

Hasła użytkowników systemu (anotatorów) również uzupełniane są w
konfiguracji systemu zarządzania plikami opisanej w 2).


------------------------------------------------------------------


Na serwerze, w innym katalogu niż zostało założone repozytorium,
należy utworzyć kopię roboczą repozytorium, z której korzystać
będzie system zarządzania plikami. W tym celu należy wpisać:

$ svn co file://$REPO.PATH $COPY.PATH
Pobrano wersję 0.

Gdzie $REPO.PATH to ścieżka repozytorium, a $COPY.PATH to
docelowy katalog kopii roboczej.


UWAGA: Zamiast ścieżki postaci file://$REPO.PATH, można również
podać adres w postaci svn://$REPO.ADDR -- adres, który jest
dostępny dla użytkowników repozytorium pracujących poza
serwerem. Ponadto, kopię roboczą można założyć na innym
serwerze niż repozytorium. Kopia robocza musi jednak znajdować
się na tej samej maszynie, na której będzie później uruchamiany
serwer systemu zarządzania plikami. Wadą tego rozwiązania
może być wolniejsze działanie systemu.


Pustą kopię roboczą należy na wstępie wypełnić strukturą katalogów
dla systemu zarządzania plikami. Służy do tego skrypt
fill_empty_repo.sh znajdujący się w katalogu scripts dostarczonym
razem z tą instrukcją. Skrypt wywołuje się w następujący sposób:

$ ./fill_empty_repo.sh $COPY.PATH

Struktura katalogów powinna wyglądać następująco:

$COPY.PATH/
  new		<- katalog z nowymi plikami
  annotation/	<- wyniki anotacji plików
    A
    B
  adjudication	<- wyniki super-anotacji plików
  db.xml	<- baza danych z bierzącymi informacjami
		   dotyczącymi anotacji

Na koniec należy watwierdzić zmiany wykonane w kopii roboczej:

$ svn add $COPY.PATH/*
$ svn commit --username=machine --password=95mnf83m-SDT%@vf -m "struktura"


UWAGA: W katalogach annotation/A, annotation/B oraz adjudication
znajdują się wysłane przez anotatorów na serwer pliki. Nie oznacza
to jednak, że anotacja tych plików przez ich posiadaczy zakończyła
się. Taką informację można uzyskać na podstawie bazy danych
(pliki, których anotacja/super-anotacja zakończyła się, będą
uzupełnione o element <checkinDate> w bazie danych).


==================================================================


2) Konfiguracja systemu zarządzania plikami.


Konfiguracja systemu odbywa się w trzech plikach:
* $SERVER.cfg 
* $USERS.cfg
* $PASSWD

Razem z instrukcją i implementacją serwera powinny zostać
dostarczone również przykładowe pliki konfiguracyjne, w których
można znaleźć dokładniejsze informacje na temat konfiguracji
serwera.

i) $SERVER.cfg

Plik $SERVER.cfg jest głównym plikiem konfiguracyjnym i jedynym
wczytywanym bezpośrednio przez serwer systemu (znajdują się
w nim również ścieżki do pozostałych dwóch plików konfiguracyjnych
-- $USERS.cfg i $PASSWD).

ii) $USERS.cfg

Plik zawiera informacje o uprawnieniach do super-anotacji oraz
o limitach pobierania plików.

ii) $PASSWD

W pliku znajdują się hasła określone dla użytkowników systemu
(anotatorów). Poszczególne linie tego pliku mają postać:
login = hasło


==================================================================


3) Używanie serwera systemu zarzadznania plikami.


Do uruchamiania serwera służy narzędzie server.py w module dfs.
Serwer uruchamia się następującą komendą:

$ python server.py $SERVER.cfg

Ewentualne błędy będą wypisywane na standardowe wyjście.


------------------------------------------------------------------


Karmienie systemu nowymi plikami przeznaczonymi do anotacji.

Do tego celu służy skrypt add_files.py w katalogu scripts.

$ python add_files.py $SERVER.cfg PATH1 PATH2 ...

gdzie PATH1, PATH2, ... to ścieżki do plików, które mają zostać
dodane do repozytorium. Zmiany nie są automatycznie commit-owane,
więc trzeba użyć komendy svn commit do ich zatwierdzenia:

UWAGA: Dodawanie plików, jak również jakiekolwiek prace
administracyje w repozytorium systemu powinny być przeprowadzane
przy wyłączonym serwerze server.py. Serwer można w sposób
bezpieczny wyłączyć wysyłając sygnał SIGINT (np. Control-C)
(Sygnał zostanie zignorowany, jeśli odbywa się komunikacja
z serwerem).


==================================================================


4) Graficzny interfejs systemu zarządzania plikami.


Implementacja GUI znajduje się w module gui dostarczonym
razem z instrukcją. GUI przeznaczone jest dla użytkowników
systemu, czyli anotatorów.


------------------------------------------------------------------


Konfiguracja GUI znajduje się w katalogu gui/data w pliku
global.cfg. W tym samym katalogu powinien znajdować się
wygenerowany przez administratora klucz publiczny (cert.pem).
Dokładniejsze informacje na temat konfiguracji znajdują się w
przykładowym pliku konfiguracyjnym gui/data/global.cfg.


------------------------------------------------------------------


GUI uruchamia się komendą:

$ python manager.py