IsyFact-Whitepaper

IFS-Logo Diese Seite ist ein Teil der IsyFact-Standards. Alle Inhalte der Seite, insbesondere Texte und Grafiken, sind urheberrechtlich geschützt. Alle urheberrechtlichen Nutzungs- und Verwertungsrechte liegen beim Bundesverwaltungsamt.

Creative Commons Namensnennung Die Nutzung ist unter den Lizenzbedingungen der Creative Commons Namensnennung 4.0 International gestattet.

1. IsyFact: eine Software Factory zur effizienten Entwicklung von Anwendungen

Das Bundesverwaltungsamt stellt seinen in einer Vielzahl von Projekten eingesetzten und etablierten Standard für die Erstellung von betrieblichen Informationssystemen als Open Source zur Verfügung.

Bei der Entwicklung von Anwendungen für eine bestimmte Domäne stehen Architekten und Entwickler häufig vor denselben, wiederkehrenden Problemen. Zwar unterscheiden sich je nach Anwendung die Datenstrukturen, die Geschäftslogik und die Benutzeroberflächen, aber die allgemeinen Prinzipien, z.B. der Datenhaltung, der Architektur und der Gestaltung von Benutzerschnittstellen, sind in der Regel für alle Anwendungen identisch und somit wiederverwendbar.

Die Herausforderung bei der Wiederverwendung besteht darin, das einmal erworbene Wissen über die Anwendungsentwicklung in einer Domäne zu strukturieren, zu dokumentieren und vorzuhalten, sodass nachfolgende Projekte einfach und verlässlich darauf zugreifen können, und damit die Einhaltung des definierten Architekturrahmens sicherzustellen.

Eine Software Factory ist ein Mittel, um dieses Ziel zu erreichen.

1.1. Standardisierung und Modularisierung der Softwareentwicklung

Die IsyFact ist eine Software Factory für den Bau von Informationssystemen in komplexen IT-Anwendungslandschaften. Sie bündelt bestehendes technisches Know-how, um Anwendungen effizienter entwickeln und betreiben zu können. Wie in einer Fabrik, in der gleichartige Teile durch standardisierte Fertigkomponenten gefertigt werden, bietet die IsyFact einen Ansatz in der Informationstechnik. Architektur, Konzepte, technische Infrastruktur, Querschnittsanwendungen, Programmierbibliotheken und Middleware sind standardisiert und können wiederverwendet werden.

1.2. IsyFact-Standards als Open Source-Projekt

Das Bundesverwaltungsamt stellt die IsyFact bereits seit geraumer Zeit anderen Behörden für ihre Softwareentwicklungsprojekte zur Verfügung. Die Grundlagen der IsyFact sind jedoch so allgemein, dass sie sich für die Entwicklung von Informationssystemen in beliebigen Anwendungskontexten eignen.

Das Bundesverwaltungsamt hat deswegen 2015 die Grundlagen der IsyFact als IsyFact-Standards ausgekoppelt und stellt sie auch nicht-behördlichen Nutzern als Open-Source-Software bereit. Interessenten können die IsyFact-Standards selbstständig aus dem GitHub-Repository beziehen. Dies beschleunigt den Prozess der Bereitstellung und verringert die Einstiegshürde für potenzielle Nutzer.

Durch die Open-Source-Stellung stehen die IsyFact-Standards einem größeren Kreis von Nutzern zur Verfügung. Auch wenn sie ursprünglich im Kontext der öffentlichen Verwaltung entwickelt wurde, können mit ihnen Anwendungslandschaften in anderen Anwendungskontexten ohne weiteres erstellt werden. Jeder Nutzer kann die IsyFact nach seinen Bedürfnissen anpassen und eigene Erweiterungen schreiben.

Das Bundesverwaltungsamt nimmt gerne Feedback zur IsyFact entgegen und ist an Korrekturen, Aktualisierungen und Erweiterungen interessiert. Entsprechende Vorschläge können gerne angeregt oder in Form von Pull Requests eingereicht werden. Das Bundesverwaltungsamt behält sich vor, diese nach eigenem Ermessen in die IsyFact aufzunehmen.

1.3. Vorteile / Nutzen

Die IsyFact wird seit 2007 durch das Bundesverwaltungsamt entwickelt und in unterschiedlichen Projekten in der Praxis eingesetzt. Sie ist mittlerweile ein wertvoller Know-how-Baustein des Bundesverwaltungsamts geworden.

Die Vorteile bei Nutzung der IsyFact sind:

Festes Fundament durch fünf Säulen

Referenzarchitektur, Bausteine, Plattform, Methodik, Werkzeuge

