it-swarm-pt.tech

Qual é a diferença entre XML-RPC e SOAP?

Eu nunca entendi por que um implementador de serviço da Web escolheria um sobre o outro. O XML-RPC é geralmente encontrado em sistemas mais antigos? Qualquer ajuda para entender isso seria muito apreciada.

76
Scott Saad

Diferenças?

O SOAP é mais poderoso e é muito preferido pelos fornecedores de ferramentas de software (MSFT .NET, Java Enterprise Edition, esse tipo de coisa).

O SOAP foi visto por muito tempo (2001-2007) como o protocolo de escolha para SOA. xml-rpc nem tanto. REST é o novo SOA querida, embora não seja um protocolo.

SOAP é mais detalhado, mas mais capaz.

SOAP não é suportado em alguns dos itens mais antigos. Por exemplo, não SOAP libs para o clássico ASP (que eu poderia encontrar)).

SOAP não é bem suportado em python. O XML-RPC possui grande suporte em python, na biblioteca padrão.

O SOAP suporta transferência no nível de documento, enquanto xml-rpc é mais sobre transferência de valores, embora possa transferir estruturas como estruturas, listas, etc.

o xm-rpc é realmente um programa para programar a transferência independente de idioma. Ele passa principalmente por http/https. SOAP) as mensagens também podem passar por email.

xml-rpc é mais unixy. Ele permite que você faça as coisas com simplicidade e, quando você sabe o que está fazendo, é muito rápido implantar serviços Web de qualidade, mesmo ao usar editores de texto em terminais. Fazendo SOAP dessa maneira é um zoológico; você realmente precisa de um bom IDE para torná-lo viável.

Conhecer o SOAP, no entanto, ficará muito melhor em seu currículo/currículo se você estiver concorrendo a um emprego de TI na Fortune 500.

o xml-rpc tem alguns problemas com conjuntos de caracteres não-ascii.

O XML-RPC não suporta parâmetros nomeados. Eles devem estar na ordem correta. Não tenho certeza sobre o SOAP, mas pense assim.

84
Christopher Mahan

Apenas para acrescentar às outras respostas, eu o incentivaria a olhar para representações textuais reais de chamadas SOAP e XML-RPC, talvez capturando uma com Ethereal. O conjunto "XML-RPC é argumento "mais simples" não faz muito sentido até você ver como é incrivelmente detalhada uma chamada SOAP. Muitos dos sites bastante populares lá fora evitam SOAP = como sua API devido à quantidade de largura de banda que consumiria se as pessoas começassem a usá-la extensivamente.

13
bmdhacks

Kate Rhodes tem um ótimo ensaio sobre as diferenças em http://weblog.masukomi.org/2006/11/21/xml-rpc-vs-soap

5
Dexter