5. Problemas
Overhead
Como visto nos tópicos anteriores, SOAP precisa ser transportado por um protocolo de comunicação como HTTP ou SMTP. Com isso, uma mensagem SOAP completa possui, além dos inevitáveis cabeçalhos das camadas inferiores à de aplicação, o cabeçalho do protocolo escolhido para a efetivação da comunicação (HTTP ou SMTP por exemplo) e o cabeçalho da própria mensagem SOAP. Isso se torna um problema pelo fato do uso desse protocolo ter se multiplicado o bastante para incluir operações que demandam mais rapidez na transmissão.
Em outras palavras, SOAP implica em um aumento no número de camadas da transmissão.
Baixa Agilidade
Diferente de protocolos mais completos que especificam um substituto ao Http ou Smtp, por exemplo, e, com isso, podem transferir dados binários, SOAP, por transmitir texto, precisa ser lido por um parser, o que o torna menos eficiente.
Os defensores do XML e do protocolo em análise argumentam que com o aumento da capacidade de processamento esse problema passa a ser desconsiderável, citando o caso da Web, que também usa protocolos textuais (html, por exemplo) e é extremamente bem sucedida.
Segurança
Como mensagens SOAP são textuais, como saber se uma resposta SOAP é segura para seu receptor? É necessário saber:
- de onde, de fato, vem a mensagem;
- se ela pode ser entregue ao destinatário em questão;
- se ela foi modificada em algum nó intermediário da transmissão e
- se ela foi lida em algum nó intermediário da transmissão.
SOAP por si só não define soluções para essas perguntas. Como dito, pelo fato de mensagens SOAP serem textuais, elas são vulneráveis e isso é um problema para aplicações que demandam garantia de integridade e confidencialidade, por exemplo.
Como SOAP é extensível, existem várias soluções no mercado que expandem SOAP garantido- lhe essas características citadas, tornando essas mensagens seguras.
Outra linha de estratégias para garantir segurança ao SOAP é o uso de proxies, como descrito, por exemplo, em [12].
Por fim, o trabalho mais avançado visando a solução dos problemas de segurança do SOAP até agora é a criação do elemento <SOAP-SEC:Signature> por parte da própria W3C [13]. Esse elemento, posicionado do Cabeçalho da mensagem SOAP ("<soap:Header>"), define uma assinatura digital, aumentando a confiabilidade do protocolo.