Avatar

Prof. Dr. René Wörzberger

Professor of Software Architectures and Systems

University of Applied Sciences TH Köln

Biography

Since 2017, I work as a professor in the field of software architectures, software systems, and software engineering. Prior to that, I have worked as an IT architect and project manager at Deutsche Post DHL Group and NTT Data.

Interests

  • Software Architectures
  • Large-scale Web Applications
  • Software Engineering
  • Cloud Computing

Education

  • PhD in Computer Science, 2010

    RWTH Aachen University

  • Diploma in Computer Science, 2004

    RWTH Aachen University

Recent Posts

Experience

 
 
 
 
 

Professor

University of Applied Science TH Köln

Mar 2018 – Present Cologne, Germany

Teaching and research in the field of

  • Software Architectures
  • Software Engineering
  • Cloud Computing
 
 
 
 
 

Professor

University of Applied Science HSD

Sep 2017 – Feb 2018 Düsseldorf, Germany
Taught software engineering
 
 
 
 
 

IT Architect and Project Manager

Deutsche Post DHL Group

Jul 2014 – Jun 2017 Bonn, Germany

Responsibilities included

  • Architecting large-scale web applications
  • Project management
 
 
 
 
 

IT Architect

NTT Data Deutschland

Feb 2010 – Jun 2014 Cologne, Germany

Responsibilities included

  • Lead developing and architecting web applications
  • Acting as Scrum Master
  • Developing and operating continuous integration pipelines
 
 
 
 
 

PhD Student and Lecturer

RWTH Aachen

Jan 2005 – Dec 2009 Aachen, Germany

Responsibilities included

  • Researching in the field of business process management systems
  • Giving lectures in software engineering
  • Acquiring funding

Teaching

I give/gave diverse lectures and lab courses at Technische Hochschule Köln dealing with software architectures, software engineering and cloud computing.

Software Management in Computer Science & Engineering (Bachelor’s program) including topics like

  • Git Deep-Dive
  • Test Automation with JUnit, Mockit, Selenium and JMeter
  • Continuous Integration with GitLab
  • Cloud Computing with Google Cloud
  • Container Virtualization with Docker
  • Container Orchestration with Kubernetes

System Design Lab Course in Computer Science & Engineering (Bachelor’s program) including topics like

  • End-to-end software development process in small teams
  • Source-code management and issue tracking with GitLab
  • Documentation with AsciiDoc

Large and Cloud-based Software Systemes in Computer Science & Engineering (Master’s program) including topics like

  • Software Systems: definition and some basic terms
    • Stakeholders: The whole plethora of stakeholder groups and their numerous interests in large projects.
  • Quality Attributes
    • Performance: What makes my system slow? What workload do I have to deal with? Why is often latency a bigger problem than throughput? Why is it bad idea to fully utilize my system? How can I scale my system?
    • Dependability: How can I increase my system’s availability? How can I make my system resilient to faults? Why do I have to trade availabilty for consistency and vice versa?
    • Quality Attribute Maintainabilty: What is maintainability? What fundamental cognitive mechanism drive the perception of a code base’s maintainability?
    • Security: How can I describe security properties? What are aspect of security? What are common threats for (web based) systems?
  • Design
    • Trade-offs: Why is there no silver bullet?
    • Requirements: How can I formulate quality requirements?
    • Principles: Which fundamental principles govern architectural design?
    • Patterns: How should I distribute my system? How do systems and their parts communicate?
  • Technology
    • Middleware: What standard components constitute a contemporary large cloud-based web application? What are load balancers, inbound gateways, caching services, data warehouses, message queues, identity provides etc.?
    • Cloud Computing: What kinds of cloud offerings do we have to deal with? How do we create a infrastructure in the cloud for a large scale web application?
    • Virtualization: What are virtual machines and containers, how do they differ and what are the trade-offs?
    • Web: How do HTTP as the fundamental protocol of the world-wide web, its applications like GraphQL and related protocols like WebSockets and gRPC work? How can web applications be secured by means of Transport Layer Security (TLS) for encryption and server (and client) authentication, OAuth 2 for authorization, and OpenID Connect for user authentication?
    • Messaging and Streaming: What do message queues, brokers and streaming platforms like Apache Kafka do?
    • Web Security: How to make communication and interaction in web applications confidential, authentic and integrous? What are common threats and methods? What are hash functions, symmetric and asymmetric ciphers? What is encryption and signing? How do Transport Layer Security (TLS), Open Authorization (OAuth2), and OpenID Connect (OIDC) work?
    • Persistence: What kind of (No)SQL databases do we have and what are their trade-offs (relational, document, key-value, graph)? How does scaling work in the database world? How much consistency do I need?

