Η αρχιτεκτονική της πλατφόρμας έχει σχεδιαστεί βάσει σύγχρονων πρακτικών υλοποίησης ενημερωτικών portal καθώς επίσης και πλατφορμών εκμάθησης.
Η πλατφόρμα αποτελείται από τα εξής διακριτά σημεία:
- Σύστημα προβολής περιεχομένου (Front-End)
- Σύστημα οργάνωσης περιεχομένου (Content Management System – CMS)
- Σύστημα οργάνωσης περιεχομένου εκμάθησης (Learning Management System – LMS)
- Σύστημα Διαχείρισης Χρηστών (User Management System)
- Σύστημα Βάσης Δεδομένων (Database)
- Σύστημα Φιλοξενίας (Hosting)
- Σύστημα προστασίας από επιθέσεις Distributed Denial of Service (DDoS) και βελτιστοποίησης ταχύτητας μέσω Caching
Με τον διαχωρισμό της πλατφόρμας στα παραπάνω διακριτά σημεία επιτυγχάνεται ευκολότερη προσαρμογή στις τελικές απαιτήσεις του έργου.
Εργαλεία Υλοποίησης Πλατφόρμας
Τα εργαλεία και τα λογισμικά που έχουν χρησιμοποιηθεί για την υλοποίηση της πλατφόρμας παρουσιάζονται στον παρακάτω πίνακα.
Σύστημα
|
Εργαλείο Υλοποίησης
|
Λειτουργικό Σύστημα
|
Ubuntu Linux
|
Σύστημα Διαχείρισης Περιεχομένου Πληροφόρησης
|
WordPress CMS
|
Σύστημα Διαχείρισης Περιεχομένου Εκμάθησης
|
Moodle
|
Εξυπηρετητής
|
Nginx HTTP Web Server
|
Σύστημα Βάσης Δεδομένων
|
MySQL 8.0
|
Άντληση περιεχομένου από εξωτερικά συστήματα
|
Web Services - REST API
|
Σύστημα Caching και Προστασίας από επιθέσεις DDoS
|
CloudFlare
|
Το σύστημα διαχείρισης περιεχομένου (Content Management System - CMS) WordPress παρέχει τη δυνατότητα εύκολης διαχείρισης των πληροφοριών του συστήματος της πλατφόρμας πληροφόρησης και ενημέρωσης.
Καθίσταται δυνατή η προσθήκη, διαγραφή και η λεκτική και εικαστική μεταβολή του περιεχομένου με τρόπο απλό στην κατανόηση από χρήστες με μη τεχνικές γνώσεις και δεξιότητες, με την χρήση ενός συμβατού περιηγητή ιστού (Web Browser). Η υλοποίηση έχει πραγματοποιηθεί με την έκδοση 6 του WordPress.
Ως εξυπηρετητής ιστού χρησιμοποιείται ο εξυπηρετητής εφαρμογών NGINX. Ο NGINX έχει εγκατασταθεί στο ανοικτού κώδικα λειτουργικό σύστημα Linux (συγκεκριμένα, το Ubuntu Server 22.04 Linux Distribution).
Τα δεδομένα των πλατφορμών αποθηκεύονται στην σχεσιακή βάση δεδομένων MySQL, η οποία αποτελεί την πλέον διαδεδομένη (παγκοσμίως) ανοικτού κώδικα βάση δεδομένων.
Σύστημα Διαχείρισης Περιεχομένου
Το WordPress CMS είναι ένα ελεύθερο και ανοικτού κώδικα λογισμικό για την εύκολη ανάπτυξη διαδικτυακών εφαρμογών και πλατφορμών. Ενσωματώνει στοιχεία όπως έναν φιλικό προς τον χρήστη What You See is What You Get Editor (WYSIWYG) που επιτρέπει την εύκολη και γρήγορη ενημέρωση του περιεχομένου του ιστοτόπου. Υποστηρίζει την εύκολη ανάρτηση ανακοινώσεων και στατικών σελίδων και αντικαθιστά την ανάγκη χρήσης κώδικα HTML, CSS και JavaScript.
Εικαστική Σχεδίαση Περιεχομένου
Ως πρόσθετο εικαστικής δημιουργίας έχει χρησιμοποιηθεί το Elementor. Το Elementor αποτελεί ένα εκ των πλέων διαδεδομένων πρόσθετων εικαστικής διαχείρισης ιστοτόπων παντός μεγέθους όπου, με έναν γρήγορο και απλό τρόπο, επιτρέπει στον διαχειριστή της σελίδας να διαχειριστεί την εικαστική δομή και συνοχή στατικών σελίδων.
Εξυπηρετητής Εφαρμογών Ιστού
Ο εξυπηρετητής διαδικτυακών εφαρμογών NGINX αποτελεί έναν από τους πλέον χρησιμοποιούμενους διακομιστές της αγοράς. Μέσω των διαθέσιμων επιπρόσθετων modules, μπορεί να προσαρμοστεί στις ανάγκες της εκάστοτε εφαρμογής.
Η εκτέλεση του κώδικα PHP του WordPress και του Moodle πραγματοποιείται μέσω του PHP FPM Module, το οποίο αποτελεί μία ξεχωριστή διαδικασία (Daemon) που εκτελείται στο παρασκήνιο. Σε αυτό γίνεται προώθηση του κώδικα προς εκτέλεση, και έπειτα από την εκτέλεση επιστρέφεται ο Server Side Rendered HTML κώδικας. Το PHP FPM υποστηρίζει παράλληλη εξυπηρέτηση χρηστών μέσω ανάθεσης του αιτήματος σε ξεχωριστό νήμα «εργάτη» (Worker Thread), ανά αίτημα.
Οι πλατφόρμες «εκτίθενται» μέσω ενός configuration file γνωστού ως Virtual Host (VHost). Έπειτα από την ταυτοποίηση της διεύθυνσης του αιτήματος γίνεται προώθηση του κώδικα στο PHP FPM Module, όπως προαναφέρθηκε, όπου γίνεται η εκτέλεση.
Σύστημα Διαχείρισης Βάσης Δεδομένων
Η MySQL είναι το πλέον διαδεδομένο σύστημα διαχείρισης σχεσιακής βάσεων δεδομένων ανοιχτού κώδικα, το οποίο μπορεί να χειριστεί μικρούς και μεγάλους φόρτους εργασίας με πολλαπλούς συνδεδεμένους χρήστες. H MySQL προσφέρει αποτελεί ένα εύκολο και ασφαλές περιβάλλον χρήσης που έχει ως στόχο την ταχύτερη διεξαγωγή των ερωτημάτων προς αυτό (queries), ενώ διαθέτει αποτελεσματική διαχείριση για την αποφυγή διαρροών μνήμης. Η MySQL υποστηρίζεται σε όλα τα γνωστά λειτουργικά συστήματα όπως Windows, macOS και Linux.
Διασύνδεση με Εξωτερικά Συστήματα
Προκειμένου στο μέλλον να επιτευχθεί διασύνδεση με πιθανά συστήματα τρίτων, η πλατφόρμα χρησιμοποιεί Web Services, χρησιμοποιώντας αρχιτεκτονική Representation State Transfer (REST API). Μέσω των άνωθεν web services υποστηρίζεται η ανταλλαγή δεδομένων στην μορφή JSON (JavaScript Object Notation).
Σύστημα Προστασίας από Επιθέσεις DDoS και Caching
Προκειμένου οι πλατφόρμες να είναι προστατευμένες από κακόβουλες επιθέσεις άρνησης εξυπηρέτησης (Distributed Denial of Service - DDoS), χρησιμοποιείται το CloudFlare (https://cloudflare.org/) ως εξυπηρετητής ονομάτων τομέα (Domain Name System Server – DNS Server). Το Cloudflare, μέσω ενός ειδικά σχεδιασμένου διακομιστή μεσολάβησης (Proxy
Server), χρησιμοποιεί μηχανική μάθηση, αναγνώριση αιτημάτων και άλλες τεχνολογίες για την αναγνώριση κακόβουλων επιθέσεων και την αποτροπή τους.
Με αυτό τον τρόπο, η πραγματική διεύθυνση IP του διακομιστή δεν εκτίθεται ποτέ και έτσι πρέπει όλα τα αιτήματα (HTTP Requests) να περνάνε από τον Proxy Server της CloudFlare, όπου και γίνεται ο έλεγχος και αν απαιτείται, η αποτροπή της επίθεσης.
Επίσης γίνεται προσωρινή αποθήκευση (Caching) των στατικών στοιχείων της πλατφόρμας (αρχεία HTML, CSS, JS) και γίνεται εξυπηρέτηση μέσω του δικτύου εξυπηρέτησης περιεχομένου (Content Distribution Network - CDN) της CloudFlare προκειμένου να γίνει ταχύτερη και να ελαττωθεί το αχρείαστο φορτίο στον διακομιστή.