Κατανεμημένες Εφαρμογές και Ηλεκτρονικό Εμπόριο -> XML

6 Η XML στην πράξη

Οι προηγούμενες ενότητες ανέλυσαν τα βασικά της XML και πώς μπορεί να χρησιμοποιηθεί για τον ορισμό σημειoγραφικών γλωσσών. Σκοπός αυτής της ενότητας είναι να εξετάσει δύο συγκεκριμένες εφαρμογές που βασίζονται στην XML.

6.1 Κλιμακούμενα διανυσματικά γραφικά

Η πλειοψηφία των γραφικών εικόνων του Παγκόσμιου Ιστού είναι γραφικά χαρτογραφημένων μπιτ (Bit ΜappedGraphics). Αυτό σημαίνει ότι κάθε εικονοστοιχείο (pixel) των γραφικών είναι αποθηκευμένο σε ένα αρχείο, όπου κάθε ειονοστοιχείοδιατηρεί ορισμένες πληροφορίες, όπως για παράδειγμα το χρώμα του και τον κορεσμό του. Δύο από τις πιο δημοφιλείς μορφές που χρησιμοποιούνται στις εικόνες στο Διαδίκτυο, οι GIF και JPEG, είναι γραφικά χαρτογραφημένων μπιτ που αφορούν γραφικά σταθερής ανάλυσης.

Τα γραφικά χαρτογραφημένων μπιτ παρουσιάζουν δύο μειονεκτήματα: πρώτον, όταν εστιάζει κανείς σε ένα τέτοιο γραφικό, ή επαναπροσδιορίζει το μέγεθός του, χάνονται πολλές λεπτομέρειες. Δεύτερον, τα γραφικά χαρτογραφημένων μπιτ καταλαμβάνουν μεγάλο χώρο αποθήκευσης. Ο ανταγωνιστής των χαρτογραφημπένων γραφικών είναι τα διανυσματικά γραφικά (vector graphics). Εδώ, αντί για την αποθήκευση καθενός από τα εικονοστοιχεία αυτό που αποθηκεύεται είναι σειρές οδηγιών σχεδιασμού, όπως, τράβηξε μία γραμμή από ένα σημείο ως κάποιο άλλο, χάραξε έναν κύκλο με το κέντρο του σε ένα σημείο και, εμφάνισε ένα κείμενο συγκεκριμένου ύψους και γραμματοσειράς σε συγκεκριμένο χώρο.

Ένα σημαντικό πρόβλημα με τα διανυσματικά γραφικά στον Ιστό είναι ότι υπάρχουν λίγα γενικά πρότυπα, μόνο ιδιόκτητα πρότυπα όπως τα Flash και QuickTime. Αυτό ώθησε το W3 Consortium να' αναπτύξει ένα πρότυπο γνωστό ως Πρότυπο Κλιμακούμενου Διανυσματικού Γραφικού (Scalable Vector Graphics, SVG). Πρόκειται για ένα πρότυπο που βασίζεται στην XML, που παρουσιάζει ορισμένα πλεονεκτήματα. Περιλαμβάνει ορισμένες πολύ εξεζητημένες απαιτήσεις:εκτύπωση υψηλής ποιότητας, γρήγορη εστίαση και ιχνοθέτηση (panning) χωρίς επαναφόρτωση, εύκολη κίνηση (animation), και την ικανότητα για εύκολο φιλτράρισμα. Από τη στιγμή που η γλώσσα βασίζεται σε κείμενο υπάρχει η δυαντότητα μία μηχανή αναζήτησης να ευρετηριάσει γραφικά με τον ίδιο τρόπο που θα ευρετηριάσει τα κείμενα μιας ιστοσελίδας. Για παράδειγμα, μία μηχανή αναζήτησης μπορεί να καταγράψει τα λειτουργικά μέρη μιας εταιρείας, τα οποία περιέχονται σε ένα οργανόγραμμα.

Ένα άλλο πλεονέκτημα της χρήσης μιας τέτοιας σημειογραφικής γλώσσας είναι ότι τα γραφικά μπορούν να δημιουργηθούν γρήγορα. Για παράδειγμα, η κίνηση στον Ιστό συνήθως επιτυγχάνεται με τον σχεδιασμό της ίδιας εικόνας πολλές φορές, με μικρές διαφορές ανάμεσα στις εικόνες, και στην συνέχεια με στιγμιαία εμφάνιση της κάθε εικόνας. Αυτό μπορεί να καταναλώσει πολύ αποθηκευτικό χώρο. Μία εναλλακτική λύση θα ήταν να επιτραπεί σ' ένα πρόγραμμα (στην πλευρά του πελάτη) να επεξεργαστεί τις οδηγίες κινούμενης απεικόνισης στον φάκελο γραφικών και να εμφανίσει τις απεικονίσεις.

