Simple Object Access Protocol

Na Galipedia, a Wikipedia en galego.
(Redirixido desde "SOAP")
SOAP.svg

SOAP (acrónimo de Simple Object Access Protocol) é un protocolo padrón creado por Microsoft, IBM e outros, está actualmente baixo o auspicio da W3C que define como se poden comunicar dous obxectos en diferentes procesos por medio de intercambio de datos XML. SOAP é un dos protocolos utilizados nos servizos Web, no marco da coñecida coma arquitectura orientada ós servizos.

Concepto[editar | editar a fonte]

O concepto fundamental que hai tras SOAP é o RPC ou Remote procedure call (chamada de procedemento remoto)[1]. Baixo este concepto un ordenador pode enviar unha mensaxe a outro na rede. O ordenador receptor recibe a chamada pode controlala mediante un software local. Enviando, se fose necesario, unha resposta ó ordenador emisor[1].

Tecnoloxía[editar | editar a fonte]

A diferenza de DCOM e CORBA, que son binarios, SOAP usa o código textual XML, que facilita a eliminación de erros, co custo de ser menos eficiente. O intercambio de mensaxes realízase mediante tecnoloxía de compoñentes (software componentry, ver enxeñaría de software). O termo Object no nome significa que se adhire ao paradigma da programación orientada a obxectos.

SOAP é un marco extensíbel e descentralizado que permite traballar sobre múltiplas pilas de protocolos de redes informáticas. Os procedementos de chamadas remotas (RPC) poden ser modelados na forma de varios mensaxes SOAP interactuando entre si.

SOAP corre sobre calquera protocolo de Internet, xeralmente HTTP, que é o único homologado polo W3C. SOAP ten como base XML, cun deseño que cumpre o padrón Cabeceira-Desenvolvemento de deseño de software, como outros moitos deseños, tales como HTML. A cabeceira Header é opcional e contén metadatos sobre enrutamento (routing), seguridade ou transaccións. O desenvolvemento Body contén a información principal, que se coñece como carga útil (payload). A carga útil acóllese a un Schema XML propio.

Alternativas a SOAP[editar | editar a fonte]

Debido ao longo que é o formato XML, SOAP é considerablemente mais lento que outras tecnoloxías de middleware tales como CORBA. Tipicamente, SOAP é unhas 10 veces mais lento que un protocolo binario tal como RMI or IIOP. Ademais, diversos autores teñen considerado a SOAP, umha interface moito máis complexo ca outras, especialmente REST[1]. Así, coma por exemplo, Amazon ofreceu interfaces de ambos tipos ás súas plataformas, constatándose que a acollida da interface REST foi máis positiva por parte dos programadores web[1].

Exemplos de mensaxes SOAP[editar | editar a fonte]

Como exemplo móstrase a forma en que un cliente solicitaría información dun produto a un provedor de servizos Web:

 <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
     <getProductDetails xmlns="http://warehouse.example.com/ws">
       <produtId>827635</produtId>
     </getProductDetails>
   </soap:Body>
 </soap:Envelope>

O elemento Envelope é contedor da mensaxe SOAP. O seguinte elemento en importancia e obrigatorio é o Body, onde están os datos propios da chamada. Existe a posibilidade de declarar unha seción Header, mais esta é opcional.


E esta sería a contestación do provedor:

 <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
     <getProdutDetailsResponse xmlns="http://warehouse.example.com/ws">
       <getProductDetailsResult>
         <produtName>Toptimate 3-Pece Set</produtName>
         <produtId>827635</produtId>
         <description>3-Pece age set.  Black Polyester.</description>
         <prezo>96.50</prezo>
         <inStock>tro</inStock>
       </getProductDetailsResult>
     </getProdutDetailsResponse>
   </soap:Body>
 </soap:Envelope>

HTTP foi elixido como protocolo de transporte primario polas súas vantaxes, para lidar con devasas, por exemplo. Outros protocolos como XIOP/IIOP ou DCOM acostuman ser repelidos por estas devasas.

Notas[editar | editar a fonte]

  1. 1,0 1,1 1,2 1,3 Fitzgerald M. (2005). Anaya Multimedia, ed. XML, Los mejores trucos. ISBN 8441518130. 

Véxase tamén[editar | editar a fonte]

Temas relacionados[editar | editar a fonte]

Ligazóns Externas[editar | editar a fonte]