Programming Basics (Praktische Informatik) in Computer Science & Engineering (Bachelor’s program) in a one-term substitution including topics like

  • Java type system and object-oriented programming
  • Dynamic data structures
  • Java IO
  • Java UI programming / event driven programming

Client Server Basics in study program “Code & Context” (Bachelor’s program)

  • Web fundamentals and front-end programming (HTML, CSS, Javascript etc.)
  • Backend-Programming with Java, Spring, SQL and NoSQL databases

DevOps in study program “Code & Context” (Bachelor’s program)

  • Git Deep-Dive
  • Linux
  • Networking
  • Container Virtualization and Orchestration
  • Cloud Computing

Trustable Applications in study program “Code & Context” (Bachelor’s program)

  • Security basics: common threats and methods
  • Cryptographic basics: hash functions, symmetric and asymmetric encryption and siging
  • Transport Layer Security (TLS)
  • Open Authorization 2 (OAuth2)
  • Open ID Connect (OIDC)

Community and Reflection in study program “Code & Context” (Bachelor’s program)

Projects

Adaptable and Human-Centered Environment for the Administration of Development Processes

Within the collaborative research center IMPROVE (SFB 476), the AHEAD project aims at building a universal administration system for …

Dynamic Process Management Based Upon Existing Systems

The subproject T6 of the Transferbereich 61 follows the former subproject B4 of the SFB 476 IMPROVE. The aim of the project T6 is to …

Publications

DYPROTO – tools for dynamic business processes

In this article, we present research results about tools for supporting dynamic business processes. This research work has been conducted in a three-year cooperation between our department and an IT service provider for insurance companies. Our partner’s process management system (PMS) is rather aligned with static processes, whose structure is not changed at process run time. Therefore, we contribute an approach for obtaining dynamic process execution support based on this static PMS by automatically augmenting existent WS-BPEL process definitions and run time data. Dynamically changeable processes are presented to process participants as graphical models by a process model editor. This editor aids process participants with performing dynamic changes inasmuch as it is aware of explicit and implicit technical and professional process knowledge and detects violations against this knowledge in dynamically changed process instance models. We delineate how explicit process knowledge can be graphically modelled and exploited in automatic checks using OCL-constrained and integrated meta-models. Checks versus explicit knowledge are complemented by checks versus implicit knowledge which is contained in other process definition and process instance models. These checks include process similarity computations based on graph grammar formalisms and tools.

Support for modeling an monitoring of engineering design processes

Engineering design processes are highly complex and dynamic inasmuch unforeseen changes occur frequently at process runtime. In this paper we present the process management system PROCEED that aids process managers and process participants in planning and enacting the work processes in plant design projects. It is based on the commercial lifecycle engineering tool Comos. PROCEED exceeds the state of the art in process management in several ways. The models used to represent running design processes incorporate aspects of project plans and workflow instances to reflect the current planning and execution states of work processes. Workflow definitions are used to define best practices for repetitive process parts and are enacted to guide process participants. PROCEED ensures consistent changes of process models even at process runtime. A process manager can resort to numerous progress measures in order to get exact quantitative information about the performance of a process.

Management dynamischer Geschäftsprozesse auf Basis statischer Prozess-Managementsysteme (Dissertation)

In dieser Arbeit wird ein Prozessmanagementsystem beschrieben, das auch dynamische Prozesse unterstützt. Dynamische Änderungen können von Prozessbeteiligten über strukturelle Änderungen an Modellen bereits laufender Prozesse durchgeführt werden.

Contact

  • Betzdorfer Str. 2, 50679 Köln (Cologne)
  • room ZN-06-07 (6th floor, heading north)
  • Tuesday 14:45 to 15:45
  • Skype
  • WhatsApp