Προγραμματισμός

Java από διακομιστή: Δημιουργήστε κατανεμημένες εφαρμογές με Java και XML

Η επεκτάσιμη γλώσσα σήμανσης, ή XML, έχει αποκτήσει ευρεία δημοτικότητα ως τρόπος αναπαραγωγής δεδομένων σε φορητή, ουδέτερη από προμηθευτή, αναγνώσιμη μορφή. Πολλοί προμηθευτές λογισμικού έχουν ανακοινώσει «υποστήριξη για XML», συνήθως σημαίνει ότι τα προϊόντα τους θα παράγουν ή θα καταναλώνουν δεδομένα XML.

Η XML θεωρείται επίσης ως το lingua franca για την ανταλλαγή δεδομένων μεταξύ επιχειρήσεων. Επιτρέπει στις επιχειρήσεις να συμφωνήσουν σε ορισμούς τύπων εγγράφων XML (DTDs) για τα δεδομένα που ανταλλάσσονται. Αυτά τα DTD είναι ανεξάρτητα από το σχήμα βάσης δεδομένων που χρησιμοποιούν οι επιχειρήσεις.

Ομάδες προτύπων που αντιπροσωπεύουν σχεδόν κάθε ανθρώπινη προσπάθεια συμφωνούν σε DTDs για την ανταλλαγή δεδομένων. Ένα από τα πολλά παραδείγματα είναι το Διεθνές Συμβούλιο Τηλεπικοινωνιών Τύπου (βλ. Πόροι), το οποίο έχει ορίσει ένα XML DTD που επιτρέπει "τη μεταφορά πληροφοριών ειδήσεων με σήμανση και την εύκολη μετατροπή σε ηλεκτρονικά δημοσιεύσιμη μορφή." Τέτοια κάθετα πρότυπα αγοράς θα επιτρέψουν σε διαφορετικές εφαρμογές να ανταλλάσσουν δεδομένα με απρόβλεπτους τρόπους.

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

Αυτό το άρθρο διερευνά τέτοιες κατανεμημένες εφαρμογές γραμμένες σε Java. Θα επικεντρωθώ στην επικοινωνία XML μεταξύ κώδικα Java που εκτελείται σε διαφορετικές εικονικές μηχανές.

Η επικοινωνία του XML

Η προδιαγραφή της XML που ορίζεται από το World Wide Web Consortium, ή το W3C (βλ. Πόροι), καθορίζει τη σύνταξη και τη σημασιολογία της γλώσσας. Για την επεξεργασία XML, πρέπει να αναλυθεί ένα έγγραφο XML. Θα ήταν λυπηρό εάν κάθε τάξη Java που χρειάστηκε να επεξεργαστεί το XML έπρεπε να αναλύσει ένα έγγραφο XML, δεδομένης της πολυπλοκότητας της σύνταξης και της σημασιολογίας του XML. Για την επίλυση αυτού του προβλήματος, το W3C έχει ορίσει το μοντέλο αντικειμένου εγγράφου (DOM) (βλ. Πόρους). Το DOM είναι μια διεπαφή προγραμματιστή εφαρμογών σε δεδομένα XML. Είναι διαθέσιμο από πολλές γλώσσες προγραμματισμού, συμπεριλαμβανομένης της Java. Τα προγράμματα Java μπορούν να έχουν πρόσβαση σε δεδομένα XML μέσω του API DOM. Οι αναλυτές XML παράγουν μια αναπαράσταση DOM ενός εγγράφου XML.

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

Ο κωδικός επεξεργαστή μεταβιβάζει την αναπαράσταση DOM των δεδομένων XML στο αποστολέας. Ο αποστολέας είναι κώδικας Java που μεταδίδει τα δεδομένα XML στο δέκτης. Ο δέκτης είναι κώδικας Java που λαμβάνει τα δεδομένα XML, παράγει μια αναπαράσταση DOM των δεδομένων και τα διαβιβάζει σε άλλον επεξεργαστή. Εν ολίγοις, ο αποστολέας και ο παραλήπτης αφηρημένη την επικοινωνία της αναπαράστασης DOM των δεδομένων XML.

Ο αποστολέας και ο παραλήπτης δεν εφαρμόζονται στην ίδια εικονική μηχανή Java. Συνδέονται με κατανεμημένη υποδομή συστήματος. Υπάρχουν διάφορες προσεγγίσεις για την εφαρμογή του αποστολέα και του παραλήπτη.

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

$config[zx-auto] not found$config[zx-overlay] not found