Research

The goal of the enterprise computing center (ECC) is to rethink the design and architecture of large-scale software systems in order to make these systems more flexible, more performant, and cheaper. Specifically, the ECC looks at new business and application requirements as well as new technology trends and tries to simplify the systems stack and algorithms and data structures used according to these requirements and trends. In the projects, we consider the following requirements, trends, and developments in the systems stack:

Business and application requirements

Predictability

The cost and performance of software systems must become predictable. Predictability is more important than achieving best performance at all times.

Low cost

Development and more importantly deployment must become cheaper every year for the same workload. Ideally, no investment is necessary and costs grow linearlywith the business.

Performance

The response time and throughput goals must be met. The systems must be able to adapt to peaks and skew in the workload.

Flexibility

It must be possible to constantly change and customize an application. It must be possible to maintain and operate several variants of an application.

Technology Trends

  • Hardware: Modern hardware involves many new components at various levels; e.g., large main memories, flash, containers of machines, multi-core processors, cell processors, FPGAs, programmable NICs. In all, hardware becomes increasingly heterogeneous.
  • Software: Modern software systems become increasingly complex. Service-oriented architectures become predominant.

System Stack

The ECC considers the entire system stack and is not afraid to take radically different paths. Concretely, the following components are studied individually or in a wholistic way:

  • Network, operating system, database system, data stream system, middleware (app server, queues, pub/sub, ...), application server.
  • We look at architectures (i.e., APIs between layers, removing layers), models (e.g., configuration, programming), and efficient algorithms.