[Design of JBoss jBPM] - MessageService and JMS
by mteira
Hello.
Sorry for crossposting, but I sent this yesterday to the jBPM-users forum, and after knowing the existence of this other forum, I think it matches better here:
Hello.
I'm interested into implementing a clustered capable workflow system, and started reading the user tutorial of jBPM and also some of the source code to see how the thing works.
I need to support concurrent execution for the actions associated with parallel tokens into process instances (and also for tokens from different process instances). Having into account that I want to run inside a J2EE server, I'm observing the following facts:
1.-CommandExecutorThread is not the way to go for me, because it consumes the messages in a single thread, so, a Task with two simultaneous Tokens is not going to execute the two branches at the same time. I think that with this approach, different tasks are not running actions in parallel neither. The running thread is another problem to deploy it inside a J2EE application server.
2.-Using DbMessageService as MessageService implementation needs the messages to be consumed from a central point. This seems also a not J2EE friendly approach.
So, I think that the most natural way to implement it is to use a JMS message service, and so, implement MDBs to consume those messages and run the required actions, in a similar way CommandExecutorThread is working but only consuming the J2EE provided message.
This will probably be a good starting point to provide clustering capabilities, since the JMS component can be clustered, and we could consume the messages from different J2EE servers.
Do you think this is a right approach? Any comments about this?
I've also seen that there's a org.jbpm.msg.jms package that seems to be an effort to implement just this, a MessageService JMS implementation. But it seems it's under construction (as I can see some TODO comments in the code , and some methods remain unimplemented). I'm I right. Is this an effort to do what I'm trying to do?
Is somebody working into this? Where could I find more information about it?
Regards.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3970062#3970062
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3970062
19 years, 7 months
[Design of JBoss Portal] - Re: JBOSS Portal, JSF, XHTML and AJAX !!!finally!!! :-)
by dajevtic
Dear Julien,
I have managed to get my code running as you suggested.
I changed the jboss-service.xml as needed, configured the portal servlet to listen under /ajax/*, created an AjaxController and an AjaxPortletRenderer.
Here is one small snippet of the jboss-service.xml that I have a question for:
| ...
| <mbean
| code="org.jboss.portal.server.impl.invocation.JBossInterceptorStackFactory"
| name="portal:service=InterceptorStackFactory,type=Ajax"
| xmbean-dd=""
| xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
| <xmbean/>
| <depends-list optional-attribute-name="InterceptorNames">
| <depends-list-element>portal:service=Interceptor,type=Server,name=Transaction</depends-list-element>
| <depends-list-element>portal:service=Interceptor,type=Server,name=SessionInvalidator</depends-list-element>
| <depends-list-element>portal:service=Interceptor,type=Server,name=User</depends-list-element>
| <depends-list-element>portal:service=Interceptor,type=Server,name=Locale</depends-list-element>
| <depends-list-element>portal:service=Interceptor,type=Server,name=ContentType</depends-list-element>
| <depends-list-element>portal:service=Interceptor,type=Server,name=AjaxController</depends-list-element>
| </depends-list>
| </mbean>
| ...
|
My question now is: Since I mainly just use another Controller and another Renderer (the rest is the same as in the regular stack), is it possible to define a conditional "depends-list-element" or do I always have to define my own complete action, command and render stack?
I am thinking of something like
| if (ajax) {
| <depends-list-element>portal:service=Interceptor,type=Server,name=AjaxController</depends-list-element>
| </depends-list>
| } else {
| <depends-list-element>portal:service=Interceptor,type=Server,name=Controller</depends-list-element>
| </depends-list>
| }
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3969987#3969987
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3969987
19 years, 7 months