IsyFact-Whitepaper
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.
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 Anwendungssysteme 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
-
Blaupausen, 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: Blaupausen, Bausteine, eine Betriebsplattform, methodische Vorgaben zum Software-Engineering und Entwicklungswerkzeuge.
Die IsyFact stellt Ihre Inhalte strukturiert in fünf Säulen zur Verfügung.
- Blaupausen
-
Blaupausen beschreiben 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.
Die folgenden Abschnitte beschreiben die einzelnen Säulen im Detail.
2.1. Blaupausen
Blaupausen beschreiben die Konzepte, Architektur sowie Erstellung von Anwendungslandschaften und Geschäftsanwendungen auf fachlicher, software-technischer und technisch-infrastruktureller Ebene.
2.1.1. Fachliche Referenzarchitektur (A-Architektur)
Die fachliche Architektur strukturiert die Anwendungslandschaft hierarchisch in Domänen, Systeme und Komponenten.
Anwendungssysteme bieten dabei eine zusammengehörige, logische Einheit aus Funktionen, Daten und Schnittstellen. Es werden zwei Typen unterschieden:
-
Geschäftsanwendungen implementieren fachliche Logik, 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 Anwendungsdomä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.
Ein Anwendungssystem besteht aus Anwendungskomponenten, die eine Menge funktional zusammenhängender Anwendungsfälle beschreiben.
Für den Zugriff der Anwender auf die Anwendungssysteme dient eine Benutzeroberfläche im Portal. Externen Anwendungssystemen stellen Service-Gateways die entsprechenden Schnittstellen über Web-Services zur Verfügung.
2.1.2. Software-technische Referenzarchitektur (T-Architektur)
Die Software-Architektur beschreibt die in der fachlichen Architektur definierten Elemente in technischer Form von IT-Systemen, Komponenten, Klassen, Datenmodellen etc.
Die Referenzarchitektur für IT-Systeme der IsyFact basiert auf der bekannten Drei-Schicht-Architektur.
Die Datenhaltungsschicht kapselt alle Funktionen zum Zugriff auf die Datenbanken.
Die Schicht des Anwendungskerns umfasst die fachliche Logik zur Datenbearbeitung des Systems, beispielsweise Validierungen, spezielle Dialogfunktionen oder Verarbeitung von Geschäftsobjekten.
Die Nutzungsschicht bietet Funktionen der Anwendungen für menschliche und technische Nutzer. Menschliche Nutzer greifen über eine grafische Nutzeroberfläche (GUI) auf das System zu. Technische Nutzer über Batches für Stapelverarbeitung oder als Service für eine Außenschnittstelle mit anderen IT-Systemen.
Ergänzend zu GUI, Service, Batch, Anwendungskern und Datenhaltung gibt es in den IT-Systemen querschnittliche Funktionalitäten wie beispielsweise Fehlerbehandlung, Logging oder Authentifizierung und Autorisierung.
Die IsyFact enthält Blaupausen für die Nutzungsschichten GUI, Batch, Servicekommunikationen sowie für den Anwendungskern und den Datenzugriff.
2.1.3. Die Referenzarchitektur der technischen Infrastruktur (TI-Architektur)
Die Referenzarchitektur der technischen Infrastruktur, auch TI-Architektur genannt, 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.
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.
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 Anwendungssysteme bereit.
Baustein | Funktion |
---|---|
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. |
Http Invoker |
Der Baustein Http Invoker bietet die Möglichkeit, interne Services der Anwendungslandschaft mit der Technologie Spring Http Invoker zu realisieren. |
JPA/Hibernate |
Der Baustein beschreibt die Umsetzung des Datenzugriffs auf Basis von JPA und dem O/R-Mapper Hibernate. |
JSF |
Der Baustein JSF ermöglicht es Anwendungen, grafische Oberflächen auf Basis von Java Server Faces umzusetzen. Er enthält architektonische sowie technische Vorgaben und beschreibt die konkrete Umsetzung. Dabei integriert er den Styleguide und stellt auf dessen Grundlage wiederverwendbare Widgets bereit. Der Baustein basiert auf JSF und Spring Webflow. |
Konfiguration |
Der Baustein beschreibt typische Arten von Konfiguration und macht Vorgaben für deren Erstellung, Handhabung und Pflege. |
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 |
Als Nachfolger des Bausteins Sicherheit übernimmt der Baustein Security 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. |
Sicherheit |
Der Baustein übernimmt die Autorisierung von Anfragen, sowohl von menschlichen Anwendern als auch externen Systemen, und dient zur Verwaltung von Rollen und Rechten innerhalb von IT-Systemen. |
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 von IT-Systemen mit voller Integration anderer Bausteine wie Konfiguration, Logging, Sicherheit und Überwachung. |
Überwachung |
Der Baustein macht Vorgaben für die Überwachung von IT-Systemen 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.
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.
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.
- Dokumentation
- Vorgehensweise zur Auswahl von Fremdprodukten
- Konventionen für die Implementierung
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 |
Webserver |
Apache HTTP Server |
Bibliotheken für die Anwendungsentwicklung | |
---|---|
Web-Framework |
JSF/Spring MVC/Webflow |
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 |