
-----------------------------------------------------------------------------------------------------------------------
						METRYCZKA PLIKU W ARCHI
-----------------------------------------------------------------------------------------------------------------------

Rodzaje metryczek i ich polozenie w systemie plikow ARCHI:
/home/ARCHI01/001A/MET/...
.../rok/miesiac/dzien/[nazwa].MS - metryczka skrocona bedzie dostepna w SKZ 
.../rok/miesiac/dzien/[nazwa].MG - metryczka plikow zgrupowanych z podziau wiekszego pliku na chunks
.../rok/miesiac/dzien/[nazwa].MC - plik ze zbiorem nazw metryczek bedacych kopiami [nazwa].MS
.../rok/miesiac/dzien/adm/[nazwa].ML - metryczka pelna w zasobniu i zarchwizowana dostepna tylko adminowi
.../rok/miesiac/dzien/archi/[nazwa].MT - plik techniczny z danymi o polozeniu zasobu w ARCHI (tylko root)
.../rok/miesiac/dzien/pro/[nazwa].MP - prototyp metryczki podowany przy zapisie
katalog .../adm/ ma prawa dostepu tylko dla admina
.../rok/miesiac/dzien/mdata/[nazwa].MD - metadane jesli sa dowiazane i udostepniane [max 255 chars]
       

pliki kontekstowe: polozenie w /home/ARCHI01/001B/VAR/FILES/...
.../FILES/GROUP/[nazwa].grp (group)- plik dowiazany pokazujacy zbior client_ID udostepniania w z flaga PRIVATE
.../FILES/CON/[nazwa].cnf - (confidential) wskazuje klientow,korzy maja prawo dostepu do zaosb z flaga CONFIDENTIAL
 	(uwaga, klient musi miec aktulany Check-Key, aby pobrac ten plik).
.../FILES/TRAN/[nazwa].tr (translation) - dane dyskow po translacji (po wykonaniu regeneracji polozenie sie zmieni)

/home/ARCHI01/001B/VAR/CONFIG/EXCLUD/nodes.exl - plik z nazwami wezlow wylaczonych chwilowo lub niedostepnych


UWAGI:
- dane z pliku [nazwa].MS sa czesciowo udostepniane klientowi 
- dane z pliku [nazwa].MD sa udostepniane jesli pozwalaja na to prawa dostepu do zasobu (PUBLIC,PRIVATE,CONFIDENTIAL)
- metryczki sa plikami tekstowymi.
- wszsytkie pliki beda zapisywane z lokalna kopia w stylu np. [nazwa].MP.cp - .cp oznacza kopie
- nazwa typu 201412050000.MP - jest plikiem uzywanym do testowania systemu


********************************************** IMPLEMENTACJE **********************************************************
[nazwa] - YearMonthDayxxxx - np. 201412030001 gdzie xxxx jest 0001 plik 0000 jest metryczka testowa tzw. pattern MS

-----------------------------------------------------------------------------------------------------------------------
				BUDOWA PLIKU [nazwa].MP 
-----------------------------------------------------------------------------------------------------------------------
linia 1				[nazwa]      	<bez .MS>
linia 2				MS 		<typ> 
linia 3				PUBLIC		<flaga trybu udostepniania> [inne typy: TEST, PRIVATE, CONFIDENTIAL]
linia 4 			NULL		<rozmiar w bajtach np. "1000000000"=1G> musi byc wyliczone w M,G,T
linia 5				METAON		<wskaznik metadanych> jesli brak pliku metadata flaga=METAOFF
linia 6				[clientID]:OWNER
linia 7				END 		<flaga konczaca metryczke>
-----------------------------------------------------------------------------------------------------------------------
prototyp metryczki powstaje po zlozeniu formularza WRITE
zostanie zamieniony na strin i przeslany do CONTROLLERA:
   MP=<protoypowa_nazwa_pliku>&MS&PUB[CONF lub PRI]&NULL&METAON[METAOF]&client_ID
