XPM - Extensible Process Metamodel


Cumbia-XPM is a very expressive meta-model that was designed to model the core of applications that have a very strong control component. Those kinds of applications can be, for example, workflow engines, e-learning systems, orchestration platforms or collaborative tools. Cumbia-XPM is the core project of Cumbia and most of the efforts of the group have been put in its specification and implementation.

The subproject Cumbia-XPM can be considered the heart of the Cumbia project. Its main goal was to define a very expressive meta-model that could be used to express the control component of applications as diverse as the ones mentioned previously. This result was achieved by means of the definition and use of a new kind of composition elements that we call Open Objects.

Open Objects are based on the Object Oriented paradigm but have several advantages that makes their composition, coordination and monitoring easier, and their extensibility more powerful. Although the aim was to be able to compose several types of Open Objects, like the ones used in Cumbia-XTM and Cumbia-XRM, they can also be composed to other kind of elements (like components and objects) using event-based mechanisms.

The Cumbia-XPM meta-model is composed by a handful of specific Open Objects designed to express different aspects of the control component of an application. Because of the composition features that the Open Objects offer, these elements can be used to even construct complex flow control structures (such as the ones proposed by van der Aalst et al. in their papers about workflow patterns). However, most of the times these elements are not expected to be used in their basic form: they offer the required capabilities for composition and coordination, but the specific semantic needed in each context has to be injected using one of the extensibility mechanisms that the Open Objects offer.

Initially this could look like a strong limitation on Cumbia-XPM. However, what it actually means is that Cumbia-XPM can be extended to be used in very different contexts (as was initially stated). For example, the elements of Cumbia-XPM can be extended to create models corresponding to BPEL models, and this makes the construction of a BPEL engine on top of the Cumbia-XPM engine possible (we are doing precisely that in the BPEL Engine sub-project). This same thing that can be made with BPEL can also be made with other control languages, such as BPMN, XPDL or, in the domain of e-learning, IMS-LD.

In general, the effort needed to construct an extension for Cumbia-XPM and a mechanism of transformation from a different language, is much less than the effort needed to construct an execution engine for that language. This opens the possibility to define Domain Specific Languages, that can be more adequate to certain contexts, and be able to execute them in a relatively inexpensive way.

Other documents (in spanish)

Pablo Barvo / Mario Sánchez: Construcción de una línea de producción de motores de workflow basada en Modelos Ejecutables pdf