SOAP

Z Wikipedii, wolnej encyklopedii
Struktura SOAP

SOAP (ang. Simple Object Access Protocol) – protokół komunikacyjny wykorzystujący XML do kodowania wywołań i najczęściej protokół HTTP do ich przenoszenia, możliwe jest jednak wykorzystanie innych protokołów do transportu danych.

SOAP jest standardem W3C, którego głównym celem było zastąpienie bardziej specyficznych protokołów komunikacyjnych (RPC), których wykorzystanie może być ograniczone poprzez zapory sieciowe lub inne zabezpieczenia[1].

Nazwa protokołu jest myląca, ponieważ przede wszystkim dotyczy usług sieciowych, a nie obiektów definiowanych w sposób znany z programowania obiektowego[2].

Budowa[edytuj | edytuj kod]

Dokument SOAP zawiera w sobie nadrzędny znacznik <envelope>, zawierający obowiązkowy znacznik <body> oraz opcjonalny znacznik <header>[3]. Najważniejsze informacje przesyłane tym protokołem ulokowane są wewnątrz znacznika <body>, natomiast element <header> może zawierać opcjonalne dane wymagane w specyficznych zastosowaniach[3]. Opcjonalny znacznik <fault> występuje w przypadku wystąpienia błędu[3].

Przykład dokumentu SOAP[edytuj | edytuj kod]

POST /InStock HTTP/1.1
Host: www.example.org
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn

<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

<soap:Body xmlns:m="http://www.example.org/stock">
  <m:GetStockPrice>
    <m:StockName>IBM</m:StockName>
  </m:GetStockPrice>
</soap:Body>
</soap:Envelope>

Implementacje[edytuj | edytuj kod]

Implementacje SOAP to m.in.:

Zobacz też[edytuj | edytuj kod]

Przypisy[edytuj | edytuj kod]

  1. https://web.archive.org/web/20140307032445/http://www.w3schools.com/webservices/ws_soap_intro.asp.
  2. Josuttis, Nicolai M. SOA in practice: the art of distributed system design. O’Reilly Media, Inc., 2007, strona: 217.
  3. a b c SOAP Version 1.2 Part 1: Messaging Framework (Second Edition) [online], www.w3.org [dostęp 2017-11-26] (ang.).

Linki zewnętrzne[edytuj | edytuj kod]