ΕΡΓΑΣΤΗΡΙΟ Ηλεκτρονικού Εμπορίου Ε-Επιχειρείν Δρ. Χρήστος Κ. Γεωργιάδης Java APIs για Web Services: ΧΜL και JSP
Δρ. Χρήστος Κ. Γεωργιάδης Ενότητες Εισαγωγή στις υπηρεσίες ιστού (web services) Η γλώσσα XML στην ανταλλαγή δεδομένων Έγγραφα XML: σύνταξη, στοιχεία, ιδιότητες, οντότητες, χώροι ονομάτων Ορισμοί τύπου εγγράφου (DTDs), καλοσχηματισμένα και έγκυρα έγγραφα XML σχήματα, ΧPath και XSL για μετασχηματισμό εγγράφων XML (παρουσίασή τους ως HTML σε ένα πρόγραμμα περιήγησης - browser) Σχεδίαση δομής εγγράφων XML Ενδεικτικές ασκήσεις: βιβλιοθήκη, αναφορά καιρού, παρουσίαση διαφανειών
Δρ. Χρήστος Κ. Γεωργιάδης Ενότητες ΙΙ Αρχιτεκτονική συστημάτων e-επιχειρείν Αναφορά στις τεχνολογίες πλευράς πελάτη: HTML, Java applets, Javascript, Cascading Stylesheets Τεχνολογίες πλευράς διακομιστή: - Java servlets: κύκλος ζωής τους, δημιουργία μεθόδων υπηρεσιών, αιτήσεις φιλτραρίσματος και αποκρίσεις, διατήρηση κατάστασης πελάτη - Java Server Pages (JSP): κύκλος ζωής σελίδας, δημιουργία στατικού-δυναμικού περιεχομένου, γλώσσα έκφρασης, συστατικά JavaBeans. Αναφορά στη τεχνολογία Active Server Pages (ASP), στην αρχιτεκτονική.NET της Microsoft και τη σχέση της με την XML, και στη χρήση UML για τη σχεδίαση web εφαρμογών Ανταλλαγή δεδομένων μεταξύ XML και σχεσιακών βάσεων δεδομένων
Δρ. Χρήστος Κ. Γεωργιάδης Ενότητες ΙΙΙ Ανάπτυξη εταιρικών εφαρμογών Java, με επεξεργασία XML Ασκήσεις εκμετάλλευσης δυνατοτήτων του Java (JAXP) SAX API Ασκήσεις κλήσεων των Java (JAXP) DOM και XSLT APIs Δυνατότητες δέσμευσης των XML σχημάτων σε κλάσεις Java – JAXB API Τεχνικές κλήσεων απομακρυσμένων διαδικασιών, χρήση του JAX-RPC API Χρήση SOAP πάνω στο HTTP, χειρισμός αντικειμένων SOAP μέσω Java XML και υποστήριξη μηχανισμών ασφάλειας Κτίζοντας ολοκληρωμένες εφαρμογές e-επιχειρείν με χρήση XML και JSP: Δημιουργία καταλόγου προϊόντων με την XML Παρουσίαση – διαχείριση online του καταλόγου XML Δημιουργία καλαθιού αγορών Χρέωση και επιβεβαίωση παραγγελίας Έρευνα πελατών, παρουσίαση εταιρικών ειδήσεων.
Δρ. Χρήστος Κ. Γεωργιάδης Βιβλιογραφία JAVA – Οδηγός Προγραμματισμού για E-commerce με XML και JSP Brogden, Minnick / Μ. Γκιούρδας © 2001 / / σελ. 442 The Java Web Services 1.2 Tutorial Armstrong, Ball et. al. / Sun Microsystems Inc. © 2003 / σελ e-ΕΠΙΧΕΙΡΕΙΝ – Πλήρης Οδηγός Ανάλυσης Τεχνικών και Εμπορικών Θεμάτων, Elsenpeter, Velte / Μ. Γκιούρδας © 2001 / / σελ. 480 Εισαγωγή στο Ηλεκτρονικό Εμπόριο Πομπόρτσης, Τσούλφας / Τζιόλας © 2002 / / σελ. 288 Developing E-commerce Systems J. Carter / Prentice Hall © 2002 / / σελ. 507
Δρ. Χρήστος Κ. Γεωργιάδης Υπηρεσίες Ιστού (Web Services) Οι υπηρεσίες Ιστού είναι υπηρεσίες που προσφέρονται στους χρήστες του Διαδικτύου μέσω του γραφικού περιβάλλοντος Web. Σε ένα χαρακτηριστικό σενάριο υπηρεσιών Ιστού, μια επιχειρησιακή εφαρμογή στέλνει ένα αίτημα (request) σε μια υπηρεσία σε μια δεδομένη διεύθυνση URL (Unified Resource Locator), χρησιμοποιώντας το πρωτόκολλο SOAP (Simple Object Access Protocol) πάνω στο HTTP. Η υπηρεσία λαμβάνει το αίτημα, το επεξεργάζεται, και επιστρέφει μια απάντηση (response).
Δρ. Χρήστος Κ. Γεωργιάδης Web Services: Εισαγωγή Ένα παράδειγμα υπηρεσίας Ιστού είναι αυτό μιας υπηρεσίας προσδιορισμού τιμής μετοχών, στην οποία το αίτημα ζητά την τρέχουσα τιμή μιας προσδιορισμένης μετοχής, και η απάντηση προσφέρει αυτή τη τιμή. Αυτό είναι μια από τις απλούστερες μορφές, γιατί το αίτημα εκπληρώνεται σχεδόν αμέσως, αφού αίτημα και απάντηση είναι μέρη της ίδιας κλήσης μεθόδου. Ένα άλλο παράδειγμα είναι μια υπηρεσία που χαράζει μια αποδοτική διαδρομή για την παράδοση προϊόντων. Σε αυτήν την περίπτωση, μια επιχείρηση στέλνει ένα αίτημα που περιέχει τους προορισμούς παράδοσης, τους οποίους η υπηρεσία επεξεργάζεται για να καθορίσει την οικονομικώς πιο αποδοτική διαδρομή παράδοσης. Ο χρόνος που παίρνει για να επιστρέψει την απάντηση εξαρτάται από την πολυπλοκότητα της δρομολόγησης, έτσι η απάντηση θα σταλεί πιθανώς ως λειτουργία που είναι χωριστή από το αίτημα.
Δρ. Χρήστος Κ. Γεωργιάδης Web Services: Εισαγωγή ΙΙ Στις περισσότερες περιπτώσεις, οι παροχείς των υπηρεσιών Ιστού αλλά και οι καταναλωτές των υπηρεσιών Ιστού είναι επιχειρήσεις. Έτσι, οι υπηρεσίες Ιστού αποτελούν κυρίως (αλλά όχι μόνο) ενδο-επιχειρησιακές συναλλαγές (Β2Β). Μια επιχείρηση μπορεί να είναι ο παροχέας- προμηθευτής ορισμένων υπηρεσιών Ιστού και επίσης ο καταναλωτής άλλων υπηρεσιών Ιστού. Π.χ., ένας διανομέας καρυκευμάτων χονδρικής, θα χρειαστεί ένα ρόλο «καταναλωτή» αλλά και «προμηθευτή» ανάλογα με τη περίσταση
Δρ. Χρήστος Κ. Γεωργιάδης O ρόλος της γλώσσας XML και η πλατφόρμα Java Οι υπηρεσίες Ιστού εξαρτώνται από τη δυνατότητα των μερών να επικοινωνούν μεταξύ τους, ακόμα κι αν αυτές χρησιμοποιούν διαφορετικά πληροφοριακά συστήματα. Για την αντιμετώπιση αυτής της ανάγκης, η XML (eXtensible Markup Language - εκτατή γλώσσα σήμανσης), αποτελεί μια βασική τεχνολογία, ως μια γλώσσα σήμανσης ικανή να καθιστά τα δεδομένα φορητά. Οι επιχειρήσεις έχουν ανακαλύψει τα οφέλη της XML για την ολοκλήρωση των δεδομένων τους, τόσο εσωτερικά για τον διαμερισμό των κοινών δεδομένων μεταξύ των τμημάτων τους, όσο και εξωτερικά για τη διανομή των δεδομένων τους με άλλες επιχειρήσεις.
Δρ. Χρήστος Κ. Γεωργιάδης XML και Επιχειρήσεις Κατά συνέπεια, η XML χρησιμοποιείται όλο και περισσότερο για τις εφαρμογές επιχειρηματικής ολοκλήρωσης. Λόγω αυτής της δυνατότητας ολοκλήρωσης δεδομένων, η XML έχει γίνει βασικό συστατικό υποστήριξης για τα υπολογιστικά συστήματα Ιστού (Web-related computing systems). Οι υπηρεσίες Ιστού εξαρτώνται επίσης από τη δυνατότητα των επιχειρήσεων που χρησιμοποιούν διαφορετικές πλατφόρμες υπολογισμού, να επικοινωνήσουν η μια με την άλλη. Αυτή η απαίτηση κάνει την πλατφόρμα της Java, η οποία καθιστά τον κώδικα φορητό, τη φυσική επιλογή για την ανάπτυξη των υπηρεσιών Ιστού.
Δρ. Χρήστος Κ. Γεωργιάδης Java APIs για XML Και η επιλογή αυτή, γίνεται ακόμα πιο ελκυστική με τα νέα Java APIs (Application Programming Interfaces – Διεπαφές Προγραμματισμού Εφαρμογών ή Συμβάσεις Κλήσεων) για XML που γίνονται διαθέσιμα. Αυτά, καθιστούν ολοένα και ευκολότερη τη χρήση XML από τη γλώσσα προγραμματισμού Java. Εκτός από τη φορητότητα δεδομένων και τη φορητότητα κώδικα, οι υπηρεσίες Ιστού χρειάζονται να είναι εξελικτικές (scalable), ασφαλείς, και αποδοτικές, ειδικά καθώς αυτές αναπτύσσονται. Η Java 2 πλατφόρμα, η επιχειρηματική έκδοση (Enterprise Edition - J2ΕE), έχει σχεδιαστεί συγκεκριμένα για να ικανοποιεί ακριβώς τέτοιες ανάγκες.
Δρ. Χρήστος Κ. Γεωργιάδης J2EE Διευκολύνει το πραγματικά δύσκολο μέρος της ανάπτυξης των υπηρεσιών Ιστού, το οποίο προγραμματίζει την υποδομή, ή "την υδραυλική εγκατάσταση" (plumbing). Αυτή η υποδομή περιλαμβάνει τα χαρακτηριστικά γνωρίσματα όπως η ασφάλεια, η διανεμημένη διαχείριση συναλλαγών (connection pool management), και η διαχείριση λιμνών σύνδεσης, τα οποία είναι ουσιαστικά για τις βιομηχανικής ισχύος υπηρεσίες Ιστού. Και επειδή τα συστατικά είναι επαναχρησιμοποιήσιμα, ο χρόνος ανάπτυξης εφαρμογών μειώνεται ουσιαστικά. Επειδή η XML και η Java πλατφόρμα εργάζονται τόσο καλά μαζί, είναι ικανές να διαδραματίσουν κεντρικό ρόλο στις υπηρεσίες Ιστού των ηλεκτρονικών επιχειρήσεων. Τα Java APIs για XML εργάζονται ως συμπλήρωμα και ως ένα στρώμα πάνω από τα J2ΕE APIs και χρησιμοποιούνται για να κτισθούν εφαρμογές για υπηρεσίες Ιστού κατάλληλες για υποστήριξη εφαρμογών ηλεκτρονικού εμπορίου.
Δρ. Χρήστος Κ. Γεωργιάδης Τι είναι η XML Η XML είναι ένα βιομηχανικό πρότυπο, ένας τρόπος αναπαράστασης δεδομένων ανεξάρτητος από συγκεκριμένα συστήματα. Όπως η HTML (HyperText Markup Language, γλώσσα σήμανσης υπερκειμένου), η XML εσωκλείει τα δεδομένα σε ετικέτες, αλλά υπάρχουν σημαντικές διαφορές μεταξύ των δύο γλωσσών σήμανσης. Πρώτη διαφορά είναι ότι οι ετικέτες XML αφορούν την έννοια του εσωκλειόμενου κειμένου, ενώ οι ετικέτες HTML προσδιορίζουν πώς να παρουσιάσουν το εσωκλειόμενο κείμενο.
Δρ. Χρήστος Κ. Γεωργιάδης Παράδειγμα XML με κατάλογο τιμών Mocha Java Sumatra 12.50
Δρ. Χρήστος Κ. Γεωργιάδης Παράδειγμα XML με κατάλογο τιμών Οι ετικέτες και λένε σε έναν parser (διερμηνευτή/αναλυτή), ότι η πληροφορία που περιλαμβάνεται μεταξύ αυτών, αφορά έναν καφέ. Οι δύο άλλες ετικέτες - μέσα στις ετικέτες του καφέ, προσδιορίζουν ότι οι εσωκλειόμενες πληροφορίες είναι το όνομα του καφέ και η τιμή του. Επειδή οι ετικέτες XML δείχνουν το περιεχόμενο και τη δομή των δεδομένων που εσωκλείουν, το καθιστούν ικανό να κάνει πράγματα όπως αρχειοθέτηση και έρευνα. εκτατή Μια δεύτερη σημαντική διαφορά μεταξύ XML και HTML είναι ότι η XML είναι εκτατή.
Δρ. Χρήστος Κ. Γεωργιάδης XML και ΗΤML Με XML, μπορούμε να γράψουμε τις ετικέτες μας για να περιγράψουμε το περιεχόμενο σε έναν ιδιαίτερο τύπο εγγράφου. Με HTML, είμαστε περιορισμένοι στη χρησιμοποίηση μόνο εκείνων των ετικετών που έχουν προκαθοριστεί στην προδιαγραφή HTML. Μια άλλη πτυχή της εκτατότητας της XML είναι ότι μπορούμε να δημιουργήσουμε ένα αρχείο, αποκαλούμενο σχήμα (schema), για να περιγράψουμε τη δομή ενός ιδιαίτερου τύπου εγγράφου XML. Π.χ., μπορούμε να γράψουμε ένα σχήμα για έναν κατάλογο τιμών που προσδιορίζει ποιες ετικέτες μπορούν να χρησιμοποιηθούν και πού μπορούν να εμφανιστούν. Οποιοδήποτε έγγραφο XML που ακολουθεί τους περιορισμούς που καθιερώνονται σε ένα σχήμα λέγεται «προσαρμοσμένο» σε εκείνο το σχήμα
Δρ. Χρήστος Κ. Γεωργιάδης DTD σε XML Πιθανώς η πιο πολύ-ευρέως χρησιμοποιημένη γλώσσα σχημάτων είναι ακόμα η γλώσσα DTD (Document Type Definition – Ορισμός Τύπου Εγγράφου) επειδή είναι ένα αναπόσπαστο μέρος της προδιαγραφής XML 1.0. Ένα σχήμα που γράφεται σε αυτήν την γλώσσα αναφέρεται συνήθως ως DTD. Το DTD που ακολουθεί καθορίζει τις ετικέτες που χρησιμοποιούνται στον προαναφερθέντα κατάλογο τιμών XML. Προσδιορίζει τέσσερις ετικέτες (δεδομένα) και προσδιορίζει περαιτέρω ποιες ετικέτες μπορούν να εμφανιστούν (ή ποιες απαιτείται να εμφανιστούν) σε άλλες ετικέτες. Το DTD καθορίζει επίσης την ιεραρχική δομή ενός εγγράφου XML, συμπεριλαμβανομένης της κατάταξης στην οποία οι ετικέτες πρέπει να εμφανιστούν.
Δρ. Χρήστος Κ. Γεωργιάδης Παράδειγμα DTD Η πρώτη γραμμή δίνει το στοιχείο υψηλότερου επιπέδου, priceList, το οποίο σημαίνει ότι όλες οι άλλες ετικέτες στο έγγραφο θα έρθουν μεταξύ των ετικετών και. Η πρώτη γραμμή επίσης λεει ότι το στοιχείο priceList πρέπει να περιέχει ένα ή περισσότερα στοιχεία coffee (που υποδεικνύονται από το σημείο συν “+”).
Δρ. Χρήστος Κ. Γεωργιάδης Παράδειγμα DTD (συν.) Η δεύτερη γραμμή προσδιορίζει ότι κάθε στοιχείο coffee πρέπει να περιέχει και ένα στοιχείο ονόματος (name) και ένα στοιχείο τιμής (price), με αυτήν ακριβώς τη σειρά. Η τρίτη και η τέταρτη γραμμή προσδιορίζουν ότι τα δεδομένα μεταξύ των ετικετών και καθώς και μεταξύ των και πρέπει να αναλυθούν ως δεδομένα τύπου χαρακτήρα (#PCDATA). Το όνομα και η τιμή κάθε καφέ είναι το πραγματικό κείμενο που καταχωρείται στον κατάλογο τιμών.
Δρ. Χρήστος Κ. Γεωργιάδης XML Σχήμα Μια άλλη δημοφιλής γλώσσα σχημάτων είναι το XML σχήμα, το οποίο αναπτύσσεται από την παγκόσμια κοινοπραξία Ιστού (W3C). Το XML σχήμα είναι μια σημαντικά ισχυρότερη γλώσσα από την DTD, και μετά το Μάιο του 2001, η χρήση και οι εφαρμογές της έχουν αυξηθεί. Η κοινότητα των υπεύθυνων ανάπτυξης λογισμικού που χρησιμοποιούν την πλατφόρμα της Java, το έχει αναγνωρίσει αυτό, και η ειδική ομάδα για τα Java APIs επεξεργασίας XML (JAXP) έχει εργαστεί για τη προσθήκη της υποστήριξης του XML σχήματος στην προδιαγραφή JAXP 1.2.
Δρ. Χρήστος Κ. Γεωργιάδης Τι είναι αυτό που καθιστά την XML φορητή; Ένα σχήμα δίνει στα δεδομένα XML τη φορητότητά τους. Το προηγούμενο pricelist.DTD, είναι ένα απλό παράδειγμα ενός σχήματος. Εάν σε μια εφαρμογή στέλνεται ένα έγγραφο priceList σε μορφή XML και έχει το priceList.DTD, τότε αυτή μπορεί να επεξεργαστεί το έγγραφο σύμφωνα με τους κανόνες που προσδιορίζονται στο DTD. Π.χ., λαμβάνοντας υπόψη το priceList DTD, ένας parser ξέρει τη δομή και τον τύπο περιεχομένου για οποιοδήποτε έγγραφο XML που βασίζεται σε εκείνο το DTD. Εάν ο parser έχει και δυνατότητες «επικύρωσης» -οι περισσότεροι πλέον έχουν - μπορεί να αντιληφθεί ότι το έγγραφο δεν είναι έγκυρο εάν περιέχει ένα δεδομένο που δεν περιλαμβάνεται στο DTD, όπως π.χ. το στοιχείο, ή εάν τα στοιχεία δεν συμφωνήσουν με την καθορισμένη διάταξη, όπως π.χ. όταν το στοιχείο τιμής προηγείται του στοιχείου ονόματος.
Δρ. Χρήστος Κ. Γεωργιάδης Φορητότητα της XML Υπάρχουν και άλλα χαρακτηριστικά γνωρίσματα της XML που συμβάλλουν επίσης στη δημοτικότητά της ως μέθοδο για την ανταλλαγή δεδομένων. Κατ’ αρχάς, γράφεται σε μορφή κειμένου: έτσι, είναι αναγνώσιμη και από τους ανθρώπους αλλά φυσικά και από λογισμικό επιμέλειας κειμένου. Οι εφαρμογές μπορούν να αναλύσουν και να επεξεργαστούν τα έγγραφα XML, και οι άνθρωποι μπορούν επίσης να τα διαβάσουν σε περίπτωση που υπάρχει ένα σφάλμα στην επεξεργασία. Ένα άλλο χαρακτηριστικό γνώρισμα είναι ότι επειδή ένα έγγραφο XML δεν περιλαμβάνει τις οδηγίες μορφοποίησης, μπορεί να παρουσιαστεί με διάφορους τρόπους. Η διατήρηση των δεδομένων χωριστά από τις οδηγίες μορφοποίησης, σημαίνει ότι τα ίδια δεδομένα μπορούν να δημοσιευθούν σε διαφορετικά μέσα.
Δρ. Χρήστος Κ. Γεωργιάδης Java Servlets και JavaServer Pages (JSP) Java servletsJavaServer Pages (JSP). Για την υλοποίηση βασιζόμενων στο Web εφαρμογών με XML δεδομένα, θα χρησιμοποιήσουμε τις τεχνολογίες των Java servlets και JavaServer Pages (JSP). Τα servlets προσφέρουν έναν τρόπο για την επέκταση των Web διακομιστών με λειτουργικότητα η οποία στο παρελθόν επιτυγχάνονταν με CGI (Common Gateway Interface) scripts. Η τεχνολογία JSP επιτρέπει να συνδυάζεται κώδικας της HTML με αποσπάσματα κώδικα της Java στην ίδια σελίδα.
Δρ. Χρήστος Κ. Γεωργιάδης Επισκόπηση των Java APIs για XML Τα Java APIs για XML μας επιτρέπουν να γράψουμε εφαρμογές Ιστού εξ’ ολοκλήρου στη γλώσσα προγραμματισμού Java. Διακρίνονται σε δύο βασικές κατηγορίες: εκείνα που ασχολούνται άμεσα με την επεξεργασία εγγράφων XML και εκείνα που αφορούν διαδικασίες. Προσανατολισμένα σε έγγραφα (Document-oriented) –Java API για την επεξεργασία (Processing) XML (JAXP) – επεξεργάζεται έγγραφα XML χρησιμοποιώντας διάφορους parsers –Java Architecture για σύνδεση (Binding) XML (JAXB) - επεξεργάζεται έγγραφα XML χρησιμοποιώντας γενικές κλάσεις συστατικών τύπου JavaBeans, οι οποίες παράγονται από σχήματα (schema-derived JavaBeans component classes)
Δρ. Χρήστος Κ. Γεωργιάδης Java APIs για XML Προσανατολισμένα σε διαδικασίες (Procedure-oriented) –Java API για απομακρυσμένες διαδικασίες κλήσεων βασισμένες σε XML - XML-based RPC – Remote Procedure Calls (JAX-RPC) – στέλνει μέθοδο SOAP, καλεί απομακρυσμένα μέρη στο Internet και παραλαμβάνει τα αποτελέσματα –Java API για XML Messaging – ανταλλαγή μηνυμάτων (JAXM) – στέλνει μηνύματα SOAP στο Internet με το προκαθορισμένο (standard) τρόπο. –Java API για XML Registries – Μητρώα (JAXR) – παρέχει ένα προκαθορισμένο τρόπο για την προσπέλαση επιχειρησιακών μητρώων (business registries) και το διαμοιρασμό πληροφοριών
Δρ. Χρήστος Κ. Γεωργιάδης Διαλειτουργικότητα interoperability Ίσως το σημαντικότερο χαρακτηριστικό γνώρισμα των Java APIs για XML είναι ότι όλα υποστηρίζουν βιομηχανικά πρότυπα, εξασφαλίζοντας κατά συνέπεια τη διαλειτουργικότητα (interoperability). Οι διάφορες ομάδες προτύπων διαλειτουργικότητας δικτύων, όπως η παγκόσμια κοινοπραξία Ιστού (World Wide Web Consortium - W3C) και η οργάνωση για την πρόοδο των προτύπων δομημένων πληροφοριών (Organization for the Advancement of Structured Information Standards - OASIS), έχουν καθορίσει τους πρότυπους τρόπους διεκπεραίωσης λειτουργιών, έτσι ώστε οι επιχειρήσεις που ακολουθούν αυτά τα πρότυπα να μπορούν να κάνουν τα δεδομένα και τις εφαρμογές τους να συνεργάζονται.
Δρ. Χρήστος Κ. Γεωργιάδης Ευελιξία Ένα άλλο χαρακτηριστικό γνώρισμα των Java APIs για XML είναι ότι επιτρέπουν πολλή ευελιξία. Οι χρήστες έχουν ευελιξία στο πώς να χρησιμοποιούν τα APIs. Π.χ., ο κώδικας JAXP μπορεί να χρησιμοποιήσει διάφορα εργαλεία για να επεξεργαστεί ένα έγγραφο XML, και ο κώδικας JAXM μπορεί να χρησιμοποιήσει διάφορα πρωτόκολλα μηνυμάτων πάνω από το SOAP. Οι κατασκευαστές (implementers) έχουν επίσης ευελιξία. Τα Java APIs για XML καθορίζουν ακριβείς απαιτήσεις συμβατότητας για να εξασφαλιστεί ότι όλες οι εφαρμογές προσφέρουν την πρότυπη λειτουργία, αλλά δίνουν επίσης στους υπεύθυνους για την ανάπτυξη λογισμικού πολλή ελευθερία στο να παρέχουν εφαρμογές που προσαρμόζονται σε συγκεκριμένες χρήσεις. Παρακάτω, θα παρουσιαστεί κάθε ένα από αυτά τα APIs, και θα δοθεί μια επισκόπηση - αίσθηση για το πώς αυτά μπορούν να χρησιμοποιηθούν.
Δρ. Χρήστος Κ. Γεωργιάδης Τεχνολογική Υποδομή Εργαστηριακών Ασκήσεων Η υποδομή που θα χρειαστεί για την ανάπτυξη των εφαρμογών ηλεκτρονικού εμπορίου και των σχετικών εργαστηριακών ασκήσεων σχεδίασης και εκμετάλλευσης ημιδομημένων αλλά και δομημένων δεδομένων είναι αρκετά σύνθετη. Αποτελείται από προϊόντα τεχνολογίας αιχμής, πράγμα απαραίτητο για μια τόσο ραγδαία εξελισσόμενη περιοχή, όπως αυτή του ηλεκτρονικού εμπορίου.Αναλυτικότερα θα χρησιμοποιήσουμε τα ακόλουθα: Α. ΚΥΡΙΩΣ ΛΟΓΙΣΜΙΚΟ Java 2 Platform Standard Edition (J2SE) SDK Η τελευταία έκδοση του περιβάλλοντος ανάπτυξης λογισμικού (Software Development Kit - SDK) της Java κυκλοφόρησε το καλοκαίρι του Να σημειωθεί ότι χρειαζόμαστε έκδοση 1.4.x για τις ασκήσεις ηλεκτρονικού εμπορίου που θα αναπτυχθούν.
Δρ. Χρήστος Κ. Γεωργιάδης ΚΥΡΙΩΣ ΛΟΓΙΣΜΙΚΟ Java Web Services Developer Pack –Το κυριότερο συστατικό της υποδομής που θα χρησιμοποιήσουμε είναι το πακέτο εργαλείων ανάπτυξης υπηρεσιών Ιστού (Java Web Services Developer Pack) από την Sun. –Τον Αύγουστο του 2003, παρουσιάστηκε με τον αριθμό έκδοσης 1.2 (η έκδοση 1.1 είχε κυκλοφορήσει τον Μάρτιο του 2003), μια ακόμη πιο ολοκληρωμένη συλλογή βιβλιοθηκών κρίσιμων τεχνολογιών που στοχεύει στην απλοποίηση του κτισίματος υπηρεσιών Ιστού πάνω στη πλατφόρμα της Java 2. –Περιλαμβάνει:
Δρ. Χρήστος Κ. Γεωργιάδης Java Web Services Developer Pack Tomcat 5 Servlet/JSP Container (ένας μικρής κλίμακας Web server, που υποστηρίζει τις προδιαγραφές Servlet έκδοσης 2.4 και JavaServer Pages έκδοσης 2.0. Αποτελεί δωρεάν λογισμικό, από το έργο Jakarta της εταιρείας Apache ( JAXP έκδοση JAXR έκδοση JAX-RPC έκδοση 1.1 JAXB έκδοση SAAJ έκδοση 1.2 (SOAP with Attachments API for Java) JSTL έκδοση 1.1 –dev (JSP Standard Tag Library: βιβλιοθήκη πρότυπων ετικετών) JSF έκδοση 1.0 (JavaServer Faces: τεχνολογία που απλοποιεί τη κατασκευή διεπαφών χρήστη - user interfaces – σε εφαρμογές JavaServer) Registry Server έκδοση 1.0_05 XML and Web Services Security έκδοση 1.0 (προσφέρει ένα πλαίσιο με το οποίο ένας κατασκευαστής εφαρμογών JAX- RPC, μπορεί να υπογράφει ψηφιακά και να ελέγχει την εγκυρότητα ενός μηνύματος SOAP.
Δρ. Χρήστος Κ. Γεωργιάδης Β. ΔΙΑΧΕΙΡΙΣΗ XML ΕΓΓΡΑΦΩΝ Για τη σχεδίαση, δημιουργία και διαχείριση εγγράφων XML, μπορεί να χρησιμοποιηθεί οποιοδήποτε πρόγραμμα σύνταξης κειμένου (editor), όπως το σημειωματάριο (notepad) ή ακόμη και ένα ολοκληρωμένο περιβάλλον προγραμματισμού μιας γλώσσας, κατά προτίμηση της Java για ευνόητους λόγους. Ειδικότερα τα μεγάλα περιβάλλοντα όπως το JΒuilder της Borland (έκδοση 8 και άνω) και το JDeveloper της Oracle (έκδοση και άνω), προσφέρουν ισχυρές δυνατότητες διαχείρισης XML εγγράφων. Το μειονέκτημά τους είναι ότι έχουν μεγάλες απαιτήσεις σε πόρους για να εργαστεί κανείς αποδοτικά μέσω αυτών και κυρίως το ότι για να πετύχουν τη μέγιστη απόδοση ακολουθούν ειδικές υλοποιήσεις – προσεγγίσεις κατά τη χρήση εξειδικευμένων βιβλιοθηκών. Έτσι, πολλές φορές ξεφεύγουν από τα κοινώς τιθέμενα πρότυπα.
Δρ. Χρήστος Κ. Γεωργιάδης IE XML/XSL Viewer Tools Το ακόλουθο λογισμικό, χωρίς να είναι απαιτητικό, είναι σε θέση να διαυκολύνει την εργασία μας με τα XML δεδομένα: IE XML/XSL Viewer Tools Με το εργαλείο (extension tool) αυτό είμαστε σε θέση εκτός από το να βλέπουμε μέσω του Internet Explorer (IE) σε ευανάγνωστη μορφή (με χρώματα, εσοχές κλπ.) τα αρχεία XML και XSL (Extensible Stylesheet Language), να ελέγχουμε την εγκυρότητα (validation) των εγγράφων αυτών και να ζητούμε XSL output (μέσω του μενού συντόμευσης – δεξί κλικ)
Δρ. Χρήστος Κ. Γεωργιάδης Peter’s XML Editor (PXE v.2.0) Peter’s XML Editor (PXE v.2.0) Ο ειδικός αυτός συντάκτης εγγράφων XML, προσφέρει δυνατότητες εύκολου χειρισμού των δεδομένων και των ιδιοτήτων των εγγράφων XML. Το γραφικό του περιβάλλον επιπλέον υποστηρίζει έλεγχο καλοσχηματισμένων (well-formed) και έγκυρων (valid) εγγράφων XML, αν και το δεύτερο δεν γίνεται με άμεσο τρόπο. Βέβαια σε συνδυασμό με το προαναφερθέν IE XML/XSL Viewer Tools, η διαδικασία ελέγχου εγκυρότητας αυτοματοποιείται. Τέλος προσφέρει δυνατότητες παρουσίασης των δεδομένων XML σε τρεις μορφές (πηγαία, μέσω ΙΕ, αλλά και τη πολύ χρήσιμη δενδροειδή μορφή).
Δρ. Χρήστος Κ. Γεωργιάδης Oxygen v Αυτός ο συντάκτης XML εγγράφων έχει πολύ περισσότερες δυνατότητες, αλλά είναι λογισμικό περιορισμένου χρόνου. Μας ενδιαφέρει κυρίως το ότι μπορεί από ένα αρχείο XML να παράγει ένα κατάλληλο αρχείο DTD, αλλά και το αντίστροφο, μέσω της προηγμένης του δυνατότητας κατανόησης της δομής (learn structure).
Δρ. Χρήστος Κ. Γεωργιάδης Γ. ΣΥΝΔΕΣΗ ΜΕ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ PointBase 4.6 RDBMS (Relational DataBase Management Systems) Στις ασκήσεις που θα εργαστούμε με δεδομένα σχεσιακής βάσης και θα θελήσουμε να εξερευνήσουμε τις δυνατότητες διασύνδεσής τους με προγράμματα Java και δεδομένα XML, θα χρησιμοποιήσουμε ενδεικτικά την οικογένεια προγραμμάτων Pointbase έκδοσης 4.6, η οποία προσφέρει προηγμένες δυνατότητες ολοκλήρωσης με εφαρμογές Java καθώς και ισχυρά χαρακτηριστικά υποστήριξης εφαρμογών πελάτη- διακομιστή.
Δρ. Χρήστος Κ. Γεωργιάδης Δ. ΓΡΑΦΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΑΝΑΠΤΥΞΗΣ ΠΡΟΓΡΑΜΜΑΤΩΝ JAVA JCreator 2.5 LE (Light Edition) Το λογισμικό αυτό δεν είναι απαραίτητο, αλλά μπορεί να διευκολύνει αρκετές από τις εργασίες μας. Πρόκειται για ένα δωρεάν, «ελαφρύ» αλλά αξιόπιστο γραφικό περιβάλλον προγραμματισμού σε κώδικα Java.