Universelle Vorbereitung für verschiedenste Geschäftsanwendungen

Nutzung der Gemeinsamkeiten von Geschäftsanwendungen

Effizienter Bau von Geschäftsanwendungen

Schneller und kostengünstiger als ohne IsyFact-Standards

Effizienter Betrieb von Geschäftsanwendungen

Vorteile durch Standardisierung und Nutzungsvorgaben

In der Praxis erprobtes Verfahren

Migration bestehender und Umsetzung neuer Geschäftsanwendungen im Bundesverwaltungsamt

2. Die fünf Säulen der IsyFact

Die IsyFact umfasst: Referenzarchitektur, Bausteine, eine Betriebsplattform, methodische Vorgaben zum Software-Engineering und Entwicklungswerkzeuge.

Die IsyFact stellt Ihre Inhalte strukturiert in fünf Säulen zur Verfügung.

Referenzarchitektur

Die Referenzarchitektur beschreibt die Konzepte, Architektur sowie Erstellung von Anwendungslandschaften und Geschäftsanwendungen auf fachlicher, software-technischer und technisch-infrastruktureller Ebene.

Bausteine

Wiederverwendbare Softwarelösungen, querschnittliche Anwendungen sowie Programmierbibliotheken und -vorlagen zur Erstellung von Geschäftsanwendungen.

Plattform

Eine einheitliche Plattform, die einen standardisierten und effizienten Betrieb von Geschäftsanwendungen ermöglicht.

Methodik

Konventionen und Vorgaben für die Spezifikation und Programmierung sowie das Projektvorgehen nach V-Modell XT.

Werkzeuge

Vorkonfigurierte Werkzeuge und Handbücher zu Werkzeugen zur Modellierung, Programmierung, Installation, Tests und Fehlerverfolgung.

sf saeulen.dn
Abbildung 1. Die fünf Säulen der IsyFact

Die folgenden Abschnitte beschreiben die einzelnen Säulen im Detail.

2.1. Referenzarchitektur

Die Referenzarchitektur bildet einen Strukturierungsrahmen für Anwendungslandschaften. Sie betrachtet Anwendungslandschaften und Anwendungen dabei aus fachlicher Sicht, software-technischer Sicht und technisch-infrastruktureller Sicht.

Fachliche Referenzarchitektur: Sie umfasst eine fachliche Beschreibung der Anwendungslandschaft. Diese wird in fachliche Komponenten zerlegt, die miteinander über fachliche Schnittstellen interagieren. Jegliche technische Aspekte sind dabei nicht von Belang.

Software-technische Referenzarchitektur: Sie umfasst die software-technische Beschreibung der Systemlandschaft. Die gesamte Systemlandschaft wird in technische Komponenten zerlegt, die miteinander über technische Schnittstellen interagieren. Jegliche Abbildung auf physikalische Systeme und deren Infrastruktur sind dabei nicht von Belang.

Technisch-infrastrukturelle Referenzarchitektur: Sie umfasst die Beschreibung der Systemlandschaft aus dem Blickwinkel der technischen Infrastruktur. Es wird beschrieben, welche technischen Systeme existieren und welche technischen Komponenten auf ihnen laufen.

Die Referenzarchitektur verfolgt im Wesentlichen fünf Ziele.

Einheitlichkeit: Durch die Vorgaben der Referenzarchitektur wird eine Gleichartigkeit der verschiedenen Systeme in Hinblick auf ihre fachliche Strukturierung, ihre technologische Strukturierung und Umsetzung, die verwendeten Produkte, ihre Dokumentation und die Art ihres Betriebs erreicht. Hierdurch verbessert sich die Verständlichkeit, Wartbarkeit und Betreibbarkeit der Systeme.

Effizienz: Durch die Verwendung vorhandener Querschnittsanwendungen, Bibliotheken, Generatoren, Beispielanwendungen und die Vorgaben der Referenzarchitektur können Anwendungen effizienter entwickelt und gewartet werden. Durch die infrastrukturelle und betriebliche Gleichartigkeit der Anwendungen können diese effizienter betrieben werden.

Sicherheit: Die Referenzarchitektur sieht bewährte Technologien und Produkte, eine Infrastruktur nach der Architekturrichtlinie für die IT des Bundes, und nach klaren architektonischen Vorgaben erstellte Anwendungen vor. Die Risiken für Ausfälle, Fehler oder Sicherheitslücken wird hierdurch reduziert und die Zukunftssicherheit der Anwendungen erhöht.

