Qual é a diferença entre XML-RPC e SOAP?
-
09-06-2019 - |
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.
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