portaldacalheta.pt
  • Κύριος
  • Επιστήμη Δεδομένων Και Βάσεις Δεδομένων
  • Κατανεμημένες Ομάδες
  • Ευκίνητο Ταλέντο
  • Κερδοφορία & Αποδοτικότητα
Τεχνολογία

Μια βαθιά ματιά στο JSON εναντίον XML, Μέρος 1: Η ιστορία κάθε προτύπου



Σχετίζεται με: Μια βαθιά ματιά στο JSON εναντίον XML, Μέρος 2: Τα δυνατά σημεία και οι αδυναμίες και των δύο

Από επιτραπέζιους υπολογιστές σε web και κινητές συσκευές, σχεδόν όλες οι εφαρμογές υπολογιστών που χρησιμοποιούμε σήμερα βασίζονται σε ένα από τα δύο βασικά πρότυπα μηνυμάτων: JSON και XML. Σήμερα, το JSON είναι η πιο ευρέως χρησιμοποιούμενη μορφή, αλλά ξεπέρασε το XML μόνο τα τελευταία πέντε χρόνια. Μια γρήγορη αναζήτηση στο διαδίκτυο για το 'JSON εναντίον XML' θα φέρει αμέτρητα άρθρα και αναρτήσεις ιστολογίου που συγκρίνουν τα δύο πρότυπα και ισοδυναμεί με μια προοδευτικά διευρυνόμενη προκατάληψη που επαινεί την απλότητα του JSON και επικρίνει την ευγένεια του XML. Πολλά άρθρα επιμένουν ότι το JSON είναι ανώτερο από το XML λόγω της στενής σημασιολογίας του και την έκπτωση XML ως αναποτελεσματικό και μπερδεμένο πρότυπο του παρελθόντος. Στην αρχή, το JSON φαίνεται να είναι το πιο δημοφιλές - έτσι είναι το JSON απλώς καλύτερο από το XML; Η μάχη του 'JSON εναντίον XML' μπορεί να πάει στο JSON στην επιφάνεια, αλλά σε βάθος, υπάρχουν περισσότερα από ό, τι συναντά το μάτι.

Στο Μέρος 1 αυτού του άρθρου, θα:



  1. Ρίξτε μια πιο προσεκτική ματιά στην ιστορία του διαδικτύου για να ανακαλύψετε τον αρχικό σκοπό των XML και JSON.
  2. Εξετάστε την εξέλιξη των τάσεων λογισμικού τα τελευταία χρόνια για να εξακριβώσετε γιατί το JSON έγινε πιο δημοφιλές από το XML.

Η Ιστορία των JSON και XML

Για να ανακαλύψουμε τον λόγο για τη δημοτικότητα του JSON έναντι του XML, ας εξερευνήσουμε την ιστορία του ιστού και πώς η εξέλιξή του από το Web 1.0 στο Web 2.0 επηρέασε τις τάσεις στην ανάπτυξη.



Ο Ιστός 1.0: HTML

Οι αρχές της δεκαετίας του 1990 ήταν η αυγή του Web 1.0. Η HTML εισήχθη το 1991 και υιοθετήθηκε ευρέως από πανεπιστήμια, επιχειρήσεις και κυβερνητικούς οργανισμούς ως τη γλώσσα του διαδικτύου. Το HTML προήλθε από το SGML ή 'Standard Generalized Markup Language' που εφευρέθηκε τη δεκαετία του 1970 από την IBM. Εκτός από τη μάζα υιοθεσία , Μάζα πριονιών HTML προσαρμογή - οι επεκτάσεις ενσωματώθηκαν για να υποστηρίξουν πολυμέσα, κινούμενα σχέδια, διαδικτυακές εφαρμογές, ηλεκτρονικό εμπόριο και άλλα. Ως παράγωγο της SGML, η HTML δεν διέθετε αυστηρές προδιαγραφές για να εμποδίσει τις εταιρείες να το επεκτείνουν ελεύθερα ώστε να πληρούν απαιτήσεις που ήταν πέρα ​​από την αρχική ιδέα. Ο διαγωνισμός για το πιο δημοφιλές πρόγραμμα περιήγησης ιστού μεταξύ Netscape και Microsoft απέδωσε ταχεία πρόοδο, αλλά οδήγησε επίσης σε ασταμάτητο κατακερματισμό του προτύπου. Ο έντονος ανταγωνισμός οδήγησε σε «καταστροφή απόκλισης», καθώς η αύξηση του HTML από τις δύο εταιρείες προκάλεσε τα προγράμματα περιήγησης να υποστηρίξουν τις δικές τους μοναδικές εκδόσεις HTML. Αυτή η καταστροφή απόκλισης έγινε ένα τεράστιο πρόβλημα για εφαρμογές web καθώς οι προγραμματιστές αγωνίστηκαν να γράψουν διαλειτουργικό κώδικα για τα προγράμματα περιήγησης.



