-
1. Re: Central jBPM (enterprise) with remote access from managing apps
sebastian.s Apr 15, 2010 1:05 PM (in response to zecas)jBPM does not offer webservices to invoke API operations itself but the console ships with a RESTful webservice used as abstraction layer for 2 reasons. Firstly the console is a generic application and is used for other projects, too and secondly it should be deployable on an application server different from the one jBPM is deployed on. So you could go and try to use the RESTful webservices. Search the forums. There are a couple of posts about it. You could also build your own abstraction layer in form of a webservice. If you search the forums you will also find the effort of somebody trying to create a REST interface for jBPM. Be aware that the RESTful webservice for the console does not implement all the operations offered by the jBPM-API.
-
2. Re: Central jBPM (enterprise) with remote access from managing apps
zecas Apr 16, 2010 5:12 AM (in response to sebastian.s)Sebastian Schneider wrote:
jBPM does not offer webservices to invoke API operations itself but the console ships with a RESTful webservice used as abstraction layer for 2 reasons. Firstly the console is a generic application and is used for other projects, too and secondly it should be deployable on an application server different from the one jBPM is deployed on. So you could go and try to use the RESTful webservices. Search the forums. There are a couple of posts about it. You could also build your own abstraction layer in form of a webservice. If you search the forums you will also find the effort of somebody trying to create a REST interface for jBPM. Be aware that the RESTful webservice for the console does not implement all the operations offered by the jBPM-API.
Thanks for the info. I've found some info about the RESTful webservice, still I have no detailed info if it implements all the operations of the jbpm api or not, but I'll sure give it a try.
So in the situation I described, with several webapps each with at least one process, what practices you recommend?
1# Each webapp is responsible for deployment of it's own processes, and has it's own hibernate config with jbpm db definition PLUS webapp specific database definitions?
2# Same as point 1# but 2 different hibernate configs (is this possible?), one for jbpm to a common enterprise jbmp db, PLUS the second hibernate config for specific definitions in a different db? (this would bring added complexity for transaction management between the 2 databases, ie, starting a process in jbpm AND create records in webapp specific tables)?
3# Install a central console, and use RESTful webservice if fullfills the needs, if not, just use console for process deployment and managing, and create a EAR project that would implement jbpm api services as required?
Just to feel safe, is there any special precaution if I use several applications with jbpm hibernate configs that point to the same jbpm database? I assume database wouldn't be of any issue, as transactions are correctly maintained amongst different connections, from different applications. My question resides more on any precaution on the jbpm api side, any special one?
Thanks
-
3. Re: Central jBPM (enterprise) with remote access from managing apps
zecas Apr 19, 2010 6:54 AM (in response to zecas)Any opinion counts for me ...
Thanks
-
4. Re: Central jBPM (enterprise) with remote access from managing apps
rebody Apr 19, 2010 7:20 AM (in response to zecas)Hi zecas,
When I saw webservice, I think you may have a try to BPEL. It is totally based webservice invoking.
-
5. Re: Central jBPM (enterprise) with remote access from managing apps
zecas Apr 19, 2010 12:55 PM (in response to rebody)Huisheng Xu wrote:
Hi zecas,
When I saw webservice, I think you may have a try to BPEL. It is totally based webservice invoking.
I'm interested in interacting with the engine using webservices. I believe BPEL usage is more related with webservice orchestration as part of the processes themselves, right?
I'm interested in developing business processes that may and may not have human interaction, an approach like jBPM, as far as I can tell, is a good aproach for what I intend. Just wanna think about an enterprise level engine implementation
Keep ideas flowing ...
Thanks
-
6. Re: Central jBPM (enterprise) with remote access from managing apps
swiderski.maciej Apr 19, 2010 1:09 PM (in response to zecas)Hi,
First of all, RESTfull service does not cover entire api exposed by jBPM. It does cover the most frequently used operations (starting, signaling, task management, job execution, deployments, etc).
I would say that it depends on the load for that processes and obviously quantity of process instances. If you have millions of executions per day and process a good idea would be to separate them.
Otherwise I think a good option is to have centralized process repository with administration capabilities.
Next I would build the application business logic as set of services/api accessible from jBPM processes. It is something like your point 3 but I would secure that both jBPM and application login is executed within same transaction boundaries by using JTA to keep atomic operations for both parties.
Just to feel safe, is there any special precaution if I use several applications with jbpm hibernate configs that point to the same jbpm database? I assume database wouldn't be of any issue, as transactions are correctly maintained amongst different connections, from different applications. My question resides more on any precaution on the jbpm api side, any special one?
Here I would say that problems can occour when working with job executors. Besides it is hibernate so it could bring regular problems as with any other application accessing the same data base from different places.
That's just me personal opinion. I am open for discussion.
HTH
Maciej