Friday, June 07, 2013

Goodbye Guvnor. Hello Drools Workbench.

Many things are changing for Drools 6.0.

Along with the functional and feature changes we have restructured the Guvnor github repository to better reflect our new architecture. Guvnor has historically been the web application for Drools. It was a composition of editors specific to Drools, a back-end repository and a simplistic asset management system.

Things are now different.

For Drools 6.0 the web application has been extensively re-written to use UberFire that provides a generic Workbench environment, a Metadata Engine, Security Framework, a VFS API and clustering support.

Guvnor has become a generic asset management framework providing common services for generic projects and their dependencies. Drools use of both UberFire and Guvnor has born the Drools Workbench.

A picture always helps:



Uberfire

https://github.com/droolsjbpm/uberfire

UberFire is the foundation of all components for both Drools and jBPM. Every editor and service leverages UberFire. Components can be mixed and matched into either a full featured application of used in isolation.


Guvnor

https://github.com/droolsjbpm/guvnor

Guvnor adds project services and dependency management to the mix.

At present Guvnor consists of few parts; being principally a port of common project services that existed in the old Guvnor. As things settle down and the module matures pluggable workflow will be supported allowing for sensitive operations to be controlled by jBPM processes and rules. Work is already underway to include this for 6.0.


kie-wb-common

https://github.com/droolsjbpm/kie-wb-common

Both Drools and jBPM editors and services share the need for a common set of re-usable screens, services and widgets.

Rather than pollute Guvnor with screens and services needed only by Drools and jBPM this module contains such common dependencies.

It is possible to just re-use the UberFire and Guvnor stack to create your own project-based workbench type application and take advantage of the underlying services.


Drools Workbench (drools-wb)

https://github.com/droolsjbpm/drools-wb

Drools Workbench is the end product for people looking for a web application that is composed of all Drools related editors, screens and services. It is equivalent to the old Guvnor.

Looking for the web application to accompany Drools Expert and Drools Fusion; an environment to author, test and deploy rules. This is what you're looking for.


KIE Drools Workbench (kie-drools-wb)

https://github.com/droolsjbpm/kie-wb-distributions/tree/master/kie-drools-wb

KIE Drools Workbench (for want of a better name - it's amazing how difficult names can be) is an extension of Drools Workbench including jBPM Designer to support Rule Flow.

jBPM Designer, now being an UberFire compatible component, does not need to be deployed as a separate web application. We bundle it here, along with Drools as a convenience for people looking to author Rule Flows along side their rules.


KIE Workbench (kie-wb)

https://github.com/droolsjbpm/kie-wb-distributions/tree/master/kie-wb


This is the daddy of them all.

KIE Workbench is the composition of everything known to man; from both the Drools and jBPM worlds. It provides for authoring of projects, data models, guided rules, decision tables etc, test services, process authoring, a process run-time execution environment and human task interaction

KIE Workbench is the old Guvnor, jBPM Designer and jBPM Console applications combined. On steroids.


The World is not enough?

You may have noticed; KIE Drools Workbench and KIE Workbench are in the same repository. This highlights a great thing about the new module design we have with UberFire. Web applications are just a composition of dependencies.

You want your own web application that consists of just the Guided Rule Editor and jBPM Designer? You want your own web application that has the the Data Modeller and some of your own screens?

Pick your dependencies and add them to your own UberFire compliant web application and, as the saying goes, the world is your oyster.

12 comments:

  1. How come all OSS projects suffer NIH syndrome? How about using Vaadin instead of inventing the wheel again (=uberfire).

    ReplyDelete
    Replies
    1. Agree with your sentiments. Would have been better to choose a common/popular GUI framework instead of creating your own IDE framework.

      Delete
  2. UF is not a web framework, nor is it creating widgets or components.

    It's a workbench and console framework, think of it as like Eclipse for the web, It currently uses Bootstrap for widgets for the main windowing system, toolbars and menu bars. Guvnor already existed for many years, and from this we developed a set of requirements, part of which including being able to easily pot our legacy application components. Any widget/component set can be used inside of the panel content areas. You are welcome to use Vaadin for widgets/components within the panel areas.

    ReplyDelete
  3. Hello Michael,

    We are using JBPM 6.0.0 cr2 to develop business processes. We wanted to know, if there is any option to check in the process into repository from eclipse like how it was in version 5.4 using guvnor.

    ReplyDelete
  4. "We are using JBPM 6.0.0 cr2 to develop business processes. We wanted to know, if there is any option to check in the process into repository from eclipse like how it was in version 5.4 using guvnor."

    The backend is just GIT. Eclipse has a GIT team provider, so yes :)

    ReplyDelete
  5. Hi. We're evaluating using Drools and Guvnor. So far, we've been evaluating Drools 5.x but recently started looking at Drools 6.x. Rule authoring makes up a significant portion of our needs. The changes to Guvnor in 6.x seem quite drastic. Admittedly I'm quite new to Drools/Guvnor......still I find the new workbench fairly confusing and I can't seem to find any updated documentation (I realize that typically happens last). Do you have any rough idea when Drools 6.x will become final, and also when documentation would be available? Thanks for any info.

    ReplyDelete
  6. We are working on documentation now. Some critical bug fixes have come in on the last two weeks. We'll have some quick start video's to go with the release.

    Expect the release next week.

    ReplyDelete
  7. The editors themselves in 6.0.x have changed very little compared to 5.x. Whilst the new workbench is more complex than it's predecessor this perhaps more accurately highlights some of the simplifications in 5.x (e.g. one project only). Mark Proctor is correct that documentation is being worked on right now, but in the interim why not pop by on #guvnor or the drools mailing list with things you're having difficulties with and we'll try our best to guide you.

    ReplyDelete
  8. Thanks Mark and Michael. Going forward I'll contact you as suggested above.

    ReplyDelete
  9. Can you comment on how to use this tool. I have downloaded the drools-wb from github. There are no articles on web to help me get started on this. All the articles are very abstract saying bye Guvnor...but no information on how to get started with Drools Workbench.

    I want to evaluate Drools Workbench for my app but how to start on it and use it efficient way.

    ReplyDelete
  10. Hey qq.. So if we already have a working Guvnor 5.4 installation, can we upgrade our back-end engine to 6.x and still use the same authoring solution/rule repository? The reason I ask is because we have made some mods to the existing Guvnor with respect to authentication (via JASIG CAS) and I don't really feel like porting it right now.

    ReplyDelete
  11. I don't know what your changes are, but it's a completely different codebase and completely different deployment system. I'd recommend you look over the 6.0 documentation.
    http://docs.jboss.org/drools/release/6.0.1.Final/drools-docs/html/

    ReplyDelete