Goals and Curriculum

Presentation of the basic research competencies of the Institute for Architecture of Application Systems (IAAS) and the lectures offered by the IAAS.
The lectures are motivated by the research competences of the IAAS.

Goals and Cirriculum

IAAS Curriculum

In the following, the charter of the Institute of Architecture of Application Systems (IAAS) and the courses offered by the institute are discussed. Several clusters of courses emphasizing different foci are recommended.

These courses are motivated by the charter of IAAS that is sketched next.

Charter of IAAS

The term application system denotes a piece of software supporting one or more core business activities of an enterprise. Typically, such a system

  • covers essential parts of the business activities of an enterprise,
  • processes large amounts of persistent data,
  • enables a huge amount of users to operate concurrently with the system, and
  • exchanges information with other systems.

An application system directly supports the business activities of an enterprise. Thus, it must satisfy strong requirements in terms of non-functional properties like availability, scalability, resiliency, and performance.

IAAS is concerned with the architecture of such enterprise systems, i.e. their underlying structure: What kind of building blocks and connections between them are needed to build such a system and guarantee its non-functional properties? In this context, IAAS is focussed on middleware, i.e. what kind of middleware is needed in the componentry of an architecture of an application system, and how is such middleware used properly. Another concern are proper paradigms to model and specify application systems as well as their compliance with non-functional properties.

In order to enable proper support of the various business activities of enterprises, IAAS investigates the role of business processes in application systems. Both, proper modeling of business processes as well as middleware needed to support them (so-called workflow systems or process management systems) is discussed. Business processes are considered as programs in the large, and the composition of applications via business processes is investigated in terms of functionality as well as non-functional properties.

To support data exchange between application systems, IAAS is focussing on messaging systems (message queuing, publish/subscribe) and service technologiesService-oriented computing (SoC) and Service-oriented Architecture (SOA) are studied in general, specific service technologies like Web Services and REST-based systems are investigated in particular.

To support the operational requirements of application systems like automatic provisioning and deployment as well as automatic management, the use of Cloud Computing, as well as proper cloud middleware and cloud technologies, is investigated. Application topologies and corresponding modeling languages are of particular interest.

More and more, services are not only realized by software or human beings but also sensors and actuators have to be involved. Thus, IAAS is also concerned with the Internet of Things (IoT) and cyber-physical systems (CPS).

Applications of quantum technology become more and more important in practice. IAAS investigates use cases of quantum computers and architectures for including quantum software in application systems. Also, supporting "traditional" programmers in creating quantum algorithms is a research area.

Transaction models are discussed to ensure the robustness of application systems. In addition, IAAS studies optimization-potentials of application systems in general, and of business processes in particular.

To support the transfer of research results into practice, IAAS has a special focus on patterns and pattern languages. Several pattern languages have been proposed by IAAS. Furthermore, pattern languages themselves are a research focus on its own.

Finally, several application domains are of high interest at IAAS like simulation technologyeScienceDigital HumanitiesBlockchain-based systems, and manufacturing systems.

This whole spectrum of topics is reflected in both, the research projects as well as the various courses offered by IAAS.

The Course Spectrum

The following figure shows the courses provided by IAAS. The layering of the courses from bottom to top is a first indicator of the sequence the courses should be taken - more details below.

Dashed lines mean that these courses are not mandatory to any of the course clusters below. Nevertheless, they should be considered to complete the understanding of the overall subject area of IAAS.

The following is a sketch of all courses from the bottom (i.e. basic courses) to the top (i.e. more specialized courses).

Modeling

Conceptual data modeling as well as logical data modeling is covered. Conceptual data modeling is introduced via the Entity-Relationship model, logical data modeling by explaining the relational model of data. The latter includes SQL and normalization theoryTransformations from entity-relationship models as well as XML schema is discussed. Next, UML diagrams for modeling the static as well as the dynamic aspects of software systems is presented. The concept of metamodeling is discussed and ontology modeling is sketched. Petri nets and their analysis is covered, and BPMN for specifying process models is introduced.

Architecture of Enterprise Applications

The notion of an architect as well as the architecture of application systems is discussed. Based on this, the architectural diagrams and architecture description languages (ADLs) are introduced, and different architectural styles are discussed. Model-driven engineering of software is motivated. Non-functional properties are introduced and related to architectural modeling. Transactions are covered by discussing the ACID paradigm, concurrency control, and advanced transaction models. Synchronous, as well as asynchronous communication, is discussed along with RPC middleware and message queuing middleware. The concept of APIs is introduced. Based on the before, TP monitors, as well as application servers, are presented. A detailed discussion of high availabilityscalabilitystability, and consistency follows. Pattern languages are introduced, and a first sketch of patterns of enterprise applications, as well as cloud computing patterns, is given.

Loose Coupling and Message-Based Applications

The notion of enterprise application is introduced. Based on this the need for loose coupling is derived and its realization via reliable messaging sketched. Message-oriented middleware (MOM) and a sample MOM architecture are discussed in detail, and JMS as a supporting standard API is presented. Next, basic integration styles are outlined and a survey of the enterprise integration pattern language is given. This language is then discussed in depth: messaging, messaging endpoints, message channels, message construction, message routing, message transformation, message management. The concept of a message bus is sketched.

Service Computing

