Überlegungen zum Meilenstein zentrales Datenlager
Meilenstein 03 Zentrales Datenlager für das Projekt Sammelrepository
Hier einmal mein Diskussionsvorschlag für ein erstes MVP. Der technische Vorschlag ist technisch bewusst extrem schmal gehalten. Ich kann aber verstehen, wenn es dazu andere Meinungen gibt.
Grundlage des MVP ist, dass wir erst einmal mit den veröffentlichten XDatenfelder-Dateien arbeiten, an die wir problemlos selbst kommen. Damit vertagen wir Themen wie Rechtemanagement und die Integration in die bestehenden Workflows weiter nach hinten, wenn wir mehr Informationen haben.
- Datenimport
- Import aller bereits veröffentlichten Stammdatenschemata aus dem FIM-Portal.
- Qualitätsanalyse des Datensatzes (z.B. Felder mit gleicher ID + Version, aber unterschiedlichem Inhalt).
- Evtl. automatische Konvertierung beim Import mit einem der bestehenden XDF->JSON Konverter.
- Frontend
- Einfaches Durchsuchen der importierten Daten
- Suche nach Datenfelder, Datenfeldgruppen, Regeln, Stammdatenschemata, etc.
- Download der orriginalen XDatenfelder-Dateien und evtl. vorhanderer konvertierter JSON Dateien für jedes Stammdatenschema. Feste URL für diese Dateien basierend auf der ID + Version.
- Einfaches Durchsuchen der importierten Daten
Vorschlag zur technischen Umsetzung: SPA + Statisches Backend
Die technische Umsetzung des MVP nimmt viele Abkürzungen, da ich besonderen Wert darauf gelegt habe, dass wir schnell etwas "zum Anfassen" bekommen. Gleichzeitig sollte diese Architektur ausreichen, dass wir schon konkrete Erfahrung mit den Daten sammeln können. Sobald dynamische Features dazukommen, reicht diese Architektur natürlich nicht aus. Aber für den ersten Meilenstein am 14.06 kommen wir so hoffentlich ohne viel Overhead zu etwas, das ein wenig Einruck macht.
Datenimport
Der Import ist ein einfaches Script, welches als Output eine statische Ordnerstruktur erstellt. Wir sparen uns in diesem Schritt also komplett die Erstellung eines Servers. Das Script ließt alle XDatenfelder-Dateien ein und generiert daraus ein JSON-File mit allen Informationen (Hierfür können wir erstmal meinen XDatenfelder-Parser verwenden). Die orriginalen XDatenfelder-Dateien und die daraus konvertierten JSON-Schema Dateien werden in Ordnern für das jeweilige Stammdatenschema abgelegt.
data/
database.json
schemas/
S0000000001/
schema.xdf2.xml # XDatenfelder2 Datei
schema.json # JSON-Schema Datei
...
S0000000002/
schema.xdf2.xml
schema.json
...
...
Frontend
Das Frontend wird eine SPA, die zu Beginn die Datei database.json lädt. Diese kann dann durchsucht werden. Die Downloads werden durch einen einfachen Link zu den beim Import erstellten Dateien realisiert.
Deployment
Da wir ausschließlich statische Dateien haben, brauchen wir nur das Äquivalent eines S3-Buckets und einer Domain (Ich weiss nicht, was IT.Niedersachsen an Infrastruktur anbietet, aber statisches Hosting sollte ja easy möglich sein).