Ο Ιστός 1.1: XML + HTML = XHTML

Στα τέλη της δεκαετίας του 1990, μια ομάδα ανθρώπων - συμπεριλαμβανομένων των Jon Bosak, Tim Bray, James Clark και άλλων - βρήκαν το XML: την 'eXtensible Markup Language'. Όπως το SGML, το XML δεν είναι από μόνο του μια γλώσσα σήμανσης, αλλά μια προδιαγραφή για τον ορισμό των γλωσσών σήμανσης. Το XML ήταν μια εξέλιξη από το SGML - σχεδιασμένο να παρέχει μέσα για τον καθορισμό και την επιβολή δομημένου περιεχομένου. Θεωρείται ως «το ιερό δισκοπότηρο της πληροφορικής» ένας η γλώσσα XML προσπάθησε «να λύσει το πρόβλημα της καθολικής ανταλλαγής δεδομένων μεταξύ ανόμοιων συστημάτων» (Dr. Charles Goldfarb) 2 . Αντί του συνεχιζόμενου κατακερματισμού της HTML, η Επιτροπή Παγκόσμιου Ιστού (W3C) δημιουργήθηκε για να προωθήσει τη συμβατότητα και τη συμφωνία μεταξύ του κλάδου για την υιοθέτηση νέων προτύπων για τον Παγκόσμιο Ιστό. 3 Το W3C έθεσε ως στόχο την αναμόρφωση του HTML ως εφαρμογή XML, με αποτέλεσμα το XHTML.

Το XHTML ήταν μια μεγάλη πρωτοβουλία που έφερε την προσοχή στην XML, αλλά είναι μόνο ένα μικρό μέρος του XML.



πώς να δημιουργήσετε μια ιδέα

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

Java και .NET

Στις αρχές της δεκαετίας του 2000, ο ιστός διέθετε δύο εταιρείες: την Sun και τη Microsoft. Εκείνη την εποχή, το τοπίο των γλωσσών προγραμματισμού είχε μεγάλη κλίση στην πλευρά του διακομιστή. Η κοινή αρχιτεκτονική για εφαρμογές ιστού βασίστηκε σε διακομιστές που δίνουν σελίδες HTML στο πίσω μέρος για να παραδοθούν στο πρόγραμμα περιήγησης. Αυτή η προσέγγιση υπογράμμισε τεχνολογίες back-end, οι οποίες με τη σειρά τους διέδωσαν τις κορυφαίες πλατφόρμες back-end: Java και C # .NET. Αναπτύχθηκε από την Sun Microsystems, η Java οδήγησε τη νέα γενιά γλωσσών προγραμματισμού με αντικειμενοστρεφή επίλυση του προβλήματος της διασταυρούμενης αρχιτεκτονικής με το μυθιστόρημά της 'γράψτε μια φορά τρέχει οπουδήποτε' 4 πλησιάζω. Η Microsoft ακολούθησε τα .NET, C #, και το Common Language Runtime (CLR) και έριξε τα μάτια της στο XML ως προσέγγιση επιλογής για την επίλυση του παζλ διαλειτουργικότητας δεδομένων. Η Microsoft έγινε ο μεγαλύτερος υποστηρικτής της XML, με την εταιρεία να επιλέγει την XML ως αναπόσπαστο μέρος της εξέχουσας πρωτοβουλίας της .NET. Διαφημίζεται ως 'πλατφόρμα για υπηρεσίες διαδικτύου XML' 5 Εφαρμογές .NET είχαν αρχίσει να χρησιμοποιούν XML για επικοινωνία με άλλες πλατφόρμες. Επιλεγμένο ως πρότυπο ανταλλαγής δεδομένων της Microsoft, το XML ενσωματώθηκε στα κορυφαία προϊόντα του διακομιστή, όπως ο SQL Server και το Exchange.



