Υπολογιςτικά Νζφθ
Cloud Computing
Κϊςτασ Διαμαντάρασ
Τμιμα Πλθροφορικισ
ΤΕΙ Θεςςαλονίκθσ
Βαςικζσ ζννοιεσ
 Πελάτησ (client): Υπολογιςτισ / ςτακμόσ εργαςίασ που αιτείται και

χρθςιμοποιεί υπθρεςίεσ, δεδομζνα ι εφαρμογζσ από κάποιον
εξυπθρετθτι (μοιάηει με τον πελάτθ ςε μια τράπεηα)
 Εξυπηρετητήσ (server): Ιςχυρόσ υπολογιςτισ που ςυγκεντρϊνει
υπθρεςίεσ, εφαρμογζσ ι δεδομζνα και τα προςφζρει ςτουσ πελάτεσ αφοφ
τα αιτθκοφν (μοιάηει με τον ταμία ι κάποιο υπάλλθλο μιασ τράπεηασ που
μπορεί να εξυπθρετεί πολλοφσ πελάτεσ)
 Διαςφνδεςη προγραμμάτων εφαρμογών (Application Programming
interface – API): ςφνολο ςυναρτιςεων και προγραμμάτων που
επιτρζπουν τθν επικοινωνία μεταξφ πελατϊν – εξυπθρετθτϊν
 Ενδιάμεςο λογιςμικό (Middleware): ζνα ςτρϊμα λογιςμικοφ πάνω από
το λειτουργικό ςφςτθμα που κρφβει τα ετερογενι χαρακτθριςτικά των
υπολογιςτϊν που αποτελοφν ζνα κατανεμθμζνο ςφςτθμα προςφζροντασ
μια «αφθρθμζνθ μθχανι» ϊςτε οι προγραμματιςτζσ να αναπτφςςουν
εφαρμογζσ ςτο ςφςτθμα.

2

Κ. Διαμαντάρασ

Θεωρία Λειτουργικϊν
Συςτθμάτων
Εφαρμογζσ πελάτθ - εξυπθρετθτι
Χαρακτθριςτικά:

• ΛΣ πελάτθ διαφορετικό
από ΛΣ εξυπθρετθτι
• ΛΣ πελατϊν πικανϊσ
διαφζρουν μεταξφ τουσ
• Απαραίτθτθ επικοινωνία
πελάτθ εξυπθρετθτι
μζςω τυποποιθμζνου
πρωτοκόλλου (πχ
TCP/IP)

3

Κ. Διαμαντάρασ

Θεωρία Λειτουργικϊν
Συςτθμάτων
Εφαρμογζσ πελάτθ - εξυπθρετθτι
Πελάτθσ

Εξυπθρετθτισ

Υπθρεςίεσ
Παρουςίαςθσ (πχ GUI)
Λογιςμικό εφαρμογισ
πελάτθ

Αίτθμα
Απόκριςθ

Λογιςμικό εφαρμογισ
εξυπθρετθτι

4

Κ. Διαμαντάρασ

ΛΣ πελάτθ

ΛΣ εξυπθρετθτι

Υλικό

Υλικό

Πλατφόρμα
εξυπθρετθτι

Πλατφόρμα
πελάτθ

Λογιςμικό Επικοινωνιϊν Πρωτόκολλο Λογιςμικό Επικοινωνιϊν
δικτφου

Θεωρία Λειτουργικϊν
Συςτθμάτων
Παράδειγμα: Web
Αίτθμα http

Διαδίκτυο

Λιψθ ςελίδασ
html
Πελάτησ:

Αίτθμα http
Απόκριςθ =
ςελίδα html
Εξυπηρετητήσ:

• Εφαρμογι: Mozilla Firefox (Web
browser)

• Εφαρμογι: Apache (http server)

• Ο Firefox ςτζλνει αίτθμα
προςκόμιςθσ τθσ ιςτοςελίδασ

• Απαντάει προςκομίηοντασ μια
ςελίδα (αρχείο) html

• Λαμβάνει το αίτθμα http

http://195.251.123.246/
• Ο Firefox λαμβάνει το αρχείο
html, το επεξεργάηεται και το
δείχνει τθν οκόνθ.
5

Κ. Διαμαντάρασ

Θεωρία Λειτουργικϊν
Συςτθμάτων
Παράδειγμα: Web
 Ο πελάτθσ μπορεί να διακζτει οποιοδιποτε λειτουργικό απλοφ

ςτακμοφ εργαςίασ (πχ, Windows, Linux, Mac OS, κλπ)
 Ο εξυπθρετθτισ μπορεί επίςθσ να διακζτει οποιοδιποτε λειτουργικό
εξυπθρετθτι (πχ, Windows Server, UNIX, Mac OS X Server, κλπ)
 Το ενδιάμεςο λογιςμικό που υλοποιεί το πρωτόκολλο ανταλλαγισ
