2008/5/7 cmoulliard <[EMAIL PROTECTED]>: > > Hi, > > Imagine that you start a ESB/SOA project and you are able to design using > EIP the routing that you need for most of your clients (ex : messages file > or queue messages must be parsed --> client must be identified --> messages > must be transformed --> DB must be called to enrich messages --> messages > enriched must be send back to the client through queue manager or file > directory). To develop this STP process, you use the Camel routing. > > Unfortunately, over time, clients request more and more different extensions > points (meaning that the routing or workflow of a client is different from > another) and your routing becomes very complex because : > - lot of decision points have been added to change the routing according to > client's requirements, > - debugging/testing time increases to be able to tests all the test case or > debug problem > At that moment, you contemplate to reconsider your architectural platform > and to implement a dynamic routing based on the client workflow. > > But How can I implement a dynamic routing between my components to > orchestrate the workflows of my clients ? > > A solution that you can investigate to implement such a workflow is to use > an orchestration engine like WS-BPEL but your architecture does not require > to persist state of the tasks and to use webservices. > > An interesting alternative is to use a workflow engine like jBoss BPM or > OSworkflow to orchestrate the communication between services/endpoints. > But this approach requires that you have one queue/service because the > orchestration engine must place messages into the queues to trigger the > correct service or component according to client's workflow. > > The simplest solution would be to have event to trigger components. > > Mule platform proposes this kind of functionality > (http://mule.mulesource.org/display/MULEUSER/BPM+Connector). > > Of course, my question will be simple : > > Are bpm endpoint (bpm:///) AND events between endpoints planned for Camel > like this is proposed within Mule ?
Sure - I think a BPM connector would be a great idea. Particularly for OSWorkflow / jBPM. Also Drools could help in these complex cases. Sometimes just using your own Bean with Java code can be much easier than using a BPM tool btw :) On projects I've often found BPM tools seem great on day one but cause more and more pain over time until you end up replacing it :) But yes for folks who wanna use a BPM tool to help create workflows, we should support it; it should be pretty easy to add. BTW you'd be using a database to store each business process and process instance right? Or do you mean all the workflow processes would exist purely in RAM? -- James ------- http://macstrac.blogspot.com/ Open Source Integration http://open.iona.com
