187 lines
7.9 KiB
TeX
187 lines
7.9 KiB
TeX
|
|
\section{Zweck des Dokuments}
|
|
\label{sec:org132c743}
|
|
Im Rahmen einer Diplomarbeit an den IBZ-Schulen soll die Grundlage für ein neues
|
|
Open-Source-Projekt geschaffen werden, sowie die Entwicklung der dazugehörigen
|
|
Backup-Applikation gestartet werden. Die Applikation soll es normalen Usern
|
|
ermöglichen mit der Backup Software BorgBackup zu interagieren.
|
|
|
|
Das Dokument dient als Grundlage für die Freigabe der Diplomarbeit.
|
|
|
|
\section{Ausgangslage}
|
|
\label{sec:orgd7c9d92}
|
|
Das Open-Source-Projekt BorgBackup\footcite{borgbackup} entwickelt eine
|
|
Backup-Software welche es einem ermöglicht Backups auf ein externes Laufwerk
|
|
oder einen externen Server zu machen. Für externe Server die man nicht selber
|
|
kontrolliert unterstützt BorgBackup auch eine starke Verschlüsselung. Als
|
|
weiteres wichtiges Feature unterstützt BorgBackup auch Deduplikation auf Block
|
|
Ebene was es einem erlaubt sehr viele Snapshots zu haben ohne das der Speicher
|
|
allzu fest wächst. Des Weiteren erlaubt die Deduplikation von BorgBackup dem
|
|
User grosse Dateien zu bearbeiten ohne das bei einem weiteren Backup die ganze
|
|
Datei erneut gespeichert werden muss. Es werden dann nur die effektiv
|
|
veränderten Blöcke gespeichert.
|
|
|
|
Als freie Software und aufgrund der interessanten Features wäre BorgBackup auch
|
|
für weniger erfahrene User sehr nützlich. Leider gibt es für BorgBackup zurzeit
|
|
kein klassisches grafisches User Interface mit dem ein User interagieren kann.
|
|
BorgBackup wird komplett über die Kommando-Zeile gesteuert.
|
|
|
|
Aus diesem Grund soll der Student im Rahmen der Projektarbeit eine grafische
|
|
Oberfläche für BorgBackup entwickeln.
|
|
|
|
BorgBackup stell keine direkte API im Python Code zur Verfügung. für externe
|
|
Applikationen zur Verfügung. Allerdings gibt es einen Kommandozeilen Parameter
|
|
mit welchem der Output im JSON Format zurückgegeben wird. Die
|
|
Entwickler raten einem dazu BorgBackup direkt über die Kommandozeilen Befehle
|
|
anzusteuern und anschliessend den JSON Output zu parsen.\footcite{jsonapi}
|
|
|
|
\section{Projektrahmenbedingungen}
|
|
\label{sec:orge555ecf}
|
|
|
|
Das Projekt ist im Rahmen einer Diplomarbeit an den IBZ-Schulen zu realisieren.
|
|
Daraus ergeben sich Ansprüche an:
|
|
|
|
\begin{enumerate}
|
|
\item Komplexität des Vorhabens
|
|
\item Umfang des Vorhabens (250 Stunden)
|
|
\end{enumerate}
|
|
|
|
Die Begleitung der Diplomarbeit ist durch die IBZ sichergestellt.
|
|
|
|
Als nebenläufiges Ziel soll mit dieser Arbeit auch die Verbreitung von freier
|
|
Software gefördert werden. Dies wird insbesondere dadurch erreicht, dass die
|
|
Software selbst unter der GNU Public License Version 3\footcite{gplv3}
|
|
veröffentlicht wird. Wenn möglich sollen während der Entwicklung auch
|
|
hauptsächlich freie Software verwendet werden. Die gesamte Arbeit wird zudem zu
|
|
jedem Zeitpunkt öffentlich einsehbar sein. Der Quelltext der Dokumentation ist
|
|
bereits unter diesem Link erreichbar: \url{https://git.2li.ch/Nebucatnetzer/thesis}
|
|
|
|
Das Repository für den Code der Applikation wird während der Umsetzung erstellt.
|
|
Die Dokumentation und der Code werden in getrennten Repositorys veröffentlicht,
|
|
da das Projekt auch nach der Abgabe weiter existieren soll.
|
|
|
|
Die Entwicklung wird hauptsächlich auf einem Linux System stattfinden. Da
|
|
BorgBackup einerseits hauptsächlich auf Unix Systeme ausgelegt ist und
|
|
anderseits die Hauptzielgruppe des Projektes auch auf Linux Usern liegt.
|
|
Trotzdem sollen im Projekt Cross-Plattform fähige Technologien eingesetzt werden
|
|
damit es in der Zukunft möglich ist das Projekt auf andere Plattformen
|
|
auszuweiten.
|
|
|
|
Bugs von BorgBackup welche während der Dauer der Diplomarbeit vom Studenten
|
|
entdeckt werden, wird dieser dem Projekt melden jedoch nicht selber beheben.
|
|
|
|
\section{Zielsetzung}
|
|
\label{sec:org1cb8fb9}
|
|
\begin{longtable}{|p{9cm}|p{1.5cm}|p{2cm}|}
|
|
\hline
|
|
\textbf{Zielsetzung}\cellcolor[HTML]{C0C0C0} & \textbf{Muss}\cellcolor[HTML]{C0C0C0} & \textbf{Wunsch}\newline (1-5, 5=sehr wichtig)\cellcolor[HTML]{C0C0C0}\\
|
|
\hline
|
|
\endfirsthead
|
|
\multicolumn{3}{l}{Fortsetzung von vorheriger Seite} \\
|
|
\hline
|
|
|
|
\textbf{Zielsetzung}\cellcolor[HTML]{C0C0C0} & \textbf{Muss}\cellcolor[HTML]{C0C0C0} & \textbf{Wunsch}\newline (1-5, 5=sehr wichtig)\cellcolor[HTML]{C0C0C0} \\
|
|
|
|
\hline
|
|
\endhead
|
|
\hline\multicolumn{3}{r}{Fortsetzung nächste Seite} \\
|
|
\endfoot
|
|
\endlastfoot
|
|
\hline
|
|
Die Anwendung setzt auf Cross-Plattform (Linux, Windows, OSX) fähige Technologien. & X & \\
|
|
\hline
|
|
Die Anwendung steht unter der GPLv3 der Öffentlichkeit zur Verfügung. & X & \\
|
|
\hline
|
|
Der User kann mit weniger als 3 Klicks ein Backup ausführen. & x & \\
|
|
\hline
|
|
Der User kann ein Archiv mit 3 Klicks löschen. & x & \\
|
|
\hline
|
|
Der User kann unter Linux ein Archiv mit zwei Klicks "`read-only"' als Laufwerk mounten. & x & \\
|
|
\hline
|
|
Der User kann ein Archiv wieder herstellen. & x & \\
|
|
\hline
|
|
Der User kann den zu sichernden Pfad manuell in der Anwendung definieren. & x & \\
|
|
\hline
|
|
Die Applikation holt ihre Konfiguration aus einer Plain-Text Datei. & x & \\
|
|
\hline
|
|
Der User kann sein Repository auf einer Harddisk ablegen. & x & \\
|
|
\hline
|
|
Die Anwendung exkludiert für einen Linux Computer sinnvolle Pfade bereits zu Beginn. & x & \\
|
|
\hline
|
|
Die Archivliste wird nach einer Aktion automatisch aktualisiert. & x & \\
|
|
\hline
|
|
Der User kann sein Repository auf einem über SSH erreichbaren Server ablegen. & & 5\\
|
|
\hline
|
|
Der User kann den Namen eines Archives selbst bestimmen. & & 5\\
|
|
\hline
|
|
Die Anwendung meldet transparent, wenn das Repository nicht erreichbar ist. & & 5\\
|
|
\hline
|
|
Die Anwendung meldet dem User, wenn noch ein Hypervisor am Laufen ist. & & 5\\
|
|
\hline
|
|
Die Anwendung leitet Meldungen von BorgBackup transparent weiter. & & 5\\
|
|
\hline
|
|
Die Anwendung zeigt transparent an das BorgBackup im Hintergrund bereits läuft. & & 5\\
|
|
\hline
|
|
Das Repository wird nach jedem Backup bereinigt. & & 4\\
|
|
\hline
|
|
Der User kann automatische Hintergrundbackups in der Anwendung konfigurieren. & & 4\\
|
|
\hline
|
|
Die Anwendung gibt dem User die Möglichkeit ein passendes Repository zu erstellen, wenn keines gefunden wird, die Anwendung jedoch bereits konfiguriert ist. & & 4\\
|
|
\hline
|
|
Die Applikation verwendet, wann immer möglich allgemeingültige Umgebungsvariablen. & & 4\\
|
|
\hline
|
|
Die Anwendung cached/speichert (evtl. zusätzliche) Informationen in einer Datenbank. & & 3\\
|
|
\hline
|
|
Die Anwendung zeigt beim ersten Starten einen Setup Wizard. & & 3\\
|
|
\hline
|
|
Der User kann sich mit 3 Klicks das Log eines Archives anschauen. Nur möglich mit einer zusätzlichen DB. & & 3\\
|
|
\hline
|
|
Die Anwendung kann Systembenachrichtigungen auslösen. & & 3\\
|
|
\hline
|
|
Der User kann die Anwendung grafisch konfigurieren. & & 3\\
|
|
\hline
|
|
Der User kann entscheiden ob, ein gemountetes Archiv nach dem Schliessen der Applikation noch weiter verfügbar ist. & & 2\\
|
|
\hline
|
|
Der User kann das Repository wechseln. & & 2\\
|
|
\hline
|
|
Der User kann ein Archiv nach einer Datei oder einem Ordner durchsuchen. & & 2\\
|
|
\hline
|
|
Der User kann die "`Retention Policy"' konfigurieren. & & 2\\
|
|
\hline
|
|
Die Anwendung kann mit allen Features von BargBackup umgehen. & & 2\\
|
|
\hline
|
|
Die Applikation prüft, ob sie sich im richtigen Netzwerk befindet bevor sie eine Verbindung zum Server aufbaut. & & 2\\
|
|
\hline
|
|
\caption{\label{tab:org606edcb}
|
|
Projektziele}
|
|
\\
|
|
\end{longtable}
|
|
|
|
\section{Mittelbedarf}
|
|
\label{sec:org37a9b16}
|
|
Für die Arbeit sind, ausser den 250h des Diplomanden, keine weiteren Mittel
|
|
notwendig.
|
|
|
|
\section{Planung}
|
|
\label{sec:org6c22fc7}
|
|
|
|
Die Arbeit ist innert 14 Wochen (Vorgabe IBZ-Schulen) abzuwickeln. Die
|
|
Verteilung der anstehenden Arbeiten auf die 14 Wochen ist durch den Diplomanden
|
|
vor dem Start der Phase Voranalyse zu erledigen.
|
|
|
|
Die verwendete Projektmethodik wird für diese Arbeit das Wasserfallmodell sein.
|
|
Da sie sich für eine einzelne Person am ehesten eignet.
|
|
|
|
\section{Wirtschaftlichkeit}
|
|
\label{sec:orge415584}
|
|
Die Wirtschaftlichkeit ist für dieses Projekt nicht relevant.
|
|
|
|
\section{Konsequenzen}
|
|
\label{sec:org1abba6f}
|
|
Keine speziellen Konsequenzen in dem Vorhaben bekannt.
|
|
|
|
\section{Antrag}
|
|
\label{sec:orga09049c}
|
|
Der Diplomand beantragt die Freigabe der Phase Voranalyse, diese startet mit dem
|
|
Kick-off vom 10.12.2018.
|