Drools & jBPM future roadmap talk

Mark Proctor
Mark ProctorPlatform Architect - Red Hat BRMS and BPMS
Guvnor Now
Guvnor Now
Guvnor Now
Guvnor Now

●   Fixed Layout
●   Hard to build new UI layouts and components
●   Lack of “role” oriented UIs
●   JCR Backend
●   Package oriented deployment
●   Non standardized deployment models
●   Rule re-use is hard
Future 6.x

●   UberFire
    –   All panels are plugins
    –   Flexible Layout
    –   Perspectives
    –   Contextual toolbars, menus
         ●   Security obfustication
    –   Built in Security
    –   Will build out base components
         ●   Problem views, property editors, documentation viewer,
             Cheat Sheets
Future 6.x

●   GIT backend
●   Jar oriented deployment
    –   Maven plugin
    –   Fits in Maven operational infrastructure
●   Better rule reuse
    –   KBase includes
●   Declarative programming models with CDI
    –   @Inject @KBase @Ksession
Future 6.x
●   New Algorithm
    –   Merges ideas from: Rete, Leaps, Unlinking
●   Big DRL clean up and Changes
    –   Biggest changes since 3.0
    –   Lots of new advanced language features
        ●   Conditional Branches, Event Sequencing
●   More Advanced AI
    –   JTMS, Defeasible Logic
    –   Description Logic
●   Continue to improve programming models
    –   How we write and structure rules and groups of
        rules,
Past 5.x
Future 6.x
Future 6.x
Future 6.x
Future 6.x
Introducing


     UberFire
Web Based
           Workbench

inspired by eclipse rcp
Preview




                    markdown editor




    file explorer
Behind Next Generation

   Drools & jBPM
             [web] tooling
Some Features
●
    Decoupled components
●
    Easily aggregation of components
●
    Layout Manager, Perspectives and Views
●
    Embeddable in any application
●
    Reuse components as Eclipse plugins(*)
Perspectives




               dashboard




     welcome
Underline Technology

    ERRAI    GWT
  CDI           JEE6
         Java
Technical Overview
  ●
      Light weight container abstraction for Panels
  ●
      Standard Life cycle and callbacks
      –   @Start, @Close, @Hide, @Show
  ●
      Abstracted API
      –   Menus, Toolbars, Panels (reuse)
  ●
      Virtual File System
      –   NIO2 back-port
  ●
      Persisted Perspectives
  ●
      Bus architecture abstracts all components from
      the workbench
      –   Allows ease of 3rd party embedability
Sample Code
  @Dependent
  @WorkbenchEditor(identifier = "TextEditor")
  public class TextEditorPresenter {

      public interface View extends IsWidget {
          void setContent(String content);
          void setDirty(boolean dirty);
      }

      @Inject
      public View                view;

      @Inject
      private Caller<VFSService> vfsServices;

      @OnStart
      public void onStart(final Path path) {
          this.path = path;
          vfsServices.call( new RemoteCallback<String>() {
               @Override
               public void callback(String response) {
                   view.setContent( response );
               }
          } ).readAllString( path );
      }
      @OnClose
      public void onClose() {
          this.path = null;
      }
      @WorkbenchPartTitle
      public String getTitle() {
          return "Text Editor [" + path + "]";
      }
      @WorkbenchPartView
      public IsWidget getWidget() {
          return view;
Result
Real Application...


         jBPM Console
1 of 23

More Related Content

Similar to Drools & jBPM future roadmap talk(20)

Drools & jBPM future roadmap talk

  • 4. Guvnor Now ● Fixed Layout ● Hard to build new UI layouts and components ● Lack of “role” oriented UIs ● JCR Backend ● Package oriented deployment ● Non standardized deployment models ● Rule re-use is hard
  • 5. Future 6.x ● UberFire – All panels are plugins – Flexible Layout – Perspectives – Contextual toolbars, menus ● Security obfustication – Built in Security – Will build out base components ● Problem views, property editors, documentation viewer, Cheat Sheets
  • 6. Future 6.x ● GIT backend ● Jar oriented deployment – Maven plugin – Fits in Maven operational infrastructure ● Better rule reuse – KBase includes ● Declarative programming models with CDI – @Inject @KBase @Ksession
  • 7. Future 6.x ● New Algorithm – Merges ideas from: Rete, Leaps, Unlinking ● Big DRL clean up and Changes – Biggest changes since 3.0 – Lots of new advanced language features ● Conditional Branches, Event Sequencing ● More Advanced AI – JTMS, Defeasible Logic – Description Logic ● Continue to improve programming models – How we write and structure rules and groups of rules,
  • 13. Introducing UberFire
  • 14. Web Based Workbench inspired by eclipse rcp
  • 15. Preview markdown editor file explorer
  • 16. Behind Next Generation Drools & jBPM [web] tooling
  • 17. Some Features ● Decoupled components ● Easily aggregation of components ● Layout Manager, Perspectives and Views ● Embeddable in any application ● Reuse components as Eclipse plugins(*)
  • 18. Perspectives dashboard welcome
  • 19. Underline Technology ERRAI GWT CDI JEE6 Java
  • 20. Technical Overview ● Light weight container abstraction for Panels ● Standard Life cycle and callbacks – @Start, @Close, @Hide, @Show ● Abstracted API – Menus, Toolbars, Panels (reuse) ● Virtual File System – NIO2 back-port ● Persisted Perspectives ● Bus architecture abstracts all components from the workbench – Allows ease of 3rd party embedability
  • 21. Sample Code @Dependent @WorkbenchEditor(identifier = "TextEditor") public class TextEditorPresenter { public interface View extends IsWidget { void setContent(String content); void setDirty(boolean dirty); } @Inject public View view; @Inject private Caller<VFSService> vfsServices; @OnStart public void onStart(final Path path) { this.path = path; vfsServices.call( new RemoteCallback<String>() { @Override public void callback(String response) { view.setContent( response ); } } ).readAllString( path ); } @OnClose public void onClose() { this.path = null; } @WorkbenchPartTitle public String getTitle() { return "Text Editor [" + path + "]"; } @WorkbenchPartView public IsWidget getWidget() { return view;
  • 23. Real Application... jBPM Console