BPM (Business Process Management) es una metodología para modelar procesos de negocios que tiene como objetivo mejorar, a través de la gestión sistemática, la eficiencia de dichos procesos de negocios que se deben modelar, analizar, automatizar, integrar, monitorear y optimizar de forma continua.
Actualmente todos los sistemas IT soportan e implementan de una u otra manera procesos de negocios. Lo que hace único a BPM es la separación de la lógica de los procesos de negocios respecto del código de la aplicación. Cuando se logra la independencia entre la lógica de los procesos de negocios y el código de la aplicación, se obtiene un incremento en la productividad, se reducen los costos y se tiene una rápida respuesta ante los cambios.
A pesar de las ventajas que brinda la separación entre la lógica de negocios y la implementación, en la medida en que la solución BPM se ajuste mejor a la plataforma de desarrollo, redunda en facilidades para la documentación, depuración y mantenimiento posterior. En este sentido las aplicaciones basadas en Java adhieren a metodologías de diseño y paradigmas orientados a objetos. Cuentan con un framework estándar y ampliamente usado para el desarrollo de aplicaciones distribuidas como es JEE y todos los frameworks arquitecturales basados en JEE que facilitan el desarrollo de aplicaciones distribuidas. De esta manera se garantiza modularidad, extensibilidad, adaptación a cambios y otras cuestiones relacionadas a los requerimientos no funcionales de las aplicaciones distribuidas como la seguridad, alta disponibilidad y tolerancia a fallas.