Κώστας Διαμαντάρας Τμήμα Πληροφορικής ΤΕΙ Θεσσαλονίκης 2011 Υπηρεσίες Web και Συστάδες υπολογιστών
Υπηρεσίες Web HTTP, HTML, Javascript, php Θεωρία Λειτουργικών Συστημάτων Κ. Διαμαντάρας 2
Υπηρεσίες Web Θεωρία Λειτουργικών Συστημάτων Κ. Διαμαντάρας 3 Hyper-Text Transfer Protocol (HTTP) Το πρωτόκολλο HTTP ανήκει στην κατηγορία των πρωτοκόλλων Request-Reply (RR). Χρησιμοποιείται από έναν πελάτη που λέγεται web browser (φυλλομετρητής ιστού) ή απλά browser, ο οποίος στέλνει αιτήματα σε έναν εξυπηρετητή ιστού (web server). Ο εξυπηρετητής αποκρίνεται επιστρέφοντας ένα αρχείο σε γλώσσα HTML (Hyper-Text Markup Language). Τα αρχεία html είναι γνωστά και ως ιστοσελίδες (web pages). Εξαιρετικά διαδεδομένο πρωτόκολλο. Οι browsers θεωρούνται βασικό εργαλείο και υποστηρίζονται από όλα τα Λειτουργικά Συστήματα. Πλέον διαδεδομένοι browsers: Firefox (Mozilla), Chrome (Google), Internet Explorer (Microsoft), Safari (Apple), Opera,...κλπ
Μέθοδοι που χρησιμοποιούνται από το HTTP Θεωρία Λειτουργικών Συστημάτων Κ. Διαμαντάρας 4 Κάθε αίτηση πελάτη καθορίζει το όνομα της μεθόδου που θα εφαρμοστεί σε κάποιο πόρο του εξυπηρετητή καθώς και το URL του πόρου. Πχ. Μήνυμα HTTP request: Μήνυμα HTTP reply: methodURLHTTP versionheadersbody GEThttp:// HTTP versionstatus codereasonheadersbody HTTP/1.0200OK<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"...
Βασικές Μέθοδοι HTTP Θεωρία Λειτουργικών Συστημάτων Κ. Διαμαντάρας 5 Κάθε κλήση HTTP του πελάτη στον εξυπηρετητή περιέχει τη μέθοδο που θα εφαρμοστεί και το URL του πόρου που αιτείται ο πελάτης. Οι μέθοδοι είναι: GET: Ο πελάτης αιτείται τον πόρο που περιγράφεται στο URL. Ο εξυπηρετητής επιστρέφει τον πόρο (αρχείο html). HEAD: Ο πελάτης αιτείται τον πόρο που περιγράφεται στο URL. Ο εξυπηρετητής επιστρέφει μόνο πληροφορίες για τον πόρο (κεφαλίδα) όπως τύπος, μέγεθος, χρόνος τελευταίας τροποποίησης, κλπ POST: Ο πελάτης αιτείται την εκτέλεση ενός προγράμματος στον εξυπηρετητής σύμφωνα με το URL που δίνεται. Οι παράμετροι του προγράμματος βρίκονται μέσα στο μήνυμα. Ο server εκτελεί το πρόγραμμα και επιστρέφει ένα αρχείο html. Απαιτείται κάποια γλώσσα προγραμματισμού στον εξυπηρετητή (server side scripting language). Πιο διαδεδομένες τέτοιες γλώσσες είναι η php (συνδυάζεται συνήθως με τον Apache server) και η asp (συνεργάζεται με τον ISS της Microsoft).
Λοιπές μέθοδοι HTTP Θεωρία Λειτουργικών Συστημάτων Κ. Διαμαντάρας 6 Άλλες μέθοδοι που υλοποιούνται από το πρωτόκολλο HTTP είναι: PUT: Ο πελάτης αιτείται να αποθηκευτούν τα δεδομένα που περιέχονται στο μήνυμα στο δεδομένο URL είτε ως μεταβολή του υπάρχοντος πόρου είτε ως δημιουργία καινούργιου DELETE: Ο πελάτης αιτείται να διαγραφεί στον εξυπηρετητή ο πόρος που δίνεται στο URL. Οι εξυπηρετητές πολλές φορές δεν ικανοποιούν αυτή τη μέθοδο οπότε επιστρέφεται “failure”. OPTIONS: Ο πελάτης αιτείται πληροφορίες σχετικά με τις επιλογές μεθόδων (πχ. GET, HEAD, PUT, κλπ) που είναι διαθέσιμες για τον συγκεκριμένο πόρο που περιγράφεται στο URL TRACE: Ο εξυπηρετητής απλά επιστρέφει το μήνυμα στον πελάτη. Χρησιμοποιείται για διαγνωστικούς σκοπούς.
Παράδειγμα: Θεωρία Λειτουργικών Συστημάτων Κ. Διαμαντάρας 7
Η γλώσσα HMTL Θεωρία Λειτουργικών Συστημάτων Κ. Διαμαντάρας 8 Η γλώσσα html ανήκει στην κατηγορία των γλωσσών mark-up, δηλαδή τα διάφορα μέρη του κειμένου μαρκάρονται με χαρακτηριστικές συμβολοσειρές που λέγονται tags. Μερικά παραδείγματα tags:...κείμενο... Παράγραφος. Πριν και μετά το κείμενο μπαίνει newline...κείμενο... Σύνδεσμος στο Εικόνα Αλλαγή γραμμής σε μια παράγραφο...περιεχόμενα... Πίνακας...γραμμή... Γραμμή πίνακα...κελί... Κελί μέσα σε μια γραμμή πίνακα Κλπ...
HTML Document Object Model (DOM) Θεωρία Λειτουργικών Συστημάτων Κ. Διαμαντάρας 9 Τα html tags που αποτελούν ένα αρχείο html αντιστοιχούν σε αντικείμενα ενός μοντέλου που καλείται Document Object Model. Η ιεραρχία των αντικειμένων είναι πολύπλοκη και ξεφεύγει του σκοπού αυτού του μαθήματος. Ένα παράδειγμα ιεραρχίας αντικειμένων και των ιδιοτήτων τους (attributes) φαίνεται στο παρακάτω σχήμα.
HTML DOM Θεωρία Λειτουργικών Συστημάτων Κ. Διαμαντάρας 10 My title My link My header My title My link My header
HTML Scripting Θεωρία Λειτουργικών Συστημάτων Κ. Διαμαντάρας 11 Η γλώσσα HTML επιτρέπει την συμπερίληψη προγραμμάτων μέσα στο αρχείο html που επιστρέφεται από τον εξυπηρετητή. Τα προγράμματα που περιέχονται στο αρχείο html λέγονται “scripts” και πρέπει να είναι γραμμένα σε μια κατάλληλη γλώσσα όπως πχ, JavaScript ή η VBScript. Τα προγράμματα εκτελούνται από τον browser του πελάτη, γι’ αυτό και η χρήση τους καλείται client-side scripting (scripting από την μεριά του πελάτη). Ο browser του πελάτη διαθέτει ενσωματωμένο τον κατάλληλο compiler για την μετάφραση και εκτέλεση των scripts. Όλοι οι μοντέρνοι browsers υποστηρίζουν JavaScript.
Παράδειγμα: JavaScript Θεωρία Λειτουργικών Συστημάτων Κ. Διαμαντάρας 12 document.write(' Αυτή είναι μια δοκιμαστική γραμμή html Γειά σας !!!! '); alert('Αυτό είναι ένα popup window'); Δείτε το εδώ:
Server side scripting Θεωρία Λειτουργικών Συστημάτων Κ. Διαμαντάρας 13 Στην πλειοψηφία των διαδικτυακών εφαρμογών πελάτη – εξυπηρετητή απαιτείται η πρόσβαση σε κάποια βάση δεδομένων για την άντληση στοιχείων. Χαρακτηριστικά παραδείγματα: οι μηχανές αναζήτησης όπως google, bing, yahoo, κλπ Τα ηλεκτρονικά καταστήματα όπως amazon, κλπ Η ηλεκτρονική κράτηση εισιτηρίων/θέσεων σε αεροπλάνα, ξενοδοχεία, κινηματογράφους, κλπ Οι υπηρεσίες κοινωνικής δικτύωσης όπως facebook, google+, twitter, κλπ Η ηλεκτρονική καταχώρηση βαθμών και γενικά η ηλεκτρονική διαχείριση μαθημάτων Και πολλές άλλες εφαρμογές (ή μάλλον η μεγάλη πλειοψηφία)
Server side scripting: η γλώσσα php Θεωρία Λειτουργικών Συστημάτων Κ. Διαμαντάρας 14 Η χρήση κατανεμημένων βάσεων δεδομένων απαιτεί την κλήση ενός προγράμματος στη μεριά του εξυπηρετητή το οποίο θα κάνει ερώτημα (query) στην βάση δεδομένων –πιθανότατα με χρήση SQL – και θα επιστρέψει το αποτέλεσμα στον πελάτη. Δεν είναι πρακτικό να αντιγραφεί ολόκληρη η βάση δεδομένων στον πελάτη και να γίνει εκεί το query καθώς η βάση μπορεί να είναι εξαιρετικά μεγάλη. Άλλωστε ο χρήστης δεν ενδιαφέρεται να να συντηρεί τη βάση ούτε να μάθει πώς γίνεται ένα ερώτημα SQL. Αυτό το αναλαμβάνει ένα πρόγραμμα στην πλευρά του εξυπηρετητή. Για το σκοπό αυτό υπάρχουν γλώσσες που υποστηρίζουν τη συγγραφή προγραμμάτων που εκτελούνται στον εξυπηρετητή μετά από κλήση του πελάτη. Παραδείγματα τέτοιων γλωσσών είναι η php και η asp.
Server side scripting: η γλώσσα php Θεωρία Λειτουργικών Συστημάτων Κ. Διαμαντάρας 15 Ένα πρόγραμμα php βρίσκεται μέσα σε ένα τμήμα ενός αρχείου html το όνομα του οποίου πρέπει να τελειώνει σε.php. Το τμήμα ξεκινά με τη συμβολοσειρά. Όταν ο εξυπηρετητής λάβει μια αίτηση από έναν πελάτη πχ. για το αρχείο test.php, διαβάζει το περιεχόμενο του αρχείου και όπου βλέπει στατικό κώδικα html τον επιστρέφει ανέπαφο όπου βλέπει κώδικα php τον εκτελεί. Ο κώδικας php παράγει κείμενο html το οποίο αντικαθιστά τον κώδικα php. Το κείμενο αυτό μαζί με τον υπόλοιπο στατικό κώδικα του αρχείου επιστρέφεται στον πελάτη Ο πελάτης μπορεί να περάσει ορίσματα στο πρόγραμμα php όπως φαίνεται στο παρακάτω αίτημα URL Όρισμα 1: a Όρισμα 2: str
Παράδειγμα: php Θεωρία Λειτουργικών Συστημάτων Κ. Διαμαντάρας 16 Αυτό είναι στατικό html. <?php $a = $_GET['a']; $str = $_GET['str']; if ($a && $str) { echo " Παράμετρος 1: $a, Παράμετρος 2: $str "; } ?> Δείτε το εδώ
Επικοινωνία php με βάση δεδομένων στον εξυπηρετητή Θεωρία Λειτουργικών Συστημάτων Κ. Διαμαντάρας 17 Η πιο συνηθισμένη εφαρμογή της php είναι η σύνδεσή της με μια τοπική σχεσιακή βάση δεδομένων στον εξυπηρετητή. Πιο συνηθισμένη περίπτωση είναι η σύνδεση με την βάση mysql, αλλά είναι δυνατή και η σύνδεση με άλλες βάσεις όπως η postgresql, κα. Χρησιμοποιώντας εντολές όπως mysql_connect(), mysql_query() και mysql_fetch_array(), mysql_close(), κλπ, είναι δυνατή η εκτέλεση ερωτήματος στη βάση και το σερβίριασμα του αποτελέσματος στον πελάτη με μορφή αρχείου html κατάλληλου για να εμφανιστεί στον browser του πελάτη. Η ανάλυση των εντολών χρήσης της mysql (ή άλλων ΒΔ) από την php ξεφεύγει από τα όρια του παρόντος μαθήματος
HTML, DOM, JavaScript, Php, Mysql, κλπ Θεωρία Λειτουργικών Συστημάτων Κ. Διαμαντάρας 18 Όλες οι σχετικές τεχνολογίες είναι αντικείμενο του μαθήματος «Ανάπτυξη Διαδικτυακών Εφαρμογών» ή παρόμοιου. Για περισσότερες λεπτομέρειες καλές πηγές είναι οι παρακάτω (καλύπτει όλες τις βασικές τεχνολογίες web: html, DOM, javascript, css, php, asp, κλπ. Δεν δίνεται ιδιαίτερο βάθος σε κάποιες, πχ php) (εξαιρετικά λεπτομερές online php manual) (mysql documentation) (tutorials διαδικτυακών εφαρμογών)
Συστάδες Υπολογιστών (Clusters) Θεωρία Λειτουργικών Συστημάτων Κ. Διαμαντάρας 19
Συστάδες υπολογιστών (clusters) Θεωρία Λειτουργικών Συστημάτων Κ. Διαμαντάρας 20 Ορισμός: Συστάδα υπολογιστών (cluster) είναι μια ομάδα από διασυνδεδεμένους ολοκληρωμένους υπολογιστές που συνεργάζονται σαν ένα ενιαίο υπολογιστικό σύστημα δίνοντας στον έξω κόσμο την εντύπωση ενός μόνο μηχανήματος. Ολοκληρωμένοι υπολογιστές = θα μπορούσαν, αν θέλαμε, να λειτουργήσουν αυτόνομα εκτός cluster Πλεονεκτήματα: Απόλυτη Κλιμάκωση: δυνατότητα δημιουργίας μεγάλων έως πολύ μεγάλων συνόλων, πχ. Google cluster > κόμβοι (εκτιμώμενο) Σταδιακή κλιμάκωση: δυνατότητα σταδιακής προσθήκης κόμβων Υψηλή διαθεσιμότητα: η αποτυχία ενός κόμβου θεραπεύεται από τους υπόλοιπους κόμβους, οπότε το συνολικό σύστημα δεν «πέφτει» εύκολα Υψηλός δείκτης τιμής/απόδοση: χρήση πολλών φθηνών μηχανών πιο οικονομική από την χρήση ενός τεράστιου παράλληλου υπολογιστή
Ενδιάμεσο λογισμικό cluster Αρχιτεκτονική cluster Θεωρία Λειτουργικών Συστημάτων Κ. Διαμαντάρας 21 Η/Υ Λογισμικό Επικοινωνίας Υλικό & Δίκτυο Η/Υ Λογισμικό Επικοινωνίας Υλικό & Δίκτυο Η/Υ Λογισμικό Επικοινωνίας Υλικό & Δίκτυο Η/Υ Λογισμικό Επικοινωνίας Υλικό & Δίκτυο Δίκτυο υψηλών ταχυτήτων Σειριακές εφαρμογές Παράλληλες εφαρμογές
Αρχιτεκτονική cluster Θεωρία Λειτουργικών Συστημάτων Κ. Διαμαντάρας 22 Εκτός από τους κόμβους επί πλέον συστατικά του cluster είναι: Το ταχύ δίκτυο LAN ή WAN. Απαραίτητο για την όσο το δυνατόν ταχύτερη ανταλλαγή μηνυμάτων. Το εύρος ζώνης του δικτύου (= ταχύτητα μεταφοράς bits/sec) μπορεί να επηρεάσει σημαντικά την αποδοτικότητα των κατανεμημένων εφαρμογών που εκτελούνται σε αυτό Το ενδιάμεσο λογισμικό: προσφέρει μια ενιαία διεπαφή στον χρήστη και του δίνει την εικόνα ενός μοναδικού μηχανήματος (single-system image). Το ενδιάμεσο λογισμικό επίσης είναι υπεύθυνο για την δρομολόγηση των αιτημάτων στον κατάλληλο κόμβο – εξυπηρετητή φροντίζει για την εξισορρόπηση του φόρτου εργασίας μεταξύ των κόμβων Διαχειρίζεται τα σφάλματα στα διάφορα επί μέρους στοιχεία του συστήματος
Λειτουργίες ενδιάμεσου λογισμικού cluster Θεωρία Λειτουργικών Συστημάτων Κ. Διαμαντάρας 23 Μοναδικό σημείο εισόδου. Ο χρήστης με το “cluster” και όχι με έναν- έναν υπολογιστή ξεχωριστά. Μοναδική ιεραρχία αρχείων. Ο χρήστης βλέπει ένα σύστημα αρχείων. Μοναδικό σημείο ελέγχου. Ο διαχειριστής ελέγχει το cluster από ένα συγκεκριμένο κόμβο. Μοναδικό εικονικό δίκτυο. Όλοι οι κόμβοι επικοινωνούν μεταξύ τους με τις ίδιες εντολές περάσματος μηνυμάτων σα να είναι στο ίδιο δίκτυο ακόμη κι αν ανήκουν σε διαφορετικά δίκτυα. Μοναδικό σύστημα διαχείρισης εργασιών. Οι διεργασίες δρομολογούνται στους κόμβους διαφανώς ως προς τον χρήστη. Αυτός υποβάλλει απλώς την διεργασία στο “cluster” χωρίς να γνωρίζει σε ποιον ή ποιους ακριβώς κόμβους θα εκτελεστεί. Αν η διεργασία είναι σειριακή θα εκτελεστεί σε ένα κόμβο, αν όμως είναι παράλληλη θα απασχολήσει πολλούς κόμβους.
Λειτουργίες ενδιάμεσου λογισμικού cluster Θεωρία Λειτουργικών Συστημάτων Κ. Διαμαντάρας 24 Μοναδικός χώρος εισόδου/εξόδου. Οποιοσδήποτε κόμβος προσπελαύνει συσκευές I/O χωρίς να είναι απαραίτητο να γνωρίζει τη φυσική τους θέση. Μοναδικός χώρος διεργασιών. Οι διεργασίες μπορούν να επικοινωνούν μεταξύ τους άσχετα σε ποιον κόμβο εκτελούνται. Σημεία ελέγχου. Το ενδιάμεσο λογισμικό αποθηκεύει σε τακτά χρονικά διαστήματα την κατάσταση των διεργασιών και τα μερικά αποτελέσματα έτσι ώστε το σύστημα να μπορεί να ανακάμψει μετά από ένα σφάλμα. Μετανάστευση διεργασιών. Η δυνατότητα μεταφοράς μιας διεργασίας από ένα κόμβο σε ένα άλλο είτε για λόγους εξισορρόπησης φόρτου εργασίας είτε επειδή ο αρχικός κόμβος κατέρρευσε (διαχείριση σφαλμάτων)
Διάταξη υπολογιστών σε cluster Θεωρία Λειτουργικών Συστημάτων Κ. Διαμαντάρας 25 Υπάρχουν τρεις βασικές αρχιτεκτονικές διάταξης Η/Υ σε cluster: 1. Εξυπηρετητές με ξεχωριστούς δίσκους. Δεν υπάρχει διαμοιρασμός δίσκων. Απαιτείται λογισμικό διαχείρισης της ανάθεσης των εισερχομένων αιτημάτων σε συγκεκριμένο κόμβο έτσι ώστε να γίνεται εξισορρόπηση του φόρτου εργασίας και ταυτόχρονα να επιτυγχάνεται μέγιστη χρησιμοποίηση των κόμβων. Κάθε κόμβος μορεί να είναι ένας παράλληλος (πχ. πολυ-πύρηνος) επεξεργαστής P P P P P P P P Δίσκος M M I/O P P P P P P P P Δίσκος Ι/Ο I/O Μ Μ Δίκτυο υψηλής ταχύτητας Κόμβος Χ Κόμβος Υ
Διάταξη υπολογιστών σε cluster Θεωρία Λειτουργικών Συστημάτων Κ. Διαμαντάρας Διάταξη εξυπηρετητών με κοινούς δίσκους ωστόσο κάθε κόμβος δουλεύει σε διαφορετικό λογικό τόμο (partition). Έτσι υπάρχει διαμοιρασμός δίσκων σε επίπεδο υλικού ώστε να μειώνεται οι επικοινωνία μεταξύ επεξεργαστών, ωστόσο από λογικής (προγραμματιστικής) απόψεως οι επεξεργαστές έχουν διαφορετικούς δίσκους. P P P P P P P P Δίσκος M M I/O P P P P P P P P Δίσκος Ι/Ο I/O Μ Μ Δίκτυο υψηλής ταχύτητας Κόμβος Χ Κόμβος Υ Τόμος 2 Ι/Ο Τόμος 1 Κοινός Δίσκος
Διάταξη υπολογιστών σε cluster Θεωρία Λειτουργικών Συστημάτων Κ. Διαμαντάρας Εξυπηρετητές με κοινούς δίσκους τόσο από απόψεως υλικού όσο και λογικλα κοινούς: γίνεται διαμοιρασμός του ίδιου τόμου. Κάθε υπολογιστής έχει πρόσβαση σε όλους τους δίσκους οι οποίοι μπορεί να ακολουθούν το πρωτόκολλο RAID για προστασία από σφάλματα. P P P P P P P P Δίσκος M M I/O P P P P P P P P Δίσκος Ι/Ο I/O Μ Μ Δίκτυο υψηλής ταχύτητας Κόμβος Χ Κόμβος Υ Κοινοί Δίσκοι RAID Ι/Ο
Διαχείριση σφαλμάτων Θεωρία Λειτουργικών Συστημάτων Κ. Διαμαντάρας 28 Αν αποτύχει ένας κόμβος του cluster την ώρα που εκτελεί μια εφαρμογή τότε άλλοι κόμβοι αναλαμβάνουν την εκτέλεση της εργασίας του νεκρού κόμβου. Η μετανάστευση μιας εφαρμογής και των δεδομένων της από ένα κόμβο που κατέρρευσε σε ένα άλλο κόμβο που λειτουργεί λέγεται “failover” Ανάλογα με την αρχιτεκτονική του cluster πριν από τη μετανάστευση της εφαρμογής απαιτούνται διαφορετικές ενέργειες Σε περίπτωση ξεχωριστών δίσκων απαιτείται αντιγραφή των δεδομένων σε backup δίσκους ώστε να είναι διαθέσιμα στον κόμβο που θα αναλάβει την εκτέλεση από εδώ και πέρα Στην περίπτωση των κοινών δίσκων απαιτείται απλώς η ύπαρξη κάποιου πρωτοκόλλου (όπως το RAID) για την διασφάλιση της διαθεσιμότητας των δεδομένων
Παραλληλισμός Θεωρία Λειτουργικών Συστημάτων Κ. Διαμαντάρας 29 Οι συστάδες υπολογιστών προσφέρουν υπηρεσίες παράλληλης επεξεργασίας στους χρήστες καθώς διαθέτουν πολλούς κόμβους οι οποίοι με κατάλληλο τεμαχισμό της εφαρμογής του πελάτη μπορούν να την εκτελέσουν παράλληλα. Ποιος θα τεμαχίσει την εφαρμογή; Υπάρχουν δύο βασικές επιλογές: 1. Παραλληλοποίηση από τον μεταφραστή. Ο προγραμματιστής γράφει κλασικό σειριακό κώδικα και ο παράλληλος μεταφραστής καθορίζει πώς θα τεμαχιστεί ο κώδικας σε παράλληλα τμήματα 2. Παράλληλος προγραμματισμός: Ο προγραμματιστής αποφασίζει πώς θα τεμαχιστεί ο αλγόριθμος σε τμήματα γράφει δηλαδή παράλληλο κώδικα σε κάποιο κατάλληλο περιβάλλον καθορίζοντας πώς ακριβώς θα ανταλλάσσονται μηνύματα μεταξύ διεργασιών.
Παραλληλισμός Θεωρία Λειτουργικών Συστημάτων Κ. Διαμαντάρας 30 Πλεονεκτήματα/Μειονεκτήματα παραλληλοποίησης από τον μεταφραστή + Ευκολία προγραμματισμού καθώς αυτός γίνεται με το παραδοσιακό σειριακό μοντέλο − Δυσκολία βέλτιστης εκμετάλλευσης του παραλληλισμού του αλγορίθμου. Ο προγραμματιστής σκέφτεται «σειριακά» και συνεπώς η παραλληλοποίηση που επιτυγχάνει ο μεταφραστής έχει περιορισμένα αποτελέσματα. Πλεονεκτήματα/Μειονεκτήματα παράλληλου προγραμματισμού + Αυτή είναι η καταλληλότερη λύση για τις περισσότερες εφαρμογές αν απαιτείται η εξαγωγή του μέγιστου παραλληλισμού από την εφαρμογή − Ο προγραμματιστής πρέπει να εκπαιδευτεί στη συγγραφή παράλληλου κώδικα.
Υπηρεσίες Νέφους (Cloud) Θεωρία Λειτουργικών Συστημάτων Κ. Διαμαντάρας 31 Υπηρεσίες Νέφους (Cloud): Ανάπτυξη εφαρμογών σε συστάδα υπολογιστών χρησιμοποιώντας συγκεκριμένες συναρτήσεις διεπαφής (API). Εκτέλεση των προγραμμάτων από άλλη διεπαφή (συνήθως διαδικτυακή) Παράδειγμα: Google cloud Google web toolkit