We have used Apache camel as a Workflow engine.First Wehave WebService One and wait for the response and based on the response call WebService 2 or WebService 3.Its a pure WorkFlow and have couple of WorkFlow Steps like this.I have got less chances to work on a BPM product , like JBOSS BPM etc. Other than long running and support for human task any other good reason we have to choose a BPM product ? If both long running and human task support are not needed in our project can we use Camel or JBOSS FUSE to orchestrate business processes ?
Thanks,
Leo.
Yeah.. as Antoine mention, from the technical perspective it might sounds similar, but if you are using Camel as a state machine to move data you are not doing BPM at all, you are extremely far away for BPM.
BPM adds a lot more on top of just a simple state machine. Just starting from the language that you use to model business scenarios to the tooling that is provided along with a BPM you will be loosing a lot if you just use camel. I can understand your question from a technical point of view, but from a more company wide perspective you cannot compare solutions.
I think that you need to ask yourself the following questions:
1) Are you going to be interested in sharing which web services (your camel routes at this point) are called with non technical people?
2) are you going to be interested in getting audit logs and dashboard like screens to analyze what is going on with the services that you are calling to make business decisions?
3) Are your routes changing a lot based on business decisions? Like for example calling different web services because your company is changing providers based on partnerships or costs?
4) How big is going to be your systems interactions (and camel routes) in 5 years?
5) Do you need to fulfil a standard or legal regulations?
If the answers for the last 5 questions are no, using camel and keeping the web services orchestration in a camel route is fine, because it's just a way to keep your code clean and maintainable, but it will be always hidden from the rest of your company.
Leo, this is a very interesting question. I happen to have experience working with ESB, Apache Camel, and BPM systems. As full disclosure, I am the chief architect of Intalio, Inc.
Apache Camel is a great solution to deal with data flowing back and forth. A BPM system will notoriously add support for human tasks, as you pointed out. Intalio|bpms also adds support for complex orchestration over asynchronous processes using partner links. Intalio|bpms (as well as other solutions) also can monitor process instances, capturing KPIs and making them available as dashboards for users. You can also increase flexibility at runtime by using business rules that let business enter conditions or calculations to change the data of the process (for example, change the discount rate of a particular supplier in real time).
At design time, BPM suites add a lot of functionality around the idea of documenting better the process and letting business and IT collaborate better. Some suites target business users, some are more oriented towards IT, but they usually define artifacts that provide a high level comprehension of the process.
I hope this was helpful.