Abstract—As distributed systems become more complex, understanding
the underlying algorithms that make these systems
work becomes even harder. Traditional learning modalities based
on didactic teaching and theoretical proofs alone are no longer
sufficient for a holistic understanding of these algorithms. Instead,
an environment that promotes an immersive, hands-on
learning of distributed system algorithms is needed to complement
existing teaching modalities. Such an environment must be
flexible to support learning of a variety of algorithms. Moreover,
since many of these algorithms share several common traits with
each other while differing only in some aspects, the environment
should support extensibility and reuse. Finally, it must also allow
students to experiment with large-scale deployments in a variety
of operating environments. To address these concerns, we use
the principles of software product lines (SPLs) and model-driven
engineering and adopt the cloud platform to design an immersive
learning environment called the Playground of Algorithms for
Distributed Systems (PADS). The research contributions in PADS
include the underlying feature model, the design of a domainspecific
modeling language that supports the feature model, and
the generative capabilities that maximally automate the synthesis
of experiments on cloud platforms. A prototype implementation
of PADS is described to showcase a distributed systems algorithm
illustrating a peer to peer file transfer algorithm based on
BitTorrent, which shows the benefits of rapid deployment of the
distributed systems algorithm.
|