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

Anonim

Εισαγωγή

Αυτό το άρθρο ασχολείται με δύο πρωτόκολλα πρόσβασης σε υπηρεσίες web, SOAP ("Αντιπροσωπευτική κρατική μεταφορά"). Υπηρεσίες Web

Οι υπηρεσίες Web ορίζονται για την ενεργή λήψη, ανάγνωση ή μεταφορά δεδομένων από μια καθορισμένη πηγή για την παραγωγή ενός καθορισμένου αποτελέσματος - ενός αποτελέσματος.

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

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

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

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

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

SOA και BPMN

Μια εφαρμογή που βασίζεται σε εκτελέσιμες διεργασίες βασίζεται σε

Service Oriented Architecture ("SOA"). Πρόκειται για μια προσέγγιση σχετικά με τον τρόπο χρήσης υπηρεσιών που μεταφέρουν, παράγουν, επικυρώνουν ή υπολογίζουν δεδομένα. Το SOA

γίνεται όλο και πιο ευνοϊκό για τη βελτίωση της ποιότητας και του χρόνου ανάπτυξης και για τη βελτίωση της απόδοσης και της επεκτασιμότητας των εφαρμογών. Η συμβολική μοντελοποίηση επιχειρηματικών διαδικασιών

("BPMN") διαμορφώνει μια υπηρεσία ή μια επιχειρηματική διαδικασία, η οποία μπορεί να γίνει από μη τεχνικούς ανθρώπους i. μι. ο επιχειρηματικός αναλυτής. Χρησιμοποιώντας BPMN , τα επιχειρηματικά μοντέλα (για υπηρεσίες) ερμηνεύονται εύκολα από προγραμματιστές που εφαρμόζουν το μοντέλο ως εκτελέσιμη διαδικασία και αυτές οι διαδικασίες ενδέχεται να απαιτούν ανθρώπινη αλληλεπίδραση. Πρωτόκολλο πρόσβασης απλού αντικειμένου (SOAP)

Το SOAP είναι μια μέθοδος μεταφοράς δεδομένων μέσω του Διαδικτύου.

Αρχικά αναπτύχθηκε από τη Microsoft λόγω της εμφάνισης του διαδικτύου, το SOAP αντικατέστησε τις παλαιές τεχνολογίες DCOM

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

XML

για υπηρεσίες μηνυμάτων μέσω του διαδικτύου και τα αιτήματα μηνυμάτων XML μπορεί να είναι πολύ περίπλοκα και αν αναπτυχθούν χειροκίνητα απαιτείται προσεκτική προσοχή επειδή το SOAP είναι άκαμπτο με σφάλματα. Είναι δυνατή η αυτοματοποίηση των αιτημάτων μηνυμάτων SOAP χρησιμοποιώντας. NET γλώσσες (ως παράδειγμα), όπου οι προγραμματιστές δεν χρειάζεται να δουλεύουν με την XML καθώς παράγεται αυτόματα στο παρασκήνιο. Εάν προκύψουν προβλήματα με την αίτηση μηνύματος, επιστρέφονται λεπτομερείς πληροφορίες σφάλματος στην απάντηση μηνύματος και αυτή η διαδικασία μπορεί επίσης να αυτοματοποιηθεί με αναφορά στους τυπικούς κωδικούς σφαλμάτων που παρέχονται στην απάντηση μηνύματος.

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

Μια από τις αποσκευές που συνοδεύει ένα μήνυμα SOAP είναι η

Γλώσσα Περιγραφής Υπηρεσιών Web

("WSDL") για να εξηγήσει πώς λειτουργεί η υπηρεσία web. Όταν μια εφαρμογή αναφέρει την υπηρεσία ιστού, διαβάζει και κατανοεί τι πρέπει να κάνει με την υπηρεσία ιστού. Το SOAP δεν δεσμεύεται να χρησιμοποιεί αποκλειστικά το

(πρωτόκολλο μεταφοράς HyperText). μπορεί να χρησιμοποιηθεί μέσω SMTP και άλλα πρωτόκολλα μεταφοράς. Δεδομένου ότι το SOAP ήταν τυποποιημένο, είναι πιο άκαμπτο από το REST, αν και οι δύο εξαρτώνται από τους καθιερωμένους κανόνες. REST

Η REST είναι ο νεότερος και πιο κομψός ξάδελφος του SOAP και γρήγορα γίνεται η επιλογή για τις περισσότερες εφαρμογές ιστού και κινητής τηλεφωνίας.

Περισσότερο από μια δεκαετία μετά την εισαγωγή του, το REST είναι ένας πιο ελαφρύς, πιο συντηρητικός και κλιμακωτός τρόπος αλληλεπίδρασης με τις υπηρεσίες ιστού.

Σε αντίθεση με το SOAP, το REST δεν χρησιμοποιεί αποκλειστικά το

XML

. απλό κείμενο , CSV και RSS καθώς και JSON για κλήσεις AJAX. εφόσον η πηγή και οι στόχοι μπορούν να κατανοήσουν τις μορφές που χρησιμοποιούνται. Το REST είναι λιγότερο περίπλοκο και θεωρείται μικρότερη καμπύλη μάθησης σε σύγκριση με το SOAP. Οι περισσότερες σύγχρονες γλώσσες προγραμματισμού έχουν βιβλιοθήκες και πλαίσια για να διευκολύνουν τις υπηρεσίες REST (RESTful), όπως C #, Python, Java και Perl. Το REST είναι ταχύτερο λόγω της ελάχιστης επεξεργασίας και είναι πιο αποτελεσματικό χρησιμοποιώντας διαφορετικές μορφές μηνυμάτων.

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