Softwarestack

Die Web-Anwendungen der Abteilung „Entwicklung, Integration, Verfahren“ sind Eigenentwicklungen, die ohne einen leistungsfähigen Softwarestack nicht möglich wären. Dieser Softwarestack wurde eigenentwickelt und sukzessive ausgebaut und steht inzwischen als Dreh- und Angelpunkt im Zentrum eines Großteils der am RRZE entwickelten Software. Er hat sich als robust und gleichzeitig flexibel erwiesen und dient inzwischen nicht nur der FAU, sondern auch anderen Hochschulen als Einstiegspunkt z. B. eines Identity Management Systems. Der Softwarestack basiert hauptsächlich auf dem Framework Grails mit der Programmiersprache Groovy, die auf Java basiert. Im Hintergrund laufen das Spring Framework zusammen mit Micronaut. Die Frontend-Entwicklung verwendet hauptsächlich das Vue.js Framework.

Basiskomponenten im Softwarestack

Eigenentwicklungen

Die Schwerpunkte der Entwicklung liegen im Bereich Grails-Plugins rund um die im Softwarestack verwendeten Technologien. Das Grails-Framework bietet ein baukastenartiges Plugin-System, mit dessen Hilfe Plugins als große vorgefertigte Bausteine bequem für Anwendungen verwendet werden können. Zu den von der Abteilung „Entwicklung, Integration, Verfahren“ entwickelten Plugins zählen die folgenden:

  • encore – Sammelplugin für eine Reihe von Funktionalitäten und andere Plugins
    • gscripting – Plugin zur Ausführung von Groovy-Skripten
    • smdb – Plugin zur vereinfachten Anbindung von MongoDB an Grails-Anwendungen
    • hazel – Unterstützungsplugin für die Nutzung von Hazelcast
    • kamel – Plugin zur Nutzung von Camel-Routen
    • manjo – Plugin zur Verwaltung von zeitbasierten Hintergrundvorgängen
    • smi18n – Plugin für die Erstellung und Verwaltung mehrsprachiger Inhalte
  • svalbard – Verwaltungsplugin zur Speicherung von verschlüsselten Daten und Passwörtern
  • ldap-core – Plugin mit LDAP/AD-Kernfunktionalität
  • mocas – Authentifizierungsplugin für CAS und Sessionreplikation für Anwendungen mit mehreren Servern
  • slay – Standardisiertes IdM-Layout als Plugin für Webanwendungen
  • secmail – Plugin für den Versand von verschlüsselten E-Mails
  • oslay – Plugin mit anpassbarem Layout für externe Einrichtungen

Ein großer Teil der Funktionalität liegt in domainspezifischen Sprachen (domain-specific languages => DSLs) und der eigenentwickelten Scripting-Engine. Mit Hilfe dieser Komponenten ist es möglich, große Teile der Anwendungslogik in einem Online-Programmcode-Editor zu bearbeiten und die Änderungen sofort ins laufende System zu übernehmen. Dadurch können Anwendungen zur Laufzeit verändert werden und müssen nicht erst kompiliert und neu gestartet werden, um die Änderungen zu übernehmen. Von der Scripting-Engine und den DSLs werden unter anderem folgende Vorgänge in den Anwendungen gesteuert:

  • Datenbankzugriffe
  • Mailversand
  • Versionierung
  • Datensynchronisation
  • Datenverarbeitung
  • Datennormalisierung und Sanitizing
  • Web Services (Server und Client)
  • Logging
  • LDAP-Verbindungen
  • PDF-Generierung
  • Dashboards

Drittanbieter-Software im Softwarestack

Neben der weit verbreiteten Server- und Datenbanksoftware verwendet die Abteilung „Entwicklung, Integration, Verfahren“ auch einige andere erwähnenswerte Softwarepakete von Drittanbietern. Einige davon sind die folgenden:

GitLab Logo

GitLab ist eine komplette DevOps-Plattform, die es Entwicklern ermöglicht, Software schneller zu entwickeln, zu testen und bereitzustellen. Die GitLab-Plattform bietet Entwicklern eine einzige Datenquelle für Projektplanung, Quellcodemanagement und CI/CD. Die Abteilung „Entwicklung, Integration, Verfahren“ betreibt eine Community-Version von GitLab, die für Open-Source-Projekte und den Austausch mit anderen Universitäten zum Einsatz kommt.

 

Logo JFrog

Artifactory ist ein weit verbreitetes Versionierungs- und Verwaltungssystem für Softwarepakete. Die Abteilung „Entwicklung, Integration, Verfahren“ nutzt Artifactory OSS für die Verwaltung der hausintern entwickelten Grails-Plugins. So können alle erstellten Anwendungen bequem von diesen Plugins profitieren.

 

 

CAS Logo

CAS ist ein vielseitig einsetzbares Enterprise Single Sign-On System. Im IdM-Umfeld wird es vor allem für die Authentifizierung der Mitarbeiter für die Arbeit mit den IdM-Kernkomponenten verwendet.

 

Keycloak Logo

Keycloak ist ein Open-Source-Softwareprodukt, das Single Sign-On mit Identity and Access Management für moderne Anwendungen und Dienste ermöglicht. Keycloak basiert auf Standardprotokollen und bietet Unterstützung für OpenID Connect, OAuth 2.0 und SAML.

 

 

Consul Logo

Consul ist eine Service-Networking-Lösung zur Automatisierung von Netzwerkkonfigurationen, Erkennung von Services und Ermöglichung sicherer Konnektivität über jede Cloud oder Laufzeit.

 

 

 

Docker Logo

Docker ist eine freie Software zur Isolierung von Anwendungen mit Hilfe von Containervirtualisierung. Docker vereinfacht die Bereitstellung von Anwendungen, weil sich Container, die alle nötigen Pakete enthalten, leicht als Dateien transportieren und installieren lassen.