Ένα παράδειγμα αποσπάσματος αυτής της γλώσσας παρουσιάζεται παρακάτω:

  <SVG width = "3in" height = "2in">
<DESC>
This is a sample circle drawn for the book Distributed
Applications and E-Commerce
</DESC>
<G>
<CIRCLE style = "fill: red; stroke: black" cx = 100 cy = 100 r = 100/>
</G>
</SVG>

Το επίθεμα <SVG> προσδιορίζει το κείμενο που αντιπροσωπεύει ένα γραφικό SVG. Τα επιθέματα <DESC> εσωκλείουν περιγραφικό κείμενο που συνοψίζει το γραφικό. Το επίθεμα <G> εισάγει το γραφικό και το επίθεμα <CIRCLE> περιγράφει έναν χαραγμένο κύκλο με το κέντρο του στο σημείο (100, 100) και ακτίνα 100. Το περίγραμμα του κύκλου είναι μαύρο και είναι γεμισμένος με κόκκινο χρώμα.

Η SVG προς το παρόν είναι υπό ανάπτυξη. Το επόμενο παράδειγμα τεχνολογίας XML χρησιμοποιείται ευρέως.

6.2 Η Μορφή Ορισμού Καναλιού

Η πλειοψηφία των ανεπτυγμένων τεχνολογιών για το Διαδίκτυο ανήκουν στις ονομαζόμενες τεχνολογίες έλξης (pull technologies), όπου οι πληροφορίες μεταφέρονται μόνο ύστερα από ρητό αίτημα. Ο Παγκόσμιος Ιστός αποτελεί ένα καλό παράδειγμα: χρήστες που χρησιμοποιούν περιηγητές ζητούν ρητά μία ιστοσελίδα όταν επιλέγουν έναν υπερσύνδεσμο.

Αυτό έρχεται σε αντίθεση με τις τεχνολογίες ώθησης (push technologies), όπου το υλικό μεταδίδεται κατά βούληση προς έναν συνδρομητή. Μία από τις πιο γνωστές τεχνολογίες push είναι τα ενεργά κανάλια. Αναπτύχθηκε από την Microsoft. Δίνει την δυνατότητα στον χρήστη ενός λειτουργικού συστήματος Windows να εγγραφεί σε ένα συγκεκριμένο κανάλι. Όταν γίνει η εγγραφή, εμφανίζεται μία μικρή σελίδα στην επιφάνεια εργασίας, η οποία ενημερώνεται τακτά από την εταιρεία στην οποία ανήκει το κανάλι. Οι περισσότερες εταιρείες καναλιών είναι παροχείς ειδήσεων ή πληροφοριών, όπως το CNN ή το BBC.

Η Μορφή Ορισμού Καναλιού είναι μία γλώσσα XML που παρέχει λεπτομέρειες σχετικά με ένα κανάλι, για παράδειγμα ποιες σελίδες σχετίζονται με αυτό το κανάλι και η συχνότητα ενημέρωσής του. Ένα απόσπασμα αυτής της γλώσσας δίνεται παρακάτω. Περιγράφει κανάλια και υπο-κανάλια.

  <CHANNEL>
<ΤITLE>News Headline</TITLE>
<SCHEDULE>
<INTERVALTIME HOUR = "1"/>
</SCHEDULE>
<CHANNEL>
<TITLE> News </TITLE>
<ITEM HREF = http://www.newsservice.com/british>
<TITLE> British News </TITLE>
</ITEM>
<ITEM HREF = http://www.newsservice.com/american>
<TITLE> American News </TITLE>
</ITEM>
..
</CHANNEL>
..
</CHANNEL>

Εδώ, ένα κανάλι νέων ορίζεται με βάση τα υπο-κανάλια που καλύπτουν διαφορετικές γεωγραφικές περιοχές ειδήσεων. Κάθε υπο-κανάλι σχετίζεται με ένα URL μέσα από το οποίο μεταφορτώνονται τα νέα. Το επίθεμα <INTERVALTIME> διευκρινίζει πότε πρέπει να ενημερωθεί καθένα από τα υπο-κανάλια. Το παράδειγμα διευκρινίζει ότι αυτό πρέπει να επαναλαμβάνεται κάθε ώρα, όταν νέες ειδήσεις μεταφορτώνονται στο κανάλι.

