2. Βαςικζσ ζννοιεσ
Πελάτησ (client): Υπολογιςτισ / ςτακμόσ εργαςίασ που αιτείται και
χρθςιμοποιεί υπθρεςίεσ, δεδομζνα ι εφαρμογζσ από κάποιον
εξυπθρετθτι (μοιάηει με τον πελάτθ ςε μια τράπεηα)
Εξυπηρετητήσ (server): Ιςχυρόσ υπολογιςτισ που ςυγκεντρϊνει
υπθρεςίεσ, εφαρμογζσ ι δεδομζνα και τα προςφζρει ςτουσ πελάτεσ αφοφ
τα αιτθκοφν (μοιάηει με τον ταμία ι κάποιο υπάλλθλο μιασ τράπεηασ που
μπορεί να εξυπθρετεί πολλοφσ πελάτεσ)
Διαςφνδεςη προγραμμάτων εφαρμογών (Application Programming
interface – API): ςφνολο ςυναρτιςεων και προγραμμάτων που
επιτρζπουν τθν επικοινωνία μεταξφ πελατϊν – εξυπθρετθτϊν
Ενδιάμεςο λογιςμικό (Middleware): ζνα ςτρϊμα λογιςμικοφ πάνω από
το λειτουργικό ςφςτθμα που κρφβει τα ετερογενι χαρακτθριςτικά των
υπολογιςτϊν που αποτελοφν ζνα κατανεμθμζνο ςφςτθμα προςφζροντασ
μια «αφθρθμζνθ μθχανι» ϊςτε οι προγραμματιςτζσ να αναπτφςςουν
εφαρμογζσ ςτο ςφςτθμα.
2
Κ. Διαμαντάρασ
Θεωρία Λειτουργικϊν
Συςτθμάτων
5. Παράδειγμα: Web
Αίτθμα http
Διαδίκτυο
Λιψθ ςελίδασ
html
Πελάτησ:
Αίτθμα http
Απόκριςθ =
ςελίδα html
Εξυπηρετητήσ:
• Εφαρμογι: Mozilla Firefox (Web
browser)
• Εφαρμογι: Apache (http server)
• Ο Firefox ςτζλνει αίτθμα
προςκόμιςθσ τθσ ιςτοςελίδασ
• Απαντάει προςκομίηοντασ μια
ςελίδα (αρχείο) html
• Λαμβάνει το αίτθμα http
http://195.251.123.246/
• Ο Firefox λαμβάνει το αρχείο
html, το επεξεργάηεται και το
δείχνει τθν οκόνθ.
5
Κ. Διαμαντάρασ
Θεωρία Λειτουργικϊν
Συςτθμάτων
6. Παράδειγμα: Web
Ο πελάτθσ μπορεί να διακζτει οποιοδιποτε λειτουργικό απλοφ
ςτακμοφ εργαςίασ (πχ, Windows, Linux, Mac OS, κλπ)
Ο εξυπθρετθτισ μπορεί επίςθσ να διακζτει οποιοδιποτε λειτουργικό
εξυπθρετθτι (πχ, Windows Server, UNIX, Mac OS X Server, κλπ)
Το ενδιάμεςο λογιςμικό που υλοποιεί το πρωτόκολλο ανταλλαγισ
αρχείων hyper-text (hyper-text transfer protocol – http) κάνει το ΛΣ
διαφανζσ τόςο για τον πελάτθ όςο και για τον εξυπθρετθτι: οφτε ο
πελάτθσ χρειάηεται να γνωρίηει το ΛΣ του εξυπθρετθτι οφτε ο
εξυπθρετθτισ χρειάηεται να γνωρίηει το ΛΣ του πελάτθ.
Οποιοςδιποτε ςυνδυαςμόσ των ΛΣ πελάτθ / εξυπθρετθτι δουλεφει
κακϊσ θ επικοινωνία βαςίηεται ςτο ενδιάμεςο ςτρϊμα που είναι
κοινό.
6
Κ. Διαμαντάρασ
Θεωρία Λειτουργικϊν
Συςτθμάτων
7. Παράδειγμα: Η υπθρεςία Domain Name
(DNS)
Αίτθμα DNS
Λιψθ
IP address
Πελάτησ:
• Εφαρμογι: nslookup (DOS)
• Το nslookup ςτζλνει αίτθμα
διαλεφκανςθσ του ονόματοσ
nslookup www.it.teithe.gr
• Το nslookup λαμβάνει το IP
address και το τυπϊνει ςτθν
οκόνθ.
7
Κ. Διαμαντάρασ
Διαδίκτυο
Αίτθμα DNS
Απόκριςθ =
IP address
Εξυπηρετητήσ:
• Εφαρμογι: BIND (DN Server για
Unix)
• Λαμβάνει το αίτθμα
διαλεφκανςθσ ονόματοσ
• Απαντάει προςκομίηοντασ το IP
address = 195.251.123.246
Θεωρία Λειτουργικϊν
Συςτθμάτων
8. Παράδειγμα: Βάςεισ Δεδομζνων
Από τισ πλζον ςυνθκιςμζνεσ οικογζνεια εφαρμογϊν πελάτθ –
εξυπθρετθτι. Ο πελάτθσ ςτζλνει ερωτιματα (queries) ςε μια
(ςχεςιακι) βάςθ δεδομζνων (ΒΔ) που βρίςκεται ςτον εξυπθρετθτι. Ο
εξυπθρετθτισ εκτελεί τα ερωτιματα και επιςτρζφει τθν απάντθςθ με
τθν μορφι γραμμϊν ςε ζνα πίνακα.
Πελάτθσ
Εξυπθρετθτισ
Λογιςμικό παρουςίαςθσ (GUI)
Λογιςμικό Εφαρμογισ
Λογικι ΒΔ
Λογιςμικό Επικοινωνιϊν
Πλατφόρμα (υλικό + ΛΣ)
8
Κ. Διαμαντάρασ
Αίτθμα
Απόκριςθ
Πρωτόκολλο
δικτφου
Λογικι ΒΔ
Λογ. Επικοιν.
DBMS
Πλατφόρμα (υλικό + ΛΣ)
Θεωρία Λειτουργικϊν
Συςτθμάτων
15. Υπθρεςίεσ Web
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, ...κλπ
15
Κ. Διαμαντάρασ
Θεωρία Λειτουργικϊν
Συςτθμάτων
17. Η γλϊςςα HMTL
Η γλϊςςα html ανικει ςτθν κατθγορία των γλωςςϊν mark-up, δθλαδι
τα διάφορα μζρθ του κειμζνου μαρκάρονται με χαρακτθριςτικζσ
ςυμβολοςειρζσ που λζγονται tags. Μερικά παραδείγματα tags:
<p>...κείμενο...</p>
Παράγραφοσ. Πριν και μετά το κείμενο
μπαίνει newline
<a
Σφνδεςμοσ ςτο http://www.mysite.com
href=“http://www.mysite.com”>.
..κείμενο...</a>
<img src=“myphoto.jpg” />
Εικόνα
<br />
Αλλαγι γραμμισ ςε μια παράγραφο
<table>...περιεχόμενα...</table>
Πίνακασ
<tr>...γραμμή...</tr>
Γραμμι πίνακα
<td>...κελί...</td>
Κελί μζςα ςε μια γραμμι πίνακα
Κλπ...
17
Κ. Διαμαντάρασ
Θεωρία Λειτουργικϊν
Συςτθμάτων
18. HTML Document Object Model (DOM)
Τα html tags που αποτελοφν ζνα αρχείο html αντιςτοιχοφν ςε
αντικείμενα ενόσ μοντζλου που καλείται Document Object Model. Η
ιεραρχία των αντικειμζνων είναι πολφπλοκθ και ξεφεφγει του ςκοποφ
αυτοφ του μακιματοσ.
Ζνα παράδειγμα ιεραρχίασ αντικειμζνων και των ιδιοτιτων τουσ
(attributes) φαίνεται ςτο παρακάτω ςχιμα.
18
Κ. Διαμαντάρασ
Θεωρία Λειτουργικϊν
Συςτθμάτων
20. HTML Scripting
Η γλϊςςα HTML επιτρζπει τθν ςυμπερίλθψθ προγραμμάτων μζςα ςτο
αρχείο html που επιςτρζφεται από τον εξυπθρετθτι. Τα προγράμματα
που περιζχονται ςτο αρχείο html λζγονται “scripts” και πρζπει να
είναι γραμμζνα ςε μια κατάλλθλθ γλϊςςα όπωσ πχ, JavaScript ι θ
VBScript.
Τα προγράμματα εκτελοφνται από τον browser του πελάτθ, γι’ αυτό
και θ χριςθ τουσ καλείται client-side scripting (scripting από τθν μεριά
του πελάτθ).
Ο browser του πελάτθ διακζτει ενςωματωμζνο τον κατάλλθλο
compiler για τθν μετάφραςθ και εκτζλεςθ των scripts. Όλοι οι
μοντζρνοι browsers υποςτθρίηουν JavaScript.
20
Κ. Διαμαντάρασ
Θεωρία Λειτουργικϊν
Συςτθμάτων
21. Παράδειγμα: JavaScript
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-7" />
</head>
<script type="text/javascript">
document.write('<p>Αυτή είναι μια δοκιμαστική γραμμή
html<br/> Γειά σας !!!!</p>');
alert('Αυτό είναι ένα popup window');
</script>
</html>
Δείτε το εδϊ:
http://www.it.teithe.gr/~kdiamant/OpSys/test.html
21
Κ. Διαμαντάρασ
Θεωρία Λειτουργικϊν
Συςτθμάτων
22. Server side scripting
Στθν πλειοψθφία των διαδικτυακϊν εφαρμογϊν πελάτθ –
εξυπθρετθτι απαιτείται θ πρόςβαςθ ςε κάποια βάςθ δεδομζνων για
τθν άντλθςθ ςτοιχείων. Χαρακτθριςτικά παραδείγματα:
οι μθχανζσ αναηιτθςθσ όπωσ google, bing, yahoo, κλπ
Τα θλεκτρονικά καταςτιματα όπωσ amazon, κλπ
Η θλεκτρονικι κράτθςθ ειςιτθρίων/κζςεων ςε αεροπλάνα, ξενοδοχεία,
κινθματογράφουσ, κλπ
Οι υπθρεςίεσ κοινωνικισ δικτφωςθσ όπωσ facebook, google+, twitter, κλπ
Η θλεκτρονικι καταχϊρθςθ βακμϊν και γενικά θ θλεκτρονικι διαχείριςθ
μακθμάτων
Και πολλζσ άλλεσ εφαρμογζσ (ι μάλλον θ μεγάλθ πλειοψθφία)
22
Κ. Διαμαντάρασ
Θεωρία Λειτουργικϊν
Συςτθμάτων
23. Server side scripting: θ γλϊςςα php
Η χριςθ κατανεμθμζνων βάςεων δεδομζνων απαιτεί τθν κλιςθ ενόσ
προγράμματοσ ςτθ μεριά του εξυπθρετθτι το οποίο κα κάνει
ερϊτθμα (query) ςτθν βάςθ δεδομζνων –πικανότατα με χριςθ SQL –
και κα επιςτρζψει το αποτζλεςμα ςτον πελάτθ.
Δεν είναι πρακτικό να αντιγραφεί ολόκλθρθ θ βάςθ δεδομζνων ςτον
πελάτθ και να γίνει εκεί το query κακϊσ θ βάςθ μπορεί να είναι
εξαιρετικά μεγάλθ. Άλλωςτε ο χριςτθσ δεν ενδιαφζρεται να να
ςυντθρεί τθ βάςθ οφτε να μάκει πϊσ γίνεται ζνα ερϊτθμα SQL. Αυτό
το αναλαμβάνει ζνα πρόγραμμα ςτθν πλευρά του εξυπθρετθτι.
Για το ςκοπό αυτό υπάρχουν γλϊςςεσ που υποςτθρίηουν τθ
ςυγγραφι προγραμμάτων που εκτελοφνται ςτον εξυπθρετθτι μετά
από κλιςθ του πελάτθ.
Παραδείγματα τζτοιων γλωςςϊν είναι θ php και θ asp.
23
Κ. Διαμαντάρασ
Θεωρία Λειτουργικϊν
Συςτθμάτων
24. Server side scripting: θ γλϊςςα php
Ζνα πρόγραμμα php βρίςκεται μζςα ςε ζνα τμιμα ενόσ αρχείου html
το όνομα του οποίου πρζπει να τελειϊνει ςε .php. Το τμιμα ξεκινά
με τθ ςυμβολοςειρά <?php και τελειϊνει με τθ ςυμβολοςειρά ?>.
Όταν ο εξυπθρετθτισ λάβει μια αίτθςθ από ζναν πελάτθ πχ. για το
αρχείο test.php, διαβάηει το περιεχόμενο του αρχείου και
όπου βλζπει ςτατικό κϊδικα html τον επιςτρζφει ανζπαφο
όπου βλζπει κϊδικα php τον εκτελεί. Ο κϊδικασ php παράγει κείμενο
html το οποίο αντικακιςτά τον κϊδικα php. Το κείμενο αυτό μαηί με
τον υπόλοιπο ςτατικό κϊδικα του αρχείου επιςτρζφεται ςτον πελάτθ
Ο πελάτθσ μπορεί να περάςει ορίςματα ςτο πρόγραμμα php όπωσ
φαίνεται ςτο παρακάτω αίτθμα URL
http://www.mysite.com/test.php?a=3&str=hello
Όριςμα 1: a
24
Κ. Διαμαντάρασ
Όριςμα 2: str
Θεωρία Λειτουργικϊν
Συςτθμάτων
26. Επικοινωνία php με βάςθ δεδομζνων ςτον
εξυπθρετθτι
Η πιο ςυνθκιςμζνθ εφαρμογι τθσ php είναι θ ςφνδεςι τθσ με μια
τοπικι ςχεςιακι βάςθ δεδομζνων ςτον εξυπθρετθτι. Πιο
ςυνθκιςμζνθ περίπτωςθ είναι θ ςφνδεςθ με τθν βάςθ mysql, αλλά
είναι δυνατι και θ ςφνδεςθ με άλλεσ βάςεισ όπωσ θ postgresql, κα.
Χρθςιμοποιϊντασ εντολζσ όπωσ mysql_connect(), mysql_query() και
mysql_fetch_array(), mysql_close(), κλπ, είναι δυνατι θ εκτζλεςθ
ερωτιματοσ ςτθ βάςθ και το ςερβίριςμα του αποτελζςματοσ ςτον
πελάτθ με μορφι αρχείου html κατάλλθλου για να εμφανιςτεί ςτον
browser του πελάτθ.
Η ανάλυςθ των εντολϊν χριςθσ τθσ mysql (ι άλλων ΒΔ) από τθν php
ξεφεφγει από τα όρια του παρόντοσ μακιματοσ
26
Κ. Διαμαντάρασ
Θεωρία Λειτουργικϊν
Συςτθμάτων
27. HTML, DOM, JavaScript, Php, Mysql, κλπ
Όλεσ οι ςχετικζσ τεχνολογίεσ είναι αντικείμενο του μακιματοσ
«Ανάπτυξθ Διαδικτυακϊν Εφαρμογϊν» ι παρόμοιου.
Για περιςςότερεσ λεπτομζρειεσ καλζσ πθγζσ είναι οι παρακάτω
http://www.w3schools.com (καλφπτει όλεσ τισ βαςικζσ τεχνολογίεσ web:
html, DOM, javascript, css, php, asp, κλπ. Δεν δίνεται ιδιαίτερο βάκοσ
ςε κάποιεσ, πχ php)
www.php.net (εξαιρετικά λεπτομερζσ online php manual)
http://dev.mysql.com/doc/ (mysql documentation)
http://www.tizag.com (tutorials διαδικτυακϊν εφαρμογϊν)
27
Κ. Διαμαντάρασ
Θεωρία Λειτουργικϊν
Συςτθμάτων
28. Υπθρεςίεσ Νζφουσ (Cloud)
Υπηρεςίεσ Νζφουσ (Cloud Services): Παροχι υπολογιςτικϊν
28
υπθρεςιϊν μζςω του διαδικτφου.
Χριςθ του browser ωσ πλατφόρμασ εκτζλεςθσ των προγραμμάτων.
Βαςικό χαρακτηριςτικό: ο υπολογιςτισ ι οι υπολογιςτζσ που τρζχουν
τθν εφαρμογι μασ βρίςκονται «αλλοφ» και όχι ςτο γραφείο μασ. Δεν
ζχουμε φυςικι επαφι με αυτοφσ οφτε ξζρουμε ακριβϊσ που
βρίςκονται. Επικοινωνία μόνο μζςω διαδικτφου και browser
Βαςικό χαρακτηριςτικό: ο πάροχοσ διακζτει μεγάλο πλικοσ
υπολογιςτικϊν κόμβων (ςυνικωσ αρκετζσ χιλιάδεσ ι και
εκατομμφρια)
Ουςιώδεσ χαρακτηριςτικό: ο πάροχοσ των υπθρεςιϊν προςφζρει
πλιρθ γκάμα υπθρεςιϊν (όχι μόνο πχ, email και ftp). Επίςθσ
προςφζρει πλατφόρμα ανάπτυξθσ διαδικτυακϊν εφαρμογϊν από
τουσ ίδιουσ τουσ πελάτεσ
Κ. Διαμαντάρασ
Θεωρία Λειτουργικϊν
Συςτθμάτων
29. Γιατί cloud computing?
Απαλλαγι του πελάτθ από το άγχοσ ςυντιρθςθσ του ςυςτιματοσ
Απαλλαγι του πελάτθ από το κόςτοσ ςυντιρθςθσ, αναβάκμιςθσ,
backup, κλπ
Ο πάροχοσ προςφζρει εγγυθμζνθ αξιοπιςτία (ο υπολογιςτισ μου
μπορεί να «κραςάρει», θ google ποτζ!)
Προςπζλαςθ δεδομζνων, προγραμμάτων και εφαρμογϊν από
οποιοδιποτε υπολογιςτι, κινθτό τθλζφωνο ι tablet, ακόμθ και αν δεν
είναι δικό μου: πχ από ζνα internet café το καλοκαίρι ςτισ διακοπζσ
29
Κ. Διαμαντάρασ
Θεωρία Λειτουργικϊν
Συςτθμάτων
30. Τφποι υπθρεςιϊν cloud
(1)
Infrastructure as a Service (IaaS) : Ο πάροχοσ προςφζρει ςτον πελάτθ
εικονικοφσ υπολογιςτζσ. Ο πελάτθσ κάνει login, ζχει desktop, ζχει δικά
του αρχεία, μπορεί να εγκαταςτιςει και να εκτελζςει προγράμματα,
κλπ, ςαν να ιταν ο δικόσ του υπολογιςτισ. Μόνο που ο υπολογιςτισ
αυτόσ βρίςκεται «αλλοφ» και δεν υπάρχει φυςικι πρόςβαςθ
Παράδειγμα: Virtual machines
Amazon EC2
Windows Azure Virtual Machines
Google Compute Engine
30
Κ. Διαμαντάρασ
Θεωρία Λειτουργικϊν
Συςτθμάτων
31. Τφποι υπθρεςιϊν cloud
(2)
Platform as a Service (PaaS) : Ο πάροχοσ προςφζρει ςτον πελάτθ μια
πλατφόρμα θ οποία τυπικά περιλαμβάνει λειτουργικό ςφςτθμα,
πλατφόρμα ανάπτυξθσ και εκτζλεςθσ προγραμμάτων, βάςθ
δεδομζνων και web server. Τυπικι χριςθ: ανάπτυξθ δυναμικϊν
ιςτοςελίδων, blogs, διαδικτυακϊν εφαρμογϊν, κλπ.
Παραδείγματα:
Google App Engine
Windows Azure Compute
31
Κ. Διαμαντάρασ
Θεωρία Λειτουργικϊν
Συςτθμάτων
32. Τφποι υπθρεςιϊν cloud
(3)
Software as a Service (SaaS) : Ο πάροχοσ προςφζρει ςτον πελάτθ
πλατφόρμα ανάπτυξθσ εφαρμογϊν οι οποίεσ εκτελοφνται ςτουσ
εξυπθρετθτζσ του παρόχου. Ο πελάτθσ κάνοντασ login, μπορεί να
εκτελεί τα προγράμματα αυτά μζςω του browser.
Παραδείγματα:
Google Apps
Microsoft Office 365
32
Κ. Διαμαντάρασ
Θεωρία Λειτουργικϊν
Συςτθμάτων
33. Τφποι υπθρεςιϊν cloud
(2)
STorage as a Service (STaaS) : Ο πάροχοσ προςφζρει ςτον πελάτθ
χϊρο ςε εικονικό δίςκο. Ο πελάτθσ μπορεί να προςπελάςει τα αρχεία
του από οποιοδιποτε υπολογιςτι, κινθτό τθλζφωνο ι tablet μζςω
διαδικτφου. Εφκολοσ διαμοιραςμόσ share με άλλουσ χριςτεσ.
Παραδείγματα:
Dropbox http://www.dropbox.com
Google drive
Microsoft SkyDrive
33
Κ. Διαμαντάρασ
Θεωρία Λειτουργικϊν
Συςτθμάτων
35. Cloud Computing: παγίδα ι ευκαιρία?
Η Παγίδα:
Ο πάροχοσ γνωρίηει όλεσ τισ υπολογιςτικζσ δραςτθριότθτεσ του πελάτθ: τα
αρχεία του, τισ εφαρμογζσ του, τα email του, τισ βάςεισ δεδομζνων του,
κλπ
Ο πελάτθσ εξαρτάται από τον πάροχο. Όςο αυτόσ είναι αξιόπιςτοσ δεν
υπάρχει πρόβλθμα.
Η Ευκαιρία:
Οι μθχανικοί πλθροφορικισ και οι προγραμματιςτζσ διακζτουν νζο πεδίο
ανάπτυξθσ διαδικτυακϊν εφαρμογϊν και υπθρεςιϊν με δυνθτικοφσ
πελάτεσ οπουδιποτε ςτον κόςμο. Απαραίτθτεσ οι γνϊςεισ ανάπτυξθσ
διαδικτυακϊν εφαρμογϊν (πχ. php/asp, javascript, mysql, κλπ). Ανάγκθ
εξοικείωςθσ με τισ πλατφόρμεσ API που προςφζρει ο πάροχοσ για
ανάπτυξθ εφαρμογϊν cloud (πχ., eclipse, Java για Google Apps, ι Visual
Studio για Windows Azure)
35
Κ. Διαμαντάρασ
Θεωρία Λειτουργικϊν
Συςτθμάτων