np. MP=201410081234&MS&PUB&METAOF&2211190


-----------------------------------------------------------------------------------------------------------------------
				BUDOWA PLIKU [nazwa].MS (short)
-----------------------------------------------------------------------------------------------------------------------
linia 1				[nazwa]      	<bez .MS>
linia 2				MS 		<typ> 
linia 3				PUBLIC		<flaga trybu udostepniania> [inne typy: TEST, PRIVATE, CONFIDENTIAL]
linia 4 			[wielkosc]	<rozmiar w bajtach np. "1000000000"=1G>
linia 5				METAON		<wskaznik metadanych> jesli brak pliku metadata flaga=METAOFF
linia 6				[clientID]:OWNER
linia 7				ARCHI0001
linia 8				END 		<flaga konczaca klienca czesc metryczki>
linia 9				32-bajty md5 lub NULL jesli tego nie bedzie. 
-----------------------------------------------------------------------------------------------------------------------
Uwaga. OWNER jest zakladajacym plik w ARCHI. Jesli plik jest oznaczony jako CONFIDENTIAL
	wowczas OWNER traci prawa dostepu do pliku i musi byc w spisie onekey.adm 
	czyli posiadac wazny Check-Key i prawo dostepu do tego pliki poprzez [nazwa pliku].cnf








-----------------------------------------------------------------------------------------------------------------------
				BUDOWA PLIKU [nazwa].MG (sekwencja "chuncks" duzego pliku)
-----------------------------------------------------------------------------------------------------------------------
linia 1				[nazwa].MS
linia 2				[nazwa1].MS
  .
  .
  .
Lina n-ta			[nazwa-nta].MS
----------------------------------------------------------------------------------------------------------------------
Jesli admin prowadzi ogrnicznie do rozmiaru pliku, ktory mozna zapisac jako plik jednostkowy, wowczas plik o wiekszym
rozmiarze niz wprowadzone ograniczenie nalezy podzielic na frgmenty ("chunks"), ktore w ARCHI beda oddzielnymi
plikami. Zlozenie pnowne w calosc wymagac bedzie sciagniecia wszyskich fragmentow (formularz zamowienia READ). 

-----------------------------------------------------------------------------------------------------------------------
Wycofane!!!			BUDOWA PLIKU [nazwa].MC (kopie plikow) - aktulanie jest wycofane!!!!
-----------------------------------------------------------------------------------------------------------------------
linia 1				[nazwa] 	<bez .MC>
linia 2				MC		<typ pliku>
Linia 3				[nazwa1]	<bez .MS> pierwsza kopia
linia 2				[nazwa2]	j.w. druga kopia
   .
   .
   .
Linia n-ta			[nazwa-nta]	j.w. n-ta kopia
---------------------------------------------------------------------------------------------------------------------
Aktualnie wycofany i info o kopiach przeniesione do pliku MT



---------------------------------------------------------------------------------------------------------------------
				BUDOWA PLIKU [nazwa].MD (plik metadanych dolaczony MS i ML)
---------------------------------------------------------------------------------------------------------------------
linia 1				[nazwa]		<bez.MD>
linia 2				MD		<typ pliku>
linia 3				START		<flaga rospoczecia> tekstu swobodnego
tekst swobodny do 2k znakow - dlugosc tekstu moze byc zmnienina przez admina (defaul do 2k znakow)
--------------------------------------------------------------------------------------------------------------------
Uwaga nie ma na koncu flagi END. Ograniczenie wynika z ogrnizcznie wiekosci bufora SKZ. Jelsi zajdzie potrzeba 
wprowadzenia dluzszych opisow (metadanych) wowczas MD bedzie dostepny poprzez bufor. 





--------------------------------------------------------------------------------------------------------------------
		 BUDOWA PLIKU [nazwa].MT (metryczka techniczna wskazujaca polozenie pliku w ARCHI)