XHTML
Η XHTML (η eXtensible Hypertext Markup Language) είναι μία τεχνολογία σχετική με την XML, που θα αποτελέσει τον διάδοχο της HTML. Περιλαμβάνει την HTML 4 σαν υπο-ομάδα και έχει σχεδιαστεί για να αναπαραστήσει σύνθετα δεδομένα στο Διαδίκτυο. Η XHTML επιτρέπει στους συγγραφείς να δημιουργήσουν τα δικά τους τεκμήρια, και στους περιηγητές να εκτελούν ενδελεχείς ελέγχους στον κώδικα XHTML που αναπτύσσεται από έναν σχεδιαστή Ιστού. Έτσι, η XHTML ξεπερνά ένα μεγάλο πρόβλημα: οι περιηγητές αντιδρούν διαφορετικά σε ανεπαρκώς μορφοποιημένη HTML και την εμφανίζουν με διάφορετικούς τρόπους.

6.3 ebXML

Η ebXML είναι μια γλώσσα βασισμένη στην XML για την υλοποίηση εφαρμογών η-επιχειρείν. Όταν δύο επιχειρήσεις διαδρούν μέσω του Διαδικτύου πρέπει να εκτελέσουν ορισμένες διαδικασίες. Αυτές γενικά είναι:


Η ebXML παρέχει μηχανισμούς για την εγκαθίδρυση της επικοινωνιακής υποδομής μεταξύ των μερών μιας η-επιχειρηματικής συναλλαγής. Αυτοί περιλαμβάνουν το μηχανισμό μεταφοράς δεδομένων, λογισμικό για την επεξεργασίας εισερχόμενων και εξερχόμενων μηνυμάτων, και λογισμικό για τη διεπαφή με υπάρχουσες εφαρμογές.

Ένα βασικό τμήμα του προτύπου ebXML είναι αυτό που ορίζει τη διαδικασία εγκαθίδρυσης ενός η-χώρου αγορών. Ένας τέτοιος χώρος αγορών βασίζεται σε κεντρικά αποθηκευμένα δεδομένα που επιτρέπουν εταιρίες να καταχωρήσουν και να ανακαλύψουν πληροφορίες που τους αφορούν, για παράδειγμα τι υπηρεσίες προσφέρουν. Ένας τέτοιος χώρος βασίζεται πολύ σε κάποια υπηρεσία καταλόγου.

Παρακάτω εμφανίζεται ένα μικρό απόσπασμα από μια επιχειρηματική συναλλαγή σε XML. ΄Εχει ληφθεί από μια επισκόπηση υπηρεσιών Ιστού που διατηρεί η Sun. Μπορεί να βρεθεί στη συλλογή των υπερσυνδέσμων του κεφαλαίου.
  <BusinessTransaction name = "Create Order">
<RequestingBusinessActivity name = ""
isNonRepudiationRequired = "true"
timeToAcknowledgeReceipt = "P2D"
timeToAcknowledgeAcceptance = "P3D">
<DocumnentEnvelope
BusinessDocument = "Purchase Order"/>
</RequestingBusinessActivity>
..

Εδώ δημιουργείται μια εντολή αγοράς που απαιτεί από το χρήστη να επιβεβαιώσει οτι έχει παραληφθεί (isNonRepudiationRequired = "true") και το όριο επιβεβαίωσης παραλαβής είναι 2 ημέρες (P2D), ενώ το όριο επιβεβαίωσης αποδοχής είναι 3 ημέρες (P3D).

Ο κώδικας συνοδεύεται από περισσότερο κείμενο που ορίζει τη φύση της συναλλαγής και τις ενέργειες που πρέπει να γίνουν.

Αυτή είναι μια πολύ σύντομη εισαγωγή στην ebXML. Οι υπερσύνδεσμοι του κεφαλάιου παρέχουν μια πολύ λεπτομερέστερη εισαγωγή σε αυτό το μεγάλο και αναπτυσσόμενο πρότυπο.    
Άσκηση 8.6
Αναπτύσσοντας μία απλή γλώσσα γραφικών XML
Η Φόρμα Ορισμού Καναλιού
Φόρμες γραφικών
SVG
Τα παγκόσμια πρότυπα είναι λίγα, για παράδειγμα το πρότυπο για το VRML, την γλώσσα που αφορά την εικονική πραγματικότητα
Αξίζει να παρατηρήσουμε ότι το επίθεμα <CIRCLE> απορρίφθηκε ως μη σχετιζόμενο με κάποιο κείμενο. Αυτό σημαίνει ότι η σύντομη έκδοση του <TAG>..</TAG> χρησιμοποιείται εκεί όπου το μόνο που απαιτείται είναι ένα ληκτικό /> μέσα στο εισαγωγικό επίθεμα
XHTML