The Web is presented as a platform for applications, and an overview of related trends like the Semantic Web, Cloud Computing, or Autonomic Computing is given. The notion of a service and service computing is introduced. Some Web-based user interface technologies are briefly sketched. HTTP is discussed in detail. Based on that, REST is introduced and a design method for REST-based interfaces is presented. An overview on e-mail related protocols is given. SOAPWSDL and Policy are introduced extensively, service discovery is touched. Axis is briefly sketched. Agreement protocols and coordination are discussed in depth. Finally, the overall architecture of a service bus is portrayed, ongoing discussions like microservicesbig vs small Web Services are commented on.

Business Process Management

An overview of the evolution of business process management technology begins the lecture. The business process management lifecycle is presented and business process (re-)engineering is discussed in depth. A quick introduction into Petri nets is given to understand the execution semantics of BPMN, and BPMN is discussed extensively. Next, the basic concepts and architectural aspects of workflow management systems (WfMS) are introduced. A graph-based metamodel for process models is discussed and used to formally define key concepts like control flowdata flow, and dead-path elimination. A discussion of transactional workflows follows. Finally, BPEL is presented in detail.

Advanced Business Process Management

The concept of subprocesses and corresponding coordination technology is introduced. Human Tasks and human-oriented processes, as well as corresponding middleware, is discussed in detail. Advanced modeling paradigms like pi-calculus as well as workflow patterns are presented. Requirements and problems of adaptive workflows are discussed, and an overview of case handling including CMMN is given. The role of business process technology in outsourcing and especially choreographies are introduced. Process compliance is covered, and the role of process mining including its algorithmic aspects is revealed.

Cloud Computing

A description of Cloud Service- and Deployment Models begins the lecture. Next, virtualization, as well as containerization, is presented. The realization of scalability, as well as elasticity in cloud environments, is revealed. Architectural aspects of cloud applications, i.e. cloud native and cloud immigrant are discussed. Provisioning paradigms and technology is presented in detail. Several cloud offerings, like Amazon Web Services or Cloud Foundry, are sketched. The cloud computing pattern language is presented, the individual patterns of which are interwoven with the presentation of the concepts and technologies of the lecture.

Quantum Computing

(The course is given in German.) Relevant foundations from linear algebra are reminded. Next, the concept of a quantum bit (qubit), as well as a quantum register, is introduced. Quantum gates and measurements are discussed and their role in quantum algorithms explained. The fundamental algorithms of Deutsch-Jozsa (speedup), Shor (factorization), and Grover (search) are presented. An overview of quantum information theory as well as quantum cryptography is provided. The importance of fault tolerance of quantum systems is revealed. Finally, NISQ systems are sketched.

Hands-On Projects

Hands-on projects are performed in teams and are oriented on actual research projects of the institute. Thus, state-of-the-art technology will be used to contribute to solutions for concrete research problems. Participants in such projects work at the forefront of technology.

Course Clusters

The following sketches clusters of courses that fit together under a common theme and provide a coherent set of skills.

Integration Cluster

This cluster provides integration skills; it consists of the following lectures, ideally to be taken in the order indicated by the arrows in the figure:

After attending these lectures, the major technologies to integrate systems, platforms, applications, and organizational units are understood.

This cluster may be extended by attending the practical course on SOA, REST, and BPM, which will add practical experiences to the acquired skill set.

Cloud Cluster

This cluster provides distributed application architecture skills; it consists of the following lectures, ideally to be taken in the order indicated by the arrows in the figure:

After attending these lectures, the major concepts and technologies behind large-scale distributed applications like non-functional properties, loose-coupling, architectural styles, relevant patterns as well as cloud architectural concerns and cloud platforms a are understood.

This cluster may be extended by attending the practical course on cloud, which will add practical experiences to the acquired skill set.

BPM Cluster

This cluster provides business process skills; it consists of the following lectures, ideally to be taken in the order indicated by the arrows in the figure:

After attending these lectures, the major concepts and technologies relevent to manage business processes along their complete lifecycle are understood. This includes services as well as service composition, proper process modeling - including exception handling, subprocesses, choreographies -, process analysis, human tasks, workflow management systems, and process formalisms.

This cluster may be extended by attending the practical course on SOA, REST, and BPM, which will add practical experiences to the acquired skill set.

Systems Architect Cluster

This cluster provides system architecture skills; it consists of the following lectures, ideally to be taken in the order indicated by the arrows in the figure:

After attending these lectures, the systemic aspects and technical underpinnings of application systems are understood. This includes architectural diagrams and styles, the impact of middleware on non-functional properties, the role of services (both, WSDL/SOAP style and REST style), loose-coupling and application integration, large-scale effects (like CAP), architectural patterns (for high-availability, stability etc), as well as the proper use of cloud technologies for suitable architectures of application systems.

Heterogeneous Applications Cluster

This cluster provides detailed skills in the area of heterogeneous applications; it consists of the following lectures, ideally to be taken in the order indicated by the arrows in the figure; the lecture "Quantum Computing" can be taken independently from the other lectures:

After attending these lectures, the systemic aspects and technical underpinnings of heterogeneous applications with a focus on the special environment of a quantum computer are understood. This includes loose-coupling and application integration, large-scale effects (like CAP), the proper use of cloud technologies for suitable architectures of application systems as well as the use of quantum algorithms.

Enterprise Architect Cluster

This cluster provides enterprise architecture skills; it consists of the following lectures, ideally to be taken in the order indicated by the arrows in the figure:

After attending these lectures, the business aspects and technical underpinnings of application systems are understood. This includes the role of a software architect in an enterprise, architectural diagrams, the importance of non-functional properties for an enterprise, how business processes are supported by application systems and compliance aspects.

To the top of the page