--------------------------------------------------------------------------------------------------------------------
linia 1				[nazwa]				<bez.MT>
linia 2				MT				<typ pliku>
linia 3				archi:node:dysk:triger		<pierwsza kopia pliku>
linia 4				archi:node:dysk:triger		<pierwsza kopia pliku>
linia 5				archi:node:dysk:triger		<druga kopia pliku>
linia 6 			
linia 7 			
linia 8				archi:node:dysk:triger		<n-ta kopia pliku>
linia ostatnia				END 
-------------------------------------------------------------------------------------------------------------------
Dotyczy tylko plikow w zasobniku lokalnym tzn. jesli ARCHIxxxx jest zwiazane z /home/SYSQS/TRIG_REGISTER
np.:ARCHI0001:N001:D15:TTRIGG0001

--------------------------------------------------------------------------------------------------------------------
		 BUDOWA PLIKU [nazwa].RE (odowalnie do zdalnego ARCHI - lezace poza zasobnikiem)
--------------------------------------------------------------------------------------------------------------------
linia 1				[nazwa]		<bez.RE>
linia 2				RE		<typ pliku>
linia 3				[ARCHIxxxx]	<wnazwa zdaln archiwum>
linia 4				[ARCHIyyyy]	<nazwa zdalnego archiwum>
linia 5				[ARCHI----]	<nazwa zdalnego archiwum>
linia 6 			
linia 7 			
linia 8				[ARCHI----]	<nazwa zdalnego archiwum>
linia ostatnia				END 
-------------------------------------------------------------------------------------------------------------------
Metrycza kontkstowa dla MS - wskazujaca polozenie pliku w systemie zdalnym 
mapuje: (lokalne archi) ARCHIxxxx na (zdalne archi) ARCHIIyyyy
ARCHIyyyy znajduje sie w systemie zdalnym


parametry zdalnego archiwum /home/ARCHI00/REMOTE/remote_archixxxx
--------------------------------------------------------------------------------------------------------------------
		 BUDOWA PLIKU remote_archixxxx (zdalne ARCHI - lezace poza zasobnikiem)
--------------------------------------------------------------------------------------------------------------------	
linia 1				REMOTE_ARCHIxxxx	<typ pliku>
linia 2				[IP_SKZ:IP_BUF]		<zdalnego archiwum>
linia 3				END

-------------------------------------------------------------------------------------------------------------------
 plik remote_archixxxx znajduje sie w /home/ARCHI00/REMOTE/remote_archixxxx

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





						INNE PLIKI KONTEKSTOWE

-------------------------------------------------------------------------------------------------------------------
				BUDOWA PLIKU [nazwa].ML (long - nie bedzie uzywana w READ) 
-------------------------------------------------------------------------------------------------------------------
linia 1				[nazwa]      	<bez .ML>
linia 2				ML 		<typ> 
linia 3				PUBLIC		<flaga trybu udostepniania> [inne typy:TEST, PRIVATE, CONFIDENTIAL]
linia 4 			[wielkosc]	<rozmiar w bajtach>
linia 5				METAON		<wskaznik metadanych> jesli brak pliku metadata flaga=METAOFF
linia 6				clientID:OWNER	<oznacznie wyjasnione w metryczce MS>
linia 7				ARCHI0001       <pelna numeracja ARCHI
linia 8				END		<koniec danych jak MS>
linia 9				32bajty md5sum  <lub NULL jesli nie bedzie md5>
lina  10 			[struct]        <struktura i-node dla zasobu w ARCHI>
  .
  .				<pola struktury>
  .				
linia ostatnia 				END 		<flaga konczaca metryczke>
-----------------------------------------------------------------------------------------------------------------
Metryczka ML nie bedzie dostepna dla kientow w SKZ. Sa to dane przeznaczone tylko dla admina. 
Tresc tej metryczki bedzie sie zmieniac po kazdej regeneracji. ML jest tworzna po zapisie pliku na dysk wezla.

-----------------------------------------------------------------------------------------------------------------
			/home/ARCHI01/001B/VAR/FILES/CON/[nazwa].cnf 
