Σαπούνι έναντι REST: Διαφορά μεταξύ Υπηρεσιών API Ιστού

Πίνακας περιεχομένων:

Anonim

Τι είναι το σαπούνι;

Το SOAP είναι ένα πρωτόκολλο που σχεδιάστηκε πριν από το REST και ήρθε στην εικόνα. Η κύρια ιδέα πίσω από το σχεδιασμό του SOAP ήταν να διασφαλιστεί ότι τα προγράμματα που βασίζονται σε διαφορετικές πλατφόρμες και γλώσσες προγραμματισμού θα μπορούσαν να ανταλλάσσουν δεδομένα με εύκολο τρόπο. Το SOAP σημαίνει Πρωτόκολλο Πρόσβασης Απλού Αντικειμένου.

Τι είναι το REST;

Το REST σχεδιάστηκε ειδικά για εργασία με στοιχεία όπως στοιχεία πολυμέσων, αρχεία ή ακόμη και αντικείμενα σε μια συγκεκριμένη συσκευή υλικού. Οποιαδήποτε υπηρεσία Ιστού που ορίζεται στις αρχές του REST μπορεί να ονομάζεται υπηρεσία ιστού RestFul. Μια υπηρεσία ξεκούρασης θα χρησιμοποιούσε τα κανονικά ρήματα HTTP των GET, POST, PUT και DELETE για εργασία με τα απαιτούμενα στοιχεία. Το REST σημαίνει Αντιπροσωπευτική Μεταφορά Κράτους.

ΒΑΣΙΚΗ ΔΙΑΦΟΡΑ

  • Το SOAP σημαίνει Πρωτόκολλο Πρόσβασης Απλού Αντικειμένου, ενώ το REST σημαίνει Μεταφορά Κρατικής Αντιπροσωπείας.
  • Το SOAP είναι ένα πρωτόκολλο ενώ το REST είναι ένα αρχιτεκτονικό σχέδιο.
  • Το SOAP χρησιμοποιεί διεπαφές υπηρεσίας για να εκθέσει τη λειτουργικότητά του σε εφαρμογές πελατών, ενώ το REST χρησιμοποιεί εντοπιστές Uniform Service για πρόσβαση στα στοιχεία της συσκευής υλικού.
  • Το SOAP χρειάζεται περισσότερο εύρος ζώνης για τη χρήση του, ενώ το REST δεν χρειάζεται πολύ εύρος ζώνης.
  • Το SOAP λειτουργεί μόνο με μορφές XML ενώ το REST λειτουργεί με απλό κείμενο, XML, HTML και JSON.
  • Το SOAP δεν μπορεί να κάνει χρήση του REST ενώ το REST μπορεί να κάνει χρήση του σαπουνιού.

Διαφορά μεταξύ SOAP και REST

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

Παρακάτω είναι οι κύριες διαφορές μεταξύ SOAP και REST

ΣΑΠΟΥΝΙ

