Bussiness Process Management (BPM)

Según se puede ver en la definición de la wikipedia BPM es una metodología empresarial cuyo objetivo es mejorar la eficiencia a través de la gestión sistemática de los procesos de negocio.

Cuando una empresa tiene una actividad comercial, por ejemplo, basada en un almacén, con varios sistemas que requieren acceder a la base de datos para su manipulación (administrativos, atención al cliente, empleados de almacén…), cada uno con una misión específica, se deben de centralizar esa actividad de alguna forma para no caer en el problema de repetirnos a nosotros mismos (incumplir DRY) codificando una y otra vez lo mismo en varios programas distintos.

Un sistema BPM muy arcaico y con posibilidad de error es el SGBD. Si se usa un sistema que pueda almacenar procedimientos y se detallan un conjunto de ellos para uso de los usuarios, propiamente dichos, se puede sistematizar bastante el sistema. Pero SQL no está del todo bien diseñado para mantener un nivel de seguridad, abstracción y acceso para toda una jerarquía de empleados. No sería imposible, no obstante, pero sí muy complicado de implantar y casi imposible de mantener. Además de la incidencia en el rendimiento que ello conllevaría.

BPM se suele implementar con el uso de SOA, las arquitecturas orientadas a servicios, las cuales le dan un soporte ideal mediante el uso de servicios web o sistemas RPC.

Por lo tanto, para tratar los datos, con acceso controlado, inteligencia de negocio y un desarrollo de esta capa de forma más fácil, en ciertos lenguajes se facilitan empleando sistemas como servicios web mediante protocolos como XML-RPC, SOAP o similares.

Centrar todos los procesos de negocio en un sistema de servidores con acceso RPC de algún tipo, con todas las funciones de negocio disponibles con acceso por máquinas que usan esa inteligencia y desarrollan una actividad de interfaz basada en usuarios u otros sistemas superiores.

A este respecto, C tiene implementaciones tan antiguas y aún usadas como Tuxedo; Java tiene sus EJB en servidores de aplicaciones tales como JBoss, Glassfish, Weblogic, …; Python tiene como servidor de aplicaciones a Zope; etc.