Ziele und Curriculum
Im Folgenden werden grundlegenden Forschungskompetenzen des Instituts für Architektur von Anwendungssystemen (IAAS) und die Vorlesungen, die vom IAAS angeboten werden diskutiert. Mehrere Gruppierungen von Vorlesungen, die unterschiedlichen beruflichen Schwerpunkten entsprechen, werden vorgeschlagen.
Die Vorlesungen sind durch die Forschungskompetenzen des IAAS motiviert.
Forschungskompetenzen des IAAS
Der Begriff Anwendungssystem bezeichnet eine Software, die unmittelbar eine oder mehrere Geschäftstätigkeiten eines Unternehmens unterstützt. Typisch für ein solches System ist:
- Es deckt wesentliche Teile der Geschäftstätigkeiten eines Unternehmens ab.
- Es verarbeitet große Mengen persistenter Daten.
- Es erlaubt die gleichzeitige Nutzung durch sehr viele Benutzer.
- Es tauscht Informationen mit anderen Systemen aus.
Da Anwendungssysteme wesentlich für die Geschäftstätigkeit von Unternehmen sind, muss es strenge Anforderungen an nicht-funktionale Eigenschaften wie Verfügbarkeit, Skalierbarkeit, Robustheit und Performanz erfüllen.
Das IAAS beschäftigt sich mit der Architektur solcher Anwendungssyteme, d.h. mit ihrer zugrundeliegenden Struktur: Welche Art Bausteine und welche Art Verbindungen zwischen ihnen werden benötigt, um ein solches System zu erstellen und um seine geforderten nicht-funktionalen Eigenschaften zu garantieren In diesem Zusammenhang fokussiert das IAAS auf Middleware, d.h. welche Art Middleware ist für die Architektur eines bestimmten Anwendungssystems geeignet und wie wird diese Middleware am besten genutzt. Weiterhin werden Paradigmen zur Modellierung und Spezifikation von Anwendungssystemen untersucht und entwickelt, unter anderem auch um deren Compliance, d.h. deren Übereinstimmung mit (gesetzgeberischen, firmeninternen...) Regeln zu garantieren.
Um bestmögliche Unterstützung unterschiedlichster Geschäftstätigkeiten von Unternehmen zu gewährleisten, untersucht das IAAS die Rolle von Geschäftsprozessen in Anwendungssystemen. Sowohl die geeignete Modellierung von Geschäftsprozessen als auch Middleware zur Unterstützung ihrer Ausführung (sogenannte Workflow Systeme oder Prozess Management Systeme) werden untersucht. Geschäftsprozesse werden als Programme im Großen aufgefasst, und die Komposition von Anwendungen mit Hilfe von Geschäftsprozessen wird untersucht, unter anderem zur Sicherstellung neuartiger Funktionalitäten aber auch nicht-funktionaler Eigenschaften.
Um den Datenaustausch zwischen Anwendungssystemen zu unterstützen, fokussiert das IAAS auf Messaging Systeme (Message Queuing, Publish/Subscribe) und Dienst-Technologien. Service Oriented Computing (SoC) und Service Oriented Archtictures (SOA) im Allgemeinen gehören zum Kompetenzspektrum, aber auch spezifische Technologien wie Web Services und REST-basierte Systeme bzw. Schnittstellen.
Die Unterstützung operationaler Anforderungen von Anwendungssystemen wie deren automatische Provisionierung und Deployment als auch deren automatisiertes Management, die Nutzung von Cloud Computing im allgemeinen und die Verwendung von Could Middleware und Cloud Technologien werden intensiv erforscht. Anwendungs-Topologien und entsprechende Modellierungssprachen sind von speziellem Interesse.
Verstärkt werden Dienste nicht nur durch Software realisiert oder von Menschen angeboten, sondern Sensoren und Aktuatoren werden sind Bausteine solcher Dienst somit befasst sich das IAAS auch mit den Internet der Dinge (IoT - Internet of Things) und Cyber-Physikalischen Systemen (CPS).
Anwendungen von Quantentechnologien drängen in den letzten Jahren in die Praxis. Am IAAS werden die Einsatzmöglichkeiten von Quantencomputern und Architekturen zur Einbindung von Quantensoftware in Anwendungssysteme untersucht. Auch die Unterstützung "traditioneller" Programmierer bei der Ertellung von Quantenalgorithmen ist ein Untersuchungsgegenstand.
Transaktionsmodelle zur Sicherstellung der Robustheit von Anwendungssystemen werden untersucht. Ebenso untersucht das IAAS Optimierungspotenziale von Anwendungssystemen im Allgemeinen und von Geschäftsprozessen im speziellen.
Zur Unterstützung des Transfers von Forschungsresultaten in die Praxis hat das IAAS einen speziellen Fokus auf Pattern (Muster) und Pattern Languages (Mustersprachen). Mehrere Mustersprachen sind am IAAS entstanden. Auch Mustersprachen an sich ein eigenständiger Forschungsgegenstand.
Schließlich sind eine Reihe von Anwendungsbereichen von großem Interesse wie etwa Simulationstechnologie, eScience, Digital Humanities, Blockchain-basierte Systeme und Manufacturing Systeme.
Dieses Spektrum an Themen wird sowohl in der Forschung als auch in der Lehre des IAAS reflektiert.
Spektrum der Lehre am IAAS
Die folgende Abbildung fasst die Lehrveranstaltungen des IAAS zusammen. Die Schichtung der Veranstaltungen von unten nach oben sind ein erster Indikator der Reihenfolge, in dem die Veranstaltungen besucht werden sollten - mehr Details dazu im Folgenden.
Gestrichelte Linien bedeuten, dass die betreffende Veranstaltung nicht Basis einer anderen Veranstaltung ist. Dennoch hilft eine solche Veranstaltungen dem vertieften Verständnis des gesamten Bereichs, dem sich das IAAS widmet.
Im Folgenden werden die einzelnen Veranstaltungen von unter (d.h. grundlegende Veranstaltungen) nach oben (d.h. mehr spezialisierte Veranstaltungen) kurz dargestellt.
Modellierung (Modeling)
Konzeptionelle Datenmodellierung als auch logische Datenmodellierung werden abgedeckt. Konzeptionelle Datenmodellierung wird über das Entity-Relationship Modell eingeführt, logische Datenmodellierung wird anhand des Relationenmodells erläutert. Letzteres schließt auch eine Einführung in SQL und die Normalisierungstheorie ein. Transformationen von Entity-Relationship Modellen und XML Schemata werden vorgestellt. Die Modellierung statischer und dynamischer Aspekte eines Softwaresystems werden mit Hilfe von UML eingeführt. Das Konzept der Metamodellierung wird diskutiert und Ontologiemodellierung skizziert. Petri Netze und ihre Analyse werden abgedeckt, und eine Einführung in BPMN wird gegeben.
Architektur von Anwendungssystemen (Architecture of Enterprise Applications)
Der Begriff des Architekten und der Architektur von Anwendungssystemen wird diskutiert. Darauf aufbauend werden Architekturdiagrammeund Architekturbeschreibungssprachen (ADLs) eingeführt und verschiedene Architekturstile diskutiert. Modellgetriebene Entwicklung (MDD und MDA) wird motiviert. Nicht-Funktionale Eigenschaften werden eingeführt und in Beziehung zu Architekturen gestellt. Transaktionen werden behandelt in dem das ACID-Prinzip, Concurrency Control und erweiterte Transaktionsmodelle diskutiert werden. Synchrone und asynchrone Kommunikation werden gegenüber gestellt und die Architektur entsprechender RPC Middleware und Message Queuing Middleware beschrieben. Das Konzept des APIs wird eingeführt. Basierend auf dem Vorhergehenden werden TP Monitore als auch Application Servervorgestellt. Eine detaillierte Diskussion über Hochverfügbarkeit, Skalierbarkeit, Stabilität und Konsistenz folgt. Mustersprachen werden eingeführt und ein erster Abriss über Muster von Unternehmensanwendungen sowie Muster des Cloud Computing wird gegeben.
Lose Kopplung und Nachrichten-Basierte Anwendungen (Loose Coupling and Message-Based Applications)
Der Begriff Unternehmensanwendung wird eingeführt. Darauf aufbauend wird die Notwendigkeit von loser Kopplung abgeleitet und deren Realisierung vermöge zuverlässigem Nachrichtenaustausch (reliable messaging) skizziert. Ausführlich wird dann Message-Oriented Middleware (MOM) im Allgemeinen und eine konkrete MOM Architektur im Speziellen diskutiert und JMS als wesentliches standardisiertes API präsentiert. Als nächstes werden grundlegende Integrationsstile im Überblick vorgestellt und die Sprache der Enterprise Integrations-Muster eingeführt. Anschließend wird diese Sprache im Detail besprochen: Messaging, Endpunkte, Kanäle, Nachrichten Konstruktion, Routing, Nachrichten Transformationen und Management. Das Konzept des Message Bus wird eingeführt.
Service Computing
Das Web wird aufgefasst als eine Plattform für Anwendungen, und ein Überblick über damit im Zusammenhang stehende Themen wie Semantisches Web, Cloud Computing oder Autonomes Computing stehen am Anfang der Vorlesung. Der Begriff des Services und des Service Computing wird eingeführt. Einige Web-basierte Technologien für Benutzerschnittstellen werden skizziert. HTTP wird ausführlich besprochen. Darauf aufbauend wird REST vorgestellt und eine Entwurfsmethode für REST-basierte Schnittstellen diskutiert. Ein Überblick über e-Mail und verwandte Protokolle folgt. Sodann werden SOAP, WSDL und Policy im Detail besprochen, Service Discovery Technologien werden skizziert. Die Architektur von AXIS wird vorgestellt. Agreement Protokolle und Coordination werden im Detail diskutiert. Außerdem wird die grobe Architektur eines Service Bus erläutert und die Diskussionen um Microservices und Big Web Services vs. Small Web Services kommentiert.
Geschäftsprozess Management (Business Process Management)
Die Vorlesung beginnt mit einem Überblick über die Evolution der Technologie des Geschäftsprozess Managements. Anschließend wird der Lebenszyklus von Geschäftsprozessen präsentiert und (Re-)Engineering von Geschäftsprozessen ausführlich diskutiert. Eine kurze Einführung in Petri-Netze hilft die Ausführungssemantik von BPMN zu verstehen, und BPMN wird in aller Tiefe behandelt. Als nächstes werden die grundlegenden Konzepte und architekturellen Konzepte von Workflow Management Systemen (WfMS) eingeführt. Ein Graph-basiertes Metamodel für Prozessmodelle wird diskutiert und genutzt, um wesentlichen Konzepte wie Kontrollfluss, Datenfluss oder Dead-Path Elimination formal zu definieren. Eine Diskussion transaktionaler Workflows folgt. Abschließend wird BPEL ausführlich behandelt.
Fortgeschrittene Themen des Geschäftsprozess Managements (Advanced Business Process Management)
Das Konzept des Subprozesses und die zugehörige Koordinationstechnologie werden eingeführt. Menschliche Interaktionen und Menschen-orientierte Geschäftsprozesse samt notwendiger Middleware werden im Detail diskutiert. Modellierungsparadigmen wie Pi-Kalkül als auch Workflow Patterns werden präsentiert. Anforderungen und Probleme Adaptiver Workflows werden diskutiert, und ein Überblick über Case Handlingeinschließlich CMMN wird gegeben. Die Rolle von Geschäftsprozesstechnologie beim Outsourcing wird dargestellt und Choreographien werden eingeführt. Compliance von Geschäftsprozessen wird problematisiert, und die Rolle von Prozess Mining in diesem Zusammenhang als auch dessen algorithmischen Aspekte werden dargelegt.
Cloud Computing
Die Vorlesung beginnt mit einer Darstellung der Cloud Service Modelle und der Cloud Deployment Modelle. Als nächstes werden Virtualisierung und Containerization präsentiert. Die Realisierung von Skalierbarkeit als auch von Elastizität in Cloud-Umgebungen wird dargestellt. Architekturelle Aspekte von Cloud Anwendungen, d.h. Cloud native und Cloud immigrant, werden diskutiert. Provisionierungsparadigmen und -technologienwerden im Detail präsentiert. Einige Cloud Angebote wie Amazon Web Services oder Cloud Foundry werden skizziert. Die Cloud Computing Mustersprache wird vorgestellt, einzelne der Muster werden mit der Darstellung der besprochenen Konzepte und Technologien verbunden.
Quanteninformatik
(Die Vorlesung wird nur in Deutsch angeboten.) Zunächst werden die relevanten Grundlagen der Linearen Algebra in Erinnerung gebracht. Anschließend wird das Konzept des Quantenbits (Qubit) und des Quantenregisters eingeführt. Dann werden Quantengatter und Messungen diskutiert und deren Rolle in Quantenalgorithmen erläutert. Als grundlegende Algorithmen werden Deutsch-Jozsa (Speed-up), Shor(Faktorisierung) und Grover (Suchen) vorgestellt. Ein Überlick über Quanteninformationstheorie und Quantenkryptographie wird gegeben. Die Bedeutung von Fehlertoleranz von Quantensystemen wird dargestellt. Abschließend werden NISQ Systeme skizziert.
Praktische Projekte (Hands-On Projects)
Praktische Projekte werden von Teams durchgeführt und führen an die aktuellen Forschungen des Instituts heran. Somit werden modernste Technologien verwendet, um Lösungen für konkrete Forschungsfragen beizutragen. Teilnehmer an diesen Projekten lernen somit die Spitze der technologischen Entwicklungen kennen.
Vorlesungscluster
Im Folgenden werden Cluster von Vorlesungen skizziert, die einem gemeinsamen Themenkomplex untergeordnet sind und eine kohärente Wissensbasis vermitteln.
Cluster: Integration
Dieser Cluster vermittelt vertieftes Wissen im Bereich Integrationstechnologien. Der Cluster besteht aus folgenden Vorlesungen, die idealerweise in der Reiherfolge gehört werden, die durch die Pfeile in der Abbildung angedeutet werden:
- Lose Kopplung und Nachrichten-Basierte Anwendungen
- Service Computing
- Geschäftsprozess Management (BPM)
Nach Teilnahme an diesen Vorlesungen sind die wesentlichen Technologien zur Integration von Systemen, Plattformen, Anwendungen und Organisationen verstanden.
Der Cluster kann ergänzt werden durch die Teilnahme an dem Praktischen Kurs über SOA, REST und BPM, um so praktische Erfahrungen mit dem erworbenen Wissen zu erwerben.
Cluster: Cloud
Dieser Cluster vermittelt vertieftes Wissen über die Architektur verteilter Anwendungen. Der Cluster besteht aus folgenden Vorlesungen, die idealerweise in der Reiherfolge gehört werden, die durch die Pfeile in der Abbildung angedeutet werden:
- Architektur von Anwendungssystemen
- Lose Kopplung und Nachrichten-Basierte Anwendungen
- Cloud Computing
Nach dem Besuch dieser Vorlesungen sind die wesentlichen Konzepte und Technologien hinter großskalig verteilten Anwendungen wie nicht-funktionale Eigenschaften, lose Kopplung, Architekturstile, relevante Muster als auch Aspekte von Cloud Architekturen und Cloud Plattformen verstanden.
Der Cluster kann ergänzt werden durch die Teilnahme an dem Praktischen Kurs über Cloud, um so praktische Erfahrungen mit dem erworbenen Wissen zu erwerben.
Cluster: BPM
Dieser Cluster vermittelt vertieftes Wissen über Realisierung von Geschäftsprozessen. Der Cluster besteht aus folgenden Vorlesungen, die idealerweise in der Reiherfolge gehört werden, die durch die Pfeile in der Abbildung angedeutet werden:
- Service Computing
- Geschäftsprozess Management (BPM)
- Fortgeschrittene Themen des Geschäftsprozess Managements
Nach dem Besuch dieser Vorlesungen sind die wesentlichen Konzepte und Technologien zum Management von Geschäftsprozessen über ihren Lebenszyklus hinweg verstanden. Dies umfasst insbesondere Dienste und Dienst-Kompositionen, Modellierung von Geschäftsprozessen - einschließlich Ausnahmebehandlung, Subprozesse, Choreographien -, Prozessanalyse, menschliche Interaktionen, Workflow Management Systeme und Prozess-Formalismen.
Der Cluster kann ergänzt werden durch die Teilnahme an dem Praktischen Kurs über SOA, REST und BPM, um so praktische Erfahrungen mit dem erworbenen Wissen zu erwerben.
Cluster: Systemarchitektur
Dieser Cluster vermittelt vertieftes Wissen über Systemarchitektur. Der Cluster besteht aus folgenden Vorlesungen, die idealerweise in der Reiherfolge gehört werden, die durch die Pfeile in der Abbildung angedeutet werden:
- Architektur von Anwendungssystemen
- Service Computing
- Lose Kopplung und Nachrichten-Basierte Anwendungen
- Cloud Computing
Nach dem Besuch dieser Vorlesungen sind die systemischen und technischen Grundlagen von Anwendungssystemen verstanden. Dies umfasst Architekturdiagramme und Architekturstile, den Einfluss von Middleware auf nicht-funktionale Eigenschaften, die Rolle von Diensten (sowohl im WSDL/SOAP-Stil als auch im REST-Stil), lose Kopplung und Anwendungsintegration, großskalige Effekte (wie CAP), Architekturmuster (für Hochverfügbarkeit, Stabilität usw.), als auch die Nutzung von Cloud Technologien für Architekturen von Anwendungssystemen.
Cluster: Heterogene Anwendungen
Dieser Cluster vermittelt vertieftes Wissen über Verteilte Anwendungen. Der Cluster besteht aus folgenden Vorlesungen, die idealerweise in der Reiherfolge gehört werden, die durch die Pfeile in der Abbildung angedeutet werden; die Vorlesung "Quanteninformatik" kann unabhängig von den beiden anderen Vorlesungen gehört werden:
Nach dem Besuch dieser Vorlesungen sind die systemischen und technischen Grundlagen der verteilten Anwendungen mit dem Schwerpunkt der speziellen Umgebungen eines Quantenrechners verstanden. Dies umfasst lose Kopplung und Anwendungsintegration, großskalige Effekte (wie CAP), die Nutzung von Cloud Technologien für Architekturen von Anwendungssystemen und die Verwendung von Quantenalgorithmen.
Cluster: Unternehmensarchitektur
Dieser Cluster vermittelt vertieftes Wissen über Unternehmensarchitektur. Der Cluster besteht aus folgenden Vorlesungen, die idealerweise in der Reiherfolge gehört werden, die durch die Pfeile in der Abbildung angedeutet werden:
- Architektur von Anwendungssystemen
- Geschäftsprozess Management (BPM)
- Fortgeschrittene Themen des Geschäftsprozess Managements
Nach dem Besuch dieser Vorlesungen sind die geschäftlichen und technischen Aspekte von Anwendungssystemen verstanden. Dies umschließt die Rolle des Software Architekten in Unternehmen, Architekturdiagramme, die Bedeutung nicht-funktionaler Eigenschaften für Unternehmen, die Unterstützung von Geschäftsprozessen durch Anwendungssysteme und Compliance.