ΥΠΟΛΟΙΠΟ

  • Το SOAP σημαίνει Πρωτόκολλο Πρόσβασης Απλού Αντικειμένου
  • Το REST σημαίνει Αντιπροσωπευτική Μεταφορά Κράτους
  • Το SOAP είναι ένα πρωτόκολλο. Το SOAP σχεδιάστηκε με προδιαγραφές. Περιλαμβάνει ένα αρχείο WSDL το οποίο έχει τις απαιτούμενες πληροφορίες σχετικά με το τι κάνει η υπηρεσία web εκτός από την τοποθεσία της υπηρεσίας ιστού.
  • Το REST είναι ένα αρχιτεκτονικό στιλ στο οποίο μια διαδικτυακή υπηρεσία μπορεί να αντιμετωπιστεί μόνο ως υπηρεσία RESTful εάν ακολουθεί τους περιορισμούς της ύπαρξης
    1. Διακομιστή-πελάτη
    2. Ανιθαγενείς
    3. Κρυφή μνήμη
    4. Πολυεπίπεδο σύστημα
    5. Ομοιόμορφη διεπαφή
  • Το SOAP δεν μπορεί να χρησιμοποιήσει το REST αφού το SOAP είναι ένα πρωτόκολλο και το REST είναι ένα αρχιτεκτονικό σχέδιο.
  • Το REST μπορεί να χρησιμοποιήσει το SOAP ως το βασικό πρωτόκολλο για υπηρεσίες διαδικτύου, γιατί στο τέλος είναι απλώς ένα αρχιτεκτονικό μοτίβο.
  • Το SOAP χρησιμοποιεί διεπαφές υπηρεσίας για να εκθέσει τη λειτουργικότητά του σε εφαρμογές πελατών. Στο SOAP, το αρχείο WSDL παρέχει στον πελάτη τις απαραίτητες πληροφορίες που μπορούν να χρησιμοποιηθούν για να κατανοήσουν ποιες υπηρεσίες μπορεί να προσφέρει η υπηρεσία Ιστού.
  • Το REST χρησιμοποιεί εντοπιστές Uniform Service για πρόσβαση στα στοιχεία της συσκευής υλικού. Για παράδειγμα, εάν υπάρχει ένα αντικείμενο που αντιπροσωπεύει τα δεδομένα ενός υπαλλήλου που φιλοξενείται σε μια διεύθυνση URL ως http: //demo.guru99, τα παρακάτω είναι μερικά από τα URI που μπορούν να υπάρχουν για πρόσβαση σε αυτά
  • http://demo.guru99.com/ Εργαζόμενος

    http://demo.guru99.com/Em Employee/1

  • Το SOAP απαιτεί περισσότερο εύρος ζώνης για τη χρήση του. Δεδομένου ότι τα μηνύματα SOAP περιέχουν πολλές πληροφορίες μέσα σε αυτό, το ποσό της μεταφοράς δεδομένων που χρησιμοποιεί το SOAP είναι γενικά πολύ.
int
  • Το REST δεν χρειάζεται μεγάλο εύρος ζώνης όταν αποστέλλονται αιτήματα στον διακομιστή. Τα μηνύματα REST αποτελούνται κυρίως από μηνύματα JSON. Ακολουθεί ένα παράδειγμα ενός μηνύματος JSON που μεταδίδεται σε έναν διακομιστή ιστού. Μπορείτε να δείτε ότι το μέγεθος του μηνύματος είναι συγκριτικά μικρότερο από το SOAP.
  • {"city":"Mumbai","state":"Maharastra"}
  • Το SOAP μπορεί να λειτουργήσει μόνο με μορφή XML. Όπως φαίνεται από τα μηνύματα SOAP, όλα τα δεδομένα που διαβιβάζονται είναι σε μορφή XML.
  • Το REST επιτρέπει διαφορετική μορφή δεδομένων, όπως Απλό κείμενο, HTML, XML, JSON κ.λπ. Αλλά η πιο προτιμώμενη μορφή για τη μεταφορά δεδομένων είναι το JSON.

Πότε να χρησιμοποιήσετε το REST;

