SOAP

Το SOAP (γνωστό ως Simple Object Access Protocol) αποτελεί ένα πρωτόκολλο μειωμένων λειτουργιών για την ανταλλαγή πληροφοριών σε αποκεντροποιημένο και κατανεμημένο περιβάλλον. Ένα μήνυμα SOAP αποτελεί μια μετάδοση πληροφοριών από έναν αποστολέα σε έναν παραλήπτη. Τα μηνύματα SOAP μπορούν να συνδυαστούν για την εκτέλεση μοτίβων αίτησης/απόκρισης.

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

Το SOAP αποτελεί ένα πρωτόκολλο με βάση το XML το οποίο ορίζει τρία τμήματα σε κάθε μήνυμα:

Στυλ δεσμού

Το SOAP υποστηρίζει δύο διαφορετικά στυλ επικοινωνίας:

Κλήση απομακρυσμένης διαδικασίας (RPC):  Κλήση λειτουργίας που επιστρέφει αποτέλεσμα. Συνήθως χρησιμοποιείται με την κωδικοποίηση SOAP, η οποία δεν είναι συμβατή με WS-I.

Στυλ εγγράφου:  Γνωστό και ως στυλ προσανατολισμένο σε έγγραφο ή σε μήνυμα.  Αυτό το στυλ παρέχει ένα χαμηλότερο επίπεδο αφαίρεσης και απαιτεί περισσότερη εργασία προγραμματισμού.

Στυλ κωδικοποίησης

Σε κατανεμημένα υπολογιστικά περιβάλλοντα τα στυλ κωδικοποίησης ορίζουν τον τρόπο με τον οποίο οι τιμές δεδομένων που ορίζονται στην εφαρμογή μπορούν να μεταφραστούν από και προς μια συγκεκριμένη μορφή πρωτοκόλλου.  Η διεργασία μετάφρασης είναι γνωστή επίσης και ως σειριοποίηση και αναίρεση σειριοποίησης.

Η προδιαγραφή SOAP ορίζει το στυλ κωδικοποίησης SOAP:

Κωδικοποίηση SOAP:  Το στυλ κωδικοποίησης SOAP σας επιτρέπει τη σειριοποίηση/αναίρεση σειριοποίησης των τιμών των ειδών δεδομένων από το μοντέλο δεδομένων SOAP.  Αυτό το στυλ κωδικοποίησης ορίζεται στο πρότυπο SOAP 1.1 και δεν είναι συμβατό με WS-I.

Το WSDL ορίζει το στυλ κωδικοποίησης XML λεκτικής μονάδας (Literal XML):

XML λεκτικής μονάδας:  Ο όρος λεκτική μονάδα (Literal) αναφέρεται στο γεγονός ότι το έγγραφο πρέπει να διαβάζεται όπως είναι ή χωρίς κωδικοποίηση. Γίνεται σειριοποίηση του εγγράφου ως XMI, γεγονός που συνεπάγεται ότι το XML μηνύματος είναι συμβατό με το σχήμα στο WSDL. Κατά τη χρήση της κωδικοποίησης λεκτικής μονάδας, κάθε τμήμα μηνύματος παραπέμπει σε ένα υπαρκτό ορισμό σχήματος. Η κωδικοποίηση λεκτικής μονάδας είναι συμβατή με το WS-I.

Μοντέλο δεδομένων

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

Όλα τα στοιχεία και οι ταυτότητες που αποτελούν το μοντέλο δεδομένων SOAP ορίζονται στο χώρο ονομάτων URI.  Το πρότυπο SOAP ορίζει τους κανόνες κατασκευής ειδών δεδομένων. Ένα σχήμα XML ειδικά για έργο πρέπει να ορίζει τα πραγματικά είδη δεδομένων. Τα στοιχεία της προδιαγραφής SOAP ορίζονται στα http://schemas.xmlsoap.org/soap/envelope/ και http://schemas.xmlsoap.org/soap/encoding/

Υλοποιήσεις SOAP

Πλέον διατίθενται διάφορες υλοποιήσεις του πρωτοκόλλου SOAP. Για παράδειγμα, το Apache Foundation παρέχει το Apache SOAP, το οποίο προήλθε από ένα έργο της IBM® με την ονομασία SOAP4J, καθώς και τα περιβάλλοντα εκτέλεσης Apache Axis και IBM WebSphere®.

Αντιστοιχίσεις

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

Για περισσότερες πληροφορίες σχετικά με το Apache SOAP, ανατρέξτε στο δικτυακό τόπο xml.apache.org/soap  Για περισσότερες πληροφορίες σχετικά με το SOAP, ανατρέξτε στο δικτυακό τόπο www.w3.org/TR/SOAP