Por qué JMSLite

El propósito de JMSLite es hacer que el motor de flujo de trabajo se comporte en un entorno de desarrollo integrado (IDE) de la forma más parecida posible a como se comporta cuando se despliega en un servidor de aplicaciones. Esto incrementa la probabilidad de detectar problemas pronto (mientras se prueba en el entorno de desarrollo integrado (IDE) en vez de detectarlas después (cuando se hacen las pruebas en un servidor de aplicaciones), reduciendo así los riesgos y el coste.

Por ejemplo, considere la siguiente situación: suponga que WMS (ejecutando en un entorno de desarrollo integrado (IDE)) promulga flujos de trabajo de forma síncrona.
Recordatorio: En la producción, los flujos se promulgan de forma asíncrona porque se supone que tienen un tiempo de vida muy largo (del orden de horas, días o semanas) comparado con las operaciones normales de un usuario (del orden de segundos o milisegundos).
Suponga también que un desarrollador escribe un método que promulga un flujo de trabajo de aprobación de casos automática y después (justo después de llamar al servicio de promulgación) intenta hacer algo con el resultado (p.ej. comprobar si el caso se ha aprobado automáticamente). Puesto que el entorno de prueba funciona de forma diferente (de manera síncrona) a como lo hace en el entorno de producción, el código funcionará correctamente en la prueba, pero fallará en producción (esto es un ejemplo de un error de 'acoplamiento temporal').

Sin embargo, puesto que JMSLite de forma asíncrona, este problema aparecería en el entorno de desarrollo integrado (IDE) de la misma manera que lo haría en un servidor de aplicaciones, lo que permitiría al desarrollador detectarlo antes.