αρχείων hyper-text (hyper-text transfer protocol – http) κάνει το ΛΣ
διαφανζσ τόςο για τον πελάτθ όςο και για τον εξυπθρετθτι: οφτε ο
πελάτθσ χρειάηεται να γνωρίηει το ΛΣ του εξυπθρετθτι οφτε ο
εξυπθρετθτισ χρειάηεται να γνωρίηει το ΛΣ του πελάτθ.
Οποιοςδιποτε ςυνδυαςμόσ των ΛΣ πελάτθ / εξυπθρετθτι δουλεφει
κακϊσ θ επικοινωνία βαςίηεται ςτο ενδιάμεςο ςτρϊμα που είναι
κοινό.

6

Κ. Διαμαντάρασ

Θεωρία Λειτουργικϊν
Συςτθμάτων
Παράδειγμα: Η υπθρεςία 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

Θεωρία Λειτουργικϊν
Συςτθμάτων
Παράδειγμα: Βάςεισ Δεδομζνων
 Από τισ πλζον ςυνθκιςμζνεσ οικογζνεια εφαρμογϊν πελάτθ –

εξυπθρετθτι. Ο πελάτθσ ςτζλνει ερωτιματα (queries) ςε μια
(ςχεςιακι) βάςθ δεδομζνων (ΒΔ) που βρίςκεται ςτον εξυπθρετθτι. Ο
εξυπθρετθτισ εκτελεί τα ερωτιματα και επιςτρζφει τθν απάντθςθ με
τθν μορφι γραμμϊν ςε ζνα πίνακα.
Πελάτθσ

Εξυπθρετθτισ

Λογιςμικό παρουςίαςθσ (GUI)
Λογιςμικό Εφαρμογισ
Λογικι ΒΔ
Λογιςμικό Επικοινωνιϊν

Πλατφόρμα (υλικό + ΛΣ)
8

Κ. Διαμαντάρασ

Αίτθμα
Απόκριςθ
Πρωτόκολλο
δικτφου

Λογικι ΒΔ
Λογ. Επικοιν.

DBMS

Πλατφόρμα (υλικό + ΛΣ)
Θεωρία Λειτουργικϊν
Συςτθμάτων
Τφποι εφαρμογϊν πελάτθ/εξυπθρετθτι
 Επεξεργαςία βαςιςμζνθ ςτον πελάτθ (client-based)

Πελάτθσ

Εξυπθρετθτισ

Λογιςμικό παρουςίαςθσ (GUI)
Λογιςμικό Εφαρμογισ
Ερωτιςεισ ςτθ ΒΔ

Ερωτιςεισ ςτθ ΒΔ
DBMS

9

Κ. Διαμαντάρασ

Θεωρία Λειτουργικϊν
Συςτθμάτων
Τφποι εφαρμογϊν πελάτθ/εξυπθρετθτι
 Επεξεργαςία βαςιςμζνη ςτον εξυπηρετητή (server-based)
 Ο πελάτθσ είναι επιφορτιςμζνοσ με τθν διεπαφι του χριςτθ, ςυνικωσ ζνα

γραφικό περιβάλλον με παράκυρα γνωςτό ωσ graphical user interface
(GUI)
 Όλθ θ επεξεργαςία γίνεται ςτο περιβάλλον του εξυπθρετθτι
Πελάτθσ

Εξυπθρετθτισ

Λογιςμικό παρουςίαςθσ (GUI)

Λογιςμικό Εφαρμογισ
Ερωτιςεισ ςτθ ΒΔ
DBMS
10

Κ. Διαμαντάρασ

Θεωρία Λειτουργικϊν
Συςτθμάτων
Αίτθμα Αποςτολισ
/ Λιψθσ μθνυμ.

Αίτθμα Αποςτολισ
μθνφματοσ

Διαδίκτυο

Λιψθ μθνυμάτων

Αίτθμα Λιψθσ
μθνφματοσ

Απόκριςθ =
μθνφματα
Πελάτησ:

Υπθρεςία
POP/IMAP

 E-mail client

Υπθρεςία
SMTP

Παράδειγμα: Επεξεργαςία βαςιςμζνθ ςτον
πελάτθ

Εξυπηρετητήσ:

• Εφαρμογι: Mozilla Thunderbird
(email client)

• Εφαρμογι: Microsoft Exchange
Server

• Τα μθνφματα φυλάςςονται ςτον
δίςκο του πελάτθ.

• Υπθρεςίεσ : SMTP για αποςτολι
και POP3/IMAP για λιψθ
μθνυμάτων

• Η επεξεργαςία των μθνυμάτων
γίνεται ςτον πελάτθ
11

Κ. Διαμαντάρασ

