-
1. Re: Mediation Router as flow orchestrator inside Fuse ESB?
hzbarcea_hzbarcea Jan 16, 2008 8:36 AM (in response to peterm2@iona.com)Hi Pete,
Camel sure can be used for your scenario. Like you said you may have to write your own beans for transforming your data, but depending on what you need to do you might get away with camel-script or something similar.
BPEL has one clear advantage over camel and that is long running transactions. A BPEL engine keeps track of and persists running process instances that may span over days, weeks, months. That would be the only scenario where I would use bpel. Other than that I would chose Camel for the following reasons:
bpel depends on wsdl, camel does not. i.e. with camel you may accept messages from sources not supported by a ws stack such as say, quartz. On top of that the way endpoints are defined in camel is much simpler, more natural. It can get quite messy to define partner links in bpel for say, again, things like quartz.
when it comes down to exceptions, bpel sucks. the syntax is complicated and many a time you might get results different than what you expect with a naive usage of the syntax.
bpel is harder to debug, no good tools afaik.
In your particular case it looks like you want something like (if I read your request correctly):
from(endpoint-A).process(bean).to(endpoint-B).
choice(when(xpath("/yourvalue = 'something'")).process(enterprisebean).to(enterprise-endpoint).
otherwise().exception(YourSoapException)
I hope this helps,
Hadrian
-
2. Re: Mediation Router as flow orchestrator inside Fuse ESB?
hzbarcea_hzbarcea Jan 16, 2008 8:40 AM (in response to peterm2@iona.com)Hi Pete,
Camel sure can be used for your scenario. Like you said you may have to write your own beans for transforming your data, but depending on what you need to do you might get away with camel-script or something similar.
BPEL has one clear advantage over camel and that is long running transactions. A BPEL engine keeps track of and persists running process instances that may span over days, weeks, months. That would be the only scenario where I would use bpel. Other than that I would chose Camel for the following reasons:
bpel depends on wsdl, camel does not. i.e. with camel you may accept messages from sources not supported by a ws stack such as say, quartz. On top of that the way endpoints are defined in camel is much simpler, more natural. It can get quite messy to define partner links in bpel for say, again, things like quartz.
when it comes down to exceptions, bpel sucks. the syntax is complicated and many a time you might get results different than what you expect with a naive usage of the syntax.
bpel is harder to debug, no good tools afaik.
In your particular case it looks like you want something like (if I read your request correctly):
from(endpoint-A).process(bean).to(endpoint-B).
choice(when(xpath("/yourvalue = 'something'")).process(enterprisebean).to(enterprise-endpoint).
otherwise().exception(YourSoapException)
I hope this helps,
Hadrian