ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ"

Transcript

1 ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΣΧΟΛΗ ΨΗΦΙΑΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΜΑΤΙΚΗΣ Π.Μ.Σ. «ΠΛΗΡΟΦΟΡΙΚΗ ΚΑΙ ΤΗΛΕΜΑΤΙΚΗ» Κατεύθυνση 1: Τεχνολογίες και Εφαρμογές Ιστού Adaptive and usable object oriented stores Δημήτρης Παπαβασιλείου Αθήνα, 2017

2 ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΣΧΟΛΗ ΨΗΦΙΑΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΜΑΤΙΚΗΣ Π.Μ.Σ. «ΠΛΗΡΟΦΟΡΙΚΗ ΚΑΙ ΤΗΛΕΜΑΤΙΚΗ» Κατεύθυνση 1: Τεχνολογίες και Εφαρμογές Ιστού Τριμελής Εξεταστική Επιτροπή Κωνσταντίνος Τσερπές Επίκουρος Καθηγητής, Τμήμα Πληροφορικής και Τηλεματικής, Χαροκόπειο Πανεπιστήμιο Δημοσθένης Αναγνωστόπουλος Καθηγητής, Τμήμα Πληροφορικής και Τηλεματικής, Χαροκόπειο Πανεπιστήμιο Γεώργιος Δημητρακόπουλος Επίκουρος Καθηγητής, Τμήμα Πληροφορικής και Τηλεματικής, Χαροκόπειο Πανεπιστήμιο Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 2

3 Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 3

4 Ο Δημήτρης Παπαβασιλείου δηλώνω υπεύθυνα ότι: 1) Είμαι ο κάτοχος των πνευματικών δικαιωμάτων της πρωτότυπης αυτής εργασίας και από όσο γνωρίζω η εργασία μου δε συκοφαντεί πρόσωπα, ούτε προσβάλει τα πνευματικά δικαιώματα τρίτων. 2) Αποδέχομαι ότι η ΒΚΠ μπορεί, χωρίς να αλλάξει το περιεχόμενο της εργασίας μου, να τη διαθέσει σε ηλεκτρονική μορφή μέσα από τη ψηφιακή Βιβλιοθήκη της, να την αντιγράψει σε οποιοδήποτε μέσο ή/και σε οποιοδήποτε μορφότυπο καθώς και να κρατά περισσότερα από ένα αντίγραφα για λόγους συντήρησης και ασφάλειας. Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 4

5 Περίληψη Η παρούσα διπλωματική εργασία εκπονήθηκε στο πλαίσιο του μεταπτυχιακού Προγράμματος Σπουδών «Πληροφορική και Τηλεματική», του τμήματος Πληροφορικής και Τηλεματικής, της Σχολής Ψηφιακής Τεχνολογίας του Χαροκοπείου Πανεπιστημίου. Στις σύγχρονες εφαρμογές ιστού, για τη διαχείριση των πληροφοριών και τη δημιουργία υπηρεσιών υλοποιούνται μια σειρά από βήματα. Τα σημαντικότερα από αυτά είναι η αποθήκευση αντικειμένων και ο έλεγχος τους ενώ παράλληλα πρέπει να κατασκευαστεί ένας μηχανισμός έκθεσης αυτών των αντικειμένων (συνήθως μέσω REST API) ώστε να μπορούν να χρησιμοποιηθούν από τη γραφική διεπαφή της εφαρμογής ή από άλλα συστήματα. Αν και αυτή η διαδικασία είναι μοντελοποιημένη, εντούτοις επαναλαμβάνεται σε όλες τις εφαρμογές. Στόχος της διπλωματικής είναι η μελέτη και κατασκευή ενός εργαλείου, που θα μπορεί να απλοποιήσει τη διαδικασία υλοποίησης μιας εφαρμογής, από το επίπεδο της αποθήκευσης των αντικειμένων μέχρι εκείνο της διαχείρισής τους μέσω υπηρεσιών. Αναλυτικότερα, μελετήθηκαν τα χαρακτηριστικά του υπολογιστικού νέφους, που αποτελεί το περιβάλλον στο οποίο καλείται να ανταποκριθεί η εφαρμογή, εμβαθύνοντας σε ζητήματα κλιμάκωσης (scalability) και προγραμματιστικών αρχιτεκτονικών που μπορούν να ακολουθηθούν. Στη συνέχεια, έγινε ανάλυση των αντίστοιχων λύσεων που υπάρχουν ήδη και περιεγράφηκαν τα χαρακτηριστικά μιας εφαρμογής προσαρμοστικής διαχείρισης αντικειμένων. Επιπροσθέτως, περιγράφονται εκτενώς όλα τα στάδια της υλοποίησης της παρεχόμενης υπηρεσίας με ανάλυση του λογισμικού που χρησιμοποιήθηκε για τη κατασκευή των υπηρεσιών, την αποθήκευση, την γραφική διεπαφή και τη δυνατότητα επέκτασης σε υπολογιστικό νέφος. Εν κατακλείδι προσφέρεται μια λύση ανοιχτού κώδικα που αντιμετωπίζει προβλήματα επαναλαμβανόμενου κώδικα σε διαφορετικές εφαρμογές παρέχοντας μια μέθοδο καθολικής διαχείρισης των δεδομένων. Λέξεις κλειδιά: Υπολογιστικό Νέφος, Επεκτασιμότητα, Διαχείριση αντικειμένων, Δυναμική διαχείριση Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 5

6 Abstract This diploma thesis has been prepared within the framework of post graduate studies Informatics and Telematics of Harokopio University of Athens. In the modern web applications, a series of steps are made in order to manage information and create services. The most important of these is the persistence of objects and their validation while at the same time a mechanism of display of these objects must be created (usually via REST API) so that they can be used by graphic interface of this application and by other systems. Although this procedure is modelized, it is repeated in all applications. The aim of this thesis is the study and creation of a tool which will be able to simplify the procedure of an application from the level of the persistence of the objects up to their management via services. In addition, the characteristics of the cloud computing have been studied. They comprise the environment in which the application is required to respond, examining more closely issues of scalability and programming architectures which may be followed. Consecutively, an analysis has been made of existing corresponding solutions as well as a description of the characteristics of an adaptive object management. Moreover, a detailed description has been made concerning all the steps which are required to implement the services provided by analyzing the software that has been used for the construction of the services, the persistence, the graphic interface and the ability to scale in the cloud infrastructure. In conclusion, an open source solution has been provided in order to face problems of repeated code in different applications, thus creating a universal method of data management. Key words: Cloud infrastructure, Scalability, Adaptive object management, Data store, Adaptive data store Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 6

7 Περίληψη... 5 Abstract Εισαγωγή Γενικά Σκοπός Αντικείμενο Δομή Εργασίας Χαρακτηριστικά υπολογιστικού νέφους και εφαρμογές Γενικά Υπολογιστικά συστήματα νέφους Αρχιτεκτονική Cloud υποδομής Scalability Οριζόντια κλιμάκωση Κάθετη κλιμάκωση Εικονικοποίηση (Virtualization) Αρχιτεκτονικές διακομιστών στις εφαρμογές Αρχιτεκτονική νημάτων Αρχιτεκτονική χειρισμού γεγονότων Συμπεράσματα αρχιτεκτονικής διακομιστών Ανάλυση παροχών cloud διαχείρισης δεδομένων Amazon Simple Storage Service Amazon Relational Database Service Azure Cosmos DB Συμπεράσματα παρεχόμενων λύσεων Περιβάλλον ιστού για την προσαρμοστική διαχείριση πληροφορίας Βασικός στόχος της εφαρμογής Βασικές αρχές σχεδίασης Επιλογή τεχνολογιών Τεχνολογία εξυπηρετητή ιστού Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 7

8 Vert.x Hazelcast RethinkDB Angular Περιγραφή παρεχόμενης λειτουργικότητας του συστήματος Μοντέλο δεδομένων Χρήστες της πλατφόρμας Βάσεις δεδομένων της πλατφόρμας Αντικείμενα χρηστών Υποστηριζόμενες υπηρεσίες Διαχείριση Χρηστών Είσοδος στο σύστημα Διαχείριση βάσης δεδομένων Διαχείριση πινάκων / αντικειμένων Διαχείριση αντικειμένων Σύνθεση υπηρεσιών Πιλοτική υλοποίηση για την προσαρμοστική και εύχρηστη διαχείριση αντικειμένων Αρχιτεκτονική της εφαρμογής Περιβάλλον ιστού Εγγραφή νέου χρήστη Είσοδος στο σύστημα Προβολή λίστας διαθέσιμων αντικειμένων Δημιουργία νέου είδους αντικειμένου Προβολή λίστας αντικειμένων βάση τύπου Εισαγωγή και επεξεργασία αντικειμένων Συμπεράσματα Βιβλιογραφία Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 8

9 1. Εισαγωγή 1.1. Γενικά Στο πλαίσιο της παρούσας εργασίας σχεδιάστηκε και υλοποιήθηκε η εφαρμογή Revertan που παρέχει έναν εύχρηστο τρόπο μοντελοποίησης αντικειμένων και δημιουργεί υπηρεσίες διαχείρισης των δεδομένων μιας εφαρμογής. Αναλυτικότερα παρέχεται μια σύγχρονη και εύχρηστη γραφική διεπαφή για την δημιουργία τύπων αντικειμένων (παρέχοντας τη δομή που έχουν τα δεδομένα), φορμών για την εισαγωγή των αντικειμένων που έχει περιγράψει ο χρήστης και υπηρεσιών για τη διενέργεια βασικών λειτουργειών όπως δημιουργίας, ανάκτησης, ενημέρωσης και διαγραφής δεδομένων Σκοπός Η παρούσα εργασία έχει ως βασικό σκοπό να αποδείξει ότι με τη χρήση σύγχρονων και ανοικτών τεχνολογιών μπορεί να δημιουργηθεί λογισμικό που θα απλοποιεί την ανάπτυξη μελλοντικών εφαρμογών ιστού, μειώνοντας το χρόνο υλοποίησης, κυρίως, σε εφαρμογές νέφους που χρειάζονται ένα επεκτάσιμο (Scalable) περιβάλλον λειτουργίας Αντικείμενο Στις σύγχρονες εφαρμογές ιστού, για τη διαχείριση των πληροφοριών και τη δημιουργία υπηρεσιών υλοποιούνται μια σειρά από βήματα. Τα σημαντικότερα από αυτά είναι η αποθήκευση αντικειμένων και ο έλεγχος τους, ενώ παράλληλα πρέπει να κατασκευαστεί ένας μηχανισμός έκθεσης αυτών των αντικειμένων (συνήθως μέσω REST API) ώστε να μπορούν να χρησιμοποιηθούν από τη γραφική διεπαφή της εφαρμογής ή από άλλα συστήματα. Αν και αυτή η διαδικασία είναι μοντελοποιημένη, εντούτοις επαναλαμβάνεται σε όλες τις εφαρμογές. Αντικείμενο της Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 9

10 διπλωματικής είναι η μελέτη και κατασκευή ενός εργαλείου, που θα μπορεί να απλοποιήσει τη διαδικασία υλοποίησης μιας εφαρμογής, από το επίπεδο της αποθήκευσης των αντικειμένων μέχρι εκείνο της διαχείρισής τους μέσω υπηρεσιών Δομή Εργασίας Η παρούσα εργασία είναι οργανωμένη σε οχτώ(8) κεφάλαια: Στο κεφάλαιο 1, περιλαμβάνονται τα γενικά στοιχεία για το αντικείμενο της παρούσας εργασίας και αναφέρονται περιληπτικά ο σκοπός, το αντικείμενο και η δομή της αυτής. Στο 2 ο κεφάλαιο, περιγράφονται βασικές έννοιες συστημάτων μεγάλης κλίμακας, όπως αυτό της επεκτασιμότητας μιας εφαρμογής, καθώς και τα χαρακτηριστικά σύγχρονων υπολογιστικών νεφών (Cloud computing). Επιπροσθέτως, παρουσιάζονται οι σύγχρονες αρχιτεκτονικές στο επίπεδο των διακομιστών και το πως επηρεάζουν την αποδοτικότητα μιας εφαρμογής. Το 2 ο κεφάλαιο, εν κατακλείδι, ασχολείται με την καταγραφή σύγχρονων λύσεων του Cloud για τη διαχείριση δεδομένων. Στο κεφάλαιο 3, περιγράφονται οι απαιτήσεις που πρέπει να ικανοποιεί ένα περιβάλλον ιστού καθώς και οι σχεδιαστικές προκλήσεις που έχει να αντιμετωπίσει. Προτείνεται, συγχρόνως, ο συνδυασμός ενός ολοκληρωμένου συνόλου λογισμικού προσαρμοσμένο για την κάλυψη όλων των αναγκών αλλά και των μελλοντικών επεκτάσεων της εφαρμογής. Το κεφάλαιο 4 αναφέρεται στο μοντέλο δεδομένων που προτείνεται για ένα σύστημα προσαρμοστικής διαχείρισης πληροφορίας, ενώ το 5 ο κεφάλαιο ασχολείται με το σύνολο των υπηρεσιών που τελικώς υλοποιήθηκε. Το 6 ο κεφάλαιο είναι αφιερωμένο στην υλοποίηση που έγινε με ανάλυση της αρχιτεκτονικής και της γραφικής διεπαφής. Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 10

11 Στο κεφάλαιο 7, καταγράφονται τα συμπεράσματα της παρούσας διπλωματικής καθώς και οι μελλοντικές επεκτάσεις που μπορούν να υλοποιηθούν Τέλος, στο κεφάλαιο 8 παρατίθεται η βιβλιογραφία που χρησιμοποιήθηκε. Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 11

12 2. Χαρακτηριστικά υπολογιστικού νέφους και εφαρμογές 2.1. Γενικά Το υπολογιστικό νέφος είναι η αποθήκευση, η επεξεργασία και η χρήση δεδομένων από απομακρυσμένους υπολογιστές στους οποίους εξασφαλίζεται πρόσβαση μέσω του διαδικτύου. Ειδικότερα, στα χαρακτηριστικά ενός υπολογιστικού νέφους υπάρχει η εξυπηρέτηση αιτημάτων κατ απαίτηση, άμεσα και χωρίς καθυστερήσεις. Με τη πρόσβαση ενός υπολογιστικού νέφους στο διαδίκτυο, αυτό καλείται να παρέχει υπηρεσίες σε οποιαδήποτε συσκευή. Παράλληλα, τα νέφη αποτελούν ευέλικτα συστήματα που χειρίζονται αυξημένους υπολογιστικούς πόρους και καλούνται να αντιμετωπίσουν περιόδους ιδιαίτερα αυξημένου φόρτου. Για να πετύχουν το σκοπό τους, κύρια αρχή που καλούνται να υλοποιούν είναι εκείνη της επεκτασιμότητας, δηλαδή της λειτουργίας αυτής που τους επιτρέπει να αξιοποιούν συστάδες υπολογιστών, αθροίζοντας τους πόρους τους Υπολογιστικά συστήματα νέφους Τα υπολογιστικά συστήματα νέφους (cloud computing) αποτελούν ένα χώρο που διαρκώς εξελίσσεται, προσελκύοντας όλο και μεγαλύτερη προσοχή τα τελευταία χρόνια, τόσο για τις τεχνολογίες που αναπτύσσονται, όσο και για τη δυναμική που εμφανίζει στην οικονομία. Αξιοσημείωτη είναι, επίσης, η θετική στάση που διατηρούν τα μέσα ενημέρωσης καθώς και οι επιστήμονες της πληροφορικής απέναντι στις ευκαιρίες που προσφέρει το cloud computing. Είναι γεγονός ότι αρκετές μελέτες έχουν πραγματωθεί ώστε να δοθεί ένας σαφής ορισμός για το Cloud computing [1, 2], εντούτοις οι διαφορετικοί ορισμοί έχουν σημεία σύγκλησης. Το Cloud computing αναφέρεται στη δυνατότητα ενός υπολογιστικού συστήματος να παρέχει πόρους υλικού και λογισμικού ως υπηρεσία σε ένα κλιμακούμενο περιβάλλον. Αρχιτεκτονικά, το κύριο μέρος μιας Cloud υποδομής είναι το κέντρο δεδομένων (data center) που αποτελείται από υπολογιστικούς και αποθηκευτικούς πόρους, δηλαδή υλικό, αλλά και από λογισμικό που παρέχεται επί μίσθωση. Σύμφωνα με το Berkeley, αυτές οι υπηρεσίες που παρέχονται μέσω του διαδικτύου, αναφέρονται Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 12

13 ως «Λογισμικό ως υπηρεσία» - Software as a Service (SaaS). To υλικό και το λογισμικό αναφέρονται ως Cloud. Όταν οι υπηρεσίες Cloud είναι διαθέσιμες επί πληρωμή στο ευρύ κοινό τότε αυτές αποτελούν ένα δημόσιο Cloud (Public Cloud). Με τη χρήση του όρου ιδιωτικό Cloud (Private Cloud) αναφερόμαστε σε εσωτερικές υπολογιστικές υποδομές εταιριών ή άλλων οργανισμών που δεν είναι διαθέσιμα στο ευρύ κοινό. Βέβαια, στο γενικότερο όρο του Cloud περιλαμβάνονται οι υπηρεσίες SaaS μόνο των Public Cloud υποδομών και όχι εκείνων των Private Cloud.[3] Από πλευράς υλικού, οι Cloud υποδομές διακρίνονται από τρία βασικά χαρακτηριστικά: Οι χρήστες των Cloud υποδομών δεν χρειάζεται να σχεδιάζουν μόνοι τους την ανάπτυξη της υπολογιστικής τους υποδομής. Το Cloud δίνει την ψευδαίσθηση των απεριόριστων υπολογιστικών πόρων στους χρήστες του. Οι χρήστες μπορούν να αυξομειώνουν το μέγεθος των πόρων που ζητούν από το Cloud, αυξάνοντας την υπολογιστική ισχύ, τη μνήμη ή τον αποθηκευτικό χώρο σύμφωνα με τις ανάγκες τους. Οι πάροχοι Cloud υπηρεσιών προσφέρουν μοντέλα πληρωμών τύπου pay-as-you-go, αποδεσμεύοντας επεξεργαστές και πόρους αποθήκευσης όταν το σύστημα δεν τους χρειάζεται ώστε να μειωθούν τα έξοδα. Συμπερασματικά, στο πλαίσιο μιας πλατφόρμας διαχείρισης δεδομένων, όπου το μέγεθος και η πολυπλοκότητά τους μπορεί να τα ταξινομεί στην κατηγορία των Big Data, το Cloud μπορεί να αποτελέσει μια αξιόλογη λύση. Η παροχή απεριόριστων πόρων ανοίγει το δρόμο στην επεξεργασία Big Data για τους χρήστες που δεν έχουν τη δυνατότητα να δημιουργήσουν της δικές τους Scalable υποδομές (Συστάδες υπολογιστών). Με την ενοικίαση πόρων, οι χρήστες μπορούν να εκτελέσουν επεξεργασίες στα δεδομένα τους με οικονομικό τρόπο. Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 13

14 2.3. Αρχιτεκτονική Cloud υποδομής Αρχιτεκτονικά, στο Cloud computing μπορούν να διακριθούν τρία επίπεδα όπως μπορούμε να δούμε στο σχήμα 2.1. Σχήμα 2.1 Επίπεδα Cloud Computing Αναλυτικότερα: Infrastructure as a Service (IaaS). Με τον όρο IaaS αναφερόμαστε σε παροχή υλικού υπολογιστή στο πλαίσιο υπηρεσίας. Πιο συγκεκριμένα, το IaaS προσφέρει υλικό όπως υπολογιστική ισχύ, μνήμη, δίκτυο και δίσκο κατά παραγγελία με τη μορφή εικονικών πόρων. Οι χρήστες IaaS Cloud, συνήθως, ενοικιάζουν εικονικές μηχανές, με χαρακτηριστικά αντίστοιχα των αναγκών τους, στις οποίες δίνεται η δυνατότητα επιλογής του επιθυμητού λειτουργικού συστήματος και εκτέλεσης λογισμικού της επιλογής τους. Τέλος, τα τέλη χρήσης της υπηρεσίας χρεώνονται με μοντέλα πληρωμών που αντικατοπτρίζουν την πραγματική ποσότητα των πόρων που καταναλώθηκαν, όπως για παράδειγμα κύκλοι της Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 14

15 CPU ανά ώρα. Παραδείγματα IaaS Cloud υποδομών είναι: Amazon Elastic Compute Cloud [4], Nimbus [5] και OpenNebula [6]. Platform as a Service (PaaS). Το επίπεδο PaaS αποτελεί μια επέκταση του IaaS, για να παρέχει μια πιο υψηλού επιπέδου υπολογιστική πλατφόρμα, η οποία διαθέτει από μόνη της το λειτουργικό σύστημα, τη βάση δεδομένων και γενικότερα ένα περιβάλλον για την εκτέλεση εφαρμογών. Το PaaS στοχεύει στην κατηγορία των μηχανικών λογισμικού, επιτρέποντάς τους να σχεδιάζουν τις εφαρμογές τους χρησιμοποιώντας συγκεκριμένα πακέτα λογισμικού. Επιπροσθέτως, η πλατφόρμα παρέχει όλα τα εργαλεία που είναι απαραίτητα για την κατασκευή του λογισμικού, ενώ ο προγραμματιστής δεν ασχολείται με το υλικό, το οποίο συνήθως ελέγχεται από μια IaaS πλατφόρμα, στην οποία δεν έχει πρόσβαση ο χρήστης. Παραδείγματα PaaS είναι: Google App Engine [7], Microsoft Azure [8]. Software as a Service (SaaS). Στο υψηλότερο επίπεδο της κλίμακας βρίσκεται το SaaS. Χαρακτηριστικά, αποτελεί το πιο ολοκληρωμένο επίπεδο για τους τελικούς χρήστες. Αυτό βρίσκει έρεισμα στο γεγονός ότι παρέχει ολοκληρωμένο λογισμικό ως υπηρεσία, επιτρέποντας στους χρήστες την αξιοποίηση εφαρμογών που έχουν αναπτυχθεί στο Cloud. Οι χρήστες δεν εγκαθιστούν λογισμικό στον υπολογιστή τους, ούτε είναι υπεύθυνοι για τη λήψη ενημερώσεων, αλλά απλώς, κάνουν χρήση των εφαρμογών συνήθως μέσω περιηγητών Ιστού (Web browser). Στα παραδείγματα SaaS συγκαταλέγονται: Google Docs [9] and Microsoft Office Live [10] 2.4. Scalability Ως κλιμακοθετησιμότητα ή αλλιώς επεκτασιμότητα (Scalability) ορίζεται ως η ικανότητα ενός συστήματος, δικτύου ή διεργασίας να χειρίζεται με ικανό τρόπο τον διαρκώς αυξανόμενο όγκο εργασίας, ή τη δυνατότητά του να διευρύνεται για να εξυπηρετήσει τις περαιτέρω απαιτήσεις.[15] Σύμφωνα με τον ανωτέρω ορισμό, η δυνατότητα επεκτασιμότητας ενός συστήματος αφορά ένα σύστημα συγκεντρωτικά και όχι μια μεμονωμένη ιδιότητα που μπορεί να έχει. Επί τη παραδείγματι, η κλιμακούμενη απόδοση δεδομένων ενός συστήματος αναφέρεται στην ικανότητά του να αυξάνει την απόδοσή του όταν προστίθενται νέοι πόροι για να χειριστεί ένα αυξημένο φόρτο εργασίας. Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 15

16 Ένα σύστημα που έχει κακή επεκτασιμότητα, μπορεί να οδηγήσει, επακολούθως, σε κακή απόδοση. Σε πολλές περιπτώσεις, μάλιστα, η προσθήκη περισσότερων πόρων σε ένα μη κλιμακούμενο σύστημα αποτελεί κακή επιλογή που δε δύναται, εν τέλει, να οδηγήσει σε ουσιαστικές βελτιώσεις. Προφανώς, σε ένα σύστημα που καλείται να διαχειρίζεται δεδομένα μεγάλης κλίμακας απαιτείται η εξαρχής σωστή σχεδίαση ώστε να μπορούν να δημιουργηθούν πρόσφοροι όροι επεκτασιμότητάς του. Τέλος, υπάρχουν δύο είδη επεκτασιμότητας, η οριζόντια και η κάθετη κλιμάκωση οι οποίες θα αναλυθούν παρακάτω Οριζόντια κλιμάκωση Σε αυτή τη προσέγγιση στόχος είναι να προστίθενται περισσότεροι κόμβοι σε ένα σύστημα, εν προκειμένω νέοι υπολογιστικοί κόμβοι, δημιουργώντας μια συστάδα υπολογιστών. Με τη πτώση των τιμών των τελευταίων, μια ισχυρή συστάδα υπολογιστών μπορεί να κατασκευαστεί με τη χρήση κοινών (commodity) υπολογιστών χαμηλού κόστους συνδεδεμένων σε ένα τοπικό δίκτυο. Ακολουθώντας μια «διαίρει και βασίλευε» λογική, όπου σε κάθε κόμβο εκχωρείται μόνο ένα υποσύνολο του συνολικού προβλήματος, το υπολογιστικό σύστημα μπορεί να κλιμακώνεται ως ένα βαθμό και ανάλογα με το πρόβλημα, ώστε να προσαρμόζεται στις ανάγκες Κάθετη κλιμάκωση Στην περίπτωση της κάθετης κλιμάκωσης οι πόροι προστίθενται σε μερικούς κόμβους ενός συστήματος, δηλαδή πρακτικά μεγαλύτερη υπολογιστική ισχύ και περισσότερη μνήμη σε κάθε κόμβο. Η τακτική αυτή διαθέτει στις εφαρμογές που εκτελούνται περισσότερους πόρους για κατανάλωση. Με την προσθήκη περισσότερων επεξεργαστών μπορούν περισσότερες διεργασίες να εκτελούνται παράλληλα ενώ με την προσθήκη μνήμης ελαχιστοποιούμε την πρόσβαση στο δίσκο. Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 16

17 2.5. Εικονικοποίηση (Virtualization) Η εικονικοποίηση (Virtualization) αποτελεί μια δομική τεχνολογία που χρησιμοποιείται κατά κόρων στο Cloud Computing. Με τον όρο εικονικοποίηση αναφερόμαστε στο λογισμικό εκείνο που κρύβει τους πόρους που βρίσκονται διασκορπισμένοι σε υπολογιστές και τους παρουσιάζει ως έναν ενιαίο υπολογιστή στις εφαρμογές και τους χρήστες του Cloud [11]. Εντοπίζονται διαφορετικά επίπεδα virtualization όπως: Υλικού. Εικονικοποίηση ολόκληρου του υλικού του κάθε υπολογιστή. Δικτύου. Συνδυασμός δικτυακών πόρων υλικού και λογισμικού σε ένα ενιαίο εικονικό δίκτυο. Αποθήκευσης. Ομαδοποίηση των φυσικών πόρων αποθήκευσης από πολλαπλές αποθηκευτικές συσκευές δημιουργώντας μια ενιαία εικονική συσκευή αποθήκευσης. Η συσκευή αυτή μπορεί να χωριστεί ξανά σε εικονικές συσκευές, καταργώντας τις εξαρτήσεις μεταξύ φυσικής αποθήκευσης των δεδομένων και της εικονικοποιημένης θέσης τους. Μνήμης. Εικονικοποίηση της μνήμης στα επίπεδα των λειτουργικών συστημάτων και εφαρμογών Αρχιτεκτονικές διακομιστών στις εφαρμογές Παραδοσιακά, υπάρχουν δύο ανταγωνιστικές αρχιτεκτονικές που αφορούν την αρχιτεκτονική του λογισμικού που τρέχει σε μια Cloud υποδομή. Από τη μια πλευρά, είναι η αρχιτεκτονική Νημάτων (Thread Architecture) και η άλλη, αυτή που αφορά το προγραμματισμό χειρισμού γεγονότων (Event Driven Architecture). Οι προκλήσεις που συναντούν τα σύγχρονα υπολογιστικά συστήματα κρίνουν αναγκαία τη μελέτη των δύο αυτών αρχιτεκτονικών, για την επιλογή της κατάλληλης, καθώς αποτελεί δομικό στοιχείο μιας σύγχρονης εφαρμογής και μπορεί να κρίνει σε σημαντικό βαθμό τις επιδόσεις της στο Cloud. Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 17

18 Αρχιτεκτονική νημάτων Στην αρχιτεκτονική νημάτων η σημαντικότερη εφαρμογή είναι εκείνη των διακομιστών πολλαπλών νημάτων (Multi-thread servers) οι οποίοι χρησιμοποιούν ένα thread ανά σύνδεση. Αυτό το χαρακτηριστικό, τους έχει κάνει ευρέως γνωστούς κυρίως λόγω της εύκολης υλοποίησης για την κατασκευή υπηρεσιών διαδικτύου. Αναλυτικότερα, το λειτουργικό σύστημα αναλαμβάνει την επικάλυψη πολλαπλών νημάτων μέσω χρονοπρογραμματισμού προεκχώρισης. Στις περισσότερες περιπτώσεις αρκεί μια χρονοβόρα διαδικασία για να μπλοκάρει το νήμα στο οποίο εκτελείται, και να ενεργοποιήσει τον επαναπρογραμματισμό, προκαλώντας τη διακοπή της προκειμένου να συνεχίσουν τα υπόλοιπα νήματα τη λειτουργεία τους. Γενικά, θεωρείται ένα σεβαστό μοντέλο για αξιοπρεπείς επιδόσεις και είναι ιδανικό όταν ο επεξεργαστής καλείται να εκτελέσει μια εύλογη ποσότητα λειτουργιών. Επιπλέον, πολλαπλοί πυρήνες του επεξεργαστή μπορούν να χρησιμοποιούνται απευθείας, καθώς τα νήματα και οι διεργασίες προγραμματίζονται αποδοτικά στους πυρήνες που είναι διαθέσιμοι Αρχιτεκτονική χειρισμού γεγονότων Εναλλακτική επιλογή στην αρχιτεκτονική νημάτων αποτελεί αυτή του χειρισμού γεγονότων (event driven) η οποία είναι εξίσου διαδεδομένη. Λόγω της ασύγχρονης λογικής της, απαιτείται διαφορετικός χειρισμός των προς εκτέλεση λειτουργιών. Μια συνήθης τακτική είναι η ανάθεση σε ένα νήμα πολλαπλών συνδέσεων. Το νήμα με τη σειρά του χειρίζεται όλα τα συμβάντα που προκύπτουν από την επεξεργασία των αιτημάτων. Όπως φαίνεται και στο σχήμα 2.2, μια ουρά συμβάντων και τα νήματα, εκτελούν διεργασίες κάθε φορά που κάποιο αίτημα εισέρχεται σε αυτή την ουρά. Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 18

19 Σχήμα 2.2 Εννοιολογική παρουσίαση συμβάντων μιας Event-Driven αρχιτεκτονικής Συμπεράσματα αρχιτεκτονικής διακομιστών Η μη συσχέτιση των συνδέσεων και των νημάτων μπορεί να μειώσει δραστικά τον αριθμό των νημάτων που απασχολούνται στον διακομιστή. Συνεπώς, αν απαλλαγούμε από το άσκοπο μπλοκάρισμα των νημάτων, δεν θα χρειαζόμαστε μια στοίβα νημάτων για κάθε σύνδεση. Το γεγονός αυτό επηρεάζει θετικά το μέγεθος της απαιτούμενης μνήμης, ενώ και ο επεξεργαστής σπαταλά λιγότερους πόρους. Η αρχιτεκτονική χειρισμού γεγονότων διαφαίνεται ως ιδανική λύση, που κρατά χαμηλά τα επίπεδα χρήσης του επεξεργαστή και της μνήμης, αφήνοντας σαν μοναδικό παράγοντα συμφόρησης, σε ένα σύγχρονο υπολογιστικό σύστημα, τη βάση δεδομένων Ανάλυση παροχών cloud διαχείρισης δεδομένων Ο αριθμός των παρόχων Cloud υπηρεσιών παρουσιάζει σταθερή αύξηση τα τελευταία δέκα χρόνια [12]. Δεδομένου ότι δεν είναι στο πεδίο αυτής της εργασίας να συγκριθούν όλοι οι υπάρχοντες πάροχοι υπηρεσιών Cloud, θα αναλυθούν οι μεγαλύτεροι από αυτούς ως προς το κομμάτι των δυνατοτήτων αποθήκευσης, διαχείρισης και ανάλυσης δεδομένων. Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 19

20 Amazon Simple Storage Service Το Amazon Simple Storage Service (Amazon S3) παρέχει μια υποδομή αποθήκευσης δεδομένων ως αντικείμενα μέσα σε πόρους που ονομάζονται «buckets» (δηλαδή κουβάδες) [13]. Υποστηρίζει τρία διαφορετικά είδη αποθήκευσης δεδομένων: Standard. Για αποθήκευση γενικού σκοπού Standard-IA. Για αποθήκευση δεδομένων που δεν θα ζητούνται συχνά από το σύστημα, οπότε θα υπάρχει μικρή προσπέλαση Glacier. Για την αποθήκευση δεδομένων συνήθως ιστορικού χαρακτήρα αφού παρέχει δυνατότητες αποθήκευσης και ανάλυσης χωρίς καμία άλλη επεξεργασία. Το Amazon S3 αποτελείται από δύο μέρη. Αυτό που αφορά την παρεχόμενη διεπαφή τύπου Rest και εκείνο της αποθήκευσης των δεδομένων σε μια scalable βάση δεδομένων που η ίδια η Amazon έχει κατασκευάσει, την DynamoDB. Τα αντικείμενα που αποθηκεύονται στην DynamoDB είναι προσβάσιμα μέσω των hash keys τους, αλλά μπορούν επιπλέον να εκτελεστούν ερωτήματα σε αυτά με χρήση δευτερευόντων ευρετηρίων (secondary indexes). Η προβλεπόμενη απόδοση ενός τέτοιου συστήματος μπορεί να κλιμακωθεί αναλόγως με τη ζήτηση για υπολογιστική ισχύ κατά την επεξεργασία των αιτημάτων. Βέβαια, ένας περιορισμός του Amazon S3 που προκύπτει από τη χρήση της DynamoDB στον πυρήνα του αφορά το μέγεθος των αντικειμένων. Το κάθε αντικείμενο δεν επιτρέπεται να υπερβαίνει τα 64ΚΒ σε μέγεθος, ώστε να εξασφαλιστεί χαμηλό latency και data replication των δεδομένων. Επιπροσθέτως, επειδή η DynamoDB είναι μια πιο πολύπλοκη βάση από ένα απλό key-value store, προϋποθέτει ότι οι χρήστες έχουν άριστη γνώση της τεχνολογίας καθώς η διαχείριση γίνεται εξολοκλήρου μέσω API χωρίς κάποια γραφική διεπαφή. Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 20

21 Amazon Relational Database Service Το Amazon Relational Database Service (Amazon RDS) είναι μια λύση που παρέχει σχεσιακές βάσεις δεδομένων στο Cloud. Υποστηρίζει πλήθος σχεσιακών βάσεων όπως Amazon Aurora, PostgreSQL, MySQL, MariaDB, Oracle, and Microsoft SQL Server [14]. Δε διατίθεται κάποια υπηρεσία που να παρέχει δυνατότητες επεξεργασίας και ανάκτησης των δεδομένων. Ουσιαστικά, φιλοξενεί βάσεις δεδομένων κατά παραγγελία, φροντίζοντας για την παραμετροποίηση, εγκατάσταση και ασφάλειά τους Azure Cosmos DB To Azure Cosmos DB αποτελεί την πρόταση της Microsoft στη παροχή υπηρεσίας αποθήκευσης δεδομένων στο Cloud. Επιτρέπει στους χρήστες του να δημιουργούν ελαστικά και ανεξάρτητος απόδοσης εικονικές μηχανές παρέχοντας εγγυήσεις στις χαμηλές καθυστερήσεις και την διαθεσιμότητά τους. Παρέχει ευρεία γεωγραφική κάλυψη ενώ δίνει, παράλληλα, την επιλογή στο χρήστη να επιλέξει τι είδους βάση θέλει να χρησιμοποιήσει. Οι βάσεις δεδομένων που υποστηρίζονται είναι οι: DocumentDB, MongoDB, Azure Table και Azure Graph. Για τις βάσεις δεδομένων Azure Table και DocumentDB παρέχεται Rest API διαθέτοντας διαδικασίες αποθήκευσης και σύνθετων ερωτημάτων, ενώ για τις υπόλοιπες υποστηρίζεται ένα πλήθος APIs διαφορετικών γλωσσών προγραμματισμού Συμπεράσματα παρεχόμενων λύσεων Οι λύσεις που παρέχονται σχετικά με την προσαρμοστική αποθήκευση αντικειμένων στο Cloud είναι ποικίλες και διαφορετικές μεταξύ τους. Η διαφορετικότητα δεν περιορίζεται μόνο στο γεγονός ότι ανήκουν σε διαφορετικές εταιρίες με διαφορετικά πακέτα ενοικίασης των υπηρεσιών τους, Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 21

22 αλλά στον τρόπο που διαθέτουν τα αντικείμενα μιας εφαρμογής. Η επικρατούσα τάση, πάντως, είναι η διάθεση των αντικειμένων αλλά και ο γενικότερος χειρισμός τους να γίνεται μέσω υπηρεσίες τύπου REST (Representational State Transfer), που σαν τεχνολογία δεν έχει αυστηρές προδιαγραφές. Το γεγονός αυτό από τη μια δίνει ευελιξία, από την άλλη όμως προκαλεί σύγχυση (για παράδειγμα τι γίνεται στις περιπτώσεις όπου για μια σειρά από λόγους, ένας οργανισμός αποφασίζει να αλλάξει πάροχο;) Τρόποι να επιτευχθεί το αναγκαίο data migration υπάρχουν πολλοί, όμως τα συστήματα που χρησιμοποιούσαν τις προηγούμενες υπηρεσίες χρειάζονται σημαντικές αλλαγές για να αποκτήσουν πρόσβαση στα δεδομένα τους, σύμφωνα με τις προδιαγραφές που ακολουθεί η καινούργια υπηρεσία. Ένα άλλο ζήτημα που προκύπτει με τις υπάρχουσες λύσεις είναι ότι βάζουν ένα όριο στην απόδοση των συστημάτων με βάση τα χρήματα που καταβάλλονται. Αν το σύστημα χρειάζεται να καλύψει υπερβολικά μεγάλη ζήτηση, το Cloud απαιτεί πολύ περισσότερα χρήματα, «τιμωρώντας» ουσιαστικά τους χρήστες είτε ανεβάζοντας το κόστος, είτε αυξάνοντας τις καθυστερήσεις στη διεκπεραίωση των αιτημάτων. Υπάρχουν, βέβαια, περιπτώσεις που η μετάβαση σε dedicated υλικό είναι πιο οικονομικές και αξιόπιστες για τη κλιμάκωση μιας εφαρμογής. Συναθροίζοντας τα ανωτέρω, προκύπτει η ανάγκη για πιο ελαστικές σχέσεις με τους παρόχους και ιδανικά θα ήταν επιθυμητό να παρέχονται οι ίδιες υπηρεσίες στο επίπεδο προτυποποίησής τους από διαφορετικά συστήματα, ώστε να είναι εφικτή η αλλαγή παρόχου. Δεν υπάρχει, όμως, η δυνατότητα, το λογισμικό που τρέχει στο Cloud και παρέχει μέσω λογισμικού έτοιμες υπηρεσίες επεξεργασίας των αντικειμένων (SaaS), να εκτελεστεί εκτός της Cloud υποδομής του παρόχου. Είτε πρόκειται για λογισμικά κλειστού κώδικα, είτε είναι κατασκευασμένα ώστε να τρέχουν σε πολύ συγκεκριμένες αρχιτεκτονικές και υλικό μιας Cloud υποδομής. Χρειαζόμαστε πλατφόρμες ανοιχτού κώδικα, που να μπορούν να τρέξουν σε οποιαδήποτε IaaS, PaaS υποδομή, από το Cloud μέχρι ένα μέσο προσωπικό υπολογιστή παρέχοντας προσαρμοσμένη διαχείριση των αντικειμένων που χειρίζεται ένας ανεξαρτήτου μεγέθους οργανισμός. Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 22

23 3. Περιβάλλον ιστού για την προσαρμοστική διαχείριση πληροφορίας 3.1. Βασικός στόχος της εφαρμογής Ο βασικός στόχος της εφαρμογής είναι η παροχή μιας ολοκληρωμένης λύσης που θα λειτουργεί σαν ένα ενδιάμεσο επίπεδο μεταξύ της αποθήκευσης, οργάνωσης και επεξεργασίας των αντικειμένων ενός οργανισμού και της εφαρμογής και της γραφικής διεπαφής ή κάποιου άλλου εξωτερικού συστήματος. Στις σύγχρονες εφαρμογές, ανεξαρτήτως μεγέθους, μπορούμεείναι εφικτή η διάκριση μιας σειράς από δομικά στοιχεία (σχήμα 3.1). Ως προς τη διαχείριση των αντικειμένων υπάρχουν δύο επίπεδα, εκείνο της αποθήκευσης και αυτό της επικύρωσης της δομής της πληροφορίας. Αμέσως μετά υπάρχει το επίπεδο της εσωτερικής διαχείρισης της εφαρμογής το οποίο αφορά τον διακομιστή, το λογισμικό που τρέχει σε αυτόν, καθώς και το κομμάτι της διαχείρισης των αιτημάτων. Αυτή η αρχιτεκτονική καταλήγει στην παροχή ενός συνόλου υπηρεσιών και διατίθεται μέσω του διαδικτύου για τη γραφική αναπαράσταση της πληροφορίας στους τελικούς χρήστες του διαδικτύου. Δομικά στοιχεία μιας σύγχρονης εφαρμογής Σχήμα 3.1 Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 23

24 Από το σχήμα 3.1, προκύπτει ξεκάθαρα ότι ανεξαρτήτως από το είδος της εφαρμογής, κάθε φορά που δημιουργείται μια νέα, ένα μεγάλο σύνολο βημάτων επαναλαμβάνεται μεταξύ του επιπέδου αποθήκευσης της πληροφορίας και του εξωτερικού αιτήματος. Αυτό έχει ως αποτέλεσμα, έναν επαναλαμβανόμενο κώδικα ο οποίος είναι και παραδόξως δύσκολο να μεταφέρεται αυτούσιος σε διαφορετικές εφαρμογές. Κύριος στόχος της εφαρμογής που κλήθηκε η παρούσα εργασία να κατασκευάσει είναι να δημιουργήσει ένα νέο επίπεδο υπερκάλυψης των επαναλαμβανόμενων βημάτων και πιο συγκεκριμένα των: Server, ο οποίος αναλύει και χειρίζεται αιτήματα χρηστών του διαδικτύου ή άλλων εφαρμογών. Routing, δηλαδή του λογισμικού εκείνου που είναι υπεύθυνο να δρομολογεί τα αιτήματα εντός της εφαρμογής. Validation, προσφέροντας έλεγχο στη δομή των αντικειμένων που έρχονται ως είσοδο στο σύστημα. Persistence, που αφορά τη δυνατότητα του συστήματος να διατηρεί αποθηκευμένα τα αντικείμενα. Το λογισμικό που υλοποιήθηκε παρέχει όλα τα επαναλαμβανόμενα αυτά βήματα παρέχοντας μια γραφική διεπαφή για τη μοντελοποίηση των αντικειμένων που θα κληθεί να χειριστεί. Επιπλέον, προσφέρει ένα middleware παρέχοντας τις βασικές λειτουργίες που χρειάζονται τα αντικείμενα (ανάκτηση, αποθήκευση, ενημέρωση, διαγραφή) και ένα τύπου REST API για τη διαχείριση των αντικειμένων εκτός του συστήματος. Κύριο μέλημα κατά την υλοποίηση αυτού του λογισμικού ήταν να μην έχει περιορισμούς που αφορούν το μέγιστο όγκο των αιτημάτων προς επεξεργασία αφού κατασκευάστηκε στα πρότυπα αντίστοιχων SaaS υπηρεσιών, δίνοντας τη δυνατότητα κλιμάκωσης από ένα προσωπικό υπολογιστή για μικρές εφαρμογές μέχρι το επίπεδο του Cloud. Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 24

25 3.2. Βασικές αρχές σχεδίασης Η βάση ενός συστήματος προσαρμοστικής διαχείρισης δεδομένων είναι τα ίδια τα δεδομένα αλλά και οι βασικές υπηρεσίες που θα παρέχουν τη δυνατότητα αλληλεπίδρασης με αυτά. Όπως αποτυπώνεται και στο σχήμα 3.2, για την αποθήκευση και ανάκτηση των δεδομένων χρησιμοποιήθηκε μια μη σχεσιακή βάση δεδομένων η οποία απέκτησε τέτοια μορφή ώστε είναι σε θέση το σύστημα να παρέχει υψηλές επιδόσεις, δυνατότητες ανάλυσης των δεδομένων και απομόνωσης για το χειρισμό δεδομένων αντικειμένων προερχόμενων από διαφορετικές εφαρμογές. Στη βάση δεδομένων, πρόσβαση έχουν μονάχα οι υπηρεσίες. Ένα σύνολο υπηρεσιών, απολύτως παραμετροποιήσιμων, είναι σε θέση να χειρίζεται τα δεδομένα του συστήματος μέσω εσωτερικής συνεργασίας υπηρεσιών αλλά και με παροχή λειτουργικότητας σε εξωτερικές εφαρμογές. Ενδεικτικά, με την εφαρμογή μπορούν να συνεργαστούν: Customized tools, όπου με συνδυασμό των υπηρεσιών που έχουν υλοποιηθεί στον πυρήνα της εφαρμογής μπορούν να προσθέσουν περαιτέρω λειτουργικότητα στο σύστημα. Web Applications, καθώς οι υπηρεσίες είναι προσβάσιμες από το διαδίκτυο, άλλες διαδικτυακές εφαρμογές μπορούν να συνεργαστούν με τις υπηρεσίες. BPM tools, σε περιπτώσεις υποδομών που υπάρχουν αυστηροί επιχειρησιακοί κανόνες, και πρέπει να εφαρμόζονται στα αντικείμενα που χειρίζεται το σύστημα. Αξιοποιώντας όλες τις αρχές που πρέπει να έχει μια εφαρμογή που ουσιαστικά παίζει το ρόλο του ενδιάμεσου στα αντικείμενα μια εφαρμογής και στην αποθήκευσή τους και αποτυπώνοντάς τες στις υπηρεσίες, κατασκευάστηκε μια διεπαφή. H διεπαφή αυτή είναι ικανή να χειριστεί ένα μεγάλο μέρος των διατεθούμενων υπηρεσιών. Επιπροσθέτως, επιτρέπει στους χρήστες να αλληλοεπιδρούν με τις υπηρεσίες της εφαρμογής με χρήση φυλλομετρητών σε υπολογιστές, ταμπλέτες και κινητά τηλέφωνα. Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 25

26 Περιβάλλον ιστού εφαρμογής Σχήμα Επιλογή τεχνολογιών Έχοντας προχωρήσει σε μια αναλυτική εξέταση των χαρακτηριστικών που διαθέτει το Cloud επιλέχτηκαν τεχνολογίες σχεδιασμένες για υποστήριξη μεγάλων υπολογιστικών συστημάτων και επεκτασιμότητα. Η εξέταση τον τεχνολογιών διενεργήθηκε σε τρία επίπεδα: Τεχνολογίες στο επίπεδο του εξυπηρετητή που να προσφέρουν επιδώσεις, ασφάλεια και αξιοπιστία ενσωματώνοντας όλα τα χαρακτηριστικά εκείνα που περιεγράφηκαν αναλυτικά στο Κεφάλαιο 2. Βάση δεδομένων κατάλληλη για αποθήκευση αντικειμένων, που δεν είναι γνωστά τα χαρακτηριστικά τους, αλλά διαμορφώνονται σε πραγματικό χρόνο. Η έννοια της επεκτασιμότητας στο επίπεδο των πόρων, κατεύθυνε την μελέτη της επιλογής βάσης στη κατηγορία των NoSQL βάσεων δεδομένων. Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 26

27 Σύγχρονες τεχνολογίες για την ανάπτυξη της γραφικής διεπαφής, στα πρότυπα μεγάλων πλατφόρμων. Στην επιλογή τεχνολογιών γραφικής διεπαφής, συνυπολογίστηκε η ανάγκη για μελλοντικές επεκτάσεις που κρίνονται σκόπιμες, καθώς και ο έλεγχος των υπηρεσιών που προσφέρει η πλατφόρμα αφού η διεπαφή θα μπορούσε να ενσωματώνει το σύνολο των REST υπηρεσιών που παράγονται Τεχνολογία εξυπηρετητή ιστού Στα πλαίσια της μελέτης που έγινε στο Κεφάλαιο 2.6 (Αρχιτεκτονικές διακομιστών στις εφαρμογές), αποφασίστηκε το λογισμικό που θα χρησιμοποιηθεί, να υποστηρίζει το πρότυπο της αρχιτεκτονικής χειρισμού γεγονότων (Event-Driven Architecture). Ένα λογισμικό, δηλαδή, που στον πυρήνα να χειρίζεται ως γεγονότα τα αιτήματα που έρχονται από το διαδίκτυο προσφέροντας δυνατότητες επέκτασης της εφαρμογής από το επίπεδο του ενός υπολογιστή σε αυτό του Cloud. Οι λύσεις των παραδοσιακών εξυπηρετητών που δεσμεύουν νήματα του επεξεργαστή για το κάθε αίτημα μπορεί να δουλεύουν αξιοπρεπώς στο επίπεδο του ενός υπολογιστή, όταν όμως μιλάμε για το Cloud, αναφερόμαστε σε συστάδες υπολογιστών που αρχιτεκτονικές Virtualization (Κεφάλαιο 2.5)και δημιουργούν κακή αξιοποίηση των πόρων Vert.x Το λογισμικό που διακρίθηκε στην έρευνα για την κατάλληλη τεχνολογία στο επίπεδο του εξυπηρετητή ιστού ονομάζεται Vertx.io [17]. Σύμφωνα με τον επίσημο ιστότοπο της πλατφόρμας το Vert.x είναι ένα πακέτο λογισμικού που βοηθά στην υλοποίηση συστημάτων που χρειάζεται να χειριστούν πολλαπλές ταυτόχρονες συνδέσεις με μεγάλη έμφαση στην μείωση του χρόνου εξυπηρέτησης των αιτημάτων και τη διαθεσιμότητα. Στη φιλοσοφία του σαν λογισμικό, έχει επιρροές από το Node.js. Όπως το Node.js, έτσι και το Vert.x είναι ένα λογισμικό εξυπηρετητή που παρέχει ένα περιβάλλον Event-Driven προγραμματισμού. Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 27

28 Εντούτοις, η προγραμματιστική διεπαφή του Vert.x μοιάζει αρκετά με εκείνη του Node.js εξαιτίας της παροχής και από τις δύο τεχνολογίες μιας ασύγχρονης διεπαφής προγραμματισμού. Τα πιο σημαντικά χαρακτηριστικά που βρίσκονται στο Vert.x είναι: Η υποστήριξη πολλών γλωσσών προγραμματισμού (Polyglot) Το Vert.x είναι κατασκευασμένο σε Java, ωστόσο δεν είναι υποχρεωτικό οι εφαρμογές που κατασκευάζονται σε αυτό να είναι επίσης γραμμένες σε Java. Εκτός από την υποστήριξη γλωσσών προγραμματισμού που τρέχουν στο JVM, το Vert.x μπορεί να υποστηρίξει προγραμματισμό σε Ruby, Python και JavaScript. Μοντέλο ταυτόχρονης υποστήριξης Event-Driven και Process-Driven Αρχιτεκτονικών Υλοποιώντας ένα διακομιστή ιστού με τη χρήση του Vert.x οι χρήστες μπορούν να γράφουν κώδικα όπως και στις Process-Driven αρχιτεκτονικές. Αυτό σημαίνει ότι τα προβλήματα συγχρονισμού κλειδώματος και μεταβλητότητας της απόδοσης που παρουσιάζονται στις multi-thread αρχιτεκτονικές εξαλείφονται. Το Vert.x επιτρέπει τη δημιουργία πολλαπλών νημάτων σύμφωνα με τον αριθμό των πυρήνων στον επεξεργαστή του εξυπηρετητή εκτελώντας ασύγχρονες διαδικασίες. Διαθέτει ένα δίαυλο μεταφοράς γεγονότων (Event Bus) Ο δίαυλος μεταφοράς γεγονότων εξυπηρετεί στη μεταφορά πληροφορίας μεταξύ των διάφορων τμημάτων λειτουργικότητας. Δίνεται η δυνατότητα δημιουργίας τέτοιων κομματιών που την ορολογία του Vert.x ονομάζονται Verticles. Τα Verticles μπορούν να είναι γραμμένα σε διαφορετικές γλώσσες προγραμματισμού και να επικοινωνούν μεταξύ τους χάρη στο Event Bus. Το Vert.x έχει δημιουργήσει τη δικιά του τεχνολογία για την περιγραφή των διαφορετικών λειτουργιών του. Ο πιο σημαντικός όρος είναι αυτός του Verticle. Στη Java, Verticles θα θεωρούσαμε τις κλάσεις που περιέχουν μια main() μέθοδο. Ένα Verticle μπορεί να περιλαμβάνει κομμάτια κώδικα και βιβλιοθήκες. Μια σύγχρονη εφαρμογή συνήθως αποτελείται από περισσότερα Verticles, σπάζοντας την υλοποίηση σε μικρότερα κομμάτια βάση λειτουργικότητας. Τα Verticles επικοινωνούν μεταξύ τους μέσω του Event Bus. Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 28

29 Μια άλλη έννοια είναι αυτή του Vert.x Instance, όπου όπως ένα Verticle εκτελείται σε ένα Vert.x instance, έτσι και τα Vert.x Instances τρέχουν στο JVM. Σε αυτή τη λογική, πολλά Verticle εκτελούνται ταυτόχρονα σε ένα Vert.x Instance. Το Vert.x εγγυάται για το κάθε Vertice ενός Instance εκτέλεση σε ένα νήμα Hazelcast Το Hazelcast αποτελεί ένα λογισμικό που στόχο έχει την διαχείριση δεδομένων και χρησιμοποιείται για την παράλληλη εκτέλεση λογισμικού σε πολλούς υπολογιστές [19]. Πρόκειται για μια κατανεμημένη πλατφόρμα που δίνει προγραμματιστικές διεπαφές χρήσης. Το ενδιαφέρον σε αυτή τη τεχνολογία έγκειται στο γεγονός ότι το Vert.x μπορεί να χρησιμοποιήσει το Hazelcast επεκτείνοντας τον δίαυλο γεγονότων (Event bus) του. Με αυτό το τρόπο επεξεργαστικοί πυρήνες που βρίσκονται σε διαφορετικούς υπολογιστές είναι διαθέσιμοι για αξιοποίηση από το Vert.x παρέχοντας στην πλατφόρμα περισσότερους πόρους για την εξυπηρέτηση αυξημένου αριθμό αιτημάτων RethinkDB Ως προς τη βάση δεδομένων που μπορεί να καλύψει τις ανάγκες της εφαρμογής επιλέχτηκε η RethinkDB [18]. Πρόκειται για μία μη σχεσιακή βάση δεδομένων (NoSQL), η οποία χειρίζεται JSON Documents. Ως προς τη κλιμάκωση που μπορούμε να συναντήσουμε σε αυτή, παρατηρούμε ότι παρέχει ένα μεγάλο εύρος σχετικών επιλογών με διαφορετικά σχήματα που περιλαμβάνουν πολλαπλούς Database Servers και Proxy nodes με δυνατότητες απεριόριστης επεκτασιμότητας σε Cloud υποδομές. Επιπλέον περιλαμβάνει μηχανισμό αποστολής ειδοποιήσεων σε πραγματικό χρόνο. Ένας χρήστης της βάσης μπορεί να γίνεται συνδρομητής (subscribe) σε κάποιο ερώτημα προς βάση, η οποία με τη σειρά της τον ειδοποιεί σε πραγματικό χρόνο για οποιαδήποτε αλλαγή σημειωθεί στο Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 29

30 αποτέλεσμα του ερωτήματος. Βασικό πλεονέκτημα της RethinkDB έναντι άλλων συστημάτων που παρέχουν υπηρεσίες συγχρονισμού σε πραγματικό χρόνο είναι πως παρέχει μεγάλη ευελιξία στο είδος των ερωτημάτων προς συνδρομή. Πιο συγκεκριμένα, σχεδόν όλα τα ερωτήματα στη βάση μπορούν να μετατραπούν σε ροές ειδοποιήσεων (change feeds), επιτρέποντας κατ αυτόν τον τρόπο σε πολύπλοκα ερωτήματα (πχ join ή map/reduce) να μετατραπούν πολύ εύκολα σε μια τέτοια ροή. Η γλώσσα ερωτημάτων που υποστηρίζει η RethinkDB λέγεται ReQL. Πρόκειται για μια γλώσσα NoSQL, σχεδιασμένη να εκφράζει εύκολα ερωτήματα σε JSON έγγραφα. Ένα τέτοιο ερώτημα κατασκευάζεται μέσα από διαδοχικές κλήσεις συναρτήσεων που παρέχονται από τον οδηγό της γλώσσας που χρησιμοποιείται για την επικοινωνία με τη βάση. Η προσέγγιση αυτή καθιστά πιο προσιτή την εκμάθηση της ReQL καθώς δε διαφέρει από την εκμάθηση μιας προγραμματιστικής βιβλιοθήκης. Η ReQL παρέχει όλη τη λειτουργικότητα της SQL (πχ joins, group_by, aggregation). Επιπλέον, υποστηρίζει τη δυνατότητα map/reduce τελεστών, τους οποίους μπορεί να ορίσει ο χρήστης- για την ακρίβεια, τελεστές όπως ο count δεν είναι τίποτα άλλο παρά map/reduce συναρτήσεις ορισμένες από την ίδια τη βάση. Παρέχονται οι κλασσικές δομές επανάληψης (foreach) και επιλογής (branch), επιστροφή προεπιλεγμένων τιμών (default), έλεγχος του δυναμικού τύπου του πεδίου ενός εγγράφου (typeof) κλπ. Τέλος, η γλώσσα υποστηρίζει δομές ελέγχου της ροής εκτέλεσης ενός ερωτήματος Angular 4 Η επιλογή της πλατφόρμας εκείνης, που στηριζόταν η εμφάνιση της εφαρμογής, έπαιξε σπουδαίο ρόλο. Όταν αναφερόμαστε στην εμφάνιση, δεν μιλάμε για τα animation και τους κανόνες css αλλά για το πλαίσιο εκείνο που θα επιτρέψει τη δημιουργία μιας σύγχρονης εφαρμογής ιστού με δυνατότητες επέκτασης. Η τελευταία έκδοση της Angular κρίθηκε ως η ιδανικότερη, ακολουθώντας ένα component-based σχεδιασμό και στο επίπεδο της υλοποίησης τη γλώσσα προγραμματισμού Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 30

31 Typescript [16]. Η Typescript κατά βάση παρέχει ένα υπερσύνολο των εντολών της Javascript, οργανώνοντας τον κώδικα διευκολύνοντας μελλοντικές επεκτάσεις της εφαρμογής. Η Angular αποτελεί μια λύση για γρήγορη ανάπτυξη client-side εφαρμογών και χρησιμοποιείται από τη Google, καθώς και ένα πλήθος προγραμματιστών που κατασκευάζουν εφαρμογές που προορίζονται εξολοκλήρου για εκτέλεση στα προγράμματα περιήγησης κάνοντας χρήση HTML, CSS και JavaScript στην πλευρά του πελάτη. Ο στόχος της Angular 4 είναι να αυξήσει τις εφαρμογές ιστού με δυνατότητα να υφίσταται έλεγχος στη χρήση προτύπων μοντέλου-ελεγκτή (MVC) για να διευκολύνει την ανάπτυξη και τον έλεγχο. Είναι εύκολο να κατανοήσει ένας προγραμματιστής ότι η Angular προορίζεται για την ανάπτυξη ισχυρών εφαρμογών σε έργα οποιασδήποτε κλίμακας. Άλλωστε, μέρος της δημοτικότητάς που έχει γνωρίσει οφείλεται στην ικανότητά της να κάνει πιο δυναμικές τις στατικές ιστοσελίδες, επιτρέποντας έτσι στους σχεδιαστές ιστοσελίδων να προσθέσουν περισσότερα εργαλεία Περιγραφή παρεχόμενης λειτουργικότητας του συστήματος Το σύστημα κατά βάση οφείλει με εύχρηστες και προσαρμοστικές λειτουργίες να αποθηκεύει και να επεξεργάζεται αντικείμενα δεδομένων άλλων εφαρμογών. Σε αυτό το πλαίσιο, κατασκευάστηκε ένα πλήθος υπηρεσιών κατάλληλο για χρήση είτε από άλλα συστήματα είτε απευθείας από προγράμματα περιήγησης στο διαδίκτυο. Οι υπηρεσίες αυτές μπορούν να διακριθούν σε τρία επίπεδα σχήμα 3.3: Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 31

32 Παρεχόμενη λειτουργικότητα εφαρμογής Σχήμα 3.3 Διαχείριση χρηστών του συστήματος Ολοκληρωμένη διαχείριση των χρηστών του συστήματος μέσω υπηρεσιών τύπου REST για υποστηρίζοντας τη δημιουργία, την επεξεργασία και την ανάκτηση χρηστών του συστήματος Διαχείρισης βάσης δεδομένων του χρήστη Δυνατότητα δημιουργίας Βάσεων Δεδομένων, μόνο από τους χρήστες του συστήματος, στη λογική της δημιουργίας νέου «Έργου». Το κάθε «Έργο» καλείται να διαχειριστεί είδη αντικειμένων. Οπότε παρέχεται σε πρώτη φάση η δημιουργία της βάσης - έργου, ενώ στη πορεία η πλήρη διαχείριση του σχήματός της, στη λογική που χειριζόμαστε σχεσιακά σχήματα Βάσεων Δεδομένων. Επίπεδο διαχείρισης των αντικειμένων της βάσης Ένα ολοκληρωμένο σύνολο υπηρεσιών ειδικά διαμορφωμένο για τα αντικείμενα που ο χρήστης έχει περιγράψει ότι έχει η βάση του στο προηγούμενο επίπεδο. Παρέχονται δυνατότητες ανάγνωσης (ενός ή συνόλου αντικειμένων), εισαγωγής, επεξεργασίας και διαγραφής αντικειμένων. Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 32

33 4. Μοντέλο δεδομένων Για την αποθήκευση των δεδομένων, στο σύστημα χρησιμοποιήθηκε η RethinkDB, μια μη σχεσιακή βάση δεδομένων, βασισμένη στη λογική της αποθήκευσης εγγράφων. Η χρήση μιας τέτοιου είδους βάσης δεδομένων κρίνεται αναγκαία, αρκεί να αναλογιστεί κανείς ότι πρέπει να αποθηκεύονται αντικείμενα άγνωστου τύπου και μορφής, σε ένα περιβάλλον που έχει τη δυνατότητα κλιμάκωσης. Εντούτοις, υπάρχει ένα βασικό σχήμα που είναι γνωστό εξαρχής, και αυτό είναι η διαχείριση της ίδιας της πλατφόρμας. Η βάση που παρέχει στοιχεία διαχείρισης του ίδιου του συστήματος ονομάζεται ενδεικτικά «system». Οι οντότητες αυτού το σχήματος είναι οι εξής: Χρήστες της πλατφόρμας Βάσεις δεδομένων - Έργα Πίνακες Αντικείμενα 4.1. Χρήστες της πλατφόρμας Η πληροφορία που χρειάζεται να διατηρηθεί για τους χρήστες είναι τα στοιχεία τους και στοιχεία πρόσβασης στο σύστημα. Για την αποθήκευσή τους έχει δημιουργηθεί ένας πίνακας με όνομα «users». Πίνακας users Key id username password Value Type String (UUID) String String String Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 33

34 Περιγραφή ορισμάτων αντικειμένου id: Μοναδικό και πρωτεύον κλειδί για τον κάθε χρήστη username: Όνομα χρήστη, μοναδικό πεδίο που χρησιμοποιείται για τη σύνδεση του χρήστη και γενικότερα σαν ένα φιλικό στο μάτι κλειδί password: Κωδικός χρήστη Ηλεκτρονικό ταχυδρομείο, πληροφοριακό πεδίο αν και υποχρεωτικό, ίσως χρησιμοποιηθεί σε μελλοντικές επεκτάσεις της πλατφόρμας Αποτύπωση σε JSON μορφή της βάσης δεδομένων { } "id" : "f19d2a32-4b70-43cb fa7952d", "username" : "testuser", "password" : "***passwordhash***", " " : "test@test.com" 4.2. Βάσεις δεδομένων της πλατφόρμας Η πληροφορία που χρειάζεται να διατηρηθεί για τις βάσεις δεδομένων της πλατφόρμας είναι το όνομα της και το αναγνωριστικό κλειδί τού χρήστη διαχειριστή της. Σχεδιαστικά και για λόγους επιδόσεων του συστήματος, εντός του πίνακα αντικείμενο databases υπάρχει και ένα πεδίο που περιέχει τα είδη των αντικειμένων που φιλοξενεί η βάση. Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 34

35 Πίνακας databases Key id userid name tablelist Value Type String (UUID) String String List<Table> Περιγραφή ορισμάτων αντικειμένου id: Μοναδικό και πρωτεύον κλειδί για τη κάθε βάση δεδομένων userid: Αναγνωριστικό κλειδί για το χρήστη του συστήματος, του οποίου ανήκει η διαχείριση της βάσης name: Το όνομα της βάσης δεδομένων tablelist: Ένα πολυδιάστατο πεδίο που η χρήση της RethinkDB μας επιτρέπει να εισάγουμε στο σχήμα μας. Πρόκειται για μία λίστα αντικειμένων τύπου Table. Αποτύπωση σε JSON μορφή της βάσης δεδομένων { } "id": "c2d126e b-99ac-be4e413f142b", "userid": "f19d2a32-4b70-43cb fa7952d", "name": "mydb", "tablelist": [ { }, { }, { } ] Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 35

36 Εμφωλευμένος πίνακας table Key id name jsonschema Value Type String (UUID) String JSON Object Περιγραφή ορισμάτων αντικειμένου id: Μοναδικό και πρωτεύον κλειδί για το κάθε είδος αντικειμένου name: Όνομα του είδους - τύπου του αντικειμένου jsonschema: Το πεδίο αυτό είναι τύπου JSON. Δηλαδή ο τύπος του είναι ένα άλλο αντικείμενο. Δεν υπάρχει κάποιος περιορισμός σε επίπεδο Βάσης δεδομένων για το τι μπορεί να περιέχει αυτό το αντικείμενο, ωστόσο στο σύστημα γίνονται έλεγχοι με στόχο να είναι τύπου JSON Schema. Το JSON Schema που αποτελεί τη πιο διαδεδομένη προσπάθεια προτυποποίησης για την περιγραφή ενός JSON Document. Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 36

37 Αποτύπωση σε JSON μορφή της βάσης δεδομένων { } "jsonschema": { "schema": { "type": "object", "properties": { "name": { "type": "string" }, "age": { "type": "number" } } } }, "name": "userobject", "id": "d64786d4-a845-45b5-b30f-f58b67e0f39b" 4.3. Αντικείμενα χρηστών Απώτερος στόχος της πλατφόρμας είναι η αποθήκευση των αντικειμένων των χρηστών στην υποδομή. Για να εξασφαλιστεί ότι δεν θα επηρεάζει ο ένας χρήστης με κανένα τρόπο τα δεδομένα κάποιου άλλου χρήστη του συστήματος, η κάθε βάση δεδομένων που περιεγράφηκε παραπάνω ως μια καταχώριση σε έναν πίνακα, είναι μια πραγματική βάση δεδομένων για τη RethinkDB. Αντίστοιχα και οι πίνακες, αποτελούν φυσικούς πίνακες έγγραφα για την βάση δεδομένων. Αυτή η πρακτική που ακολουθήθηκε προσφέρει ένα απαραίτητο επίπεδο φυσικής απομόνωσης στο επίπεδο του κάθε πίνακα, στο επίπεδο της κάθε βάσης και στο επίπεδο του κάθε χρήστη γενικότερα. Τέλος, αυτή η διαχείριση έχει τρομερά πλεονεκτήματα επιδόσεων (δεν χρειάζεται όταν αναζητηθεί ένα αντικείμενο να ψάχνεται όλη η πλατφόρμα) αλλά και ελέγχου, καθώς προσφέρει μια ασφαλή μέθοδο κατάργησης των αντικειμένων ενός χρήστη χωρίς να υπάρχει φόβος για την υπόλοιπη πλατφόρμα. Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 37

38 5. Υποστηριζόμενες υπηρεσίες Το μεγαλύτερο μέρος της λειτουργικότητας της εφαρμογής που υλοποιήθηκε αποτυπώνεται με τη μορφή υπηρεσιών. Οποιαδήποτε συναλλαγή με τη βάση δεδομένων της εφαρμογής γίνεται μέσω των διαθέσιμων υπηρεσιών. Η γραφική διεπαφή που υλοποιήθηκε ή γενικότερα οποιαδήποτε άλλη εξωτερική εφαρμογή συνεργάζεται μόνο με τις διαθέσιμες υπηρεσίες, ώστε να εξασφαλιστεί η ακεραιότητα των δεδομένων και η οργάνωση της εφαρμογής στο σύνολό της. Με βάση την περιγραφή παρεχόμενης λειτουργικότητας (Κεφάλαιο 3.5) ακολουθεί αναλυτική περιγραφή της λειτουργικότητας της κάθε υπηρεσίας. Κατηγορία Διαχείρισης χρηστών Εισόδου στο σύστημα Διαχείρισης βάσης δεδομένων Διαχείρισης πινάκων / αντικειμένων REST Endpoint /system/user /system/connected_user /system/login /system/database /system/connected_user_database /system/table Διαχείρισης αντικειμένων /api/{databasename}/{tablename} 5.1. Διαχείριση Χρηστών Για τη διαχείριση των χρηστών υπάρχουν τρείς μέθοδοι που αφορούν τη δημιουργία (μέθοδος POST), διαγραφή(μέθοδος DELETE) και την ενημέρωση των στοιχείων (μέθοδος PUT) 5.2.ενός χρήστη. Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 38

39 Για την εγγραφή ενός χρήστη χρησιμοποιείται η μέθοδος POST. Σε περίπτωση που ο χρήστης υπάρχει (κοινό username με κάποιον άλλο χρήστη), επιστρέφεται κατάλληλο μήνυμα λάθους. Εφόσον δημιουργηθεί ο χρήστης, επιστρέφεται στην απάντηση, ενώ ταυτόχρονα εκτός από την καταχώρισή του στον πίνακα users, γίνεται και η δημιουργία νέας βάσης με όνομα ίδιο με το username του χρήστη. Επακόλουθα, είναι επιτακτική η ανάγκη το username να είναι υποχρεωτικό. Ο χρήστης αποκτά και ένα μοναδικό id το οποίο είναι τύπου UUID μήκους 36 χαρακτήρων. Τέλος, στην απάντηση οποιασδήποτε κλήσης, δεν επιστρέφει ποτέ ο κωδικός πρόσβασης του χρήστη. Παράδειγμα κλήσης POST /system/user Αίτημα Content-Type: application/json { "username": "testuser", "password": "testpassword", " ": "test@test.com" } Απάντηση Access-Control-Allow-Credentials:true Content-Type: application/json Set-Cookie:vertx-web.session=95ebfb55-c595-47f0-95c8-3c774e8f148e; Path=/ { "id" : "f19d2a32-4b70-43cb fa7952d", "username" : "testuser", " " : "test@test.com" } Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 39

40 Περιγραφή μεταβλητών Input: αντικείμενο τύπου User, resulthandler(ασύγχρονος χειριστής ώστε createuser (User user, <AsyncResult<JsonObject>> resulthandler) να επιστρέψει η απάντηση όταν είναι έτοιμη). Output: Είτε τα στοιχεία του χρήστη σε JsonObject μορφή είτε κωδικός λάθους. Για την ενημέρωση των στοιχείων ενός χρήστη χρησιμοποιείται η μέθοδος PUT. Δεν επιτρέπεται η αλλαγή του ονόματος χρήστη και του id, ενώ όλα τα υπόλοιπα πεδία μπορούν να αλλαχθούν κανονικά. Παράδειγμα κλήσης POST /system/user/{userid} Αίτημα Content-Type: application/json { "username": "testuser", "password": "testpassword", " ": "test@test.com" } Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 40

41 Απάντηση Access-Control-Allow-Credentials:true Content-Type: application/json Set-Cookie:vertx-web.session=95ebfb55-c595-47f0-95c8-3c774e8f148e; Path=/ { "id" : "f19d2a32-4b70-43cb fa7952d", "username" : "testuser", " " : "test@test.com" } Περιγραφή μεταβλητών createuser (User user, String userid, <AsyncResult<JsonObject>> resulthandler) Input: αντικείμενο τύπου User, το id του χρήστη που αφορά το update, resulthandler(ασύγχρονος χειριστής ώστε να επιστρέψει η απάντηση όταν είναι έτοιμη). Output: Είτε τα στοιχεία του χρήστη σε JsonObject μορφή είτε κωδικός λάθους. Για τη διαγραφή ενός χρήστη χρησιμοποιείται η μέθοδος DELETE. Κατά τη διαγραφή του χρήστη διαγράφονται, συγχρόνως, η βάση δεδομένων του και όλα τα αντικείμενα που έχει δημιουργήσει. Σε περίπτωση σφάλματος επιστρέφεται μήνυμα αποτυχίας. Παράδειγμα κλήσης DELETE /system/user/{userid} Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 41

42 Αίτημα Content-Type: application/json Απάντηση Status Code:200 OK Περιγραφή μεταβλητών Input: το id του χρήστη προς διαγραφή, resulthandler(ασύγχρονος χειριστής ώστε deleteuser (String userid, <AsyncResult<JsonObject>> resulthandler) να επιστρέψει η απάντηση όταν είναι έτοιμη). Output: Κωδικός επιτυχίας ή αποτυχίας Είσοδος στο σύστημα Η είσοδος στο σύστημα γίνεται χρήση της μεθόδου loginuser(). Η μέθοδος loginuser() χρησιμοποιείται ώστε να ελεγχτεί αν το username (όνομα χρήστη στο σύστημα) και το password (κωδικός χρήστη) αντιστοιχούν σε χρήστη στην βάση δεδομένων. Σε περίπτωση που υπάρχει ο συνδυασμός του ονόματος χρήστη με το κρυπτογράφημά του επιστρέφονται όλα τα στοιχεία του χρήστη εκτός από τον κωδικό πρόσβασης. Σε περίπτωση που ο συνδυασμός δεν υπάρχει επιστρέφεται σφάλμα. Κατά την επιτυχή σύνδεση δημιουργείται ένα session cookie ώστε να παρέχεται, ως ένα βαθμό, ασφάλεια για κλήσεις που αφορούν τη διαχείριση της βάσης και των πινάκων του χρήστη. Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 42

43 Παράδειγμα κλήσης POST /system/login Αίτημα Content-Type: application/json { "username": "testuser", "password": "testpassword" } Απάντηση Access-Control-Allow-Credentials:true Content-Type: application/json Set-Cookie:vertx-web.session=95ebfb55-c595-47f0-95c8-3c774e8f148e; Path=/ { "id" : "f19d2a32-4b70-43cb fa7952d", "username" : "testuser", " " : "test@test.com" } Περιγραφή μεταβλητών Input: username (όνομα χρήστη), password (κωδικός χρήστη), loginuser (String username, String password, <AsyncResult<JsonObject>> resulthandler) resulthandler(ασύγχρονος χειριστής ώστε να επιστρέψει η απάντηση όταν είναι έτοιμη). Output: Είτε τα στοιχεία του χρήστη σε JsonObject μορφή είτε κωδικός λάθους. Για τον έλεγχο του συνδεδεμένου χρήστη με βάση το session-cookie που έλαβε κατά την σύνδεσή του έχει δημιουργηθεί η κλήση /system/connected_user. Σε περίπτωση λάθους (δηλαδή δεν είναι συνδεδεμένος κάποιος χρήστης επιστρέφεται μήνυμα λάθους) Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 43

44 Παράδειγμα κλήσης GET /system/connected_user Αίτημα Content-Type: application/json Απάντηση Access-Control-Allow-Credentials:true Content-Type: application/json Set-Cookie:vertx-web.session=95ebfb55-c595-47f0-95c8-3c774e8f148e; Path=/ { "id" : "f19d2a32-4b70-43cb fa7952d", "username" : "testuser", " " : "test@test.com" } Περιγραφή μεταβλητών Input: resulthandler(ασύγχρονος χειριστής ώστε να επιστρέψει η απάντηση όταν είναι getconnecteduser έτοιμη). (<AsyncResult<JsonObject>> resulthandler) Output: Είτε τα στοιχεία του χρήστη σε JsonObject μορφή είτε κωδικός λάθους. Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 44

45 5.3. Διαχείριση βάσης δεδομένων Για τη διαχείριση της βάσης δεδομένων έχει δημιουργηθεί ένα σύνολο από υπηρεσίες τις οποίες χρησιμοποιεί η γραφική διεπαφή αλλά και εξωτερικές εφαρμογές. Όπως και στη διαχείριση χρηστών, υπάρχει session-cookie ταυτοποίηση για το σύνολο των υπηρεσιών που προσφέρονται για τη διαχείριση της βάσης δεδομένων. Κύριος σκοπός αυτής της ομάδας υπηρεσιών είναι η δημιουργία, ανάκτηση και διαγραφή μιας βάσης δεδομένων ενός χρήστη. Για τη δημιουργία της βάσης δεδομένων υπάρχει μια μέθοδος τύπου POST, η οποία ελέγχει εάν υπάρχει βάση με το ίδιο όνομα στο σύστημα και επιστρέφεται σφάλμα. Επιπλέον, επειδή το αντικείμενο τύπου Database εμπεριέχει μια λίστα πινάκων (πεδίο tablelist) ελέγχεται περαιτέρω, εάν η δομή των αντικειμένων που ζητείται η δημιουργία τους είναι σωστή. Εφόσον όλα είναι σωστά και υπάρχουν πίνακες στο αίτημα για δημιουργία της βάσης, καλείτεαι εσωτερικά και για όσους πίνακες ζητείται η δημιουργία τους, η μέθοδος createtable() που περιγράφεται στη συνέχεια. Παράδειγμα κλήσης POST /system/database Αίτημα Content-Type: application/json { "name": "mydatabase", "tablelist": [] } Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 45

46 Απάντηση Access-Control-Allow-Credentials:true Content-Type: application/json Set-Cookie:vertx-web.session=95ebfb55-c595-47f0-95c8-3c774e8f148e; Path=/ { "id": "c2d126e b-99ac-be4e413f142b", "name": "mydatabase", "tablelist": [], "userid": "f19d2a32-4b70-43cb fa7952d" } Περιγραφή μεταβλητών Input: αντικείμενο τύπου Database, resulthandler(ασύγχρονος χειριστής ώστε createdatabase (Database database, <AsyncResult<JsonObject>> resulthandler) να επιστρέψει η απάντηση όταν είναι έτοιμη). Output: Είτε τα στοιχεία βάσης που δημιουργήθηκε σε JsonObject μορφή είτε κωδικός λάθους. Για την προσπέλαση μιας βάσης γνωρίζοντας το id της μπορεί να χρησιμοποιηθεί η μέθοδος getdatabase(). Εξαιτίας του σχήματος της βάσης, μαζί με τη βάση επιστρέφει και το πεδίο tablelist, που περιέχει τους πίνακες της βάσης. Παράδειγμα κλήσης GET /system/ database/{databaseid} Αίτημα Content-Type: application/json Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 46

47 Απάντηση Access-Control-Allow-Credentials:true Content-Type: application/json Set-Cookie:vertx-web.session=95ebfb55-c595-47f0-95c8-3c774e8f148e; Path=/ { "id": "c2d126e b-99ac-be4e413f142b", "name": "mydatabase", "tablelist": [], "userid": "f19d2a32-4b70-43cb fa7952d" } Περιγραφή μεταβλητών Input: id της βάσης δεδομένων, resulthandler(ασύγχρονος χειριστής ώστε getdatabase ( String databaseid <AsyncResult<JsonObject>> resulthandler) να επιστρέψει η απάντηση όταν είναι έτοιμη) Output: Τα στοιχεία της βάσης μαζί με τη λίστα πινάκων σε JsonObject μορφή είτε κωδικός λάθους. Για τη διαγραφή μιας βάσης δεδομένων χρησιμοποιείται η μέθοδος deletedatabase(). Κατά τη διαγραφή της βάσης διαγράφονται τόσο η βάση δεδομένων του όσο και όλα τα αντικείμενα που έχει δημιουργήσει. Σε περίπτωση σφάλματος επιστρέφεται μήνυμα αποτυχίας. Παράδειγμα κλήσης DELETE /system/database/{databaseid} Αίτημα Content-Type: application/json Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 47

48 Απάντηση Status Code:200 OK Περιγραφή μεταβλητών Input: το id της βάσης δεδομένων προς διαγραφή, resulthandler(ασύγχρονος deletedatabase (String databaseid, <AsyncResult<JsonObject>> resulthandler) χειριστής ώστε να επιστρέψει η απάντηση όταν είναι έτοιμη). Output: Κωδικός επιτυχίας ή αποτυχίας. Για την ανάκτηση της βάσης δεδομένων του συνδεδεμένου χρήστη, έχει δημιουργηθεί η μέθοδος getconnecteduserdatabase() που χρησιμοποιώντας το session-cookie ανιχνεύει τον συνδεμένο χρήστη και επιστρέφει τη βάση, εφόσον αυτή υπάρχει Παράδειγμα κλήσης GET /system/connected_user_database Αίτημα Content-Type: application/json Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 48

49 Απάντηση Access-Control-Allow-Credentials:true Content-Type: application/json Set-Cookie:vertx-web.session=95ebfb55-c595-47f0-95c8-3c774e8f148e; Path=/ { "id": "c2d126e b-99ac-be4e413f142b", "name": "mydatabase", "tablelist": [], "userid": "f19d2a32-4b70-43cb fa7952d" } Περιγραφή μεταβλητών Input: resulthandler(ασύγχρονος χειριστής ώστε να επιστρέψει η απάντηση όταν είναι getconnecteduserdatabase ( <AsyncResult<JsonObject>> resulthandler) έτοιμη) Output: Τα στοιχεία της βάσης μαζί με τη λίστα πινάκων σε JsonObject μορφή είτε κωδικός λάθους Διαχείριση πινάκων / αντικειμένων Για τη διαχείριση των τύπων αντικειμένων ενός χρήστη έχει δημιουργηθεί ένα σύνολο υπηρεσιών που επιτρέπουν την δημιουργία, ανάκτηση, ενημέρωση και διαγραφή τους. Στόχος είναι να μπορεί ο χρήστης να ορίζει τη δομή που επιθυμεί να έχουν τα αντικείμενά του με σκοπό τον αυτόματο έλεγχο (data validation) και όχι για να δημιουργήσει το σύστημα πίνακες με τη σχεσιακή έννοια (δηλαδή ορισμό των πεδίων στη βάση). Η RethinkDB είναι μια document-based βάση δεδομένων χωρίς τη δυνατότητα ελέγχου πάνω στα δεδομένα. Για τη δημιουργία ενός αντικειμένου έχει υλοποιηθεί η μέθοδος createtable() με την πρόσβαση σε αυτή να γίνεται μέσω της μεθόδου POST. Για την δημιουργία, πάλι, του πίνακα ελέγχεται η ορθότητα του πεδίου jsonshema και το αν αυτό είναι της μορφής JSON Schema. Επιπλέον, ελέγχεται Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 49

50 αν υπάρχει ήδη αντικείμενο στη βάση του χρήστη με το ίδιο ακριβώς όνομα. Στην περίπτωση αυτή, επιστρέφεται μήνυμα λάθους, ενώ εάν είναι επιτυχής η καταχώριση και η δημιουργία του πίνακα, επιστρέφεται μήνυμα επιτυχίας. Παράδειγμα κλήσης POST /system/table Αίτημα Content-Type: application/json { "name": "testobject", "jsonschema": { "schema": { "type": "object", "properties": {} } } } Απάντηση Access-Control-Allow-Credentials:true Content-Type: application/json Set-Cookie:vertx-web.session=95ebfb55-c595-47f0-95c8-3c774e8f148e; Path=/ { "jsonschema": { "schema": { "type": "object", "properties": {} } }, "name": "testobject", "id": "b0c55593-d583-46c a806cfa71a24" } Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 50

51 Περιγραφή μεταβλητών Input: αντικείμενο τύπου table, resulthandler(ασύγχρονος χειριστής ώστε createtable (Table table, <AsyncResult<JsonObject>> resulthandler) να επιστρέψει η απάντηση όταν είναι έτοιμη). Output: τα στοιχεία του πίνακα που δημιουργήθηκε σε JsonObject μορφή είτε κωδικός λάθους. Για τη προσπέλαση ενός πίνακα, ώστε να επιστραφεί το σχήμα ενός αντικειμένου γνωρίζοντας το το id του, μπορεί να χρησιμοποιηθεί η μέθοδος gettable(). Εξαιτίας του σχήματος της βάσης, μαζί με τη βάση επιστρέφει και το πεδίο tablelist, που περιέχει τους πίνακες της βάσης. Παράδειγμα κλήσης GET /system/table/{tableid} Αίτημα Content-Type: application/json Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 51

52 Απάντηση Access-Control-Allow-Credentials:true Content-Type: application/json Set-Cookie:vertx-web.session=95ebfb55-c595-47f0-95c8-3c774e8f148e; Path=/ { "jsonschema": { "schema": { "type": "object", "properties": {} } }, "name": "testobject", "id": "b0c55593-d583-46c a806cfa71a24" } Περιγραφή μεταβλητών Input: id του πίνακα, resulthandler(ασύγχρονος χειριστής ώστε gettable ( String tableid <AsyncResult<JsonObject>> resulthandler) να επιστρέψει η απάντηση όταν είναι έτοιμη) Output: Τα στοιχεία του πίνακα μαζί με το πεδίο jsonschema σε JsonObject μορφή είτε κωδικός λάθους. Για τη διαγραφή ενός πίνακα χρησιμοποιείται η μέθοδος deletetable(). Κατά τη διαγραφή του πίνακα καταστρέφεται το σχήμα και όλα τα αντικείμενα που έχουν δημιουργηθεί με βάση αυτό. Σε περίπτωση σφάλματος επιστρέφεται μήνυμα αποτυχίας. Παράδειγμα κλήσης DELETE /system/table/{tableid} Αίτημα Content-Type: application/json Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 52

53 Απάντηση Status Code:200 OK Περιγραφή μεταβλητών Input: το id του πίνακα προς διαγραφή, resulthandler(ασύγχρονος χειριστής ώστε deletetable (String databaseid, <AsyncResult<JsonObject>> resulthandler) να επιστρέψει η απάντηση όταν είναι έτοιμη). Output: Κωδικός επιτυχίας ή αποτυχίας Διαχείριση αντικειμένων Μετά τη δημιουργία της δομής που έχουν τα αντικείμενα, επόμενο στάδιο είναι αυτό της δημιουργίας, ενημέρωσης και διαγραφής αντικειμένων όπως και αυτό της υποβολής ερωτημάτων στα αντικείμενα που έχουν δημιουργηθεί. Η πλατφόρμα παρέχει όλες αυτές τις λειτουργίες πετυχαίνοντας ένα βασικό στόχο της, την απόκρυψη των βημάτων της υλοποίησης μιας εφαρμογής από το επίπεδο της αποθήκευσης των αντικειμένων μέχρι εκείνο της παροχής πληροφορίας μέσω υπηρεσιών. Το endpoint της εφαρμογής είναι σχετικά απλό. Αποτελείται από ένα συνδυασμό του ονόματος της βάσης δεδομένων ακολουθούμενο από τον ζητούμενο πόρο. Όπου πόρος είναι το όνομα του πίνακα, κατ επέκταση το όνομα του αντικειμένου. Για την εισαγωγή νέου αντικειμένου στην εφαρμογή γίνεται χρήση της rootingapiposthandling () η οποία είναι προσβάσιμη μέσω της μεθόδου POST. Η πλατφόρμα καταλαβαίνει τη βάση δεδομένων που πρέπει να χρησιμοποιήσει, καθώς και στο σχήμα του αντικειμένου από το url. Το αντικείμενο Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 53

54 μπαίνει στο κύριο σώμα της μεθόδου. Αρχικά, η πλατφόρμα ελέγχει τη δομή του αντικειμένου και το κατά πόσο αυτή είναι σύμφωνη με τη δομή που έχει οριστεί για το αντικείμενο. Οι έλεγχοι που γίνονται αφορούν ένα μεγάλο σύνολο χαρακτηριστικών που η προτυποποίηση JSON-Schema παρέχει, και σε περίπτωση σφάλματος επιστρέφεται μήνυμα σχετικό με το σφάλμα και το πεδίο. Σε κάθε αντικείμενο που εισέρχεται στη πλατφόρμα, εκείνη του δίνει ένα μοναδικό id. Στις περιπτώσεις ο χρήστης δώσει ο ίδιος το πεδίο id στο αντικείμενό του, τότε θα χρησιμοποιηθεί αυτό που παρείχε ο ίδιος ο χρήστης. Σε αυτό το ενδεχόμενο γίνεται ένας επιπλέον έλεγχος και αν το id του χρήστη χρησιμοποιείται από άλλο αντικείμενο του ίδιου τύπου, επιστρέφει σφάλμα. Παράδειγμα κλήσης POST /api/{{databasename}}/{{tablename}} Αίτημα Content-Type: application/json { "name": "revertan", "projectdescription": { "titles": [ { "name": "Revertan" }, { "name": "Adaptive and usable object oriented stores" } ] }, "completed": true, "students": 1 } Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 54

55 Απάντηση Content-Type: application/json Set-Cookie:vertx-web.session=95ebfb55-c595-47f0-95c8-3c774e8f148e; Path=/ { "id": "b0c55593-d583-46c a806cfa71a24", "name": "revertan", "projectdescription": { "titles": [ { "name": "Revertan" }, { "name": "Adaptive and usable object oriented stores" } ] }, "completed": true, "students": 1 } Περιγραφή μεταβλητών Input: το όνομα της βάσης δεδομένων, το όνομα του πίνακα, το αντικείμενο σε rootingapiposthandling (String database, String table, JsonObject objecttosave <AsyncResult<JsonObject>> resulthandler) JsonObject μορφή, resulthandler(ασύγχρονος χειριστής ώστε να επιστρέψει η απάντηση όταν είναι έτοιμη). Output: το αντικείμενο που δημιουργήθηκε σε JsonObject μορφή είτε κωδικός λάθους. Για την ενημέρωση ενός αντικειμένου χρησιμοποιείται η μέθοδος PUT. Συγχρόνως, γίνονται όλοι οι έλεγχοι σχετικά με τη δομή του αντικειμένου προς ενημέρωση, όπως πραγματοποιούνται και στην εισαγωγή. Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 55

56 Παράδειγμα κλήσης POST /api/{{databasename}}/{{tablename}}/{{objectid}} Αίτημα Content-Type: application/json { "name": "revertan", "projectdescription": { "titles": [ { "name": "Revertan" }, { "name": "Adaptive and usable object oriented stores" } ] }, "completed": false, "students": 1 } Απάντηση Access-Control-Allow-Credentials:true Content-Type: application/json Content-Type: application/json { "name": "revertan", "projectdescription": { "titles": [ { "name": "Revertan" }, { "name": "Adaptive and usable object oriented stores" } ] }, "completed": false, "students": 1 } Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 56

57 Περιγραφή μεταβλητών Input: το όνομα της βάσης δεδομένων, το όνομα του πίνακα, το id του αντικειμένου προς ενημέρωση, το αντικείμενο σε rootingapiposthandling(string database, String table, String objectid, JsonObject objecttoupdate <AsyncResult<JsonObject>> resulthandler) JsonObject μορφή, resulthandler(ασύγχρονος χειριστής ώστε να επιστρέψει η απάντηση όταν είναι έτοιμη). Output: Είτε το αντικείμενο που ενημερώθηκε σε JsonObject μορφή είτε κωδικός λάθους. Για τη διαγραφή ενός αντικειμένου χρησιμοποιείται η μέθοδος DELETE. Παράδειγμα κλήσης DELETE /api/{{databasename}}/{{tablename}}/{{objectid}} Αίτημα Content-Type: application/json Απάντηση Status Code:200 OK Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 57

58 Περιγραφή μεταβλητών Input: το όνομα της βάσης δεδομένων, το όνομα του πίνακατο id του αντικειμένου rootingapideletehandling(string database, String table, String objectid, <AsyncResult<JsonObject>> resulthandler) προς διαγραφή, resulthandler(ασύγχρονος χειριστής ώστε να επιστρέψει η απάντηση όταν είναι έτοιμη). Output: Είτε το αντικείμενο που ενημερώθηκε σε JsonObject μορφή είτε κωδικός λάθους. Για την ανάγνωση ενός μόνο αντικειμένου γνωρίζοντας το id του χρησιμοποιείται η μέθοδος rootingapigethandling() Παράδειγμα κλήσης GET /api/{{databasename}}/{{tablename}}/{{objectid}} Αίτημα Content-Type: application/json Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 58

59 Απάντηση Access-Control-Allow-Credentials:true Content-Type: application/json Content-Type: application/json { "name": "revertan", "projectdescription": { "titles": [ { "name": "Revertan" }, { "name": "Adaptive and usable object oriented stores" } ] }, "completed": false, "students": 1 } Περιγραφή μεταβλητών Input: το όνομα της βάσης δεδομένων, το όνομα του πίνακα, το αντικείμενο σε rootingapigethandling (String database, String table, String objectid, JsonObject objecttoupdate <AsyncResult<JsonObject>> resulthandler) JsonObject μορφή, το id του αντικειμένου, resulthandler(ασύγχρονος χειριστής ώστε να επιστρέψει η απάντηση όταν είναι έτοιμη). Output: Είτε το αντικείμενο που ζητήθηκε σε JsonObject μορφή είτε κωδικός λάθους. Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 59

60 Στο πλαίσιο της δημιουργίας μιας τύπου REST υπηρεσίας η τύπου GET κλήση δέχεται επιπλέον παραμέτρους καλύπτοντας τις παρακάτω περιπτώσεις: Προβολή όλων των αντικειμένων ενός χρήστη GET /api/{{databasename}}/{{tablename}}/{{objectid}} Σελιδοποίηση των αποτελεσμάτων GET /api/{{databasename}}/{{tablename}}/{{objectid}}?offset={{off}}&limit={{lim}} Ταξινόμηση ως προς κάποιο πεδίο GET /api/{{databasename}}/{{tablename}}/{{objectid}}?orderasc={{field}} GET /api/{{databasename}}/{{tablename}}/{{objectid}}? orderdesc ={{field }} 5.6. Σύνθεση υπηρεσιών Η κάθε μια από τις υπηρεσίες που διατίθενται δεν μπορούν να καλύψουν το σύνολο των αναγκών. Ο συνδυασμός τους είναι αυτός που θα επιτρέψει την ομαλή διαχείριση των αντικειμένων όπως αυτός αποτυπώνεται στο σχήμα 5.1. Οι ρόλοι των χρηστών είναι δύο, οι διαχειριστές που μπορούν να επεξεργαστούν σχήματα αντικειμένων και οι απλοί χρήστες που αλληλοεπιδρούν με αυτά τα σχήματα δημιουργώντας, επεξεργάζοντας, ανακτώντας και διαγράφοντας αντικείμενα. Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 60

61 Σύνθεση υπηρεσιών Σχήμα 5.1 Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 61

62 6. Πιλοτική υλοποίηση για την προσαρμοστική και εύχρηστη διαχείριση αντικειμένων 6.1. Αρχιτεκτονική της εφαρμογής Όπως αναφέρεται στην παρούσα διπλωματική εργασία, στο επίπεδο της υλοποίησης κατασκευάστηκε μια πλατφόρμα προσαρμοστικής διαχείρισης αντικειμένων με προοπτική αξιοποίησης πόρων του Cloud. Για τη διαχείριση των αντικειμένων μιας εφαρμογής, χρειάζεται η υλοποίηση ενός μεγάλου πλήθους λειτουργιών που ξεκινούν από την αποθήκευση και εκτείνονται μέχρι την παροχή των αντικειμένων μέσω υπηρεσιών. Παράλληλα, έτοιμες λύσεις που υπάρχουν σε αυτό το χώρο, περιορίζουν τους οργανισμούς στη χρήση συγκεκριμένων Cloud παρόχων. Σε αυτά τα πλαίσια, και δίχως να υπάρχει στρατηγικός σχεδιασμός τέτοιος που να περιορίζει την πλατφόρμα σε μια συγκεκριμένη κατηγορία εφαρμογών που μπορεί να υποστηρίξει, κατασκευάστηκε το Revertan. Υπάρχουν δύο διαφορετικές αρχιτεκτονικές που υποστηρίζονται, δίνοντας λύση στις ανάγκες εξυπηρέτησης εφαρμογών τόσο με μικρό όγκο αιτημάτων, όσο και εκείνων που απαιτούν εκατομμύρια ταυτόχρονες συνδέσεις χρηστών. Στην πρώτη αρχιτεκτονική που αποτυπώνεται στο σχήμα 6.1 υπάρχει μονάχα ένα μηχάνημα. Στο μηχάνημα αυτό έχει εγκατασταθεί το JDK 1.8 ως περιβάλλον εκτέλεσης του Vert.x 3. Επιπροσθέτως, η εγκατεστημένη βάση είναι η τελευταία έκδοση της RethinkDB, ενώ για τη γραφική διεπαφή έχει χρησιμοποιηθεί η Angular 4. Η λειτουργικότητα του Revertan έχει χωριστεί σε τέσσερα αυτόνομα επίπεδα με τη χρήση του Vert.x (Verticles), το RethinkDB Java Api στο οποίο βρίσκεται η επίσημη προγραμματιστική διεπαφή για Java της RethinkDB, το Data Validation Verticle το οποίο αναλαμβάνει τον έλεγχο της δομής των αντικειμένων και το Rest API Verticle που διαχειρίζεται τα αιτήματα που φτάνουν στο σύστημα και παρέχει το σύνολο των λειτουργιών εκτός του Server. ΥΠΆΡΧΕΙ, επίσης, το Web Verticle το οποίο παρέχει τα στατικά αρχεία διεπαφής της Angular. Τα τρία επίπεδα (όλα εκτός εκείνου του Web Verticle) επικοινωνούν μεταξύ τους μέσω ασύγχρονων μηνυμάτων. Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 62

63 Αυτή η υλοποίηση όπως έχει περιεγραφεί ως τώρα, χρησιμοποιεί μόνο από έναν μέχρι, σε ακραίες περιπτώσεις, τέσσερις πυρήνες του επεξεργαστή στον υπολογιστή που τρέχει. Πολύ εύκολα μπορεί να δηλωθεί στο Vert.x να χρησιμοποιήσει περισσότερους πυρήνες δημιουργώντας περισσότερα στιγμιότυπα εκτέλεσης (multiple instances). Αρχιτεκτονική Revertan για εφαρμογές μικρής κλίμακας Σχήμα 6.1 Σε Cloud περιβάλλον (γενικότερα στη πλειοψηφία των διαθέσιμων επιλογών) μπορεί να χρησιμοποιηθεί στο σχήμα 6.2 που προσφέρει αξιοποίηση περισσότερων του ενός μηχανημάτων. Στο σχήμα 6.2 περιγράφεται η πιο ακραία κλιμάκωση που μπορεί να υποστηρίξει το σύνολο των τεχνολογιών που χρησιμοποιήθηκαν. Οι βασικές αρχές είναι ίδιες με τη περίπτωση του ενός υπολογιστή, με τις διαφορές να εντοπίζονται στο γεγονός ότι υπάρχει ένα cluster της RethinkDb και επικοινωνία πολλών υπολογιστών μεταξύ τους με το Hazelcast να επεκτείνει το Vert.x Event Bus μέσω δικτύου σε περισσότερους υπολογιστές. Η τελευταία διαφοροποίηση αφορά τη χρήση ενός RethinkDB Proxy Node, συνδεσμολογία που προτείνεται στις οδηγίες χρήσης της RethinkD. Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 63

64 Αρχιτεκτονική Revertan για εφαρμογές μεγάλης κλίμακας Σχήμα 6.2 Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 64

65 6.2. Περιβάλλον ιστού Στη διεπαφή του χρήστη έγινε προσπάθεια να δημιουργηθεί ένα ευχάριστο γραφικό περιβάλλον, λιτό και λειτουργικό που να ακολουθεί συγχρόνως τις πιο πρόσφατες τάσεις στη σχεδίαση ιστοτόπων. Έχει υλοποιηθεί με χρήση Angular 4 και Typescript που παρέχει βελτιστοποιημένο κώδικα Javascript (ES5). Υπάρχει απόλυτη προσαρμοστικότητα σε οθόνες υπολογιστών, ταμπλετών και κινητών τηλεφώνων, αλλάζοντας σε κάθε περίπτωση με βάση την ανάλυση της οθόνης ώστε να προβάλλεται όλο το περιεχόμενο (responsive css). Σύμφωνα με την κατηγοριοποίηση των λειτουργιών, παρατίθενται μερικά στιγμιότυπα χρήσης της εφαρμογής Εγγραφή νέου χρήστη Κατά την πρώτη επίσκεψη στο σύστημα, το μόνο πράγμα που είναι διαθέσιμο στην εφαρμογή είναι η εγγραφή χρήστη. Στο σχήμα 6.3 βλέπουμε τη φόρμα εγγραφής της εφαρμογής που αποτελείται από τρία πεδία. Για την ορθότητα των στοιχείων, όπως συμπλήρωση όλων των πεδίων, μοναδικό όνομα χρήστη στην εφαρμογή και σωστού , παράγονται κατάλληλα μηνύματα σφάλματος, όπως φαίνεται στο σχήμα 6.4. Την ίδια στιγμή, τα στοιχεία που παρέχει ο χρήστης της εφαρμογής ελέγχονται και από το API που έχει κατασκευαστεί για την εγγραφή των χρηστών (σχήμα 6.5). Εγγραφή στην εφαρμογή Σχήμα 6.3 Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 65

66 Έλεγχοι εγκυρότητας φόρμας εγγραφής Σχήμα 6.4 Έλεγχοι εγκυρότητας φόρμας εγγραφής μετά την λανθασμένη υποβολή Σχήμα 6.5 Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 66

67 Είσοδος στο σύστημα Για την είσοδο του χρήστη έχει δημιουργηθεί μια φόρμα σύνδεσης σχήμα 6.6 στο ίδιο εικαστικό πρότυπο με εκείνο της φόρμας εγγραφής. Και σε αυτή τη περίπτωση γίνονται έλεγχοι, ενώ μηνύματα σφάλματος που έρχονται από την κλήση της υπηρεσίας εμφανίζονται όταν είναι απαραίτητο σχήμα 6.7. Έλεγχοι εγκυρότητας φόρμας εγγραφής μετά την λανθασμένη υποβολή Σχήμα 6.6 Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 67

68 Έλεγχοι εγκυρότητας φόρμας εγγραφής μετά την λανθασμένη υποβολή Σχήμα Προβολή λίστας διαθέσιμων αντικειμένων Με την επιτυχή σύνδεση στην εφαρμογή εμφανίζεται το μενού - σχήμα 6.8 από το οποίο μπορούμε να προηγηθούμε στις διαφορετικές λειτουργίες που παρέχονται. Πατώντας στην καρτέλα «Structure» και μετά το κουμπί «Schema» έχουμε πρόσβαση στη λειτουργικότητα που αφορά τα είδη αντικειμένων που έχουν περιγραφεί στην εφαρμογή σχήμα 6.9. Από αυτή τη σελίδα, μπορούμε είτε να επεξεργαστούμε μια υπάρχουσα δομή αντικειμένου, είτε μπορούμε να προσθέσουμε μια νέα. Παρατηρούμε ότι στο κάτω μέρος του πίνακα υπάρχει παραμετροποίηση για τη σελιδοποίηση που επιθυμούμε να έχει σχήμα Δεν πρόκειται για μια εικαστική παρέμβαση, αλλά για ένα μέτρο προφύλαξης από περιττό φόρτο στην εφαρμογή. Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 68

69 Μενού χρήσης της εφαρμογής Σχήμα 6.8 Φόρμα προβολής διαθέσιμων ειδών αντικειμένων Σχήμα 6.9 Σελιδοποίηση πινάκων Σχήμα 6.10 Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 69

70 Δημιουργία νέου είδους αντικειμένου Πατώντας το κουμπί «Create new object type» προβάλλεται ένα αναδυόμενο παράθυρο που ζητά το όνομα του καινούργιου είδους αντικειμένου σχήμα Δίνοντας ένα έγκυρο όνομα κατευθυνόμαστε στη σελίδα δημιουργίας και επεξεργασίας σχήματος όπως βλέπουμε στο σχήμα Πατώντας κάποιο από τα κουμπιά «New string», «New number», «New boolean», «New array» και «New object» παρέχεται η δυνατότητα προσθήκης νέων ορισμάτων τύπου κειμένου, αριθμού, λογικών, λίστας και άλλου υπο-αντικειμένου αντίστοιχα. Δημιουργία τύπου αντικειμένου (Βήμα Α) Σχήμα 6.11 Δημιουργία και επεξεργασία τύπου αντικειμένου (Βήμα Β) Σχήμα 6.12 Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 70

71 Αναλυτικότερα, κατά τη προσθήκη οποιουδήποτε είδους ορίσματος στο πρώτο βήμα ζητείται η εισαγωγή του ονόματός του (σχήμα 6.13). Δημιουργία ορίσματος, όνομα ορίσματος Σχήμα 6.13 Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 71

72 Ξεκινώντας με ένα όρισμα τύπου κειμένου παρατηρούνται κατά το edit οι επιλογές του σχήματος Αυτές οι επιλογές αποτελούν προαιρετικά χαρακτηριστικά ενός ορίσματος. Στη περίπτωση του κειμένου, έχουμε τη δυνατότητα να χειριστούμε το ελάχιστο και το μέγιστο αριθμό χαρακτήρων, καθώς και να περιγράψουμε τη μορφή και πρότυπο του ορίσματος. Δημιουργία ορίσματος κειμένου Σχήμα 6.14 Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 72

73 Επιλέγοντας την προσθήκη αριθμού μπορούμε να θέσουμε περιορισμούς μέγιστης/ελάχιστης τιμής καθώς και το αν αποτελεί πολλαπλάσιο κάποιου αριθμού σχήμα 6.15 Δημιουργία ορίσματος κειμένου Σχήμα 6.15 Κατά τη δημιουργία ενός λογικού ορίσματος δεν υπάρχει λόγος ορισμού κάποιου περιορισμού, αφού οι τιμές που μπορεί να πάρει το πεδίο είναι true - false σχήμα 6.16 Δημιουργία λογικού ορίσματος Σχήμα 6.16 Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 73

74 Στην επιλογή προσθήκης λίστας παρέχεται η δυνατότητα ορισμού ελάχιστου / μέγιστου αριθμού στοιχείων καθώς και ελέγχου μοναδικότητας των στοιχείων που φιλοξενεί Σχήμα Δημιουργία λίστας Σχήμα 6.17 Μια λίστα, όπως είναι το λογικό, πρέπει να έχει τη δυνατότητα φιλοξενίας άλλων αντικειμένων. Στο σχήμα 6.18 μπορούμε να παρατηρήσουμε ότι μια λίστα δίνει επιλογές προσθήκης ορισμάτων ίδιων με αυτά που παρέχει ένα όρισμα τύπου αντικειμένου. Στο σχήμα παρατηρούμε, επίσης, την προσθήκη ενός υπο-αντικειμένου εντός της λίστας Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 74

75 Περιγραφή της δομής μιας λίστας Σχήμα 6.18 Μπορούμε να ορίσουμε τα χαρακτηριστικά του κάθε ορίσματος ανεξάρτητα του πόσο βαθιά βρίσκονται στο δέντρο ορισμάτων ενός αντικειμένου. Χαρακτηριστικά υπο-αντικειμένου λίστας Σχήμα 6.19 Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 75

76 Στο σχήμα 6.19 μπορούμε να δούμε ένα όρισμα τύπου αντικειμένου (στην προκειμένη περίπτωση λειτουργεί ως υπο-αντικείμενο μιας λίστας). Υπάρχει η υποστήριξη της μη περιγραφής των ορισμάτων ενός αντικειμένου και ο ορισμός του μέγιστου / ελάχιστου αριθμού ορισμάτων. Σε όλες τις παραπάνω φόρμες ελέγχεται η ορθότητα των επιλογών που ζητά ο χρήστης, όπως ενδεικτικά μπορούμε να παρατηρήσουμε στο σχήμα Έλεγχος επιλογών χρήστη Σχήμα 6.20 Κατά την αποθήκευση του νέου αντικειμένου υπάρχει ένδειξη επιτυχίας που επιβεβαιώνει την ορθότητα του σχήματος από τη μεριά του server και την καταχώρισή του σχήμα Επιτυχής καταχώριση νέου σχήματος Σχήμα 6.21 Adaptive and usable object oriented stores / Δημήτρης Παπαβασιλείου 76

Όλες οι υπηρεσίες είναι διαθέσιμες μέσω διαδικτύου.

Όλες οι υπηρεσίες είναι διαθέσιμες μέσω διαδικτύου. ΚΕΦΑΛΑΙΟ 13 Όλες οι υπηρεσίες είναι διαθέσιμες μέσω διαδικτύου. Οι υπηρεσίες νέφους παρέχονται με τέτοιο τρόπο ώστε ο τελικός χρήστης δεν μπορεί να διακρίνει τεχνικές λεπτομέρειες. Η χρηστικότητα, η διαθεσιμότητα

Διαβάστε περισσότερα

Κεφάλαιο 13: : Εφαρμογές νέφους. Καραμαούνας Π. 1

Κεφάλαιο 13: : Εφαρμογές νέφους. Καραμαούνας Π. 1 Κεφάλαιο 13: : Εφαρμογές νέφους Καραμαούνας Π. 1 13.1 Eισαγωγή στις εφαρμογές νέφους Βασικά χαρακτηριστικά: Εξυπηρέτηση κατ απαίτηση: άμεσα και χωρίς καθυστέρηση Ευρεία πρόσβαση στο δίκτυο: προσβάσιμες

Διαβάστε περισσότερα

Υπολογιστική Νέφους Cloud computing

Υπολογιστική Νέφους Cloud computing Υπολογιστική Νέφους Cloud computing Χρ. Ηλιούδης Clouds Cloud computing??? Διείσδυση του Cloud Ορισμός - χαρακτηριστικά Ο όρος cloud έχει τις ρίζες στου στην αρχή του internet όπου συνήθιζαν να το αναπαριστούν

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ - Π.Μ.Σ. ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ - Π.Μ.Σ. ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ > ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ - Π.Μ.Σ. ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΟΡΙΣΜΟΣ: Το Cloud Computing είναι η ονοµασία της τεχνολογίας η οποία επιτρέπει στους χρήστες να

Διαβάστε περισσότερα

ΜΕΛΕΤΗ ΣΧΕΔΙΑΣΗ ΕΦΑΡΜΟΓΗΣ ΣΕ ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ (CLOUD COMPUTING) ΜΕ ΕΜΦΑΣΗ ΣΤΗΝ ΚΑΤΑΣΚΕΥΗ ΔΕΝΤΡΩΝ.

ΜΕΛΕΤΗ ΣΧΕΔΙΑΣΗ ΕΦΑΡΜΟΓΗΣ ΣΕ ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ (CLOUD COMPUTING) ΜΕ ΕΜΦΑΣΗ ΣΤΗΝ ΚΑΤΑΣΚΕΥΗ ΔΕΝΤΡΩΝ. ΤΕΙ ΠΕΙΡΑΙΑ ΤΜΗΜΑ ΗΥΣ Θέμα: ΜΕΛΕΤΗ ΣΧΕΔΙΑΣΗ ΕΦΑΡΜΟΓΗΣ ΣΕ ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ (CLOUD COMPUTING) ΜΕ ΕΜΦΑΣΗ ΣΤΗΝ ΚΑΤΑΣΚΕΥΗ ΔΕΝΤΡΩΝ. Εισηγητής: Δ. Ν. Καλλέργης, MSc. Φοιτήτρια: Κοντζοπούλου Παναγιώτα Εισαγωγή

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΙΑ ΙΚΑΣΙΑ ΜΕΤΑΒΑΣΗΣ ΣΤΟ CLOUD COMPUTING ΜΑΘΗΣΙΑΚΟΙ ΣΤΟΧΟΙ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΙΑ ΙΚΑΣΙΑ ΜΕΤΑΒΑΣΗΣ ΣΤΟ CLOUD COMPUTING ΜΑΘΗΣΙΑΚΟΙ ΣΤΟΧΟΙ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΙΑ ΙΚΑΣΙΑ ΜΕΤΑΒΑΣΗΣ ΣΤΟ CLOUD COMPUTING ΜΑΘΗΣΙΑΚΟΙ ΣΤΟΧΟΙ -Καθορισµός του πλαισίου µετάβασης στο περιβάλλον του cloud computing - Αναγνώριση ευκαιριών και ανάλυση κερδών/κόστους από την µετάβαση

Διαβάστε περισσότερα

Cloud Computing & Data Management (Υπολογιστικά Νέφη & Διαχείριση Δεδομένων)

Cloud Computing & Data Management (Υπολογιστικά Νέφη & Διαχείριση Δεδομένων) Cloud Computing & Data Management (Υπολογιστικά Νέφη & Διαχείριση Δεδομένων) Δημήτρης Ζεϊναλιπούρ Λέκτορας Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου Αξιοποίηση Νέων Τεχνολογιών και η Εφαρμογή τους στα Κυπριακά

Διαβάστε περισσότερα

Cloud Computing with Google and Microsoft. Despoina Trikomitou Andreas Diavastos Class: EPL425

Cloud Computing with Google and Microsoft. Despoina Trikomitou Andreas Diavastos Class: EPL425 Cloud Computing with Google and Microsoft Despoina Trikomitou Andreas Diavastos Class: EPL425 Σχεδιάγραμμα Εισαγωγή Τεχνολογίες Cloud Computing Περιγραφή Εργασίας Επιτεύγματα Εργασίας Συμπεράσματα Cloud

Διαβάστε περισσότερα

Διαδίκτυο των Αντικειμένων - IoT.

Διαδίκτυο των Αντικειμένων - IoT. Διαδίκτυο των Αντικειμένων - IoT sdima@ece.upatras.gr ΑΠΟΚΤΗΣΗ ΑΚΑΔΗΜΑΪΚΗΣ ΔΙΔΑΚΤΙΚΗΣ ΕΜΠΕΙΡΙΑΣ ΣΕ ΝΕΟΥΣ ΕΠΙΣΤΗΜΟΝΕΣ ΚΑΤΟΧΟΥΣ ΔΙΔΑΚΤΟΡΙΚΟΥ ΣΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ (ΦΚ/MIS) Ε.655/ 5001184. sdima@ece.upatras.gr

Διαβάστε περισσότερα

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές Λαμπαδαρίδης Αντώνιος el04148@mail.ntua.gr Διπλωματική εργασία στο Εργαστήριο Συστημάτων Βάσεων Γνώσεων και Δεδομένων Επιβλέπων: Καθηγητής Τ. Σελλής Περίληψη

Διαβάστε περισσότερα

ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ web εφαρµογής - ηλεκτρονικού κατατήµατος για έξυπνα κινητά

ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ web εφαρµογής - ηλεκτρονικού κατατήµατος για έξυπνα κινητά ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ web εφαρµογής - ηλεκτρονικού κατατήµατος για έξυπνα κινητά Για την STUDIO KOSTA BODA ILLUM Χανίων Πέµπτη, 9 Φεβρουαρίου 2012 Για την εταιρεία ACTS : Παπαγεωργίου

Διαβάστε περισσότερα

Περιεχόμενα. Visio / White paper 1

Περιεχόμενα. Visio / White paper 1 Περιεχόμενα Τι είναι η πλατφόρμα Visio Αρχιτεκτονική Δουλεύοντας με το Περιεχόμενο Πηγές Περιεχόμενου Διαγραφή Περιεχομένου Βασικές Λειτουργίες Προφίλ Χρήστη Διαχείριση Χρηστών Σύστημα Διαφημίσεων Αποθήκευση

Διαβάστε περισσότερα

Αρχιτεκτονική του πληροφοριακού συστήµατος Cardisoft Γραµµατεία 2003 ιαχείριση Προσωπικού

Αρχιτεκτονική του πληροφοριακού συστήµατος Cardisoft Γραµµατεία 2003 ιαχείριση Προσωπικού Αρχιτεκτονική του πληροφοριακού συστήµατος Cardisoft Γραµµατεία 2003 ιαχείριση Προσωπικού Γενικά Η αρχιτεκτονική ανάπτυξης τους πληροφοριακού συστήµατος Γραµµατεία 2000 υποσύστηµα διαχείρισης προσωπικού

Διαβάστε περισσότερα

Η Oracle μετασχηματίζει την αγορά λύσεων υποδομής Cloud

Η Oracle μετασχηματίζει την αγορά λύσεων υποδομής Cloud Η Oracle μετασχηματίζει την αγορά λύσεων υποδομής Cloud Η Oracle παρουσίασε τη μεγαλύτερη σειρά λύσεων Infrastructureas-a-Service (IaaS) στον κλάδο, στις οποίες περιλαμβάνονται «γυμνά» συστήματα server

Διαβάστε περισσότερα

Υπηρεσίες Ιστού (Web Services) ΜΙΧΑΛΗΣ ΜΑΛΙΑΠΠΗΣ

Υπηρεσίες Ιστού (Web Services) ΜΙΧΑΛΗΣ ΜΑΛΙΑΠΠΗΣ Υπηρεσίες Ιστού (Web Services) ΜΙΧΑΛΗΣ ΜΑΛΙΑΠΠΗΣ Μάθημα Πρώτο Εισαγωγή στις Υπηρεσίες Ιστού (Web Services) Μοντέλα WS JSON Χρήση (consume) WS μέσω python Πρόσβαση σε WS και άντληση δεδομένων Παραδείγματα

Διαβάστε περισσότερα

Ενότητα 2. Πηγές Λογισμικού. Πληροφοριακά Συστήματα Διοίκησης ΙI Νίκος Καρακαπιλίδης 2-1

Ενότητα 2. Πηγές Λογισμικού. Πληροφοριακά Συστήματα Διοίκησης ΙI Νίκος Καρακαπιλίδης 2-1 Ενότητα 2 Πηγές Λογισμικού Πληροφοριακά Συστήματα Διοίκησης ΙI Νίκος Καρακαπιλίδης 2-1 Μαθησιακοί στόχοι Εξοικείωση με εναλλακτικές πηγές λογισμικού Κατανόηση του τρόπου αξιολόγησης έτοιμου λογισμικού

Διαβάστε περισσότερα

ΜΑΘΗΜΑ: Υπολογιστικά Νέφη

ΜΑΘΗΜΑ: Υπολογιστικά Νέφη Comment [h1]: Παράδειγμ α: https://ocp.teiath.gr/modules/ exercise/exercise_result.php?course=pey101&eurid=16 9 ΜΑΘΗΜΑ: Υπολογιστικά Νέφη ΔΙΔΑΣΚΩΝ: Άγγελος Μιχάλας ΤΜΗΜΑ: Τμήμα Μηχανικών Πληροφορικής ΤΕ

Διαβάστε περισσότερα

Μηχανική Λογισμικού για Διαδικτυακές & Φορητές Εφαρμογές

Μηχανική Λογισμικού για Διαδικτυακές & Φορητές Εφαρμογές Μεταπτυχιακό Δίπλωμα Ειδίκευσης Μηχανική Λογισμικού για Διαδικτυακές & Φορητές Εφαρμογές Δρ. Κακαρόντζας Γεώργιος Επίκουρος Καθηγητής Τμ. Μηχανικών Πληροφορικής Τ.Ε. Μηχανική Λογισμικού για Διαδικτυακές

Διαβάστε περισσότερα

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Εαρινό Εξάμηνο

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Εαρινό Εξάμηνο ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Εαρινό Εξάμηνο 2016-2017 Υποχρεωτική εργασία Τα τελευταία χρόνια, λόγω της τεράστιας αύξησης της ποσότητας της πληροφορίας που έχουμε

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr Διπλωματικές

Διαβάστε περισσότερα

Διαφορές single-processor αρχιτεκτονικών και SoCs

Διαφορές single-processor αρχιτεκτονικών και SoCs 13.1 Τα συστήματα και η επικοινωνία μεταξύ τους γίνονται όλο και περισσότερο πολύπλοκα. Δεν μπορούν να περιγραφούνε επαρκώς στο επίπεδο RTL καθώς αυτή η διαδικασία γίνεται πλέον αρκετά χρονοβόρα. Για αυτό

Διαβάστε περισσότερα

Cloud Computing και Ζητήματα Προστασίας Προσωπικών Δεδομένων. Λ. Μήτρου, Αναπληρώτρια Καθηγήτρια Πανεπιστήμιο Αιγαίου

Cloud Computing και Ζητήματα Προστασίας Προσωπικών Δεδομένων. Λ. Μήτρου, Αναπληρώτρια Καθηγήτρια Πανεπιστήμιο Αιγαίου Cloud Computing και Ζητήματα Προστασίας Προσωπικών Δεδομένων Λ. Μήτρου, Αναπληρώτρια Καθηγήτρια Πανεπιστήμιο Αιγαίου 1 Περί τίνος πρόκειται Κατά NIST πρόκειται για ένα μοντέλο που ενεργοποιεί ευχερή, σύμφωνα

Διαβάστε περισσότερα

1 Συστήματα Αυτοματισμού Βιβλιοθηκών

1 Συστήματα Αυτοματισμού Βιβλιοθηκών 1 Συστήματα Αυτοματισμού Βιβλιοθηκών Τα Συστήματα Αυτοματισμού Βιβλιοθηκών χρησιμοποιούνται για τη διαχείριση καταχωρήσεων βιβλιοθηκών. Τα περιεχόμενα των βιβλιοθηκών αυτών είναι έντυπα έγγραφα, όπως βιβλία

Διαβάστε περισσότερα

ΣΥΓΚΡΙΤΙΚΗ ΜΕΛΕΤΗ ΤΕΧΝΟΛΟΓΙΩΝ ΔΙΑΔΙΚΤΥΑΚΩΝ ΥΠΗΡΕΣΙΩΝ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ REST ΠΛΑΣΤΑΡΑΣ ΕΥΡΙΠΙΔΗΣ

ΣΥΓΚΡΙΤΙΚΗ ΜΕΛΕΤΗ ΤΕΧΝΟΛΟΓΙΩΝ ΔΙΑΔΙΚΤΥΑΚΩΝ ΥΠΗΡΕΣΙΩΝ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ REST ΠΛΑΣΤΑΡΑΣ ΕΥΡΙΠΙΔΗΣ ΣΥΓΚΡΙΤΙΚΗ ΜΕΛΕΤΗ ΤΕΧΝΟΛΟΓΙΩΝ ΔΙΑΔΙΚΤΥΑΚΩΝ ΥΠΗΡΕΣΙΩΝ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ REST ΠΛΑΣΤΑΡΑΣ ΕΥΡΙΠΙΔΗΣ ΘΕΣΣΑΛΟΝΙΚΗ, 2016 ΕΙΣΑΓΩΓΗ Μια διαδικτυακή υπηρεσία μπορεί να περιγραφεί απλά σαν μια οποιαδήποτε

Διαβάστε περισσότερα

Διαχείριση Πολιτισμικών Δεδομένων

Διαχείριση Πολιτισμικών Δεδομένων Διαχείριση Πολιτισμικών Δεδομένων Μάθημα 1 Εισαγωγή στις Βάσεις Δεδομένων Τζανέτος Πομόνης ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Συντήρησης Πολιτισμικής Κληρονομιάς Τι είναι οι Βάσεις

Διαβάστε περισσότερα

Πληροφορική ΙΙ Εισαγωγή στις Βάσεις Δεδομένων. Τμήμα Λογιστικής

Πληροφορική ΙΙ Εισαγωγή στις Βάσεις Δεδομένων. Τμήμα Λογιστικής Εισαγωγή στις Βάσεις Δεδομένων Εισαγωγή στις Βάσεις Δεδομένων Ορισμός Βάσης Δεδομένων Σύστημα Διαχείρισης Βάσης Δεδομένων ΣΔΒΔ (DBMS) Χαρακτηριστικά προσέγγισης συστημάτων αρχειοθέτησης Χαρακτηριστικά

Διαβάστε περισσότερα

Αρχιτεκτονικές κατανεμημένων συστημάτων. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 12

Αρχιτεκτονικές κατανεμημένων συστημάτων. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 12 Αρχιτεκτονικές κατανεμημένων συστημάτων Στόχοι Εξήγηση των πλεονεκτημάτων και των μειονεκτημάτων των αρχιτεκτονικών κατανεμημένων συστημάτων Εξέταση των αρχιτεκτονικών συστημάτων πελάτηδιακομιστή και των

Διαβάστε περισσότερα

Κατανεμημένα Συστήματα

Κατανεμημένα Συστήματα Κατανεμημένα Συστήματα Σημειώσεις εργαστηρίου Lab#7 - Διεργασίες, Nήματα, Πολυνημάτωση στη Python Νεβράντζας Βάιος-Γερμανός Λάρισα, Φεβρουάριος 2013 Lab#7 - Διεργασιές, Νη ματα, Πολυνημα τωση στη Python,

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

Διαβάστε περισσότερα

ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ ΙΑ ΙΚΤΥΑΚΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΎ ΣΥΣΤΗΜΑΤΟΣ. Τρίτη, 7 Φεβρουαρίου 2012

ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ ΙΑ ΙΚΤΥΑΚΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΎ ΣΥΣΤΗΜΑΤΟΣ. Τρίτη, 7 Φεβρουαρίου 2012 ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ ΙΑ ΙΚΤΥΑΚΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΎ ΣΥΣΤΗΜΑΤΟΣ Τρίτη, 7 Φεβρουαρίου 2012 Για την εταιρεία ACTS : Παπαγεωργίου Κων/νος Ποτιέ 21/ Χανιά, ΤΚ 73100 AΦΜ: 065439343 Τηλ./Fax:

Διαβάστε περισσότερα

ΕΝΙΑΙΟ ΠΛΑΙΣΙΟ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥΔΩΝ

ΕΝΙΑΙΟ ΠΛΑΙΣΙΟ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥΔΩΝ ΥΠΟΥΡΓΕΙΟ ΕΘΝΙΚΗΣ ΠΑΙΔΕΙΑΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ ΠΑΙΔΑΓΩΓΙΚΟ ΙΝΣΤΙΤΟΥΤΟ ΕΝΙΑΙΟ ΠΛΑΙΣΙΟ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥΔΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΙΣΧΥΕΙ ΚΑΤΑ ΤΟ ΜΕΡΟΣ ΠΟΥ ΑΦΟΡΑ ΤΟ ΛΥΚΕΙΟ ΓΙΑ ΤΗΝ ΥΠΟΧΡΕΩΤΙΚΗ ΕΚΠΑΙΔΕΥΣΗ ΙΣΧΥΟΥΝ ΤΟ ΔΕΠΠΣ

Διαβάστε περισσότερα

Εισαγωγή στα Πληροφοριακά Συστήματα. Ενότητα 11: Αρχιτεκτονική Cloud

Εισαγωγή στα Πληροφοριακά Συστήματα. Ενότητα 11: Αρχιτεκτονική Cloud Εισαγωγή στα Πληροφοριακά Συστήματα Ενότητα 11: Κωνσταντίνος Ταραμπάνης Τμήμα Οργάνωσης & Διοίκησης Επιχειρήσεων ΕΙΣΑΓΩΓΗ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Κωνσταντίνος Ταραμπάνης Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Πληροφορική 2. Βάσεις Δεδομένων (Databases)

Πληροφορική 2. Βάσεις Δεδομένων (Databases) Πληροφορική 2 Βάσεις Δεδομένων (Databases) 1 2 Επίπεδα αρχεία (flat files) Επίπεδο αρχείο είναι ένα αρχείο που αποτελείται από ένα σταθερό, μικρό αριθμό πεδίων. Οι εγγραφές του αρχείου μπορεί να μην ακολουθούν

Διαβάστε περισσότερα

Κεφάλαιο 4: Λογισμικό Συστήματος

Κεφάλαιο 4: Λογισμικό Συστήματος Κεφάλαιο 4: Λογισμικό Συστήματος Ερωτήσεις 1. Να αναφέρετε συνοπτικά τις κατηγορίες στις οποίες διακρίνεται το λογισμικό συστήματος. Σε ποια ευρύτερη κατηγορία εντάσσεται αυτό; Το λογισμικό συστήματος

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 13. Εφαρμογές νέφους. ΕΝΟΤΗΤΑ 4 Συνεργασία και Ασφάλεια στο Διαδίκτυο. Εφαρμογές Πληροφορικής

ΚΕΦΑΛΑΙΟ 13. Εφαρμογές νέφους. ΕΝΟΤΗΤΑ 4 Συνεργασία και Ασφάλεια στο Διαδίκτυο. Εφαρμογές Πληροφορικής 110 Εφαρμογές νέφους Διδακτικές ενότητες 13.1 Eισαγωγή στις εφαρμογές νέφους 13.2 Μοντέλα υπηρεσιών νέφους 13.3 Εφαρμογές υπηρεσιών νέφους Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να αποσαφηνίσουν

Διαβάστε περισσότερα

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΠΕΙΡΑΙΑ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΟΜΕΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ, ΠΛΗΡΟΦΟΡΙΚΗΣ & ΔΙΚΤΥΩΝ Εργ. Τεχνολογίας Λογισμικού & Υπηρεσιών S 2 E Lab Π Τ Υ Χ Ι

Διαβάστε περισσότερα

Σύστημα Αναθέσεων. Σχεδιασμός Υποσυστημάτων

Σύστημα Αναθέσεων. Σχεδιασμός Υποσυστημάτων Unified IT services Αγ. Παρασκευής 67 15234 Χαλάνδρι http://www.uit.gr Σύστημα Αναθέσεων Σχεδιασμός Υποσυστημάτων ΕΛΛΑΚ Ημερομηνία: 7/12/2010 UIT Χαλάνδρι Αγ. Παρασκευής 67 15234 210 6835289 Unified Information

Διαβάστε περισσότερα

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. 2 ο Μάθημα: Βασικά Θέματα Βάσεων Δεδομένων. Δρ. Κωνσταντίνος Χ.

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. 2 ο Μάθημα: Βασικά Θέματα Βάσεων Δεδομένων. Δρ. Κωνσταντίνος Χ. Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας 2 ο Μάθημα: Βασικά Θέματα Βάσεων Δεδομένων Δρ. Κωνσταντίνος Χ. Γιωτόπουλος Βασικά θέματα Βάσεων Δεδομένων Ένα Σύστημα Βάσης Δεδομένων

Διαβάστε περισσότερα

Περίληψη ιπλωµατικής Εργασίας

Περίληψη ιπλωµατικής Εργασίας Περίληψη ιπλωµατικής Εργασίας Θέµα: Πρότυπη Εφαρµογή ιαλειτουργικότητας για Φορητές Συσκευές Όνοµα: Κωνσταντίνος Χρηστίδης Επιβλέπων: Ιωάννης Βασιλείου Συν-επιβλέπων: Σπύρος Αθανασίου 1. Αντικείµενο Αντικείµενο

Διαβάστε περισσότερα

ΗΜΕΡΙΔΑ Cloud Computing: Νέοι Ορίζοντες

ΗΜΕΡΙΔΑ Cloud Computing: Νέοι Ορίζοντες ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΓΝΩΡΙΣΗΣ ΠΡΟΤΥΠΩΝ ΗΜΕΡΙΔΑ Cloud Computing: Νέοι Ορίζοντες ΣΠΥΡΟΣ ΛΥΚΟΘΑΝΑΣΗΣ, ΚΑΘΗΓΗΤΗΣ 1 Εγκατάσταση Υποδομής CLOUD για τα εργαστήρια του CEID Παρούσα

Διαβάστε περισσότερα

L. M. Vaquero, L. Rodero Merino, J. Caceres, M. Lindner

L. M. Vaquero, L. Rodero Merino, J. Caceres, M. Lindner A Break in the L. M. Vaquero, L. Rodero Merino, J. Caceres, M. Lindner A Break in the 1 2 3 4 2/44 A Break in the 1 2 3 4 3/44 Δεν υπάρχει ορισμός για το cloud computing A Break in the προκαλείται σύγχυση

Διαβάστε περισσότερα

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο Πρωτόκολλα και Αρχιτεκτονική Δικτύου Για να ανταλλάξουν δεδομένα δύο σταθμοί, εκτός από την ύπαρξη διαδρομής μεταξύ

Διαβάστε περισσότερα

Αρχιτεκτονικές κατανεμημένων συστημάτων. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 12

Αρχιτεκτονικές κατανεμημένων συστημάτων. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 12 Αρχιτεκτονικές κατανεμημένων συστημάτων Στόχοι Εξήγηση των πλεονεκτημάτων και των μειονεκτημάτων των αρχιτεκτονικών κατανεμημένων συστημάτων Εξέταση των αρχιτεκτονικών συστημάτων πελάτηδιακομιστή και των

Διαβάστε περισσότερα

Αρχιτεκτονική Λογισμικού

Αρχιτεκτονική Λογισμικού Αρχιτεκτονική Λογισμικού περιεχόμενα παρουσίασης Τι είναι η αρχιτεκτονική λογισμικού Αρχιτεκτονική και απαιτήσεις Σενάρια ποιότητας Βήματα αρχιτεκτονικής σχεδίασης Αρχιτεκτονικά πρότυπα Διαστρωματωμένη

Διαβάστε περισσότερα

Προγραμματισμός διαδικτυακών εφαρμογών με PHP

Προγραμματισμός διαδικτυακών εφαρμογών με PHP ΕΣΔ516: Τεχνολογίες Διαδικτύου Προγραμματισμός διαδικτυακών εφαρμογών με PHP Ερωτήματα μέσω Περιεχόμενα Περιεχόμενα Λογισμικό για εφαρμογές Web Η τριεπίπεδη αρχιτεκτονική (3-tier architecture) Εισαγωγή

Διαβάστε περισσότερα

Βασικές Έννοιες Διαδικτύου, Wordpress και BuddyPress

Βασικές Έννοιες Διαδικτύου, Wordpress και BuddyPress ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Βασικές Έννοιες Διαδικτύου, Wordpress και BuddyPress Σταύρος Καουκάκης Χάρης Παπαγιαννάκης Ευτύχης Βαβουράκης 1 Περιεχόμενα Γενικές Έννοιες Διαδικτύου Η αρχιτεκτονική του Web Συστήματα

Διαβάστε περισσότερα

VERSION 1.0 ΝΟΕΜΒΡΙΟΣ, 2016 ΤΕΧΝΟΛΟΓΙΕΣ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ ΤΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΟΜΟΙΩΣΗΣ CLOUDSIM ΕΠΙΜΕΛΕΙΑ: ΒΑΣΙΛΕΙΟΣ ΤΣΑΚΑΝΙΚΑΣ

VERSION 1.0 ΝΟΕΜΒΡΙΟΣ, 2016 ΤΕΧΝΟΛΟΓΙΕΣ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ ΤΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΟΜΟΙΩΣΗΣ CLOUDSIM ΕΠΙΜΕΛΕΙΑ: ΒΑΣΙΛΕΙΟΣ ΤΣΑΚΑΝΙΚΑΣ VERSION 1.0 ΝΟΕΜΒΡΙΟΣ, 2016 ΤΕΧΝΟΛΟΓΙΕΣ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ ΤΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΟΜΟΙΩΣΗΣ CLOUDSIM ΕΠΙΜΕΛΕΙΑ: ΒΑΣΙΛΕΙΟΣ ΤΣΑΚΑΝΙΚΑΣ ΤΕΧΝΟΛΟΓΙΕΣ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ ΤΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΟΜΟΙΩΣΗΣ CLOUDSIM ΤΟ

Διαβάστε περισσότερα

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 13: (Μέρος Β ) Λειτουργικό Σύστημα Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής

Διαβάστε περισσότερα

Επιχειρησιακά Πληροφοριακά Συστήματα. Site: www.aggelopoulos.tk e-mail: ioannis.aggelopoulos@gmail.com. Στόχος Σκοπός μαθήματος

Επιχειρησιακά Πληροφοριακά Συστήματα. Site: www.aggelopoulos.tk e-mail: ioannis.aggelopoulos@gmail.com. Στόχος Σκοπός μαθήματος Επιχειρησιακά Πληροφοριακά Συστήματα Διδάσκων: Αγγελόπουλος Γιάννης Δευτέρα 3-5 Τρίτη 4-6 Εργαστήριο Α Site: www.aggelopoulos.tk e-mail: ioannis.aggelopoulos@gmail.com 1 Στόχος Σκοπός μαθήματος Σκοπός:

Διαβάστε περισσότερα

TRAVIS TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ

TRAVIS TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ TRAVIS-V1-2012 TRAVIS Λογισμικό Διαχείρισης Παραβάσεων Φωτοεπισήμανσης Το σύστημα διαχείρισης παραβάσεων φωτοεπισήμανσης

Διαβάστε περισσότερα

GUnet eclass 1.7 Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης

GUnet eclass 1.7 Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης GUnet eclass 1.7 Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης Περιγραφή Πλατφόρμας Η πλατφόρμα eclass είναι ένα ολοκληρωμένο Σύστημα Διαχείρισης Ηλεκτρονικών Μαθημάτων και αποτελεί την πρόταση του Ακαδημαϊκού Διαδικτύου

Διαβάστε περισσότερα

ΤΕΙ Δυτικής Ελλάδας Τμήμα Μηχανικών Πληροφορικής ΤΕ. Τεχνολογίες Υπολογιστικού Νέφους

ΤΕΙ Δυτικής Ελλάδας Τμήμα Μηχανικών Πληροφορικής ΤΕ. Τεχνολογίες Υπολογιστικού Νέφους ΤΕΙ Δυτικής Ελλάδας Τμήμα Μηχανικών Πληροφορικής ΤΕ Τεχνολογίες Υπολογιστικού Νέφους ΔΙΑΛΕΞΗ 1: ΕΙΣΑΓΩΓΉ ΒΑΣΙΛΕΙΟΣ Δ. ΤΣΑΚΑΝΙΚΑΣ Σκοπός της Ενότητας Η κατανόηση της έννοιας υπολογιστική πλέγματος. Η κατανόηση

Διαβάστε περισσότερα

Σταύρος Καουκάκης Ευτύχιος Βαβουράκης

Σταύρος Καουκάκης Ευτύχιος Βαβουράκης ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Βασικές Έννοιες Διαδικτύου Wordpress & Κοινωνικά Δίκτυα (Part 1) Σταύρος Καουκάκης Ευτύχιος Βαβουράκης 1 Περιεχόμενα Γενικές Έννοιες Διαδικτύου Η αρχιτεκτονική του Web Συστήματα Διαχείρισης

Διαβάστε περισσότερα

Η Oracle ανακοίνωσε την πιο ολοκληρωμένη λύση στον τομέα της Ανάλυσης δεδομένων στο Cloud

Η Oracle ανακοίνωσε την πιο ολοκληρωμένη λύση στον τομέα της Ανάλυσης δεδομένων στο Cloud Η Oracle ανακοίνωσε την πιο ολοκληρωμένη λύση στον τομέα της Ανάλυσης δεδομένων στο Cloud Το Oracle Analytics Cloud αποτελεί ένα ολοκληρωμένο σύνολο δυνατοτήτων που περιλαμβάνει έτοιμο περιεχόμενο, εξειδικευμένα

Διαβάστε περισσότερα

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι Λειτουργικά Συστήματα 1 Λογισμικό του Υπολογιστή Για να λειτουργήσει ένας Η/Υ εκτός από το υλικό του, είναι απαραίτητο και το λογισμικό Το σύνολο των προγραμμάτων που συντονίζουν τις λειτουργίες του υλικού

Διαβάστε περισσότερα

Ανοικτά Δεδομένα. Η εμπειρία του OpenDataCloud

Ανοικτά Δεδομένα. Η εμπειρία του OpenDataCloud Ανοικτά Δεδομένα Προκλήσεις και Ευκαιρίες: Η εμπειρία του OpenDataCloud Κώστας Σαΐδης, PhD Πάροχοι Ανοικτών Δεδομένων datagov.gr diavgeia.gr geodata.gov.gr Πυροσβεστικό σώμα Ελληνική Αστυνομία Υπουργείο

Διαβάστε περισσότερα

Σύστημα υποβολής αιτήσεων υποψήφιων συνεργατών ΕΚΤ

Σύστημα υποβολής αιτήσεων υποψήφιων συνεργατών ΕΚΤ Σύστημα υποβολής αιτήσεων υποψήφιων συνεργατών ΕΚΤ 1 Λειτουργικές απαιτήσεις Το σύστημα υποβολής αιτήσεων υποψήφιων συνεργατών στοχεύει στο να επιτρέπει την πλήρως ηλεκτρονική υποβολή αιτήσεων από υποψήφιους

Διαβάστε περισσότερα

cloud computing εφαρμογές νέφους Κεφάλαιο 13

cloud computing εφαρμογές νέφους Κεφάλαιο 13 cloud computing εφαρμογές νέφους Κεφάλαιο 13 Κεφάλαιο 13-Εφαρμογές νέφους (cloud applications) 2 ΑΡΧΙΚΑ ΕΡΩΤΗΜΑΤΑ Έχετε ποτέ ακούσει τους όρους Υπολογιστικό νέφος (cloud computing) Διαμοιρασμός αρχείων

Διαβάστε περισσότερα

2- Μοντέλα, Επίπεδα, Συμπράξεις, ROI, Υπολ/κό νέφος, Πλατφόρμες και Κινητή Διακυβέρνηση ΕΘΝΙΚΗ ΣΧΟΛΗ ΔΗΜΟΣΙΑΣ ΔΙΟΙΚΗΣΗΣ & ΑΥΤΟΔΙΟΙΚΗΣΗΣ

2- Μοντέλα, Επίπεδα, Συμπράξεις, ROI, Υπολ/κό νέφος, Πλατφόρμες και Κινητή Διακυβέρνηση ΕΘΝΙΚΗ ΣΧΟΛΗ ΔΗΜΟΣΙΑΣ ΔΙΟΙΚΗΣΗΣ & ΑΥΤΟΔΙΟΙΚΗΣΗΣ 2- Μοντέλα, Επίπεδα, Συμπράξεις, ROI, Υπολ/κό νέφος, Πλατφόρμες και Κινητή Διακυβέρνηση ΕΘΝΙΚΗ ΣΧΟΛΗ ΔΗΜΟΣΙΑΣ ΔΙΟΙΚΗΣΗΣ & ΑΥΤΟΔΙΟΙΚΗΣΗΣ Ενότητες Επιχειρηματικά μοντέλα Επίπεδα παροχής υπηρεσιών Συμπράξεις

Διαβάστε περισσότερα

Φορολογική Βιβλιοθήκη. Θανάσης Φώτης Προγραμματιστής Εφαρμογών

Φορολογική Βιβλιοθήκη. Θανάσης Φώτης Προγραμματιστής Εφαρμογών Φορολογική Βιβλιοθήκη Θανάσης Φώτης Προγραμματιστής Εφαρμογών Το έργο Η φορολογική βιβλιοθήκη πρόκειται για ένα έργο που φιλοδοξεί να αποτελέσει σημαντικό βοήθημα για τον επαγγελματία λογιστή και όχι μόνο.

Διαβάστε περισσότερα

Εισαγωγή στη Σχεδίαση Λογισμικού

Εισαγωγή στη Σχεδίαση Λογισμικού Εισαγωγή στη Σχεδίαση Λογισμικού περιεχόμενα παρουσίασης Τι είναι η σχεδίαση λογισμικού Έννοιες σχεδίασης Δραστηριότητες σχεδίασης Σχεδίαση και υποδείγματα ανάπτυξης λογισμικού σχεδίαση Η σχεδίαση του

Διαβάστε περισσότερα

ΕΚΠΑ η-τάξη Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης

ΕΚΠΑ η-τάξη Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης ΕΚΠΑ η-τάξη Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης Περιγραφή Πλατφόρμας Η πλατφόρμα η-τάξη είναι ένα ολοκληρωμένο Σύστημα Διαχείρισης Ηλεκτρονικών Μαθημάτων και υποστηρίζει την Υπηρεσία Ασύγχρονης Τηλεκπαίδευσης

Διαβάστε περισσότερα

Λιόλιου Γεωργία. ιατµηµατικό Πρόγραµµα Μεταπτυχιακών Σπουδών στα Πληροφοριακά Συστήµατα

Λιόλιου Γεωργία. ιατµηµατικό Πρόγραµµα Μεταπτυχιακών Σπουδών στα Πληροφοριακά Συστήµατα ιατµηµατικό Πρόγραµµα Μεταπτυχιακών Σπουδών στα Πληροφοριακά Συστήµατα Λιόλιου Γεωργία ΕπιβλέπουσαΚαθηγήτρια: ΣατρατζέµηΜάγια, καθηγήτρια, τµ. ΕφαρµοσµένηςΠληροφορικής, ΠΑΜΑΚ Εισαγωγή Γενικά στοιχεία εφαρµογή

Διαβάστε περισσότερα

Εισαγωγή. Κατανεµηµένα Συστήµατα 01-1

Εισαγωγή. Κατανεµηµένα Συστήµατα 01-1 Εισαγωγή Υλισµικό Λογισµικό Αρχές σχεδίασης ιαφάνεια Κλιµάκωση Παρεχόµενες υπηρεσίες Μοντέλο πελάτη εξυπηρετητή Μοντέλο πελάτη εξυπηρετητή τριών επιπέδων Κατανοµή επεξεργασίας Κατανεµηµένα Συστήµατα 01-1

Διαβάστε περισσότερα

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο FrontPage 2003 Πρακτικός Οδηγός Χρήσης Το FrontPage είναι ένα πρόγραμμα δημιουργίας ιστοσελίδων και δικτυακών τόπων που επιτρέπει το σχεδιασμό ιστοσελίδων μέσα από γραφικό περιβάλλον αλλά και την ταυτόχρονη

Διαβάστε περισσότερα

Υπολογιστική Νέφους: Εργαστήριο ΙI Υπηρεσία αποθήκευσης και Ανάπτυξη διαδικτυακής εφαρμογής

Υπολογιστική Νέφους: Εργαστήριο ΙI Υπηρεσία αποθήκευσης και Ανάπτυξη διαδικτυακής εφαρμογής Υπολογιστική Νέφους: Εργαστήριο ΙI Υπηρεσία αποθήκευσης και Ανάπτυξη διαδικτυακής εφαρμογής Αρκολάκης Δημήτριος Τμήμα Προηγμένων Συστημάτων Πληροφορικής Πανεπιστήμιο Πειραιώς Πειραιάς, Αττική, Ελλάς meetsospapei@gmail.com

Διαβάστε περισσότερα

Ημερομηνία Παράδοσης: 4/4/2013

Ημερομηνία Παράδοσης: 4/4/2013 Δράση 9.14 / Υπηρεσία εντοπισμού λογοκλοπής Κυρίως Παραδοτέο / Σχεδιασμός και ανάπτυξη λογισμικού (λογοκλοπής) και βάσης δεδομένων (αποθετηρίου) Επιμέρους Παραδοτέο 9.14.1.4 / Πληροφοριακό σύστημα υπηρεσίας

Διαβάστε περισσότερα

ÈÛ ÁˆÁ ÛÙÈ μ ÛÂÈ Â ÔÌ ÓˆÓ

ÈÛ ÁˆÁ ÛÙÈ μ ÛÂÈ Â ÔÌ ÓˆÓ ΕΝΟΤΗΤΑ 1.1 ÈÛ ÁˆÁ ÛÙÈ μ ÛÂÈ Â ÔÌ ÓˆÓ ΔΙΔΑΚΤΙΚΟI ΣΤOΧΟΙ Στο τέλος της ενότητας αυτής πρέπει να μπορείτε: να επεξηγείτε τις έννοιες «βάση δεδομένων» και «σύστημα διαχείρισης βάσεων δεδομένων» να αναλύετε

Διαβάστε περισσότερα

Θέματα διπλωματικών εργασιών σε. Συστοιχίες παράλληλης εξυηρέτησης εφαρμογών Διαδικτύου

Θέματα διπλωματικών εργασιών σε. Συστοιχίες παράλληλης εξυηρέτησης εφαρμογών Διαδικτύου Θέματα διπλωματικών εργασιών σε συστοιχίες παράλληλης εξυπηρέτησης εφαρμογών Διαδικτύου Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Τομέας Τεχνολογίας Πληροφορικής

Διαβάστε περισσότερα

1 Cosmos Business Systems SA Cosmos Consulting SA Software Solutions

1 Cosmos Business Systems SA Cosmos Consulting SA Software Solutions 1 Cosmos Business Systems SA Cosmos Consulting SA Software Solutions Microsoft Dynamics CRM Τι είναι; Το CRM αποτελεί το τεχνολογικό εργαλείο για την υλοποίηση ενιαίας, πελατοκεντρικής επιχειρηματικής

Διαβάστε περισσότερα

ΤΕΙ ΚΑΒΑΛΑΣ. Πτυχιακή εργασία ΕΙΣΑΓΩΓΗ. Μιλτιάδης Κακλαμάνης

ΤΕΙ ΚΑΒΑΛΑΣ. Πτυχιακή εργασία ΕΙΣΑΓΩΓΗ. Μιλτιάδης Κακλαμάνης Σελίδα 1από ΤΕΙ ΚΑΒΑΛΑΣ Πτυχιακή εργασία Δικτυακή Εφαρμογή διαχείρισης ηλεκτρονικών εγγράφων υπηρεσίας. ΕΙΣΑΓΩΓΗ Μιλτιάδης Κακλαμάνης Σελίδα 2από Κατάλογος περιεχομένων ΕΙΣΑΓΩΓΗ...1 Σχετιζόμενα πρόσωπα...3

Διαβάστε περισσότερα

Διαδικτυακές Εφαρμογές. Ενότητα 2: Enterprise Java Beans και Java Server Faces Μιχάλας Άγγελος Βούρκας Δημήτριος Τμήμα Μηχανικών Πληροφορικής ΤΕ

Διαδικτυακές Εφαρμογές. Ενότητα 2: Enterprise Java Beans και Java Server Faces Μιχάλας Άγγελος Βούρκας Δημήτριος Τμήμα Μηχανικών Πληροφορικής ΤΕ Διαδικτυακές Εφαρμογές Ενότητα 2: Enterprise Java Beans και Java Server Faces Μιχάλας Άγγελος Βούρκας Δημήτριος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Ανάπτυξη μιας προσαρμοστικής πολιτικής αντικατάστασης αρχείων, με χρήση

Διαβάστε περισσότερα

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία Λειτουργικά Συστήματα Ι Καθηγήτρια Παπαδάκη Αναστασία 2013 1 Ηλεκτρονικός Υπολογιστής αποτελείται: 1. Από Υλικό Hardware (CPUs, RAM, Δίσκοι), & 2. Λογισμικό - Software Και μπορεί να εκτελέσει διάφορες

Διαβάστε περισσότερα

Κεφάλαιο 5. Δημιουργία φορμών για τη βάση δεδομένων DVDclub

Κεφάλαιο 5. Δημιουργία φορμών για τη βάση δεδομένων DVDclub Κεφάλαιο 5. Δημιουργία φορμών για τη βάση δεδομένων DVDclub Σύνοψη Σ αυτό το κεφάλαιο θα περιγράψουμε τη δημιουργία φορμών, προκειμένου να εισάγουμε δεδομένα και να εμφανίζουμε στοιχεία από τους πίνακες

Διαβάστε περισσότερα

Στρατηγική Επιλογή Capital B.O.S. Capital B.O.S.

Στρατηγική Επιλογή Capital B.O.S. Capital B.O.S. Στρατηγική Επιλογή Το ταχύτατα μεταβαλλόμενο περιβάλλον στο οποίο δραστηριοποιούνται οι επιχειρήσεις σήμερα, καθιστά επιτακτική -όσο ποτέ άλλοτε- την ανάπτυξη ολοκληρωμένων λύσεων που θα διασφαλίζουν,

Διαβάστε περισσότερα

Λειτουργικά Συστήματα Η/Υ

Λειτουργικά Συστήματα Η/Υ Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 4 «Αρχιτεκτονικές ΛΣ» Διδάσκων: Δ Λιαροκάπης Διαφάνειες: Π. Χατζηδούκας 1 1. Μονολιθικά συστήματα Αρχιτεκτονικές ΛΣ 2. Στρωματοποιημένη αρχιτεκτονική 3. Αρχιτεκτονική

Διαβάστε περισσότερα

ΕΝΟΤΗΤΑ 2 η ΙΑΧΕΙΡΙΣΗ ΡΟΗΣ ΕΡΓΑΣΙΑΣ (WORKFLOW MANAGEMENT) 2.1 Εισαγωγή

ΕΝΟΤΗΤΑ 2 η ΙΑΧΕΙΡΙΣΗ ΡΟΗΣ ΕΡΓΑΣΙΑΣ (WORKFLOW MANAGEMENT) 2.1 Εισαγωγή ΕΝΟΤΗΤΑ 2 η ΙΑΧΕΙΡΙΣΗ ΡΟΗΣ ΕΡΓΑΣΙΑΣ (WORKFLOW MANAGEMENT) 2.1 Εισαγωγή Οι σηµερινές δραστηριότητες των επιχειρήσεων δηµιουργούν την ανάγκη για όσο το δυνατό µεγαλύτερη υποστήριξη από τα πληροφοριακά τους

Διαβάστε περισσότερα

Τεχνολογική Υποδομή Πληροφοριακών Συστημάτων

Τεχνολογική Υποδομή Πληροφοριακών Συστημάτων Τεχνολογική Υποδομή Πληροφοριακών Συστημάτων Βαγγελιώ Καβακλή Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου Παρουσίαση βασισμένη στο βιβλίο Διοίκησης, 6 η εκδ., K. Laudon, J. Laudon,

Διαβάστε περισσότερα

Σχεδιασµός βασισµένος σε συνιστώσες

Σχεδιασµός βασισµένος σε συνιστώσες Σχεδιασµός βασισµένος σε συνιστώσες 1 Ενδεικτικά περιεχόµενα του κεφαλαίου Ποια είναι τα "άτοµα", από τα οποία κατασκευάζονται οι υπηρεσίες; Πώς οργανώνουµε τις συνιστώσες σε ένα αρµονικό σύνολο; Τι είναι

Διαβάστε περισσότερα

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στην Access...9. Κεφάλαιο 2 Χειρισμός πινάκων... 25

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στην Access...9. Κεφάλαιο 2 Χειρισμός πινάκων... 25 Περιεχόμενα Κεφάλαιο 1 Εισαγωγή στην Access...9 Γνωριμία με την Access... 12 Δημιουργία βάσης δεδομένων... 18 Άνοιγμα και κλείσιμο βάσης δεδομένων... 21 Ερωτήσεις ανακεφαλαίωσης... 22 Πρακτική εξάσκηση...

Διαβάστε περισσότερα

Tales & Trails. apps4thessaloniki 2016

Tales & Trails. apps4thessaloniki 2016 Tales & Trails apps4thessaloniki 2016 the digiwalkers team Πανισκάκη Κική, πτυχιούχος τμήματος Πληροφορικής ΑΠΘ, σχεδίαση & ανάπτυξη εφαρμογής Βακάλη Αθηνά, Kαθηγήτρια Πληροφορικής στο Αριστοτέλειο Πανεπιστήμιο

Διαβάστε περισσότερα

Open eclass Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης

Open eclass Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης Open eclass Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης Περιγραφή Πλατφόρμας Η πλατφόρμα Open eclass είναι ένα ολοκληρωμένο Σύστημα Διαχείρισης Ηλεκτρονικών Μαθημάτων και αποτελεί την πρόταση του Πανελλήνιου Ακαδημαϊκού

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ ΥΠΟΥΡΓΕΙΟ ΕΘΝΙΚΗΣ ΠΑΙΔΕΙΑΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ ΠΑΙΔΑΓΩΓΙΚΟ ΙΝΣΤΙΤΟΥΤΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ Κ Υ Κ Λ Ο Υ Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ Κ Α Ι Υ Π Η Ρ Ε Σ Ι Ω Ν Τ Ε Χ Ν Ο Λ Ο Γ Ι Κ Η

Διαβάστε περισσότερα

Ασφάλεια σε χώρους αναψυχής: Ένα σύστημα από έξυπνα αντικείμενα

Ασφάλεια σε χώρους αναψυχής: Ένα σύστημα από έξυπνα αντικείμενα Σχολή Επικοινωνίας και Μέσων Ενημέρωσης Πτυχιακή εργασία Ασφάλεια σε χώρους αναψυχής: Ένα σύστημα από έξυπνα αντικείμενα Εύρος Χριστοδούλου Λεμεσός, Μάιος 2018 ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΕΠΙΚΟΙΝΩΝΙΑΣ

Διαβάστε περισσότερα

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 1: Ορισμοί βασικών εννοιών: Μια πρώτη μοντελοποίηση. Ευαγγελίδης Γεώργιος Τμήμα Εφαρμοσμένης Πληροφορικής

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 1: Ορισμοί βασικών εννοιών: Μια πρώτη μοντελοποίηση. Ευαγγελίδης Γεώργιος Τμήμα Εφαρμοσμένης Πληροφορικής Ενότητα 1: Ορισμοί βασικών εννοιών: Μια πρώτη μοντελοποίηση Ευαγγελίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες,

Διαβάστε περισσότερα

Λογισμικό Open Source στις Υπηρεσίες των Βιβλιοθηκών του Πανεπιστημίου Αθηνών

Λογισμικό Open Source στις Υπηρεσίες των Βιβλιοθηκών του Πανεπιστημίου Αθηνών Λογισμικό Open Source στις Υπηρεσίες των Βιβλιοθηκών του Πανεπιστημίου Αθηνών Υπολογιστικό Κέντρο Βιβλιοθηκών ΕΚΠΑ http://www.lib.uoa.gr Εισαγωγή Και στις ΒΥΠ του ΕΚΠΑ, οι ανάγκες για υλοποίηση υπηρεσιών

Διαβάστε περισσότερα

ΠΟΙΟΙ ΜΠΟΡΟΥΝ ΝΑ ΣΥΜΜΕΤΕΧΟΥΝ ΣΤΗΝ ΠΙΛΟΤΙΚΗ ΛΕΙΤΟΥΡΓΙΑ

ΠΟΙΟΙ ΜΠΟΡΟΥΝ ΝΑ ΣΥΜΜΕΤΕΧΟΥΝ ΣΤΗΝ ΠΙΛΟΤΙΚΗ ΛΕΙΤΟΥΡΓΙΑ RE.CAP: Η ΙΔΕΑ Η ανάπτυξη της γεωργίας με βιώσιμο τρόπο προϋποθέτει την ενσωμάτωση περιβαλλοντικών παραμέτρων στην Κοινή Αγροτική Πολιτική (ΚΑΠ). Από το 2003, οι αγρότες που λαμβάνουν ενισχύσεις στο πλαίσιο

Διαβάστε περισσότερα

Information Technology for Business

Information Technology for Business Information Technology for Business! Lecturer: N. Kyritsis, MBA, Ph.D. Candidate!! e-mail: kyritsis@ist.edu.gr Διαχείριση Επιχειρηματικών Δεδομένων - Databases Ορισμός Βάσης Δεδομένων Συλλογή συναφών αρχείων

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία. AtYourService CY : Create a REST API. Δημήτρης Χριστοδούλου

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία. AtYourService CY : Create a REST API. Δημήτρης Χριστοδούλου ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ Πτυχιακή εργασία AtYourService CY : Create a REST API Δημήτρης Χριστοδούλου Λεμεσός 2016 ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ

Διαβάστε περισσότερα

Εισαγωγή στην Πληροφορική

Εισαγωγή στην Πληροφορική Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Εισαγωγή στην Πληροφορική Ενότητα 8: Λειτουργικά Συστήματα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

Διαβάστε περισσότερα

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Βάσεις Δεδομένων Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, Υλικό Μαθήματος «Βάσεις Δεδομένων», 2015-2016 Κεφάλαιο 2: Περιβάλλον Βάσεων Δεδομένων Μοντέλα Δεδομένων 2.1

Διαβάστε περισσότερα

01 SOLUTIONS HELLAS Ε.Π.Ε. Χελμού 20, 151 25 Μαρούσι Αττικής Τηλ 215 55 00 880 FAX 215 55 00 883. Ηλεκτρονικό Πρωτόκολλο & Διακίνηση Εγγράφων

01 SOLUTIONS HELLAS Ε.Π.Ε. Χελμού 20, 151 25 Μαρούσι Αττικής Τηλ 215 55 00 880 FAX 215 55 00 883. Ηλεκτρονικό Πρωτόκολλο & Διακίνηση Εγγράφων 01 SOLUTIONS HELLAS Ε.Π.Ε. Χελμού 20, 151 25 Μαρούσι Αττικής Τηλ 215 55 00 880 FAX 215 55 00 883 e Prtcl-01 Ηλεκτρονικό Πρωτόκολλο & Διακίνηση Εγγράφων Συνοπτική Παρουσίαση Το σύστημα e Prtcl-01 Το σύστημα

Διαβάστε περισσότερα

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων Εργαστήριο Βάσεων Δεδομένων Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων Τρόπος Διεξαγωγής #1 Ύλη (4 Ενότητες) 1. Ανάλυση Απαιτήσεων - Σχεδιασμός Βάσης Δεδομένων 2. Δημιουργία βάσης a)

Διαβάστε περισσότερα

Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών

Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών Οδηγός Εργαστηρίου:

Διαβάστε περισσότερα

A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ

A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ 1 Βάση Δεδομένων: Με το όρο Βάση Δεδομένων εννοούμε ένα σύνολο δεδομένων που είναι οργανωμένο

Διαβάστε περισσότερα

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος... 13. Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος... 13. Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15 ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος... 13 Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15 1.1 Εισαγωγή... 16 1.2 Διαδίκτυο και Παγκόσμιος Ιστός Ιστορική αναδρομή... 17 1.3 Αρχές πληροφοριακών συστημάτων

Διαβάστε περισσότερα

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Ενότητα 1: Εισαγωγή στις Βάσεις Δεδομένων. Αθανάσιος Σπυριδάκος Διοίκηση Επιχειρήσεων

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Ενότητα 1: Εισαγωγή στις Βάσεις Δεδομένων. Αθανάσιος Σπυριδάκος Διοίκηση Επιχειρήσεων ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ενότητα 1: Εισαγωγή στις Βάσεις Δεδομένων Αθανάσιος Σπυριδάκος Διοίκηση Επιχειρήσεων Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Κεφάλαιο 3. Διδακτικοί Στόχοι

Κεφάλαιο 3. Διδακτικοί Στόχοι Κεφάλαιο 3 Σε ένα υπολογιστικό σύστημα η Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) εκτελεί τις εντολές που βρίσκονται στην κύρια μνήμη του. Οι εντολές αυτές ανήκουν σε προγράμματα τα οποία, όταν εκτελούνται,

Διαβάστε περισσότερα

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Το λειτουργικό σύστημα. Προγραμματισμός II 1 Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή η εφαρμογή είναι γνωστή εκ των προτέρων περιορισμένοι υπολογιστικοί

Διαβάστε περισσότερα