The examples demonstrated throughout the course are available in a GitHub repository. For quick reference, the course slides are available as HTML or PDF, the course notes are likewise available as HTML or PDF. Both the slides and the notes are quite brief, please consult the references in the notes for further information.


This information is valid for the summer semester of 2019/2020. Updates for 2020/2021 will be posted at the start of the next summer semester.

Date Content Materials
2020-02-21 Distributed Systems Architecture - Architectural Patterns - Middleware.
2020-02-28 Serialization - protobuf. Remote Procedure Call - Sun RPC - Java RMI.
2020-03-06 Remote Procedure Call - Java RMI (Server Threading Models, Argument Passing Transparency, Distributed Garbage Collection) - CORBA (Interface Definition Language).
2020-03-20 Remote Procedure Call - CORBA (Language Mappings, Object Adapter Policies, Asynchronous Invocation) - gRPC (Interface Definition Language, Language Mappings). Review: Before class
2020-03-27 Messaging - Concepts (Messages, Queues, Topics) - JMS (Classic API, Simplified API, Sessions and Threads). Review: Before class
2020-04-03 Messaging - JMS (Reliable Delivery, Transactions) - ZooKeeper (Architecture, Data Model, Atomicity) - Kafka (Architecture).
2020-04-17 Messaging - Kafka (Data Model, Reliable Delivery, Streams). Multicast - Concepts (Membership, Reliability, Ordering). Review: Before class
2020-04-24 Messaging - JGroups (Architecture, Protocols). Distributed Hashing - Protocols (Chord, Pastry, Kademlia, CAN) - Hazelcast (Architecture, Distributed Data Structures). Components - Concepts (Interfaces, Contracts, Deployment) - EJB (Beans, Containers).
2020-05-15 Components - EJB (Demo, Beans, Containers, Persistence) - OSGi (Bundles, Versioning, Dependencies) - Felix (Annotations). Communication - Web Services (SOAP, WSDL, BPEL) - REST (Concepts, Interface Description). Deployment - Docker (Images, Containers, Namespaces, Swarms) - Kubernetes (Pods, Deployments, Services) - Concepts (Gradual Deployment).