Erfahrung: In die Definition der Referenzarchitektur sind wertvolle Erfahrungen zur Umsetzung großer und verteilter Softwaresysteme im Allgemeinen und Registern im Speziellen eingeflossen. Diverse Geschäftsanwendungen wurden mit der Referenzarchitektur umgesetzt und die Referenzarchitektur kontinuierlich verbessert. Durch die Verwendung der Referenzarchitektur wird diese Erfahrung nutzbar gemacht. Die mit dieser Referenzarchitektur erstellten Geschäftsanwendungen sind hierdurch äußerst effizient umsetzbar, wartbar, betreibbar und zukunftssicher.

Standards: Durch die Referenzarchitektur werden Standards wie V-Modell XT, XML / XÖV oder Webservices genutzt und die Architekturrichtlinie für die IT des Bundes umgesetzt.

2.1.1. Fachliche Referenzarchitektur

Die fachliche Referenzarchitektur strukturiert die Anwendungslandschaft hierarchisch in Domänen, Systeme und Komponenten.

fachliche referenzarchitektur anwendungslandschaft.dn
Abbildung 2. Anwendungslandschaft

Anwendungen bieten dabei eine zusammengehörige, logische Einheit aus Funktionen, Daten und Schnittstellen. Es werden zwei Typen unterschieden:

  • Geschäftsanwendungen implementieren Geschäftslogik, Prozesse oder speichern Daten. Sie können Präsentationslogik enthalten, oder reine Datenspeicher im Hintergrund sein, die anderen Geschäftsanwendungen ihre Daten bereitstellen. Je nach Domäne kann es unterschiedliche Arten von Geschäftsanwendungen geben, die spezielle Aufgaben wahrnehmen.

  • Querschnittsanwendungen stellen Services für mehrere Geschäftsanwendungen bereit, beispielsweise ein Suchverfahren oder die Anwenderverwaltung.

Eine Anwendung besteht aus Anwendungskomponenten, die eine Menge funktional zusammenhängender Anwendungsfälle beschreiben.

Für den Zugriff der Anwender auf die Anwendungen dient eine Benutzeroberfläche im Portal. Externen Anwendungen stellen Service-Gateways die entsprechenden Schnittstellen über Web-Services zur Verfügung.

2.1.2. Software-technische Referenzarchitektur

Die software-technische Referenzarchitektur beschreibt, wie die in der fachlichen Referenzarchitektur definierten Anwendungen software-technisch in Form von IT-Systemen umgesetzt werden.

Eine zentrale Eigenschaft der software-technischen Referenzarchitektur ist, dass sie nicht zwischen Anwendungstypen unterscheidet. Die software-technische Umsetzung von Anwendungen ist ungeachtet ihrer Fachlichkeit gleich. Die software-technische Referenzarchitektur definiert hierzu das IT-System als Oberbegriff und beschreibt die Umsetzung einer Anwendung mittels einer Menge von IT-Systemen, die jedes für sich eine bestimmte Ausprägung besitzen. Diese Ausprägung ist technisch motiviert und umfasst aktuell Backends, Frontends und Batches.

2.1.3. Technisch-infrastrukturelle Referenzarchitektur

Die technisch-infrastrukturelle Referenzarchitektur beschreibt den Aufbau der Betriebsumgebung für die IT-Systeme einer IsyFact-konformen Anwendungslandschaft. Dazu gehören die physischen Geräte (Rechnersysteme, Netzwerkverbindungen und -komponenten, Drucker etc.), die installierte Systemsoftware (Betriebssystem, Applikationsserver, Middleware, Datenbanksystem) und das Zusammenspiel von Hardware und Systemsoftware.

2.1.4. Strukturierungsrahmen der IsyFact

Ziel der IsyFact ist ein klarer Strukturierungsrahmen zwischen den drei Architektursichten. Die fachlichen Komponenten der A-Architektur werden dabei im Software-Entwicklungsprozess auf die Komponenten der T-Architektur abgebildet, welche wiederum Elementen der TI-Architektur zugeordnet sind. Die T-Ebene enthält gegebenenfalls zusätzliche technische Komponenten. Auf der TI-Ebene können mehrere Instanzen einer technischen Komponente betrieben werden. Auch können mehrere technische Komponenten auf einer gemeinsamen Hardware laufen.

architektursichten abbildung
Abbildung 3. Architektursichten

Ziel ist es, in jeder Sicht auf die Gesamtarchitektur eine für diese Sicht adäquate Zerlegung zu finden.

2.2. Bausteine

Wiederverwendbare Softwarelösungen, querschnittliche Anwendungen sowie Programmierbibliotheken und -vorlagen zur Erstellung von Geschäftsanwendungen.

