Materials
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.
Schedule
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). |