Labs will be used to give 5 assignments throughout the semester. By solving the assignments, you will obtain points which will determine your grade.

Each assignment will use a particular middleware technology. A simple introductory example will be provided. The task will be to implement a program using the middleware technology.

Optionally, we can agree on individual assignments on the topic of your choice. The assignment has to be approved in advance, before the examination period. Solutions will be expected by the end of the summer examination period. Contact the lab assistant for details.


To complete the course, you need to:

  • Get at least 25 points from the assignments.
  • Present at least one of your solutions to the lab teacher (in person or an individual online meeting).

The number of points determines the final grade:

  • 45-50 points: 1,
  • 35-44 points: 2,
  • 25-34 points: 3.

To get points from an assignment:

  • Either attend the lab where the task is announced in person or complete the lab activity on the same day.
  • Before submitting the task solution, complete the lab activity:
    • Install the required software and run the introductory example program.
    • Show that you were able to do that, by sending a program output or connecting to our servers with the program (there will be specific instructions).
  • Submit your solution at least 24 hours before the next lab.
    • You will receive points based on the quality of your solution.
    • You can fix any problems pointed out in the solution until the extended deadline, for half the points.

If you miss a deadline:

  • If you do not attend a lab and do not submit the activity on the same day, you have to present your solution (in addition to the one required by default).
  • Solutions submitted between the standard and extended deadline are worth half the points.
  • There will be a 10-hour tolerance for a single deadline that you miss.

AI Assistant Policy

It is forbidden to use AI assistants like ChatGPT or Copilot to complete the assignments unless stated otherwise. This is because the goal of the assignments is to explore a particular technology and iterate on your code until you have a working solution so that you learn the principles. Therefore, having the code generated by an AI assistant defeats this purpose.


Before each lab, pull the assignment from the upstream repository. Submit all solutions to a fork of the upstream created for you in the faculty GitLab. Include a description of the solution, build instructions, and all necessary source files. Do not include generated files and external libraries. You have to tag your solution with done-01 to done-05 as appropriate and push the tag. To submit a solution in the extended deadline, tag it with extended-01 to extended-05.

We will commit an evaluation of the solution in your GitLab repository. Only appropriately tagged solutions are graded. You can also check the points achieved so far in SIS - study group roster.


Topic Labs
Thursday 9:00
Assignment deadline
Wednesday 9:00
Extended deadline
Wednesday 9:00
01 – gRPC
Examples, Lab activity, Assignment
March 7th March 20th April 3rd
02 – RMI
Examples, Lab activity, Assignment
March 21th April 3rd April 17th
03 – JMS
Examples, Lab activity, Assignment
April 4th April 17th May 1st
04 – Hazelcast
Examples, Lab activity, Assignment
April 18th May 1st May 15th
Labs canceled May 2nd
05 – OpenEJB
Examples, Lab activity, Assignment
May 16th May 29th June 12th