Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια

Τα πολλά πρόσωπα της XML (αρχική δημοσίευση: 2001)

Το άρθρο αυτό είχε γραφτεί το 2001 και είχε συμπεριληφθεί στο ηλεκτρονικό newsletter "ISTOS Web Sight" που εξέδιδε η εταιρία για την οποία εργαζόμουν εκείνο το διάστημα. Το πρωτότυπο άρθρο μπορείτε να το βρείτε στη διεύθυνση http://www.istos.com/public/ws1101/index2.htm. Τα γραφικά έχουν δημιουργηθεί από τον τότε συνάδελφο και ως τώρα καλό συνεργάτη κ. Αναστάσιο Παππά.

Αν και πολλά πράγματα έχουν αλλάξει από τότε, πιστεύω οτι είναι διδακτικό να δει κάποιος τον τρόπο με τον οποίο αντιμετωπίζονταν παρόμοια θέματα τότε. Σε ορισμένες περιπτώσεις, εκτιμώ οτι ακόμα και σήμερα το άρθρο παραμένει αρκούντως επίκαιρο.

Ο εκλαϊκευμένος ορισμός που συνηθίζω να δίνω σε όποιον με ρωτά "Τι είναι η XML", είναι συνήθως "ένα text file γραμμένο με ειδικό τρόπο, και το οποίο το χειριζόμαστε μέσω γλωσσών προγραμματισμού". Φυσικά, όταν μιλάμε για XML, μιλάμε για ένα standard ανταλλαγής δεδομένων μεταξύ ετερογενών συστημάτων, και για την οργάνωση αυτών των δεδομένων σε ιεραρχικές δομές, οπου υπάρχουν οι έννοιες του node, του attribute και του element. Μιλάμε επίσης για ένα API χειρισμού των παραπάνω αντικειμένων καθώς και για τη μετατροπή των δεδομένων αυτών σε διάφορες μορφές με τη χρήση XSL transformations.

Το καλό της XML είναι οτι, σε γενικές γραμμές, αποτελεί μια cross-platform κατάσταση (πώς άλλωστε θα μπορούσε να χρησιμεύει για την ανταλλαγή δεδομένων;) και ο τρόπος χειρισμού της είναι λίγο-πολύ παρόμοιος, είτε μιλάμε για Java, είτε για Visual Basic, είτε για κάποιο άλλο περιβάλλον προγραμματισμού. Το αποτέλεσμα δε που προκύπτει, (κάποιο XML document ή object) είναι κοινό για όλες τις πλατφόρμες.

Ας δούμε λοιπόν πώς η XML θα μπορούσε να διαφοροποιήσει την κατανομή εργασιών κατά τη δημιουργία ενός database - driven Web site, δηλαδή ενός Web site που χρησιμοποιεί κατά κύριο λόγο γλώσσα script ή /και COM components ή Java Servlets (όπως οι Active Server Pages -ASP ή οι Java Server Pages - JSP) και διαθέτει σύνδεση με ένα RDBMS (Access, SQL Server, Oracle κλπ) προκειμένου να αντλεί δεδομένα με δυναμικό τρόπο παρουσιάζοντάς τα σε μορφή σελίδων Web.

Μέχρι πριν απο λίγο καιρό, ο παραδοσιακός τρόπος κατανομής των εργασιών δημιουργίας ενός τέτοιου Web site (ρόλοι σε επίπεδο development) ήταν ο εξής:

Μετά την ολοκλήρωση της πρώτης φάσης της ανάπτυξης, ο Web Author ή ο Web Programmer θα πρέπει να φροντίσει για την ενσωμάτωση του business logic και του retrieval των δεδομένων στο υπάρχον user interface. Αυτό προϋποθέτει φυσικά είτε την εξοικείωση του author με τα scripts είτε την αντίστοιχη εξοικείωση του programmer με το HTML περιβάλλον (εξαιρώντας την περίπτωση που οι δύο αυτοί ρόλοι ανήκουν στο ίδιο άτομο).

Ενα μειονέκτημα της παραπάνω κατανομής είναι ότι, σε περίπτωση μετατροπών στην τελική μορφή του site ή στην περίπτωση ζήτησης εναλλακτικού interface για τις ίδιες πληροφορίες (π.χ. μεσω WAP, ή μέσω εφαρμογής Win32 / Java) ο programmer είναι αναγκασμένος να εμπλακεί και πάλι σε όλα τα επίπεδα, πολλές φορές γράφοντας νέο κώδικα. Σε περίπτωση που κάποιος άλλος programmer υλοποιήσει το εναλλακτικό interface, είναι πιθανό να μην μπορεί να χρησιμοποιήσει αυτούσια παρά πολύ μικρά τμήματα του ήδη υπάρχοντα κώδικα.
Ας δούμε τώρα μια εναλλακτική κατανομή των εργασιών, με τη χρήση XML/XSLT:

Τι παραπάνω μπορεί να μας δώσει η νέα κατανομή:

- Η εσωτερική δομή της βάσης δεδομένων δεν χρειάζεται να είναι γνωστή στον Web author, μια και δεν ασχολείται πλέον με πεδία και μεταβλητές αλλά με ένα ολοκληρωμένο XML αρχείο. Μάλιστα, ο Web author μπορεί να έχει στα χέρια του ένα δοκιμαστικό XML αρχείο πριν ακόμα ο προγραμματιστής γράψει την πρώτη γραμμή κώδικα, πράγμα που ελαττώνει την αλληλεξάρτηση μεταξύ των δύο αυτών ρόλων
- Ο Web author λειτουργεί πάντοτε με τον ίδιο τρόπο, ανεξάρτητα από την προγραμματιστική πλατφόρμα, μια και ο ρόλος του ολοκληρώνεται στο επίπεδο της δημιουργίας των κατάλληλων XSL transformations
- Ο programmer δεν χρειάζεται να ασχοληθεί με το output των σελίδων Web
- Λογω του οτι το XSLT επιτρέπει την υλοποίηση μιας στοιχειώδους λογικής παρουσίασης των δεδομένων, είναι δυνατή η επίτευξη λειτουργικών αλλαγών στον τρόπο παρουσίασης των δεδομένων χωρίς επέμβαση του programmer
- Τα ίδια δεδομένα μπορούν να χρησιμοποιηθούν σε διαφορετικά interfaces (WAP, Java, Win32) χωρίς επιπρόσθετο προγραμματισμό από την πλευρά του data retrieval
- Ακόμα και το ίδιο το user interface είναι δυνατό να περάσει μέσα από XML ωστε να του δοθούν περισσότερες δυνατότητες customization

To XML output που παράγει ο server μπορεί να χρησιμοποιηθεί για την εκχώρηση των δεδομένων προς εκμετάλλευση από τρίτους, χωρίς να δοθεί ταυτόχρονα πρόσβαση στη βάση δεδομένων ή στα scripts. (Ενα παράδειγμα τέτοιας υπηρεσίας θα βρείτε στην υπηρεσία ειδήσεων moreover (www.moreover.com), η οποία προσφέρει τα νέα της ημέρας σε μορφή XML για ενσωμάτωση από τρίτα sites)

Το γενικό συμπέρασμα που προκύπτει από τα παραπάνω είναι οτι η ενασχόληση με την XML μπορεί να μεταβάλλει την οργανωτική δομή της ανάπτυξης ενός Web site, λειτουργώντας ως εργαλείο διαχωρισμού των ρόλων των ατόμων που εμπλέκονται, και απλοποιώντας σε μεγάλο βαθμο τις διαδικασίες. Από την άλλη πλευρά, ο χρόνος εξοικείωσης και εκμάθησης τόσο του εκάστοτε object model για XML όσο και της χρήσης XSLT είναι ιδιαίτερα μικρός σε σχέση με την ευκολία που δημιουργεί.
 

 

 

 

Έχουν δημοσιευτεί Δευτέρα, 22 Αυγούστου 2005 11:08 πμ από το μέλος cap
Δημοσίευση στην κατηγορία:

Ενημέρωση για Σχόλια

Αν θα θέλατε να λαμβάνετε ένα e-mail όταν γίνονται ανανεώσεις στο περιεχόμενο αυτής της δημοσίευσης, παρακαλούμε γίνετε συνδρομητής εδώ

Παραμείνετε ενήμεροι στα τελευταία σχόλια με την χρήση του αγαπημένου σας RSS Aggregator και συνδρομή στη Τροφοδοσία RSS με σχόλια

Σχόλια:

# Απ: Τα πολλά πρόσωπα της XML (αρχική δημοσίευση: 2001)

Πέμπτη, 17 Νοεμβρίου 2005 6:08 μμ by Kastellanos Nikos
Πολύ καλα όλα αυτα φίλε.

Μαλιστα δουλεύω σε ενα τετοιο μοντελο εδώ και χρόνια και το βελτιώνω με το καιρό.

Βεβαια να τονίσω πως δεν είναι όλα ρόδινα, και παρουσιάζονται αρκετά προβλήματα κατα καιρούς.

Χαιρετισμούς..!

Ποιά είναι η άποψή σας για την παραπάνω δημοσίευση;

(απαιτούμενο)
απαιτούμενο
(απαιτούμενο)
ÅéóÜãåôå ôïí êùäéêü:
CAPTCHA Image