1. Τεχνική Αρχιτεκτονική Εύδοξου
Βασικές Κατευθύνσεις
Βασικοί σχεδιαστικοί στόχοι:
Υψηλή δυνατότητα κλιμάκωσης
Ελαστικότητα
Υψηλή διαθεσιμότητα
Δυνατότητα live application update
Κάποιοι συμβιβασμοί στα παραπάνω λόγω
εξαιρετικά περιορισμένου χρόνου για σχεδιασμό και
υλοποίηση:
Επιλέχθηκε RDBMS και όχι NoSQL storage
Δεν υπάρχει το redundancy που θα θέλαμε
Υπάρχει 'άνω όριο' κλιμάκωσης το οποίο όμως είναι πολύ
υψηλότερο από τον υφιστάμενο αριθμό φοιτητών
2. Τεχνική Αρχιτεκτονική Εύδοξου
Βασικά Ποιοτικά Χαρακτηριστικά
Όσο το δυνατόν περισσότερη λειτουργικότητα
στον browser – Ajax-based rich gui εφαρμογές
Caching σε πολλαπλά επίπεδα:
Στον browser (web resources & στην εφαρμογή)
Web accellerator (μπροστά από app servers)
ORM layer (JPA / Hibernate) – app server
Second level caching – app server
Cache DB files in RAM – db server
Stateless λογική (δεν υπάρχει http session)
Cloud computing λογική στην υποδομή
3. Τεχνική Αρχιτεκτονική Εύδοξου
Λογική Αρχιτεκτονική & Τεχνολογίες Υλοποίησης
Βασικές δομικές μονάδες (100% FLOSS):
Web server (Apache): front-end, χειρίζεται SSL και
σύνδεση Shibboleth. Επίσης, δεύτερος server
(nginx) για εξυπηρέτηση μεγάλων στατικών αρχείων
Font end caching / web accellerator (Varnish):
Caching των εφαρμογών (js, css, html) και των
REST responses (όπου είναι εφικτό)
Application Servers (JBoss): Business logic της
εφαρμογής – N workers (”ελαστικό” Ν)
Search / Indexing server (Solr)
Database server (PostgreSQL): διαχείριση και
αποθήκευση δεδομένων.
4. Τεχνική Αρχιτεκτονική Εύδοξου
Αρχιτεκτονικό Διάγραμμα
AJAX client apps AJAX client apps
Ευδοξου AJAX client appsΕυδοξου User Web Browser
Ευδοξου
https
Apache & Varnish
nginx
Υποδομή
Dynamic Varnish Cache Cloud Computing
Συνοδευτικά worker pool
Αρχεία βιβλίων
Worker 1 Worker 2 Worker n
(JBoss) (JBoss) (JBoss)
High availability &
Indexing / Search Performance storage
Server DB Server
(Solr) (PostgreSQL)
index Eudoxus
DB