This repository has been archived on 2020-04-03. You can view files and clone it, but cannot push or open issues or pull requests.
thesis/projektantrag/projektantrag.tex

186 lines
7.8 KiB
TeX
Raw Normal View History

\section{Zweck des Dokuments}
2018-07-29 23:05:16 +02:00
\label{sec:orge135904}
2018-07-16 21:56:44 +02:00
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}
2018-07-29 23:05:16 +02:00
\label{sec:org331938b}
Das Open-Source-Projekt BorgBackup \footcite{borgbackup} entwickelt eine
2018-07-16 21:56:44 +02:00
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
2018-07-11 21:58:02 +02:00
Datei erneut gespeichert werden muss. Es werden dann nur die effektiv
veränderten Blöcke gespeichert.
2018-07-09 22:31:31 +02:00
2018-07-16 21:56:44 +02:00
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.
2018-07-16 21:56:44 +02:00
Aus diesem Grund soll der Student im Rahmen der Projektarbeit eine grafische
Oberfläche für BorgBackup entwickeln.
2018-07-11 21:58:02 +02:00
2018-07-21 17:23:39 +02:00
BorgBackup stell keine direkte API im Python Code 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 dazu, BorgBackup
direkt über die Kommandozeilen Befehle anzusteuern und anschliessend den JSON
2018-07-29 23:05:16 +02:00
Output zu parsen. \footcite{jsonapi}
\section{Projektrahmenbedingungen}
2018-07-29 23:05:16 +02:00
\label{sec:orge05a9c9}
2018-07-16 21:56:44 +02:00
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.
2018-07-16 21:56:44 +02:00
Als nebenläufiges Ziel soll mit dieser Arbeit auch die Verbreitung von freier
Software gefördert werden. Dies wird insbesondere dadurch erreicht, dass die
2018-07-29 23:05:16 +02:00
Software selbst unter der GNU Public License Version 3 \footcite{gplv3}
2018-07-16 21:56:44 +02:00
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
2018-07-16 22:00:49 +02:00
bereits unter diesem Link erreichbar: \url{https://git.2li.ch/Nebucatnetzer/thesis}
2018-07-16 21:56:44 +02:00
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.
2018-07-09 22:31:31 +02:00
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}
2018-07-29 23:05:16 +02:00
\label{sec:org56706e5}
2018-07-11 21:58:02 +02:00
\begin{longtable}{|p{9cm}|p{1.5cm}|p{2cm}|}
\hline
2018-07-11 21:58:02 +02:00
\textbf{Zielsetzung}\cellcolor[HTML]{C0C0C0} & \textbf{Muss}\cellcolor[HTML]{C0C0C0} & \textbf{Wunsch}\newline (1-5, 5=sehr wichtig)\cellcolor[HTML]{C0C0C0}\\
\hline
2018-07-11 21:58:02 +02:00
\endfirsthead
\multicolumn{3}{l}{Fortsetzung von vorheriger Seite} \\
\hline
2018-07-11 21:58:02 +02:00
\textbf{Zielsetzung}\cellcolor[HTML]{C0C0C0} & \textbf{Muss}\cellcolor[HTML]{C0C0C0} & \textbf{Wunsch}\newline (1-5, 5=sehr wichtig)\cellcolor[HTML]{C0C0C0} \\
\hline
2018-07-11 21:58:02 +02:00
\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 & \\
2018-07-11 21:58:02 +02:00
\hline
Die Anwendung steht unter der GPLv3 der Öffentlichkeit zur Verfügung. & x & \\
2018-07-11 21:58:02 +02:00
\hline
2018-07-16 21:56:44 +02:00
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 & \\
2018-07-11 21:58:02 +02:00
\hline
2018-07-16 21:56:44 +02:00
Die Anwendung exkludiert für einen Linux Computer sinnvolle Pfade bereits zu Beginn. & x & \\
2018-07-11 21:58:02 +02:00
\hline
2018-07-16 21:56:44 +02:00
Die Archivliste wird nach einer Aktion automatisch aktualisiert. & x & \\
2018-07-11 21:58:02 +02:00
\hline
2018-07-16 21:56:44 +02:00
Der User kann sein Repository auf einem über SSH erreichbaren Server ablegen. & & 5\\
2018-07-11 21:58:02 +02:00
\hline
2018-07-16 21:56:44 +02:00
Der User kann den Namen eines Archives selbst bestimmen. & & 5\\
2018-07-11 21:58:02 +02:00
\hline
2018-07-16 21:56:44 +02:00
Die Anwendung meldet transparent, wenn das Repository nicht erreichbar ist. & & 5\\
2018-07-11 21:58:02 +02:00
\hline
2018-07-16 21:56:44 +02:00
Die Anwendung meldet dem User, wenn noch ein Hypervisor am Laufen ist. & & 5\\
2018-07-11 21:58:02 +02:00
\hline
2018-07-16 21:56:44 +02:00
Die Anwendung leitet Meldungen von BorgBackup transparent weiter. & & 5\\
2018-07-11 21:58:02 +02:00
\hline
2018-07-16 21:56:44 +02:00
Die Anwendung zeigt transparent an das BorgBackup im Hintergrund bereits läuft. & & 5\\
2018-07-11 21:58:02 +02:00
\hline
2018-07-16 21:56:44 +02:00
Das Repository wird nach jedem Backup bereinigt. & & 4\\
\hline
2018-07-16 21:56:44 +02:00
Der User kann automatische Hintergrundbackups in der Anwendung konfigurieren. & & 4\\
2018-07-11 21:58:02 +02:00
\hline
2018-07-16 21:56:44 +02:00
Die Anwendung gibt dem User die Möglichkeit ein passendes Repository zu erstellen, wenn keines gefunden wird, die Anwendung jedoch bereits konfiguriert ist. & & 4\\
2018-07-11 21:58:02 +02:00
\hline
2018-07-16 21:56:44 +02:00
Die Applikation verwendet, wann immer möglich allgemeingültige Umgebungsvariablen. & & 4\\
2018-07-11 21:58:02 +02:00
\hline
2018-07-16 21:56:44 +02:00
Die Anwendung cached/speichert (evtl. zusätzliche) Informationen in einer Datenbank. & & 3\\
2018-07-11 21:58:02 +02:00
\hline
2018-07-16 21:56:44 +02:00
Die Anwendung zeigt beim ersten Starten einen Setup Wizard. & & 3\\
2018-07-11 21:58:02 +02:00
\hline
2018-07-16 21:56:44 +02:00
Der User kann sich mit 3 Klicks das Log eines Archives anschauen. Nur möglich mit einer zusätzlichen DB. & & 3\\
2018-07-11 21:58:02 +02:00
\hline
2018-07-16 21:56:44 +02:00
Die Anwendung kann Systembenachrichtigungen auslösen. & & 3\\
2018-07-11 21:58:02 +02:00
\hline
2018-07-16 21:56:44 +02:00
Der User kann die Anwendung grafisch konfigurieren. & & 3\\
2018-07-11 21:58:02 +02:00
\hline
2018-07-16 21:56:44 +02:00
Der User kann entscheiden ob, ein gemountetes Archiv nach dem Schliessen der Applikation noch weiter verfügbar ist. & & 2\\
2018-07-11 21:58:02 +02:00
\hline
2018-07-16 21:56:44 +02:00
Der User kann das Repository wechseln. & & 2\\
2018-07-11 21:58:02 +02:00
\hline
2018-07-16 21:56:44 +02:00
Der User kann ein Archiv nach einer Datei oder einem Ordner durchsuchen. & & 2\\
2018-07-11 21:58:02 +02:00
\hline
2018-07-16 21:56:44 +02:00
Der User kann die "`Retention Policy"' konfigurieren. & & 2\\
2018-07-11 21:58:02 +02:00
\hline
2018-07-16 21:56:44 +02:00
Die Anwendung kann mit allen Features von BargBackup umgehen. & & 2\\
2018-07-11 21:58:02 +02:00
\hline
2018-07-16 21:56:44 +02:00
Die Applikation prüft, ob sie sich im richtigen Netzwerk befindet bevor sie eine Verbindung zum Server aufbaut. & & 2\\
\hline
2018-07-29 23:05:16 +02:00
\caption{\label{tab:org09fcf8c}
Projektziele}
2018-07-11 21:58:02 +02:00
\\
\end{longtable}
2018-07-21 17:23:39 +02:00
\newpage
\section{Mittelbedarf}
2018-07-29 23:05:16 +02:00
\label{sec:org6659b3a}
2018-07-16 21:56:44 +02:00
Für die Arbeit sind, ausser den 250h des Diplomanden, keine weiteren Mittel
notwendig.
\section{Planung}
2018-07-29 23:05:16 +02:00
\label{sec:orge346b0e}
Die Arbeit ist innert 14 Wochen (Vorgabe IBZ-Schulen) abzuwickeln. Die
2018-07-16 21:56:44 +02:00
Verteilung der anstehenden Arbeiten auf die 14 Wochen ist durch den Diplomanden
vor dem Start der Phase Voranalyse zu erledigen.
2018-07-23 22:18:56 +02:00
Der Student wird die Projektmethodik, "`Wasserfall"' einsetzen.
\section{Wirtschaftlichkeit}
2018-07-29 23:05:16 +02:00
\label{sec:orga6cd465}
2018-07-09 22:31:31 +02:00
Die Wirtschaftlichkeit ist für dieses Projekt nicht relevant.
\section{Konsequenzen}
2018-07-29 23:05:16 +02:00
\label{sec:org15dc77f}
Keine speziellen Konsequenzen in dem Vorhaben bekannt.
\section{Antrag}
2018-07-29 23:05:16 +02:00
\label{sec:orgfc2892e}
2018-07-16 21:56:44 +02:00
Der Diplomand beantragt die Freigabe der Phase Voranalyse, diese startet mit dem
Kick-off vom 10.12.2018.