![[ Sponsorenlogos: Förderverein CampusSource e.V., Helmholtz Open Science Office und de-RSE e.V. ]](/publikationen/csa2022/bilder/sponsoren.png)
campusSOURCE
vergibt im Jahr 2022 in Kooperation mit
dem
Helmholtz Open Science Office
und de-RSE e.V.
den
campusSOURCE Award 2022
3. Preis:
ioProc
Dr. Benjamin Fuchs
Benjamin.Fuchs@dlr.de
Deutsches Zentrum für Luft- und Raumfahrt (DLR)
Institut für Vernetzte Energiesysteme
Stuttgart
ioProc ist ein Workflow Tool und in Python implementiert. Es richtet sich primär an Wissenschaftler:innen und unterstützt diese bei der Ausführung von Arbeitsroutinen (z. B. Modellkopplung, Datenanalyse, etc.). ioProc ergänzt Ansätze wie Jupyter Notebooks, welche sich auf iteratives Prototyping und dynamische Datenanalyse konzentrieren, durch einen Fokus auf Wiederverwendbarkeit, Portabilität, Transparenz und Reproduzierbarkeit. Zellen aus Jupyter Notebooks entsprechen konzeptionell den ioProc Actions, die wiederum die Basis für die Erstellung reproduzierbarer automatisierter Workflows bilden.
ioProc bietet Wissenschaftler:innen einfache Funktionen um ihre Workflows reproduzierbar und automatisiert auszuführen, erhöht durch seine Struktur und klaren Interfaces die Wartbarkeit, stellt durch ein Plugin System einfache Erweiterbarkeit sicher und minimiert seinen Fußabdruck im source code um Portierbarkeit zu ermöglichen. ioProc ist in Python entwickelt und für Python Anwendungen geschrieben.
Workflows werden durch in yaml geschriebene Spezifikationen definiert und konfiguriert. Die Bausteine eines Workflows sind dabei Actions, einfache Python-Funktionen, die von ioProc durch ein standardisiertes Interface und unter Zuhilfenahme von Metaprogrammierung eingebunden und ausgeführt werden. Nutzer können bereitgestellte Workflows Parametrisieren, ohne Vorwissen in Python oder anderen Programmiersprachen zu besitzen. Die Workflow-Spezifikation im yaml Format ist dabei bewusst deskriptiv und möglichst einfach gehalten, um die Nutzungshürde niedrig zu gestalten. So wird eine hohe Wartbarkeit unterstützt und gefördert.
Die Workflow-Spezifikation dient außerdem der automatischen Dokumentation und Erfassung von Metadaten. Ergänzt wird das durch die Schnittstelle ioProvenance, welche das Schreiben von Metadaten gemäß der FAIR Standards unterstützt. ioProvenance ist Teil der ioProc Familie und stellt einen Framework dar, in dem existierende Spezifikationen für hierarchische Metadaten dargestellt werden können. Es ist erweiterbar und unterstützt aktuell das Metadatenformat der Open Energy Platform. Durch spezialisierte Actions können relevante Metainformationen automatisch während der Workflow-Ausführung gesammelt und als Standard JSON gespeichert werden.
ioProc legt dabei großen Wert auf eine einfache Integration und Entwicklung individueller, maßgeschneiderter Actions durch die Wissenschaftler:innen. So entsteht ein modulares und erweiterbares System. Für Action Entwicklungen ist minimales Vorwissen über die Standardschnittstellen in ioProc erforderlich. Erreicht wird dies in ioProc durch den Einsatz von Metaprogrammierung. Damit reduziert sich der Komplexitätsoverhead für die Wissenschaftler:innen auf ein Minimum, so dass die Aufmerksamkeit in der Entwicklung neuer Workflows auf der wissenschaftlichen Fragestellung liegen kann.
Zudem wird ein Lock-in-Effekt vermieden, da ioProc Actions auch außerhalb von ioProc einsetzbar bleiben. Sie besitzen keine harten Abhängigkeiten zu ioProc und sind zum Beispiel als Teil einer anderen Software integrierbar. Dies trägt maßgeblich zur Wiederverwendbarkeit bei. ioProc wirkt hierdurch komplexitätsreduzierend in der wissenschaftlichen Arbeit und unterstützt Portabilität zum Beispiel bei Weiterentwicklungen in eine vollwertige Applikation oder ein Framework.
Mögliche Anwendungsfelder für ioProc sind:
- Application/Framework Prototyping
- Datenanalyseworkflows
- Modellkopplung
- Strukturiertes Scripting
Weitere Informationen:
Link zum Source Code: https://gitlab.com/dlr-ve/esy/ioproc
Link zu pypi: https://pypi.org/project/ioproc/