-----------------------------------------------------------------------------------------------------------------
linia 1				[nazwa] 		<bez .cnf>
linia 1				GROUPS 			<typ pliku tzn. grupowy bo przechowuje ID wielu klientow>
linia 3				[INIT_CLIENT]:TESTED	<zazwyczaj 2211111 - dotyczy tylko admina, OWNER=admin>
linia 4				[clientID 1]:ALLOWED	<flaga ALLOWED pozwala na dostep do tego pliku>
linia 5				[clientID 2]:ALLOWED
linia 6				[clientID 1]:REMOVED	<flaga REMOVED usuwa dostep do tego pliku>
  .
  .
  .
linia n-ta 			itd.
----------------------------------------------------------------------------------------------------------------
Uwaga. brak klienta w tym pliku nie pozwala na dostep do pliku, tak samo jak clinetID oznaczony jako REMOVED. przy sprawdzaniu dostepnosci sprawdzana jest ostani wpis dotyczacy klienta (clientID). Rowniez klient nie bedzie mial dostepu do tego pliku jesli nie bedzie mial przyznanej wznego Check-Key lub minie okres waznoci Check-Key. Check-Key jedynie daje potencjalne prawo dostepu do zasobow zonzczonych jako CONFIDENTIAL. Natomiast dostep do konretnego zasobu musi byc zaznaczony w pliku [nzawa zasobu].cnf
Plik .cnf jest tworzony za pomoca formularza WRITE (nie przez admina)

-------------------------------------------------------------------------------------------------------------------
			/home/ARCHI01/001B/VAR/FILES/GROUP/[nazwa].grp
-------------------------------------------------------------------------------------------------------------------
line 1				[nazwa]			<nazwa bez ".grp">
line 2				GROUPS			<typ pliku>
line 3				clientID:OWNER		<w metryczce pliu wlasiciel> 	
line 4				clientID1:ALLOWED	<dodany klient z prawem do READ>
  .
  .
  .
line n-ta			clientIDn:REMOVED	<klient n-ty>
------------------------------------------------------------------------------------------------------------------
Uwaga. tylko klient oznacozny jako owner moze zalozyc tego typu plik oraz dodawac lub usuwac innych clientID
       admin ma jedynie prawo do usuwania dostepu klientow z tego pliku. Z tego prawa sa wylaczone pliki
       oznaczone jako CONFIDENTIAL.			

****************************************** TESTOWANIE SYSTEMU PLIKOW **********************************************

pliki testowe instalowane podczas instalacji systemu oraz o godz 00 kazdego dnia:
(eentualnie jesli sa planowane czunnosci serwisowe w przyszlosci)

/home/ARCHI01/001A/MET/rok/miesiac/dzien/yymmdd0000.MP - plik uzywany przy testowaniu systemu ARCHI
/home/ARCHI01/001A/MET/rok/miesiac/dzien/yymmdd0000.MC - plik testowy z kopiami plikow
/home/ARCHI01/001A/MET/rok/miesiac/dzien/archi/yymmdd0000.ML -dluga
/home/ARCHI01/001A/MET/rok/miesiac/dzien/mdata/yymmdd0000.MD - matadata
/home/ARCHI01/001A/MET/rok/miesiac/dzien/adm/yymmdd0000.MT - techniczne
/home/ARCHI01/001A/MET/rok/miesiac/dzien/pro/yymmdd0000.MP -prototypy 

pliki zakladane podczas instalacji systemu:
/home/ARCHI01/001B/VAR/FILES/GROUP/[nazwa].grp - grupa udostepniania zasobu dla przy PRIVATE
/home/ARCHI01/001B/VAR/FILES/CON/[nazwa].cnf - przypisanie klientow majacych Check-Key przy CONFIDENTIAL
/home/ARCHI01/001B/VAR//FILES/TRAN/[nazwa].tr 

PATH zakadana jednokrotnie
/home/ARCHI01/001B/VAR/CONFIG/EXCLUD/nodes.exl - wezly czasowo wylaczone (czynnosci serwisowe)

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

