2008-08-08 14 views
18

Mi intuición es que en la práctica se prefieren los servicios web basados ​​en documentos. ¿Es esta 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).Servicios web basados ​​en documentos o RPC

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.

Respuesta

30

El documento en comparación con 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 idiomas 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 un Service Reference 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.

El documento/literal frente a RPC para los servicios SOAP se describen en este IBM DevelopWorks article. 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.

+3

enlace describe todo, todas mis inquietudes se desactivan después de leerlo. http://www.ibm.com/developerworks/webservices/library/ws-whichwsdl/ –

1

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.

4

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 la versión más actual de Java, las librerías SOAP simplemente no lo admiten (e.x. 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.

Cuestiones relacionadas