Diferență între revizuiri ale paginii „OOP Project 2014-2015”
De la WikiLabs
Jump to navigationJump to search (Pagină nouă: == 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 extern...) |
|||
Linia 1: | Linia 1: | ||
== Description == | == 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 | + | 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. |
− | |||
== Cerințe == | == Cerințe == |
Versiunea de la data 21 iulie 2015 15:33
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.
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.