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

REST ή SOAP σε περιβάλλον με νέφος

Τα μοντέλα δεδομένων API που βασίζονται σε σύννεφο όχι μόνο βελτίωσαν την εμπειρία στο cloud, αλλά επίσης έδωσαν έναν τρόπο για τους προγραμματιστές και τους διαχειριστές να ενσωματώσουν το φόρτο εργασίας στο cloud χρησιμοποιώντας αυτά τα API. Για τις περισσότερες επιχειρήσεις, τα API επιτρέπουν την κοινή χρήση πληροφοριών σε διάφορες εφαρμογές εσωτερικού και cloud. Παίζουν επίσης σημαντικό ρόλο στην ενοποίηση του φόρτου εργασίας της πλατφόρμας πιο ομαλά. Καθώς η υιοθέτηση cloud συνεχίζει να αυξάνεται, υπάρχει περισσότερη ζήτηση για σημεία ενοποίησης μεταξύ εφαρμογών εντός και εκτός του περιβάλλοντος cloud. Η άνοδος της στρατηγικής πολλαπλών ηχείων και η ανάγκη βελτίωσης των δυνατοτήτων cross cloud έχουν αυξήσει την εξάρτηση από το περιβάλλον cloud API. Αλλά ποια προσέγγιση είναι καλύτερη και ποια υποστήριξη λαμβάνετε στο περιβάλλον cloud;

Με λίγα λόγια, το σαπούνι

Το SOAP (συντομότερο για Simple Object Access Protocol), η παλαιότερη προσέγγιση, είχε υποστήριξη σε ολόκληρο τον κόσμο, από εταιρείες προϊόντων όπως η IBM και η Microsoft έως τους φορείς υλοποίησης υπηρεσιών. Έρχεται επίσης με ένα ολοκληρωμένο αλλά πολύπλοκο σύνολο προτύπων. Η ομάδα της Microsoft που σχεδίασε το SOAP το έκανε να είναι εξαιρετικά ευέλικτο - να μπορεί να επικοινωνεί μέσω ιδιωτικών δικτύων, μέσω Διαδικτύου και email. Υποστηρίχθηκε επίσης από διάφορα πρότυπα. Η αρχική έκδοση του SOAP ήταν μέρος μιας προδιαγραφής που περιείχε επίσης Καθολική περιγραφή, Ανακάλυψη και Ενσωμάτωση (UDDI) και Γλώσσα Περιγραφής Υπηρεσιών Ιστού (WSDL).

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

Ένα μήνυμα SOAP περιέχει ορισμένα υποχρεωτικά μέρη όπως ΦΑΚΕΛΟΣ, ΕΠΙ ΚΕΦΑΛΗΣ, ΣΩΜΑ, και ΣΦΑΛΜΑ. οΦΑΚΕΛΟΣ Το αντικείμενο ορίζει την αρχή και το τέλος της αίτησης μηνύματος XML, ΕΠΙ ΚΕΦΑΛΗΣ περιέχει τυχόν στοιχεία κεφαλίδας προς επεξεργασία από το διακομιστή, και το ΣΩΜΑ περιέχει το υπόλοιπο αντικείμενο XML που αποτελεί το αίτημα. ΣΦΑΛΜΑ αντικείμενο χρησιμοποιείται χειρισμός τυχόν σφαλμάτων.

ΥΠΟΛΟΙΠΟ

Το REST (Representational State Transfer) αναφέρεται συνήθως ως αρχιτεκτονικό στιλ και όχι ως πρωτόκολλο, το οποίο χρησιμοποιείται για την κατασκευή διαδικτυακών υπηρεσιών. Η αρχιτεκτονική REST επιτρέπει την επικοινωνία μεταξύ δύο προγραμμάτων λογισμικού, όπου ένα πρόγραμμα μπορεί να ζητήσει και να χειριστεί πόρους από το άλλο. Το αίτημα REST για πρόσβαση σε πόρους στο πρόγραμμα-στόχος χρησιμοποιεί ρήματα HTTP: ΠΑΙΡΝΩ, ΘΕΣΗ, ΒΑΖΩ, και ΔΙΑΓΡΑΦΩ. Αυτά τα αιτήματα μπορούν να χρησιμοποιούν μορφή δεδομένων όπως XML, HTML και JSON. Το JSON προτιμάται περισσότερο, καθώς είναι πιο συμβατό και εύκολο στη χρήση. Τα περισσότερα API REST βασίζονται σε URI (Uniform Resource Identifier) ​​και είναι ειδικά για το πρωτόκολλο HTTP.

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

Γιατί σαπούνι ή REST;

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

Το SOAP είναι κατάλληλο για εφαρμογές όπου χρειάζεστε υψηλότερο επίπεδο ασφάλειας. Το SOAP έρχεται με λειτουργίες ασφαλείας σε επίπεδο επιχείρησης που υποστηρίζονται από το WS-Security, καθώς και υποστήριξη SSL. Εάν ψάχνετε να αναπτύξετε μια λύση τραπεζικής κινητής τηλεφωνίας, τα SOAP APIs θα ήταν πιθανώς το πρώτο ζήτημα για τις απαιτήσεις ασφαλείας. Το SOAP παρέχει επίσης μια λογική επανάληψης για εγγυημένη επιτυχία και αξιόπιστη επικοινωνία. Το REST χρησιμοποιεί HTTP και μπορεί να αντιμετωπίσει τις αποτυχίες επικοινωνίας μόνο με την επανάληψη, ωστόσο η λογική επανάληψης δεν είναι ενσωματωμένη στο REST. Το SOAP παρέχει ενσωματωμένη λογική επανάληψης.

