
***************************************************************************************************

			    Aplikacja uzytkowa dla BUFORA i NODES 
			   dla READ/WRITE pomiedzy NODES i BUFFER 
				server + (clientNW oraz clientNR)
			 nakladki zamiast configu na clientNW/clientNR
				write-to-buffer/read-from-buffer

					ver 1.0

---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
			  serwer bufora i wezel jako klient bufora
---------------------------------------------------------------------------------------------------
mserver-N.c

/home/SYSBUF/buf.config - plik konfiguracyjny
	8200		#PORT  nie korzysta i na stale port=8005 (mozna to zmienic i skompilowac)
	50000000000LL 	#jesli bedzie limitu na rozmiar pliku np. 50000000000 (50GB) to limit=0
			#w przeciwnym przypadku LIMIT wynosi 50GB. 
			#mozna wpisac 0 lub przed limitem postawic znak "#"
		
	END
plik jest wczytywany przy kazdym pierwszym uruchomieniu servera.
Ustawienie ograniczenia zostalo zachowane. Nalezy uwazac, aby nie zminiac tego parametru, jesli
najpierw nie bylo ogrnienia. Zniesienie ograniczenia na rozmiar pliku moze byc wprowadzone jesli
wczesniej bylo ustawione i nie bedzie to powodowac bledow w dzialaniu ARCHI. 


Operacje:
przy operacji WRITE akceptuje protocol-QUERY:
MC=00110220334455&AR=0001&ID=1234567&FN=file-name-declared-in-request&SI=size-of-file
z tym, ze MC jest ustawione na  "null", AR=0001, ID=1234567. Parametry nie sa sprawdzane
a jedynie zachowana jest dlugosc QUERY-stringu zgodzna z mserverF. 

przy operacji READ akceptuje protocol-QUERY:
MC=001122334455&AR=0001&ID=1234567&FN=201409220045&SI=0
podobnie jak wyzej MC,AR,ID nie sa sprawdzane jak w mserverF.

kompilacja: gcc mserver-N.c szyfr/szyfrA.o -o mserverN -lpthread
	lub compile-server
skrypt: cp-inatalki kopijuje aplikacje do katalogu INSTALL
skrypt:install_chn21 -instaluje mserverN w katalogu uzytkownika /home/chn21/
---------------------------------------------------------------------------------------------------
				System plikow BUFORA

w BUFORZE musza popnadto istniec dwa katalogi:
/home/bufW dla operacji WRITE <<<<----- tu beda ladowane pliki do przeniesienia do wezlow
/home/bufR dla operacji READ  <<<<----- tu beda ladowane pliki z wzala dla klienta

plik konfigu znajduje sie w /home/SYSBUF/buf.config, spradzane jest tylko ograniczenie na rozmiar
	pliku.
inne pliki systemowe ARCHI-BUFOR nie sa sprawdzane przez mserverN
---------------------------------------------------------------------------------------------------
				instalacja HDD w BUFORZE

dysk HDD#1 musi byc monotwany jako  /home/bufW (dla zapisu plikow w BUFORZE)
dysk HDD#2 musi byc montowany jako  /home/bufR (dla odczytu plikow z BUFORA)
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------

				Nakladki (overlap)

zostaly wprowadzoane w celu redukcji liczby parametrow na wejsciu, zamiast pliku typu config

read-from-buffer to nakladka na clientNR
write-to-buffer to nakaladka na clientNW
sources: 	READN.c -> read-from-archi
		WRITEN.c -> write-to-archi

uzycie:
write-to-buffer [path/filename-in-node] [filename-in-buffer]
read-from-buffer [filename-in-buffer] [path/filename-defined-in-node]

np.:
write-to-bufer [/2014/09/22/201409220045] [201409220045] (mozliwa jest trnaslacja nazwy na prywatna)
read-from-bufer [moje_dokumenty.zip] [/2014/10/20/201410200011]

kompilacja: ./compile-overlap
---------------------------------------------------------------------------------------------------
client-NR.c (READ)
to samo co clientR.c z ta roznica, ze przekazuje dane w protokole QUERY:

MC=001122334455&AR=0001&ID=1234567&FN=201409220045&SI=0


MC,AR,ID nie sa sprawdzene i moga miec wartosci dowolne

FN -	nazwa pliku w ARCHI
SI - 	rozmiar pliku nalezy podac zawsze SI=0 (poniwaz przy tej operacji
	wilkosc pliku jest znana BUFOROWI)
		
uzycie:
clientRN poprzez nakladke read-from-buffer

	

Kompilacja: compile-clients
	
---------------------------------------------------------------------------------------------------
client-NW.c (WRITE)
to samo co clientW.c z ta roznica, ze przekazuje dane w protokole QUERY:

MC=001122334455&AR=0001&ID=1234567&FN=file-name-declared-in-request&SI=size-of-file

MC,AR,SI - moga byc dowolne i nie beda sprawdzane

FN -	FILENAME (nazwa pliku zadeklarowana przez klienta przy "request" w SKZ)
SI -	size of file - to jest automatycznie pobierane, sprawdzane i dopisywane 


uzycie:
clientW poprzez nakladke write-to-buffer


Kompilacja: complile-clients 



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

				Szyfrowanie przesylanych blokow danych

Szyforwanie jest standardowo wylaczone tzn. flag_code_data=0;//on=1 off=0 szyfrowanie danych

---------------------------------------------------------------------------------------------------
					mserverF as DAEMON 
jeszcze nie ustalone.
---------------------------------------------------------------------------------------------------