Diese Bausteine liegen in unterschiedlichen Formen vor: es gibt fachliche und technische Services im Sinne einer Service-Orientierten Architektur (SOA), querschnittlich nutzbare Komponenten sowie wiederverwendbare Bibliotheken und Programmiervorlagen.

Die Bausteine können auch am Markt verfügbare Fertigprodukte enthalten, dabei sowohl proprietäre als auch Open-Source-Software.

Die folgende Abbildung zeigt einen Überblick über die Bausteine im aktuellen Release der IsyFact.

bausteine.dn
Abbildung 4. Bausteine der IsyFact
Legende

Jede Wabe steht für einen Baustein. Blau gefüllte Waben sind Teil der IsyFact-Standards. Grau gefüllte Waben sind Teil der IsyFact-Erweiterungen.

Hellblau umrandete Waben bedeuten, dass der Baustein als Software-Bibliothek veröffentlicht wird.

Die nachfolgende Tabelle beschreibt die Bausteine. Sie stellen in der Regel ein Dokument aus architektonischer Sicht – das Konzept – und ein Dokument aus technischer Sicht – die Nutzungsvorgaben – sowie eine Software-Bibliothek zur Integration in eigene Anwendungen bereit.

Baustein Funktion

Angular

Der Baustein Angular bietet eine Frontend-Bibliothek, deren Komponenten anhand der Vorgaben im Bedienkonzept entwickelt und exemplarisch in der Demo-Anwendung des Bausteins gezeigt werden. Dadurch werden wiederverwendbare Widgets bereitgestellt, um User Interfaces zu vereinheitlichen. Der Baustein basiert auf Angular, PrimeNG und PrimeFlex.

Bedienkonzept

Das Bedienkonzept beschreibt die Gestaltungsregeln, Lösungsmuster und Workflows für fachliche Abläufe in Benutzeroberflächen. Ziel des Bedienkonzepts ist es, dass sich Sachbearbeiter möglichst schnell zwischen unterschiedlichen Anwendungen orientieren können.

Datum & Zeit

Der Baustein stellt Vorgaben für die Anzeige, Eingabe und persistenter Speicherung von Datums- und Zeitwerten bereit.

Fehlerbehandlung

Der Baustein Fehlerbehandlung enthält das technische Konzept und eine Bibliothek zur einheitlichen Implementierung der Fehlerbehandlung.

JPA/Hibernate

Der Baustein beschreibt die Umsetzung der Persistenzschicht von Backends auf Basis von JPA und dem O/R-Mapper Hibernate.

Logging

Der Baustein ermöglicht die einheitliche Erstellung und vereinfachte Auswertung von Log-Dateien, Fehlern und Systemzuständen über Komponentengrenzen hinweg.

Polling

Der Baustein Polling implementiert Verfahren zum koordinierten, regelmäßigen Abholen von Daten (Polling) durch mehrere redundant ausgelegte Instanzen einer Anwendung. Der Baustein unterstützt unterschiedliche Arten von Schnittstellen und sorgt dafür, dass Daten jeweils nur von einer Instanz der Anwendung verarbeitet werden.

REST

Der Baustein REST bietet die Möglichkeit, interne Services der Anwendungslandschaft als REST-Services zu realisieren.

Security

Der Baustein Security übernimmt die Authentifizierungsanfragen von natürlichen Anwendern als auch von technischen Systemen und leitet diese in die entsprechenden Credential-Flows des IAM-Service. Aus den vom IAM-Service erhaltenen Zugangsdaten übernimmt der Baustein das Rollen- und Rechte-Handling zur Autorisierung der Anwendungsaufrufe innerhalb der Aufrufkette der Fachanwendungen.

Sonderzeichen

Der Baustein bietet wichtige Hinweise für den Umgang mit Sonderzeichen und enthält Transkriptionsregeln zur Übertragung von nicht-lateinischen Zeichen. Unterstützt werden die Standards String Latin 1.1 und String Latin 1.2 („DIN SPEC 91379“) und eine generelle Kompatibilität zu UTF-8.

Task Scheduling

Der Baustein ermöglicht die Ausführung regelmäßiger Aufgaben innerhalb eines Backends mit voller Integration anderer Bausteine wie Konfiguration, Logging, Sicherheit und Überwachung.

Überwachung

Der Baustein macht Vorgaben für die Überwachung von Backends und stellt grundlegende Funktionalität bereit, so z.B. für die Überwachung von Komponentengrenzen. Die einheitliche Überwachungsschnittstelle erlaubt die frühzeitige Erkennung von Problemen im IT-Betrieb.

Util

