Open Educational Resource (OER) presentations as part of a module on Communication and Collaboration Systems
1 What is this?
This page collects OER presentations (see here for generated presentations if you currently read the README) to be used for sessions on distributed systems as part of a module on Communication and Collaboration Systems (CACS) at the University of Münster, Germany, in summer 2020.
Following a classical textbook on distributed systems by Coulouris et al. (see presentation on Distributed Systems for full reference), an IT system is a distributed one if it contains several components on networked computers that communicate and coordinate their actions by passing messages. In times of so-called smart devices and the Internet of Things, distributed systems surround us, shape how we communicate and collaborate, how we work, how we live.
Distributed systems can be classified into centralized and decentralized ones. The former are controlled by one company or organization, while the latter consist of multiple sub-systems that are controlled independently but still serve a common goal. The presentations here offer an introduction to distributed systems and their fundamental technical infrastructure, namely the Internet, and provide examples of decentralized distributed systems, namely Web and E-Mail as well as Git.
I’d like to share thoughts which may explain some of my choices for this course and beyond. We as tech-savvy people, particularly in disciplines such as Information Systems and Computer Science, find ourselves in a unique position to shape the digital future. We can either allow others to control the devices, software, and services that we use for communication and collaboration (which may be called self-incurred immaturity), or we may strive to gain control over larger parts of our lives.
I hope that my presentations and examples for decentralized systems provide enlightening pointers.
1.1 Why Git?
In 2020, I’ll start my part on distributed systems with Git, and I hope to provide hands-on experience with Git in a somewhat realistic setting with group exercises. Here is why.
Version control is a fundamental technique. I suggest to learn it simultaneously to (digital) writing. Unfortunately, that view does not seem to be very popular (yet?).
I use Git not only for collaboration but also for individual organization, e.g., to keep track of the history of certain documents and thoughts, to synchronize my environment among different devices (e.g., PC at work with PC at home with notebook), to develop OER such as this one in a powerful CI/CD pipeline on GitLab. Importantly, with Git I can control those environments without needing to use (and, by network effects, to endorse) companies “out there in the cloud”, whose legal terms are frequently unacceptable.
Besides, Git is a de-facto industry standard for software engineering. I find the idea of GitOps as path to more self-service IT highly appealing.
I learned about Git much too late. You are younger than I was when I started (well, my students in Münster usually are), so you are at a clear advantage. Use it.
1.2 Distributed Systems with Git on GitLab
If you are teaching or learning Distributed Systems, feel free to use, share, and adapt my presentations. As usual for projects on GitLab, you can open issues (GitLab documentation on issues) to report bugs or suggest improvements, ideally with merge requests (GitLab documentation on merge requests).
Presentations make use of the HTML presentation framework reveal.js.
Note: Presentations linked here are generated automatically from their source files. They are updated throughout the term (and thereafter). The PDF versions provided below are generated via LaTeX from Org source files.
3 Source code and licenses
In the spirit of
Open Educational Resources
(OER), source files, necessary software, and presentations are published in this GitLab repository
under free licenses.
All OER presentations are created from plain text files in a simple text
format called Org Mode (a
lightweight markup language),
focusing on content, while layout is defined separately.
Importantly, the separation of content and layout
simplifies collaboration across organizational boundaries, and the use
of a simple text format enables comparisons of adapted or enhanced
Using the free software emacs-reveal these text files are translated into reveal.js HTML presentations, which can be viewed on (almost) any device with a Web browser. In times of dragnet surveillance and surreptitious as well as blatant data brokerage I recommend the Firefox variant Tor Browser as tool for digital self-defense (here in English and here in German); presentations work for me under the higher-than-default “Safer” security settings in Tor Browser.