SOAP

SOAP (uprzednio zwany również Simple Object Access Protocol) to prosty protokół wymiany informacji w zdecentralizowanym, rozproszonym środowisku. Wiadomość SOAP to transmisja informacji od nadawcy do odbiorcy. Wiadomości SOAP można ze sobą łączyć we wzorce żądanie/odpowiedź.

Chociaż SOAP jest niezależny od metody transportu, to zazwyczaj jest przesyłany za pomocą protokołu HTTP, aby mógł działać w istniejącej infrastrukturze internetowej. SOAP umożliwia wiązanie i wykorzystanie wykrytych usług Web Services przez zdefiniowanie ścieżki wiadomości w celu ich kierowania. SOAP służy do tworzenia zapytań UDDI o usługi Web Services. Środowisko robocze obsługuje SOAP 1.1.

SOAP to protokół wykorzystujący XML, który definiuje trzy części każdej wiadomości:

Style wiązania

Protokół SOAP obsługuje dwa style komunikacji:

Zdalne wywołanie procedury (RPC): Wywołanie operacji skutkujące wynikiem. Zazwyczaj stosowane z kodowaniem SOAP, które nie jest zgodne z WS-I.

Styl dokumentu:  Znany też jako styl zorientowane na obsługę dokumentów lub zorientowany na obsługę wiadomości. Styl ten charakteryzuje się niższą warstwę abstrakcji i wymaga więcej programowania.

Style kodowania

W środowiskach przetwarzania rozproszonego style kodowania definiują sposób, w jaki wartości danych zdefiniowane w aplikacji mogą być przekształcane na dany format protokołu i odwrotnie. Proces konwersji jest nazywany serializacją i deserializacją.

Specyfikacja SOAP definiuje styl kodowania SOAP:

Kodowanie SOAP:  Styl kodowania SOAP umożliwia serializację/deserializację wartości typów danych z modelu danych SOAP. Ten styl kodowania jest zdefiniowany w standardzie SOAP 1.1 i nie jest zgodny z WS-I.

W języku WSDL jest zdefiniowany dosłowny styl kodowania XML:

Dosłowny XML:  Określenie dosłowny odnosi się do faktu, że dokument należy czytać w takim stanie, w jakim się znajduje, czyli niekodowany. Dokument jest serializowany jako XMI, co oznacza, że wiadomość XML jest zgodna ze schematem w WSDL. W przypadku kodowania dosłownego każda część wiadomości odnosi się do konkretnej definicji schematu. Kodowanie dosłowne jest zgodne z WS-I.

Model danych

Zadaniem modelu danych SOAP jest zapewnienie niezależnej od języka abstrakcji dla typów danych stosowanych przez wspólne typy języków programowania. Model ten zawiera następujące elementy:

Wszystkie elementy i identyfikatory składające się na model danych SOAP są zdefiniowane w przestrzeni nazw URI. Standard SOAP definiuje reguły sposobu konstruowania typów danych. Rzeczywiste typy danych muszą zostać zdefiniowane w schemacie XML właściwym dla projektu. Elementy specyfikacji SOAP są zdefiniowane na stronie http://schemas.xmlsoap.org/soap/envelope/ i http://schemas.xmlsoap.org/soap/encoding/

Implementacje protokołu SOAP

Obecnie dostępne są różne implementacje protokołu SOAP.  Na przykład Apache Foundation udostępnia Apache SOAP, czyli implementację, która powstała na bazie projektu IBM ® o nazwie SOAP4J, a także środowiska wykonawcze Apache Axis i IBM WebSphere®.

Odwzorowania

Odwzorowanie definiuje powiązanie między kwalifikowaną nazwą elementu XML, nazwą klasy Java™ oraz stylem kodowania. Odwzorowanie określa jak, przy danym kodowaniu, przychodzący element XML o pełnej nazwie jest przekształcany na klasę Java i odwrotnie.

Więcej informacji na temat implementacji Apache SOAP można znaleźć na stronie xml.apache.org/soap  Więcej informacji na temat protokołu SOAP można znaleźć na stronie www.w3.org/TR/SOAP