Wzorce plikow znajduja sie w: 
/home/ARCHI01/001A/SYSTEM/PATTERN/MET/

-------------------------------------- WZORCE PLIKOW typu M* ----------------------------------------------------

			-----------------------------------
				PLIK yyyymmdd0000.MS
			-----------------------------------
linia 1				yyyymmdd0000   	usupelnic do wlasciej"data0000"
linia 2				MS 		<typ> 
linia 3				TEST		<flaga w trybie testowym>
linia 4 			0		<rozmiar w bajtach> wpisuje rozmiar samego siebie
linia 5				METAON		<wskaznik metadanych> jesli brak pliku metadata flaga=METAOFF
linia 6				:OWNER
linia 7				END 		<flaga konczaca metryczke>


			

			----------------------------------
				PLIK yyyymmdd0000.ML
			----------------------------------
linia 1				yyyymmdd0000.ML <bez .MS>
linia 2				MS 		<typ> 
linia 3				TEST		<flaga trybu udostepniania> [inne typy:TEST, PRIVATE, CONFIDENTIAL]
linia 4 			0		<rozmiar w bajtach> wpisuje samego siebie
linia 5				METAON		<wskaznik metadanych> jesli brak pliku metadata flaga=METAOFF
linia 6				:OWNER
lina  7				[struct]        <struktura i-node dla zasobu w ARCHI>
  .
  .				<pola struktury>  dane samego siebie
  .				
linia ostatnia 				END 		<flaga konczaca metryczke>


			---------------------------------
				PLIK yyyymmdd0000.MD
			---------------------------------
linia 1				yyyymmdd0000	<bez.MD>
linia 2				MD		<typ pliku>
Linia 3   		"This is test file"     <text>


			--------------------------------
				PLIK yyyymmdd0000.MT
			--------------------------------
linia 1				yyyymmdd0000	<bez.MT>
linia 2				MT		<typ pliku>
linia 3				0 		<dokladny rozmiar pliku> podaje rozmiar samego siebie
linia 4				0001:03:11	<wyjsciowe polozenie pliku w ARCHI>
aktualne polozenie pliku w ARCHI jest pobierane z 
/ARCHI01/001B/VAR/CONT/MAP/allocation



inne pliki testowe:
/home/ARCHI01/001B/VAR/FILES/GROUP/000000000000.grp jeden plik z grupa prywatna dla wszyskich testowych
 plik zawiera:
line 1			000000000000    	<nazwa pliku>
line 2 			GROUPS			<typ pliku>
line 3			22111111:OWNER 		<INI_CLIENT czyli admin> 
uwaga przy zmianie INI_CLIENT nalezy rowniejz zmienic INI_CLIENT w tym pliku 
uwaga flaga GROUPS informuje, ze plik przechowuje info dotyczace grupy plikow

/home/ARCHI01/001B/VAR/FILES/CON/000000000000.cnf (plik z clientID dla Chec-Key)
	
line 1			000000000000     	<nazwa pliku>
line 2 			GROUPS			<typ pliku>
line 3			22111111:TESTED 	INI_CLIENT czyli admin 
uwaga. flaga GROUPS informuje, ze plik przkowuje info dotyczace grupe plikow
uwaga. plik [nazwa].cnf jest tworzony przy WRITE, kiedy jest ustawiona flaga CONFIDENTIAL

metryczka testowa:
/home/ARCHI01/001A/MET/0000/00/00/000000000000.MS
linia 1				000000000000   	<admin>
linia 2				MS 		<typ> 
linia 3				PRIVATE		<default PRIVATE>
linia 4 			0		<rozmiar w bajtach> wpisuje rozmiar samego siebie
linia 5				METAON		<wskaznik metadanych> jesli brak pliku metadata flaga=METAOFF
linia 6				2211111:OWNER	<lub inne INIT_CLIENT
linia 7				END 		<flaga konczaca metryczke>







