Yesterday I managed a one-day workshop on dichotomies in designing distributed systems, for 25 master students in the class “Designing for Systems”. The dichotomies addressed were standalone/distributed, centralized control/decentralized control, and process-/product-oriented design, as well as a hidden agenda for the conflicts between standards and implementations. In this workshop I wanted the student to “experience” the dichotomies Instead of me telling the story.
Two types of distributed systems were focused on, client/server and peer to peer. Students were divided into four groups, one working on C/S, two on P2P and another on standardization of data and communication. They are briefed and quickly pushed into hands-on work to make a few AdMoVeo robots to dance together, in a distributed setting.
The workshop worked out quite well in terms of its designed goals, and actually it was beyond my expectations – I did not expect that robots would really dance together, but at the end of the day, all the teams managed to show something, at least partially working. One of the other things surprised me was the difficulties they had in creating and parsing XML documents, which was suggested for saving time from standardizing the data and message formats. I could have made some partially working code snippets to reduce the load.