Ziele und Curriculum

IAAS 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 ähnlichen 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 sich 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 sich 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 Bausteine solcher Dienste. Somit befasst sich das IAAS auch mit dem Internet der Dinge (IoT - Internet of Things) und Cyber-Physikalischen Systemen (CPS).

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 Patterns (Muster) und Pattern Languages (Mustersprachen). Mehrere Mustersprachen sind am IAAS entstanden. Auch Mustersprachen an sich sind ein eigenständiger Forschungsgegenstand.

Schließlich sind eine Reihe von Anwendungsbereichen von großem Interesse wie etwa Simulationstechnologie, eScience, Digital Humanities 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.

IAAS Courses

Gestrichelte Linien bedeuten, dass die betreffende Veranstaltung ergänzender Natur ist, d.h. sie ist nicht zentral, hilft aber dem vertieften Verständnis des gesamten Bereichs, dem sich das IAAS widmet.

Im Folgenden werden die einzelnen Veranstaltungen von unten (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 Architekturdiagramme und 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 Server vorgestellt. 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 wesentliche 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 Handling einschließ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 Process 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 -technologien werden 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.

Praktische Kurse (Practical Courses)

Die praktischen Kurse finden im Labor mit konkreter Technologie statt. Programmieraufgaben werden gestellt, die von den Teilnehmern bearbeitet und gelöst werden sollen. In unregelmäßigen Abständen werden praktische Kurse zum einen zu dem Themenkomplex Cloud und zum anderen zum Themenkomplex REST, SOA, BPM angeboten.

IT Strategie (IT Strategy)

(Die Vorlesung wird nur in Deutsch angeboten.) Nach der Klärung des allgemeinen Begriffs "Strategie" werden Unternehmensstrategie und IT Strategie eingeführt. Ein Vorgehensmodell zur Entwicklung solcher Strategien wird präsentiert und an konkreten Use Cases erläutert. Die Beziehung zwischen ITIL und CoBIT wird dargestellt. Im Detail werden Prozesse für Organisationsentwicklung, IT Sourcing, Architekturmanagement, Qualitätsmanagement, Risikomanagement und IT Entwicklungspläne diskutiert. Entsprechende Werkzeuge werden präsentiert. IT Portfoliomanagement und IT Metriken vervollständigen die Vorlesung.

Systems Management

Diese Vorlesung besteht im Wesentlichen aus einer Reihe von Vorträgen von Praktikern aus der Industrie. Entsprechend werden die Inhalte durch aktuelle Themen der Industrie bestimmt. Die Vorträge werden durch umklammernde Vorlesungen zu Beginn und zum Schluss zum allgemeinen Thema der Vorlesung positioniert.

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 Kombination von Vorlesungen ("Cluster") 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 Reihenfolge gehört werden, die durch die Pfeile in der Abbildung angedeutet werden:

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.

IAAS Courses

Cluster: Cloud

Dieser Cluster vermittelt vertieftes Wissen über die Architektur verteilter Anwendungen. Der Cluster besteht aus folgenden Vorlesungen, die idealerweise in der Reihenfolge gehört werden, die durch die Pfeile in der Abbildung angedeutet werden:

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.

IAAS Courses

Cluster: BPM

Dieser Cluster vermittelt vertieftes Wissen über Realisierung von Geschäftsprozessen. Der Cluster besteht aus folgenden Vorlesungen, die idealerweise in der Reihenfolge gehört werden, die durch die Pfeile in der Abbildung angedeutet werden:

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.

IAAS Courses

Cluster: Systemarchitektur

Dieser Cluster vermittelt vertieftes Wissen über Systemarchitektur. Der Cluster besteht aus folgenden Vorlesungen, die idealerweise in der Reihenfolge gehört werden, die durch die Pfeile in der Abbildung angedeutet werden:

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.

IAAS Courses

Cluster: Unternehmensarchitektur

Dieser Cluster vermittelt vertieftes Wissen über Unternehmensarchitektur. Der Cluster besteht aus folgenden Vorlesungen, die idealerweise in der Reihenfolge gehört werden, die durch die Pfeile in der Abbildung angedeutet werden:

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, Compliance, Entwicklungsstrategien sowie Methoden solcher Strategien.

IAAS Courses