OOP Project 2014-2015

De la WikiLabs
Jump to navigationJump to search

Description

In today's technology, a great deal of effort is put in the development of distributed systems, where a client runs a program or a section of a program on an external server and receives a reply. The advantage is that the server can execute the program faster since it has a larger power and energy budget than a mobile terminal (phone or tablet). The purpose of this project is the development of an application that can transfer, compile and execute a Java class on a remote server.

Requirements

Develop a client-server application with the following specifications:

  • the client MUST contain a graphical user interface (GUI), enabling the user to write a Java program / class (ex: JTextArea).
  • the client MUST transfer the source file to the server, through a TCP socket;
  • the server MUST compile then execute the Java class, returning the results (error message if the compilation of the class failed, exceptions thrown and/ or the strings displayed on the standard output stream and the standard error stream);
  • the server MUST be multi-threaded so it can serve multiple clients at the same time.

Miscellaneous

You may receive a bonus for the following:

  • the edit window has a code highlight feature, meaning that the Java keywords and displayed in bold or with a different color;
  • the possibility to redirect the input stream from the client to the application running on the server;

Evaluation

  • This project is worth 40 points from the total of 100 points for the OOP course. You are required to obtain 20 of those in order to pass the laboratory and be allowed to take the exam.
  • The project will be publicly presented by the author and evaluated, and it will be awarded a grade between 0 and 40.
  • The author will be asked 5 questions, exclusively from the code written for the project. Any question answered incorrectly or not answered will deduct 5 points from the author's grade. The result is that the exam can be failed even with a perfectly implemented project.