it-swarm.it

Qual è la differenza tra XML-RPC e SOAP?

Non ho mai veramente capito perché un implementatore di servizi web avrebbe scelto l'uno rispetto all'altro. XML-RPC si trova generalmente nei sistemi più vecchi? Qualsiasi aiuto per capire questo sarebbe molto apprezzato.

76
Scott Saad

Differenze?

SOAP è più potente ed è molto preferito dai produttori di strumenti software (MSFT .NET, Java Enterprise Edition, questo genere di cose).

SOAP è stato per molto tempo (2001-2007ish) visto come il protocollo di scelta per SOA. xml-rpc non così tanto. REST è il nuovo SOA caro, anche se non è un protocollo.

SOAP è più dettagliato, ma più capace.

SOAP non è supportato in alcune delle cose più vecchie. Ad esempio, no SOAP libs per classic ASP (che ho trovato).

SOAP non è ben supportato in Python. XML-RPC ha un grande supporto in Python, nella libreria standard.

SOAP supporta il trasferimento a livello di documento, mentre xml-rpc riguarda maggiormente il trasferimento di valori, sebbene possa trasferire strutture come strutture, elenchi, ecc.

xm-rpc riguarda davvero il programma per programmare il trasferimento agnostico del linguaggio. Va principalmente su http/https. SOAP possono anche passare per e-mail.

xml-rpc è più unixy. Ti consente di fare le cose semplicemente e quando sai cosa stai facendo, è molto veloce implementare servizi Web di qualità, anche quando si utilizzano editor di testo per terminali. Fare SOAP in quel modo è uno zoo; hai davvero bisogno di un buon IDE per renderlo fattibile.

Conoscere SOAP, tuttavia, avrà un aspetto molto migliore sul tuo curriculum/CV se stai cercando un lavoro IT su Fortune 500.

xml-rpc presenta alcuni problemi con set di caratteri non ascii.

XML-RPC non supporta i parametri denominati. Devono essere nell'ordine corretto. Non sono sicuro di SOAP, ma la pensi così.

84

Solo per aggiungere alle altre risposte, ti incoraggio a guardare le rappresentazioni testuali effettive di SOAP e chiamate XML-RPC, magari catturandone una con Ethereal. L'intero "XML-RPC è l'argomento "più semplice" non ha molto senso fino a quando non si vede quanto sia incredibilmente dettagliata una chiamata SOAP. Molti dei siti web abbastanza popolari là fuori si allontanano da SOAP = come API a causa della quantità di larghezza di banda che consumerebbe se le persone iniziassero a usarlo ampiamente.

13
bmdhacks

Kate Rhodes ha un grande saggio sulle differenze su http://weblog.masukomi.org/2006/11/21/xml-rpc-vs-soap

5
Dexter