Θεωρία Λειτουργικϊν
Συςτθμάτων
Παράδειγμα: Επεξεργαςία βαςιςμζνθ ςτον
εξυπθρετθτι (1)
 Web mail

Αίτθμα http

Διαδίκτυο

Λιψθ
html ςελίδασ
Πελάτησ:

Αίτθμα http
Εκτζλεςθ.
Απόκριςθ html
Εξυπηρετητήσ (Google):

• Εφαρμογι: Google Chrome
(web browser)

• Εφαρμογι: Horde (open source
webmail server)

• Αποςτολι (με χριςθ http)
αιτιματοσ αποςτολισ, λιψθσ ι
επεξεργαςίασ μθνυματων

• Λαμβάνει το αίτθμα

http://webmail.teithe.gr
• Ο Chrome λαμβάνει τθν ςελίδα
και τθν εμφανίηει ςτθν οκόνθ
12

Κ. Διαμαντάρασ

• Εκτελεί τθν αιτοφμενθ
λειτουργία

• Αποκρίνεται προςκομίηοντασ
μια html ςελίδα με τθν
απάντθςθ ςτο αίτθμα
Θεωρία Λειτουργικϊν
Συςτθμάτων
Παράδειγμα: Επεξεργαςία βαςιςμζνθ ςτον
εξυπθρετθτι (2)
 Google search

Ερϊτθμα
search
Λιψθ
html ςελίδασ
Πελάτησ:

Διαδίκτυο

Ερϊτθμα
search
Απόκριςθ =
html ςελίδα
Εξυπηρετητήσ (Google):

• Εφαρμογι: Internet Explorer
(web browser)

• Εφαρμογι: Ιδιωτικι τθσ google
(όχι γνωςτζσ λεπτομζρειεσ)

• Αποςτολι (με χριςθ http)
ερωτιματοσ search

• Λαμβάνει το ερϊτθμα search

www.google.com

• Ο IE λαμβάνει τθν ςελίδα και
τθν εμφανίηει ςτθν οκόνθ
13

Κ. Διαμαντάρασ

• Αποκρίνεται προςκομίηοντασ
μια html ςελίδα με τθν
απάντθςθ ςτο ερϊτθμα

Θεωρία Λειτουργικϊν
Συςτθμάτων
Υπθρεςίεσ Web
HTTP, HTML, Javascript, php

14

Κ. Διαμαντάρασ

Θεωρία Λειτουργικϊν
Συςτθμάτων
Υπθρεςίεσ 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

Κ. Διαμαντάρασ

Θεωρία Λειτουργικϊν
Συςτθμάτων
Παράδειγμα: http://www.it.teithe.gr

16

Κ. Διαμαντάρασ

Θεωρία Λειτουργικϊν
Συςτθμάτων
Η γλϊςςα 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

Κ. Διαμαντάρασ

Θεωρία Λειτουργικϊν
Συςτθμάτων
HTML Document Object Model (DOM)
 Τα html tags που αποτελοφν ζνα αρχείο html αντιςτοιχοφν ςε

αντικείμενα ενόσ μοντζλου που καλείται Document Object Model. Η
ιεραρχία των αντικειμζνων είναι πολφπλοκθ και ξεφεφγει του ςκοποφ
αυτοφ του μακιματοσ.
 Ζνα παράδειγμα ιεραρχίασ αντικειμζνων και των ιδιοτιτων τουσ
(attributes) φαίνεται ςτο παρακάτω ςχιμα.

18

Κ. Διαμαντάρασ

Θεωρία Λειτουργικϊν
Συςτθμάτων
HTML DOM

<html>
<head><title>My title</title></head>
<body><a href=“...”>My link</a>
<h1>My header</h1>
</body>
</html>
19

Κ. Διαμαντάρασ

Θεωρία Λειτουργικϊν
Συςτθμάτων
HTML Scripting
 Η γλϊςςα HTML επιτρζπει τθν ςυμπερίλθψθ προγραμμάτων μζςα ςτο

αρχείο html που επιςτρζφεται από τον εξυπθρετθτι. Τα προγράμματα
που περιζχονται ςτο αρχείο html λζγονται “scripts” και πρζπει να
είναι γραμμζνα ςε μια κατάλλθλθ γλϊςςα όπωσ πχ, JavaScript ι θ
VBScript.
 Τα προγράμματα εκτελοφνται από τον browser του πελάτθ, γι’ αυτό
και θ χριςθ τουσ καλείται client-side scripting (scripting από τθν μεριά
του πελάτθ).
 Ο browser του πελάτθ διακζτει ενςωματωμζνο τον κατάλλθλο
compiler για τθν μετάφραςθ και εκτζλεςθ των scripts. Όλοι οι
μοντζρνοι browsers υποςτθρίηουν JavaScript.

20

Κ. Διαμαντάρασ

Θεωρία Λειτουργικϊν
Συςτθμάτων
Παράδειγμα: 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