Ένα από τα πιο συζητήσιμα θέματα είναι το πότε πρέπει να χρησιμοποιείται το REST ή πότε να χρησιμοποιείται το σαπούνι κατά το σχεδιασμό υπηρεσιών διαδικτύου. Ακολουθούν ορισμένοι από τους βασικούς παράγοντες που καθορίζουν πότε κάθε τεχνολογία πρέπει να χρησιμοποιείται για υπηρεσίες Ιστού Οι υπηρεσίες REST πρέπει να χρησιμοποιούνται στις ακόλουθες περιπτώσεις

  • Περιορισμένοι πόροι και εύρος ζώνης - Δεδομένου ότι τα μηνύματα SOAP έχουν βαρύτερο περιεχόμενο και καταναλώνουν πολύ μεγαλύτερο εύρος ζώνης, το REST θα πρέπει να χρησιμοποιείται σε περιπτώσεις όπου το εύρος ζώνης δικτύου είναι περιορισμός.

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

  • Caching - Εάν υπάρχει ανάγκη για προσωρινή αποθήκευση πολλών αιτημάτων, τότε το REST είναι η τέλεια λύση. Κατά καιρούς, οι πελάτες θα μπορούσαν να ζητήσουν τον ίδιο πόρο πολλές φορές. Αυτό μπορεί να αυξήσει τον αριθμό των αιτημάτων που αποστέλλονται στον διακομιστή. Με την εφαρμογή μιας προσωρινής μνήμης, τα πιο συχνά αποτελέσματα των ερωτημάτων μπορούν να αποθηκευτούν σε μια ενδιάμεση τοποθεσία. Έτσι, όποτε ο πελάτης ζητά έναν πόρο, θα ελέγχει πρώτα την προσωρινή μνήμη. Εάν υπάρχουν οι πόροι τότε, δεν θα προχωρήσει στον διακομιστή. Έτσι, η προσωρινή αποθήκευση μπορεί να βοηθήσει στην ελαχιστοποίηση του αριθμού των ταξιδιών που πραγματοποιούνται στον διακομιστή ιστού.

  • Ευκολία κωδικοποίησης - Η κωδικοποίηση REST Services και η επακόλουθη εφαρμογή είναι πολύ ευκολότερη από το SOAP. Επομένως, εάν απαιτείται μια λύση γρήγορης νίκης για υπηρεσίες Ιστού, τότε το REST είναι ο τρόπος που πρέπει να ακολουθήσετε.

Πότε να χρησιμοποιείτε σαπούνι;

Το σαπούνι πρέπει να χρησιμοποιείται στις ακόλουθες περιπτώσεις

  1. Ασύγχρονη επεξεργασία και επακόλουθη επίκληση - εάν υπάρχει απαίτηση ότι ο πελάτης χρειάζεται ένα εγγυημένο επίπεδο αξιοπιστίας και ασφάλειας, τότε το νέο πρότυπο SOAP του SOAP 1.2 παρέχει πολλές πρόσθετες δυνατότητες, ειδικά όταν πρόκειται για ασφάλεια.

  2. Ένα επίσημο μέσο επικοινωνίας - εάν τόσο ο πελάτης όσο και ο διακομιστής έχουν συμφωνία σχετικά με τη μορφή ανταλλαγής, τότε το SOAP 1.2 παρέχει τις άκαμπτες προδιαγραφές για αυτόν τον τύπο αλληλεπίδρασης. Ένα παράδειγμα είναι ένας διαδικτυακός ιστότοπος αγορών στον οποίο οι χρήστες προσθέτουν στοιχεία σε ένα καλάθι πριν από την πληρωμή. Ας υποθέσουμε ότι έχουμε μια διαδικτυακή υπηρεσία που εκτελεί την τελική πληρωμή. Μπορεί να υπάρξει μια σταθερή συμφωνία ότι η υπηρεσία ιστού θα δεχτεί μόνο το όνομα του προϊόντος, την τιμή μονάδας και την ποσότητα. Εάν υπάρχει ένα τέτοιο σενάριο τότε, είναι πάντα καλύτερο να χρησιμοποιήσετε το πρωτόκολλο SOAP.

  3. Κρατικές λειτουργίες - εάν η εφαρμογή έχει μια απαίτηση ότι η κατάσταση πρέπει να διατηρηθεί από το ένα αίτημα στο άλλο, τότε το πρότυπο SOAP 1.2 παρέχει τη δομή WS * για την υποστήριξη τέτοιων απαιτήσεων.

Προκλήσεις στο SOAP API

