J2EE, Horizontal Clustering, Vertical Clustering, Java, Tomcat, Apache, Ha Proxy, Gluster FS, Maria DB, Ganeti, Terracotta
8
Κεφάλαιο 1. Εξισορρόπηση Φορτίου (Load Balancing) ….........….....................................……9
1.1 Τι είναι η εξισορρόπηση φορτίου;….................................................................…...9
1.2 Τύποι κίνησης (traffic) που μπορεί ένας balancer να διαχειριστεί...................….10
1.3 Αλγόριθμοι Load Balancing..............................................................................…..10
1.4 Συσταδοποίηση (Clustering)…...............................................................................12
Κεφάλαιο 2. Υλοποίηση της εφαρμογής...............................................................................14
2.1 Βάση Δεδομένων..............................................................................................…..14
2.2 ΑPI …......................................................................................................................15
2.3 Web-Application....................................................................................................22
2.3.1 Υλοποίηση του home component..........................................................24
2.3.2 Υλοποίηση των μοντέλων........................................................…….........26
2.3.3 Υλοποίηση των services............................................................…...........27
2.3.4 Υλοποίηση του add-game component.....................................…...........29
2.3.5 Υλοποίηση του games component............................................…….......31
2.3.6 Υλοποίηση του game-finished component................................…..........33
2.3.7 Υλοποίηση του finished component..........................................…….......35
2.4. Mobile Application......................................................................…..........…..........38
Κεφάλαιο 3. Load Balancer........................................................................................….........40
Κεφάλαιο 4. Testing..............................................................................................……….........45
4.1 Σχολιασμός Αποτελεσμάτων.....................................................................….........49
Επίλογος και Παρατηρήσεις.....................................................................................…..........50
Βιβλιογραφία – Πηγές................................................................................................….........51
Δημιουργία προσωποποιημένης πύλης υπηρεσιών (portal) για περιβάλλοντα υψηλής ζήτησης
Η προσωποποιημένη παροχή υπηρεσιών από τη Δημόσια Διοίκηση και τις Μεγάλες Επιχειρήσεις
και Οργανισμούς, βρίσκεται σε διαρκή ανάπτυξη. Συνεχώς βομβαρδιζόμαστε από νέες υπηρεσίες
και ηλεκτρονικά συστήματα αιτήσεων – διεκπεραιώσεων τα οποία παρέχουν δυνατότητες
παρακολούθησης της πορείας μίας αίτησης, ή εν γένει της πορείας διεκπεραίωσης μίας εργασίας
που έχει ζητηθεί, παρέχοντας προσωποποιημένη πληροφόρηση και υπηρεσίες. Οι περισσότερες
εφαρμογές από αυτές απευθύνονται σε μεγάλο πλήθος ατόμων και καλούνται να λειτουργήσουν
μέσα σε στενές χρονικές προθεσμίες. Αποτέλεσμα αυτής της ιδιαιτερότητας είναι να ερχόμαστε
συνεχώς αντιμέτωποι με εφαρμογές που δεν μπορούν να εξυπηρετήσουν τα υψηλά φορτία αυτά,
με αποτέλεσμα να καθίστανται οι εφαρμογές μη διαθέσιμες. Αυτό μπορεί να οφείλεται τόσο στον
κακό σχεδιασμό των εφαρμογών, όσο και στον τρόπο με τον οποίο καλούνται να διαχειριστούν τη
σωρεία των ταυτόχρονων χρηστών, με αποτέλεσμα τη μη διαθεσιμότητά τους.
Σκοπός της εργασίας είναι να μελετηθούν μέθοδοι και διαδικασίες υλοποίησης εφαρμογών που θα
λειτουργούν σε περιβάλλον αυξημένης παραλληλίας, τόσο σε Web, Application αλλά και Database
Servers κάνοντας χρήση διαθέσιμων τεχνολογιών Proxies και Load Balancers αλλά και άλλων
συστημάτων συστήματος ώστε να αυξηθεί ο βαθμός παραλληλίας με στόχο την υψηλή
διαθεσιμότητα.
Στη συνέχεια αφού επιλεγεί τεκμηριωμένα η βέλτιστη διάταξη, να υλοποιηθεί αυτή σε περιβάλλον
εικονικών μηχανών, και να αναπτυχθεί εφαρμογή σε Angular 8, η οποία θα παρέχει
προσωποποιημένες υπηρεσίες σε χρήστες κάνοντας χρήση βάσεων δεδομένων. Θα πρέπει να
ελεγχθεί η λειτουργία του συστήματος αυτού προσομοιώνοντας υψηλό βαθμό χρήσης, και πως
αυτό θα συμπεριφερθεί στο σημείο που εξαντλούνται οι διαθέσιμοι πόροι. Ιδανικά θα υλοποιηθεί
μεθοδολογία αντιμετώπισης της εξάντλησης πόρων με κάποιον έξυπνο μηχανισμό που θα διατηρεί
τη προτεραιότητα στην πρόσβαση των χρηστών ενώ παράλληλα το σύστημα θα παραμένει
λειτουργικό, αφού θα πρέπει να ελέγχει τους διαθέσιμους πόρους και να προσαρμόζεται
κατάλληλα.
The personalized provision of services by the Public Administration and the Large Enterprises and
Organizations, is in constant development. We are constantly bombarded with new services and
electronic application-processing systems that provide the ability to track the progress of an
application, or in general the progress of a job that has been requested, providing personalized
information and services. Most of these applications are aimed at a large number of people and are
called to operate within tight deadlines. The result of this peculiarity is that we are constantly faced
with applications that can not serve these high loads, resulting in applications becoming unavailable.
This may be due to both the poor design of the applications and the way in which they are called to
manage the crowd of concurrent users, resulting in their unavailability.
The purpose of this paper is to study methods and procedures for implementing applications that
will operate in an environment of increased parallelism, both in Web, Application and Database
Servers using available Proxies and Load Balancers technologies and other systems to increase the
degree of parallelism in order to high availability.
Then, after selecting the optimal layout, implement it in a virtual machine environment, and
develop an application in Angular 8, which will provide personalized services to users using
databases. The operation of this system should be monitored by simulating a high degree of use, and
how this will behave to the point where available resources are depleted. Ideally, a methodology for
dealing with resource depletion will be implemented with an intelligent mechanism that will
maintain the priority of user access while at the same time the system will remain operational, as it
will have to control the available resources and adapt accordingly