Design Project: Multi-User Multi-Transaction Server (C++代写,University of Western Ontario代写,北美程序代写,加拿大程序代写,SE3313代写,Operating Systems代写)

The project ties together the elements you have been using in the labs to create a multi-user, multi-transaction server.

微信: biyeprodaixie 欢迎联系咨询

本次CS代写的主要涉及如下领域: C++代写,University of Western Ontario代写,北美程序代写,加拿大程序代写,SE3313代写,Operating Systems代写














SE 3313A – Operating Systems

Design Project: Multi-User Multi-Transaction Server

Due: Check OWL for your lab section deadline


SE 3313A – Multi-User Multi-Transaction Server

  1. Objective

The project ties together the elements you have been using in the labs to create a multi-user, multi-transaction server. This will give you the ability to apply threads, thread synchronization (semaphores and so on), and parallel processing in ways that will give you a new view of what they can do.

  1. Introduction


The contents of this document explain what is expected. You may find resources provided with labs beneficial for completing this project.

For this project, you are expected to work in groups of 4.


  1. A Multi-User Multi-Transaction Server


Your multi-transaction, multi-user server MUST conform to the following:

    • The server MUST run in the UNIX/LINUX environment. You can host your server on Amazon, with a different cloud provider or on another computer of your choice. Running the server in Oracle VM is also acceptable. Keep in mind, that if you are working behind a router (maybe at home you are using a router) or firewall, you may need to forward or open ports.
    • The server MUST run in a different environment (machine) than the clients. VM and the host are considered two environments; thus, you can run the server on VM and clients on the machine hosting this VM.
    • Each transaction MUST have AT LEAST two participating clients.
    • There should in theory be NO LIMIT to the number of simultaneous possible transactions. Note: On chat room is one transaction irrelevant how many people are in the chat room. Concurrent private chats are multiple transactions.
    • Termination MUST be graceful. That means transactions clean up after themselves in a graceful way. It also means that terminating the server terminates all associated transactions in a graceful way. There should be a functionality to terminate the server such as entering ‘done’ or similar (should not depend on the IDEs functionality). There should be no need to kill any processes (Ctrl+C is kill). Clients should receive a meaningful message when the server is terminated.


The project is flexible with respect to the following:

    • The client can run in whatever environment (or set of environments) you like. Possibilities include Android and Java clients. “Skin” for Java is provided and you can customize it for your project.
    • The definition of what is a “transaction” is entirely up to you. Could be a game instance, a chat room, some kind of social media thing, or something else.
    • The decision on whether NEW users can choose to join a transaction already in progress is entirely up to you.





  1. Submit group member names by Friday, Nov 20th on: Group Members Only submit one entry per group
  2. High level design document – pdf file.

This document needs to show the overall design. Examples of things to include: How the various parts of your application work together? How many threads do you need? What sort of synchronization objects do you use and how? How do you handle termination? This should include UML diagrams as needed to describe the design.

  1. ZIP file with code
    • Name your submission:
    • There should be only one submission per group.
  2. Mandatory demo over Zoom. All group members must be present for the demo.


If the group did not demo the solution during the scheduled time due to illness or other special circumstances (with documentation as per the course outline), the students must contact the professor as soon as possible. For no demo, 50% of the available mark will be deducted.


Using Oracle VM VirtualBox for the Server



You need this section only if you are using OracleVM to host your server.



    Under Devices/Network/Network Settings, change the adapter to Bridge Adapter.


  1. Restart Ubuntu box. You’ll find it under arrow on upper right corner. Select Power Off and then select Restart.


  1. Find the guest OS IP address. You can use ‘ip addr show’ from terminal. It is highlighted in the screenshot below.

You will use this for the clients to specify the connection to the server. Depending on which network you work on, this may be the private address that only works within the network. This should work for connections from the host OS to the guest OS (Oracle VM), but for the access from computers outside the network you may need to forward or open ports.