Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
S
softlab-thesis
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Antonios Angelakis
softlab-thesis
Commits
074142ed
Commit
074142ed
authored
Mar 07, 2018
by
Antonios Angelakis
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Some writing about CMS
parent
64365e4a
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
95 additions
and
1 deletion
+95
-1
test.tex
test.tex
+95
-1
No files found.
test.tex
View file @
074142ed
...
@@ -91,7 +91,7 @@
...
@@ -91,7 +91,7 @@
\begin{keywordsgr}
\begin{keywordsgr}
Συστήματα αυτόματης αξιολόγησης, CMS, Grader, PHP, Python, Ανάπτυξη Λογισμικού,
Συστήματα αυτόματης αξιολόγησης, CMS, Grader, PHP, Python, Ανάπτυξη Λογισμικού,
Ανοιχτό
και ε
λεύθερο λογισμικό.
Ανοιχτό
ς Κώδικας, Ε
λεύθερο λογισμικό.
\end{keywordsgr}
\end{keywordsgr}
\end{abstractgr}
\end{abstractgr}
...
@@ -297,18 +297,112 @@ privacy.) Τέλος, η σύγκριση του Grader με τα συγκεκρ
...
@@ -297,18 +297,112 @@ privacy.) Τέλος, η σύγκριση του Grader με τα συγκεκρ
\item
CATS
\item
CATS
\end{itemize}
\end{itemize}
Και τα 3 έχουν σχεδιαστεί με σκοπό τη διεξαγωγή προγραμματιστικών διαγωνισμών,
ολυμπιάδων πληροφορικής, αλλά και χρήση για εργαστηριακές ασκήσεις και
εργασίες.
\section
{
CMS
}
\section
{
CMS
}
Το πρώτο σύστημα που θα μελετήσουμε είναι το Contest Management System, CMS εν
συντομία. Πρόκειται για ένα κατανεμημένο σύστημα διαχείρισης και διεξαγωγής
διαγωνισμών το οποίο σχεδιάστηκε αρχικά για την Διεθνή Ολυμπιάδα Πληροφορικής του 2012.
Αποτελείται από ένα πλήθος μικρο-υπηρεσιών που συνθέτουν το συνολικό σύστημα.
\bigskip
Είναι, πιθανότατα, το πιο ολοκληρωμένο σύστημα για διαγωνισμούς δεδομένου του μεγάλου
αριθμού διαπιστευτηρίων που κατέχει, συμπεριλαμβανομένης της χρήσης του σε όλες σχεδόν
τις Διεθνείς Ολυμπιάδες από το 2012. Οι δημιουργοί του είχαν ως στόχο τη δημιουργία ενός
% https://www.mii.lt/olympiads_in_informatics/pdf/INFOL107.pdf
συστήματος ασφαλούς, ανθεκτικού σε σφάλματα λογισμικού και υλικού, ανοιχτού, επεκτάσιμου
και εύχρηστου.
\bigskip
Η ανάπτυξη του ξεκίνησε το 2010 και πλέον βασίζεται στην κοινότητα για συνεισφορά στην
ανάπτυξη του, στην προσθήκη μεταφράσεων και στη βελτίωση του documentation.
\subsection
{
Τεχνικά Χαρακτηριστικά
}
Το CMS είναι γραμμένο σε Python και αποτελείται από πολλά μικρά κομμάτια που
αναλαμβάνουν μια ξεχωριστή λειτουργία. Αυτά μπορούν να έχουν εγκατασταθεί σε
διαφορετικούς εξυπηρετητές, σε απομακρυσμένα συστήματα. Οι υπηρεσίες-κομμάτια, από
τα οποία αποτελείται είναι τα παρακάτω:
\begin{itemize}
\setlength\itemsep
{
0em
}
\item
LogService
Συλλέγει σε ένα μέρος όλα τα μηνύματα καταγραφής.
\item
ResourceService
Λαμβάνει δεδομένα για όλες τις υπηρεσίες που τρέχουν και μπορεί να τις
ξεκινήσει ταυτόχρονα.
\item
Checker
Ελέγχει την κατάσταση των υπηρεσιών.
\item
EvaluationService
Οργανώνει την ουρά υποβολών και διανέμει τις εργασίες στους Workers.
\item
Worker
Εκτελεί τις εργασίες σε ένα αποκλεισμένο περιβάλλον.
\item
ScoringService
Συλλέγει τα αποτελέσματα των εκτελέσεων και τα αξιολογεί για να παράξει
τις βαθμολογίες.
\item
ProxyService
Στέλνει τις βαθμολογίες στον εξυπηρετητή Αποτελεσμάτων.
\item
PrintingService
Αναλαμβάνει την εκτύπωση των εγγράφων.
\item
ContestWebServer
Ο εξυπηρετητής της ιστοσελίδας του διαγωνισμού, με τον οποίο αλληλεπιδρούν
οι διαγωνιζόμενοι.
\item
AdminWebServer
Ο εξυπηρετητής της ιστοσελίδας διαχείρισης του διαγωνισμού.
\item
RankingWebServer
Ο εξυπηρετητής της ιστοσελίδας εμφάνισης των αποτελεσμάτων.
\end{itemize}
\bigskip
% https://www.mii.lt/olympiads_in_informatics/files/volume8.pdf#page=125
Όλες οι παραπάνω λειτουργίες αλληλεπιδρούν μεταξύ τους με τον τρόπο που φαίνεται
στην εικόνα που ακουλουθεί.
(TODO: εικόνα συννεφο)
\bigskip
Ο κύκλος διεξαγωγής ενός διαγωνισμού είναι γνώριμος. Αφού στηθούν όλες οι
απαραίτητες υπηρεσίες, οι διαχειριστές μπορούν να δημιουργήσουν το διαγωνισμό
μέσω του AdminWebServer, μαζί με τα προβλήματα και τα τεστ που περιέχει. Έπειτα,
κάθε διαγωνιζόμενος αλληλεπιδρά με τη σελίδα υποβάλλοντας τις λύσεις του. Αυτές
αποθηκεύονται στο δίσκο μέχρι να δοθούν σε κάποιο Worker από το EvaluationService
και να εκτελεστούν στο ασφαλές περιβάλλον. Σε εκείνο το σημείο αναλαμβάνει τα ηνία
το ScoringService που αξιολογεί τις εκτελέσεις και στέλνει τα αποτελέσματα στο
RankingWebServer, ώστε να ανανεωθεί με την τελευταία εικόνα.
- https://github.com/cms-dev/cms
- https://github.com/cms-dev/cms
- βαση!
- ισως μερικά ενδιαφεροντα εξτρα χαρακτηριστικα του cms
\subsection
{
Χρήση
}
\section
{
Mooshak2
}
\section
{
Mooshak2
}
\subsection
{
Τεχνικά Χαρακτηριστικά
}
- https://mooshak.dcc.fc.up.pt/
- https://mooshak.dcc.fc.up.pt/
\subsection
{
Χρήση
}
\section
{
CATS
}
\section
{
CATS
}
\subsection
{
Τεχνικά Χαρακτηριστικά
}
- https://github.com/klenin/cats-main
- https://github.com/klenin/cats-main
\subsection
{
Χρήση
}
\section
{
Σύγκριση με Grader
}
\chapter
{
Υπάρχον Σύστημα
}
\chapter
{
Υπάρχον Σύστημα
}
Το σύστημα αποτελείται από το το σύστημα αξιολόγησης Kewii, το backend της
Το σύστημα αποτελείται από το το σύστημα αξιολόγησης Kewii, το backend της
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment