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

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

Download "Διπλωματική Εργασία. της φοιτήτριας του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών"

Transcript

1 ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ: Ηλεκτρονικής και Υπολογιστών ΕΡΓΑΣΤΗΡΙΟ: Συστημάτων Υπολογιστών Διπλωματική Εργασία της φοιτήτριας του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών Κοκκάλα Χρυσούλας Αριθμός Μητρώου: 6280 Θέμα: Εφαρμογές στο Πλέγμα Υπολογιστών Επιβλέπων: Καθηγητής Ευθύμιος Χούσος Πάτρα, Οκτώβριος 2012

2

3 ΠΙΣΤΟΠΟΙΗΣΗ Πιστοποιείται ότι η Διπλωματική Εργασία με θέμα «Εφαρμογές στο Πλέγμα Υπολογιστών» της φοιτήτριας του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Κοκκάλα Χρυσούλας του Σπυρίδωνος Αριθμός Μητρώου: 6280 Παρουσιάστηκε δημόσια και εξετάστηκε στο Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών στις 08/10/2012 Ο Επιβλέπων Ο Διευθυντής του Τομέα Καθηγητής Ευθύμιος Χούσος Καθηγητής Ευθύμιος Χούσος

4 Αριθμός Διπλωματικής Εργασίας: Θέμα : Εφαρμογές στο Πλέγμα Υπολογιστών Φοιτήτρια: Κοκκάλα Χρυσούλα Επιβλέπων: Καθηγητής Ευθύμιος Χούσος Περίληψη Στη σύγχρονη εποχή, η ανάπτυξη των ετερογενών και κατανεμημένων περιβαλλόντων, όπως τα περιβάλλοντα πλέγματος, καθιστά εφικτή την επίλυση υπολογιστικά εντατικών προβλημάτων με αξιόπιστο και οικονομικό τρόπο. Το Πλέγμα Υπολογιστών είναι μια αναπτυσσόμενη υποδομή που παρέχει πρόσβαση σε υπολογιστική ισχύ και αποθηκευτικό χώρο κατανεμημένα σε όλο τον κόσμο. Εισήχθη για να ικανοποιήσει την ανάγκη για εφαρμογές που απαιτούν μεγάλο αριθμό υπολογισμών καθώς και την επικοινωνία των ατόμων που τις εκτελούν. Ένα πρόβλημα που μπορεί να εκμεταλλευτεί τα πλεονεκτήματα του Πλέγματος είναι το πρόβλημα χρονοπρογραμματισμού πληρωμάτων. Το συγκεκριμένο πρόβλημα είναι πολύπλοκο και χρονοβόρο εξαιτίας των πολλών περιορισμών που συνδέονται με αυτό. Στην παρούσα διπλωματική εργασία παρουσιάζεται με λεπτομέρεια η δομή και ο τρόπος λειτουργίας και εξυπηρέτησης χρηστών του Πλέγματος. Επίσης, καταγράφουμε τη μεθοδολογία και τον τρόπο υποβολής εργασιών στο Πλέγμα από τη σκοπιά του χρήστη. Επικεντρώνουμε το ενδιαφέρον μας στην αποδοτική επίλυση του προβλήματος χρονοπρογραμματισμού ανθρωπίνων πόρων, συγκεκριμένα του νοσηλευτικού προσωπικού ενός νοσοκομείου, με χρήση παράλληλης επεξεργασίας σε περιβάλλον δικτύου υπολογιστών. 4

5 Περιεχόμενα 1. Εισαγωγή Παράλληλα Συστήματα Αντικείμενο της Διπλωματικής Πλέγμα Υπολογιστών Τι είναι το Πλέγμα Υπολογιστών; Αρχιτεκτονική του Πλέγματος Υπολογιστών Fabric: Διεπαφές για τοπικό έλεγχο Πρωτόκολλα Συνδεσιμότητας Μεσισμικό Συλλογικές Υπηρεσίες Μεσάζοντας Πόρων Εφαρμογές Χρηστών Διεπαφή Χρήστη Υπολογιστικό Στοιχείο Στοιχείο Αποθήκευσης Σύστημα Πληροφοριών Διαχείριση Δεδομένων Πρόσβαση στο Πλέγμα Υπολογιστών Εικονικός Οργανισμός Δομή Εφαρμογής στο Πλέγμα Εισαγωγή Εφαρμογής στο Πλέγμα Γλώσσα Περιγραφής Εργασιών Εκτέλεση Εφαρμογής στο Πλέγμα Υπηρεσίες Ιστού (Web Services) Τι είναι οι υπηρεσίες ιστού Τεχνολογίες υπηρεσιών ιστού SOAP WSDL UDDI

6 3.3 Οι Υπηρεσίες Ιστού στο Πλέγμα Υπολογιστών Αυτοματοποιημένες μεθοδολογίες σχεδιασμού Δημιουργία Υπηρεσιών Ιστού με το Jax-ws Επικοινωνία μεταξύ Υπηρεσίας Ιστού και Πελάτη Πελάτης Αρχιτεκτονική Συστήματος Παράλληλης Επεξεργασίας Πλαίσιο SchedSP Πλαίσιο Ανάπτυξης SchedScripter Περιγραφή Συστήματος Υλοποίηση Υπηρεσίας Ιστού Κλάση Υλοποίησης Υπηρεσίας Υποδοχέας Υπηρεσιών Ιστού Πελάτης Υπηρεσίας Χτίσιμο Εφαρμογής Εφαρμογή Παράλληλης Επεξεργασίας Λύση του Προβλήματος Εφαρμογή Παράλληλης Επεξεργασίας Εργασίες Εργάτες Διαχειριστής Υποβολή εφαρμογής στο Πλέγμα Εφαρμογή Παράλληλης Επεξεργασίας στο Πρόβλημα Χρονοπρογραμματισμού Προσωπικού Νοσοκομείου Περιγραφή του Προβλήματος Στρατηγική Επίλυσης Λύση του Προβλήματος Κατασκευή Αρχικής Λύσης Δημιουργία Υποπροβλημάτων Βελτίωση Λύσης Επιλογή Λύσης

7 6.3.5 Μέθοδος Τοπικής Αναζήτησης Εφαρμογή Παράλληλης Επεξεργασίας Εργασίες Εργάτες Διαχειριστής Αποτελέσματα Συμπεράσματα και Μελλοντικές Κατευθύνσεις Συμπεράσματα Μελλοντικές Κατευθύνσεις Ευχαριστίες Παράρτημα Buildfile εφαρμογής Βιβλιογραφία

8 1. Εισαγωγή 1.1 Παράλληλα Συστήματα Οι πρώτοι παράλληλοι υπολογιστές αναπτύχθηκαν στις αρχές της δεκαετίας του 1960 με σκοπό την χρησιμοποίηση τους στην επίλυση προβλημάτων με μεγάλες υπολογιστικές απαιτήσεις, όπως η έρευνα στους τομείς της αεροναυπηγικής και της πυρηνικής φυσικής. Κύριο χαρακτηριστικό αυτών των συστημάτων αποτελούσε το υπέρογκο κόστος τους. Χρειάστηκαν τουλάχιστον 20 χρόνια μέχρι οι τεχνικές του παράλληλου υπολογισμού να αποδεσμευθούν από τον αυστηρά ερευνητικό χαρακτήρα και να διεισδύσουν στην αγορά των εμπορικών υπολογιστικών συστημάτων. Αρχικά οι τεχνικές αυτές περιορίζονταν στο επίπεδο των μικροεντολών με χαρακτηριστικό παράδειγμα την υλοποίηση αγωγού εκτέλεσης (pipelining) δύο βημάτων στον Intel Σύντομα οι εμπορικοί μικροεπεξεργαστές, όπως ο Intel Pentium, άρχισαν να αποκτούν πέρα από παραλληλισμό χαμηλού επιπέδου και δυνατότητα εκτέλεσης διανυσματικών εντολών (SIMD) οι οποίες μπορούν να χρησιμοποιηθούν από τον προγραμματιστή εφαρμογών. Σίγουρα, ένα από τα σημαντικότερα βήματα προς την κατεύθυνση της ευρείας χρήσης των παράλληλων υπολογιστών έγινε με την ανάπτυξη πολυεπεξεργαστικών συστημάτων κοινής μνήμης χρησιμοποιώντας διαμοιραζόμενο δίαυλο (shared bus). Τα συστήματα αυτά, γνωστά ως συμμετρικά πολυεπεξεργαστικά συστήματα (Symmetric Multiprocessors, SMP), ακολουθούν την αρχιτεκτονική της ομοιόμορφα προσπέλασης μνήμης (Uniform Memory Access) και έχουν ως κύριο χαρακτηριστικό τον ανταγωνιστικό λόγο απόδοσης/κόστους. Το γεγονός αυτό οδήγησε στην ευρεία χρησιμοποίηση τους ως εξυπηρετητές δικτυακών υπηρεσιών, συστημάτων βάσεων δεδομένων αλλά και εφαρμογών υψηλών υπολογιστικών απαιτήσεων. Το κύριο μειονέκτημα των SMP είναι ότι η κλιμακωσιμότητα τους περιορίζεται σε μικρό αριθμό επεξεργαστών, κυρίως λόγω του κορεσμού και του ανταγωνισμού του κοινού διαύλου. Χαρακτηριστικό παράδειγμα της αρχιτεκτονικής αυτής αποτελούν τα συστήματα που βασίζονται στους επεξεργαστές Pentium ΙΙΙ/Xeon/Itanium της Intel και Athlon της AMD. Παράλληλα όμως οι συνεχώς αυξανόμενες απαιτήσεις των πολλαπλών εφαρμογών της υπολογιστικής τεχνολογίας αποτέλεσε τον κινητήριο μοχλό για την ανάπτυξη συστημάτων μεγαλύτερης κλιμακωσιμότητας. Συγκεκριμένα η εφαρμογή των υπολογιστικών μεθόδων σε ένα ευρύ φάσμα επιστημών, όπως η φαρμακολογία, η γονιδιακή έρευνα, η κλιματολογία και η γεωλογία έθεσε ως πρωταρχικό στόχο της 8

9 διεθνούς επιστημονικής κοινότητας την ανάπτυξη υπολογιστικών συστημάτων ικανών να αντιμετωπίσουν τις μεγάλες αυτές προκλήσεις (Grand Challenge Problems). Επιπλέον η ευρεία χρήση υπολογιστικών μεθόδων προσομοίωσης σε τομείς όπως η αυτοκινητοβιομηχανία, η βιομηχανία ενέργειας και η οικονομία έδρασαν καταλυτικά στην περαιτέρω ανάπτυξη των Υπολογιστικών Συστημάτων Υψηλών Επιδόσεων (High Perfomance Computing Systems). Για περισσότερο από μία δεκαετία τα πολυπληθέστερα αλλά και υπολογιστικά ισχυρότερα συστήματα υψηλών επιδόσεων ήταν κατά κύριο λόγο διανυσματικοί υπερυπολογιστές (vector supercomputers) και παράλληλοι υπολογιστές κατανεμημένης μνήμης (distributed memory). Τα συστήματα αυτά αναφέρονται ως μαζικά παράλληλοι υπολογιστές (Massive Parallel Processors, ΜΡΡ) και έχουν ως κύριο χαρακτηριστικό την χρήση υπολογιστικών μονάδων και διασυνδετικών δικτύων ειδικού σκοπού που δεν είναι ευρέως εμπορικά διαθέσιμα, λόγω του υψηλού τους κόστους. Ιδιαίτερο ενδιαφέρον παρουσιάζουν τα συστήματα κατανεμημένης κοινής μνήμης (Distributed Shared Memory, DSM), τα οποία ακολουθούν το μοντέλο της μη-ομοιόμορφης προσπέλασης μνήμης (Non-Uniform Memory Access, NUMA) και παρέχουν τη δυνατότητα χρήσης μεγάλου πλήθους επεξεργαστών. Οι επεξεργαστές είναι οργανωμένοι σε κόμβους, ο καθένας από τους οποίους περιέχει ιδιωτική ενδιάμεση μνήμη cache αλλά και ένα υποσύνολο της κύριας μνήμης. Επιπλέον, οι κόμβοι συνδέονται μεταξύ τους με ειδικά διασυνδετικά δίκτυα, επιτυγχάνοντας χαμηλό κόστος επικοινωνίας μεταξύ των επεξεργαστικών μονάδων. Οι NUMA μηχανές, αν και προσφέρουν ιδιαίτερα υψηλές επιδόσεις και την ευχρηστία της κοινής μνήμης, έχουν κόστος αρκετές τάξεις μεγέθους μεγαλύτερο από αυτό των SMP. Χαρακτηριστικό παράδειγμα αυτής της κατηγορίας είναι τα συστήματα Origin 2000 της Silicon Graphics. Στις αρχές της δεκαετίας του '90, η ευρεία παραγωγή όλο και ισχυρότερων εμπορικά διαθέσιμων μικροεπεξεργαστών, σε συνδυασμό με την ευρεία χρήση τους σε κάθε τομέα της ανθρώπινης δραστηριότητας και την έλευση του λογισμικού ανοικτού κώδικα, αποτέλεσαν τα βασικά κίνητρα για την ανάπτυξη των πρώτων συστάδων υπολογιστικών συστημάτων (cluster of computers). Οι συστάδες υπολογιστών αποτελούνται από ένα σύνολο ανεξάρτητων κοινών υπολογιστικών συστημάτων, τα οποία βρίσκονται στον ίδιο φυσικό χώρο και διασυνδέονται μεταξύ τους με τοπικό δίκτυο. Κάθε μονάδα της συστάδας καθώς και το δίκτυο που χρησιμοποιείται αποτελείται αποκλειστικά από υλικό που είναι ευρέως εμπορικά διαθέσιμο (Commercial Off-The-Self, COTS). Οι υπολογιστές της συστάδας συνήθως είναι είτε μονοεπεξεργαστικά συστήματα, είτε μικρά πολυπεξεργαστικά συστήματα (cluster of SMPs). Κύρια χαρακτηριστικά των υπολογιστών συστάδων είναι το χαμηλό κόστος ανά κόμβο αλλά και η μεγάλη ευελιξία σχεδίασης και επέκτασης. Τα χαρακτηριστικά αυτά προσδίδουν στην αρχιτεκτονική των συστάδων 9

10 υπολογιστών μία πρωτόγνωρη δυναμική ανάπτυξης, η οποία πιστοποιείται από την ραγδαία εξάπλωση της χρήσης τους τόσο στον τομέα της επιστημονικής έρευνας αλλά και των εμπορικών εφαρμογών. Αντιπροσωπευτικό παράδειγμα του ευρέως φάσματος εφαρμογών που βρίσκουν οι συστάδες υπολογιστών, πέραν του υπολογισμού υψηλών επιδόσεων, αποτελεί η περίπτωση της διαδικτυακής μηχανής αναζήτησης Google, η οποία ανέπτυξε πρωτοποριακές τεχνολογίες λογισμικού στηριζόμενη αποκλειστικά σε μεγάλες ομάδες κοινών συστημάτων χαμηλού κόστους (server farms). Παράλληλα, οι ολοένα και αυξανόμενες απαιτήσεις των σύγχρονων προσωπικών υπολογιστών, σε συνδυασμό με την ολοένα και δυσκολότερη αύξηση της επίδοσης των μικροεπεξεργαστών με την τεχνική της αύξησης της συχνότητας λειτουργίας, οδήγησε τα τελευταία χρόνια τις βιομηχανίες παραγωγής ισχυρότερων μικροεπεξεργαστών στο να υιοθετήσουν νέες τεχνολογίες στην σχεδίαση μικροεπεξεργαστών. Χαρακτηριστικά παραδείγματα τέτοιων τεχνολογιών αποτελούν οι επεξεργαστές ταυτόχρονου πολυνηματισμού (Simultaneous Multi-Threading, SMT), οι επεξεργαστές πολλαπλών πυρήνων (multi-core processors) καθώς και η πρωτοποριακή τεχνολογία των συνεργατικών επεξεργαστικών στοιχείων (Synergestic Processor Element, SPE). Κοινό χαρακτηριστικό αυτών των τεχνολογιών αποτελεί η υιοθέτηση της παράλληλης επεξεργασίας ως μέσο αύξησης της επίδοσης κοινών εμπορικών υπολογιστικών συστημάτων. Ιδιαίτερο ενδιαφέρον μάλιστα παρουσιάζει το γεγονός ότι μικροεπεξεργαστές που ενσωματώνουν αυτές τις τεχνολογίες έχουν ξεπεράσει τα όρια των προσωπικών υπολογιστών και έχουν εισέλθει στην αγορά των κοινών καταναλωτικών συσκευών (π.χ. Cell Processor στην παιχνιδομηχανή Sony PS3), ελαττώνοντας ακόμα περισσότερο το κόστος παραγωγής τους. Η εξέλιξη αυτή αναμένεται να δώσει τη δυνατότητα κατασκευής συστάδων υπολογιστών με πολλαπλά επίπεδα παραλληλισμού, οι οποίες με την χρήση πολυεπεξεργαστικών στοιχείων χαμηλού κόστους θα επιτυγχάνουν ανταγωνιστικότερο λόγο απόδοσης/κόστους. Τέλος, επιπλέον ισχυρό παράγοντα σύγκλισης της παράλληλης επεξεργασίας προς την χρήση συστάδων υπολογιστικών συστημάτων αποτελεί η ευρεία διάδοση της τεχνολογίας του Διαδικτυακού Πλέγματος (Grid). Αν και η έννοια και οι εφαρμογές των διαδικτυακών πλεγμάτων είναι εκ φύσεως πολυσχιδής, ο κύριος άξονας τους είναι η ενιαία και διαφανής πρόσβαση σε γεωγραφικά και διαχειριστικά κατανεμημένους πόρους. Η δυναμική των πλεγμάτων στηρίζεται κυρίως στο γεγονός ότι προτείνει έναν πρωτοποριακό τρόπο συνεργασίας και συνεκμετάλλευσης των διαμοιραζόμενων πόρων. Η τεχνολογία που αναπτύσσεται από την διεθνή κοινότητα εστιάζει κυρίως στην ανάπτυξη της κατάλληλης υποδομής λογισμικού για την διεκπεραίωση των εξής βασικών λειτουργιών του πλέγματος, i) την ασφαλή και διαφανή πρόσβαση, ii) την παροχή πληροφοριών για τα χαρακτηριστικά και την 10

11 δυναμική κατάσταση των διαμοιραζόμενων πόρων, iii) την μεταφορά και πρόσβαση δεδομένων, iv) την εκτέλεση και επόπτευση υπολογιστικών εργασιών. Αντιπροσωπευτικό δείγμα της ευρείας αποδοχής και της ανάπτυξης της ιδέας του Grid αποτελούν οι δημόσιες επενδύσεις που γίνονται με σκοπό την ανάπτυξη της απαραίτητης υλικής υποδομής. Χαρακτηριστικό παράδειγμα στον ελλαδικό χώρο αποτελεί το HellasGrid. 1.2 Αντικείμενο της Διπλωματικής Αντικείμενο της διπλωματικής είναι η χρήση του υπολογιστικού πλέγματος για την επίλυση του προβλήματος χρονοπρογραμματισμού προσωπικού νοσοκομείου, το οποίο ορίστηκε στα πλαίσια του Διεθνούς Διαγωνισμού Χρονοπρογραμματισμού, ο οποίος έλαβε χώρα το Η αποδοτική δημιουργία προγραμμάτων για το προσωπικό είναι ένα σημαντικό πρόβλημα το οποίο καλούνται να αντιμετωπίσουν τα νοσοκομεία σε όλο τον κόσμο. Τα προγράμματα πρέπει να είναι εφικτά και να ικανοποιούν πολυάριθμους περιορισμούς και κανονισμούς. Η δουλειά του ιατρικού προσωπικού είναι ως γνωστόν πολύ δύσκολη και χωρίς περιθώρια λαθών. Συνεπώς, ένα πρόγραμμα που ικανοποιεί όσο το δυνατόν περισσότερες από τις απαιτήσεις του προσωπικού βοηθά την απόδοσή τους. Το Υπολογιστικό Πλέγμα είναι ένα σύστημα το οποίο είναι υπεύθυνο για την ενοποίηση, την εικονικοποίηση και τη διαχείριση υπηρεσιών και πόρων σε ένα κατανεμημένο, ετερογενές περιβάλλον, το οποίο ευνοεί τη δημιουργία ομάδων χρηστών και πόρων. Το Grid παρέχει στους χρήστες του έναν πλούτο από επεξεργαστικούς, αποθηκευτικούς και άλλους πόρους. Είναι εννοιολογικά βασισμένο στο μοντέλο παροχής και κατανάλωσης ωφέλιμων υπηρεσιών. Οι χρήστες ενδιαφέρονται κυρίως για την ευκολία της πρόσβασης και για την ποιότητα των παρεχόμενων υπηρεσιών, ενώ πολύ σπάνια θέλουν να μάθουν λεπτομέρειες για τον τρόπο με τον οποίο τους παρέχονται οι συγκεκριμένες υπηρεσίες μέσω των κατώτερων υποδομών. Οι τεράστιες δυνατότητες που μας προσφέρει το Grid συνδυάζονται με την αποτελεσματικότητα μεταευρετικών μεθόδων και προσφέρουν έναν πολλά υποσχόμενο τρόπο επίλυσης του προβλήματος ο οποίος μπορεί να οδηγήσει στη δημιουργία προγραμμάτων τα οποία εκτός του ότι θα είναι έγκυρα, δηλαδή θα τηρούν τους περιορισμούς που επιβάλλει το νοσοκομείο, θα είναι και σχεδιασμένα με γνώμονα την διευκόλυνση του ιατρικού προσωπικού. Στόχος της παρούσας διπλωματικής είναι η αποδοτική επίλυση του προβλήματος και συνεπώς η παραγωγή 11

12 προγραμμάτων τα οποία θα είναι υψηλής ποιότητας, σύμφωνα με τα κριτήρια που λαμβάνονται υπόψη. 12

13 2. Πλέγμα Υπολογιστών 2.1 Τι είναι το Πλέγμα Υπολογιστών; Το Πλέγμα Υπολογιστών είναι μία πρωτοποριακή μέθοδος για την υλοποίηση εργασιών υπολογισμού ή αποθήκευσης μέσω διαδικτύου. Μπορεί να χαρακτηριστεί σαν μια συλλογή πόρων υλικού και λογισμικού, τα οποία ανήκουν σε έναν οργανισμό (δημόσιο ή ιδιωτικό) και μπορούν να χρησιμοποιηθούν από μία κοινότητα χρηστών, εφόσον πληρούνται συγκεκριμένες απαιτήσεις. Οι υπολογιστικοί πόροι που συνθέτουν την Πλεγματική Υποδομή είναι ετερογενείς και γεωγραφικά διασκορπισμένοι σε όλο τον κόσμο, μπορούν δε να διαμοιραστούν στους χρήστες με ασφαλή και συντονισμένο τρόπο μέσω ενός δικτυακού περιβάλλοντος. To πλέγμα αποτελείται από τις τρεις ακόλουθες μορφές: Το υπολογιστικό πλέγμα, που είναι μια συλλογή πολλών υπολογιστών που χρησιμοποιούνται για να τρέξουν πολύπλοκα πακέτα λογισμικού και για να λύσουν προβλήματα εφαρμογών Το πλέγμα δεδομένων, που είναι μια συλλογή πολλών αποθηκευτικών συστημάτων, ικανή να φιλοξενήσει πολύ μεγάλα σύνολα δεδομένων Το πλέγμα συνεργασίας, που είναι μια συλλογή συστημάτων συνεργασίας, τα οποία χρησιμοποιούνται από διαφορετικές ομάδες που δουλεύουν σε ένα κοινό θέμα. Το πλέγμα δε θα έπρεπε να συγχέεται με άλλους συλλογικούς υπολογιστικούς πόρους, όπως τα clusters ή οι Υπολογιστές Υψηλής Απόδοσης (High-Performance Computers), αφού είναι συνδυασμός ετερογενούς υλικού που μπορεί να βρίσκεται σε διαφορετικά μέρη του κόσμου. Επιπλέον, το Πλέγμα Υπολογιστών προσφέρει περισσότερα από πληροφορίες σε ένα κοινό δίκτυο (όπως το διαδίκτυο), δηλαδή τη δυνατότητα διαμοιρασμού υπολογιστικής ισχύος. Σύμφωνα με το CERN, «το Πλέγμα είναι μια υπηρεσία για διαμοιρασμό υπολογιστικής ισχύος και χώρου αποθήκευσης δεδομένων μέσω διαδικτύου». 13

14 Το πλέγμα είναι μια ολοκληρωμένη υποδομή υλικού και λογισμικού στην οποία διαχωρίζουμε 3 επίπεδα τεχνολογίας: Όσον αφορά το υλικό, το Πλέγμα αποτελείται από ΚΜΕ, σκληρούς δίσκους και συνδέσεις δικτύου, τα οποία προσφέρουν στους χρήστες άφθονη υπολογιστική ισχύ σε συνδυασμό με πολύπλοκους κύκλους επεξεργασίας και πρόσβαση σε μεγάλες πηγές δεδομένων. Όσον αφορά τις εφαρμογές, αποτελείται από τα προγράμματα που εκτελούν οι χρήστες και από αυτά που είναι διαθέσιμα στην υποδομή. Όσον αφορά το λογισμικό, αποτελείται από το «μεσμιτικό» (middleware), το οποίο βρίσκεται ανάμεσα στο χρήστη και το Πλέγμα και δεν είναι άμεσα προσβάσιμο από την πλευρά του χρήστη. Στην ουσία, το «μεσμιτικό» εξετάζει τις πηγές που είναι διαθέσιμες σε ένα Πλέγμα, αποφασίζει που να αποθηκεύσει ή να ανακτήσει τα δεδομένα, που να εκτελέσει τα υποβληθέντα προγράμματα και χειρίζεται θέματα ασφαλείας και εξουσιοδότησης. Εξαιτίας των διαθέσιμων πηγών, της αποτελεσματικής εκτέλεσης και της αυστηρής πολιτικής ασφαλείας, η Πλεγματική Υποδομή έχει κερδίσει παγκόσμια αναγνώριση και στις μέρες μας χρησιμοποιείται για καινοφανή επιστημονική έρευνα, βιομηχανικές εφαρμογές και οικονομικές υπηρεσίες. 2.2 Αρχιτεκτονική του Πλέγματος Υπολογιστών Η αρχιτεκτονική του πλέγματος που παρουσιάζεται, προσδιορίζει τις θεμελιώδεις συνιστώσες του συστήματος, διευκρινίζει το σκοπό και τη λειτουργία των συνιστωσών αυτών και υποδεικνύει πώς αυτές οι συνιστώσες αλληλεπιδρούν μεταξύ τους. Η αρχιτεκτονική αυτή οργανώνει τις συνιστώσες σε επίπεδα, όπως φαίνεται στην εικόνα 2.1. Οι συνιστώσες κάθε επιπέδου έχουν κοινά χαρακτηριστικά αλλά μπορούν να χτίσουν σε δυνατότητες και συμπεριφορές που παρέχονται από τα κατώτερα επίπεδα. 14

15 Εφαρμογές Χρηστών Συλλογικές Υπηρεσίες Μεσάζοντας Πόρων Πρωτόκολλα Συνδεσιμότητας Μεσισμικό Πόροι και Δίκτυο Fabric Σχήμα 2.1 Αρχιτεκτονική πλέγματος υπολογιστών σε επίπεδα Fabric: Διεπαφές για τοπικό έλεγχο Το επίπεδο fabric παρέχει τους πόρους με τους οποίους επιτυγχάνεται μεριζόμενη πρόσβαση μέσω των πρωτοκόλλων, για παράδειγμα υπολογιστικοί πόροι, συστήματα αποθήκευσης, κατάλογοι, πόροι δικτύου και αισθητήρες. Ένας πόρος μπορεί να είναι μια λογική οντότητα, όπως ένα κατανεμημένο σύστημα αρχείων ή ένα σύμπλεγμα υπολογιστών (cluster). Οι συνιστώσες του fabric εκτελούν τις τοπικές λειτουργίες που γίνονται σε συγκεκριμένους πόρους (φυσικούς ή λογικούς) σαν αποτέλεσμα του διαμοιρασμού λειτουργιών σε υψηλότερα επίπεδα. Γι αυτό το λόγο, υπάρχει μια στενή αλληλεξάρτηση μεταξύ των λειτουργιών που εκτελούνται στο επίπεδο του fabric και στις λειτουργίες διαμοιρασμού που υποστηρίζονται. Η εμπειρία δείχνει ότι οι πόροι πρέπει να εκτελούν μηχανισμούς ενδοσκόπησης που επιτρέπουν την ανακάλυψη της δομής, της κατάστασης και των δυνατοτήτων τους, καθώς και μηχανισμούς διαχείρισης πόρων που επιτρέπουν τον έλεγχο της ποιότητας υπηρεσιών. 15

16 2.2.2 Πρωτόκολλα Συνδεσιμότητας Το επίπεδο συνδεσιμότητας ορίζει τα πρωτόκολλα επικοινωνίας και πιστοποίησης που απαιτούνται για συναλλαγές μέσω του πλέγματος. Τα πρωτόκολλα επικοινωνίας καθιστούν δυνατή την ανταλλαγή δεδομένων μεταξύ των πόρων του επιπέδου fabric. Τα πρωτόκολλα πιστοποίησης χρησιμοποιούν υπηρεσίες επικοινωνίας για να παράσχουν κρυπτογραφικά ασφαλείς μηχανισμούς για τον έλεγχο της ταυτότητας χρηστών και πόρων Μεσισμικό Το Μεσισμικό (Middleware) είναι το λογισμικό που οργανώνει και ενοποιεί τους διαφορετικούς υπολογιστικούς πόρους που ανήκουν σε ένα πλέγμα υπολογιστών. Χαρακτηριστικά παραδείγματα είναι το glite, lcg, Globus, Condor. Οι αρμοδιότητες του συνοψίζονται στις ακόλουθες: Βελτιστοποιεί τη χρήση των γεωγραφικά κατανεμημένων πόρων Εξασφαλίζει αποτελεσματική πρόσβαση σε επιστημονικά δεδομένα Είναι υπεύθυνο για την ταυτοποίηση των χρηστών όταν υποβάλλουν μία εργασία σε ένα site Βρίσκει το "κατάλληλο μέρος" για να εκτελεστεί μία εργασία Υπεύθυνο για εκτέλεση των εργασιών Καταγράφει την πορεία εκτέλεσης μίας εργασίας Επανακάμπτει από προβλήματα Ενημερώνει το χρήστη όταν μία εργασία εκτελεστεί και επιστρέφει το αποτέλεσμα. Στην παρούσα διπλωματική επιλέξαμε να κάνουμε χρήση του ευέλικτου λογισμικού glite Συλλογικές Υπηρεσίες Το συλλογικό επίπεδο περιλαμβάνει πρωτόκολλα και υπηρεσίες που δεν σχετίζονται με κάποιον συγκεκριμένο πόρο αλλά συλλαμβάνουν αλληλεπιδράσεις από ομάδες πόρων. Οι συνιστώσες του επιπέδου αυτού μπορούν να εκτελέσουν μεγάλη ποικιλία συμπεριφορών διαμοιρασμού χωρίς να θέτουν νέες απαιτήσεις στους πόρους που μοιράζονται. 16

17 2.2.5 Μεσάζοντας Πόρων Ο Μεσάζοντας Πόρων ( "Resource Broker",RB) λαμβάνει τις εντολές χρηστών για την υποβολή μίας εργασίας και εξετάζει τους καταλόγους πληροφοριών για να βρει τους κατάλληλους υπολογιστικούς πόρους για την εκτέλεση της εργασίας. Ο RB εντοπίζει τα αρχεία εισόδου της εφαρμογής του χρήστη με μια υπηρεσία που λέγεται Data Location Interface ( DLI), που παρέχει μια γενική διεπαφή με το αρχείο καταλόγου. Επίσης ο μεσάζοντας πόρων είναι αυτός που φιλοξενεί το Workload Management System ( WMS) του ενδιάμεσου λογισμικού. Σχήμα 2.2 Μεσάζοντας Πόρων Εφαρμογές Χρηστών Το τελευταίο επίπεδο της αρχιτεκτονικής του πλέγματος περιλαμβάνει τις εφαρμογές χρήστη που λειτουργούν σε περιβάλλον εικονικού οργανισμού. Οι εφαρμογές δημιουργούνται σύμφωνα με τις υπηρεσίες που ορίζονται σε κάθε επίπεδο. Κάθε επίπεδο έχει καλώς ορισμένα πρωτόκολλα και APIs που παρέχουν πρόσβαση σε κάποια χρήσιμη υπηρεσία: διαχείριση πόρων, πρόσβαση σε δεδομένα, ανακάλυψη πόρων κοκ Διεπαφή Χρήστη Η διεπαφή χρήστη( "User Interface") επιτρέπει στους χρήστες να έχουν πρόσβαση στις λειτουργίες του πλέγματος. Οι χρήστες αποκτούν σε αυτήν ένα προσωπικό λογαριασμό και εγκαθιστούν το προσωπικό τους πιστοποιητικό. Είναι 17

18 στην ουσία η πύλη για τις υπηρεσίες πλέγματος μιας και προσφέρει τη δυνατότητα πρόσβασης στις λειτουργικότητες που προσφέρονται από τα συστήματα διαχείρισης Πληροφορίας, Φορτίου και Δεδομένων. Λειτουργίες που υλοποιεί είναι : Εύρεση όλων των υπολογιστικών πόρων που είναι συμβατοί με τις απαιτήσεις μιας υποβαλλόμενης εργασίας. Υποβολή ( submit ) μίας εργασίας Παρακολούθηση της πορείας εκτέλεσης της εργασίας Ακύρωση ενός ή περισσοτέρων εργασιών Ανάκτηση των πληροφοριών υποβολής μίας εργασίας Λήψη της εξόδου ενός ή περισσοτέρων εργασιών που έχουν ολοκληρωθεί Ανάκτηση των δεδομένων εξόδων από τις εργασίες που εκτελέστηκαν Επίσης προσφέρονται APIs που επιτρέπουν την ανάπτυξη εφαρμογών που στοχεύουν στο για εφαρμογές που εκμεταλλεύονται το Πλέγμα γνωστές και ως gridenabled applications Υπολογιστικό Στοιχείο Το υπολογιστικό στοιχείο ( " Computing Element") είναι στην ουσία η διεπαφή με το πλέγμα. Διαχειρίζεται μία φάρμα ομογενών υπολογιστικών κόμβων τα οποία ονομάζονται Worker Nodes. Εκτελεί τις βασικές συναρτήσεις των ουρών αναμονής και χρησιμοποιείται για την υποβολή των εργασιών για εκτέλεση στα Worker nodes. Συμπεριλαμβάνει μια πύλη Πλέγματος("Grid Gate"),που συμπεριφέρεται σαν μια γενική διεπαφή με τη συστάδα επεξεργαστικών μονάδων και ένα τοπικό σύστημα ελέγχου πόρων("local Resource Management System",LRMS). Κυρίως, παρακολουθεί την κατάσταση εκτέλεσης μίας εργασίας στα τοπικά του Worker Nodes.Στα Worker Nodes έχουμε τις ίδιες εντολές και βιβλιοθήκες που είναι εγκατεστημένες στη Διεπαφή Χρήστη. Σχήμα 2.3 Υπολογιστικό Στοιχείο 18

19 2.2.9 Στοιχείο Αποθήκευσης Το στοιχεία αποθήκευσης ( «Storage Elements») προσφέρουν πρόσβαση και υπηρεσίες σε αποθηκευτικούς χώρους. Ένα στοιχείο αποθήκευσης μπορεί να έχει υπό τον έλεγχο του εξυπηρετητές δίσκων, μεγάλους δίσκους αποθήκευσης και Μαζικά Συστήματα Αποθήκευσης («Mass Storage Systems»,MMS). Τα στοιχεία αποθήκευσης μπορούν να υποστηρίξουν διαφορετικά πρωτόκολλα πρόσβασης και διαχείρισης δεδομένων τους είναι το GSIFTP που είναι ένα πρωτόκολλο για ολικές μεταφορές αρχείων ή το RFIO που επιτρέπει την πρόσβαση τοπικών και απομακρυσμένων αρχείων. Τα περισσότερα στοιχεία αποθήκευσης ελέγχονται από το Storage Resource Manager που είναι στην ουσία ένα μεσμιτικό λογισμικό που προσφέρει τη δυνατότητα για διαφανή μεταφορά των αρχείων και για τη διατήρηση των κενών θέσεων στη μνήμη. Υπάρχουν αρκετές διαφορετικές υλοποιήσεις του SRM και οι δυνατότητες τους ποικίλου. Το Disk Pool Manager χρησιμοποιείται για σχετικά μικρά συστήματα αποθήκευσης ενώ το CASTOR για μακροσκελή MSS. Παράλληλα έχουμε τα dcache που εξυπηρετούν τόσο MSS συστήματα αποθήκευσης όσο και μεγάλους δίσκους αποθήκευση και τα Classic SE που δεν διαθέτουν ενδιάμεσο λογισμικό διεπαφής και τείνουν να αντικατασταθούν από τους υπόλοιπους. Σχήμα 2.4 Στοιχείο Αποθήκευσης Σύστημα Πληροφοριών Ένα από πιο σημαντικά δομικά στοιχεία στο πλέγμα είναι το σύστημα πληροφοριών ("Information System",IS) όπου υπάρχουν πληροφορίες σχετικά με 19

20 τους υπολογιστικούς πόρους και την κατάσταση στην οποία βρίσκονται. Οι πληροφορίες αυτές γνωστοποιούνται από υπηρεσίες που εκτελούνται στους ίδιους τους κόμβους και αποθηκεύονται σε βάσεις δεδομένων. Παράλληλα χρησιμοποιούνται για την αντιστοίχηση των εργασιών με τους κόμβους που ικανοποιούν τις απαιτήσεις τους και για τη δρομολόγηση τους σε αυτούς καθώς επίσης και για την επιλογή αποθηκευτικών πόρων. Τα περισσότερα στοιχεία που προβάλλονται στο IS είναι βασισμένα στο GLUE σχήμα που καθορίζει ένα συγκεκριμένο μοντέλο δεδομένων που χρησιμοποιείται από το Πλέγμα για έλεγχο και εύρεση πόρων. Το GLUE σχήμα ενημέρωσης είναι στην ουσία μια τυποποιημένη περιγραφή ενός Grid υπολογιστικού συστήματος που επιτρέπει στους πόρους και στις υπηρεσίες που υπάρχουν σε αυτό να εμφανίζονται στους χρήστες με ενιαίο διαφανή τρόπο. Οι στόχοι του είναι προσφέρει τη δυνατότητα για εύρεση τον πόρων που έχει ένα υπολογιστικό σύστημα, τις δυνατότητες και ιδιαιτερότητες του καθώς και ενημέρωση για την κατάσταση του. Συνιστά ένα πολύ δυνατό εφόδιο για το χρήστη του Πλέγματος μιας και του προσφέρει κάθε απαραίτητη πληροφορία σχετικά με τις υπολογιστικές δυνατότητες κάθε CE. Σχήμα 2.5 Δέντρο πληροφοριών καταλόγου 20

21 Διαχείριση Δεδομένων Η πρωταρχική μονάδα για τη διαχείριση δεδομένων στο Πλέγμα είναι το αρχείο. Σε ένα περιβάλλον Πλέγματος τα αρχεία έχουν αντίγραφα ("replicas") σε διαφορετικά sites.προφανώς λόγο συνοχής μνήμης τα αρχεία που του Πλέγματος δεν μπορούν να μεταβληθούν αφού δημιουργηθούν παρά μόνο να διαβαστούν ή να διαγραφούν. Ιδεατά οι χρήστες δεν χρειάζεται να γνωρίζουν σχετικά με το που βρίσκεται ένα αρχείο μιας και χρησιμοποιούν λογικά ονόματα για την πρόσβαση σε αυτά και το σύστημα διαχείρισης δεδομένων αναλαμβάνει να τα εντοπίσει και να δώσει πρόσβαση. Τα αρχεία στο Πλέγμα αναφέρονται με διαφορετικά ονόματα: Grid Unique Identifier ( GUID), Logical File Name ( LFN), Storage URL (SURL) και Transport URL (TURL). Ενώ τα αρχεία GUID και LFN προσδιορίζουν την ταυτότητα ενός αρχείου ανεξαρτήτως με το που βρίσκεται, τα SURL και TURL περιέχουν πληροφορίες σχετικά με του που βρίσκεται το φυσικό του αντίγραφο και πως μπορούμε να το προσπελάσουμε. Συνήθως ο χρήστης για να εντοπίσει ένα αρχείο στο Πλέγμα χρησιμοποιεί ένα LFN. Τα LFN είναι πιο προσιτά στο χρήστη μιας και έχουν όνομα ένα string που ίδιος δημιούργησε. Η μορφή τους είναι: lfn :<any string>. Τα SURL προσφέρουν τις απαραίτητες πληροφορίες για να μπορούμε να προσεγγίσουμε τη φυσική θέση του αρχείου και συγκεκριμένα έχουν το ακόλουθο format: sfn:<se hostname>/<path>. Την αντιστοίχηση μεταξύ όλων αυτών των τύπων αρχείων διατηρείται από το Αρχείο Καταλόγου ( File Catalogue). Ο χρήστης έχει τη δυνατότητα να περιηγηθεί στο κατάλογο αυτό με τη βοήθεια του ενδιάμεσου λογισμικού. Σχετικά με το λογισμικό που χρησιμοποιήσαμε υπάρχει η δυνατότητα αυτή με τις εντολές που φαίνονται στο Παράρτημα. Το LFC αναπτύχθηκε και σχεδιάστηκε για να αντιμετωπιστούν σοβαρά προβλήματα απόδοσης και ασφάλειας που υπήρχαν στις προηγούμενες εκδόσεις καταλόγου. Προσφέρει επίσης και άλλες λειτουργικότητες όπως μεταγωγές αρχείων και bulk queries. Αποτελείται από ένα μοναδικό κατάλογο όπου το κύριο κλειδί αναζήτησης είναι το LFN. Επιπλέον LFN μπορούν να προστεθούν ως symlinks στο κύριο LFN.Tο σύστημα μετά-δεδομένων (metadata) υποστηρίζεται πλήρως. 21

22 2.3 Πρόσβαση στο Πλέγμα Υπολογιστών Από τη σύντομη περιγραφή του Πλέγματος που προαναφέρθηκε παρατηρούμε ότι συνιστά ένα πολυδιάστατο και ιδιαίτερα χρήσιμο εργαλείο για την επιστημονική κοινότητα αλλά και για το μέσο μηχανικό. Για να μπορέσει κάποια οντότητα να εκμεταλλευτεί το Πλέγμα θα πρέπει να αποκτήσει δικαίωμα πρόσβασης. Δικαίωμα πρόσβασης έχει γενικά όλη η ελληνική επιστημονική κοινότητα. Το είδος πρόσβασης που προσφέρεται σε κάθε χρήστη είναι ανάλογο της κλίμακας και της ιδιαιτερότητας της κατηγορίας χρηστών που ανήκει. Συγκεκριμένα έχουμε τρεις κατηγορίες χρηστών: Νέοι χρήστες που θέλουν να πειραματιστούν με την τεχνολογία και να αξιολογήσουν τα οφέλη της. Χρήστες Παραγωγής που έχουν αποκτήσει βασική εμπειρία με την τεχνολογία και θέλουν να την αξιοποιήσουν. Οι χρήστες αυτοί διαθέτουν εφαρμογή που ενδεχομένως έχει μεταφερθεί στο υπολογιστικό Πλέγμα ( Gridification) Έμπειροι Χρήστες που ανήκουν σε κάποιο ιδιαίτερο πειραματικό οργανισμό. Για να έχει ένας χρήστης πρόσβαση στην Πλεγματική Υποδομή πρέπει να ακολουθήσει τέσσερα βήματα: 1. Να αποκτήσει ένα προσωπικό ψηφιακό πιστοποιητικό από την Αρχή Πιστοποίησης της χώρας του. Το ψηφιακό πιστοποιητικό είναι η ταυτότητα του υπολογιστή μας στο Διαδίκτυο. Οι χρήστες του Πλέγματος χρησιμοποιούν το πιστοποιητικό για να επικυρώσουν την ταυτότητα τους στην Πλεγματική Υποδομή. Τα ψηφιακά πιστοποιητικά υπογράφονται και παρέχονται από τις Αρχές Πιστοποίησης. Tο λογισμικό του EGEE χρησιμοποιεί κρυπτογραφία δημοσίου κλειδιού ( Public key Cryptography-PKI) για τις διαδικασίες ασφάλειας, ταυτοποίησης και απόδοσης δικαιωμάτων. Τα ψηφιακά πιστοποιητικά που χρησιμοποιούνται ακολουθούν το πρότυπο Χ.509v3. Στην Ελλάδα υπεύθυνος για την έκδοση πιστοποιητικών είναι η Αρχή Πιστοποίησης Hellas Grid. 2. Να αποκτήσει λογαριασμό σε μια Διεπαφή Χρήστη (User Interface UI) Η Διεπαφή Χρήστη είναι μια μηχανή εξοπλισμένη με όλο το απαραίτητο λογισμικό, τα APIs και τα εργαλεία που επιτρέπουν στο χρήστη να αναπτύσσει και να εκτελεί εφαρμογές στο Πλέγμα. Μέσω της Διεπαφής Χρήστη, μπορούμε να υποβάλουμε εργασίες στο Πλέγμα και να παίρνουμε τα αποτελέσματα Για να αποκτήσει ο χρήστης πρόσβαση στην Διεπαφή Χρήστη και, μέσω αυτής, στην Πλεγματική Υποδομή πρέπει να χρησιμοποιήσει ssh (Secure Shell) clients. Το ssh είναι το πρωτόκολλο που χρησιμοποιείται για σύνδεση με εξυπηρετητές που λειτουργούν σε Unix. 22

23 3. Να εγγραφεί σε έναν τουλάχιστον Εικονικό Οργανισμό (Virtual Organization VO) Οι Εικονικοί Οργανισμοί είναι ομάδες χρηστών του Πλέγματος. Η οργάνωση των χρηστών σε Εικονικούς Οργανισμούς εξαρτάται από τα ερευνητικά τους ενδιαφέροντα ώστε να δουλεύουν συλλογικά με άλλα μέλη της ομάδας και να μοιράζονται πόρους. Το EGEE-SEE έχει εγκαταστήσει τον δικό του Εικονικό Οργανισμό, για να διευκολύνει τους χρήστες της νοτιοανατολικής Ευρώπης, που ονομάζεται SEE-VO. 4. Να εισάγει το ψηφιακό του πιστοποιητικό στη Διεπαφή Χρήστη Μετά από αυτή τη διαδικασία, το ψηφιακό πιστοποιητικό είναι εγκατεστημένο στο πρόγραμμα περιήγησης ιστού. Για να χρησιμοποιήσει την πλεγματική υποδομή, ο χρήστης πρέπει να εγκαταστήσει το πιστοποιητικό του στη Διεπαφή Χρήστη στην οποία έχει λογαριασμό. Αρχικά, πρέπει να εξάγει το ψηφιακό του πιστοποιητικό από το πρόγραμμα περιήγησης στο οποίο είναι εγκατεστημένο. Το πιστοποιητικό αποθηκεύεται με επέκταση.p12. Στη συνέχεια πρέπει να αντιγράψει το πιστοποιητικό από τη μηχανή του στον home directory στη Διεπαφή Χρήστη και να δημιουργήσει το ψηφιακό πιστοποιητικό και το ιδιωτικό κλειδί με επέκταση.pem. Αυτό γίνεται χρησιμοποιώντας τις εντολές: openssl pkcs12 -nocerts \ -in mycertificate.p12 \ -out ~user/.globus/userkey.pem openssl pkcs12 -clcerts -nokeys \ -in mycertificate.p12 \ -out ~user/.globus/usercert.pem Τέλος, πρέπει να δώσει τα σωστά δικαιώματα ανάγνωσης στο πιστοποιητικό και στο ιδιωτικό κλειδί. Αυτό γίνεται με τις εντολές: chmod 444 ~/.globus/usercert.pem chmod 400 ~/.globus/userkey.pem Μετά την εκτέλεση των παραπάνω εντολών, το ιδιωτικό κλειδί έχει δικαιώματα ανάγνωσης μόνο για το χρήστη ενώ το πιστοποιητικό για όλους. ls -l $HOME/.globus total 13 -r--r--r-- 1 doe xy 4541 Aug usercert.pem -r doe xy 963 Aug userkey.pem 23

24 Δεδομένου ότι έχουμε επιτυχώς εγκαταστήσει το πιστοποιητικό στο User Interface μπορούμε να το ελέγξουμε με την εντολή grid-cert-info μέσω ενός ssh client.o χρήστης είναι σε θέση τώρα να δημιουργήσει ένα proxy με την εντολή gridproxy-init.στην έξοδο η εντολή θα μας δώσει για πόσο χρόνο θα είναι ενεργό το proxy που έχουμε δημιουργήσει. Σε περίπτωση που αυτός ο χρόνος λήξει δεν θα μπορούμε να εισάγουμε εφαρμογές στο Πλέγμα και θα πρέπει να ανανεώσουμε το proxy. 2.4 Εικονικός Οργανισμός Όπως έχει προαναφερθεί, για να έχει ένας χρήστης δυνατότητα πρόσβασης στο Πλέγμα θα πρέπει να είναι εγγεγραμμένος σε έναν Εικονικό Οργανισμό ( Virtual Organization VO). Ένας Εικονικός Οργανισμός είναι τυπικά μια οντότητα που αντιπροσωπεύει ένα συγκεκριμένο φυσικό οργανισμό ή μια ομάδα ανθρώπων. Η εγγραφή σε ένα VO εγγυάται συγκεκριμένα προνόμια στο χρήστη όπως κοινός διαμερισμός αρχείων και πόρων του οργανισμού. Υπάρχει μια πλειάδα οργανισμών όπου ο καθένας εξυπηρετεί διαφορετική κοινωνία χρηστών όπως λόγου χάρη ο Atlas VO που εξειδικεύεται για πειράματα στην επιστήμη της Φυσικής και ο Biomed VO που εξειδικεύεται σε εφαρμογές βίο-ιατρικής. Στα πλαίσια της παρούσας διπλωματικής γίναμε μέλη στο See VO που είναι στην ουσία είναι ο γενικός Εικονικός Οργανισμός του EGEE που είναι πρόσφορος για πειραματισμό και εξασφαλίζει καλή απόδοση στα CE που διατηρεί υπό τον έλεγχο του. Για να μπορέσουμε να δηλώσουμε κατά τη δημιουργία του proxy μας τον Εικονικό Οργανισμό στον οποίο ανήκουμε τροποποιούμε την εντολή που είχαμε προαναφέρει και συγκεκριμένα έχουμε την εντολή: voms-proxy-init -voms see.στην ουσία δηλαδή δημιουργούμε ένα voms proxy δηλαδή ένα proxy το οποίο έχει σαν επέκταση τον Εικονικό Οργανισμό στον οποίο ανήκει ο χρήστης. Με αυτόν τον τρόπο αποκτάμε πρόσβαση στις δυνατότητες και στους πόρους που μας προσφέρει ο VO και επίσης δεν χρειάζεται να επαναλαμβάνουμε σε κάθε εισαγωγή εφαρμογής στο Πλέγμα τον Εικονικό Οργανισμό στον οποίο ανήκουμε. Με χρήση της εντολής voms-proxy-info μπορούμε να δούμε τις λεπτομέρειες του proxy που δημιουργήσαμε. 24

25 2.5 Δομή Εφαρμογής στο Πλέγμα Από τη στιγμή που έχουμε δημιουργήσει το voms proxy μπορούμε να επικεντρωθούμε στη δομή των εφαρμογών που θα εισάγουμε στο Πλέγμα. Πρακτικά, ο χρήστης ζητάει την εκτέλεση μιας εφαρμογής σε ένα μακρινό σύστημα, η οποία αναλύει κάποια δεδομένα εισόδου ( που υπάρχουν στο Πλέγμα ) και παράγει κάποια δεδομένα εξόδου, τα οποία αποθηκεύονται επίσης στο Πλέγμα, πιθανώς σε κάποιο Storage Element ή στο UI. Στην ουσία οι πόροι που διατίθενται στο Πλέγμα ως χρήσιμα εργαλεία για τους υποψήφιους χρήστες είναι αυτοί που εμφανίζονται στο σχήμα: Σχήμα 2.5 : Οι πόροι του Πλέγματος Το Πλέγμα (glite- Grid) προσπαθεί να συντονίσει πόρους οι οποίοι ξεφεύγουν κατά πολύ από την τάξη μεγέθους ενός τοπικού ή campus-wide cluster. Οι αυξημένες δυνατότητες παρέχονται μεν, αλλά προφανώς με κάπως αυξημένη πολυπλοκότητα στο ενδιάμεσο λογισμικό. Απαιτείται, για να γίνεται η διαχείριση των εργασιών, διεργασίες να εκτελούνται διά μέσω ειδικών εντολών του ενδιάμεσου λογισμικού. Στην παρούσα διπλωματική εργασία χρησιμοποιήσαμε για ενδιάμεσο λογισμικό το glite. Το εν λόγω middleware είναι ένα πολύ χρήσιμο μέσο και 25

26 λειτουργεί σε ικανοποιητικό επίπεδο για την υποβολή και τον έλεγχο εργασιών στο Πλέγμα. Στο σχήμα 2.6 παραθέτουμε τις βασικές εντολές που μας προσφέρει το συγκεκριμένο λογισμικό. Submit a job Function See job status See job logging information Retrieve job output Cancel a job List available resources Delegate proxy glite WMS glite-wms-job-submit [-d delegid] [-a] [-o joblist] jdlfile glite-wms-job-status [-v verbosity] [-i joblist] jobids glite-wms-job-logging-info [-v verbosity] [-i joblist] jobids glite-wms-job-output [-dir outdir] [-i joblist] jobids glite-wms-job-cancel [-i joblist] jobids glite-wms-job-list-match [-d delegid] [-a] jdlfile glite-wms-job-delegate-proxy d delegid Σχήμα 2.6 Βασικές εντολές glite 2.6 Εισαγωγή Εφαρμογής στο Πλέγμα Όπως έχουμε προαναφέρει για να εισάγουμε μια εργασία στο Πλέγμα στην ουσία κάνουμε χρήση του ενδιάμεσου λογισμικού. Στη συγκεκριμένη περίπτωση έχουμε το λογισμικό glite. Το δομικό στοιχείο του glite που επιτρέπει στους χρήστες να εισάγουν εφαρμογές και να πραγματοποιούν όλα τα βήματα που απαιτούνται για να τις εκτελέσουν κρύβοντας την πολυπλοκότητα του Πλέγματος από το χρήστη είναι το Workload Management System (WMS). Είναι βέβαια ευθύνη του χρήστη να περιγράφει με τον κατάλληλο τρόπο την εργασία που θέλει να υποβάλλει και τις απαιτήσεις της καθώς και να λαμβάνει τα αποτελέσματα των εργασιών που έχουν ολοκληρωθεί. Θα περιγράψουμε εν συντομία τις διαδικασίες που πρέπει να ακολουθήσει ο χρήστης για να εισάγει και να ολοκληρωθεί η εφαρμογή που επιθυμεί στο πλέγμα. Στο σχήμα 2.7 φαίνεται η διαδικασία που ακολουθείται όταν μια εργασία υποβάλλεται στο πλέγμα. 26

27 Σχήμα 2.7 : Ροή Εργασίας στο Πλέγμα Γλώσσα Περιγραφής Εργασιών Η Γλώσσα Περιγραφής Εργασιών ( Job Description Language ) είναι στην ουσία αυτή που περιγράφει στο ενδιάμεσο λογισμικό μας το είδος και τις ιδιαιτερότητες που έχει η εφαρμογή που θέλουμε να εκτελέσουμε. Στην ουσία δίνουμε τα κατάλληλα εφόδια και τα χαρακτηριστικά που απαιτούνται στο Workload Management System για να γίνει η σωστή δρομολόγηση της εφαρμογής μας. Είναι μια υψηλού επιπέδου γλώσσα που βασίζεται στη γλώσσα Classified Advertisement ( ClassAd ). Στην ουσία ο χρήστης οφείλει να δημιουργήσει ένα αρχείο περιγραφής εφαρμογής( job description file ) με κατάληξη.jdl. Ένα τέτοιο αρχείο είναι ένα αρχείο που αποτελείται από γραμμές που έχουν το format : attribute = expression; Ένα παράδειγμα ενός απλού jdl αρχείου είναι το ακόλουθο: 27

28 Executable = "/bin/hostname"; η εντολή που θα εκτελεστεί StdOutput = "std.out"; η έξοδος της εκτέλεσης του αρχείου StdError = "std.err"; αρχείο εξόδου μηνυμάτων λάθους Το χαρακτηριστικό Executable προσδιορίζει την εργασία στη συγκεκριμένη περίπτωση εντολή που θα εκτελεστεί. Στην περίπτωση που η εντολή-εργασία είναι ήδη στο Worker Node, θα πρέπει να δοθεί το πλήρες μονοπάτι για να εκτελεστεί. Στην περίπτωση που πρέπει το εκτελέσιμο αρχείο να αντιγραφεί από το User Interface στο Worker Node,αρκεί να δώσουμε μόνο το όνομα του αρχείου και να προσδιορίσουμε το μονοπάτι από το οποίο θα αντιγραφεί με ένα επιπλέον χαρακτηριστικό στο jdl αρχείο μας που είναι το Input Sandbox.Οπότε στην περίπτωση αυτή το jdl αρχείο μας παίρνει τη μορφή: Executable = "test.sh"; InputSandbox = {"/home/doe/test.sh"}; το μονοπάτι που βρίσκεται το executable StdOutput = "std.out"; StdError = "std.err"; Μπορούμε επίσης να προσθέσουμε και τη δυνατότητα να έχουμε arguments για το εκτελέσιμο μας με την εισαγωγή στο jdl αρχείο του χαρακτηριστικού arguments. Τα χαρακτηριστικά StdOutput, StdError ορίζουν τα ονόματα με τα αρχεία που περιέχουν τα standard output και standard error του εκτελέσιμου αρχείου αντίστοιχα, μόλις η εργασία μας ολοκληρωθεί. Όπως προαναφέραμε στην περίπτωση που χρειάζεται να προσδιοριστούν αρχεία που πρέπει να αντιγραφούν από το User Interface στο Worker Node τότε θα πρέπει να τα συμπεριλάβουμε και αυτά στο χαρακτηριστικό InputSandBox. Αξίζει εδώ να σημειώσουμε ότι μόνο τα αρχεία τα οποία έχουν συμπεριληφθεί στο χαρακτηριστικό Executable θα εκτελεστούν. Τα αρχεία που βρίσκονται στο InputSandBox ακόμα και αν έχουν τη σημαία εκτέλεσης στην περίπτωση που αντιγραφούν στο Worker Node την χάνουν. Τέλος τα αρχεία που θέλουμε να διατηρήσουμε και να μεταφέρουμε στο User Interface μετά το πέρας της διεργασίας που έχουμε εισάγει στο Πλέγμα, τα τοποθετούμε στο χαρακτηριστικό OutputSandBox. Συγκεντρωτικά έχουμε το ακόλουθο σύνηθες jdl αρχείο: Executable = "test.sh"; Arguments = "filea fileb"; StdOutput = "std.out"; StdError = "std.err"; InputSandbox = {"test.sh", "filea", "fileb"}; OutputSandbox = {"std.out", "std.err"}; τα αρχεία που θέλουμε να ανακτήσουμε Στο αρχείο jdl όμως έχουμε τη δυνατότητα να προσθέσουμε και άλλα χαρακτηριστικά τα οποία μας προσφέρουν ευελιξία και προσδιορίζουν πλήρως τις 28

29 απαιτήσεις της εφαρμογής. Συγκεκριμένα έχουμε τη δυνατότητα να εκφράζουμε τις προϋποθέσεις που πρέπει να πληροί το Computing Element στο οποίο θα δρομολογηθεί η εφαρμογή μας με το χαρακτηριστικό Requirements.Επιπρόσθετα έχουμε τη δυνατότητα να επαναλαμβάνουμε αυτόματα εργασίες στο WMS οι οποίες για διάφορους λόγους απορρίφτηκαν ή δεν ολοκληρώθηκαν στο πλέγμα με το χαρακτηριστικό RetryCount καθώς επίσης και να προσδιορίζουμε εφαρμογές που δεν ανήκουν στη σειριακή εκτέλεση αλγορίθμων αλλά είναι παράλληλες εργασίες τύπου MPI, τύπου DAG(Direct Acyclic Graph) με το χαρακτηριστικό Type.Στην ουσία δηλαδή η γλώσσα JDL μας δίνει αρκετή ευχέρεια σχετικά με το πλήρη προσδιορισμό της εφαρμογής που θέλουμε να εισάγουμε στο Πλέγμα. Παραθέτουμε στο σχετικό σημείο στο παράρτημα όλα τα δυνατά χαρακτηριστικά που μπορούμε να προσδιορίσουμε μέσα σε ένα jdl αρχείο. 2.7 Εκτέλεση Εφαρμογής στο Πλέγμα Από τη στιγμή που έχουμε συγγράψει το jdl αρχείο είμαστε σε θέση να εισάγουμε την εφαρμογή μας στο Πλέγμα με τη χρήση του ενδιάμεσου λογισμικού glite. Στην ουσία για να κάνουμε εισαγωγή της εφαρμογής μας αρκεί η εντολή :glite- wms-job-submit -a jdlfile όπου jdfile τοποθετούμε το μονοπάτι που έχουμε αποθηκεύσει το αρχείο jdl. Με αυτόν τον τρόπο εισάγουμε στο Πλέγμα την εργασία δια μέσω του WMS του glite. Η εντολή αυτή μας επιστρέφει ταυτότητα με την οποία μπορούμε να απευθυνθούμε μέσω του WMS στην εφαρμογή μας. Η ταυτότητα αυτή αναφέρεται ως jobid. Από τη στιγμή που έχουμε εισάγει την εργασία μας μπορούμε να δούμε την κατάσταση στην οποία βρίσκεται. Συγκεκριμένα αυτό επιτυγχάνεται με την εντολή glite-wms-job-status <jobid>.h εντολή αυτή μας δείχνει σε ποια από τις δυνατές καταστάσεις βρίσκεται η εργασία μας. Συγκεκριμένα οι καταστάσεις περιγράφονται ως εξής : Submitted: Η εργασία καταχωρείται στο LB (Logging and Bookkeeping) δηλαδή στο σύστημα παρακολούθησης του WMS. Wait: Γίνεται προσπάθεια να εντοπιστούν οι απαραίτητες πηγές για την εργασία μας. Scheduled: Η εργασία είναι προγραμματισμένη στην ουρά ελέγχου εκτέλεσης του CE. Running: Η εργασία εκτελείται στο Worker Node του επιλεγμένου CE. Done: Η εργασία ολοκληρώθηκε χωρίς σφάλματα. Cleared: Η έξοδος της εργασίας ανακτήθηκε. 29

30 Abort: Η εργασία απορρίφθηκε από το λογισμικό. Η κατάσταση αυτή μπορεί να προκύψει από οποιαδήποτε κατάσταση από αυτές που περιγράφηκαν. Χαρακτηριστικό είναι και το σχήμα που ακολουθεί για την καλύτερη κατανόηση του κύκλου ζωής της εφαρμογής μας και για τις δυνατές καταστάσεις που μπορούν να προκύψουν. Σχήμα 2.8 Διάγραμμα Καταστάσεων Εργασίας Στη γενική περίπτωση, όταν η εφαρμογή μας έχει ολοκληρωθεί, δηλαδή η κατάσταση της είναι Done τότε ο χρήστης μπορεί να παραλάβει την έξοδο κάνοντας χρήση της απλής εντολής glite-wms-job-output <jobid>. Η εφαρμογή μας θα πάει στην κατάσταση Cleared και θα έχουμε ολοκληρώσει με επιτυχία την εργασία μας κάνοντας χρήση του Πλέγματος. Συγκεντρωτικά έχουμε το ακόλουθο σχήμα : 30

31 Σχήμα 2.9 Γενική Επισκόπηση Εισαγωγής Εφαρμογής 31

32 3. Υπηρεσίες Ιστού (Web Services) Όταν όλες οι κύριες πλατφόρμες κατάφεραν να έχουν πρόσβαση στο διαδίκτυο χρησιμοποιώντας προγράμματα περιήγησης, διαφορετικές πλατφόρμες μπορούσαν να αλληλεπιδράσουν. Για να μπορέσουν να συνεργαστούν αυτές οι πλατφόρμες, αναπτύχθηκαν οι εφαρμογές ιστού (Web-applications). Με τη χρήση των υπηρεσιών ιστού (Web services), οι εφαρμογές μπορούν να δημοσιεύουν τις λειτουργίες τους ή να στείλουν μηνύματα στον υπόλοιπο κόσμο. Οι υπηρεσίες ιστού παρέχουν λύσεις διαλειτουργικότητας κάνοντας την ενσωμάτωση των εφαρμογών και τις συναλλαγές των επιχειρήσεων ευκολότερες. Σήμερα είναι εμφανές ότι οι μονολιθικές, ιδιόκτητες λύσεις είναι εμπόδιο στη διαλειτουργικότητα και γι' αυτό η βιομηχανία έχει αγκαλιάσει ανοιχτά πρότυπα. Ένα από αυτά τα πρότυπα, η XML (Extensible Markup Language), έχει ευρεία υποστήριξη. Αποτελεί το θεμέλιο των υπηρεσιών ιστού, παρέχοντας το απαραίτητο πλαίσιο για διαλειτουργικότητα. Η ευρεία υποστήριξη και υιοθέτηση των υπηρεσιών ιστού - σε συνδυασμό με τα οικονομικά πλεονεκτήματα της τεχνολογίας υπηρεσιών ιστού- καθιστούν τις τεχνολογίες που εμπλέκονται πολύ σημαντικές. 3.1 Τι είναι οι υπηρεσίες ιστού Η υπηρεσία ιστού είναι μία μέθοδος επικοινωνίας μεταξύ δύο ηλεκτρονικών συσκευών μέσω ενός δικτύου. Το W3C (World Wide Web Consortium) ορίζει την υπηρεσία ιστού σαν ένα σύστημα λογισμικού σχεδιασμένο ώστε να υποστηρίζει διαλειτουργική αλληλεπίδραση μηχανής με μηχανή μέσω ενός δικτύου. Τα χαρακτηριστικά των υπηρεσιών ιστού είναι ότι είναι μέρη μιας εφαρμογής, είναι αυτόνομες, επικοινωνούν μέσω ανοιχτών πρωτοκόλλων και μπορούν να χρησιμοποιηθούν από άλλες εφαρμογές. Οι υπηρεσίες ιστού είναι εφαρμογές λογισμικού διαθέσιμες στο διαδίκτυο που εκτελούν συγκεκριμένες λειτουργίες. Είναι βασισμένες σε XML, ένα πρότυπο που υποστηρίζεται και είναι αποδεκτό από χιλιάδες developers παγκοσμίως, και σε κοινά πρωτόκολλα Web, όπως το HTTP. H XML είναι το συντακτικό των μηνυμάτων, και το ΗΤΤP (Hypertext Transport Protocol) είναι το υποκείμενο πρωτόκολλο, δηλαδή πώς οι εφαρμογές στέλνουν μηνύματα XML σε υπηρεσίες 32

33 ιστού για να επικοινωνήσουν. Οι τεχνολογίες υπηρεσιών ιστού, όπως οι εγγραφές UDDI (Universal Description, Discovery and Integration) και οι ebxml, επιτρέπουν στις εφαρμογές να ανακαλύπτουν δυναμικά πληροφορίες σχετικές με τις υπηρεσίες ιστού. Το συντακτικό των μηνυμάτων για μια υπηρεσία ιστού περιγράφεται σε WSDL (Web Service Definition Language). Η πρόσβαση στις υπηρεσίες ιστού γίνεται μέσω του SOAP (Simple Object Definition Protocol), το οποίο είναι το πρωτόκολλο μηνυμάτων βασισμένο σε XML για να επικοινωνούν οι υπηρεσίες ιστού. Οι υπηρεσίες ιστού, εκτός του ότι μπορούν να είναι δημόσιες, μπορούν να υπάρχουν και σε εσωτερικά δίκτυα για εσωτερικές εφαρμογές. Οι υπηρεσίες ιστού έχουν δύο ειδών χρήσεις: 1. Επαναχρησιμοποιούμενα στοιχεία εφαρμογών Οι υπηρεσίες ιστού μπορούν να προσφέρουν στοιχεία που οι εφαρμογές χρειάζονται πολύ συχνά. Τέτοια στοιχεία μπορεί να είναι δελτία καιρού ή υπηρεσίες μετάφρασης. 2. Σύνδεση υπάρχοντος λογισμικού Οι υπηρεσίες ιστού μπορούν να βοηθήσουν να λυθεί το πρόβλημα της διαλειτουργικότητας, δίνοντας σε διαφορετικές υπηρεσίες ένα τρόπο να συνδέσουν τα δεδομένα τους. Με τις υπηρεσίες ιστού, μπορούμε να ανταλλάσουμε δεδομένα μεταξύ διαφορετικών εφαρμογών και διαφορετικών πλατφόρμων. Το σχήμα 3.1 δίνει μια γραφική απεικόνιση των υπηρεσιών ιστού σε επίπεδα. Βασισμένες στη θεμελίωση της XML για τις τεχνολογίες υπηρεσιών ιστού και χρησιμοποιώντας ΗΤΤΡ σαν υποκείμενο πρωτόκολλο, οι υπηρεσίες ιστού εμπλέκουν κοινά πρωτόκολλα για να επιτύχουν τις ιδιότητες της πρόσβασης, της περιγραφής και της ανακάλυψης. 33

34 DISCOVER (UDDI, ebxml, registries) DESCRIBE (WSDL) ACCESS (SOAP) XML COMMUNICATION LAYER (HTTP, SMTP, other protocols) Σχήμα 3.1 : Υπηρεσίες Ιστού σε επίπεδα Το σχήμα 3.2 δείχνει πως χρησιμοποιούνται αυτές οι τεχνολογίες σε ένα κοινό σενάριο. Βήμα 1: Η εφαρμογή του client ανακαλύπτει πληροφορίες για την υπηρεσία ιστού Α σε μια εγγραφή UDDI. Βήμα 2: Η εφαρμογή του client λαμβάνει τη WSDL για την υπηρεσία ιστού Α από την εγγραφή του UDDI για να καθορίσει το API της υπηρεσίας ιστού Α. Βήματα 3-4: Η εφαρμογή του client επικοινωνεί με την υπηρεσία ιστού μέσω SOAP, χρησιμοποιώντας το API που βρήκε. 34

35 1. DISCOVER WEB SERVICES UDDI Registry Client Application 2. SEE DESCRIPTION OF HOW TO CALL EACH WEB SERVICE WSDL for Web Service A 3. ACCESS WEB SERVICE with a SOAP REQUEST 4. RECEIVE SOAP MESSAGE REGUEST Web Service A Σχήμα 3.2 Σενάριο χρήσης υπηρεσίας ιστού Εξαιτίας αυτών των διαδικασιών, όπως η ανακάλυψη, η εφαρμογή του client μπορεί να αυτοματοποιήσει την αλληλεπίδραση με τις υπηρεσίες ιστού. Είναι σημαντικό ότι οι υπηρεσίες ιστού μπορούν να είναι τελείως ανεξάρτητες με την παρουσίαση τη γραφική διεπαφή χρήστη (GUI- Graphical User Interface) των εφαρμογών. Οι υπηρεσίες ιστού στέλνουν δεδομένα σε μορφή XML και οι εφαρμογές μπορούν να προσθέσουν τη μορφοποίηση όταν λαμβάνουν τα δεδομένα. 3.2 Τεχνολογίες υπηρεσιών ιστού SOAP Το SOAP (Simple Object Definition Protocol) είναι το πρωτόκολλο για την ανταλλαγή μηνυμάτων με υπηρεσίες ιστού. Αυτό σημαίνει ότι το SOAP είναι ο φάκελος που περικλείει τα μηνύματα XML που στέλνονται μέσω HTTP μεταξύ των clients και των υπηρεσιών ιστού. Σύμφωνα με το W3C, το SOAP είναι ένα ελαφρύ πρωτόκολλο για ανταλλαγή πληροφοριών σε ένα αποκεντρωμένο, 35

36 κατανεμημένο περιβάλλον. Παρέχει μια πρότυπη γλώσσα για τη σύνδεση εφαρμογών και υπηρεσιών. Μια εφαρμογή στέλνει μια αίτηση SOAP σε μια υπηρεσία ιστού, και η υπηρεσία ιστού επιστρέφει μια απάντηση SOAP. Το SOAP μπορεί να χρησιμοποιηθεί σε συνδυασμό με διάφορα άλλα πρωτόκολλα, αλλά στην πράξη χρησιμοποιείται με HTTP. Το SOAP έχει τα εξής χαρακτηριστικά: 1. είναι μια μορφή αποστολής μηνυμάτων 2. είναι σχεδιασμένο για επικοινωνία μέσω διαδικτύου 3. είναι ανεξάρτητο από την πλατφόρμα και τη γλώσσα 4. είναι απλό και επεκτάσιμο Η γενική δομή ενός μηνύματος SOAP περιλαμβάνει έναν φάκελο, ο οποίος περικλείει όλο το μήνυμα, μια προαιρετική επικεφαλίδα που περιλαμβάνει μεταδεδομένα σχετικά με το μήνυμα, καθώς και το σώμα του μηνύματος (Σχήμα 3.3). Σχήμα 3.3 Δομή φακέλου SOAP Το SOAP έχει υιοθετηθεί σαν πρότυπο για τις υπηρεσίες ιστού και οι εφαρμογές μεγάλων εταιριών έχουν αναπτύξει SOAP APIs για τα προϊόντα τους, κάνοντας την ενσωμάτωση των συστημάτων λογισμικού ευκολότερη WSDL Ενώ το SOAP είναι η γλώσσα επικοινωνίας των υπηρεσιών ιστού, η WSDL (Web Service Definition Language) είναι ο τρόπος που περιγράφουμε τις λεπτομέρειες της επικοινωνίας και τα μηνύματα των εφαρμογών που μπορούν να σταλούν σε SOAP. Το W3C ορίζει τη WSDL σαν μια μορφή XML για να περιγράφονται οι υπηρεσίες δικτύου σαν ένα σύνολο καταληκτικών σημείων 36

37 (endpoints) τα οποία διαχειρίζονται μηνύματα που περιέχουν πληροφορίες σχετικές με έγγραφα ή διαδικασίες. Για να ξέρει μια εφαρμογή πώς να στείλει μηνύματα σε μια συγκεκριμένη υπηρεσία ιστού, μπορεί να κοιτάξει στη WSDL και να κατασκευάσει δυναμικά τα μηνύματα SOAP. Ένα έγγραφο WSDL αποτελείται από δύο μέρη, ένα επαναχρησιμοποιούμενο αφηρημένο μέρος που περιλαμβάνει τη λειτουργική συμπεριφορά των υπηρεσιών και ένα συγκεκριμένο που συνδέει τις υπηρεσίες με υλοποιήσεις τους. Η δομή ενός εγγράφου WSDL φαίνεται στο σχήμα 3.4. Σχήμα 3.4 Δομή εγγράφου WSDL H WSDL περιγράφει τις λειτουργικές πληροφορίες που είναι τοποθετημένη η υπηρεσία, τι κάνει και πώς μπορούμε να μιλήσουμε σ αυτή. Το σχήμα 3.5 δείχνει ένα παράδειγμα του πώς λειτουργεί αυτή η διαδικασία. 37

38 Web Service 1. INSPECTION AND WSDL GENERATION WSDL 2. WSDL INSPECTION AND SOAP MESSAGE GENERATION Client App 3. COMMUNICATION Σχήμα 3.5 Επικοινωνία υπηρεσίας ιστού Βήμα 1: Ο σχεδιαστής της υπηρεσίας ιστού δημιουργεί μια περιγραφή WSDL με τα εργαλεία που επιθεωρούν το επίπεδο διεπαφής του SOAP της υπηρεσίας ιστού. Βήμα 2: Η εφαρμογή του client παράγει τον κώδικα για να διαχειριστεί την υπηρεσία ιστού (τον διαχειριστή SOAP) κοιτώντας στη WSDL. Βήμα 3: Η εφαρμογή του client και η υπηρεσία ιστού επικοινωνούν UDDI Το UDDI (Universal Description and Discovery Interface) είναι η καθολική βάση αναζήτησης για τον εντοπισμό των υπηρεσιών. Οι εφαρμογές που παρέχουν υπηρεσίες ιστού παρατίθενται σε έναν κατάλογο από παρόχους υπηρεσιών χρησιμοποιώντας το UDDI. Παρόμοια, οι εφαρμογές εντοπίζουν τους παρόχους εφαρμογών υπηρεσιών ιστού χρησιμοποιώντας UDDI. Όπως και η WSDL, το UDDI βασίζεται στην XML. 38

39 3.3 Οι Υπηρεσίες Ιστού στο Πλέγμα Υπολογιστών Όπως αναφέρθηκε σε προηγούμενο κεφάλαιο, ένα υπολογιστικό πλέγμα είναι μια συλλογή κατανεμημένων συστημάτων που μπορούν να εκτελούν διάφορες λειτουργίες. Κάθε σύστημα ξεχωριστά μπορεί να έχει περιορισμούς, αλλά όταν δουλεύουν μαζί εκατοντάδες, χιλιάδες ή εκατομμύρια συστήματα σε ένα κατανεμημένο περιβάλλον, μπορεί να παραχθεί μεγάλη υπολογιστική ισχύς. Σε ένα περιβάλλον υπηρεσιών ιστού, αυτή η έννοια φέρνει περισσότερη κατανεμημένη ισχύ στο σύστημα. Για παράδειγμα, ένα online σύστημα παραγωγής βασισμένο σε υπηρεσίες ιστού που εξυπηρετεί εκατομμύρια πελάτες, θα χρειαστεί εξισορρόπηση του φορτίου και ανοχή σε σφάλματα σε μεγάλη κλίμακα. Ο συνδυασμός του πλέγματος με τις υπηρεσίες ιστού μπορεί να προσφέρει σταθερότητα σε ένα τόσο δυναμικό περιβάλλον. Όταν μια υπηρεσία ιστού δεν ανταποκρίνεται, το πλέγμα θα μπορεί να κατευθύνει μια αίτηση σε κάποια άλλη υπηρεσία ιστού. Οι υπηρεσίες ιστού θα μπορούσαν να χρησιμοποιούν έναν αριθμό κατανεμημένων μηχανών για διαχείριση της ισχύος. Οι κατανεμημένες υπηρεσίες ιστού μπορούν να δημιουργήσουν μεγάλες ομάδες συνεργαζόμενων υπηρεσιών ιστού που θα έλυναν προβλήματα σε μεγάλη κλίμακα. 3.4 Αυτοματοποιημένες μεθοδολογίες σχεδιασμού Τα αυτοματοποιημένα εργαλεία μπορούν να βοηθήσουν στη δημιουργία μιας υπηρεσίας ιστού. Για υπηρεσίες που χρησιμοποιούν WSDL, είναι δυνατό είτε να παράγουμε αυτόματα WSDL για υπάρχουσες κλάσεις (bottom- up strategy), είτε να παράγουμε το σκελετό μιας κλάσης χρησιμοποιώντας υπάρχον WSDL (top- down strategy). Στην παρούσα διπλωματική, χρησιμοποιούμε bottom- up μέθοδο. Γράφουμε τις εκτελέσιμες κλάσεις σε γλώσσα java και χρησιμοποιούμε τη βιβλιοθήκη Jax-ws για την δημιουργία της υπηρεσίας ιστού. 39

40 3.5 Δημιουργία Υπηρεσιών Ιστού με το Jax-ws Το Jax-ws (Java API for XML Web Services) είναι μια τεχνολογία για τη δημιουργία υπηρεσιών ιστού και clients που επικοινωνούν με χρήση XML. Η κλήση μιας απομακρυσμένης διαδικασίας αναπαρίσταται από ένα πρωτόκολλο βασισμένο σε XML, όπως το SOAP. Παρότι τα μηνύματα SOAP είναι περίπλοκα, το JAX-WS API κρύβει αυτή την πολυπλοκότητα από τον προγραμματιστή. Στην πλευρά του server, ο προγραμματιστής διευκρινίζει τις απομακρυσμένες διαδικασίες ορίζοντας μεθόδους σε μια διεπαφή γραμμένη σε Java και κωδικοποιεί μία ή περισσότερες κλάσεις που υλοποιούν αυτές τις μεθόδους. Απ την άλλη πλευρά, ο client δημιουργεί ένα proxy (τοπικό αντικείμενο που αναπαριστά την υπηρεσία) και μετά επικαλείται μεθόδους στο proxy. To σύστημα JAX-WS μετατρέπει τις κλήσεις API σε μηνύματα SOAP και τα μηνύματα SOAP σε αποκρίσεις API. Με το JAX-WS, οι πελάτες και οι υπηρεσίες ιστού έχουν ένα μεγάλο πλεονέκτημα: την ανεξαρτησία πλατφόρμας της γλώσσας προγραμματισμού Java. Επίσης, το JAX-WS δεν είναι περιοριστικό: ένας πελάτης μπορεί να έχει πρόσβαση σε μία υπηρεσία ιστού που δεν τρέχει σε περιβάλλον Java και αντίστροφα. Αυτή η ευελιξία είναι δυνατή γιατί το JAX-WS χρησιμοποιεί τεχνολογίες που ορίζονται από το W3C, όπως HTTP, SOAP και WSDL. 3.6 Επικοινωνία μεταξύ Υπηρεσίας Ιστού και Πελάτη Το αρχικό στάδιο για τη δημιουργία μιας υπηρεσίας ιστού είναι μια κλάση Java με την Η ορίζει την κλάση σαν το καταληκτικό σημείο (endpoint) μιας υπηρεσίας ιστού. To ορίζει επιλεκτικά τις μεθόδους που εκτίθενται στους πελάτες σαν λειτουργίες της υπηρεσίας ιστού. Η κλάση υλοποίησης υπηρεσίας (Service Endpoint Interface SEI) είναι μια διεπαφή που ορίζει τις μεθόδους τις οποίες μπορεί να επικαλεστεί ο πελάτης. H SEI ορίζεται σιωπηρά από την κλάση που υλοποιεί την υπηρεσία ιστού. Για να παραχθούν τα αντικείμενα της υπηρεσίας ιστού (συμπεριλαμβανομένου του WSDL αρχείου) και τα stubs που συνδέουν έναν πελάτη της υπηρεσίας ιστού στο σύστημα JAX-WS, χρησιμοποιείται η κλάση που 40

41 υλοποιήθηκε και το εργαλείο wsgen. To εργαλείο wsgen παρέχει την υλοποίηση για τον Διακομιστή Εφαρμογής (Application Server). 3.7 Πελάτης Ο πελάτης είναι ένα πρόγραμμα Java που έχει πρόσβαση στις μεθόδους που εκτίθενται από την υπηρεσία ιστού. Η κλήση αυτή γίνεται μέσω ενός stub, δηλαδή ενός τοπικού αντικειμένου που λειτουργεί σαν proxy για την απομακρυσμένη υπηρεσία. Το stub δημιουργείται με το εργαλείο wsimport, το οποίο παράγει τα φορητά αντικείμενα JAX-WS βασισμένο στο αρχείο WSDL. 41

42 4. Αρχιτεκτονική Συστήματος Παράλληλης Επεξεργασίας Οι εφαρμογές χρονοπρογραμματισμού, που αποτελούν στόχο της παρούσας διπλωματικής, έχουν ιδιαίτερες απαιτήσεις σε υπολογιστικούς πόρους και μνήμη για την εκτέλεση τους. Η δημιουργία τέτοιων εφαρμογών σαν εφαρμογές ιστού απαιτούν την ύπαρξη μιας υποδομής ικανής να διαχειρίζεται πιθανόν κατανεμημένους πόρους για την παραγωγή των λύσεων των προβλημάτων. Στην υλοποίηση της εφαρμογής μας, χρησιμοποιούμε το πλαίσιο SchedScripter, το οποίο έχει υλοποιηθεί από το διδάκτορα Γιώργο Γούλα στα πλαίσια της διατριβής του. Η λειτουργία του πλαισίου αυτού περιγράφεται στη συνέχεια καθώς και η λειτουργία του πλαισίου SchedSP, του οποίου εξέλιξη είναι το SchedScripter. Επίσης, παρουσιάζεται η αρχιτεκτονική του συστήματος παράλληλης επεξεργασίας και οι λεπτομέρειες υλοποίησης του με υπηρεσίες ιστού. 4.1 Πλαίσιο SchedSP Η δημιουργία εφαρμογών, που παρέχονται από το διαδίκτυο σαν υπηρεσίες, εμπλέκει από τη μία το σχεδιασμό και υλοποίηση μιας κοινής λειτουργικότητας και από την άλλη, δημιουργία λειτουργικότητας που αφορά το κάθε εξειδικευμένο πεδίο εφαρμογής ξεχωριστά. Όταν οι εφαρμογές αυτές έχουν ένα σημαντικό σύνολο κοινών χαρακτηριστικών, όπως οι εφαρμογές χρονοπρογραμματισμού, η ανάπτυξη είναι δυνατόν να μειωθεί δραστικά με τη χρήση ενός πλαισίου λογισμικού. Το πλαίσιο που χρησιμοποιείται για τη δημιουργία εφαρμογών χρονοπρογραμματισμού ονομάζεται SchedSP (Scheduling Service Provider). Το σύστημα αυτό ικανοποιεί όλες τις απαιτήσεις ενός τυπικού παροχέα εφαρμογών (ASP), όπως διαθεσιμότητα, δυνατότητα κλιμάκωσης και ευελιξία στη μεριά των προγραμμάτων πελατών. Επιπρόσθετα, δημιουργεί υποστηρικτικά εργαλεία για το πεδίο εφαρμογών χρονοπρογραμματισμού. Το πλαίσιο SchedSP έχει την ικανότητα να υποστηρίξει αποδοτικά τη δημιουργία εφαρμογών χρονοπρογραμματισμού βασισμένων στο διαδίκτυο. Το κύριο χαρακτηριστικό αυτών των εφαρμογών είναι η ανάγκη για ισχυρό και εξειδικευμένο υπολογιστικό περιβάλλον. Ως πλαίσιο για δημιουργούς εφαρμογών, 42

43 το SchedSP παρέχει ένα συνεπές και συνεκτικό σύνολο υπηρεσιών ώστε να περιορίζει την απαιτούμενη προσπάθεια για τη δημιουργία καινούριου λογισμικού. Το SchedSP χρησιμοποιεί την υποδομή πλέγματος για την εκτέλεση των εφαρμογών χρονοπρογραμματισμού. Αυτός ο τρόπος οργάνωσης υπολογιστικών πόρων παρέχει τις απαραίτητες υπηρεσίες για την πρόσβαση σε ένα κατανεμημένο, υψηλής χωρητικότητας υπολογιστικό περιβάλλον, είτε για παράλληλη είτε για σειριακή επεξεργασία. Η επικοινωνία του SchedSP με τα προγράμματα- πελάτες βασίζεται σε XML πάνω από μηνύματα HTTP (XML over HTTP messaging). 4.2 Πλαίσιο Ανάπτυξης SchedScripter Το πλαίσιο SchedScripter αποτελεί εξέλιξη του SchedSP και είναι ένα πλαίσιο δημιουργίας κατανεμημένων επιστημονικών εφαρμογών με επικοινωνίες βασισμένες σε υπηρεσίες ιστού. Αναλαμβάνει την αρμοδιότητα των επικοινωνιών των κατανεμημένων διεργασιών καθιστώντας διάφανο, όσο αυτό είναι δυνατό, το ρόλο του πλέγματος. Στο SchedScripter, η συνολική πορεία της εφαρμογής οδηγείται από ένα σενάριο εύκολο στην αλλαγή, που δεν είναι στενά συζευγμένο με τα επί μέρους τμήματα της εφαρμογής, τα οποία υπηρετούν διακριτούς και περιορισμένους ρόλους. Πέρα από το συντονισμό της εφαρμογής, το SchedScripter λειτουργεί και σαν χρονοπρογραμματιστής επιπέδου εφαρμογής, όπου εργασίες δρομολογούνται σε κόμβους ανάλογα με την πορεία της εφαρμογής, χωρίς παρέμβαση από τις χρονοβόρες και ασύγχρονες διαδικασίες χρονοπρογραμματισμού και διαχείρισης πόρων της υποδομής πλέγματος. Οι επικοινωνίες μεταξύ των διαφόρων συστατικών του SchedScripter γίνονται με ανταλλαγή μηνυμάτων σύμφωνα με υπηρεσίες ιστού. Ο συντονισμός των εργασιών που εκτελούνται μέσω υπηρεσιών ιστού γίνεται με χρήση της γλώσσας BPEL. Ο συντονισμός των εργασιών που υποστηρίζεται από το SchedScripter είναι είτε τύπου κυρίου/εργάτη, είτε τύπου σμήνους. Στο πρότυπο κυρίου/εργάτη, μια μοναδική κύρια διεργασία χωρίζει το φόρτο εργασίας σε υποεργασίες, τις οποίες αναθέτει σε κόμβους εργασίας. Παρέχεται μία υπηρεσία ιστού ανάλογη με έναν πίνακα ανακοινώσεων, όπου τοποθετούνται τα καλύτερα αποτελέσματα που έχουν ανευρεθεί και τα υποπροβλήματα που έχουν επιλεγεί για επίλυση. Μία διαδικασία συντονισμού συντηρεί αυτή την πληροφορία, δημιουργεί νέα προβλήματα προς επίλυση και διαχειρίζεται τις διαθέσιμες λύσεις. Η 43

44 υπηρεσία πίνακα ανακοινώσεων παρέχει αντιστοίχιση λύσεων σε υποπροβλήματα. Οι κόμβοι εργασίας παρακολουθούν τον πίνακα ανακοινώσεων και αναλαμβάνουν την επίλυση υποπροβλημάτων. Η επικοινωνία της διαδικασίας συντονισμού με την υπηρεσία του πίνακα ανακοινώσεων γίνεται με διεπαφή υπηρεσιών ιστού. Το πρότυπο σμήνους ακολουθεί μία λογική ομότιμων διαδικασιών που αναφέρεται επίσης και ως ίσος-προς-ίσο. Θεωρεί μια σειρά ανεξάρτητων διεργασιών κάθε μια από τις οποίες αποφασίζει ποιά εργασία θα ολοκληρώσει έτσι ώστε ολόκληρο το σμήνος να λύσει το γενικό πρόβλημα. Οι διεργασίες αυτές επικοινωνούν συχνά με μεταδιδόμενα μηνύματα έτσι ώστε να δημοσιεύσουν τα αποτελέσματά τους και να παρέχουν συμβουλές στο σμήνος οι οποίες δεν είναι σίγουρα αν θα χρησιμοποιηθούν. Το σμήνος στο SchedScripter έχει έναν μόνο κύριο που ρόλος του είναι να παρακολουθεί την ανταλλαγή μηνυμάτων και να αποθηκεύει το αποτέλεσμα στο τέλος της διεργασίας. Τα βασικά συστατικά των εφαρμογών που χρησιμοποιούν το SchedScripter είναι η διαδικασία συντονισμού της εφαρμογής(coordinator), το Μητρώο(Registry) και οι Κόμβοι Εργασίας(Worker Nodes), τα οποία φαίνονται στο σχήμα 4.1. Σχήμα 4.1 Επισκόπηση του SchedScripter Το SchedScripter εγκαθιστά ένα κυτίο με web services σε κάθε κόμβο εργασίας ώστε να παρέχει μια σειρά από υπηρεσίες σχεδιασμένες να επιτρέψουν στον κόμβο εργασίας να θεωρηθεί σαν μια μοναδική διεργασία από μια συλλογή εργασιών. Οι κόμβοι εργασίας εγγράφουν τον εαυτό τους στο μητρώο και ένας μοναδικός κύριος κόμβος παρέχει στις εφαρμογές που θέλουν να χρησιμοποιήσουν τους κόμβους 44

45 εργασίας ένα μητρώο με τις υπηρεσίες τους. Ο κόμβος αυτός εξετάζει τους εγγεγραμμένους κόμβους εργασίας ανά τακτά χρονικά διαστήματα για να βεβαιωθεί ότι είναι ενεργοί. Όλες οι υπηρεσίες του SchedScripter παρέχονται ως XML Web Services για διαλειτουργικότητα και ευκολία πρόσβασης. Μια βασισμένη στο SchedScripter εφαρμογή πρέπει να προσπελάσει το μητρώο ώστε να βρει πόρους και στη συνέχεια να μεταφέρει εργασίες και κώδικα στους κόμβους εργασίας. Η διεργασία αυτή υποβοηθάται από έναν χρονοπρογραμματιστή εργασιών επιπέδου εφαρμογής που παρέχεται στο API του SchedScripter. Οι καθορισμένες από το χρήστη web services μπορούν είτε να διανεμηθούν μαζί με τις υπόλοιπες υπηρεσίες του Κόμβου Εργασίας που μεταφέρονται στον απομακρυσμένο υπολογιστή είτε μεταφέρονται και ενεργοποιούνται ενώ ο Κόμβος Εργασίας είναι ενεργός. Τα συστατικά στοιχεία του SchedScripter διανέμονται σε τρία πακέτα: Master, Worker και Client Library. Οι κεντρικές υπηρεσίες της εφαρμογής είναι: Μητρώο (Registry) το οποίο διατηρεί τους διαθέσιμους πόρους της εφαρμογής. Προώθηση Συνδέσεων (Port Forwarding) για προσπέλαση κόμβων εργασίας οι οποίοι δεν είναι προσπελάσιμοι δικτυακά με πρωτόκολλα υπηρεσιών ιστού. Διαχείριση Ροών Εργασίας (Workflow Management). WN Matcher για διαχωρισμό των υπηρεσιών ανά κόμβο εργασίας. Κεντρική Διαχείριση Αρχείων Οι υπηρεσίες που προσφέρονται από κάθε κόμβο εργάτη είναι: Διαχείριση Αρχείων για τη διαχείριση αρχείων και φακέλων στους κόμβους εργασίας. Διαχείριση Εργασιών για την εκτέλεση εργασιών σε έναν κόμβο εργασίας. Υποδοχέα Εργασίας (Job Host) η οποία προσφέρει μια κλάση Java ως μια υπηρεσία Διαδικτύου. Διαχείριση Κόμβου Εργασίας που είναι υπεύθυνη για την διαχείριση των κόμβων εργασίας και τη δημοσιοποίηση των υπηρεσιών που παρέχουν. Το σενάριο λειτουργίας μιας εφαρμογής που χρησιμοποιεί το SchedScripter είναι το ακόλουθο: Αρχικά ενεργοποιεί το Μητρώο. Στη συνέχεια, οι Κόμβοι Εργασίας υποβάλλονται ως εργασίες Grid χρησιμοποιώντας συγκεκριμένα εργαλεία που παρέχονται από το μεσσισμικό του EGEE, το οποίο είναι το glite ( Έπειτα, η Εφαρμογή Χρονοπρογραμματισμού μπορεί να συνδεθεί στο Μητρώο για να βρίσκει διαθέσιμους υπολογιστικούς πόρους όταν γίνονται διαθέσιμοι. Έχοντας αποκτήσει τους απαιτούμενους πόρους, η Εφαρμογή Χρονοπρογραμματισμού μπορεί να καθορίσει μια διαδικασία επίλυσης με ροές εργασίας είτε χρησιμοποιώντας το WS-BPEL είτε αναθέτοντας απευθείας 45

46 υπολογιστικό φόρτο στους πελάτες, πιθανότατα χρησιμοποιώντας το API διαχείρισης φορτίου πελάτη του SchedScripter. Ενώ το SchedScripter αρχικά αναπτύχθηκε για να χρησιμοποιηθεί στην υποδομή Grid του EGEE, το πλαίσιο είναι γενικό και μπορεί να χρησιμοποιηθεί και έξω από το EGEE επίσης, ακόμα και σε ένα περιβάλλον συστοιχιών υπολογιστών το οποίο δεν έχει μεσσισμικό Grid. 4.3 Περιγραφή Συστήματος Το σύστημα παράλληλης επεξεργασίας που υλοποιείται είναι βασισμένο στα εργαλεία που παρέχονται από το πλαίσιο SchedScripter. Χρησιμοποιείται η δυνατότητα που παρέχει το πλαίσιο για συντονισμό τύπου κυρίου/εργάτη, με τους εργάτες να ανατίθενται στους κόμβους εργασίας. Το πρότυπο αυτό είναι ιδανικό για την υλοποίηση της εφαρμογής μας αφού προσφέρει υποστήριξη σε σενάρια που η βασική τους προσέγγιση περιλαμβάνει δημιουργία υποπροβλημάτων και αντιμετώπιση του κάθε υποπροβλήματος σε διαφορετικό κόμβο εργασίας. Στο σχήμα 4.2 παρουσιάζονται οι κλάσεις συντονισμού κόμβων εργασίας. Συγκεκριμένα, η κλάση BaseCoordinator δημιουργεί ένα στιγμιότυπο της TaskPoolSvc. Η κλάση TaskPoolSvc συνδέεται με το μητρώο που περιέχει τους διαθέσιμους κόμβους εργασίας και τις υπηρεσίες τους. Μετά τη σύνδεση ο διαχειριστής αναλαμβάνει το συντονισμό της λειτουργίας των κόμβων εργασίας. Ξεκινάει και σταματάει τη λειτουργία τους, τους στέλνει εργασίες προς εκτέλεση και διαχειρίζεται τα αποτελέσματα που επιστρέφουν μετά την εκτέλεσή τους. Μόλις εκτελεστεί η κλάση Worker, ο εργάτης συνδέεται στο taskpool σαν πελάτης της υπηρεσίας ιστού και μπορεί να παραλάβει και να επιστρέψει εργασίες. Η επικοινωνία τους γίνεται με χρήση μηνυμάτων SOAP. Η TaskPoolSvc υλοποιεί τη διεπαφή TaskPool. H TaskPool αποτελείται από τρείς ουρές (δομές FIFO). Η πρώτη ουρά διατηρεί τις εργασίες που εκκρεμούν (pending tasks), δηλαδή αυτές που έχουν σταλεί από τον διαχειριστή και περιμένουν να τις αναλάβει ένας εργάτης. Η δεύτερη ουρά διατηρεί τις εργασίες που έχουν ανατεθεί σε κάποιον εργάτη (assigned tasks). Η τρίτη ουρά διατηρεί τις εργασίες που έχουν επιλυθεί από εργάτες και περιμένουν να επιστρέψουν στον διαχειριστή (finished tasks). Η TaskPoolSvc για κάθε εργασία που πρέπει αναθέσει δημιουργεί ένα στιγμιότυπο της κλάσης Task το οποίο καθοδηγεί την εκτέλεση της συγκεκριμένης εργασίας σε έναν εργάτη. 46

47 Σχήμα 4.2 Κλάσεις συντονισμού κόμβων εργασίας Η επικοινωνία των διεργασιών του coordinator, του taskpool και των workers γίνεται με web services, τα οποία υλοποιούνται με χρήση της βιβλιοθήκης Jax-ws ri της Java όπως περιγράφεται στη συνέχεια. Στο σχήμα 4.3 φαίνεται σχηματικά το σύστημα παράλληλης επεξεργασίας. 47

48 Coordinator Taskpool Worker 1 PENDING Worker 2 ASSIGNED FINISHED Worker n Σχήμα 4.3 Σύστημα Παράλληλης Επεξεργασίας 4.4 Υλοποίηση Υπηρεσίας Ιστού Κλάση Υλοποίησης Υπηρεσίας Η κλάση που εκτελείται για την επεξεργασία των μηνυμάτων SOAP της υπηρεσίας σε όρους JAX-WS ονομάζεται κλάση υλοποίησης υπηρεσίας (SEI). H μετατροπή της κλάσης σε κλάση υλοποίησης υπηρεσίας γίνεται με χρήση της Σαν υπηρεσία ιστού επισημειώνουμε την κλάση που υλοποιεί το Taskpool (TaskPoolSvc.java). Από το SEI παράγουμε την περιγραφή WSDL της υπηρεσίας και τις υποστηρικτικές κλάσεις που απαιτούνται για να γίνει η επεξεργασία των αντίστοιχων μηνυμάτων SOAP, με χρήση του εργαλείου wsgen. Εκτός από τις υποστηρικτικές κλάσεις, δημιουργούνται δύο αρχεία. Το TaskpoolSvc.wsdl που περιέχει την περιγραφή WSDL και το TaskPoolSvc_schema1.xsd που περιέχει την περιγραφή των μηνυμάτων που ανταλλάσσονται σε XML Schema. H παραπάνω διαδικασία γίνεται αυτοποιημένα με χρήση του Apache Ant, όπως περιγράφεται στην παράγραφο

49 4.4.2 Υποδοχέας Υπηρεσιών Ιστού Στα εργαλεία του JAX-WS παρέχεται εξυπηρετητής πρωτοκόλλου HTTP που μπορεί να λειτουργήσει σαν υποδοχέας υπηρεσιών ιστού, υποστηρίζοντας ανταλλαγές μηνυμάτων SOAP πάνω από HTTP. Χρησιμοποιούμε τον εξυπηρετητή στην κλάση που υλοποιεί τον Coordinator Πελάτης Υπηρεσίας Για να δημιουργηθούν οι απαραίτητες κλάσεις χρήσης μηνυμάτων SOAP από τη μεριά του πελάτη (stubs), χρησιμοποιούμε το εργαλείο wsimport. Αφού δημιουργηθούν τα stubs μπορεί να εκτελεστεί ο πελάτης, δηλαδή, στη συγκεκριμένη περίπτωση, ο Worker. H διαδικασία αυτή γίνεται επίσης με χρήση του Apache Ant Χτίσιμο Εφαρμογής Το χτίσιμο (build) της εφαρμογής γίνεται με χρήση του Apache Ant. Το Apache Ant είναι μια βιβλιοθήκη της Java και ένα εργαλείο χτισίματος το οπoίο οδηγεί διεργασίες που περιγράφονται στα buildfiles. Η κύρια χρήση του Ant είναι το χτίσιμο εφαρμογών Java. Το Ant παρέχει έναν αριθμό εργασιών που επιτρέπουν μεταγλώττιση, συναρμολόγηση και εκτέλεση των εφαρμογών Java. Τα buildfiles του Apache Ant γράφονται σε XML. Κάθε buildfile περιέχει ένα project και τουλάχιστον ένα στόχο (target). Οι στόχοι περιέχουν τα στοιχεία των εργασιών. 49

50 5. Εφαρμογή Παράλληλης Επεξεργασίας Στο κεφάλαιο αυτό, περιγράφεται η υλοποίηση μιας απλής εφαρμογής βασισμένης στο σύστημα παράλληλης επεξεργασίας που παρουσιάστηκε στο προηγούμενο κεφάλαιο. Η εφαρμογή αυτή έχει σαν στόχο την επιβεβαίωση της ορθής λειτουργίας του συστήματος παράλληλης επεξεργασίας. Η εφαρμογή υλοποιεί την πρόσθεση των αριθμών ενός πίνακα. 5.1 Λύση του Προβλήματος Το πρόβλημα έχει λυθεί χωρίζοντας το αρχικό πρόβλημα σε υποπροβλήματα. Η εφαρμογή δέχεται σαν είσοδο έναν πίνακα ακεραίων ΝxN. Ο πίνακας αυτός χωρίζεται σε Ν πίνακες που ο καθένας περιέχει Ν ακεραίους. Στη συνέχεια, γίνεται η πρόσθεση του κάθε πίνακα ξεχωριστά και στο τέλος γίνεται η πρόσθεση των αποτελεσμάτων. Με αυτό τον τρόπο προκύπτει το άθροισμα του αρχικού πίνακα. Ο αλγόριθμος ελέγχεται από μια διεργασία συντονισμού, τον διαχειριστή. Ο διαχειριστής εκτελεί μια ακολουθιακή μεταευρετική μέθοδο και αποστέλλει εργασίες με μεγάλο υπολογιστικό φόρτο στους εργάτες για να εκτελεστούν παράλληλα. Συγκεκριμένα, ο διαχειριστής παίρνει τον πίνακα NxΝ και τον χωρίζει σε Ν υποπίνακες. Οι υποπίνακες αυτοί είναι οι εργασίες που αποστέλλονται στους εργάτες για εκτέλεση. Αφού οι εργάτες ολοκληρώσουν τις εργασίες που τους έχουν ανατεθεί, επιστρέφουν τις λύσεις στον διαχειριστή. Ο διαχειριστής τις συλλέγει και υπολογίζει το τελικό αποτέλεσμα. Οι εργάτες δεν έχουν δυνατότητα επικοινωνίας μεταξύ τους. Μπορούν να επικοινωνήσουν μόνο με τον διαχειριστή και μόνο μετά από πρωτοβουλία του. Οι εργάτες παραλαμβάνουν έναν υποπίνακα και υπολογίζουν το άθροισμα των στοιχείων του. Ο φάσεις που ακολουθούνται κατά την επίλυση είναι: Παραλαβή πίνακα Δημιουργία υποπινάκων 50

51 Πρόσθεση υποπινάκων Τελική πρόσθεση 5.2 Εφαρμογή Παράλληλης Επεξεργασίας Η λειτουργία της εφαρμογής στηρίζεται στην υλοποίηση του κατανεμημένου προγραμματιστικού μοντέλου κύριου/υπηρέτη που παρουσιάστηκε στο κεφάλαιο 4. Υπάρχει ένας διαχειριστής ο οποίος ελέγχει τη διαδικασία και αποστέλλει εργασίες για να εκτελεστούν παράλληλα από τους υπηρέτες, δηλαδή τους κόμβους εργασίας του Grid. Συγκεκριμένα, ο διαχειριστής, δηλαδή η διεργασία συντονισμού, παραλαμβάνει τον πίνακα και τον χωρίζει σε μια σειρά από υποπίνακες. Στη συνέχεια δημιουργεί έναν αριθμό από εργασίες και αποστέλλει τις εργασίες αυτές στους κόμβους εργάτες, οι οποίοι είναι αυτοί που θα εκτελέσουν τις παραπάνω εργασίες και θα υπολογίσουν τα επί μέρους αθροίσματα. Για να μπορέσουν να εκτελέσουν τις εργασίες, οι εργάτες θα πρέπει να έχουν στη διάθεση τους τον υποπίνακα και ένα αρχείο jar το οποίο πρέπει να εκτελεστεί για την πρόσθεση αριθμών.. Ενώ η εκτέλεση των εργασιών βρίσκεται σε εξέλιξη, ο διαχειριστής ελέγχει το taskpool μήπως έχει ολοκληρωθεί κάποια εργασία. Όταν κάποιος υπηρέτης ολοκληρώσει την εργασία που του έχει ανατεθεί, αυτή τοποθετείται στην ουρά τερματισμένων εργασιών του taskpool. Μόλις η διεργασία συντονισμού αντιληφθεί ότι η ουρά έχει εργασίες, συλλέγει τη λύση η οποία προέκυψε από την εκτέλεση της εργασίας του συγκεκριμένου κόμβου εργασίας. Κάθε φορά που ο διαχειριστής παραλαμβάνει μια λύση, την προσθέτει στο προηγούμενο άθροισμα. Η διαδικασία αυτή συνεχίζεται μέχρι να μην υπάρχουν άλλες εργασίες για να παραλάβει ο διαχειριστής. 51

52 ΕΡΓΑΤΗΣ 1 ΔΙΑΧΕΙΡΙΣΤΗΣ ΧΩΡΙΣΕ ΤΟΝ ΠΙΝΑΚΑ ΣΕ ΥΠΟΠΙΝΑΚΕΣ ΕΡΓΑΤΗΣ N ΠΑΡΑΛΑΒΕ ΤΟΝ ΥΠΟΠΙΝΑΚΑ ΠΑΡΑΛΑΒΕ ΤΟΝ ΥΠΟΠΙΝΑΚΑ ΠΡΟΣΘΕΣΕ ΤΑ ΣΤΟΙΧΕΙΑ ΤΟΥ ΠΑΡΑΛΑΒΕ ΑΠΟΤΕΛΕΣΜΑ ΠΡΟΣΘΕΣΕ ΤΑ ΣΤΟΙΧΕΙΑ ΤΟΥ ΕΠΙΣΤΡΕΨΕ ΑΠΟΤΕΛΕΣΜΑ ΠΡΟΣΘΕΣΕ ΑΠΟΤΕΛΕΣΜΑ ΣΤΟ ΠΡΟΗΓΟΥΜΕΝΟ ΕΠΙΣΤΡΕΨΕ ΑΠΟΤΕΛΕΣΜΑ OXI ΤΕΛΕΙΩΣΑΝ ΟΙ ΕΡΓΑΣΙΕΣ; ΔΩΣΕ ΤΕΛΙΚΟ ΑΘΡΟΙΣΜΑ NAI Σχήμα 5.1 Διάγραμμα ροής εφαρμογής Εργασίες Οι κλάσεις που αντιπροσωπεύουν τις εργασίες τις οποίες αναθέτει προς εκτέλεση ο διαχειριστής στους εργάτες φαίνονται στο σχήμα

53 Συγκεκριμένα. κάθε εργασία κληρονομεί την κλάση Task. Κάθε στιγμιότυπο της κλάσης SumTask που κληρονομεί την Task αντιπροσωπεύει μια εργασία που θα εκτελεστεί, που εκτελείται ή που έχει ολοκληρωθεί η εκτέλεσή της. Η κλάση SumTask κληρονομεί όλα τα μέλη δεδομένων και όλες τις μεθόδους της Task και μέσω αυτών παρέχει πληροφορίες για την κατάσταση μιας εργασίας καθώς και μεθόδους για την προσπέλαση και τον ορισμό των πληροφοριών αυτών. Οι εργασίες χαρακτηρίζονται από ένα μοναδικό αριθμό (taskid) για να διευκολύνεται η διαχείρισή τους. Επίσης, περιλαμβάνουν σαν μέλη δεδομένων τις παραμέτρους (parameters) και το αποτέλεσμα (result). Η κλάση SumTask χρησιμοποιείται για τη δημιουργία μιας εργασίας πρόσθεσης υποπίνακα. Στην κλάση αυτή το αποτέλεσμα αντιστοιχίζεται στο άθροισμα του υποπίνακα και οι παράμετροι αντιστοιχίζονται στο String που αντιπροσωπεύει τον υποπίνακα. Σχήμα 5.2 Κλάσεις εργασιών 53

54 5.2.2 Εργάτες Οι κλάσεις που χρησιμοποιούνται για την εκτέλεση των εργασιών που στέλνει ο διαχειριστής στους εργάτες φαίνονται στο σχήμα 5.3. Οι κλάσεις αυτές περιέχονται στο αρχείο jar που μεταφέρεται σε κάθε κόμβο εργασίας και το οποίο χρησιμοποιεί ο διαχειριστής για την πρόσθεση των στοιχείων ενός υποπίνακα. Η κλάση Worker δημιουργεί ένα στιγμιότυπο της SumWorker η οποία κληρονομεί τις μεθόδους της WorkerTaskWrapper. Σχήμα 5.3 Κλάσεις κόμβων εργασίας Η SumWorker χρησιμοποιείται για τη πρόσθεση των στοιχείων ενός υποπίνακα. Παραλαμβάνει την εργασία από το taskpool, η οποία περιλαμβάνει το String που αντιπροσωπεύει τον υποπίνακα. Στη συνέχεια, μετατρέπει το String αυτό σε πίνακα, προσθέτει τα στοιχεία του και επιστρέφει τη λύση στο Taskpool. 54

55 5.2.3 Διαχειριστής Οι κλάσεις που αντιπροσωπεύουν τον διαχειριστή ο οποίος αναθέτει τις εργασίες προς εκτέλεση στους εργάτες φαίνονται στο σχήμα 5.4. Σχήμα 5.4 Κλάσεις Διαχειριστή Συγκεκριμένα, ο διαχειριστής κληρονομεί την κλάση BaseCoordinator η οποία επικοινωνεί με το taskpool. Η κλάση SumCoordinator κληρονομεί όλα τα μέλη δεδομένων και όλες τις μεθόδους της Coordinator και μέσω αυτών 55

56 επικοινωνεί με το taskpool και διαχειρίζεται τις εργασίες. Επιπλέον, η κλάση SumCoordinator περιλαμβάνει μεθόδους για το χωρισμό του πίνακα σε υποπίνακες και τη μετατροπή των υποπινάκων σε String. Ο διαχειριστής, αφού παραλάβει τον πίνακα, παράγει υποπροβλήματα και στέλνει τις εργασίες στο taskpool. Στη συνέχεια ελέγχει αν υπάρχει κάποια εργασία που έχει τελειώσει. Αν υπάρχει, παίρνει την εργασία και προσθέτει το αποτέλεσμα στο προηγούμενο άθροισμα. Η διαδικασία αυτή συνεχίζεται μέχρι να μην υπάρχουν άλλες εργασίες για να παραλάβει ο διαχειριστής. 5.3 Υποβολή εφαρμογής στο Πλέγμα Η εφαρμογή υποβλήθηκε στο πλέγμα για να ελεγχθεί η ορθή λειτουργία της και η σωστή ανταλλαγή παραμέτρων μεταξύ των συστατικών του παράλληλου συστήματος. Ο διαχειριστής εκτελέστηκε τοπικά ενώ το jar που υλοποιεί τους εργάτες υποβλήθηκε στο πλέγμα. Η εφαρμογή υπολόγισε σωστά το άθροισμα των στοιχείων του πίνακα και επέστρεψε το σωστό αποτέλεσμα. Δεν κρίνεται σκόπιμη η παρουσίαση των αποτελεσμάτων αφού σκοπός του πειράματος αυτού ήταν η επιβεβαίωση της ορθής λειτουργίας του παράλληλου συστήματος. Η εφαρμογή ουσιαστικά υλοποιήθηκε για να λυθούν προβλήματα στις ανταλλαγές παραμέτρων, τα οποία σε ένα πιο σύνθετο πρόβλημα όπως ο χρονοπρογραμματισμός θα ήταν πολύ δύσκολο να εντοπιστούν. 56

57 6. Εφαρμογή Παράλληλης Επεξεργασίας στο Πρόβλημα Χρονοπρογραμματισμού Προσωπικού Νοσοκομείου Στα νοσοκομεία γίνεται μεγάλη προσπάθεια ώστε να παραχθούν προγράμματα για το προσωπικό τα οποία είναι εφικτά αλλά και υψηλής ποιότητας. Παρότι το Πρόβλημα Χρονοπρογραμματισμού του Προσωπικού Νοσοκομείου (Nurse Rostering) είναι ένα δύσκολο συνδυαστικό πρόβλημα βελτιστοποίησης, έχει λάβει μεγάλη προσοχή κυρίως τα τελευταία χρόνια. Το Πρόβλημα Χρονοπρογραμματισμού του Προσωπικού Νοσοκομείου περιλαμβάνει την ανάθεση βάρδιας σε νοσοκόμους λαμβάνοντας υπόψη διάφορους περιορισμούς: αυστηροί περιορισμοί: περιορισμοί που πρέπει να ικανοποιηθούν χαλαροί περιορισμοί: τα σύνολα περιορισμών που θα έπρεπα να ικανοποιηθούν αλλά είναι αναμενόμενο ότι δε μπορούν να ικανοποιηθούν όλοι. Εφικτή θεωρείται η λύση στην οποία ικανοποιούνται όλοι οι αυστηροί περιορισμοί. Η ποιότητα της λύσης μετριέται σε σχέση με τις παραβιάσεις χαλαρών περιορισμών. 6.1 Περιγραφή του Προβλήματος Το πρόβλημα συνοψίζεται στα παρακάτω: Φτιάχνεται ένα πρόγραμμα για κάποιον αριθμό ημερών για μία πτέρυγα ενός νοσοκομείου. Για κάθε ημέρα και κάθε τύπο βάρδιας παρέχεται ο αριθμός των απαιτούμενων νοσοκόμων. Οι κανονισμοί εργασίας περιγράφονται στα συμβόλαια. Κάθε νοσοκόμος δουλεύει σύμφωνα με ένα μόνο συμβόλαιο. Το συμβόλαιο παρέχει τις ακόλουθες πληροφορίες: 57

58 o μέγιστος αριθμός αναθέσεων o ελάχιστος αριθμός αναθέσεων o μέγιστος αριθμός συνεχόμενων ημερών εργασίας o ελάχιστος αριθμός συνεχόμενων ημερών εργασίας o μέγιστος αριθμός συνεχόμενων ρεπό o ελάχιστος αριθμός συνεχόμενων ρεπό o μέγιστος αριθμός συνεχόμενων σαββατοκύριακων εργασίας o μέγιστος αριθμός σαββατοκύριακων εργασίας σε τέσσερις εβδομάδες o δύο ημέρες ρεπό μετά από βραδινή βάρδια o ολόκληρα σαββατοκύριακα o ίδιοι τύποι βάρδιας κατά τη διάρκεια του σαββατοκύριακου o ανεπιθύμητα σχήματα βάρδιας Οι νοσοκόμοι της πτέρυγας Οι απαιτήσεις των νοσοκόμων o ημέρες που προτιμούν να δουλεύουν o βάρδιες που προτιμούν να δουλεύουν Υπάρχουν δύο αυστηροί περιορισμοί: Όλες οι βάρδιες πρέπει να ανατεθούν σε ένα νοσοκόμο Ένας νοσοκόμος μπορεί να δουλέψει μόνο μία βάρδια την ημέρα Οι χαλαροί περιορισμοί που καλούμαστε να ικανοποιήσουμε είναι οι απαιτήσεις των νοσοκόμων και οι κανονισμοί εργασίας. Τα αρχεία εισόδου είναι σε μορφή XML. 6.2 Στρατηγική Επίλυσης Το Nurse Rostering είναι ένα συνδυαστικό πρόβλημα, δύσκολο να λυθεί εξαιτίας του μεγέθους και της πολυπλοκότητάς του. Πολλές λεπτομέρειες που ισχύουν στον πραγματικό κόσμο προκύπτουν στην πράξη και κάνουν την υπολογιστική προσέγγιση του προβλήματος απαραίτητη. Στην ενότητα αυτή, παρουσιάζεται η στρατηγική επίλυσης που προτάθηκε για το διεθνή διαγωνισμό INRC2010 από τους ερευνητές του εργαστηρίου Συστημάτων Υπολογιστών του Πανεπιστημίου Πατρών Χρήστο Βαλουξή, Χρήστο Γκόγκο, Γιώργο Γούλα και Παναγιώτη Αλεφραγκή, αποσπώντας την πρώτη θέση σε όλα τα κομμάτια του διαγωνισμού. 58

59 Το πρόβλημα έχει λυθεί χωρίζοντας το αρχικό πρόβλημα σε υποπροβλήματα. Κάθε υποπρόβλημα έχει μέγεθος χειρίσιμο υπολογιστικά και λύνεται με μαθηματικό προγραμματισμό. Χρησιμοποιήθηκε στρατηγική δύο φάσεων, όπου στην πρώτη φάση γίνεται ανάθεση των νοσοκόμων σε εργάσιμες μέρες ενώ στη δεύτερη φάση οι νοσοκόμοι που έχουν ανατεθεί σε μια εργάσιμη μέρα προγραμματίζονται σε συγκεκριμένες βάρδιες της ημέρας. Το πρόβλημα ελέγχεται αρκετές φορές από την αρχή ως το τέλος και γίνεται εκτεταμένος αριθμός μερικών ανταλλαγών του προγράμματος μεταξύ των νοσοκόμων. Οι δύο φάσεις είναι: Φάση 1: Ανάθεση νοσοκόμων σε εργάσιμες μέρες Στην πρώτη φάση, ορίζονται οι ημέρες εργασίας και τα ρεπό όλων των νοσοκόμων για συγκεκριμένο χρονικό διάστημα. Στη συνέχεια, ορίζεται ένα πρόβλημα Προγραμματισμού Ακεραίων (Integer Programming- IP) και λύνεται για την πρώτη εβδομάδα του διαστήματος αυτού. Η διαμόρφωση του μοντέλου IP εξασφαλίζει την ικανοποίηση των αυστηρών περιορισμών (hard constraints) που επιβάλλονται από το πρόβλημα. Γι αυτό το λόγο, ο συνολικός αριθμός νοσοκόμων που δουλεύουν σε κάθε μέρα πρέπει να ισούται με τη ζήτηση της ημέρας και κάθε νοσοκόμος δεν πρέπει να δουλεύει πάνω από μια βάρδια την ημέρα. Σε αυτή τη φάση, οι μόνοι χαλαροί περιορισμοί (soft constraints) που λαμβάνονται υπόψη είναι αυτοί που εξαρτώνται από την ανάθεση εργάσιμης μέρας ή ρεπό και χρησιμοποιούνται στη συνάρτηση κόστους. Εξετάζονται όλοι οι πιθανοί συνδυασμοί ημέρας εργασίας/ρεπό για μια εβδομάδα για όλους τους νοσοκόμους(128 πιθανές τιμές για κάθε νοσοκόμο). Με αυτό τον τρόπο, παράγεται ένα εφικτό πρόγραμμα όλων των νοσοκόμων που καλύπτει την ημερήσια ζήτηση και ικανοποιεί όσο το δυνατόν περισσότερους χαλαρούς περιορισμούς. Παρόμοια προβλήματα λύνονται για όλες τις επόμενες εβδομάδες, μέχρι να καλυφθεί όλο το χρονικό διάστημα και να μη μπορούν να γίνουν περαιτέρω βελτιώσεις. Φάση 2: Ανάθεση νοσοκόμων σε βάρδιες Η λύση της προηγούμενης φάσης καθορίζει ποιοί νοσοκόμοι θα έπρεπε να δουλεύουν κάθε μέρα. Τότε δημιουργείται ένα πρόβλημα Προγραμματισμού Ακεραίων για να τους αναθέσει σε συγκεκριμένες βάρδιες, όπως υπαγορεύεται από τη ζήτηση βάρδιας κάθε μέρας. Οι περιορισμοί του μοντέλου IP εξασφαλίζουν ότι όλοι οι διαθέσιμοι νοσοκόμοι θα ανατεθούν σε κατάλληλες βάρδιες. Το IP λαμβάνει υπόψη του μόνο τους χαλαρούς περιορισμούς που εξαρτώνται από την ανάθεση βάρδιας. Αυτοί οι περιορισμοί χρησιμοποιούνται στη συνάρτηση κόστους. 59

60 Παρόμοια προβλήματα λύνονται για όλες τις μέρες, μέχρι να καλυφθεί όλη η περίοδος προγραμματισμού. Τα προβλήματα που ορίζονται στις δύο φάσεις λύνονται επαναλαμβανόμενα μέχρι να μη μπορούν να βρεθούν καλύτερα προγράμματα. Οι δύο φάσεις εκτελούνται με τη σειρά πολλές φορές, αρχίζοντας κάθε φορά από ένα τυχαίο πρόγραμμα, μέχρι να τελειώσει ο επιτρεπόμενος χρόνος εκτέλεσης. Ένας γρήγορος αξιολογητής κόστους έχει υλοποιηθεί ώστε να παρέχει τιμές κόστους, για κάθε νοσοκόμο, που χρειάζονται από τους μαθηματικούς λύτες. Ο αξιολογητής είναι σχεδιασμένος ώστε να παρέχει δύο κόστη: κόστος σχετικό με την ανάθεση εργασίας για να χρησιμοποιηθεί στην πρώτη φάση και κόστος σχετικό με την ανάθεση βάρδιας για να χρησιμοποιηθεί στη δεύτερη φάση. Ο λύτης σχεδιάζεται σε Java και χρησιμοποιείται η βιβλιοθήκη GNU Linear Programming Kit (GLPK) για την επίλυση των προβλημάτων IP. 6.3 Λύση του Προβλήματος Το ζητούμενο στα προβλήματα χρονοπρογραμματισμού είναι να είναι εφικτά, δηλαδή να ικανοποιούν όλους τους περιορισμούς. Στην περίπτωση που αναζητούνται εφικτές λύσεις χωρίς μεταξύ τους αξιολόγηση, το πρόβλημα χρονοπρογραμματισμού εκφυλλίζεται σε πρόβλημα αναζήτησης σε ένα τεράστιο χώρο λύσεων. Για να προσδιοριστεί η καταλληλότητα των λύσεων εισάγεται μία μεθοδολογία αξιολόγησης που ονομάζεται αντικειμενική συνάρτηση. Στο πρόβλημα χρονοπρογραμματισμού, η αντικειμενική συνάρτηση συνήθως εκφράζεται σαν συνάρτηση κόστους και μετατρέπει το πρόβλημα σε πρόβλημα βελτιστοποίησης. Στα πραγματικά προβλήματα χρονοπρογραμματισμού ανθρώπινων πόρων, το μέγεθος του χώρου λύσεων καθιστά αδύνατη την επίλυση με την προσέγγιση της παραγωγής όλων των δυνατών προγραμμάτων, υπολογισμού της συνάρτησης κόστους και επιλογής της καλύτερης λύσης. Ο χρόνος που απαιτείται για μια τέτοια προσέγγιση την καθιστά μη πρακτική και για τα περισσότερα προβλήματα ανέφικτη. Υπάρχουν διάφορες τεχνικές για την επίλυση προβλημάτων χρονοπρογραμματισμού αλλά δε φαίνεται να υπάρχει κάποια που να υπερτερεί έναντι των άλλων σε όλα τα προβλήματα. Ανάλογα με το μέγεθος του προβλήματος και τα χαρακτηριστικά του, υπάρχουν τεχνικές που οδηγούν στη βέλτιστη λύση και τεχνικές που οδηγούν σε μια ικανοποιητική λύση. Οι τεχνικές που δεν οδηγούν σε βέλτιστη λύση είναι διάφορες ευρετικές μέθοδοι. Οι ευρετικές μέθοδοι είναι μη αλγοριθμικές μέθοδοι επίλυσης προβλημάτων οι οποίες μέσα από μια σειρά 60

61 προσεγγίσεων καταλήγουν σε μια αποδεκτή λύση. Ωστόσο, δεν αποδεικνύεται ότι έχουν τη δυνατότητα να βρουν καλή λύση πού προσεγγίζει τη βέλτιστη ή απλά μια λύση. Οι πιο αξιόπιστες μέθοδοι για την επίλυση προβλημάτων χρονοπρογραμματισμού φαίνεται να είναι οι μεταευρετικές. Οι τεχνικές αυτές επιλέγουν με ευρετικό τρόπο την επόμενη κατάσταση στην οποία θα μεταβούν. Κινούνται σε γειτονιές λύσεων προσπαθώντας να βελτιστοποιήσουν τη συνάρτηση καταλληλότητας, με τον κίνδυνο όμως να παγιδευτούν σε τοπικά βέλτιστα. Ο τερματισμός της αναζήτησης ελέγχεται με διάφορους τρόπους. Συνήθως επιλέγεται ένα ή περισσότερα από τα ακόλουθα κριτήρια: μέγιστος αριθμός επαναλήψεων μέγιστος χρόνος εκτέλεσης μέγιστος αριθμός επαναλήψεων χωρίς βελτίωση σύγκριση της λύσης με ένα συγκεκριμένο όριο ποιότητας Στη συνέχεια, παρουσιάζεται ο τρόπος επίλυσης του προβλήματος χρονοπρογραμματισμού προσωπικού νοσοκομείου. Η διαδικασία επίλυσης βασίζεται στις διεργασίες κατασκευής και βελτίωσης λύσεων που υλοποιήθηκαν από τους ερευνητές του εργαστηρίου Συστημάτων Υπολογιστών του Πανεπιστημίου Πατρών Χρήστο Βαλουξή, Χρήστο Γκόγκο, Γιώργο Γούλα και Παναγιώτη Αλεφραγκή στα πλαίσια του διαγωνισμού ΙΝRC2010. Αρχικά, κατασκευάζεται ένας αριθμός λύσεων και επιλέγεται μία ως αρχική λύση. Στη συνέχεια, γίνεται προσπάθεια για την παραγωγή νέων βελτιωμένων λύσεων χρησιμοποιώντας ένα μηχανισμό για αποδοτικότερη εξερεύνηση του χώρου αναζήτησης. Συγκεκριμένα, χρησιμοποιείται η αρχική λύση για διαμελισμό του χώρου αναζήτησης και σε κάθε τμήμα του γίνεται προσπάθεια αναζήτησης βελτιωμένων λύσεων. Με το τέλος της αναζήτησης, επιλέγεται μια νέα λύση, από το σύνολο των λύσεων που έχουν παραχθεί, η οποία χρησιμοποιείται για νέο διαμελισμό του χώρου αναζήτησης. Η διαδικασία αυτή επαναλαμβάνεται και στο τέλος προκύπτει μια λύση ως αποτέλεσμα της συνολικής αναζήτησης. Η αναζήτηση ελέγχεται από μια διεργασία συντονισμού, τον διαχειριστή. Ο διαχειριστής εκτελεί μια ακολουθιακή μεταευρετική μέθοδο και αποστέλλει εργασίες με μεγάλο υπολογιστικό φόρτο στους εργάτες για να εκτελεστούν παράλληλα. Συγκεκριμένα, ο διαχειριστής επιλέγει μια λύση και με βάση τη λύση αυτή χωρίζει το πρόβλημα σε υποπροβλήματα βελτίωσης. Τα υποπροβλήματα αυτά είναι οι εργασίες που αποστέλλονται στους εργάτες για εκτέλεση. Αφού οι εργάτες ολοκληρώσουν τις εργασίες που τους έχουν ανατεθεί, επιστρέφουν τις λύσεις στον 61

62 διαχειριστή. Ο διαχειριστής τις συλλέγει και επιλέγει εκ νέου μια λύση ώστε να δημιουργήσει νέα υποπροβλήματα και να συνεχιστεί η διαδικασία. Οι εργάτες δεν έχουν δυνατότητα επικοινωνίας μεταξύ τους. Μπορούν να επικοινωνήσουν μόνο με τον διαχειριστή και μόνο μετά από πρωτοβουλία του. Όλοι οι εργάτες ξεκινούν από την ίδια αρχική λύση και προσπαθούν να αναζητήσουν μια καλύτερη εφαρμόζοντας τις ίδιες στρατηγικές και μεθόδους αναζήτησης. Ωστόσο, κάθε εργάτης εξερευνά διαφορετική περιοχή του χώρου αναζήτησης. Το γεγονός αυτό βοηθάει να ξεπεράσουμε το πρόβλημα της σύγκλισης σε μια συγκεκριμένη περιοχή του χώρου αναζήτησης που θα μπορούσε να προκύψει λόγω της εκκίνησης όλων των υποπροβλημάτων βελτίωσης από την ίδια αρχική λύση. Για την καλύτερη κατανόηση της διαδικασίας επίλυσης, περιγράφονται στη συνέχεια οι τέσσερις φάσεις που ακολουθούνται: Κατασκευή αρχικής λύσης Δημιουργία υποπροβλημάτων Βελτίωση λύσης Επιλογή λύσης Κατασκευή Αρχικής Λύσης Στη φάση κατασκευής της αρχικής λύσης ορίζονται οι ημέρες εργασίας και τα ρεπό όλων των νοσοκόμων για συγκεκριμένο χρονικό διάστημα. Στη συνέχεια, ορίζεται ένα πρόβλημα Προγραμματισμού Ακεραίων (Integer Programming- IP) και λύνεται για την πρώτη εβδομάδα του διαστήματος αυτού. Η διαμόρφωση του μοντέλου IP εξασφαλίζει την ικανοποίηση των αυστηρών περιορισμών που επιβάλλονται από το πρόβλημα. Γι αυτό το λόγο, ο συνολικός αριθμός νοσοκόμων που δουλεύουν σε κάθε μέρα πρέπει να ισούται με τη ζήτηση της ημέρας και κάθε νοσοκόμος δεν πρέπει να δουλεύει πάνω από μια βάρδια την ημέρα. Σε αυτή τη φάση, οι μόνοι χαλαροί περιορισμοί που λαμβάνονται υπόψη είναι αυτοί που εξαρτώνται από την ανάθεση εργάσιμης μέρας ή ρεπό και χρησιμοποιούνται στη συνάρτηση κόστους. Εξετάζονται όλοι οι πιθανοί συνδυασμοί ημέρας εργασίας/ρεπό για μια εβδομάδα για όλους τους νοσοκόμους(128 πιθανές τιμές για κάθε νοσοκόμο). Με αυτό τον τρόπο, παράγεται ένα εφικτό πρόγραμμα όλων των νοσοκόμων που καλύπτει την ημερήσια ζήτηση και ικανοποιεί όσο το δυνατόν περισσότερους χαλαρούς περιορισμούς. Παρόμοια προβλήματα λύνονται για όλες τις επόμενες εβδομάδες, μέχρι να καλυφθεί όλο το χρονικό διάστημα και να μη μπορούν να γίνουν περαιτέρω βελτιώσεις. 62

63 Η φάση κατασκευής αρχικής λύσης υλοποιείται από τον διαχειριστή και προκύπτει ένα ολοκληρωμένο πρόγραμμα του στιγμιοτύπου του προβλήματος που επιλύεται. Η λύση αυτή θα είναι η αρχική λύση της φάσης δημιουργίας υποπροβλημάτων που ακολουθεί Δημιουργία Υποπροβλημάτων Μετά την κατασκευή των αρχικών λύσεων και την επιλογή μιας λύσης, η λύση αυτή χρησιμοποιείται για τη δημιουργία ενός συνόλου υποπροβλημάτων. Τα υποπροβλήματα είναι ανεξάρτητα μεταξύ τους και μπορούν να εκτελεστούν παράλληλα. Η στρατηγική που χρησιμοποιείται για τη δημιουργία των υποπροβλημάτων έχει ως σκοπό την καλύτερη εξερεύνηση του χώρου αναζήτησης, μέσω της εξερεύνησης διαφορετικών περιοχών του. Συγκεκριμένα, σε κάθε υποπρόβλημα ο λύτης αναλαμβάνει να χρονοπρογραμματίσει διαφορετικά 7 ημέρες ενώ οι υπόλοιπες διατηρούνται όπως είναι στην αρχική λύση. Οι ημέρες αυτές είναι διαφορετικές σε κάθε υποπρόβλημα και δεν είναι συνεχόμενες. Με τον τρόπο αυτό, ο χώρος αναζήτησης διαιρείται σε πολλά διαφορετικά μικρότερα σύνολα. Τα σύνολα αυτά είναι κομματιασμένα αλλά όχι εξαντλητικά. Φυσικά τα υποπροβλήματα μπορεί να επικαλύπτονται, δηλαδή οι μεταευρετικές μέθοδοι δεν εξερευνούν εντελώς διαφορετικές περιοχές του χώρου αναζήτησης. Ωστόσο, οι κινήσεις που εκτελούνται σε ένα υποπρόβλημα ανήκουν αυστηρά στο αντίστοιχο υποσύνολο του χώρου αναζήτησης και απαγορεύονται κινήσεις οι οποίες περιλαμβάνουν λύσεις που δεν ανήκουν στα συγκεκριμένα υποσύνολα Βελτίωση Λύσης Η φάση βελτίωσης αποτελείται από τη βελτίωση των λύσεων που έχουν προκύψει από το στάδιο δημιουργίας υποπροβλημάτων. Στην ουσία, πρόκειται για μαζική βελτίωση της ίδιας λύσης, η οποία έχει υποστεί κάποιους περιορισμούς στη βελτίωση της. Οι διεργασίες βελτίωσης είναι ανεξάρτητες μεταξύ τους κι έτσι μπορούν να εκτελεστούν παράλληλα σε περιβάλλον Πλέγματος. Στη διαδικασία βελτιστοποίησης, κάθε ημέρα από αυτές που έχουν οριστεί χρονοπρογραμματίζεται ξεχωριστά. Δημιουργείται ένα πρόβλημα Προγραμματισμού 63

64 Ακεραίων για να αναθέσει τους νοσοκόμους σε συγκεκριμένες βάρδιες, όπως υπαγορεύεται από τη ζήτηση βάρδιας κάθε μέρας. Οι περιορισμοί του μοντέλου IP εξασφαλίζουν ότι όλοι οι διαθέσιμοι νοσοκόμοι θα ανατεθούν σε κατάλληλες βάρδιες. Το IP λαμβάνει υπόψη του μόνο τους χαλαρούς περιορισμούς που εξαρτώνται από την ανάθεση βάρδιας. Αυτοί οι περιορισμοί χρησιμοποιούνται στη συνάρτηση κόστους. Παρόμοια προβλήματα λύνονται για όλες τις μέρες που έχουν οριστεί από την φάση δημιουργίας υποπροβλημάτων, μέχρι να καλυφθεί η επιθυμητή περίοδος προγραμματισμού. Τα προβλήματα Προγραμματισμού Ακεραίων επιλύονται από το πακέτο GLPK. Το GNU Linear Programming Kit (GLPK) είναι ένα πακέτο λογισμικού προορισμένο για την επίλυση μεγάλης κλίμακας προβλημάτων γραμμικού προγραμματισμού (Linear Programming), προγραμματισμού ακεραίων (Integer Programming) και άλλων σχετικών προβλημάτων. Είναι ένα σύνολο ρουτινών γραμμένων σε ANSI C και οργανωμένων σε μορφή βιβλιοθήκης Επιλογή Λύσης Αφού ολοκληρωθεί η φάση της βελτίωσης των λύσεων, ο διαχειριστής, ο οποίος συντονίζει την όλη διαδικασία, λαμβάνει τις λύσεις που παρήγαγαν οι εργάτες και αποφασίζει ποια λύση θα κρατήσει. Η λύση αυτή χρησιμοποιείται σαν αρχική λύση για την επόμενη επανάληψη της διαδικασίας. Η μέθοδος που χρησιμοποιήθηκε για την επιλογή λύσης είναι το τουρνουά. O αλγόριθμος αυτός επιλέγει έναν αριθμό τυχαίων λύσεων από το σύνολο. Από τις λύσεις αυτές επιλέγεται η καλύτερη και χρησιμοποιείται για τη δημιουργία μιας νέας σειράς υποπροβλημάτων βελτίωσης. Η επανάληψη της διαδικασίας αυτής αυξάνει την ακρίβεια της αναζήτησης και επιτρέπει σε όσο το δυνατόν περισσότερες λύσεις να εξεταστούν. Η διαδικασία επαναλαμβάνεται μέχρι να ολοκληρωθεί ο διαθέσιμος χρόνος που έχει δοθεί στην εφαρμογή για την εκτέλεση της Μέθοδος Τοπικής Αναζήτησης Η διαδικασία επίλυσης που παρουσιάστηκε βασίζεται στη μέθοδο της τοπικής αναζήτησης. Η τοπική αναζήτηση είναι μια μεταευρετική μέθοδος για την επίλυση υπολογιστικά απαιτητικών προβλημάτων βελτιστοποίησης. Οι αλγόριθμοι τοπικής αναζήτησης λειτουργούν χρησιμοποιώντας μόνο μια τρέχουσα κατάσταση 64

65 και μετακινούνται μόνο σε γειτονικές της καταστάσεις. Αν και οι αλγόριθμοι αυτοί δεν είναι συστηματικοί, έχουν δύο σημαντικά πλεονεκτήματα. Χρησιμοποιούν πολύ λίγη μνήμη και μπορούν να βρίσκουν λογικές λύσεις σε μεγάλους χώρους καταστάσεων. Οι αλγόριθμοι τοπικής αναζήτησης είναι χρήσιμοι για την επίλυση προβλημάτων βελτιστοποίησης, στα οποία ο σκοπός είναι να βρεθεί η καλύτερη κατάσταση σύμφωνα με μία αντικειμενική συνάρτηση. Στους αλγορίθμους τοπικής αναζήτησης, χρησιμοποιούμε το τοπίο του χώρου καταστάσεων, όπως φαίνεται στο σχήμα 6.1. Ένα τοπίο έχει τοποθεσία (που ορίζεται από την κατάσταση) και υψόμετρο (που ορίζεται από την τιμή της ευρετικής συνάρτησης κόστους). Ο σκοπός είναι να βρεθεί η χαμηλότερη κοιλάδα, δηλ. ένα καθολικό ελάχιστο. Σχήμα 6.1 Τοπίο χώρου καταστάσεων 6.4 Εφαρμογή Παράλληλης Επεξεργασίας Η λειτουργία της εφαρμογής στηρίζεται στην υλοποίηση του κατανεμημένου προγραμματιστικού μοντέλου κύριου/υπηρέτη που παρουσιάστηκε στο κεφάλαιο 4. Υπάρχει ένας διαχειριστής ο οποίος εκτελεί την ακολουθιακή μεταευρετική μέθοδο ελέγχου της διαδικασίας και αποστέλλει εργασίες με μεγάλο υπολογιστικό φόρτο για να εκτελεστούν παράλληλα από τους υπηρέτες, δηλαδή τους κόμβους εργασίας του Grid. Συγκεκριμένα, ο διαχειριστής, δηλαδή η διεργασία συντονισμού, κατασκευάζει μια λύση η οποία χρησιμοποιείται για το διαμελισμό του χώρου αναζήτησης, παράγοντας μια σειρά από υποπροβλήματα βελτίωσης. Στη συνέχεια δημιουργεί έναν αριθμό από εργασίες και αποστέλλει τις εργασίες αυτές στους κόμβους εργάτες, οι οποίοι είναι αυτοί που θα εκτελέσουν τις παραπάνω εργασίες 65

66 και θα βελτιώσουν τη λύση. Για να μπορέσουν να εκτελέσουν τις εργασίες οι εργάτες θα πρέπει να έχουν στη διάθεση τους τη λύση η οποία θα βελτιωθεί, τις μεταβλητές που ορίζουν ποιες ημέρες θα βελτιωθούν, το seed και ένα αρχείο jar το οποίο πρέπει να εκτελεστεί για τη βελτίωση της λύσης. Το seed χρησιμοποιείται για την αρχικοποίηση της γεννήτριας ψευδοτυχαίων αριθμών που υλοποιείται στον εργάτη. Η γεννήτρια ψευδοτυχαίων αριθμών υλοποιείται σαν στιγμιότυπο της κλάσης Random της βιβλιοθήκης util της java. Αν δύο στιγμιότυπα της Random δημιουργηθούν με το ίδιο seed, θα παραχθούν πανομοιότυπες ακολουθίες αριθμών. Σε αυτή την περίπτωση, η αναζήτηση λύσεων μπορεί να οδηγηθεί σε κάποιο τοπικό ελάχιστο και να μην επιτρέψει την αναζήτηση σε όλες τις περιοχές του χώρου αναζήτησης. Γι αυτό, η γεννήτρια ψευδοτυχαίων αριθμών αρχικοποιείται με διαφορετικό seed σε κάθε εργάτη, ώστε να εξεταστούν όσο το δυνατόν περισσότερες λύσεις. Ενώ η εκτέλεση των εργασιών βρίσκεται σε εξέλιξη, ο διαχειριστής ελέγχει το taskpool μήπως έχει ολοκληρωθεί κάποια εργασία. Όταν κάποιος υπηρέτης ολοκληρώσει την εργασία που του έχει ανατεθεί, αυτή τοποθετείται στην ουρά τερματισμένων εργασιών του taskpool. Μόλις η διεργασία συντονισμού αντιληφθεί ότι η ουρά έχει εργασίες, συλλέγει τη λύση η οποία προέκυψε από την εκτέλεση της εργασίας του συγκεκριμένου κόμβου εργασίας. Όταν ολοκληρωθούν όλες οι εργασίες, ο διαχειριστής επιλέγει μια συγκεκριμένη λύση η οποία θα χρησιμοποιηθεί για νέο διαμελισμό του χώρου αναζήτησης και μια νέα σειρά εργασιών βελτίωσης λαμβάνει χώρα. Η διαδικασία αυτή συνεχίζεται μέχρι να ξεπεραστεί ένα συγκεκριμένο χρονικό διάστημα Εργασίες Οι κλάσεις που αντιπροσωπεύουν τις εργασίες τις οποίες αναθέτει προς εκτέλεση ο διαχειριστής στους εργάτες φαίνονται στο σχήμα 6.2. Συγκεκριμένα. κάθε εργασία κληρονομεί την κλάση Task. Κάθε στιγμιότυπο της κλάσης NrpTask που κληρονομεί την Task αντιπροσωπεύει μια εργασία που θα εκτελεστεί, που εκτελείται ή που έχει ολοκληρωθεί η εκτέλεσή της. Η κλάση NrpTask κληρονομεί όλα τα μέλη δεδομένων και όλες τις μεθόδους της Task και μέσω αυτών παρέχει πληροφορίες για την κατάσταση μιας εργασίας καθώς και μεθόδους για την προσπέλαση και τον ορισμό των πληροφοριών αυτών. Οι εργασίες χαρακτηρίζονται από ένα μοναδικό αριθμό (taskid) για να διευκολύνεται η διαχείρισή τους. Επίσης, περιλαμβάνουν σαν μέλη δεδομένων τις 66

67 παραμέτρους (parameters) και το αποτέλεσμα (result). Η κλάση NrpTask χρησιμοποιείται για τη δημιουργία μιας εργασίας βελτίωσης λύσης και έχει δύο επιπλέον μέλη δεδομένων: τη λύση η οποία πρόκειται να βελτιωθεί (Schedule) και το seed. Στην κλάση αυτή το αποτέλεσμα αντιστοιχίζεται στο κόστος της εργασίας και οι παράμετροι αντιστοιχίζονται σε μεταβλητές που υποδεικνύουν ποιες μέρες θα βελτιστοποιηθούν. Σχήμα 6.2 Κλάσεις εργασιών 67

68 6.4.2 Εργάτες Οι κλάσεις που χρησιμοποιούνται για την εκτέλεση των εργασιών που στέλνει ο διαχειριστής στους εργάτες φαίνονται στο σχήμα 6.3. Οι κλάσεις αυτές περιέχονται στο αρχείο jar που μεταφέρεται σε κάθε κόμβο εργασίας και το οποίο χρησιμοποιεί ο διαχειριστής για τη βελτίωση μιας λύσης. Η κλάση Worker δημιουργεί ένα στιγμιότυπο της NrpWorker η οποία κληρονομεί τις μεθόδους της WorkerTaskWrapper. Η εικόνα 6.4 δείχνει το διάγραμμα ροής του εργάτη. Σχήμα 6.3 Κλάσεις κόμβων εργασίας Η NrpWorker χρησιμοποιείται για τη βελτίωση μιας λύσης. Παραλαμβάνει την εργασία από το taskpool, η οποία περιλαμβάνει την αρχική λύση, τις προς βελτίωση ημέρες και το seed. Στη συνέχεια, βελτιστοποιεί την αρχική λύση και την επιστρέφει στο Taskpool μαζί με το νέο κόστος που επιτεύχθηκε. Το σχήμα 5.4 δείχνει το διάγραμμα ροής του εργάτη 68

Εργαστήριο Δικτύων Υπολογιστών. Εισαγωγή στις τεχνολογίες υπολογιστικού πλέγματος (Grid Computing)

Εργαστήριο Δικτύων Υπολογιστών. Εισαγωγή στις τεχνολογίες υπολογιστικού πλέγματος (Grid Computing) Εργαστήριο Δικτύων Υπολογιστών Εισαγωγή στις τεχνολογίες υπολογιστικού πλέγματος (Grid Computing) Τι είναι το Grid? (1) To World Wide Web παρέχει πρόσβαση σε πληροφορίες αποθηκευμένες σε εκατομμύρια διαφορετικές

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

HY555 Παράλληλα Συστήματα και Grids Χειμερινό εξάμηνο 2007 Άσκηση 3 Εξοικείωση με το EGEE GRID Environment

HY555 Παράλληλα Συστήματα και Grids Χειμερινό εξάμηνο 2007 Άσκηση 3 Εξοικείωση με το EGEE GRID Environment HY555 Παράλληλα Συστήματα και Grids Χειμερινό εξάμηνο 2007 Άσκηση 3 Εξοικείωση με το EGEE GRID Environment Σκοπός της άσκησης αυτής είναι η εξοικείωση με ένα πραγματικό περιβάλλον Grids. Θα χρησιμοποιήσετε

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

Υπηρεσιοστρεφής Αρχιτεκτονική SOA (Service Oriented Architecture)

Υπηρεσιοστρεφής Αρχιτεκτονική SOA (Service Oriented Architecture) Υπηρεσιοστρεφής Αρχιτεκτονική SOA (Service Oriented Architecture) Χρήστος Ηλιούδης Πλεονεκτήματα των Υπηρεσιών Ιστού Διαλειτουργικότητα: Η χαλαρή σύζευξή τους οδηγεί στην ανάπτυξη ευέλικτου λογισμικού

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

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

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

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

Το Μέλλον για τα Συστήματα Διαχείρισης Ακτινολογικής Εικόνας (PACS)

Το Μέλλον για τα Συστήματα Διαχείρισης Ακτινολογικής Εικόνας (PACS) Το Μέλλον για τα Συστήματα Διαχείρισης Ακτινολογικής Εικόνας (PACS) Ελένη Καλδούδη Τμήμα Ιατρικής Δημοκρίτειο Πανεπιστήμιο Θράκης 2003 θέματα το χθές, το σήμερα και το αύριο για τα PACS απαιτήσεις από

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Θέματα

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

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

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

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

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

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

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

Εργαλεία ανάπτυξης εφαρμογών internet Ι

Εργαλεία ανάπτυξης εφαρμογών internet Ι IEK ΟΑΕΔ ΚΑΛΑΜΑΤΑΣ ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΟΦΟΡΙΚΗΣ Εργαλεία ανάπτυξης εφαρμογών internet Ι Διδάσκουσα: Κανελλοπούλου Χριστίνα ΠΕ19 Πληροφορικής 4 φάσεις διαδικτυακών εφαρμογών 1.Εφαρμογές στατικής πληροφόρησης

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

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 10η Διάλεξη: Web Services

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 10η Διάλεξη: Web Services Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 10η Διάλεξη: Web Services Δρ. Απόστολος Γκάμας Λέκτορας (407/80) gkamas@uop.gr Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 1 Ορισμός των Web Services

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

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

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

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

Σχεδίαση και Ανάπτυξη Ιστότοπων

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

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

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

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

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

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

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

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

Κεφάλαιο 4 Λογισμικό συστήματος. Εφαρμογές Πληροφορικής Κεφ.4 Καραμαούνας Πολύκαρπος 1

Κεφάλαιο 4 Λογισμικό συστήματος. Εφαρμογές Πληροφορικής Κεφ.4 Καραμαούνας Πολύκαρπος 1 Κεφάλαιο 4 Λογισμικό συστήματος Καραμαούνας Πολύκαρπος 1 4.1 Λογισμικό συστήματος (application software) Καραμαούνας Πολύκαρπος 2 Λογισμικό εφαρμογών (application software): προγράμματα για την αντιμετώπιση

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

Τεχνικές Προδιαγραφές ιαλειτουργικότητας

Τεχνικές Προδιαγραφές ιαλειτουργικότητας ΤΕΧΝΙΚΕΣ ΠΡΟ ΙΑΓΡΑΦΕΣ ΕΙΓΜΑ ΠΑΡΑΡΤΗΜΑΤΟΣ ΙΑΓΩΝΙΣΜΟΥ ΚΟΙΝΟΤΙΚΟ ΠΛΑΙΣΙΟ ΣΤΗΡΙΞΗΣ 2000-2006 ΕΠΙΧΕΙΡΗΣΙΑΚΟ ΠΡΟΓΡΑΜΜΑ «Κοινωνία της Πληροφορίας» http://www.infosociety.gr Μάιος 2003 Τεχνικές Προδιαγραφές ιαλειτουργικότητας

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

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

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

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

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

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

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

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

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

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

Hands-on LCG. Piraeus, March 30 th -31 st, 2006. Fotis Georgatos <gef@grnet.gr> Grid Technologies Trainer, GRNET

Hands-on LCG. Piraeus, March 30 th -31 st, 2006. Fotis Georgatos <gef@grnet.gr> Grid Technologies Trainer, GRNET Hands-on LCG Fotis Georgatos Grid Technologies Trainer, GRNET EGEE is a project funded by the European Union Μία Εφαρμογή σε έναν Υπολογιστή Μία Εφαρμογή στο Πλέγμα Δομή Εφαρμογής στο Πλέγμα

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

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

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

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

6.2 Υπηρεσίες Διαδικτύου

6.2 Υπηρεσίες Διαδικτύου 6.2 Υπηρεσίες Διαδικτύου 1 / 34 Όλες οι υπηρεσίες στο Διαδίκτυο, όπως και πολλές εφαρμογές λογισμικού, στηρίζονται στο μοντέλο Πελάτη Εξυπηρετητή. 2 / 34 Σύμφωνα με αυτό το μοντέλο ο Εξυπηρετητής οργανώνει,

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

Κεφάλαιο 3.1: Λειτουργικά Συστήματα. Επιστήμη ΗΥ Κεφ. 3.1 Καραμαούνας Πολύκαρπος

Κεφάλαιο 3.1: Λειτουργικά Συστήματα. Επιστήμη ΗΥ Κεφ. 3.1 Καραμαούνας Πολύκαρπος Κεφάλαιο 3.1: Λειτουργικά Συστήματα 1 3.1.1 Λογισμικό και Υπολογιστικό Σύστημα Ένα σύγχρονο υπολογιστικό σύστημα αποτελείται από: το υλικό: τα ηλεκτρονικά μέρη του υπολογιστή και το λογισμικό: το σύνολο

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

Laboratory: Hands-On, LCG & EGEE Grids

Laboratory: Hands-On, LCG & EGEE Grids Laboratory: Hands-On, LCG & EGEE Grids Fotis Georgatos Grid Technologies Trainer, GRNET University of Athens, October 23 rd -24 th, 2006 www.eu-egee.org Μία Εφαρμογή σε έναν Υπολογιστή Μία

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

Τι είναι ένα σύστημα διαχείρισης περιεχομένου; δυναμικό περιεχόμενο

Τι είναι ένα σύστημα διαχείρισης περιεχομένου; δυναμικό περιεχόμενο Τι είναι ένα σύστημα διαχείρισης περιεχομένου; Παρά την μεγάλη εξάπλωση του διαδικτύου και τον ολοένα αυξανόμενο αριθμό ιστοσελίδων, πολλές εταιρείες ή χρήστες δεν είναι εξοικειωμένοι με την τεχνολογία

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

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

Αρχιτεκτονική Υπολογιστών Αρχιτεκτονική Υπολογιστών Παραλληλισμός Βασικές Πηγές: Αρχιτεκτονική Υπολογιστών: μια Δομημένη Προσέγγιση, Α. Tanenbaum, Vrije Universiteit, Amsterdam. Computer Architecture and Engineering, K. Asanovic,

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

* Enterprise Resource Planning ** Customer Relationship Management

* Enterprise Resource Planning ** Customer Relationship Management Υπηρεσιοστρεφείς Επιχειρησιακές ιαδικασίες ιαµοιρασµός και Επαναχρησιµοποίηση Αποτελούν βασικές απαιτήσειςκατά το σχεδιασµό και την ολοκλήρωση (integration) επιχειρησιακών διαδικασιών ιαµοιρασµός: πολλοί

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

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών Οργάνωση Υπολογιστών Υπολογιστικό Σύστημα Λειτουργικό Σύστημα Αποτελεί τη διασύνδεση μεταξύ του υλικού ενός υπολογιστή και του χρήστη (προγραμμάτων ή ανθρώπων). Είναι ένα πρόγραμμα (ή ένα σύνολο προγραμμάτων)

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

Ανάπτυξη πλήρους διαδικτυακής e-commerce εφαρμογής με χρήση του CMS WordPress

Ανάπτυξη πλήρους διαδικτυακής e-commerce εφαρμογής με χρήση του CMS WordPress ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Ανάπτυξη πλήρους διαδικτυακής e-commerce εφαρμογής με χρήση του CMS WordPress ΚΟΤΣΟΓΙΑΝΝΙΔΗΣ ΛΑΖΑΡΟΣ Επιβλέπων καθηγητής Σφέτσος Παναγιώτης ΗΛΕΚΤΡΟΝΙΚΟ ΕΜΠΟΡΙΟ Ως Ηλεκτρονικό Εμπόριο ή

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

Περίληψη Λαμπρόπουλος

Περίληψη Λαμπρόπουλος Περίληψη Λαμπρόπουλος 1. Αντικείμενο και Περιγραφή της Διατριβής H διδακτορική διατριβή με τίτλο «Σχεδιασμός και υλοποίηση συστήματος διαχείρισης και ενοποίησης διαφορετικών ταυτοτήτων χρηστών σε δίκτυα

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

Ανάπτυξη Δικτυακής Εφαρμογής Διάχυσης και Ανάλυσης Γεωχωρικών Δεδομένων και Πληροφοριών

Ανάπτυξη Δικτυακής Εφαρμογής Διάχυσης και Ανάλυσης Γεωχωρικών Δεδομένων και Πληροφοριών Ανάπτυξη Δικτυακής Εφαρμογής Διάχυσης και Ανάλυσης Γεωχωρικών Δεδομένων και Πληροφοριών Λοΐσιος ΔΗΜΗΤΡΙΟΣ (Αντισυνταγματάρχης) Αγρονόμος Τοπογράφος Μηχανικός ΕΜΠ, MSc στη Γεωπληροφορική Διευθυντής Διεύθυνσης

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

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

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

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

Αξιολόγηση Υπηρεσιών ιαδικτύου µέσω Περιπτώσεων Μελέτης

Αξιολόγηση Υπηρεσιών ιαδικτύου µέσω Περιπτώσεων Μελέτης Αξιολόγηση Υπηρεσιών ιαδικτύου µέσω Περιπτώσεων Μελέτης Κωστής Αϊβαλής Μηχανικός Πληροφορικής TU-Berlin 2/5/2008 ΕΑΠ-ΓΤΠ61-Κωστής Αϊβαλής 1 Εισαγωγή Η ταχύτητα επεξεργασίας των εφαρµογών διαδικτυακών υπηρεσιών

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

Βασικές έννοιες. Κατανεμημένα Συστήματα 1

Βασικές έννοιες. Κατανεμημένα Συστήματα 1 Βασικές έννοιες Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Ορισμός κατανεμημένου συστήματος Ένα σύστημα από ξεχωριστές ενεργές οντότητες (ονομάζονται «κόμβοι» ή «διεργασίες») που εκτελούνται ταυτόχρονα/ανεξάρτητα

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

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

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

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

Πολυπύρηνοι επεξεργαστές Multicore processors

Πολυπύρηνοι επεξεργαστές Multicore processors Πολυπύρηνοι επεξεργαστές Multicore processors 1 Μετάβαση στους πολυπύρηνους(1) Απόδοση των µονοεπεξεργαστών 25% ετήσια βελτίωση της απόδοσης από το 1978 έως το 1986 Κυρίως από την εξέλιξη της τεχνολογίας

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

Διαδίκτυο: δίκτυο διασυνδεμένων δικτύων Ξεκίνησε ως ένα μικρό κλειστό στρατιωτικό δίκτυο, απόρροια του Ψυχρού Πολέμου μεταξύ ΗΠΑ και ΕΣΣΔ.

Διαδίκτυο: δίκτυο διασυνδεμένων δικτύων Ξεκίνησε ως ένα μικρό κλειστό στρατιωτικό δίκτυο, απόρροια του Ψυχρού Πολέμου μεταξύ ΗΠΑ και ΕΣΣΔ. ΚΕΦΑΛΑΙΟ 9 Διαδίκτυο: δίκτυο διασυνδεμένων δικτύων Ξεκίνησε ως ένα μικρό κλειστό στρατιωτικό δίκτυο, απόρροια του Ψυχρού Πολέμου μεταξύ ΗΠΑ και ΕΣΣΔ. Το 1966 αρχίζει ο σχεδιασμός του ARPANET, του πρώτου

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

PROXY SERVER. Άριστη πύλη διαχωρισμού μεταξύ του εσωτερικού δικτύου και του Internet.

PROXY SERVER. Άριστη πύλη διαχωρισμού μεταξύ του εσωτερικού δικτύου και του Internet. PROXY SERVER Άριστη πύλη διαχωρισμού μεταξύ του εσωτερικού δικτύου και του Internet. Αποτελεσματικό εργαλείο για την απόκρυψη των εσωτερικών λεπτομερειών και διευθύνσεων IP του δικτύου. Αυξάνει τη συνολική

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

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

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

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

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

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

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

Δίκτυα Υπολογιστών I

Δίκτυα Υπολογιστών I Δίκτυα Υπολογιστών I Σχεδίαση και Αρχιτεκτονική Δικτύων Ευάγγελος Παπαπέτρου Τμ. Μηχ. Η/Υ & Πληροφορικής, Παν. Ιωαννίνων Ε.Παπαπέτρου (Τμ.Μηχ. Η/Υ & Πληροφορικής) MYY703: Δίκτυα Υπολογιστών I 1 / 19 Διάρθρωση

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

Οργάνωση ενός σύγχρονου Υπολογιστικού Συστήματος ή Ηλεκτρονικού Υπολογιστή (Η/Υ) Τα σύγχρονα συστήματα Η/Υ έχουν την παρακάτω οργάνωση:

Οργάνωση ενός σύγχρονου Υπολογιστικού Συστήματος ή Ηλεκτρονικού Υπολογιστή (Η/Υ) Τα σύγχρονα συστήματα Η/Υ έχουν την παρακάτω οργάνωση: Οργάνωση ενός σύγχρονου Υπολογιστικού Συστήματος ή Ηλεκτρονικού Υπολογιστή (Η/Υ) Τα σύγχρονα συστήματα Η/Υ έχουν την παρακάτω οργάνωση: Page 1 Χρήστης Εφαρμογή Λειτουργικό Σύστημα Υλικό Γνωστά Λειτουργικά

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

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

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

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

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

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

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

Προγραμματισμός και Συστήματα στον Παγκόσμιο Ιστό Ενότητα 9: Web Services. Καθ. Ιωάννης Γαροφαλάκης Πολυτεχνική Σχολή Μηχανικών Η/Υ & Πληροφορικής

Προγραμματισμός και Συστήματα στον Παγκόσμιο Ιστό Ενότητα 9: Web Services. Καθ. Ιωάννης Γαροφαλάκης Πολυτεχνική Σχολή Μηχανικών Η/Υ & Πληροφορικής Προγραμματισμός και Συστήματα στον Παγκόσμιο Ιστό Ενότητα 9: Web Services Καθ. Ιωάννης Γαροφαλάκης Πολυτεχνική Σχολή Μηχανικών Η/Υ & Πληροφορικής Σκοποί ενότητας Σκοπός της παρούσας ενότητας είναι να εξοικειωθούν

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

Δίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας

Δίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας Δίκτυα Υπολογιστών Firewalls Χάρης Μανιφάβας 1 Επικοινωνία Βασίζεται στη μεταβίβαση μηνυμάτων (λόγω απουσίας διαμοιραζόμενης μνήμης) Απαιτείται συμφωνία φόρμας μηνυμάτων Πρότυπο Στόχος τυποποίησης = Συνεργασία

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

Σκοπός Μαθήματος. Λειτουργικά Συστήματα Η/Υ. Γενικές Πληροφορίες. Στόχοι Μαθήματος ΚΕΦΑΛΑΙΟ 1 - ΕΙΣΑΓΩΓΗ. Θεωρία: Εργαστήριο: Κεφάλαιο 1 «Εισαγωγή»

Σκοπός Μαθήματος. Λειτουργικά Συστήματα Η/Υ. Γενικές Πληροφορίες. Στόχοι Μαθήματος ΚΕΦΑΛΑΙΟ 1 - ΕΙΣΑΓΩΓΗ. Θεωρία: Εργαστήριο: Κεφάλαιο 1 «Εισαγωγή» Σκοπός Μαθήματος Λειτουργικά Συστήματα Η/Υ Θεωρία: Βασικές έννοιες των λειτουργικών συστημάτων Βασικές αρχές σχεδιασμού τους Κεφάλαιο 1 «Εισαγωγή» Εργαστήριο: Πρακτική εξάσκηση στη χρήση των λειτουργικών

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

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

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

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

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420) Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420) Διάλεξη 8: Σχεδίαση Συστήματος Σχεδίαση Συστήματος 2 Διεργασία μετατροπής του προβλήματος σε λύση. Από το Τί στο Πώς. Σχέδιο: Λεπτομερής περιγραφή της λύσης. Λύση:

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

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

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

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

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

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

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

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

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

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

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 αποτελεί το τεχνολογικό εργαλείο για την υλοποίηση ενιαίας, πελατοκεντρικής επιχειρηματικής

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

Λιβανός Γιώργος Εξάμηνο 2017Β

Λιβανός Γιώργος Εξάμηνο 2017Β Λιβανός Γιώργος Εξάμηνο 2017Β Υπολογιστικό σύστημα Υλικό (hardware) Λογισμικό (Software) Ολοκληρωμένα κυκλώματα, δίσκοι, οθόνη, κλπ. Λογισμικό συστήματος Προγράμματα εφαρμογών Χρειάζονται ένα συντονιστή!!!

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

Μετακινούμενος Κώδικας (Mobile Code) Κατανεμημένα Συστήματα 1

Μετακινούμενος Κώδικας (Mobile Code) Κατανεμημένα Συστήματα 1 Μετακινούμενος Κώδικας (Mobile Code) Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Γιατί μετακινούμενος κώδικας; Ευελιξία διαχείρισης μετακίνηση υπηρεσιών του συστήματος Μείωση επικοινωνίας / τοπικής επεξεργασίας

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

SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ Κεφάλαιο 4 SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ 1 4.1 ΕΙΣΑΓΩΓΗ...3 4.2 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ...3 4.2.1 Η ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΗΣ ΔΙΑΧΕΙΡΙΣΗΣ ΔΙΚΤΥΟΥ...3 4.2.1.1 ΣΤΑΘΜΟΣ ΔΙΑΧΕΙΡΙΣΗΣ ΔΙΚΤΥΟΥ...4 4.2.1.2 ΔΙΑΧΕΙΡΙΖΟΜΕΝΟΙ

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

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

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

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

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

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

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

Τεχνολογικά Επιτεύγµατα. Πλεονεκτήµατα. Ορισµός Κατανεµηµένου Συστήµατος. Μειονεκτήµατα. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο 2005-06

Τεχνολογικά Επιτεύγµατα. Πλεονεκτήµατα. Ορισµός Κατανεµηµένου Συστήµατος. Μειονεκτήµατα. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο 2005-06 Τεχνολογικά Επιτεύγµατα Ε-03: Λειτουργικά Συστήµατα ΙΙ Εαρινό Εξάµηνο 2005-06 Ανάπτυξη ισχυρών µικροεπεξεργαστών ηµιουργία τοπικών δικτύων υψηλών ταχυτήτων «Εισαγωγή στα Κατανεµηµένα Λειτουργικά Συστήµατα»

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

Σύστημα Ηλεκτρονικού Πρωτοκόλλου. Σχεδιασμός Υποσυστημάτων

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

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

Βασικές έννοιες. Κατανεμημένα Συστήματα 1

Βασικές έννοιες. Κατανεμημένα Συστήματα 1 Βασικές έννοιες Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Ορισμός κατανεμημένου συστήματος Ένα σύστημα από ξεχωριστές ενεργές οντότητες (ονομάζονται «κόμβοι» ή «διεργασίες») που εκτελούνται ταυτόχρονα/ανεξάρτητα

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

WIRELESS SENSOR NETWORKS (WSN)

WIRELESS SENSOR NETWORKS (WSN) WIRELESS SENSOR NETWORKS (WSN) Δρ. Ιωάννης Παναγόπουλος Εργαστήριο Υπολογιστικών Συστημάτων Καθ. Γεώργιος Παπακωνσταντίνου Αθήνα 2008 ΕΙΣΑΓΩΓΗ ΣΤΑ WSN Σε συγκεκριμένες εφαρμογές, επιθυμείται η μέτρηση

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

a. b. c. d ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

a. b. c. d ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 7.7 Πρωτόκολλο Μέχρι τώρα έχουμε αναφέρει, ότι, για να μεταδοθούν τα αυτοδύναμα πακέτα στο φυσικό μέσο, πρέπει αυτά να μετατραπούν σε πακέτα φυσικού δικτύου (π.χ. Ethernet). Όμως, δεν έχει ειπωθεί τίποτε

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

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

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

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

Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων. PGP (Pretty Good Privacy)

Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων. PGP (Pretty Good Privacy) Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων PGP (Pretty Good Privacy) Εισαγωγή Το λογισμικό Pretty Good Privacy (PGP), το οποίο σχεδιάστηκε από τον Phill Zimmerman, είναι ένα λογισμικό κρυπτογράφησης

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

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

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

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

Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών

Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών Χάρης Μανιφάβας Τμήμα Εφ. Πληροφορικής & Πολυμέσων ΤΕΙ Κρήτης Επικοινωνία -RPC 1 Υλοποίηση RPC Προκειμένου να επιτευχθεί διαφάνεια στην κλήση RPC,

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

Όμως πώς θα ορίζαμε την έννοια πληροφορία; Πώς την αντιλαμβανόμαστε;

Όμως πώς θα ορίζαμε την έννοια πληροφορία; Πώς την αντιλαμβανόμαστε; 1.1 ΕΙΣΑΓΩΓΗ Η πληροφορία αποτελεί το βασικό εργαλείο άσκησης της ιατρικής επιστήμης. Η διάγνωση, η θεραπεία, η πρόληψη και η διοίκηση της υγείας βασίζονται στην απόκτηση, διαχείριση και επεξεργασία της

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

ΤΕΙ ΗΠΕΙΡΟΥ Τμήμα Τηλεπληροφορικής & Διοίκησης

ΤΕΙ ΗΠΕΙΡΟΥ Τμήμα Τηλεπληροφορικής & Διοίκησης ΤΕΙ ΗΠΕΙΡΟΥ Τμήμα Τηλεπληροφορικής & Διοίκησης ΕΓΚΑΤΑΣΤΑΣΗ & ΠΑΡΑΜΕΤΡΟΠΟΙΗΣΗ INTERNET INFORMATION SERVER (IIS) ΓΙΑ ΥΛΟΠΟΙΗΣΗ ΥΠΗΡΕΣΙΩΝ ΔΙΑΔΙΚΤΥΟΥ (WEB SERVICES) ΣΠΟΥΔΑΣΤΡΙΑ:Μπάρδα Μαρία ΕΙΣΗΓΗΤΗΣ: Τσιαντής

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

Σχολή Προγραµµατιστών Ηλεκτρονικών Υπολογιστών (ΣΠΗΥ) Τµήµα Προγραµµατιστών Σειρά 112

Σχολή Προγραµµατιστών Ηλεκτρονικών Υπολογιστών (ΣΠΗΥ) Τµήµα Προγραµµατιστών Σειρά 112 Σχολή Προγραµµατιστών Ηλεκτρονικών Υπολογιστών (ΣΠΗΥ) Τµήµα Προγραµµατιστών Σειρά 112 Πλωτάρχης Γ. ΚΑΤΣΗΣ ΠΝ Γιατί χρησιµοποιούµε δίκτυα? Δίκτυο Σύνολο Η/Υ και συσκευών Συνδεδεµένα µε κάποιο µέσο Stand-alone

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

ΚΕΦΑΛΑΙΟ 1: Τα είδη των Δικτύων Εισαγωγή

ΚΕΦΑΛΑΙΟ 1: Τα είδη των Δικτύων Εισαγωγή ΚΕΦΑΛΑΙΟ 1: Τα είδη των Δικτύων 1.1. Εισαγωγή Γενικότερα δεν υπάρχει κάποια ταξινόμηση των πιθανών δικτύων κάτω από την οποία να ταιριάζουν όλα τα δίκτυα. Παρόλα αυτά η ταξινόμηση τους είθισται να γίνεται

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

Κεφάλαιο 7. ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης

Κεφάλαιο 7. ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης Κεφάλαιο 7 1. Σε τι διαφέρει ο Η/Υ από τις υπόλοιπες ηλεκτρικές και ηλεκτρονικές συσκευές; Που οφείλεται η δυνατότητά του να κάνει τόσο διαφορετικές

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

Κάντε κλικ για έναρξη

Κάντε κλικ για έναρξη Σημειώσεις : Χρήστος Μουρατίδης Κάντε κλικ για έναρξη Ορισμός Δίκτυο Υπολογιστών = Mία ομάδα από 2 ή περισσότερους υπολογιστές που είναι συνδεδεμένοι μεταξύ τους. Ο κύριος σκοπός είναι να ανταλλάσσουν

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

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

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

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

Hands-On LCG & EGEE Grids

Hands-On LCG & EGEE Grids Hands-On LCG & EGEE Grids Fotis Georgatos Grid Technologies Trainer, GRNET Chania, September 18 th -19 th, 2006 www.eu-egee.org Μία Εφαρμογή σε έναν Υπολογιστή Μία Εφαρμογή στο Πλέγμα Δομή

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

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

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

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

Αναφορά εργασιών για το τρίμηνο Μάρτιος 2013 Μάιος 2013 Όνομα : Παπαχριστόπουλος Λεωνίδας

Αναφορά εργασιών για το τρίμηνο Μάρτιος 2013 Μάιος 2013 Όνομα : Παπαχριστόπουλος Λεωνίδας Στο πλαίσιο της πράξης «Αναβάθμιση και Εμπλουτισμός των Ψηφιακών Υπηρεσιών της Βιβλιοθήκης του Παντείου Πανεπιστημίου». Η Πράξη συγχρηματοδοτείται από το Ευρωπαϊκό Ταμείο Περιφερειακής Ανάπτυξης (ΕΤΠΑ).

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

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM). Μνήμες Ένα από τα βασικά πλεονεκτήματα των ψηφιακών συστημάτων σε σχέση με τα αναλογικά, είναι η ευκολία αποθήκευσης μεγάλων ποσοτήτων πληροφοριών, είτε προσωρινά είτε μόνιμα Οι πληροφορίες αποθηκεύονται

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

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

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΕΙΣΑΓΩΓΗ

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΕΙΣΑΓΩΓΗ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Διάλεξη 1 ΕΙΣΑΓΩΓΗ Οι διαφάνειες έχουν καθαρά επικουρικό χαρακτήρα στην παρουσίαση των διαλέξεων του μαθήματος. Δεν αντικαθιστούν σε καμία περίπτωση την παρακάτω βιβλιογραφία που

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

Κατανεμημένα Συστήματα. Ενότητα # 11: Μηνυματοστρεφές ενδιάμεσο λογισμικό Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Κατανεμημένα Συστήματα. Ενότητα # 11: Μηνυματοστρεφές ενδιάμεσο λογισμικό Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Κατανεμημένα Συστήματα Ενότητα # 11: Μηνυματοστρεφές ενδιάμεσο λογισμικό Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΕΡΓΑΛΕΙΑ ΓΙΑ ΤΟ ΔΙΑΔΙΚΤΥΟ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΕΡΓΑΛΕΙΑ ΓΙΑ ΤΟ ΔΙΑΔΙΚΤΥΟ Κεφάλαιο 2. Το περιβάλλον του παγκόσμιου Ιστού Επιμέλεια: Καραγιάννης Σπύρος Καθηγητής ΠΕ19 Πλεονεκτήματα παγκόσμιου Ιστού Εξυπηρετητής Ιστού & Ιστοσελίδες Κύριες

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

ΚΕΦΑΛΑΙΟ 17: Web Services Εισαγωγή

ΚΕΦΑΛΑΙΟ 17: Web Services Εισαγωγή ΚΕΦΑΛΑΙΟ 17: Web Services 17.1. Εισαγωγή Με τον όρο WebService αναφερόμαστε σε ένα σύστημα λογισμικού το οποίο σχεδιάστηκε με τρόπο τέτοιο ώστε να υποστηρίζει την ανεμπόδιστη συνεργασία δύο μηχανών μέσω

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

Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ

Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ http://leitourgika-systhmata-epal-b.ggia.info/ Σύγχρονο Λειτουργικό Σύστημα - ΛΣ Λειτουργικό Σύστημα:

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

Υποδομή ΤΠ: Υλικό και λογισμικό

Υποδομή ΤΠ: Υλικό και λογισμικό Κεφάλαιο 5 Υποδομή ΤΠ: Υλικό και λογισμικό 5.1 ΜΑΘΗΣΙΑΚΟΙ ΣΤΟΧΟΙ Ποια είναι τα στοιχεία της υποδομής τεχνολογίας πληροφοριών (ΤΠ); Ποιες είναι οι βασικές τεχνολογίες υλικού υπολογιστών, αποθήκευσης δεδομένων,

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

1.2.2 Το μοντέλο δικτύωσης TCP/IP 1 / 26

1.2.2 Το μοντέλο δικτύωσης TCP/IP 1 / 26 1.2.2 Το μοντέλο δικτύωσης TCP/IP 1 / 26 Το δίκτυο ARPANET ήταν ένα δίκτυο μεταγωγής πακέτων που χρηματοδοτήθηκε από το υπουργείο άμυνας των Η.Π.Α. στα τέλη της δεκαετίας του '60. 2 / 26 Από την αρχή κύριος

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

Τεχνολογίες Παγκόσμιου Ιστού. 1η διάλεξη

Τεχνολογίες Παγκόσμιου Ιστού. 1η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού 1η διάλεξη Χαρακτηριστικά Μαθήματος Μάθημα προγραμματισμού (και όχι μόνον) Μπορεί να εξελιχθεί σε εφιάλτη αν δεν έχετε καλή γνώση και αρκετή εμπειρία προγραμματισμού (Java)

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

Η Διαλειτουργικότητα στην Υπηρεσία του Πολίτη

Η Διαλειτουργικότητα στην Υπηρεσία του Πολίτη Η Διαλειτουργικότητα στην Υπηρεσία του Πολίτη Μαρίκα Λάμπρου Διευθύνουσα Σύμβουλος SingularLogic Integrator ICT Forum Περιεχόμενα Ορισμός Διαλειτουργικότητας Στόχοι Διαλειτουργικότητας Πρότυπο Ηλεκτρονικό

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

1. ΑΡΧΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

1. ΑΡΧΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 12 Σχεδιασμός Ανάπτυξη Λειτουργία Π.Σ. 1. ΑΡΧΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 1.1 Δυνατότητες Λειτουργικών Συστημάτων 1.1.1 Εισαγωγή Ο όρος Λειτουργικό Σύστημα (Operating System), εκφράζει το σύνολο των προγραμμάτων

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

ΑΝΑΚΟΙΝΩΣΗ ΔΙΑΔΙΚΑΣΙΑΣ ΑΠΕΥΘΕΙΑΣ ΑΝΑΘΕΣΗΣ. Αριθμ. Πρωτ.: /2017 Ο ΕΙΔΙΚΟΣ ΛΟΓΑΡΙΑΣΜΟΣ ΚΟΝΔΥΛΙΩΝ ΕΡΕΥΝΑΣ

ΑΝΑΚΟΙΝΩΣΗ ΔΙΑΔΙΚΑΣΙΑΣ ΑΠΕΥΘΕΙΑΣ ΑΝΑΘΕΣΗΣ. Αριθμ. Πρωτ.: /2017 Ο ΕΙΔΙΚΟΣ ΛΟΓΑΡΙΑΣΜΟΣ ΚΟΝΔΥΛΙΩΝ ΕΡΕΥΝΑΣ ΑΝΑΚΟΙΝΩΣΗ ΔΙΑΔΙΚΑΣΙΑΣ ΑΠΕΥΘΕΙΑΣ ΑΝΑΘΕΣΗΣ Αριθμ. Πρωτ.: 129334/2017 Ο ΕΙΔΙΚΟΣ ΛΟΓΑΡΙΑΣΜΟΣ ΚΟΝΔΥΛΙΩΝ ΕΡΕΥΝΑΣ ΤΟΥ ΑΡΙΣΤΟΤΕΛΕΙΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΑΚΟΙΝΩΝΕΙ Τη διενέργεια διαδικασίας ΑΠΕΥΘΕΙΑΣ

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

Νέες τεχνολογίες εισάγονται ή χρησιµοποιούνται

Νέες τεχνολογίες εισάγονται ή χρησιµοποιούνται special report τoυ Γιώργου Φετοκάκη / gfetokakis@boussias.com Jobs scheduling Η χρυσή τοµή της αυτοµατοποίησης Μια λύση job scheduling πρέπει να είναι αρκετά περιεκτική. Πρέπει να υποστηρίζει την ενσωµάτωση

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

Εισαγωγή στην επιστήμη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 6ο ίκτυα υπολογιστών

Εισαγωγή στην επιστήμη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 6ο ίκτυα υπολογιστών Εισαγωγή στην επιστήμη των υπολογιστών Υλικό Υπολογιστών Κεφάλαιο 6ο ίκτυα υπολογιστών 1 ίκτυα μικρά και μεγάλα Ένα δίκτυο υπολογιστών (computer network) είναι ένας συνδυασμός συστημάτων (δηλαδή, υπολογιστών),

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

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

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

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

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

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

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

Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε)

Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, και Ε/Ε) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι

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