Friday, October 17, 2008

Rules and BPEL (Joe White @ Recondo Technologies)

Joe is here with us in Texas for the Drools Boot Camp, his company is a big BPEL user and he's been sharing his pain with us. They turned to BPEL, having drunk the koolaid, with the aim to simplify the management of a collection of services and their input and output of data. He tells us the result is a fairly complex system, that lives in Speghetti hell, that is difficult to manage on its own. Joe has been kind enough to share a screen shot and his own thoughts (all pasted below) on where he'd like to go with his company to better address this issue in the future, with the hope that Drools can help.

The image below is a graphical representation of a business process in BPEL. The boxes and circles along the right are services, the lines running to those services are invocations, and the boxes in the middle are steps in the BPEL process (assign, invoke, copy etc.)

Spaghetti BPEL, welcome to hell!!!
(click to enlarge)

An alternative is to use rules to manage your business process. A purely rules based approach would use a rule set as a content based router and every decision point becomes an evaluation of your business routing rules. In addition, rules can manage service invocation by making the service invocation the consequence of firing into another rule set. Coupled with a BRMS like Guvnor the rules based process orchestration of services becomes accessible by business users in a managed environment. Coupled with a workflow or integration engine like Drools-Flow or Apache Camel the rules based business process management will allow for the management of complex long running business processes without some of the complexity and development overhead introduced by BPEL. The rules manage the decision points and the workflow engine helps manage the progression through your business process. The rules based approach won’t provide everything that you get with BPEL. For example state management, persistence, and ease of integration with WSDL are all advantages that BPEL provides that you wouldn’t get for free with a rules driven approach. In the end a rules based approach to business process orchestration should provide simplicity, modularity, and ease of development. As an architect it is worth considering a rules driven approach to business process management.

3 comments:

  1. The clear answer to this problem is a BPMS with strong rules and Web Services support-- and there are several such packages including Ultimus. Usinng such a solution will not only get rid of the fragile Spaghetti code but will also enable you to connect to Web Services through WSDL. (To assume that only BPEL can support WSDL is obviously very wrong). Suggest you check out Ultimus and their Adaptive Discoveryy in Ultimus V8

    ReplyDelete
  2. This comment has been removed by a blog administrator.

    ReplyDelete
  3. Isn't this basically unsound? A fundamental assumption of the rules model is that that all the necessary state is local, service invocations break that...

    ReplyDelete