Pergunta

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

Foi útil?

Solução

Diferenças?

SOAP é mais poderoso e é muito preferido pelos fornecedores de ferramentas de software (MSFT .NET, edição Java Enterprise, esse tipo de coisa).

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

SOAP é mais detalhado, mas mais capaz.

SOAP não é suportado em algumas das coisas mais antigas.Por exemplo, não há bibliotecas SOAP para ASP clássico (que eu consegui encontrar).

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

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

xm-rpc é realmente sobre transferência independente de linguagem de programa para programa.Ele passa principalmente por http/https.As mensagens SOAP também podem ser enviadas por e-mail.

xml-rpc é mais unixy.Ele permite que você faça as coisas de maneira simples e, quando você sabe o que está fazendo, é muito rápido implantar serviços Web de qualidade, mesmo ao usar editores de texto de terminal.Fazer 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 se você estiver disputando um emprego de TI na Fortune 500.

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

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

Outras dicas

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

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top