Κ. Διαμαντάρασ

Θεωρία Λειτουργικϊν
Συςτθμάτων
Server side scripting
 Στθν πλειοψθφία των διαδικτυακϊν εφαρμογϊν πελάτθ –

εξυπθρετθτι απαιτείται θ πρόςβαςθ ςε κάποια βάςθ δεδομζνων για
τθν άντλθςθ ςτοιχείων. Χαρακτθριςτικά παραδείγματα:
 οι μθχανζσ αναηιτθςθσ όπωσ google, bing, yahoo, κλπ
 Τα θλεκτρονικά καταςτιματα όπωσ amazon, κλπ
 Η θλεκτρονικι κράτθςθ ειςιτθρίων/κζςεων ςε αεροπλάνα, ξενοδοχεία,

κινθματογράφουσ, κλπ
 Οι υπθρεςίεσ κοινωνικισ δικτφωςθσ όπωσ facebook, google+, twitter, κλπ
 Η θλεκτρονικι καταχϊρθςθ βακμϊν και γενικά θ θλεκτρονικι διαχείριςθ
μακθμάτων
 Και πολλζσ άλλεσ εφαρμογζσ (ι μάλλον θ μεγάλθ πλειοψθφία)

22

Κ. Διαμαντάρασ

Θεωρία Λειτουργικϊν
Συςτθμάτων
Server side scripting: θ γλϊςςα php
 Η χριςθ κατανεμθμζνων βάςεων δεδομζνων απαιτεί τθν κλιςθ ενόσ

προγράμματοσ ςτθ μεριά του εξυπθρετθτι το οποίο κα κάνει
ερϊτθμα (query) ςτθν βάςθ δεδομζνων –πικανότατα με χριςθ SQL –
και κα επιςτρζψει το αποτζλεςμα ςτον πελάτθ.
 Δεν είναι πρακτικό να αντιγραφεί ολόκλθρθ θ βάςθ δεδομζνων ςτον
πελάτθ και να γίνει εκεί το query κακϊσ θ βάςθ μπορεί να είναι
εξαιρετικά μεγάλθ. Άλλωςτε ο χριςτθσ δεν ενδιαφζρεται να να
ςυντθρεί τθ βάςθ οφτε να μάκει πϊσ γίνεται ζνα ερϊτθμα SQL. Αυτό
το αναλαμβάνει ζνα πρόγραμμα ςτθν πλευρά του εξυπθρετθτι.
 Για το ςκοπό αυτό υπάρχουν γλϊςςεσ που υποςτθρίηουν τθ
ςυγγραφι προγραμμάτων που εκτελοφνται ςτον εξυπθρετθτι μετά
από κλιςθ του πελάτθ.
 Παραδείγματα τζτοιων γλωςςϊν είναι θ php και θ asp.

23

Κ. Διαμαντάρασ

Θεωρία Λειτουργικϊν
Συςτθμάτων
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
Θεωρία Λειτουργικϊν
Συςτθμάτων
Παράδειγμα: php
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF8"
/>
</head>
<p>Αυτό είναι στατικό html.</p>
<?php
$a = $_GET['a'];
$str = $_GET['str'];
if ($a && $str) {
echo "<p>Παράμετρος 1: <b>$a</b>, Παράμετρος 2:
<b>$str</b></p>";
}
?>
</html>
Δείτε το εδϊ
http://aetos.it.teithe.gr/~kdiamant/OpSys/test.php?a=3&str=hello
25

Κ. Διαμαντάρασ

Θεωρία Λειτουργικϊν
Συςτθμάτων
Επικοινωνία php με βάςθ δεδομζνων ςτον
εξυπθρετθτι
 Η πιο ςυνθκιςμζνθ εφαρμογι τθσ php είναι θ ςφνδεςι τθσ με μια

τοπικι ςχεςιακι βάςθ δεδομζνων ςτον εξυπθρετθτι. Πιο
ςυνθκιςμζνθ περίπτωςθ είναι θ ςφνδεςθ με τθν βάςθ mysql, αλλά
είναι δυνατι και θ ςφνδεςθ με άλλεσ βάςεισ όπωσ θ postgresql, κα.
 Χρθςιμοποιϊντασ εντολζσ όπωσ mysql_connect(), mysql_query() και
mysql_fetch_array(), mysql_close(), κλπ, είναι δυνατι θ εκτζλεςθ
ερωτιματοσ ςτθ βάςθ και το ςερβίριςμα του αποτελζςματοσ ςτον
πελάτθ με μορφι αρχείου html κατάλλθλου για να εμφανιςτεί ςτον
browser του πελάτθ.
 Η ανάλυςθ των εντολϊν χριςθσ τθσ mysql (ι άλλων ΒΔ) από τθν php
