2012-02-17 6 views
5

Mi equipo está desarrollando una capa de servicio en java y una GUI en dot-net, usando soap. Los desarrolladores de GUI se siguen molestando porque la capa de servicio ocasionalmente cambia la interfaz del servicio web.Cambiando las interfaces SOAP y desaprobando los métodos web en java

Para mantener contentos a los chats de la GUI, en lugar de destruir los métodos web originales, ahora estamos escribiendo nuevos que viven junto a los existentes. Dado que nuestro diseño de interfaz de jabón aún se está perfeccionando, esto se está volviendo complicado, ¡sin duda hay una mejor manera! ¿Alguna sugerencia?

Además, hay ocasiones en que queremos desaprobar un método de servicio web. ¿Hay alguna anotación Java para hacer esto (una que aparecería en el WSDL)?

Gracias por cualquier sugerencia

+0

¿Ya están en producción sus servicios? Si no, entonces esto es más un problema de comunicación que otra cosa. Haga que todos estén en la misma habitación y hágales saber que habrá un poco de rotación hasta que el producto pase a la garantía de calidad. Solo tienen que estar preparados para eso. – Perception

Respuesta

6

No hay tal anotación de desaprobación, que yo sepa. Este es el patrón general que normalmente utilizo:

  • Implementar un SOAP API poner un número de versión (v1), ya sea en el nombre WSDL o ruta
  • Escribir nuevo (o mejorado) código de la aplicación que merece un jabón actualizado api
  • Implementar una versión completamente nueva de la API SOAP con un nuevo número de versión (v2) junto al código v1, pero con el respaldo de las mismas clases de dominio
  • cambiar la implementación del servicio v1 web para realizar la migración y (siempre posible) llame al método apropiado del servicio v2
  • Notificar a los clientes de que deben comenzar a usar v2 en lugar de v1
  • Wait
  • Si estás en un entorno de gran empresa, esperar aún más ;-)
  • Una vez nadie está utilizando v1 más (verificar esto con troncos, y conversaciones con usuarios), elimine la interfaz v1

Este enfoque solo funciona realmente bien cuando tiene una buena separación entre su código de servicio web y su código de aplicación real. Ayuda a pensar en el código del servicio web como una capa de presentación.

Cuestiones relacionadas