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
Date | Content | Materials |
---|---|---|
2023-02-17 | Distributed Systems Architecture - Architectural Patterns - Middleware. Serialization - CBOR. | |
2023-02-24 | Serialization - protobuf. Remote Procedure Call - Sun RPC. | |
2023-03-03 | Remote Procedure Call - Java RMI (Argument Passing Transparency, Distributed Garbage Collection). | |
2023-03-10 | Remote Procedure Call - Java RMI (Threading Models) - gRPC (Interface Definition Language, Language Mappings, Stream Arguments, Asynchronous Implementation). | gRPC |
2023-03-17 | Remote Procedure Call - Thrift (Interface Definition Language, Language Mappings) - CORBA (Historical Perspective). | Thrift |
2023-03-24 | Messaging - Concepts (Messages, Queues, Topics) - JMS (Classic API, Simplified API, Sessions and Threads, Reliable Delivery, Transactions) | JMS |
2023-03-31 | Messaging - Camel (Examples) - Enterprise Integration Patterns - ZooKeeper (Architecture, Data Model, Atomicity). | EIP |
2023-04-14 | Messaging - Kafka (Architecture, Data Model, Reliable Delivery, Streams). Protocols - Concepts (Reliability, Flow Control, CongestionControl). | |
2023-04-21 | Protocols - NAT Traversal Principles. Multicast - Concepts (Membership, Reliability, Ordering). Messaging - JGroups (Architecture, Protocols). | JGroups |
2023-04-28 | Distributed Hashing - Protocols (Chord, Pastry, Kademlia, CAN) - Hazelcast (Architecture, Distributed Data Structures). | Hazelcast |
2023-05-05 | Messaging - MPI (Architecture, Addressing, Collective Communication). Shared Memory - memcached (Application). | |
2023-05-12 | Messaging - 0MQ (Architecture, API). Shared Memory - redis (Architecture, API) - etcd (Architecture, RAFT, API). Messaging - DDS (Architecture). | |
2023-05-19 | Components - Concepts (Interfaces, Contracts, Deployment) - EJB (Demo, Beans, Containers, Persistence) - OSGi (Bundles, Versioning, Dependencies). | |
N/A | Communication - Web Services (SOAP, WSDL, BPEL) - REST (Concepts, Interface Description). Deployment - Docker (Images, Containers, Namespaces, Swarms) - Kubernetes (Pods, Deployments, Services) - Concepts (CI/CD, Gradual Deployment). |