ξεφεφγει από τα όρια του παρόντοσ μακιματοσ

26

Κ. Διαμαντάρασ

Θεωρία Λειτουργικϊν
Συςτθμάτων
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

Κ. Διαμαντάρασ

Θεωρία Λειτουργικϊν
Συςτθμάτων
Υπθρεςίεσ Νζφουσ (Cloud)
 Υπηρεςίεσ Νζφουσ (Cloud Services): Παροχι υπολογιςτικϊν







28

υπθρεςιϊν μζςω του διαδικτφου.
Χριςθ του browser ωσ πλατφόρμασ εκτζλεςθσ των προγραμμάτων.
Βαςικό χαρακτηριςτικό: ο υπολογιςτισ ι οι υπολογιςτζσ που τρζχουν
τθν εφαρμογι μασ βρίςκονται «αλλοφ» και όχι ςτο γραφείο μασ. Δεν
ζχουμε φυςικι επαφι με αυτοφσ οφτε ξζρουμε ακριβϊσ που
βρίςκονται. Επικοινωνία μόνο μζςω διαδικτφου και browser
Βαςικό χαρακτηριςτικό: ο πάροχοσ διακζτει μεγάλο πλικοσ
υπολογιςτικϊν κόμβων (ςυνικωσ αρκετζσ χιλιάδεσ ι και
εκατομμφρια)
Ουςιώδεσ χαρακτηριςτικό: ο πάροχοσ των υπθρεςιϊν προςφζρει
πλιρθ γκάμα υπθρεςιϊν (όχι μόνο πχ, email και ftp). Επίςθσ
προςφζρει πλατφόρμα ανάπτυξθσ διαδικτυακϊν εφαρμογϊν από
τουσ ίδιουσ τουσ πελάτεσ

Κ. Διαμαντάρασ

Θεωρία Λειτουργικϊν
Συςτθμάτων
Γιατί cloud computing?
 Απαλλαγι του πελάτθ από το άγχοσ ςυντιρθςθσ του ςυςτιματοσ
 Απαλλαγι του πελάτθ από το κόςτοσ ςυντιρθςθσ, αναβάκμιςθσ,

backup, κλπ
 Ο πάροχοσ προςφζρει εγγυθμζνθ αξιοπιςτία (ο υπολογιςτισ μου
μπορεί να «κραςάρει», θ google ποτζ!)
 Προςπζλαςθ δεδομζνων, προγραμμάτων και εφαρμογϊν από
οποιοδιποτε υπολογιςτι, κινθτό τθλζφωνο ι tablet, ακόμθ και αν δεν
είναι δικό μου: πχ από ζνα internet café το καλοκαίρι ςτισ διακοπζσ

29

Κ. Διαμαντάρασ

Θεωρία Λειτουργικϊν
Συςτθμάτων
Τφποι υπθρεςιϊν cloud

(1)

 Infrastructure as a Service (IaaS) : Ο πάροχοσ προςφζρει ςτον πελάτθ

εικονικοφσ υπολογιςτζσ. Ο πελάτθσ κάνει login, ζχει desktop, ζχει δικά
του αρχεία, μπορεί να εγκαταςτιςει και να εκτελζςει προγράμματα,
κλπ, ςαν να ιταν ο δικόσ του υπολογιςτισ. Μόνο που ο υπολογιςτισ
αυτόσ βρίςκεται «αλλοφ» και δεν υπάρχει φυςικι πρόςβαςθ
 Παράδειγμα: Virtual machines
 Amazon EC2

 Windows Azure Virtual Machines
 Google Compute Engine

30

Κ. Διαμαντάρασ

Θεωρία Λειτουργικϊν
Συςτθμάτων
Τφποι υπθρεςιϊν cloud

(2)

 Platform as a Service (PaaS) : Ο πάροχοσ προςφζρει ςτον πελάτθ μια

πλατφόρμα θ οποία τυπικά περιλαμβάνει λειτουργικό ςφςτθμα,
πλατφόρμα ανάπτυξθσ και εκτζλεςθσ προγραμμάτων, βάςθ
δεδομζνων και web server. Τυπικι χριςθ: ανάπτυξθ δυναμικϊν
ιςτοςελίδων, blogs, διαδικτυακϊν εφαρμογϊν, κλπ.
 Παραδείγματα:
 Google App Engine

 Windows Azure Compute

31

Κ. Διαμαντάρασ

Θεωρία Λειτουργικϊν
Συςτθμάτων
Τφποι υπθρεςιϊν cloud

(3)

 Software as a Service (SaaS) : Ο πάροχοσ προςφζρει ςτον πελάτθ

πλατφόρμα ανάπτυξθσ εφαρμογϊν οι οποίεσ εκτελοφνται ςτουσ
εξυπθρετθτζσ του παρόχου. Ο πελάτθσ κάνοντασ login, μπορεί να
εκτελεί τα προγράμματα αυτά μζςω του browser.
 Παραδείγματα:
 Google Apps
 Microsoft Office 365