Το API είναι γνωστό ως διεπαφή προγραμματισμού εφαρμογών και προσφέρεται τόσο από τον πελάτη όσο και από τον διακομιστή. Στον κόσμο των πελατών, αυτό προσφέρεται από το πρόγραμμα περιήγησης, ενώ στον κόσμο των διακομιστών είναι αυτό που παρέχεται από την υπηρεσία Ιστού που μπορεί να είναι είτε SOAP ή REST.

Προκλήσεις με το API SOAP

  1. Αρχείο WSDL - Μία από τις βασικές προκλήσεις του SOAP API είναι το ίδιο το έγγραφο WSDL. Το έγγραφο WSDL είναι αυτό που λέει στον πελάτη για όλες τις λειτουργίες που μπορούν να εκτελεστούν από την υπηρεσία Ιστού. Το έγγραφο WSDL θα περιέχει όλες τις πληροφορίες, όπως τους τύπους δεδομένων που χρησιμοποιούνται στα μηνύματα SOAP και τι όλες οι λειτουργίες είναι διαθέσιμες μέσω της υπηρεσίας διαδικτύου. Το παρακάτω απόσπασμα κώδικα είναι μόνο μέρος ενός δείγματος αρχείου WSDL.

Σύμφωνα με το παραπάνω αρχείο WSDL, έχουμε ένα στοιχείο που ονομάζεται "TutorialName" το οποίο είναι του τύπου String που είναι μέρος του στοιχείου TutorialNameRequest.

Τώρα, ας υποθέσουμε αν το αρχείο WSDL αλλάξει σύμφωνα με τις απαιτήσεις της επιχείρησης και το TutorialName πρέπει να γίνει TutorialDescription. Αυτό θα σήμαινε ότι όλοι οι πελάτες που αυτήν τη στιγμή συνδέονται με αυτήν την υπηρεσία Ιστού θα πρέπει τότε να κάνουν αυτήν την αντίστοιχη αλλαγή στον κώδικά τους για να προσαρμόσουν την αλλαγή στο αρχείο WSDL.

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

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

Προκλήσεις στο REST API

  1. Έλλειψη ασφάλειας - Το REST δεν επιβάλλει κανένα είδος ασφάλειας όπως το σαπούνι. Αυτός είναι ο λόγος για τον οποίο το REST είναι πολύ κατάλληλο για δημόσια διαθέσιμες διευθύνσεις URL, αλλά όταν πρόκειται για τη διαβίβαση εμπιστευτικών δεδομένων μεταξύ του πελάτη και του διακομιστή, το REST είναι ο χειρότερος μηχανισμός που χρησιμοποιείται για υπηρεσίες Ιστού.
  2. Έλλειψη κατάστασης - Οι περισσότερες διαδικτυακές εφαρμογές απαιτούν έναν κρατικό μηχανισμό Για παράδειγμα, εάν είχατε έναν ιστότοπο αγορών που είχε τον μηχανισμό ενός καλαθιού αγορών, πρέπει να γνωρίζετε τον αριθμό των αντικειμένων στο καλάθι αγορών πριν από την πραγματοποίηση της πραγματικής αγοράς. Δυστυχώς, το βάρος της διατήρησης αυτής της κατάστασης βαρύνει τον πελάτη, πράγμα που καθιστά την εφαρμογή πελάτη βαρύτερη και δύσκολη στη συντήρησή της.

Διαφορά μεταξύ SOAP Vs CORBA Vs DCOM Vs Java RMI