Ο Ιστός 1.2: AJAX

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

Η Netscape και η Microsoft προσπάθησαν να αντιμετωπίσουν αυτό το πρόβλημα με ασύγχρονη παράδοση περιεχομένου: ActiveX και JavaScript. Το 1998, η ομάδα Microsoft Outlook Web Access ανέπτυξε την ιδέα πίσω από το ActiveX 6 , το οποίο αργότερα εφαρμόστηκε από τους Mozilla, Safari, Opera και άλλα προγράμματα περιήγησης σε JavaScript ως το XMLHttpRequest αντικείμενο.



Ο AJAX γεννήθηκε από το ActiveX της Microsoft και το Netscape's JavaScript.

Ο όρος AJAX - συντομογραφία 'Asynchronous JavaScript and XML' - έρχεται να αντιπροσωπεύει ένα ευρύ φάσμα τεχνολογιών Ιστού που μπορούν να χρησιμοποιηθούν για την εφαρμογή εφαρμογών ιστού που επικοινωνούν με διακομιστές στο παρασκήνιο χωρίς να απαιτείται επαναφόρτωση μιας σελίδας. Στο άρθρο που επινόησε τον όρο AJAX, 7 8 Ο Τζέιμς Τζέιμς Γκάρετ περιέγραψε τις κύριες έννοιες:



  1. HTML (ή XHTML) και CSS για παρουσίαση.
  2. Το μοντέλο αντικειμένου εγγράφου (DOM) για δυναμική προβολή και αλληλεπίδραση με δεδομένα.
  3. XML για την ανταλλαγή δεδομένων και XSLT για τον χειρισμό του.
  4. Το XMLHttpRequest αντικείμενο ασύγχρονης επικοινωνίας.
  5. JavaScript για να συνδυάσετε αυτές τις τεχνολογίες.

Με την ασύγχρονη παράδοση περιεχομένου να αποδεικνύει ότι μειώνει το φορτίο του διακομιστή και εξοικονομεί σημαντικό εύρος ζώνης, το AJAX ήταν ένα παιχνίδι αλλαγής. Η εισαγωγή του XMLHttpRequest στα προγράμματα περιήγησης επέτρεψε στους προγραμματιστές να εφαρμόσουν πιο σύνθετη λογική στο front end. Η Google πραγματοποίησε μια ευρεία ανάπτυξη AJAX μεταξύ προγραμμάτων περιήγησης συμβατή με πρότυπα με το Gmail το 2004 και τους Χάρτες Google το 2005. 9 Και, τον Οκτώβριο του 2004, η δημόσια έκδοση beta του Kayak.com ήταν μια από τις πρώτες χρήσεις ηλεκτρονικού εμπορίου AJAX μεγάλης κλίμακας. 10

Ο Ιστός 2.0: Εφαρμογές μίας σελίδας

Η υιοθέτηση του AJAX ως η επεκτάσιμη αρχιτεκτονική για εφαρμογές Ιστού οδήγησε στην αυγή του Web 2.0: της Ενιαίας Σελίδας Εφαρμογής (SPA). έντεκα Αντί να επαναφορτώνουν ολόκληρη τη σελίδα για κάθε αλληλεπίδραση χρήστη, οι SPA ξαναγράφουν δυναμικά την τρέχουσα σελίδα στο πρόγραμμα περιήγησης. Εκτός από τη σημαντική μείωση του φορτίου διακομιστή και της κατανάλωσης εύρους ζώνης, η προσέγγιση SPA επέτρεψε στις εφαρμογές ιστού να μοιάζουν με εφαρμογές επιφάνειας εργασίας λόγω της απρόσκοπτης και αδιάκοπης εμπειρίας κατά τη διάρκεια της αλληλεπίδρασης με τον χρήστη.



