web-services - servicios - web service soap
Servicios web basados en documentos o RPC (3)
La respuesta de BiranLy es excelente. Me gustaría agregar que document-vs-RPC también puede reducirse a problemas de implementación. Hemos encontrado que Microsoft prefería los documentos, mientras que nuestras bibliotecas basadas en Java estaban basadas en RPC. Lo que sea que elija, asegúrese de saber qué otros clientes potenciales asumirán también.
Mi intuición es que los servicios web basados en documentos son preferidos en la práctica: ¿esta es la experiencia de otras personas? ¿Son más fáciles de apoyar? (Noté que SharePoint usa Cualquiera para el "tipo de documento" en su interfaz WSDL, supongo que lo hace basado en documentos).
Además, ¿las personas que ofrecen servicios tanto WSDL como de tipo Rest ahora tienen la misma funcionalidad? WSDL es popular para la generación de código, pero para interfaces como PHP y Rails parece preferir el descanso.
Como se mencionó, es mejor elegir el Documento Literal sobre RPC codificado siempre que sea posible. Es cierto que las bibliotecas antiguas de Java (Axis1, Glue y otras cosas prehistóricas) solo admiten codificación RPC, sin embargo, en las versiones más actuales de Java SOAP libs simplemente no es compatible (por ejemplo, AXIS2, XFire, CXF). Por lo tanto, intente exponer el servicio codificado RPC solo si sabe que debe tratar con un consumidor que no puede hacerlo mejor. Pero, de nuevo, quizás solo XML RPC podría ayudar con estas implementaciones heredadas.
Documento contra RPC es solo una pregunta si está utilizando los servicios web SOAP que requieren una descripción del servicio ( WSDL ). Los servicios web RESTful no usan WSDL porque el servicio no puede ser descrito por él, y la sensación es que REST es más simple y más fácil de entender. Algunas personas han propuesto WADL como una forma de describir los servicios REST.
Los lenguajes como Python, Ruby y PHP facilitan el trabajo con REST. el WSDL se usa para generar código C # (un proxy de servicio web) que se puede llamar fácilmente desde un lenguaje estático. Esto sucede cuando agrega una referencia de servicio o referencia web en Visual Studio.
Si proporciona servicios SOAP o REST depende de su población de usuarios. Si los servicios se van a utilizar a través de Internet o solo dentro de su organización afecta su elección. SOAP puede tener algunas características (estándares WS- *) que funcionan bien para B2B o uso interno, pero apesta para un servicio de internet.
Documento / literal frente a RPC para servicios SOAP se describen en este artículo de IBM DevelopWorks . Documento / literal generalmente se considera el mejor para usar en términos de interoperabilidad (Java a .NET, etc.). En cuanto a si es más fácil de mantener, eso depende de tus circunstancias. Mi punto de vista personal es que las personas tienden a hacer que esto sea más complicado de lo que debe ser, y el enfoque más simple de REST es superior.