La interoperabilidad de los servicios web WCF a Java parece sorprendentemente problemática. ¿Algún buen recurso?

13

Con un proyecto reciente, nuestro equipo de desarrollo basado en .Net ha tenido la tarea de integrarse con una gran cantidad de servicios web basados en Java en todo el mundo, y realmente hemos tenido una sorprendente (bueno, ciertamente ya no estamos sorprendidos). Cantidad de problemas porque los servicios Java no aceptan el XML generado por WCF.

También parece que realmente no hay mucha información buena sobre el tema, hemos recibido algunos buenos consejos del excelente blog de WCF de Yaron Nave, enlace , y también en el foro de MSDN WCF enlace .

¿Hay alguien aquí que realmente sienta que lo ha entendido y conoce el recurso definitivo sobre el tema? Estaría interesado en consejos sobre libros, blogs o cualquier sitio web.

Editar:
Me da miedo establecer la respuesta aceptada en este hilo, porque cada una de las dos mejores respuestas tiene algún valor:
1. Probablemente terminaremos haciendo más implementaciones de solicitud web HTTP en lugar de luchar contra WCF.
2. Pero el WCF Express Interop Bindings 1.0 también fue un consejo muy sensato.

    
pregunta Bjørn 04.05.2012 - 09:59

3 respuestas

14

Ah, sí ... JABÓN, el canto sagrado de la computación. Una lingua franca que prometió interoperabilidad entre sistemas de todo el mundo.

Y luego entras en las diferencias entre las implementaciones de SOAP en Java y PHP y .NET. O incluso entre el servicio WebSphere SOAP y el cliente Apache SOAP. No importa tratar con diferentes estándares de compatibilidad WS-I. Ahora, por favor, dime por qué necesitas un estándar de compatibilidad para un protocolo que fue creado para la compatibilidad , habla de irónico (y me refiero a una verdadera ironía, no es la marca de ironía de Alanis Morrissette ).

La única vez que no tendrá problemas para lograr que dos puntos finales de SOAP se comuniquen es cuando ambos estén en la misma plataforma y, en la mayoría de los casos, la plataforma tendrá un protocolo de operación remota más eficiente.

Lo que estoy diciendo aquí es que, en su mayor parte, SOAP es inútil. Ahora, jabón de minúsculas, lo uso todos los días y estoy agradecido de que la mayoría de las personas haga lo mismo.

Dicho esto, si estás insistiendo en golpearte la cabeza contra una pared de ladrillos. Aquí es un buen lugar para start Microsoft tiene un conjunto de enlaces para permitir la interoperabilidad con la mayoría de los principales servidores de Java. La parte divertida, por supuesto, es descubrir cuáles funcionan con cuál de los servicios está integrando.

    
respondido por el Michael Brown 04.05.2012 - 18:35
9

En mi opinión, tu observación es bastante precisa. Las implementaciones de alto nivel de la comunicación basada en XML generalmente no son compatibles con diferentes plataformas, incluso si son ambas llamadas "SOAP". Las diferencias sutiles en la implementación, probablemente tanto dentro del alcance del estándar implementado, crean problemas en el uso de la vida real.

Mi recomendación para los proveedores de servicios: Utilice una implementación simple en lugar de una implementación muy compleja y teóricamente mejor. Por ejemplo, no incluya esquemas de autenticación extremadamente complejos si no los necesita.

Mi recomendación para los consumidores de servicios (usted, supongo): Al comunicarse con una implementación de alto nivel en una plataforma diferente a la suya, degradar a una implementación de nivel inferior. De repente, se vuelve bastante simple si simplemente averigua cuál es el XML real que se va a enviar y luego utiliza las buenas prácticas normales de codificación para lograrlo, como una alternativa a insistir en usar la implementación de alto nivel de su propia plataforma.

Espero que no haya sido tan abstracto. En resumen , cuando esté en la plataforma .NET conectándose a una plataforma Java, es posible que desee ensamblar los encabezados y el xml en un HttpWebRequest y enviarlo de esa manera.

    
respondido por el Niels Brinch 04.05.2012 - 14:43
4

Tendrá los mismos problemas que consumen servicios web PHP también.

Nuestra única respuesta a esto fue cambiar el tipo de protocolo a REST en lugar de SOAP. Nunca conseguimos que el SOAP interoperara, ¡tanto para Simple!

    
respondido por el gbjbaanb 04.05.2012 - 12:35

Lea otras preguntas en las etiquetas