BSH CSD4 Distributed Systems Assignment Project


BSH CSD4 Distributed Systems Assignment Project

This project is to be done individually.


The purpose of this project is to gain experience in designing and building distributed systems. You will be expected to demonstrate that your solution meets the objectives set out in this document.

The Problem

Develop a set of protocols/messages and build a reference implementation of devices in a smart environment. Your devices must publicise themselves and discover each other using Zeroconf, and they should communicate via gRPC. Two programming languages must be used to develop your solution. One of the languages should be Java.

You should begin by devising your own scenario. You can choose any smart environment. For example, a smart home, a smart office (printers, faxes, PCs), a smart meeting space (projector, laptops, PDAs, mobile phones) or a smart hospital (PDAs, table-style PCs, medicine containers, location trackers). In the above example each services provider i.e. projector can be thought of as an “entity”.

There must be a minimum of 4 separate services that would simulate operations with your smart environment. It is key to specify what operations are supported on each “service/device”, for example it would be sensible for a projector to support on/off function, a get state function, and a change input function (e.g. VGA, HDMI). Perhaps a media player function would support function to retrieve all playable files, and a corresponding play method, among others.  BSH CSD4 Distributed Systems Assignment Project

To demonstrate your implementation a simple GUI with devices and controllers should be built. 


Report A short report which details the scenario, and services, you have chosen. Additionally, this should specify the message formats for data exchange and service actuation. The report must have all the headings of the marking scheme, if not you get ZERO for the report. Also, for example if you do not have a section on “Remote Error Handling” I won’t go looking for your remote error handling in the code. You have to tell me what you did for those marks.

Program Code 

A project, or more than one, with all code, well commented. Code must also be available in a private GitHub repository, the repo must have a commit history, not a last-minute code dump.

Marking Scheme

  • Report (5%)
  • Implement 4 sufficiently complex services. Validate inputs (40%)

o One service must be written in a language other than Java. [10%]

o The other three services should be written in Java. [3 * 8 = 24%]

o A service that invokes one of the other implemented services in order to provide its functionality [6%]

  • Use of jmDNS (20%)
  • Use of gRPC (20%)

o For each of the 4 different services/devices a corresponding proto file is defined and used

o All 4 different types of RPC invocation styles have been used (simple RPC, server-side streaming RPC, client-side streaming RPC, bidirectional streaming RPC)

o Appropriate and different message structures and field types are used

  • Remote Error Handling (5%)

o appropriate error handling for remote invocations and error messaging

  • GUI (5%)

o That allows to view (e.g., present, discover), control (parameters) and invoke the services/devices

o The GUI can be developed in any language, technology of choice (Java application, web based, etc)

  • GitHub (5%)

o Maintain a repo with a regular commit history

  • [optional] discover & connect to a real/physical device (extra 10%)

o like a mobile phone, printer etc

BSH CSD4 Distributed Systems Assignment Project

Need Help with a similar Assignment?

The post BSH CSD4 Distributed Systems Assignment Project appeared first on EssayPanthers.


Source link

"Looking for a Similar Assignment? Get Expert Help at an Amazing Discount!"

Hi there! Click one of our representatives below and we will get back to you as soon as possible.

Chat with us on WhatsApp