Hi,
we have developed long time ago a Service Orchestration Engine on top of jBpm 3.2. As we wanted to be real fast in some modes, we had different kind of engines (transient, persistent, asynchronous, ….). We did not need task or identity services.
This is how our transient engine behaved.
1-Deploy a process in JBoss through a specialized deployer, which parsed the xml process definition and the resulting ProcessDeployment was put into a JBossCache, replicated into a clustered setup of servers.
2-Extend jBPMcontexts to hold custom context information and custom scopes.
3-Extend Variable resolver and related to allow for EL to access this new contexts, to use function in EL.
4-Extend ActionHandlers (using a custom BaseActionHandler) to hook custom functionality around, before or after execution.
5-Use JBossCache replicated for storing variables for interprocess or inter-execution information. (This allow to use composition of non-persisted processes to simulate persisted-process or wait states)
6-Create auto-transition engine, in non-stop mode for nodes (No wait states). Every time a wait state should be done, process is decompossed into more simple non-persistable-processes
This allow us to use system in a Telco environment, performig millions of requests per day, in a clustered environment.
My concerns is, will it be possible to achieve the same with Activity?
In concrete:
- Disablement of services (history, task, identity)
- Plugable process repository (shared memory (infinispan, i.e.), shared database, nosql database, memcached, subversion, or whatever,…)
- Interceptor based creation of behaviours
- Easy way to extend UL
Thanks,