Τεχνικές απομακρυσμένης πρόσβασης, όπως οι μέθοδοι RPC (κλήσεις απομακρυσμένης διαδικασίας) ήταν σε κοινή χρήση προτού έρθουν το SOAP και το REST. Παρακάτω αναφέρονται οι διάφορες τεχνικές απομακρυσμένης πρόσβασης.

  1. CORBA - Αυτό ήταν γνωστό ως C ΚΟΙΝΗ O bject R Equest Β Roker Α rchitecture. Αυτό το σύστημα τέθηκε σε εφαρμογή για να εξασφαλίσει ότι οι εφαρμογές που είναι κατασκευασμένες σε διάφορες πλατφόρμες θα μπορούσαν να μιλούν μεταξύ τους. Το CORBA βασίστηκε σε αντικειμενοστρεφή αρχιτεκτονική, αλλά δεν ήταν απαραίτητο η εφαρμογή κλήσης να βασίζεται σε αυτήν την αρχιτεκτονική. Το μεγαλύτερο μειονέκτημα αυτής της τεχνικής ήταν ότι πρέπει να αναπτυχθεί σε μια ξεχωριστή γλώσσα που ονομάζεται Interface Definition Language και παρουσίασε μια επιπλέον γλώσσα που έπρεπε να μάθει από τους προγραμματιστές για να κάνουν χρήση του συστήματος CORBA.

  2. DCOM - Αυτό είναι το D istributed C συνιστώσας Ο bject Μ odel, η οποία είναι μια αποκλειστική τεχνολογία της Microsoft για τους πελάτες να έχουν πρόσβαση εξ αποστάσεως συστατικά. Το μεγαλύτερο πρόβλημα με αυτόν τον μηχανισμό ήταν ότι εξαρτάται από την εφαρμογή πελάτη να ελευθερώσει πόρους όταν δεν απαιτείται πλέον.

    Δεύτερον, όταν ο πελάτης έστειλε το αίτημα, εναπόκειται στον πελάτη να διασφαλίσει ότι το αίτημα τυλίχθηκε ή αναλύθηκε σωστά, έτσι ώστε η υπηρεσία ιστού να κατανοήσει το αίτημα που στάλθηκε. Ένα άλλο ζήτημα ήταν εάν η εφαρμογή πελάτη ήταν μια εφαρμογή που βασίζεται σε Java, η οποία έπρεπε να λειτουργεί DCOM (Microsoft Technology) πρόσθετη κωδικοποίηση απαιτείται για να διασφαλιστεί ότι οι εφαρμογές που είναι ενσωματωμένες σε άλλες γλώσσες προγραμματισμού θα μπορούσαν να λειτουργούν με υπηρεσίες διαδικτύου που βασίζονται σε DCOM.

  3. Java RMI - Γνωστή ως Java Ε emote Μ Μέθοδος Ι nvocation, αυτό ήταν εφαρμογή Java για το πώς απομακρυσμένα αντικείμενα θα μπορούσαν να κληθούν μέσω απομακρυσμένης διαδικασίας κλήσεις. Ο μεγαλύτερος περιορισμός αυτής της τεχνολογίας ήταν ότι το Java RMI μπορούσε να εκτελεστεί μόνο σε Java Virtual Machine. Αυτό σήμαινε ότι η εφαρμογή κλήσης πρέπει επίσης να εκτελείται στο πλαίσιο Java για να κάνει χρήση του Java RMI.

Οι κύριες διαφορές μεταξύ του SOAP και αυτών των τεχνικών είναι οι εξής

  1. Εργασία μέσω HTTP - Όλες οι τεχνικές RPC έχουν έναν μεγάλο περιορισμό και είναι ότι δεν λειτουργούν με το πρωτόκολλο HTTP. Δεδομένου ότι όλες οι εφαρμογές στο διαδίκτυο έπρεπε να λειτουργήσουν σε αυτό το πρωτόκολλο, αυτό αποτελούσε σημαντικό εμπόδιο για τους πελάτες που έπρεπε να έχουν πρόσβαση σε αυτές τις υπηρεσίες ιστού τύπου RPC.
  2. Εργασία με μη τυπικές θύρες - Δεδομένου ότι οι υπηρεσίες Ιστού τύπου RPC δεν λειτουργούσαν με το πρωτόκολλο HTTP, πρέπει να είναι ανοιχτές ξεχωριστές θύρες για να μπορούν οι πελάτες να έχουν πρόσβαση στη λειτουργικότητα από αυτές τις υπηρεσίες Ιστού.