IPA 2016 Informatiker EFZ – Applikationsentwicklung

Egloff Oliver

DataSynchronizer mit JAVA und Spring

Durchführung: 07.03.2016 bis 08.04.2016

Ausgangslage
Die Informatik Aargau verwendet für die Bereitstellung von ""Adobe LiveCycle Designer Template""-Dateien einen Windows Share. Die Autoren, welche die Templates erstellen, speichern die Templates in ein SVN Repository und auf dem vom Kanton Aargau verwendeten Windows Share ab. Die Kunden, welche die Templates verwenden, überschreiben oder löschen manchmal versehentlich die Dateien auf dem Windows Share, anstatt, dass sie die Templates lokal auf ihren Clients speichern und verwenden. Somit können die Autoren einen aktuellen Stand der Dateien auf dem Windows Share nicht garantieren.

Ziel
Um diesem Problem entgegenzuwirken, soll eine Applikation realisiert werden, welche die Daten vom SVN Repository in periodischen Abständen auf den Windows Share kopiert. Somit können Daten auf dem Windows Share zwar immer noch überschrieben oder gelöscht werden, jedoch ist so garantiert, dass in einem zu konfigurierenden Zeitabstand die korrekten Daten auf dem Windows Share wiederhergestellt sind. Im Idealfall müssten die Autoren die bereitzustellenden Templates nur noch im SVN Repository hochladen. Auch sollte es möglich sein, einen Windows Share als Quell- und ein SVN Repository als Zielsystem zu verwenden.

Im Rahmen dieser IPA sollen für eine bereits mit Java Spring Web MVC entwickelte Kernapplikation, in welcher man periodische Tasks erstellen und verwalten kann, ein Modul SVN und ein Modul Windows Share geplant, realisiert und implementiert werden. Dazu werden detaillierte Studien gemacht. Für mögliche Erweiterungs- oder Wiederverwendungszwecke der Applikation müssen die Module von der Kernapplikation über eine bestehende API angesprochen werden können.

Neben den genannten zwei Modulen wird die Kernapplikation um folgende Funktionalitäten erweitert:
- Ver- und Entschlüsselung von Passwörtern der modulspezifischen Konfigurationen der Tasks, welche in einer Datenbank gespeichert werden
- Logeinträge mit Informationen über die quell- und zielsystemrelevanten Informationen, welche in eine Datei geschrieben werden
- Validation der Konfigurationen der Module
- E-Mailbenachrichtigung, welche bei einem Fehlerfall eines Task eine E-Mail an die im Task konfigurierten E-Mail-Adressen verschickt

Als weiteres Resultat dieser IPA geht ein Entwicklerhandbuch hervor, welches die notwendigen Schritte beschreibt um weitere Module der Applikation zu entwickeln und zu implementieren.

Resultat
Mein Projekt wurde gemäss der in der Informatik Aargau genutzten an HERMES 5.1 angelehnten Projektmethodik abgewickelt.
Daraus gingen die folgenden Dokumente hervor:
Detailstudie mit Evaluationen, Detailspezifikation mit kompletten Systemarchitekturen und Datenbankmodellen, ein Entwicklerhandbuch, damit ein geübter Java-Entwickler die Kernapplikation um ein beliebiges Modul erweitern kann, und ein Testbericht.

Alle geplanten Aufgaben konnte ich erfolgreich realisieren und implementieren. Die in dieser Arbeit realisierten Aufgaben kann man meiner Meinung nach ohne Bedenken in den produktiven Einsatz einführen. Ich bin stolz darauf, dass ich dies nach diesen zehn Tagen behaupten kann.

Fazit
Die Projektarbeit war für mich eine Herausforderung. Die beiden Module SVN und Windows Share benötigten Bibliotheken, mit welchen ich bisher noch nicht gearbeitet hatte. Dennoch gelang es mir, alle geforderten Funktionalitäten umzusetzen und zu implementieren. Da ich bereits oft mit dem Spring Framework gearbeitet hatte, konnte ich einige Aufgaben schnell und ohne grössere Probleme umsetzen. Dennoch traten während der Realisierung immer wieder Probleme auf, welche ich aber in den meisten Fällen selbständig lösen konnte. Da die Dateien von Quellsystem zu Zielsystem als Stream kopiert werden, konnte ich auch die neuen Funktionalitäten von Java 8 besser kennenlernen und vertiefen. Mit dem Resultat meiner Arbeit bin ich zufrieden und bin stolz auf meine vollbrachte Leistung. Diese Arbeit hat mir sehr geholfen, meine Fähigkeiten im Bereich Projektplanung, Konzepterstellung, objektorientierte Programmierung und Dokumentation auszubauen. Ich bin sicher, dass ich dieses neue Wissen in Zukunft immer wieder anwenden kann.

Ein WordPress-Plugin der Ivaris AG