ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΔΙΟΙΚΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ Τεχνολογίες και Εφαρμογές Διαδικτύου Τυπικά Χαρακτηριστικά Εφαρμογών Διαδικτύου Κατερίνα Πραματάρη Τεχνολογίες και Εφαρμογές Διαδικτύου
Μια απλή ιεραρχική δομή του Web-Site 2
Ενδεικτική δομή σελίδας 3
Κριτήρια Σχεδίασης Ιστοθέσης Περιήγηση Συνέπεια Απόδοση Εμφάνιση Διασφάλιση ποιότητας - Αξιοπιστία Διαδραστικότητα Ασφάλεια Επεκτασιμότητα 4
Χρώματα και Γραφικά Χρησιμοποιείτε πρότυπα χρώματα Ακολουθείτε τα πρότυπα χρωμάτων Χρησιμοποιείτε συμπληρωματικά χρώματα Καθορίστε το χρώμα φόντου Χρησιμοποιείτε επιλεκτικά χαρακτηριστικά που απαιτούν πολύ εύρος ζώνης Σχεδιάστε τις ιστοθέσεις σας για άτομα με προβλήματα όρασης και ακοής Αποφύγετε χαρακτηριστικά που αποσπούν την προσοχή 5
Ανάπτυξη ενός Web-Site Βήμα 1: Επιλογή περιβάλλοντος φιλοξενίας Βήμα 2: Δήλωση ονόματος (register www.name.gr -> www.hostmaster.gr) Βήμα 3: Δημιουργία και διαχείριση περιεχομένου Βήμα 4: Σχεδίαση web-site Βήμα 5: Κατασκευή του web-site και έλεγχος Βήμα 6: Δημοσίευση και προβολή web-site 6
Τα βασικά μέρη μιας Εφαρμογής Διαδικτύου Internet Εύρος επικοινωνίας (bandwidth) Λογισμικό (Software) Υλικό (Hardware) 7
Ποιοτικές Προδιαγραφές (1) Φιλική διεπαφή Λειτουργικότητα Ευκολία πρόσβασης/ πλοήγησης Καλαίσθητη εικαστική παρουσίαση (Aesthetics) Διαθεσιμότητα Αξιοπιστία Ταχύτητα ανταπόκρισης Ασφάλεια 8
Ποιοτικές Προδιαγραφές (2) Φιλική διεπαφή Σχετίζεται με το πως έχει δομηθεί και λειτουργεί η εφαρμογή Διαθεσιμότητα Σχετίζεται με το αν η υπολογιστική υποδομή που φιλοξενεί την εφαρμογή λειτουργεί (είναι διαθέσιμη) Η εφαρμογή μπορεί να μην είναι διαθέσιμη στο σύνολό της (π.χ. Να μην ανταποκρίνεται κάποιο module) Αξιοπιστία Σχετίζεται με τα λάθη (bugs) που υπάρχουν στο λογισμικό Σχετίζεται με την αξιοπιστία των δεδομένων Ταχύτητα απόκρισης Σχεδίαση της εφαρμογής Δυνατότητες υπολογιστικής υποδομής Ασφάλεια Λειτουργικότητα εφαρμογής Σχεδίαση υπολογιστικής υποδομής 9
Ποιοτικές Προδιαγραφές (3) Φιλική διεπαφή Λειτουργικότητα Ευκολία πρόσβασης/ πλοήγησης Καλαίσθητη εικαστική παρουσίαση (Aesthetics) Διαθεσιμότητα Αξιοπιστία Ταχύτητα ανταπόκρισης Ασφάλεια Θέμα S/W Θέμα H/W, Com Θέμα S/W και Δεδομένων S/W, H/W, Com Θέμα S/W & H/W 10
Βασική Υπολογιστική Υποδομή Hardware Software Database Server Database Layer Web Server Application Layer Presentation Layer 11
Ενδεικτική υπολογιστική υποδομή 12
Web-Server Είναι το μηχάνημα (server) που έχει πρόσβαση στο Internet και τρέχει το Web Server Software (ή HTTP Server) Π.X. IIS (Internet Information Services) ή Apache Tomcat Server Φιλοξενεί το επίπεδο παρουσίασης και μπορεί και το επίπεδο εφαρμογής Η εφαρμογή μπορεί να τρέχει σε περισσότερους από έναν Web-Servers οι οποίοι είναι συνδεδεμένοι σε συνδεσμολογία Load Balancing 13
Λειτουργία Web-Server Software ή HTTP Server Πιο διαδεδομένα λογισμικά: Apache Tomcat IIS (Microsoft) Ακούει σε συγκεκριμένη διεύθυνση (1 Web-server ανά μηχάνημα) Είτε απ ευθείας IP address Είτε www address Δέχεται http requests για συγκεκριμένες σελίδες Υπάρχει default directory στο οποίο θα ελέγξει για τις σελίδες αυτές Αν υπάρχουν στοιχεία ελέγχου (κώδικας) στις σελίδες, θα περάσει τον έλεγχο στην εφαρμογή (π.χ. Servlets) Στέλνει τις σελίδες αυτές στον client (web-browser) 14
Τυπικά στοιχεία εφαρμογής (components) που εγκαθίστανται στον Web Server index.htm ή index.html Σελίδα που «σερβίρει» πρώτα by default ο web-server Μπορεί να έχει διαφορετικό όνομα αλλά θα πρέπει να αναφέρεται στη διεύθυνση π.χ. www.myaddress.gr/mypage.html Classes Servlets Components που υλοποιούν άλλες κλάσεις της εφαρμογής (π.χ. entity classes) 15
Τυπικά Πλαίσια Ανάπτυξης Εφαρμογών Διαδικτύου Web-Server Tomcat Apache, IIS IIS Presentation Layer Application Layer Servlets ή JSP Java Php ASP,.NET Framework Visual Basic, C#, Database Layer SQLServer, MySQL, Oracle, 16
17
Load Balancing Το σύστημα δέχεται σε μία διεύθυνση τις αιτήσεις (requests) των χρηστών (web clients) Ανάλογα με το φόρτο στέλνει την κάθε κλήση στον web-server που έχει το μικρότερο φόρτο εργασίας Με τον τρόπο αυτό υπάρχει μεγαλύτερη διαθεσιμότητα των web-servers Με τον τρόπο αυτό παρέχεται επεκτασιμότητα (scalability) 18
Επεκτασιμότητα (Scalability) Η δυνατότητα να υποστηριχθούν επιπλέον χρήστες χωρίς να απαιτείται αλλαγή της εφαρμογής με απλή επέκταση της υπολογιστικής υποδομής: Πρέπει να υποστηρίζεται από την αρχιτεκτονική της εφαρμογής 19
Application Server Μπορεί να συμπίπτει με τον Web Server, με τον Database Server ή να είναι χωριστό μηχάνημα, ανάλογα με τη σχεδίαση της εφαρμογής Λόγοι για τους οποίους χρειάζεται να είναι χωριστό μηχάνημα περιλαμβάνουν: Ταχύτητα ανταπόκρισης της εφαρμογής Επεκτασιμότητα εφαρμογής 20
Database Server Εξυπηρετεί τη βάση δεδομένων της εφαρμογής (δηλαδή «τρέχει» το λογισμικό της βάσης δεδομένων, π.χ. MS SQL Server, Oracle DB Server, MySQL, ) καθώς και το database layer Απαιτείται να βρίσκεται σε χωριστό server, λόγω: Ασφάλειας δεδομένων Ταχύτητας απόκρισης Επεκτασιμότητας συστήματος 21
Database Cluster Όταν δύο servers χρησιμοποιούνται για να υποστηρίξουν συμπληρωματικά το database layer της εφαρμογής Υπάρχουν δύο τρόποι λειτουργίας: Active-Passive (στην οποία περίπτωση o ένας server είναι ενεργός και σε περίπτωση αποτυχίας του ο έλεγχος περνάει αυτόματα στον δεύτερο server) Active-Active (όπου και τα δύο μηχανήματα μπορούν να λειτουργούν παράλληλα, αλλά μέρος των δυνατοτήτων τους αναλώνεται για να υποστηρίξει το cluster) 22
Storage Area Network (SAN) Απαιτείται να υπάρχει όταν χρησιμοποιείται database cluster, οπότε οι δύο servers χρειάζεται να έχουν πρόσβαση σε κοινή βάση δεδομένων Παρέχουν μεγάλες χωρητικότητες με πολλαπλούς δίσκους (Εκατοντάδες GB) Παρέχουν υψηλή διαθεσιμότητα με πλεονασμό δίσκων 23
Έλεγχος Πρόσβασης (Directory Services - Domain Controller) System Software Ελέγχει την πρόσβαση στους servers που φιλοξενούν την εφαρμογή: Διαχείριση χρηστών Δικαιώματα πρόσβασης σε αρχεία Δικαιώματα πρόσβασης στη βάση δεδομένων Είναι καλό να μη βρίσκεται στο ίδιο μηχάνημα με τμήματα της εφαρμογής: Για λόγους ασφάλειας Για να μην υπάρχουν επιπλοκές στη λειτουργία Αν υπάρξει πρόβλημα στον server αυτόν, δεν λειτουργεί η εφαρμογή, γι αυτό υπάρχει κάποιος άλλος ως back-up server 24
Δημοσίευση ενός Web-Site Δέσμευση domain name (www..gr) Ενημέρωση DNS servers Εγκατάσταση web site σε κάποιον web server Ρυθμίσεις σε Web server software (π.χ. IIS, Apache Tomcat) για τη λειτουργία του site 25
Εύρος Επικοινωνίας (Bandwidth) Α. Διαθέσιμο εύρος από την πλευρά της εφαρμογής (δηλαδή του Server που φιλοξενεί την εφαρμογή) Β. Διαθέσιμο εύρος από την πλευρά του χρήστη Αυτό καθορίζει το μέγεθος των σελίδων και επηρεάζει το χρόνο ανταπόκρισης της εφαρμογής 26
Παράδειγμα 1 Υπολογίστε σε πόσο χρόνο θα «κατέβει» μία σελίδα web εφαρμογής όταν: Tο μέγεθος της σελίδας είναι 50Κbytes Ο χρήστης έχει πρόσβαση στο Internet μέσω μίας τηλεφωνικής σύνδεσης 20Κbps O server που φιλοξενεί την εφαρμογή έχει έξοδο στο Internet με 512 Κbps Την εφαρμογή έχουν προσπελάσει ταυτόχρονα 5 χρήστες 27
Ταυτόχρονοι χρήστες Concurrent users: είναι οι χρήστες που περιμένουν να εξυπηρετηθούν ταυτόχρονα από μία εφαρμογή Σε περιβάλλοντα εφαρμογών Διαδικτύου είναι πιθανό να υπάρχουν πολλοί ταυτόχρονοι χρήστες που έχουν π.χ. πατήσει «αναζήτηση» σε κάποιο site Είναι σημαντικό ο κάθε χρήστης να μη συναντά μεγάλη καθυστέρηση αυτό προϋποθέτει ότι γίνεται σωστό «sizing» της εφαρμογής και σωστή εκτίμηση του αριθμού των ταυτόχρονων χρηστών Αυτό που ενδιαφέρει είναι η εκτίμηση του μέγιστου αριθμού ταυτόχρονων χρηστών κατά τις ώρες αιχμής, γιατί αυτό είναι που καθορίζει το χρόνο ανταπόκρισης, ακόμη και στις πιο δύσκολες συνθήκες 28
Εκτίμηση Ταυτόχρονων χρηστών (1) 1. Εκτίμηση συνολικού αριθμού χρηστών της εφαρμογής Ο αριθμός αυτός εξαρτάται από τον τύπο της εφαρμογής, την αγορά στην οποία απευθύνεται, τη μάρκετινγκ καμπάνια κλπ. 2. Καταμερισμό ανά ημέρα Ανάλογα με τον τύπο της εφαρμογής κάποιες ημέρες της εβδομάδας μπορεί να είναι πιο δημοφιλείς από άλλες (π.χ. Σαββατοκύριακο για αγορές σούπερμάρκετ, τέλος/αρχές μήνα για τραπεζικές συναλλαγές κλπ.) 29
Εκτίμηση Ταυτόχρονων χρηστών (2) 3. Υπολογισμός των ωρών αιχμής μέσα στην ημέρα Π.χ. Αν υπάρχουν 100 επισκέψεις την ημέρα, αυτές μπορεί να κατανέμονται μεταξύ 1-3 το μεσημέρι και 10-12 το βράδυ, να ακολουθούν το τυπικό pattern των χρηστών του Internet (π.χ. αν πρόκειται για ένα portal) ή ένα τελείως διαφορετικό pattern (π.χ. Εμπορική εφαρμογή με συγκεκριμένες απαιτήσεις) 4. Εκτίμηση του αριθμού χρηστών ανά λεπτό κατά τις ώρες αιχμής του συστήματος Με βάση τον αριθμό αυτό υπολογίζεται το απαιτούμενο bandwidth και το σωστό μέγεθος σελίδας 30
Παράδειγμα 2 Υπολογίστε το απαιτούμενο bandwidth και το μέγεθος σελίδας για μία εφαρμογή της οποίας οι χρήστες έχουν τα ακόλουθα χαρακτηριστικά: Έχουν πρόσβαση κατά κύριο λόγο μέσω απλών dial-up συνδέσεων Ο αριθμός επισκέψεων φτάνει τις 500 το μήνα Οι επισκέψεις πραγματοποιούνται κατά 50% μέσα στην εβδομάδα και κατά 50% Σαββατοκύριακο Μέσα στην ημέρα, 40% της κίνησης παρατηρείται μεταξύ 1-3μμ, 30% μεταξύ 10-12μμ και το υπόλοιπο κατανέμεται ομαλά στις υπόλοιπες ώρες 31
Διαθεσιμότητα Εφαρμογής Ορίζεται ως ο λόγος του χρόνου κατά τον οποίο είναι διαθέσιμη μία εφαρμογή προς το συνολικό χρόνο που θα έπρεπε να λειτουργεί η εφαρμογή Διαθεσιμότητα = Χρόνος πραγματικής λειτουργίας Συνολικός χρόνος που θα έπρεπε να λειτουργεί 32
Εκτίμηση Διαθεσιμότητας (1) Χρειάζεται να υπολογιστούν: Α) Χρόνος που θα πρέπει να λειτουργεί η εφαρμογή: Π.χ. μία εφαρμογή που απευθύνετε σε καταναλωτές (B2C) χρειάζεται να λειτουργεί 24Χ7 = 168 ώρες την εβδομάδα Μία εφαρμογή που απευθύνετε σε επιχειρήσεις (B2B) χρειάζεται να λειτουργεί 14Χ6 = 84 ώρες την εβδομάδα Ο χρόνος αυτός είναι διαφορετικός ανά εφαρμογή Εξαρτάται από τη φύση της εφαρμογής, το επιχειρηματικό μοντέλο, το ποιοι είναι οι πελάτες, το αν απευθύνετε σε διαφορετικά time-zones, κλπ. 33
Εκτίμηση Διαθεσιμότητας (2) Χρειάζεται να υπολογιστούν: B) Χρόνος που πιθανό να μη λειτουργεί η εφαρμογή: Χρόνος που απαιτείται για συντήρηση της εφαρμογής (back-up, μεταφορά αρχείων, εγκατάσταση προγραμμάτων κλπ.) Χρόνος που απαιτείται για επαναφορά του συστήματος για κάθε πιθανό πρόβλημα που θα παρουσιαστεί, όπως: Απώλεια πρόσβασης στο Internet Καταστροφή κάποιου υποσυστήματος h/w (π.χ. Κάρτα δικτύου, δίσκος, κλπ.) Καταστροφή ολόκληρου server Χτύπημα από ιούς Απώλεια δεδομένων, κλπ. Πιθανότητα να συμβεί κάθε ένα από τα παραπάνω 34
Διαφορετικά επίπεδα διαθεσιμότητας Διαθεσιμότητα πρόσβασης στο Internet Συνήθως υποστηρίζεται από Service Level Agreement (SLA) από τον πάροχο σύνδεσης στο Internet (ISP) Διαθεσιμότητα περιβάλλοντος φιλοξενίας (hosting) Τι συμβαίνει σε περιπτώσεις φωτιάς, σεισμού, κλπ. Διαθεσιμότητα υλικού (hardware) Σχετίζεται με την αξιοπιστία και τις δυνατότητες των μηχανημάτων Την ύπαρξη διπλών υποσυστημάτων (redundancy) Την ύπαρξη ειδικών s/w μηχανισμών (raid disk controller, cluster κλπ.) Διαθεσιμότητα εφαρμογής (σχετίζεται με αξιοπιστία εφαρμογής, bugs κλπ.) 35