32

Κ. Διαμαντάρασ

Θεωρία Λειτουργικϊν
Συςτθμάτων
Τφποι υπθρεςιϊν cloud

(2)

 STorage as a Service (STaaS) : Ο πάροχοσ προςφζρει ςτον πελάτθ

χϊρο ςε εικονικό δίςκο. Ο πελάτθσ μπορεί να προςπελάςει τα αρχεία
του από οποιοδιποτε υπολογιςτι, κινθτό τθλζφωνο ι tablet μζςω
διαδικτφου. Εφκολοσ διαμοιραςμόσ share με άλλουσ χριςτεσ.
 Παραδείγματα:
 Dropbox http://www.dropbox.com
 Google drive

 Microsoft SkyDrive

33

Κ. Διαμαντάρασ

Θεωρία Λειτουργικϊν
Συςτθμάτων
Επίδειξθ
 Google Cloud

 Microsoft Windows Azure

34

Κ. Διαμαντάρασ

Θεωρία Λειτουργικϊν
Συςτθμάτων
Cloud Computing: παγίδα ι ευκαιρία?
 Η Παγίδα:
 Ο πάροχοσ γνωρίηει όλεσ τισ υπολογιςτικζσ δραςτθριότθτεσ του πελάτθ: τα

αρχεία του, τισ εφαρμογζσ του, τα email του, τισ βάςεισ δεδομζνων του,
κλπ
 Ο πελάτθσ εξαρτάται από τον πάροχο. Όςο αυτόσ είναι αξιόπιςτοσ δεν
υπάρχει πρόβλθμα.
 Η Ευκαιρία:
 Οι μθχανικοί πλθροφορικισ και οι προγραμματιςτζσ διακζτουν νζο πεδίο

ανάπτυξθσ διαδικτυακϊν εφαρμογϊν και υπθρεςιϊν με δυνθτικοφσ
πελάτεσ οπουδιποτε ςτον κόςμο. Απαραίτθτεσ οι γνϊςεισ ανάπτυξθσ
διαδικτυακϊν εφαρμογϊν (πχ. php/asp, javascript, mysql, κλπ). Ανάγκθ
εξοικείωςθσ με τισ πλατφόρμεσ API που προςφζρει ο πάροχοσ για
ανάπτυξθ εφαρμογϊν cloud (πχ., eclipse, Java για Google Apps, ι Visual
Studio για Windows Azure)

35

Κ. Διαμαντάρασ

Θεωρία Λειτουργικϊν
Συςτθμάτων

Μοντέλο Client/Server, Διαδικτυακές υπηρεσίες και Cloud computing

  • 1.
    Υπολογιςτικά Νζφθ Cloud Computing ΚϊςτασΔιαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ
  • 2.
    Βαςικζσ ζννοιεσ  Πελάτησ(client): Υπολογιςτισ / ςτακμόσ εργαςίασ που αιτείται και χρθςιμοποιεί υπθρεςίεσ, δεδομζνα ι εφαρμογζσ από κάποιον εξυπθρετθτι (μοιάηει με τον πελάτθ ςε μια τράπεηα)  Εξυπηρετητήσ (server): Ιςχυρόσ υπολογιςτισ που ςυγκεντρϊνει υπθρεςίεσ, εφαρμογζσ ι δεδομζνα και τα προςφζρει ςτουσ πελάτεσ αφοφ τα αιτθκοφν (μοιάηει με τον ταμία ι κάποιο υπάλλθλο μιασ τράπεηασ που μπορεί να εξυπθρετεί πολλοφσ πελάτεσ)  Διαςφνδεςη προγραμμάτων εφαρμογών (Application Programming interface – API): ςφνολο ςυναρτιςεων και προγραμμάτων που επιτρζπουν τθν επικοινωνία μεταξφ πελατϊν – εξυπθρετθτϊν  Ενδιάμεςο λογιςμικό (Middleware): ζνα ςτρϊμα λογιςμικοφ πάνω από το λειτουργικό ςφςτθμα που κρφβει τα ετερογενι χαρακτθριςτικά των υπολογιςτϊν που αποτελοφν ζνα κατανεμθμζνο ςφςτθμα προςφζροντασ μια «αφθρθμζνθ μθχανι» ϊςτε οι προγραμματιςτζσ να αναπτφςςουν εφαρμογζσ ςτο ςφςτθμα. 2 Κ. Διαμαντάρασ Θεωρία Λειτουργικϊν Συςτθμάτων
  • 3.
    Εφαρμογζσ πελάτθ -εξυπθρετθτι Χαρακτθριςτικά: • ΛΣ πελάτθ διαφορετικό από ΛΣ εξυπθρετθτι • ΛΣ πελατϊν πικανϊσ διαφζρουν μεταξφ τουσ • Απαραίτθτθ επικοινωνία πελάτθ εξυπθρετθτι μζςω τυποποιθμζνου πρωτοκόλλου (πχ TCP/IP) 3 Κ. Διαμαντάρασ Θεωρία Λειτουργικϊν Συςτθμάτων
  • 4.
    Εφαρμογζσ πελάτθ -εξυπθρετθτι Πελάτθσ Εξυπθρετθτισ Υπθρεςίεσ Παρουςίαςθσ (πχ GUI) Λογιςμικό εφαρμογισ πελάτθ Αίτθμα Απόκριςθ Λογιςμικό εφαρμογισ εξυπθρετθτι 4 Κ. Διαμαντάρασ ΛΣ πελάτθ ΛΣ εξυπθρετθτι Υλικό Υλικό Πλατφόρμα εξυπθρετθτι Πλατφόρμα πελάτθ Λογιςμικό Επικοινωνιϊν Πρωτόκολλο Λογιςμικό Επικοινωνιϊν δικτφου Θεωρία Λειτουργικϊν Συςτθμάτων
  • 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 Πλατφόρμα (υλικό + ΛΣ) Θεωρία Λειτουργικϊν Συςτθμάτων
  • 9.
    Τφποι εφαρμογϊν πελάτθ/εξυπθρετθτι Επεξεργαςία βαςιςμζνθ ςτον πελάτθ (client-based) Πελάτθσ Εξυπθρετθτισ Λογιςμικό παρουςίαςθσ (GUI) Λογιςμικό Εφαρμογισ Ερωτιςεισ ςτθ ΒΔ Ερωτιςεισ ςτθ ΒΔ DBMS 9 Κ. Διαμαντάρασ Θεωρία Λειτουργικϊν Συςτθμάτων
  • 10.
    Τφποι εφαρμογϊν πελάτθ/εξυπθρετθτι Επεξεργαςία βαςιςμζνη ςτον εξυπηρετητή (server-based)  Ο πελάτθσ είναι επιφορτιςμζνοσ με τθν διεπαφι του χριςτθ, ςυνικωσ ζνα γραφικό περιβάλλον με παράκυρα γνωςτό ωσ graphical user interface (GUI)  Όλθ θ επεξεργαςία γίνεται ςτο περιβάλλον του εξυπθρετθτι Πελάτθσ Εξυπθρετθτισ Λογιςμικό παρουςίαςθσ (GUI) Λογιςμικό Εφαρμογισ Ερωτιςεισ ςτθ ΒΔ DBMS 10 Κ. Διαμαντάρασ Θεωρία Λειτουργικϊν Συςτθμάτων
  • 11.
    Αίτθμα Αποςτολισ / Λιψθσμθνυμ. Αίτθμα Αποςτολισ μθνφματοσ Διαδίκτυο Λιψθ μθνυμάτων Αίτθμα Λιψθσ μθνφματοσ Απόκριςθ = μθνφματα Πελάτησ: Υπθρεςία POP/IMAP  E-mail client Υπθρεςία SMTP Παράδειγμα: Επεξεργαςία βαςιςμζνθ ςτον πελάτθ Εξυπηρετητήσ: • Εφαρμογι: Mozilla Thunderbird (email client) • Εφαρμογι: Microsoft Exchange Server • Τα μθνφματα φυλάςςονται ςτον δίςκο του πελάτθ. • Υπθρεςίεσ : SMTP για αποςτολι και POP3/IMAP για λιψθ μθνυμάτων • Η επεξεργαςία των μθνυμάτων γίνεται ςτον πελάτθ 11 Κ. Διαμαντάρασ Θεωρία Λειτουργικϊν Συςτθμάτων
  • 12.
    Παράδειγμα: Επεξεργαςία βαςιςμζνθςτον εξυπθρετθτι (1)  Web mail Αίτθμα http Διαδίκτυο Λιψθ html ςελίδασ Πελάτησ: Αίτθμα http Εκτζλεςθ. Απόκριςθ html Εξυπηρετητήσ (Google): • Εφαρμογι: Google Chrome (web browser) • Εφαρμογι: Horde (open source webmail server) • Αποςτολι (με χριςθ http) αιτιματοσ αποςτολισ, λιψθσ ι επεξεργαςίασ μθνυματων • Λαμβάνει το αίτθμα http://webmail.teithe.gr • Ο Chrome λαμβάνει τθν ςελίδα και τθν εμφανίηει ςτθν οκόνθ 12 Κ. Διαμαντάρασ • Εκτελεί τθν αιτοφμενθ λειτουργία • Αποκρίνεται προςκομίηοντασ μια html ςελίδα με τθν απάντθςθ ςτο αίτθμα Θεωρία Λειτουργικϊν Συςτθμάτων
  • 13.
    Παράδειγμα: Επεξεργαςία βαςιςμζνθςτον εξυπθρετθτι (2)  Google search Ερϊτθμα search Λιψθ html ςελίδασ Πελάτησ: Διαδίκτυο Ερϊτθμα search Απόκριςθ = html ςελίδα Εξυπηρετητήσ (Google): • Εφαρμογι: Internet Explorer (web browser) • Εφαρμογι: Ιδιωτικι τθσ google (όχι γνωςτζσ λεπτομζρειεσ) • Αποςτολι (με χριςθ http) ερωτιματοσ search • Λαμβάνει το ερϊτθμα search www.google.com • Ο IE λαμβάνει τθν ςελίδα και τθν εμφανίηει ςτθν οκόνθ 13 Κ. Διαμαντάρασ • Αποκρίνεται προςκομίηοντασ μια html ςελίδα με τθν απάντθςθ ςτο ερϊτθμα Θεωρία Λειτουργικϊν Συςτθμάτων
  • 14.
    Υπθρεςίεσ Web HTTP, HTML,Javascript, php 14 Κ. Διαμαντάρασ Θεωρία Λειτουργικϊν Συςτθμάτων
  • 15.
    Υπθρεςίεσ Web Hyper-Text TransferProtocol (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 Κ. Διαμαντάρασ Θεωρία Λειτουργικϊν Συςτθμάτων
  • 16.
  • 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 ObjectModel (DOM)  Τα html tags που αποτελοφν ζνα αρχείο html αντιςτοιχοφν ςε αντικείμενα ενόσ μοντζλου που καλείται Document Object Model. Η ιεραρχία των αντικειμζνων είναι πολφπλοκθ και ξεφεφγει του ςκοποφ αυτοφ του μακιματοσ.  Ζνα παράδειγμα ιεραρχίασ αντικειμζνων και των ιδιοτιτων τουσ (attributes) φαίνεται ςτο παρακάτω ςχιμα. 18 Κ. Διαμαντάρασ Θεωρία Λειτουργικϊν Συςτθμάτων
  • 19.
    HTML DOM <html> <head><title>My title</title></head> <body><ahref=“...”>My link</a> <h1>My header</h1> </body> </html> 19 Κ. Διαμαντάρασ Θεωρία Λειτουργικϊν Συςτθμάτων
  • 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 Θεωρία Λειτουργικϊν Συςτθμάτων
  • 25.
    Παράδειγμα: php <html> <head> <meta http-equiv="Content-Type"content="text/html; charset=UTF8" /> </head> <p>Αυτό είναι στατικό html.</p> <?php $a = $_GET['a']; $str = $_GET['str']; if ($a && $str) { echo "<p>Παράμετρος 1: <b>$a</b>, Παράμετρος 2: <b>$str</b></p>"; } ?> </html> Δείτε το εδϊ http://aetos.it.teithe.gr/~kdiamant/OpSys/test.php?a=3&str=hello 25 Κ. Διαμαντάρασ Θεωρία Λειτουργικϊν Συςτθμάτων
  • 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 Κ. Διαμαντάρασ Θεωρία Λειτουργικϊν Συςτθμάτων
  • 34.
    Επίδειξθ  Google Cloud Microsoft Windows Azure 34 Κ. Διαμαντάρασ Θεωρία Λειτουργικϊν Συςτθμάτων
  • 35.
    Cloud Computing: παγίδαι ευκαιρία?  Η Παγίδα:  Ο πάροχοσ γνωρίηει όλεσ τισ υπολογιςτικζσ δραςτθριότθτεσ του πελάτθ: τα αρχεία του, τισ εφαρμογζσ του, τα email του, τισ βάςεισ δεδομζνων του, κλπ  Ο πελάτθσ εξαρτάται από τον πάροχο. Όςο αυτόσ είναι αξιόπιςτοσ δεν υπάρχει πρόβλθμα.  Η Ευκαιρία:  Οι μθχανικοί πλθροφορικισ και οι προγραμματιςτζσ διακζτουν νζο πεδίο ανάπτυξθσ διαδικτυακϊν εφαρμογϊν και υπθρεςιϊν με δυνθτικοφσ πελάτεσ οπουδιποτε ςτον κόςμο. Απαραίτθτεσ οι γνϊςεισ ανάπτυξθσ διαδικτυακϊν εφαρμογϊν (πχ. php/asp, javascript, mysql, κλπ). Ανάγκθ εξοικείωςθσ με τισ πλατφόρμεσ API που προςφζρει ο πάροχοσ για ανάπτυξθ εφαρμογϊν cloud (πχ., eclipse, Java για Google Apps, ι Visual Studio για Windows Azure) 35 Κ. Διαμαντάρασ Θεωρία Λειτουργικϊν Συςτθμάτων