Τον Απρίλιο του 2002, ο Stuart Morris έγραψε ένα από τα πρώτα SPA στο slashdotslash.com 12 , και αργότερα τον ίδιο χρόνο, ο Lucas Birdeau, ο Kevin Hakman, ο Michael Peachey και ο Evan Yeh περιέγραψαν μια εφαρμογή μιας σελίδας στο δίπλωμα ευρεσιτεχνίας ΗΠΑ 8.136.109. 13 Το δίπλωμα ευρεσιτεχνίας περιήγησε προγράμματα περιήγησης ιστού χρησιμοποιώντας JavaScript για να εμφανίσει το περιβάλλον εργασίας χρήστη, να τρέξει τη λογική της εφαρμογής και να επικοινωνήσει με διακομιστή ιστού.

Το Gmail, οι Χάρτες Google και η δημόσια έκδοση beta του Kayak πυροδότησαν μια νέα εποχή ανάπτυξης εφαρμογών ιστού. Τα προγράμματα περιήγησης που έχουν ενεργοποιηθεί με την AJAX δίνουν τη δυνατότητα στους προγραμματιστές να γράφουν πλούσιες εφαρμογές για τον Ιστό. Η εύκολη σημασιολογία της JavaScript επέτρεψε την ανάπτυξη εφαρμογών για προγραμματιστές οποιουδήποτε επιπέδου. Το εμπόδιο για την είσοδο στην ανάπτυξη λογισμικού μειώθηκε σημαντικά και οι μεμονωμένοι προγραμματιστές σε όλο τον κόσμο άρχισαν να συνεισφέρουν με τις δικές τους βιβλιοθήκες και πλαίσια. Δημοφιλείς βιβλιοθήκες όπως το jQuery, οι οποίες ομαλοποιούν τη συμπεριφορά AJAX σε προγράμματα περιήγησης από διαφορετικούς κατασκευαστές, προχώρησαν περαιτέρω στην επανάσταση του AJAX.

javascript λάβετε χρόνο από την ημερομηνία

Η άνοδος του JSON

Τον Απρίλιο του 2001, ο Douglas Crockford και ο Chip Morningstar έστειλαν το πρώτο μήνυμα JSON από έναν υπολογιστή στο γκαράζ του Morningstar’s Bay Area. Οι Crockford και Morningstar προσπαθούσαν να δημιουργήσουν εφαρμογές AJAX πολύ πριν ο όρος 'AJAX' επινοηθεί, αλλά η υποστήριξη του προγράμματος περιήγησης για αυτό που προσπαθούσαν να επιτύχουν δεν ήταν καλή. Ήθελαν να μεταδώσουν δεδομένα στην εφαρμογή τους μετά τη φόρτωση της σελίδας, αλλά δεν βρήκαν τρόπο να το επιτρέψουν να λειτουργήσει σε όλα τα προγράμματα περιήγησης.

Το 2001, μόλις άρχισε η ανάπτυξη του AJAX και δεν υπήρχε ακόμη μια διαλειτουργική μορφή του XMLHttpRequest αντικείμενο στον Internet Explorer 5 και το Netscape 4. Έτσι, οι Crockford και Morningstar χρησιμοποίησαν μια διαφορετική προσέγγιση που λειτούργησε και στα δύο προγράμματα περιήγησης.

Το πρώτο μήνυμα JSON έμοιαζε με αυτό:

document.domain = 'fudco'; parent.session.receive( { to: 'session,' do: 'test,' text: 'Hello world' } )

Αυτό το μήνυμα είναι στην πραγματικότητα ένα έγγραφο HTML που περιέχει κάποια JavaScript και μόνο ένα μικρό μέρος του μηνύματος μοιάζει με το JSON όπως το γνωρίζουμε σήμερα. Οι Crockford και Morningstar μπόρεσαν να φορτώσουν δεδομένα ασύγχρονα δείχνοντας ένα