Práca sa zaoberá návrhom a implementáciou systému pre automatizáciu hodnotenia
študentských úloh. Cieľom práce bolo vytvoriť bezpečné prostredie pre spúšťanie
potencionálne nebezpečných programov. Pre vytvorenie bezpečného behového prostredia(sandbox)bol použitý operačný systém Linux a kontajnerová virtualizácia založená na platforme Docker. Diplomová práca sa mimo iné venuje správe front prichádzajúcich úloh,ich postupnému spracovaniu a mechanizmu pre vyhodnocovanie výstupov testovania.Systém je implementovaný v Java Enterprise Edition 7.
Annotation in English
Paper is focused on design and implementation of system for automatic evaluation of student's assignments. Main motivation for this project is to create safe runtime environment for execution potentially dangerous programs. Safe runtime environment (sandbox) was created on operating system Linux with container virtualization platform Docker. Project also aims to management of submissions incoming queue. This queue is continuously processed. Paper also describes mechanism for grading test output. System is implemented in Java Enterprise Edition 7.
Keywords
Automatické vyhodnocovanie programov, Linux, sandbox, Docker, Java EE
Keywords in English
Automatic program's grading, Linux, sandbox, Docker, Java EE
Length of the covering note
76 s.
Language
SK
Annotation
Práca sa zaoberá návrhom a implementáciou systému pre automatizáciu hodnotenia
študentských úloh. Cieľom práce bolo vytvoriť bezpečné prostredie pre spúšťanie
potencionálne nebezpečných programov. Pre vytvorenie bezpečného behového prostredia(sandbox)bol použitý operačný systém Linux a kontajnerová virtualizácia založená na platforme Docker. Diplomová práca sa mimo iné venuje správe front prichádzajúcich úloh,ich postupnému spracovaniu a mechanizmu pre vyhodnocovanie výstupov testovania.Systém je implementovaný v Java Enterprise Edition 7.
Annotation in English
Paper is focused on design and implementation of system for automatic evaluation of student's assignments. Main motivation for this project is to create safe runtime environment for execution potentially dangerous programs. Safe runtime environment (sandbox) was created on operating system Linux with container virtualization platform Docker. Project also aims to management of submissions incoming queue. This queue is continuously processed. Paper also describes mechanism for grading test output. System is implemented in Java Enterprise Edition 7.
Keywords
Automatické vyhodnocovanie programov, Linux, sandbox, Docker, Java EE
Keywords in English
Automatic program's grading, Linux, sandbox, Docker, Java EE
Research Plan
Vypracujte literární rešerši na dané téma.
Analyzujte možnosti pro spouštění studentských úkolů - programů v jazycích C/C++/Java v chráněném prostředí (\"sandbox\") na OS Linux.
Navrhněte API pro spouštěni kódu odevzdávaných úkolů a získávaní výsledků ze spouštěných testů.
Implementujte systém sandboxů včetně vstupní fronty úloh.
Implementujte nástroj pro monitoring a správu jednotlivých sandboxů a systému jako celku.
Výsledný systém publikujte pod open source licencí.
Research Plan
Vypracujte literární rešerši na dané téma.
Analyzujte možnosti pro spouštění studentských úkolů - programů v jazycích C/C++/Java v chráněném prostředí (\"sandbox\") na OS Linux.
Navrhněte API pro spouštěni kódu odevzdávaných úkolů a získávaní výsledků ze spouštěných testů.
Implementujte systém sandboxů včetně vstupní fronty úloh.
Implementujte nástroj pro monitoring a správu jednotlivých sandboxů a systému jako celku.
Výsledný systém publikujte pod open source licencí.
Recommended resources
SIEVER, Ellen. Linux in a nutshell: a desktop quick reference. 6th ed. Sebastopol: O'Reilly, 2009, xxii, 917 p. ISBN 978-059-6154-486.
RICHARDSON, Leonard, Mike AMUNDSEN a Sam RUBY. RESTful Web APIs. S.l.: O'Reilly Media, 2013. ISBN 978-144-9358-068.
GUPTA, Arun. Java EE 7 Essentials: Enterprise Developer Handbook. Sebastopol: O'Reilly Media, 2013. ISBN 1-4493-7017-9.
JUNEAU, By Josh. Java EE 7 recipes: a problem-solution approach. New ed. Berkeley, Calif: Apress, 2012. ISBN 14-302-4425-9.
ECKEL, Bruce. Thinking in Java. 4th ed. Upper Saddle River, NJ: Prentice Hall, 2006, 1482 p. ISBN 978-013-1872-486.
RICHARD M. STALLMAN a GCC DEVELOPER COMMUNITY. Using the GNU compiler collection: for GCC version 4.3.3 (GCC). 4th ed. S.l.: SoHo Books, 2008, 1482 p. ISBN 14-414-1276-X
HALLYN, Serge. Secure Linux containers cookbook. In: DeveloperWorks [online]. 2009 [cit. 2013-10-14]. Dostupné z: http://www.ibm.com/developerworks/library/l-lxc-security/
COOPER, Mendel. Advanced Bash-Scripting Guide.[online]. 2012 [cit. 2013-10-14] Dostupné z: www.tldp.org/LDP/abs/abs-guide.pdf
Recommended resources
SIEVER, Ellen. Linux in a nutshell: a desktop quick reference. 6th ed. Sebastopol: O'Reilly, 2009, xxii, 917 p. ISBN 978-059-6154-486.
RICHARDSON, Leonard, Mike AMUNDSEN a Sam RUBY. RESTful Web APIs. S.l.: O'Reilly Media, 2013. ISBN 978-144-9358-068.
GUPTA, Arun. Java EE 7 Essentials: Enterprise Developer Handbook. Sebastopol: O'Reilly Media, 2013. ISBN 1-4493-7017-9.
JUNEAU, By Josh. Java EE 7 recipes: a problem-solution approach. New ed. Berkeley, Calif: Apress, 2012. ISBN 14-302-4425-9.
ECKEL, Bruce. Thinking in Java. 4th ed. Upper Saddle River, NJ: Prentice Hall, 2006, 1482 p. ISBN 978-013-1872-486.
RICHARD M. STALLMAN a GCC DEVELOPER COMMUNITY. Using the GNU compiler collection: for GCC version 4.3.3 (GCC). 4th ed. S.l.: SoHo Books, 2008, 1482 p. ISBN 14-414-1276-X
HALLYN, Serge. Secure Linux containers cookbook. In: DeveloperWorks [online]. 2009 [cit. 2013-10-14]. Dostupné z: http://www.ibm.com/developerworks/library/l-lxc-security/
COOPER, Mendel. Advanced Bash-Scripting Guide.[online]. 2012 [cit. 2013-10-14] Dostupné z: www.tldp.org/LDP/abs/abs-guide.pdf