Der Baustein Util bietet nützliche Hilfsmittel, die von den Anwendungen der IsyFact genutzt werden können. Es handelt sich dabei um kleinere Utility-Klassen, wie z.B. Interzeptoren, mit denen sich das Laufzeitverhalten von Anwendungen nachvollziehen lässt.

2.3. Plattform

Eine einheitliche Plattform, die einen standardisierten und effizienten Betrieb von Geschäftsanwendungen ermöglicht.

Die Betriebsplattform der IsyFact besteht aus Hardware und Netzen sowie der benötigten Middleware mit Anwendungs- und Datenbankservern. Sie sieht eine hochverfügbare Produktionsumgebung sowie Entwicklungs- und verschiedene Testumgebungen vor.

Neben der reinen technischen Plattform sieht die Plattform der IsyFact auch Konzepte zur Administration mit entsprechenden einheitlichen Werkzeugen zum Monitoring und Management der Plattform vor.

ti architektur awl pru.dn
Abbildung 5. Betriebsplattform der IsyFact

Die Plattform entspricht dem SAGA/BSI Netzkonzept mit drei Zonen:

  • Nutzerebene (Informations- und Dienstezone)

  • Logikebene (Logik- und Verarbeitungszone)

  • Datenhaltungsebene (Datenzone)

SAGA sind die „Standards und Architekturen für E-Government“ der deutschen Bundesverwaltung, siehe: SAGA - seit SAGA 5 wird bzgl. des Netzkonzeptes auf das BSI verwiesen.

Die Plattform definiert einen allgemeinen Rahmen für den Anwendungsbetrieb und kann an die speziellen Anforderungen unterschiedlicher Betriebsorganisationen angepasst werden. Soweit möglich werden Produkte aus dem Open Source-Umfeld eingesetzt, wie beispielsweise der Apache HTTP Server als Webserver oder Apache Tomcat als Applikationsserver.

2.4. Methodik

Konventionen und Vorgaben für die Spezifikation und Programmierung sowie das Projektvorgehen nach V-Modell XT.

methodik v modell.dn
Abbildung 6. Methodik: Vorgehen auf Basis des V-Modell XT
Das V-Modell XT ist als Vorgehensmodell für Systementwicklungsprojekte in deutschen Bundesbehörden vorgeschrieben.

Die spezifische Methodik der IsyFact umfasst folgende Konventionen und Vorgaben.

2.5. Werkzeuge

Vorkonfigurierte Werkzeuge und Handbücher zu Werkzeugen zur Modellierung, Programmierung, Installation, Tests und Fehlerverfolgung.

Für die Softwareentwicklung setzt die IsyFact auf die IDEs Eclipse sowie IntelliJ IDEA und bietet punktuelle Unterstützung, z.B. bei der Generierung von Quellcode sowie der Überprüfung der Code-Qualität.

Des Weiteren gibt es Generatoren für z.B. die Erstellung eines neuen Projekts. Für die Modellierung wird diagrams.net und Enterprise Architect genutzt. Maven unterstützt Build und Deployment der Softwarepakete.

Für Softwaretests werden, neben JUnit und Frameworks zum Mocking, in Teilen Eigenentwicklungen genutzt. Das Fehler- und Änderungsmanagement wird unterstützt durch das Tool Jira.

3. Produktüberblick

Basistechnologie der IsyFact sind die Programmiersprache Java und das Anwendungsframework Spring Boot. Soweit möglich nutzt die IsyFact etablierte Softwareprodukte, Frameworks und Bibliotheken.

Die nachfolgende Tabelle gibt einen Überblick über die in der IsyFact vorgegebenen bzw. empfohlenen Produkte.

Basistechnologien

Programmiersprache

Java

Web-Technologie

XHTML

Architekturmuster

Service-orientierte Architektur (SOA)

Systemsoftware

JEE-Applikationsserver

Apache Tomcat

Authentifizierung / Autorisierung

OAuth2 / OpenID Connect
Keycloak

Webserver

Apache HTTP Server

Bibliotheken für die Anwendungsentwicklung

Web-Framework

Angular

Service-Framework

Spring Web MVC, Spring WebClient,
Eclipse Metro (Soap)

Anwendungskern-Framework

Spring Boot

Persistenz-Framework

Spring Data & JPA/Hibernate

Logging-Framework

Logback

Spezielle Software und Bibliotheken

Überwachung / Monitoring

Micrometer

Test-Framework

JUnit, Mockito

Werkzeuge und Methodiken

Programmierung

Eclipse, IntelliJ IDEA

Modellierung

diagrams.net, Enterprise Architect

Basistechnologien

Build und Deployment

Maven

Fehler- und Änderungsmanagement

Jira

4. Übersicht IsyFact-Standards