Softwarestack

Die Anwendungen der Abteilung „Entwicklung & Integration“ sind Eigenentwicklungen, die ohne einen leistungsfähigen Softwarestack nicht möglich wären. Dieser Softwarestack wurde entwickelt und sukzessive ausgebaut und steht inzwischen als Dreh- und Angelpunkt im Zentrum der Aufgaben der Arbeitsgruppe „Softwarearchitektur“. Alle Anwendungen wurden mit dem Grails-Framework erstellt, welches wiederum auf der Programmiersprache Groovy und damit auf Java basiert.

  • Ubuntu Linux
  • Docker
  • Tomcat
  • Apache
    • Load Balancer
    • Service IPs, Corosync & Pacemaker
  • Java Virtual Machine
    • Java
    • Groovy
  • Grails
  • Datenhaltung
    • PostgreSQL
    • MySQL
    • MongoDB
    • Elasticsearch

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

  • encore – Sammelplugin für eine Reihe von Anwendungen
    • clusse – Plugin zur Nutzung von Clustered Sessions (Sessionreplikation für Anwendungen mit mehreren Servern)
    • vervis – Visualisierungsplugin für versionierte Daten (z. B. Benutzerdaten)
    • 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 Routes
    • jobmon – Plugin zur Verwaltung von zeitbasierten Hintergrundvorgängen
    • rgraph – Plugin zur Überwachung und Visualisierung von Routen (Camel Routes)
  • svalbard – Verwaltungsplugin zur Speicherung von verschlüsselten Daten und Passwörtern
  • protocol – Plugin für die Protokollierung von Benutzerevents in der MongoDB
  • pdfgen – PDF-Generator mit Signierfunktion
  • ldap-core – Plugin mit LDAP-Kernfunktionalität
  • dbi18n – Plugin für die Erstellung und Verwaltung mehrsprachiger Inhalte
  • icas – Authentifizierungsplugin für CAS
  • slay – Standartisiertes IdM-Layout als Plugin für Webanwendungen

Ein großer Teil der Funktionalität liegt in domainspezifischen Sprachen (domain-specific languages => DSLs) und der Scripting-Engine. Mit Hilfe dieser Komponenten ist es möglich, große Teile der Anwendungslogik in einem Online-Programmcodeeditor 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
  • Synchronization
  • Verarbeitung

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.

 

Logo JFrog

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

 

 

Jenkins Logo

Jenkins ist ein Werkzeug zur Realisierung von kontinuierlicher Integration von Anwendungen. Mit Hilfe von Jenkins kann der Quellcode der erstellten Anwendungen automatisch kompiliert und zu lauffähigen Paketen zusammengebaut werden, was das Aktualisieren der Software auf den Produktivsystemen massiv beschleunigt und erleichtert.

 

 

 

Logo Oryx

Oryx ist ein Open-Source-Projekt, mit dessen Hilfe Geschäftsprozesse modelliert und abgebildet werden können. Oryx wurde am Hasso-Plattner-Institut der Universität Potsdam entwickelt und wird häufig im akademischen Bereich eingesetzt.

 

Elasticsearch Logo

Elasticsearch ist eine skalierbare Dokumentendatenbank, die für komplexe textbasierte Suchen in großen Datenmengen optimiert ist und häufig als Suchmaschine eingesetzt wird. Im IdM-Umfeld wird Elasticsearch hauptsächlich für die Analyse von Logdateien verschiedener Server und Anwendungen verwendet.

 

 

Kibana-Logo

Kibana ist eine Anwendung zur webbasierten Visualisierung von Daten in Elasticsearch, die diese Daten in Dashboards oder Graphen darstellt. Mit Hilfe von Kibana und dem leistungsfähigen Elasticsearch-Server kann man sich z. B. einen Überblick über die Serverauslastung über einen bestimmten Zeitraum verschaffen oder die Häufung von bestimmten Logereignissen analysieren.

 

Logstash Logo

Logstash ist ein Verarbeitungssystem für Datenströme aus verschiedenen Quellen, z. B. Logdateien oder Sensordaten. Die aufbereiteten Daten können dann z. B. in Elasticsearch weitergeleitet werden, um dort für Suchen zur Verfügung zu stehen oder mit Kibana analysiert zu werden.