Información y enlaces
Participa comentando, viendo lo que otros tienen que decir, o enlazandolo desde tu blog.
SOAP Web services vs RMI
Hace tiempo que abandone el “Mantra Web services para todo“, y me horrorizo al escuchar a los que piensan que RMI es cosa del pasado, aunque reconozco que a menudo es fácil tomar la decisión y elegir SOAP, en ocasiones la elección no es tan clara.
Dejo aquí mis criterios para elegir:
- Si algunas de las aplicaciones que se van a integrar no son Java, evidentemente la opción RMI se elimina, ya que salvo casos excepcionales, si soy de los que piensan que RMI/IIOP es cosa del pasado.
- Si el rendimiento, la eficiencia y los tiempos de respuesta son una preocupación, a falta de tener en cuenta otros criterios, RMI es la mejor opción. A modo de ejemplo, nuestra plataforma de Formularios ( Formul@) ofrece ambas implementaciones, y la implementación RMI es un orden de magnitud mas rápida que su homóloga SOAP. En en un bucle de 1000 iteraciones, el cliente basado en web services tardo en promedio un total de 10186ms en renderizar los formularios, mientras que la versión basada en RMI tardo de media 946ms.
- Si ambas aplicaciones son Java y ademas se ejecutan en la misma máquina o subred, la opción RMI es sin duda mi preferida.
- Si se pretende construir o evolucionar en el futuro a un ambiente SOA, aunque SOA no descarta RMI (la mayoría de los ESBs lo contemplan), la mejor opción es implementar un servicio basado en Web Services.
- Si las aplicaciones son desarrolladas por diferentes proveedores, la opción sería Web Services, ya que el desarrollo “primero contrato” se hace imprescindible.
- En otro caso, utilizo mi moneda de la suerte para decidir :), aunque la moneda suele tiene en ambas caras “Web Service”.
Hola Félix:
Recientemente he trabajado en un proyecto aplicando los principios de una “filosofía” SOA y hemos tenido que pasar por el mismo punto, qué opción elegir para implementar nuestros servicios y conseguir la interoperabilidad deseada.
Cuidado con los resultados que arrojas porque pueden provocar malos entendidos. Cuando uno hace pruebas de benchmarking debe indicar las condiciones de entorno y el objetivo de las pruebas.
Y sobre elegir RMI cuando las dos aplicaciones son JAVA y se van a desplegar con la misma JVM, ¿no crees que sería mejor JMS?
Un saludo