OOP Project 2014-2015
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 În tehnologia actuală, se pune mult accent pe sisteme distribuite, unde un client rulează un program sau o secțiune dintr-un program pe un server extern și primește răspuns de la acesta. Avantajul este acela că server-ul poate executa procesul mai rapid și dispune de mai multă putere și energie decât, să spunem, un terminal mobil (telefon, tabletă). Acest proiect are ca scop realizarea unei aplicații ce poate transfera, compila și executa o clasă Java realizată de un client, pe un server.
Cerințe
Realizați o aplicație client-server cu următoarele specificații:
- client-ul trebuie să conțină o interfață grafică care să permită scrierea unei clase Java (ex: JTextArea);
- client-ul trebuie apoi să transfere fișierul sursă pe server, printr-un socket TCP;
- server-ul trebuie să compileze iar apoi să execute clasa Java primită, întorcând clientului rezultatele (mesaj de eroare dacă clasa nu a putut fi compilată, excepții care au fost aruncate la execuție, sau caracterele afișate pe standard output stream și standard error stream).
- server-ul trebuie realizat multi-threaded pentru a putea servi mai mulți clienți simultan.
Observații
- se permite utilizarea de biblioteci externe, atât timp cât acestea au fost studiate și modul lor de funcționare înteles.
- pentru compilarea unei clase Java, se pot folosi clasele javax.tools.ToolProvider și javax.tools.JavaCompiler iar pentru execuție se poate folosi Dynamic Class Loading și Java Reflection.
Se acordă bonus pentru următoarele realizări:
- fereastra de editare de pe client să aibă code highlight, adică cuvintele cheie Java să fie afișate cu bold sau cu altă culoare.
- posibilitatea de a transmite de pe client stream-ul standard de intrare către procesul pornit pe server, în timp ce acesta rulează.
Modalitate de evaluare
- Acest proiect valorează 40 de puncte din nota totală la POO. Se cer minim 20 de puncte din 40 pentru promovarea laboratorului și implicit pentru intrarea în examen.
- Proiectul va fi prezentat public de către autor și va fi evaluat, acordându-se o notă între 0 și 40.
- Autorului i se vor pune 5 întrebări exclusiv din codul scris în cadrul proiectului. Orice întrebare la care se răspunde greșit, sau nu se răspunde, va fi penalizată cu 5 puncte. Rezultatul este că examenul se poate pica și cu un proiect de 40 de puncte.