ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΙΟΙΚΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ Ηλεκτρονικό Εμπόριο Αναπτύσσοντας ένα Ηλεκτρονικό Κατάστημα Ηλεκτρονικό Εμπόριο
Λειτουργικότητα Εφαρμογής Κατάλογος προϊόντων Καλάθι αγορών Αναζήτηση προϊόντων Παραγγελία παρακολούθηση παραγγελίας Online πληρωμή ιαφημιστικά banners Προτάσεις αγορών (recommendations) Άλλο? 2
Βασικά Δομικά Στοιχεία ενός Ηλεκτρονικού Καταστήματος Κατάλογος Προϊόντων Καλάθι αγορών Front-Office Banners User Profiling Παραγγελίες Online Πληρωμές Προτάσεις Αγορών Βάση Δεδομένων Διαχείριση Διαχείριση Διαχείριση Καταλόγου Παραγγελιών Χρηστών Back-Office 3
Υλοποίηση Εφαρμογής Ανάπτυξη software Χρήση περιβάλλοντος/ πακέτου ανάπτυξης ηλεκτρονικών καταστημάτων (e.g. Microsoft Commerce Server) Αγορά έτοιμης λύσης 4
Ανάπτυξη ενός Web-Site Βήμα 1: Επιλογή περιβάλλοντος φιλοξενείας Βήμα 2: ήλωση ονόματος (register www.name.gr -> www.hostmaster.gr) Βήμα 3: ημιουργία και διαχείριση περιεχομένου Βήμα 4: Σχεδίαση web-site Βήμα 5: Κατασκευή του web-site και έλεγχος Βήμα 6: ημοσίευση και προβολή web-site 5
Τα βασικά μέρη μιας εφαρμογής Η.Ε. Internet Εύρος επικοινωνίας (bandwidth) Λογισμικό (Software) Υλικό (Hardware) 6
Εύρος Επικοινωνίας (Bandwidth) Α. ιαθέσιμο εύρος από την πλευρά της εφαρμογής (δηλαδή η ή του Server που φιλοξενεί την εφαρμογή) Β. ιαθέσιμο εύρος από την πλευρά του χρήστη Αυτό καθορίζει το μέγεθος των σελίδων και επηρεάζει το χρόνο ανταπόκρισης της εφαρμογής 7
Ταυτόχρονοι χρήστες Concurrent users: είναι οι χρήστες που περιμένουν να εξυπηρετηθούν ταυτόχρονα από μία εφαρμογή Σε περιβάλλοντα Η.Ε. είναι πιθανό να υπάρχουν πολλοί ταυτόχρονοι χρήστες που έχουν π.χ. πατήσει «αναζήτηση» σε κάποιο site Είναι σημαντικό ο κάθε χρήστης να μη συναντά μεγάλη καθυστέρηση αυτό προϋποθέτει ότι γίνεται σωστό «sizing» της εφαρμογής και σωστή εκτίμηση του αριθμού των ταυτόχρονων χρηστών Αυτό που ενδιαφέρει είναι η εκτίμηση του μέγιστου αριθμού ταυτόχρονων χρηστών κατά τις ώρες ρςαιχμής, γιατί αυτό είναι που καθορίζει το χρόνο ανταπόκρισης, ακόμη και στις πιο δύσκολες συνθήκες 8
Εκτίμηση Ταυτόχρονων χρηστών (1) 1. Εκτίμηση συνολικού αριθμού χρηστών της εφαρμογής Ο αριθμός αυτός εξαρτάται από τον τύπο της εφαρμογής, την αγορά στην οποία απευθύνεται, τη μάρκετινγκ καμπάνια κλπ. 2. Καταμερισμό ανά ημέρα Ανάλογα με τον τύπο της εφαρμογής κάποιες ημέρες της εβδομάδας μπορεί να είναι πιο δημοφιλείς από άλλες (π.χ. Σαββατοκύριακο για αγορές σούπερμάρκετ, τέλος/αρχές μήνα για τραπεζικές συναλλαγές κλπ.) ) 9
Εκτίμηση Ταυτόχρονων χρηστών (2) 3. Υπολογισμός των ωρών αιχμής μέσα στην ημέρα Π.χ. Αν υπάρχουν 100 επισκέψεις την ημέρα, αυτές μπορεί να κατανέμονται μεταξύ 1-3 το μεσημέρι και 10-1212 το βράδυ, να ακολουθούν το τυπικό pattern των χρηστών του Internet (π.χ. αν πρόκειται για ένα portal) ή ένα τελείως διαφορετικό pattern (π.χ. Εμπορική εφαρμογή με συγκεκριμένες απαιτήσεις) 4. Εκτίμηση του αριθμού χρηστών ανά λεπτό κατά τις ώρες αιχμής του συστήματος Με βάση τον αριθμό αυτό υπολογίζεται το απαιτούμενο bandwidth και το σωστό μέγεθος σελίδας 10
Διαθεσιμότητα Εφαρμογής Ορίζεται ως ο λόγος του χρόνου κατά τον οποίο είναι διαθέσιμη μία εφαρμογή προς το συνολικό χρόνο που θα έπρεπε να λειτουργεί η εφαρμογή ιαθεσιμότητα = Χρόνος πραγματικής λειτουργίας Συνολικός χρόνος που θα έπρεπε να λειτουργεί 11
Εκτίμηση Διαθεσιμότητας (1) Χρειάζεται να υπολογιστούν: Α) Χρόνος που θα πρέπει να λειτουργεί η εφαρμογή: Π.χ. μία εφαρμογή που απευθύνετε σε καταναλωτές (B2C) χρειάζεται να λειτουργεί 24Χ7 = 168 ώρες την εβδομάδα Μία εφαρμογή που απευθύνετε σε επιχειρήσεις (B2B) χρειάζεται να λειτουργεί 14Χ6 = 84 ώρες την εβδομάδα Ο χρόνος αυτός είναι διαφορετικός ανά εφαρμογή Εξαρτάται από τη φύση της εφαρμογής, το επιχειρηματικό μοντέλο, το ποιοι είναι οι πελάτες, το αν απευθύνετε σε διαφορετικά time-zones, κλπ. 12
Εκτίμηση Διαθεσιμότητας (2) Χρειάζεται να υπολογιστούν: B) Χρόνος που πιθανό να μη λειτουργεί η εφαρμογή: Χρόνος που απαιτείται για συντήρηση της εφαρμογής (back-up, μεταφορά αρχείων, εγκατάσταση προγραμμάτων κλπ.) Χρόνος που απαιτείται για επαναφορά του συστήματος για κάθε πιθανό πρόβλημα που θα παρουσιαστεί, όπως: Απώλεια πρόσβασης στο Internet Καταστροφή κάποιου υποσυστήματος h/w (π.χ. Κάρτα δικτύου, δίσκος, κλπ.) Καταστροφή ολόκληρου server Χτύπημα από ιούς Απώλεια δεδομένων, κλπ. Πιθανότητα να συμβεί κάθε ένα από τα παραπάνω 13
Διαφορετικά επίπεδα διαθεσιμότητας ιαθεσιμότητα πρόσβασης στο Internet Συνήθως υποστηρίζεται από Service Level Agreement (SLA) από τον παροχέα σύνδεσης στο Internet (ISP) ιαθεσιμότητα περιβάλλοντος φιλοξενείας (hosting) Τι συμβαίνει σε περιπτώσεις φωτιάς, σεισμού, κλπ. ιαθεσιμότητα υλικού (hardware) Σχετίζεται με την αξιοπιστία και τις δυνατότητες των μηχανημάτων Την ύπαρξη διπλών υποσυστημάτων (redundancy) Την ύπαρξη ειδικών s/w μηχανισμών (raid disk controller, cluster κλπ.) ) ιαθεσιμότητα εφαρμογής (σχετίζεται με αξιοπιστία εφαρμογής, bugs κλπ.) ) 14
Ποιοτικές Προδιαγραφές (1) Φιλική διεπαφή Λειτουργικότητα Ευκολία πρόσβασης/ πλοήγησης Καλαίσθητη εικαστική παρουσίαση (Aesthetics) ti ιαθεσιμότητα Αξιοπιστία Ταχύτητα ανταπόκρισης Ασφάλεια 15
Ποιοτικές Προδιαγραφές (2) Φιλική διεπαφή Λειτουργικότητα Ευκολία πρόσβασης/ πλοήγησης Θέμα S/W Καλαίσθητη εικαστική παρουσίαση (Aesthetics) ti ιαθεσιμότητα Αξιοπιστία Ταχύτητα ανταπόκρισης Ασφάλεια Θέμα H/W, Com Θέμα S/W και Δεδομένων S/W, H/W, Com Θέμα S/W & H/W 16
Ποιοτικές Προδιαγραφές (3) Φιλική διεπαφή Σχετίζεται με το πως έχει δομηθεί και λειτουργεί η εφαρμογή ιαθεσιμότητα Σχετίζεται με το αν η υπολογιστική υποδομή που φιλοξενεί την εφαρμογή λειτουργεί (είναι διαθέσιμη) Η εφαρμογή μπορεί να μην είναι διαθέσιμη στο σύνολό της (π.χ. Να μην ανταποκρίνεται κάποιο module) Αξιοπιστία Σχετίζεται με τα λάθη (bugs) που υπάρχουν στο λογισμικό Σχετίζεται με την αξιοπιστία των δεδομένων Ταχύτητα απόκρισης Σχεδίαση της εφαρμογής υνατότητες υπολογιστικής υποδομής Ασφάλεια Λειτουργικότητα εφαρμογής Σχεδίαση υπολογιστικής υποδομής 17
Μοντέλο Φιλοξενίας Shared Hosting Το πιο συνηθισμένο και οικονομικό μοντέλο Dedicated hosting Φιλοξενία σε αποκλειστικούς servers που ανήκουν σε πάροχο υπηρεσιών Collocation Hosting Φιλοξενία σε αποκλειστικούς servers που ανήκουν στην εταιρία 18
Ενδεικτική υπολογιστική υποδομή 19
Web-Server Είναι το μηχάνημα (server) που έχει πρόσβαση στο Internet και τρέχει ρχ το Web Server Software Π.X. IIS (Internet Information Services) ή Apache Server Φιλοξενεί το επίπεδο παρουσίασης και μπορεί και το επίπεδο εφαρμογής Η εφαρμογή μπορεί να τρέχει σε περισσότερους από έναν Web-Servers οι οποίοι είναι συνδεδεμένοι σε συνδεσμολογία Load Balancing 20
Load Balancing Το σύστημα δέχεται σε μία διεύθυνση τις αιτήσεις (requests) των χρηστών (web clients) Ανάλογα με το φόρτο στέλνει την κάθε κλήση στον web-server που έχει το μικρότερο φόρτο εργασίας Με τον τρόπο αυτό υπάρχει μεγαλύτερη διαθεσιμότητα των web-servers Με τον τρόπο αυτό παρέχεται επεκτασιμότητα (scalability) 21
Επεκτασιμότητα (Scalability) Η δυνατότητα να υποστηριχθούν επιπλέον χρήστες χωρίς να απαιτείται αλλαγή της εφαρμογής με απλή επέκταση της υπολογιστικής υποδομής: Πρέπει να υποστηρίζεται από την αρχιτεκτονική της εφαρμογής 22
Application Server Μπορεί να συμπίπτει με τον Web Server, με τον Database Server ή να είναι χωριστό μηχάνημα, ανάλογα με τη σχεδίαση της εφαρμογής Λόγοι για τους οποίους χρειάζεται να είναι χωριστό μηχάνημα περιλαμβάνουν: Ταχύτητα ανταπόκρισης της εφαρμογής Επεκτασιμότητα εφαρμογής 23
Database Server Εξυπηρετεί τη βάση δεδομένων της εφαρμογής (δηλαδή η ή «τρέχει» ρχ το λογισμικό της βάσης δεδομένων, π.χ. MS SQL Server, Oracle DB Server, MySQL, ) καθώς και το database layer Απαιτείται να βρίσκεται σε χωριστό server, λόγω: Ασφάλειας δεδομένων Ταχύτητας ανταπόκρισης Επεκτασιμότητας συστήματος 24
Database Cluster Όταν δύο servers χρησιμοποιούνται για να υποστηρίξουν συμπληρωματικά το database layer της εφαρμογής Υπάρχουν δύο τρόποι λειτουργίας: Active-Passive (στην οποία περίπτωση o ένας serverείναι ενεργός και σε περίπτωση αποτυχίας του ο έλεγχος περνάει αυτόματα στον δεύτερο server) Active-Active (όπου και τα δύο μηχανήματα μπορούν να λειτουργούν παράλληλα, αλλά μέρος των δυνατοτήτων τους αναλώνεται για να υποστηρίξει το cluster) 25
Storage Area Network (SAN) Απαιτείται να υπάρχει όταν χρησιμοποιείται database cluster, οπότε οι δύο servers χρειάζεται να έχουν πρόσβαση σε κοινή βάση δεδομένων Παρέχουν μεγάλες χωρητικότητες με πολλαπλούς δίσκους (Εκατοντάδες GB) Παρέχουν υψηλή διαθεσιμότητα με πλεονασμό δίσκων 26
Έλεγχος Πρόσβασης (Directory Services - Domain Controller) System Software Ελέγχει την πρόσβαση στους servers που φιλοξενούν την εφαρμογή: ιαχείριση χρηστών ικαιώματα πρόσβασης σε αρχεία ικαιώματα πρόσβασης στη βάση δεδομένων Είναι καλό να μη βρίσκεται στο ίδιο μηχάνημα με τμήματα της εφαρμογής: Για λόγους ασφάλειας Για να μην υπάρχουν επιπλοκές στη λειτουργία Αν υπάρξει πρόβλημα στον server αυτόν, δεν λειτουργεί η εφαρμογή, γι αυτό υπάρχει κάποιος άλλος ως back-up server 27
Δημοσίευση ενός Web-Site έσμευση domain name (www..gr) Ενημέρωση DNS servers Εγκατάσταση web site σε κάποιον web server Ρυθμίσεις σε Web server software (π.χ. χ IIS, Apache) για τη λειτουργία του site 28