Commit 785b6f20 authored by Antonios Angelakis's avatar Antonios Angelakis

Finish CMS

parent 074142ed
......@@ -331,30 +331,30 @@ privacy.) Τέλος, η σύγκριση του Grader με τα συγκεκρ
\begin{itemize}
\setlength\itemsep{0em}
\item LogService
\item LogService \\
Συλλέγει σε ένα μέρος όλα τα μηνύματα καταγραφής.
\item ResourceService
\item ResourceService \\
Λαμβάνει δεδομένα για όλες τις υπηρεσίες που τρέχουν και μπορεί να τις
ξεκινήσει ταυτόχρονα.
\item Checker
\item Checker \\
Ελέγχει την κατάσταση των υπηρεσιών.
\item EvaluationService
\item EvaluationService \\
Οργανώνει την ουρά υποβολών και διανέμει τις εργασίες στους Workers.
\item Worker
Εκτελεί τις εργασίες σε ένα αποκλεισμένο περιβάλλον.
\item ScoringService
\item ScoringService \\
Συλλέγει τα αποτελέσματα των εκτελέσεων και τα αξιολογεί για να παράξει
τις βαθμολογίες.
\item ProxyService
\item ProxyService \\
Στέλνει τις βαθμολογίες στον εξυπηρετητή Αποτελεσμάτων.
\item PrintingService
\item PrintingService \\
Αναλαμβάνει την εκτύπωση των εγγράφων.
\item ContestWebServer
\item ContestWebServer \\
Ο εξυπηρετητής της ιστοσελίδας του διαγωνισμού, με τον οποίο αλληλεπιδρούν
οι διαγωνιζόμενοι.
\item AdminWebServer
\item AdminWebServer \\
Ο εξυπηρετητής της ιστοσελίδας διαχείρισης του διαγωνισμού.
\item RankingWebServer
\item RankingWebServer \\
Ο εξυπηρετητής της ιστοσελίδας εμφάνισης των αποτελεσμάτων.
\end{itemize}
......@@ -370,20 +370,58 @@ privacy.) Τέλος, η σύγκριση του Grader με τα συγκεκρ
Ο κύκλος διεξαγωγής ενός διαγωνισμού είναι γνώριμος. Αφού στηθούν όλες οι
απαραίτητες υπηρεσίες, οι διαχειριστές μπορούν να δημιουργήσουν το διαγωνισμό
μέσω του AdminWebServer, μαζί με τα προβλήματα και τα τεστ που περιέχει. Έπειτα,
κάθε διαγωνιζόμενος αλληλεπιδρά με τη σελίδα υποβάλλοντας τις λύσεις του. Αυτές
αποθηκεύονται στο δίσκο μέχρι να δοθούν σε κάποιο Worker από το EvaluationService
και να εκτελεστούν στο ασφαλές περιβάλλον. Σε εκείνο το σημείο αναλαμβάνει τα ηνία
το ScoringService που αξιολογεί τις εκτελέσεις και στέλνει τα αποτελέσματα στο
RankingWebServer, ώστε να ανανεωθεί με την τελευταία εικόνα.
μέσω του AdminWebServer, μαζί με τα προβλήματα και τα τεστ που περιέχει.
Έπειτα, κάθε διαγωνιζόμενος αλληλεπιδρά με τη σελίδα υποβάλλοντας τις λύσεις
του. Αυτές αποθηκεύονται στο δίσκο μέχρι να δοθούν σε κάποιο Worker από το
EvaluationService και να εκτελεστούν στο ασφαλές περιβάλλον. Σε εκείνο το
σημείο αναλαμβάνει τα ηνία το ScoringService που αξιολογεί τις εκτελέσεις και
στέλνει τα αποτελέσματα στο RankingWebServer, ώστε να ανανεωθεί με την
τελευταία εικόνα.
- https://github.com/cms-dev/cms
\bigskip
- βαση!
Η βάση που χρησιμοποιεί το CMS είναι PostgreSQL και η λειτουργία του βασίζεται
στα χαρακτηριστικά της, οπότε μόνο αυτή υποστηρίζεται. Οι γλώσσες προγραμματισμού
που υποστηρίζει η ευσταθής έκδοση του είναι οι: C, C++, PHP, Pascal, Java και
Python2. Στην τελευταία έκδοση υπό ανάπτυξη (development) υποστηρίζονται επίσης
C\#, Haskell, Python3 και Rust. Για την επέκταση του με παραπάνω γλώσσες αρκεί
η προσθήκη ενός αρχείου προδιαγραφών για κάθε νέα γλώσσα.
- ισως μερικά ενδιαφεροντα εξτρα χαρακτηριστικα του cms
\subsection{Χρήση}
\subsection{Εγκατάσταση και Χρήση}
Η εγκατάσταση προϋποθέτει την ύπαρξη πλήθους εργαλείων για την υποστήριξη των
γλωσσών και του συστήματος. Όπως έχει αναφερθεί, το CMS αποτελείται από πολλές
διαφορετικές υπηρεσίες, οι οποίες πρέπει να τρέχουν σε ένα ή παραπάνω μηχανήματα
για την πλήρη λειτουργία. Χάρη στην ύπαρξη του ResourceService όλες οι υπηρεσίες
ενός μηχανήματος μπορούν να εκκινήσουν ταυτόχρονα ώστε να μειωθεί η χρονοβόρα
εργασία.
\bigskip
Για να τρέξει επίσης το σύστημα θα πρέπει να γίνουν οι απαραίτητες ρυθμίσεις
στην βάση αλλά και στο CMS. Μόλις ολοκληρωθεί κι αυτό το βήμα, οι διαχειριστές
μπορούν να δημιουργήσουν διαγωνισμούς και προβλήματα με τρεις τρόπους: μέσω της
διεπαφής Admin, κατευθείαν από το σύστημα αρχείων τους περιγράφοντας με αρχείο
προδιαγραφών τη μορφή τους ή με απευθείας εισαγωγή προηγούμενου διαγωνισμού που
εξάχθηκε.
\bigskip
Οι διαγωνιζόμενοι συμμετέχουν στο διαγωνισμό μέσω της σελίδας του
ContestWebServer. Εκεί, βλέπουν για κάθε πρόβλημα την περιγραφή του και όλα
τα σχετικά με αυτό στοιχεία και μπορούν να υποβάλλουν τις λύσεις τους. Ένα
ενδιαφέρον χαρακτηριστικό είναι ότι οι διαγωνιζόμενοι μπορούν να δημιουργούν
δικά τους αρχεία ελέγχου, στα οποία θα ελεγχθεί η λύση τους. Επιπλέον, υπάρχει
η δυνατότητα χρήσης tokens, τα οποία μοιράζονται στους διαγωνιζόμενους και
περιορίζουν τις φορές που μπορούν να δουν τα αναλυτικά αποτελέσματα της
υποβολής τους σε φανερά και κρυφά αρχεία ελέγχου.
\bigskip
Ακολουθούν φωτογραφίες από τις διεπαφές του διαγωνισμού, του Admin και της σελίδας
των αποτελεσμάτων.
\section{Mooshak2}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment