ΗΛΕΚΤΡΟΝΙΚΟ ΕΜΠΟΡΙΟ Web Programming MARY GRAMMATIKOU 2/06/2009
Web Programming Αρχικά, ο παγκόσμιος ιστός είχε σχεδιαστεί για την παροχή στατικών ιστοσελίδων Δεν υπάρχει απλός τρόπος για την ενσωμάτωση ενός Web server με σύστημα βάσης δεδομένων που περιέχει προϊόντα, τιμές... Προστέθηκαν οι φόρμες “forms" στην HTML Δημιουργήθηκε ένας ειδικός προγραμματισμός καθώς και γλώσσες προγραμματισμού (όπως η Java, PHP) Ένα τυποποιημένο Application Programming Interface (API), εισήγαγε το Common Gateway Interface (CGI) Λόγω της αναποτελεσματικότητας του CGI, δημιουργήθηκαν νεότερα ΑΡΙs και ειδικά προγράμματα βάσεων δεδομένων
Desktop Interactivity and Processing Η διαδραστικότητα μιας εφαρμογής των Windows μεταφέρεται σε Web περιβάλλον (με τη χρηση των Java και PHP) Σήμερα, υπολογίζεται ότι υπάρχουν πολύ μεγάλα communities από προγραμματιστές που χρησιμοποιούν Java για την ανάπτυξη Ιστού και δικτύου με βάση τις εφαρμογές Η Java είναι γνωστή σαν “write once, run anywhere” (WORA) programming language Λόγω της αναποτελεσματικότητας του CGI, δημιουργήθηκαν νεότερα ΑΡΙs και ειδικές βάσεις δεδομένων και αντίστοιχα προγράμματα επικοινωνίας
Java Applet Tags for Spreadsheet DecisionWeb <APPLET CODE="CDGrid.class" CODEBASE="/sales/classes" WIDTH=700 HEIGHT=250 name=Grid> <APPLET CODE="CDChart.class" CODEBASE="/sales/classes" WIDTH=700 HEIGHT=250 name=Chart>
Java Spreadsheet from Comshare Decision
Desktop Interactivity and Processing (cont.) Λίγες εφαρμογές Ηλεκτρονικού Εμπορίου χρησιμοποιούν Java applets (σήμερα ουσιαστικά καμία) Η Java χρησιμοποιεί Java beans και Java servlets για server-side εφαρμογές Η υλοοποίηση των java beans και java servlets σήμερα γίνεται μέσω των frameworks που ακολουθούν την αρχιτεκτονική MVC (Model View Controller) H Microsoft εισήγαγε μια νεα προγραμματιστική γλώσσα την C# (C sharp) ως βασικό ανταγωνιστή της java με πολλές ομοιότητες Διαδραστικότητα (interactivity) μπορεί επίσης να παρασχεθεί μέσω του client-side scripting χρησιμοποιώντας μια γλώσσα όπως η JavaScript Η JavaScript χρησιμοποιείται για τον έλεγχο των αντικειμένων, το περιεχόμενο, και τις αλληλεπιδράσεις μέσα σε μια ιστοσελίδα
Javascript and DOM Η συλλογή των πιθανών στοιχείων μιας ιστοσελίδας ονομάζεται μοντέλο αντικειμένου- Document Object Model (DOM). Για κάθε στοιχείο του DOM, υπάρχει ένα σαφώς καθορισμένο σύνολο δράσεων του χρήστη που ονομάζονται “events". Η συλλογή των γεγονότων είναι που ονομάζεται ”event model” Στο σύνολό τους, το DOM και στην περίπτωση ενός μοντέλου καθορίζουν τον τρόπο με τον οποίο ένα scripting language όπως η JavaScript μπορεί να χρησιμοποιηθεί για έλεγχο μιας ιστοσελίδας
JavaScript Validating User Input E-Commerce FUNCTION valcheck() { if (document.forms[0].elements[0].value == "") { alert("Please enter a name"); } } Javascript Validation Name: <INPUT TYPE = "button" NAME = "B1" VALUE = "Submit" onClick = "valcheck()">
Functions of JavaScript Client-side form validation Client-side calculations Client-side lookup databases Client-side image maps Client-side interaction Client από την πλευρά της αλληλεπίδρασης Χειριζόμενα Java Applets ή ActiveX αντικείμενα μέσα σε μια σελίδα Η Microsoft αντίστοιχα παρέχει για Java Applets και Javascript τα ActiveX και VBScript (Visual Basic Script) Λειτουργούν μόνο με τον Internet Explorer της Microsoft και της Microsoft τον Web Server (Internet Information Service)
Delivering Dynamic Content Φανταστείτε, για παράδειγμα, σε μια τοποθεσία Web, όπως το Yahoo! που προβλέπει για τις τιμές των μετοχών που ενημερώνονται κάθε 15 λεπτά Δεν υπάρχει άλλος πρακτικός τρόπος για να γίνει αυτό, εκτός από τα εξωτερικά προγράμματα που εκτελούνται στο web server (ή κάποιο άλλο server) που δημιουργούν "δυναμική" ιστοσελίδα στα πλαίσια των ειδικών αιτήσεων του χρήστη Αρχικά, ιστοσελίδες με δυναμικό περιεχόμενο είχαν παραχθεί με τη βοήθεια του πρόγραμματος CGI CGI είναι μια σειρά από τυποποιημένες μεθόδους και τις ρουτίνες που χρησιμοποιούνται για να γράψουμε ένα μεμονωμένο λογισμικό πρόγραμμα που ξέρει πώς να λαμβάνει αιτήσεις από ένα διακομιστή Web και να επιστρέφει τα δεδομένα στον server
Accessing Stock Prices with CGI E-Commerce Retrieve Current Stock Price Microso ft Oracle
Alternative APIs Ενώ τα CGI προγράμματα που χρησιμοποιούνται ευρέως, υποφέρουν από κάποιες σημαντικές τεχνικές περιορισμών, ιδιαίτερα σε δικτυακούς τόπους, και κυρίως όταν υπάρχει πολύ κίνηση Δύο εναλλακτικές λύσεις είναι FastCGI ISAPI (Internet Server API) και της Microsoft ISAPI Το συνολικό αποτέλεσμα είναι η αύξηση της αποτελεσματικότητας και ουσιαστικά η βελτιωμένη απόδοση
Server-Side Scripting Aπλούστερες scripting γλώσσες που μπορούν να χρησιμοποιηθούν για να καταφέρουν συγκεκριμένη server-side λειτουργικότητα είναι: –Microsoft Active Server Pages (ASP) –Hypertext Preprocessor (PHP) –Java Server Pages (JSP) –Της ColdFusion Markup Language (CFML) Στην περίπτωση αυτή, τα σενάρια που εκτελούνται στο διακομιστή από την πλευρά της, δεν περιλαμβάνονται στον υπολογιστή-πελάτη. Όλες αυτές οι γλώσσες χρησιμοποιούνται ευρέως σε όλο το Web
Server-Side Scripting (cont.) Ουσιαστικά, ένα server-side script δεν είναι τίποτα περισσότερο από μια ιστοσελίδα που το script περιέχει δηλώσεις με διάφορα HTML tags Μια ASP server-side script δήλωση, αποδίδεται από το " Tags Ο παραπάνω κώδικας εκτελείται στο ASP engine του server Με αυτό τον τρόπο (σε αντικατάσταση του CGI) το περιεχόμενο της σελίδας δημιουργείται δυναμικά
Active Server Page E- Commerce Thank you for joining us. Would you like to see your orders?
ASP Η ASP χρησιμοποιεί την τεχνολογία των Component Object Model (COM) Με τη χρήση των ήδη ανεπτυγμένων COM αντικειμένων, οι προγραμματιστές μπορούν να μειώσουν την ποσότητα του κώδικα που πρέπει να γράψουν Τα οφέλη από τα COM αντικείμενα δεν μπορεί να εκτιμηθούν πλήρως, μέχρι που γίνεται χρήση της Microsoft ActiveX Data Objects (ADO), ένας συνδυασμός αυτοδύναμων COM αντικειμενων που χρησιμοποιούνται για την πρόσβαση στα δεδομένα Είναι εύκολο να δημιουργείς εντυπωσιακές σελίδες ASP. Μειονέκτημα αυτής της λύσης είναι το κόστος (licensing) Internet Information Server (IIS) στους servers και τα tools (visual studio)
ColdFusion/Flex Η ColdFusion αποτελεί java server-side υλοποίηση της Macromedia (τώρα αποτελεί κομμάτι της Adobe) H Adobe προωθεί τώρα την τεχνολογία – προιον flex To flex είναι ένα open source framework για τη δημιουργία και υλοποίηση πολύπλοκων web εφαρμογών Η καινοτομία του Flex είναι ότι μπορεί να γίνει deploy σε όλους τους browsers, τα λειτουργικά συστήματα και τους τοπικούς υπολογιστές
JSP Τα JSP servlets χρησιμοποιούνται για να δημιουργήσουν μια δυναμική scripting γλώσσα, με ποικίλο περιεχόμενο, που συχνά επικοινωνεί με μια βάση δεδομένων και ενσωματώνεται μέσα σε μια HTML Όταν ένας πελάτης ζητά μια σελίδα JSP για πρώτη φορά, ο διακομιστής αυτόματα επικοινωνεί με το αντίστοιχο java servlet και δημιουργεί μια σελίδα HTML Η σελίδα HTML αποστέλλεται στον πελάτη του browser για την προβολή Από κει και πέρα, κάθε φορά που η JSP σελίδα καλείται, το servlet υπάρχει ως Java byte κώδικας στη μνήμη του διακομιστή Web, έτοιμος για αναζήτηση στη βάση δεδομένων και δίνεται αμέσως στην HTML
ASP - JSP Η ASP και η JSP διευθετούν με παρόμοιο τρόπο τη μεταφορά περιεχομένου από μία σελίδα are used to set of sections of script ' ' are used to return a value within content are used to delimit page directives. ASP using Jscript Simple Scripting Tricks Anyone can count like this: <% for (i = 1; i < 6; i++) { Response.Write(i + " "); } i = ; %> It would take a long time, however, to count to. JSP Simple Scripting Tricks Anyone can count like this: <% for (int i = 1; i < 6; i++) { out.println(i + " "); } i = ; %> It would take a long time, however, to count to.
Perl Η γλώσσα είναι ισχυρή και πλήρης, ακόμη εξακολουθεί να είναι πολύ υψηλού επιπέδου και εύκολη στον προγραμματισμό Η Perl είναι ασύγκριτη για επεξεργασία κειμένου – στο generation των HTTP headers, αυτόματη γραφή της HTML Πολύπλοκες web εφαρμογές μπορούν να χτιστούν σε Perl γρήγορα. Δεδομένου ότι η Perl είναι τόσο συχνά χρησιμοποιήσιμη για Web προγραμματισμό, έχουν δημιουργηθεί διάφορα frameworks για τη διευκόλυνση στον προγραμματισμό Το CPAN (ιστοσελιδα με PERL modules έτοιμα) της Perl δίνει λύσεις που μπορούν να χειριστούν οποιαδήποτε περίσταση που ενδέχεται να προκύψει Μπορεί κανείς να επισκεφτεί το Perl's DBI module, έτοιμο για όλες τις ανάγκες ενοποίησης των Web-database Η Apache mod_perl μπορεί να ενισχύσει την ταχύτητα των Web προγραμμάτων της Perl
PHP Ίσως τα πιο αδιάσειστα επιχειρήματα για την PHP είναι το κόστος: Το μόνο που απαιτείται για εγκατάσταση είναι : Apache, PHP, MySQL Η PHP μπορεί να διασυνδέεται και με άλλες βάσεις δεδομένων όπως : Sybase, Oracle, Informix, Postgres, ακόμη και MSSQL Η PHP τώρα πια είναι object oriented μπορεί να υλοποιήσει πολύ περισσότερα από μία επικοινωνία με βάση δεδομένων, όπως : δυναμική γενιά γραφικών, IMAP, SNMP, LDAP, XML
Accessing Relational Databases Οι σχεσιακές βάσεις δεδομένων αποτελούν αναπόσπαστο μέρος σχεδόν σε κάθε εφαρμογή Ηλεκτρονικού Εμπορίου. Οι περισσότερες σελίδες που εμφανίζονται στο διαδίκτυο είναι από τις βάσεις δεδομένων και δημιουργείται δυναμικά Για παράδειγμα, μπορεί να έχουν χρησιμοποιηθεί η FedEx ή UPS ιστοσελίδες για να παρακολουθείτε η αποστολή. –Ο αριθμός αποστολής για ένα συγκεκριμένο πελάτη αποθηκεύεται στη βάση δεδομένων –Όταν ο πελάτης δώσει τον αριθμό αποστολής του στο αντίστοιχο site και πατήσει το κουμπί υποβολή, η αποστολή αριθμού περνά σε server-side σενάριο. –Για να ενημερωθεί ο πελάτης εκτελείται ένα ερώτημα (query) μέσω της Web εφαρμογής στη βάση δεδομένων (π.χ. select shipment_no, shipment_status from αποστολές) –Η βάση δεδομένων παράγει ένα αποτέλεσμα που περιέχει τα αποτελέσματα δηλαδή το shipment_status –Το σενάριο παίρνει τα αποτελέσματα και δημιουργεί μια σελίδα HTML η οποία στη συνέχεια επιστρέφει στον πελάτη.