Úvod
Distribuovaný zálohovací systém byl napsán jako projekt do předmětu
Distribuované objektové systémy v prostředí CORBA. Tato implementace
je kompletně napsána v jazyce Java a popis jejích rozhraní naleznete v
Backup.idl. Nákres jádra systému a stručný popis
struktur, typů, sekvencí a vyjímek naleznete na obrázku
Backup.png.
Požadavky
Systém byl napsán v jazyce Java 1.2, některé části (Storage, GUI)
využívají prostředí Swing a JFC, zbytek by měl být zpětně kompatibilní
s jazykem JDK 1.1. Systém byl odladěn na ORBu ORBACUS 4.0 pod OS Linux
s jádrem 2.2.x a v případě jeho přenosu pod jiný ORB či OS bude nutné
upravit spouštěcí skripty a zejména inicializaci NameService.
Bez nároku na jakoukoliv kontrolu funkčnosti byl systém přeložen i pod
ORBem JacOrb-1.2.2, ovšem nebyl použit jeho NameService.
Vhodné úpravy
- Napsat některé části v C++ pro zvýšení výkonnosti
- Zvýšit zabezpečení přenosů
- Zlepšit expanzi masek - zatím jen * v úseku za posledním /
- Využít existujícího kontrolního součtu a délky pro kontrolu po
přenosu a případně použít jinou metodu místo CRC32
- Zahrnout do agenta automatické generování jeho jména podle
uživatele a počítače, na němž běží
- Komprimovat data už při přenosu
- Ukládat pravidla řídící jednotky a dvojice [agent, heslo] ve
formátu XML
- Vypršení platnosti souborů by možná mohlo být vázáno na heslo,
v tom případě by ale měla být možnost pro správce Storage
odstranit je manuálně
- atd.
Překlad
Před započetím překladu musí být do CLASSPATH přidán balík obsahující
ORB a (pokud není v tomtéž balíku) balík obsahující NameService.
V případě ORBACUSu verze 4 se jedná o balíky OB.jar a OBNaming.jar
- Vygenerovat z IDL stuby a skeletony pomocí generátoru (jidl,
idl2java, atd).
- Přeložit všechny soubory .java, např. jikes *.java
- Upravit skript run2 tak, aby server a port, uvedený za
corbaloc:: odpovídal serveru a portu na němž bude běžet NameService
- Upravit skript goNaming, aby odpovídal NameService použitého
ORBu a portu, na němž má NameService běžet.
Spuštění
- skriptem startLN se spustí Logger a NameService.
- skriptem startS spustit na lib. počítači Storage, v adresáři jí
vyhrazeném
- skriptem startC spustit na lib. počítači řídící jednotku
- skriptem startAg s parametrem jméno_agenta a popř. -nopass, pokud
má běžet bez hesla, spustit na zálohovaném stroji agenta. Pokud
již agent s tímto jménem běží, agent nebude spuštěn.
- skriptem startGUI spustit v prostředí (X) Windows grafické
uživatelské rozhraní, zadat v něm jméno a heslo agenta a pak
dále pracovat se zál. pravidly nebo provést obnovu.
Popis jednotlivých tříd
Společné třídy