drools & jbpm future roadmap talk
Post on 29-Jan-2018
2.591 Views
Preview:
TRANSCRIPT
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
Guvnor Now
● 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,
Future 6.x
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
file explorer
markdown editor
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
welcome
dashboard
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
top related