Τι αλλάζει σε ένα περιβάλλον εγγενές σύννεφο;

Από την οπτική γωνία ενός προγραμματιστή, τίποτα δεν αλλάζει πραγματικά στην επιλογή μεταξύ REST ή SOAP, αλλά ο σχεδιασμός της υπηρεσίας σας σε περιβάλλον με νέους νέους φέρνει την προοπτική της πλατφόρμας σε θέματα. Η διαθεσιμότητα υπηρεσιών και ο χρόνος απόκρισης διαδραματίζουν κρίσιμο ρόλο στο σχεδιασμό εταιρικών υπηρεσιών και εφαρμογών στο cloud. Από άποψη ασφάλειας, το πρωτόκολλο WS-Security (Web Service Security), το οποίο παρέχει ασφάλεια επιπέδου μηνυμάτων από άκρο σε άκρο χρησιμοποιώντας μηνύματα SOAP, εφαρμόζεται ευρέως στο cloud computing για την προστασία της ασφάλειας των περισσότερων υπηρεσιών διαδικτύου που σχετίζονται με το cloud computing. Ωστόσο, το WS-Security χρησιμοποιεί στοιχεία κεφαλίδας SAOP για τη μεταφορά πληροφοριών που σχετίζονται με την ασφάλεια. Ένα μήνυμα SOAP είναι τύπου XML και συνήθως είναι πολύ μεγαλύτερο σε μέγεθος από το πραγματικό μήνυμα σε δυαδική μορφή. Αυτό αυξάνει το χρόνο και την επεξεργασία για την επικοινωνία και την επεξεργασία των δεδομένων. Αυτό μπορεί να αποτελέσει επιχείρημα συζήτησης για την επιλογή REST έναντι SOAP, αλλά υπάρχει μετάβαση από το SOAP στο REST ανεξάρτητα από την πλατφόρμα στην οποία πρόκειται να εκτελεστεί η εφαρμογή σας.

Στα τέλη του 2016, το Microsoft Azure πρόσθεσε υποστήριξη μέσω SOAP στη διαχείριση API Azure που βοηθά τους προγραμματιστές να δημιουργήσουν έναν διακομιστή μεσολάβησης για τα API SOAP με τον ίδιο τρόπο που δημιουργούν διακομιστή μεσολάβησης για API REST / HTTP. Χρησιμοποιώντας την υποστήριξη διέλευσης SOAP, μπορείτε να εισαγάγετε έγγραφα WSDL και να δημιουργήσετε έναν νέο διακομιστή μεσολάβησης API. η διαδικασία εξετάζει όλες τις ενέργειες SOAP στο έγγραφο και τις δημιουργεί αποτελεσματικά σε τελικά σημεία API. Σε μια μελλοντική έκδοση, ενδέχεται να δούμε μια δυνατότητα που ζητήθηκε να δημιουργήσει REST front end χρησιμοποιώντας ένα SOAP back end.

Μέσα στον κόσμο του AWS, τα περισσότερα από τα API AWS είναι προσβάσιμα μόνο μέσω REST και έχουν περιορισμένη υποστήριξη για το SOAP. Οι πόροι EC2 είναι διαθέσιμοι μέσω REST ή Query API, ενώ το SOAP API για EC2 έχει καταργηθεί από τα τέλη του 2015. Υπηρεσίες όπως το Amazon S3 και το RDS υποστηρίζουν επίσης το REST ενώ το SOAP υποστηρίζεται μόνο μέσω HTTPS. Το SOAP για HTTP έχει καταργηθεί. Το Amazon SQS δεν υποστηρίζει πλέον το σαπούνι. Ενώ το REST φαίνεται να οδηγεί AWS APIs, το Amazon API Gateway ενοποιείται με το οικοσύστημα AWS και παρέχει υποστήριξη για τη δημιουργία, διαχείριση και ανάπτυξη ενός RESTful API για την έκθεση τελικών σημείων HTTP / HTTPS, λειτουργιών AWS Lambda και / ή άλλων υπηρεσιών AWS. Το API Gateway βοηθά επίσης στην επίκληση εκτεθειμένων μεθόδων API μέσω των τελικών σημείων HTTP front-end.

Όλο και περισσότερη υποστήριξη βασίζεται σε RESTful API. Η απλότητά του με λειτουργίες που μοιάζουν με ρήματα το καθιστά φιλικό για προγραμματιστές. Είναι συμβατό με τις περισσότερες μορφές και είναι εύκολο στη χρήση. Δεν υπάρχει ούτε ηλιοβασίλεμα για το SOAP, αλλά το REST σίγουρα θα είναι δημοφιλές μεταξύ της κοινότητας προγραμματιστών.