IsyFact-Standards
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.
Im Folgenden sind die unterschiedlichen Vorgaben und Komponenten der IsyFact-Standards beschrieben. Der Aufbau der Seite orientiert sich am Entwicklungsprozess einer Geschäftsanwendung und macht Vorgaben zu den folgenden Phasen des V-Modells XT: Spezifikation, Systementwurf und Realisierung. Darüber hinaus werden die Bausteine der IsyFact-Standards kurz beschrieben.
1. Vorgaben für die Architektur
Die Referenzarchitektur definiert die Architektur einzelner Anwendungen bis hin zu Anwendungslandschaften. Dazu beschreibt sie drei Architektursichten:
-
Fachliche Architektur (A-Architektur),
-
Softwaretechnische Architektur (T-Architektur),
-
Architektur der technischen Infrastruktur (TI-Architektur).
Diese Architektursichten decken die wichtigsten Blickwinkel auf die Architektur ab: fachlich, technisch und betrieblich. Ein zentraler Vorteil der IsyFact besteht darin, dass die Architektursichten ineinander überführbar sind. So gibt es definierte Regeln, wie aus einer fachlichen Architektur eine softwaretechnische Architektur gebildet wird und wie sich aus diesen beiden Sichten die Architektur der technischen Infrastruktur entwickeln lässt. Diese Abbildbarkeit sorgt dafür, dass bereits mit der Erstellung der fachlichen Architektur wichtige Weichen für die Umsetzung und den Betrieb der Anwendungen gestellt werden.
Die folgenden Abschnitte beschreiben knapp die Vorgaben an die Architektur aus den jeweiligen Sichten heraus. Sie verweisen für weitere Details auf die jeweils relevanten Dokumente.
1.1. Vorgaben für die A-Architektur
Die allgemeine Referenzarchitektur muss für die zu bauenden Anwendungen in einer fachlichen Architektur konkretisiert werden. Die fachliche Architektur strukturiert die Anforderungen sowie die zu unterstützenden Geschäftsprozesse. Sie betrachtet dabei zwei Architekturebenen: Anwendungslandschaften und Anwendungen.
Die Ebene der Anwendungslandschaft schneidet die Anforderungen in fachliche Domänen und ordnet ihnen die Geschäftsprozesse zu. Innerhalb der Domänen werden wiederum Geschäftsanwendungen geschnitten, um klar definierte Teilaspekte der Fachlichkeit umzusetzen. Geschäftsanwendungen weisen eine hohe fachliche Kohäsion auf und kommunizieren zur Erfüllung ihrer Aufgaben in der Regel mit weiteren Geschäftsanwendungen.
Die fachliche Architektur der Anwendungslandschaft beschreibt die Geschäftsprozesse sowie Funktionalitäten und Regeln, welche die Grundlage für die fachlichen Schnitte bilden. Neben der Struktur geht sie auch auf die Kommunikation der Geschäftsanwendungen untereinander sowie mit Anwendungen anderer Anwendungslandschaften ein.
Die fachliche Architektur der Geschäftsanwendungen wird in Spezifikationen dokumentiert.
1.1.1. Vorgaben für die Spezifikation
Systemspezifikationen besitzen eine festgelegte Form und beschreiben stets gleichartige Inhalte. Die Vorgaben dazu befinden sich mitsamt Vorgehen und Beispielen in der Vorlage für die Systemspezifikation. Bereits bei der Systemspezifikation ist auf die Einhaltung der Namenskonventionen zu achten. Bei der Erstellung von Diagrammen mit dem Enterprise Architect helfen die Nutzungsvorgaben Enterprise Architect.
Für die Erfassung von Anforderungslisten gibt es ebenfalls eine Vorlage mit Erläuterungen. Die Anforderungsliste ist ein Instrument, um die Übersicht und die Nachvollziehbarkeit des Umsetzungsstatus aller Anforderungen an ein System im gesamten Projektlebenszyklus zu erhalten.
Die Vorlage zu Datenflussdiagrammen beschreibt die Erstellung von Datenflussdiagrammen und liefert eine Leseanleitung dazu.
1.2. Vorgaben für die T-Architektur
Die software-technische Referenzarchitektur wird auf Basis der Spezifikation aus der fachlichen Architektur entwickelt. Die technischen Entsprechungen für die fachlich motivierte Anwendungslandschaft und die Anwendung sind die technisch motivierten Begriffe der Systemlandschaft und respektive des IT-Systems.
Die Referenzarchitektur kennt drei Typen von IT-Systemen: Backends, Frontends und Batches.
1.2.1. Backend
Ein Backend ist ein IT-Systemtyp, der hauptsächlich Geschäftslogik umsetzt und diese in Form von Services bereitstellt. Dabei kann es sich um Nachbarsystemschnittstellen einer Anwendung handeln, die von anderen Anwendungen verwendet werden, oder um interne Schnittstellen, die von anderen IT-Systemen derselben Anwendung verwendet werden. Backends setzen, auf die fachliche Referenzarchitektur bezogen, maßgeblich Anwendungskomponenten und Nachbarsystemschnittstellen um.
Weitere Details zum Aufbau und zur Umsetzung von Backends enthält die software-technische Referenzarchitektur für Backends.
1.2.2. Frontend
Ein Frontend ist ein IT-Systemtyp, der hauptsächlich grafische Benutzerschnittstellen bereitstellt. Frontends kommunizieren hierzu über interne Schnittstellen mit Backends.
Frontends setzen, auf die fachliche Referenzarchitektur bezogen, maßgeblich Dialoge und Masken um.
Weitere Details zum Aufbau und zur Umsetzung von Frontends enthält die software-technische Referenzarchitektur für Frontends.
1.2.3. Batch
Ein Batch ist ein IT-Systemtyp, der hauptsächlich eine automatische Datenverarbeitung ohne manuelle Interaktion eines Anwenders umsetzt.
Batches können hierfür entweder den Quellcode eines bestehenden Backends einbinden und nutzen, oder über interne Schnittstellen mit Backends kommunizieren.
Weitere Details zum Aufbau und zur Umsetzung von Batches enthält die software-technische Referenzarchitektur für Batches.
1.2.4. Vorgaben für den Systementwurf
Die Erstellung von IT-Systemen wird durch einen Systementwurf konkretisiert und dokumentiert.
Systementwürfe besitzen, genau wie Spezifikationen, eine festgelegte Form und beschreiben stets gleichartige Inhalte. Die Vorgaben dazu befinden sich mitsamt Vorgehen und Beispielen in der Vorlage für den Systementwurf (IsyFact Systementwurf).
Zur Konstruktion des IT-Systems, also den eigentlichen Inhalten des Systementwurfs, existieren eine Reihe von Dokumenten, die inhaltliche Vorgaben machen. Neben der Referenzarchitektur sind dies vor allem die Bausteine, die wesentliche Vorgaben zur technischen Umsetzung ihrer jeweiligen Funktionalität enthalten.
Die wichtigsten Entscheidungen zu den zu nutzenden Produkten sind im Produktkatalog festgelegt. IT-Systeme müssen auf Basis dieser Produkte und Bibliotheken gebaut werden.
1.3. Vorgaben für die TI-Architektur
Die Architektur der technischen Infrastruktur wird auf Grundlage der Spezifikation und des Entwurfs entwickelt.
Die Grundlagen der TI-Architektur auf Ebene von Anwendungslandschaften und Anwendungen ist in der technisch-infrastrukturellen Referenzarchitektur beschrieben. Die zu verwendende Infrastruktur ist zum Teil durch den Produktkatalog vorgegeben.
1.3.1. Vorgaben für das Systemhandbuch
Das Systemhandbuch ist gemäß der IsyFact Vorlage Systemhandbuch zu erstellen und beschreibt die Installation, Konfiguration und den Betrieb eines IT-Systems. Die Vorlage legt die äußere Form sowie die Gliederung des Dokuments fest. Sie enthält außerdem das Vorgehen zur Erstellung und Beispiele für die zu beschreibenden Inhalte.
2. Vorgaben für die Realisierung
Die Realisierung hat gemäß den Java Programmierkonventionen zu erfolgen. Die Versionierung von Bibliotheken und Anwendungen muss sich nach den Vorgaben zur IsyFact Versionierung richten, die im Wesentlichen auf Semantic Versioning basieren.
Die Bibliotheken der IsyFact werden als JAR (Java Archive) bereitgestellt und können über ihre Maven-Koordinaten leicht als Abhängigkeit in die Anwendungsentwicklung eingebunden werden.
Mit dem Tutorial gibt es eine Handreichung, um sich in die Implementierungsvorgaben einzuarbeiten.
3. Bausteine der IsyFact-Standards
Die IsyFact-Standards stellen eine Reihe von Bausteine zur Umsetzung querschnittlicher Funktionalitäten bereit, die für alle IT-Systeme relevant und zu nutzen sind. Diese werden im Folgenden dargestellt:
3.1. Fehlerbehandlung
Im Dokument Konzept Fehlerbehandlung ist beschrieben, in welchen Fällen und in welcher Form die Fehler- und Ausnahmebehandlung stattfinden soll.
3.2. Datum & Zeit
Der Baustein Datum & Zeit beschreibt die Verwendung der Java 8 Date & Time API (java.time
) in der IsyFact.
Das Konzept Datum/Zeit beschreibt die konzeptionellen Grundlagen der Verarbeitung von Datums- und Zeitwerten.
Die Nutzungsvorgaben Datum/Zeit beschreiben alle Aspekte, die bei der Entwicklung einer Anwendung zu berücksichtigen sind.
3.3. Administrative Überwachung und Konfiguration
Das Dokument Konzept Überwachung beschreibt, welche Arten von Konfiguration für eine Anwendung vorgesehen sind und wie diese umgesetzt werden sollen. Weiterhin wird in diesem Dokument gezeigt, wie die Überwachung und Administration einer Anwendung seitens des Systembetriebs erfolgt und welche Schnittstellen dazu durch die Anwendung zur Verfügung gestellt werden müssen.
3.4. Behandlung von internationalen Sonderzeichen
Geschäftsanwendungen müssen zum Teil mit Einträgen umgehen, die nicht den geläufigen Zeichenstandards und Codierungen unterliegen. Im Dokument Konzept Sonderzeichen werden Festlegungen getroffen, wie mit daraus resultierenden Problemstellungen umgegangen wird. In diesem Zusammenhang müssen oft auch Namen transkribiert werden. Die dafür zu verwendenden Regeln sind ebenfalls im Dokument enthalten.
3.5. Logging
Geschäftsanwendungen sollten Logs einheitlich erstellen und auswerten können. Das Konzept Logging beschreibt die einheitliche Erstellung von Logs in Anwendungen sowie deren Auswertung auf fachlicher Ebene. Die Nutzungsvorgaben Logging beschreiben die technische Umsetzung des Loggings und die technischen Möglichkeiten der Auswertung.
3.6. Berechtigungen
Zum Zugriff auf Informationen zu Berechtigungen eines Nutzers ist der Baustein Security zu nutzen. Das Konzept Security beschreibt die konzeptionellen Festlegungen hinsichtlich der Authentifizierung und Autorisierung. Die Nutzungsvorgaben Security beschreiben den Einsatz des Bausteins bei der Anwendungsentwicklung. Zur Nutzung dieser Komponente ist es erforderlich, dass die Rollen und Rechte einer Anwendung in einem speziellen Format abgelegt werden. Ein XML-Schema dazu findet sich im Anhang von Nutzungsvorgaben Security.
3.7. Task Scheduling
Der Baustein verwendet als Grundlage das Spring Task Scheduling für die Steuerung (d.h. Planung und Ausführung) periodisch wiederkehrender Aufgaben. Aufgaben sind (in Abgrenzung zu Batches) innerhalb einer Anwendungskomponente angesiedelt und werden von der Anwendung selbstständig ausgeführt. Das Konzept Task Scheduling beschreibt die konzeptionellen Grundlagen der Steuerung von Aufgaben. Die Nutzungsvorgaben Task Scheduling beschreiben alle Aspekte, die bei der Entwicklung einer Anwendung zu berücksichtigen sind, und alle bereits in der IsyFact definierten Aufgaben (wie z.B. das periodische Neuladen der Anwendungskonfiguration).
3.8. Polling
In Geschäftsanwendungen müssen manchmal Polling-basierte Schnittstellen angesprochen werden. Polling bedeutet, dass in regelmäßigen Intervallen neue Daten zur Verarbeitung abgeholt werden sollen. Die Schnittstellen nutzen unterschiedliche technische Verfahren wie IMAP, Web-Services oder proprietäre Datenbank-basierte Schnittstellen; weitere sind denkbar. Das Konzept findet sich in Konzept Polling.
Aus Gründen der Ausfallsicherheit soll die Abholung der Daten von mehreren Instanzen einer Anwendung durchgeführt werden. Diese Instanzen müssen synchronisiert werden, sodass Nachrichten nicht mehrfach verarbeitet werden. Die zugrunde liegenden Schnittstellen-Technologien bieten dafür kein Standardverfahren an. Der Baustein Polling definiert ein solches Verfahren. Die Nutzerdokumentation befindet sich unter Nutzungsvorgaben Polling.
3.9. REST
Für den externen Zugriff auf Anwendungskomponenten werden deren Schnittstellen über REST-Endpunkte exponiert. Dies ermöglicht eine standardisierte Kommunikation der Anwendungen untereinander und eine lose Kopplung der Anwendungen voneinander. Zur Standardisierung der REST-Schnittstellen gibt es den Baustein REST.
3.10. Util
Die Bibliothek isy-util
bietet nützliche Hilfsmittel, die von den Anwendungen der IsyFact genutzt werden können.
Es handelt sich dabei um kleinere Utility-Klassen, welche die Implementierung vereinfachen.
Diese werden in den Nutzungsvorgaben überblicksartig beschrieben.