Workbench is now Business Central!

5 years ago, on November 2013 we released 6.0.0.Final, that included the first version of the Workbench. It has been a long journey so far, but today we’re announcing that we’re retiring the Workbench brand and officially adopting Business Central as the new brand!

Historical Context

The KIE group has been developing web tooling for more than a decade now. The first public release that shipped a browser based tool was 5.0.1 (May of 2009), but its R&D started way before that.
Tip
KIE stands for Knowledge Is Everything, and it is pronounced exactly the word key in English: /kē/ .
The first experiments of a web-based tool to manage a central repository for business rules that provided an intuitive user interface to create and package rules started back in September 2006 as jbrms. After a couple of years, it was renamed to Guvnor, and this is the name that would become known as the official name of our first web tooling.
guvnor
Figure 1. Guvnor Guided Rule Editor User Interface.
The next generation that became known as Workbench started its R&D in May of 2012 with multiple goals and challenges that could be summarized in the following major two key points:
  • A modular, plug-in based, composable tooling, to avoid the single project/repo that Guvnor became over the years
  • A Virtual File System based storage, to avoid getting stuck with a technology like JCR
workbench
Figure 2. Workbench Original NSEW Compass Drag-and-Drop
If you’re feeling nostalgic, you can play this video, and get back to May of 2013, a few months before the release. But if you have time, and want to see how our fresh released second generation looked like in practice, you have a full playlist.

Evolution

The Workbench has been distributed in two flavors: KIE Drools Workbench and KIE Workbench. Initially, the KIE Workbench used to be shipped with an embedded jBPM engine, what made the distributions significantly different. However, with the KIE-Server release and the engine unification, the embedded jBPM engine was removed from Workbench, and the differences between the two distros became just a matter of show/hide some user interface items.
It’s also clear that the current Workbench has very little in common with its original format. Over the years it not only get more polished and stable, but the target audience has evolved from a developer focused to a collaborative platform between practitioners and developers.
Based on the above facts and also looking for a more concise branding strategy a decision was made: unify the distributions and re-brand it as Business Central!

Business Central

So what’s in the new name? The major positive impact is that we have now a single distribution and terminology to reference the KIE group web tooling, that also unifies the product and community terminology.
Here’s a quick walkthrough of the changes you’ll see in the new Business Central:
business-central

Profiles and Entitlements

By default Business Central bootstrap with all the features enabled, that includes Drools, OptaPlanner, and jBPM. However, for those that are not taking advantage of our jBPM engine, we provide in settings a Profiles option that allows admins to adjust Business Central to display only the relevant profile to your needs.
The default profile can be also be defined in the startup using the org.kie.workbench.profile environment variable with the following possible values:
  • FULL
  • PLANNER_AND_RULES
  • FORCE_FULL
  • FORCE_PLANNER_AND_RULES
The main difference between the “FORCE_” values is that it will hide the settings configuration, forcing the chosen profile.

Conclusion

After five years, the KIE group has decided that was time to retire the Workbench brand. Our web tooling evolved quite a lot and the use of the word Workbench, a common term for developers, didn’t reflect the current state of it.
The consolidation and re-branding to Business Central aims to provide a clear message about its targeted audience with a concise communication strategy. If you’re interested in giving it a try, Business Central is available to download today!

Launch of Business Applications

The time has come – Business Applications are here!!!

It’s a great pleasure to announce that the Business Applications are now officially launched and ready for you to get started.
start.jbpm.org
Business application can be defined as an automated solution, built with selected frameworks and capabilities that implements business functions and/or business problems. Capabilities can be (among others):
  • persistence
  • messaging
  • transactions
  • business processes, 
  • business rules
  • planning solutions
Capabilities essentially define the features that your business application will be equipped with. Available options are:
  • Business automation covers features for process management, case management, decision management and optimisation. These will be by default configured in the service project of your business application. Although you can turn them off via configuration.
  • Decision management covers mainly decision and rules related features (backed by Drools project)
  • Business optimisation covers planning problems and solutions related features (backed by OptaPlanner project)

Business application is more of a logical grouping of individual services that represent certain business capabilities. Usually they are deployed separately and can also be versioned individually. Overall goal is that the complete business application will allow particular domain to achieve their business goals e.g. order management, accommodation management, etc.

Business application consists of various project types

  • data model – basic maven/jar project to keep the data structures
  • business assets – kjar project that can be easily imported into workbench for development
  • service – service project that will include chosen capabilities with all bits configured
Read more about business applications here

Get started now!

To get started with your first business application, just go to start.jbpm.org and generate your business application. This will provide you with a zip file that will consists of (selected) projects ready to run.
Once you have the application up and running have a look at documentation that provides detailed description about business applications and various options in terms of configuration and development.
Make sure to not miss the tutorials that are included in the official documentation… these are being constantly updated so more and more guides are on the way. Each release will introduce at least 2 new tutorials … so stay tuned.

Samples and more

business-applications samples
Business application launch cannot be done without quite few examples that can give you some ideas on how to get going, to name just few (and again more are coming)
  • Driver pickup with IFTTT 
  • Dashboard app with Thymeleaf
  • IT Orders with tracking service built with Vert.x
  • Riot League of Legends
This business application GitHub organisation includes also source code for tutorials so make sure you visit it (and stay around for a bit as more will come).

Call for contribution and feedback

Last but not least, we would like to call out for contribution and feedback. Please give this approach a go and let us know what you think, what we could improve or share the ideas for business application you might have.
Reach out to us via standard channels such as mailing lists or IRC channel.

Running multi Workbench modules on the latest IntelliJ Idea with live reloading (client side)


NOTE: The instructions below apply only to the old version of the gwt-maven-plugin

At some point in the past, IntelliJ released an update that made it impossible to run the Workbench using the GWT plugin. After exchanging ideas with people on the team and summing up solutions, some workarounds have emerged. This guide provides information to running any Errai-based applications in the latest version of IntelliJ along with other modules to take advantage of IntelliJ’s (unfortunately limited) live reloading capabilities to speed the development workflow.

Table of contents

1. Running Errai-based apps in the latest IntelliJ
2. Importing other modules and use live reload for client side code
3. Advanced configurations
3.1. Configuring your project’s pom.xml to download and unpack Wildfly for you
3.2. Alternative workaround for non-patched Wildfly distros

1. Running Errai-based apps in the latest IntelliJ

As Max Barkley described on #logicabyss a while ago, IntelliJ has decided to hardcode gwt-dev classes to the classpath when launching Super Dev Mode in the GWT plugin. Since we’re using the EmbeddedWildflyLauncher to deploy the Workbench apps, these dependencies are now deployed inside our Wilfdfly instance. Nothing too wrong with that except the fact that gwt-dev jar depends on apache-jsp, which has a ServletContainerInitializer marker file that causes the deploy to fail.

To solve that issue, the code that looks to the ServletContainerIntitilizer file and causes the deploy to fail was removed in custom patched versions of Wildfly that are available in Maven Central under the org.jboss.errai group id.

The following steps provide a quick guide to running any Errai-based application on the latest version of IntelliJ.

1. Download a patched version of Wildfly and unpack it into any directory you like
– For Wildfly 11.0.0.Final go here

2. Import the module you want to work on (I tested with drools-wb)
  – Open IntelliJ, go to File -> Open.. and select the pom.xml file, hit Open then choose Open as Project

3. Configure the GWT plugin execution like you normally would on previous versions of IntelliJ


– VM Options:
  -Xmx6144m
    -Xms2048m
  -Dorg.uberfire.nio.git.dir=/tmp/drools-wb
  -Derrai.jboss.home=/Users/tiagobento/drools-wb/drools-wb-webapp/target/wildfly-11.0.0.Final


– Dev Mode parameters:
  -server org.jboss.errai.cdi.server.gwt.EmbeddedWildFlyLauncher

4. Hit the Play button and wait for the application to be deployed

2. Importing other modules and using live reload for client side code

After being able to run a single webapp inside the latest version of IntelliJ, it might be very useful to have some of its dependencies be imported as well, so that after changing client-code on that dependency, you don’t have to wait (way) too long for GWT to compile and bundle your application’s JavaScript code again.

Simply go to File > New > Module from existing sources.. and choose the pom.xml of the module you want to import.
If you have kie-wb-common or appformer imported alongside with another project, you’ll most certainly have to apply a patch in the beans.xml file of your webapp.

For drools-wb you can download the patch here. For other projects such as jbpm-wb, optaplanner-wb or kie-wb-distributions, you’ll have to essentially do the same thing, but changing the directories inside the .diff file.

If your webapp is up, hit the Stop button and then hit Play again. Now you should be able to re-compile any code changed inside IntelliJ much faster.

3.1. Configuring your project’s pom.xml to download and unpack Wildfly for you

If you are used to a less manual workflow, you can use the maven-dependency-plugin to download and unpack a Wildfly instance of your choice to any directory you like.

After you’ve added the snipped below to your pom.xml file, remember to add a “Run Maven Goal” before the Build of your application in the “Before launch” section of your GWT Configuration. Here I’m using the process-resources phase, but other phases are OK too.

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
      <execution>
        <id>unpack</id>
        <phase>process-resources</phase>
        <goals>
          <goal>unpack</goal>
        </goals>
        <configuration>
          <artifactItems>
            <artifactItem>
              <!– Using a patched version of Wildfly –>
              <groupId>org.jboss.errai</groupId>
              <artifactId>wildfly-dist</artifactId>
              <version>11.0.0.Final</version>
              <type>zip</type>
              <overWrite>false</overWrite>
              <!– Unpacking it into /target/wildfly-11.0.0.Final –>
              <outputDirectory>${project.build.directory}</outputDirectory>
            </artifactItem>
          </artifactItems>
          <skip>${gwt.compiler.skip}</skip>
        </configuration>
      </execution>
    </executions>
  </plugin>

3.2. Alternative workaround for non-patched Wildfly distros

If you want to try a different version of Widlfly or if you simply don’t want to depend on any patched versions, you can still use official distros and exclude the ServletContainerInitializer file from the apache-jsp jar on your M2_REPO folder.

If you’re working on a Unix system, the following commands should do the job.

1. cd ~/.m2/repository/

2. zip -d org/eclipse/jetty/apache-jsp/{version}/apache-jsp-{version}.jar META-INF/services/javax.servlet.ServletContainerInitializer

By excluding it manually from the apache-jsp jar, Maven won’t try to download it again after you remove the file. That makes this workaround permanent as long as you don’t erase your ~/.m2/ folder. Keep in mind that if you ever need the apache-jsp jar to have this file back, the best option is to delete the apache-jsp dependency directory and let Maven download it again.

New instructions for the new version of the gwt-maven-plugin are to come, stay tunned!



Spring Boot starters for jBPM and KIE Server

jBPM supports Spring (and Spring Boot) for quite a while but it didn’t provide it based on Spring Boot way – auto configuration and starters.

With upcoming release (7.6.0) this has changed. Now there are fully featured starters (based on auto configuration modules) for:

  • jBPM embedded
  • fully featured KIE Server
  • rules only KIE Server (Drools)
  • rules, processes and cases KIE Server (jBPM)
  • planning KIE Server (OptaPlanner)
You can very easily get started with these by using Spring Initializr (https://start.spring.io) where you can generate a complete project with all needed to get it running.
Have a look at this quick screencast that shows it in action.

Next take some time to read up guides for starters:
  • jBPM business process management – embedded engine
    •  groupId: org.kie
    •  artifactId: jbpm-spring-boot-starter-basic
    •  Guide
  • Fully featured KIE Server (Drools, jBPM, Optaplanner)
    •  groupId: org.kie
    •  artifactId: kie-server-spring-boot-starter
    •  Guide
  • Rules and Decisions KIE Server (Drools, DMN)
    •   groupId: org.kie
    •   artifactId: kie-server-spring-boot-starter-drools
    •   Guide
  • Rules and Decisions, Process and Cases KIE Server (Drools, DMN, jBPM, Case mgmt)
    •  groupId: org.kie
    •  artifactId: kie-server-spring-boot-starter-jbpm
    •  Guide
  • Planning KIE Server (Optaplanner)
    •  groupId: org.kie
    •  artifactId: kie-server-spring-boot-starter-optaplanner
    •  Guide

Last but not least, take a look at samples that are in the code base – especially one worth noting is KIE Server secured with Keycloak!
Stay tuned as more will come!

Drools, jBPM and Optaplanner Day: September 26 / 28, 2017 (NY / Washington)

Red Hat is organizing a Drools, jBPM and Optaplanner Day in New York and Washington DC later this year to show how business experts and citizen developers can use business processes, decisions and other models to develop modern business applications.
This free full day event will focus on some key aspects and several of the community experts will be there to showcase some of the more recent enhancements, for example:
  • Using the DMN standard (Decision Model and Notation) to define and execute decisions
  • Moving from traditional business processes to more flexible and dynamic case management
  • The rise of cloud for modeling, execution and monitoring

IT executives, architects, software developers, and business analysts who want to learn about the latest open source, low-code application development technologies.

Detailed agenda and list of speakers can be found on each of the event pages.

Places are limited, so make sure to register asap !

Drools, jBPM and Optaplanner Day: September 26 / 28, 2017 (NY / Washington)

Red Hat is organizing a Drools, jBPM and Optaplanner Day in New York and Washington DC later this year to show how business experts and citizen developers can use business processes, decisions and other models to develop modern business applications.
This free full day event will focus on some key aspects and several of the community experts will be there to showcase some of the more recent enhancements, for example:
  • Using the DMN standard (Decision Model and Notation) to define and execute decisions
  • Moving from traditional business processes to more flexible and dynamic case management
  • The rise of cloud for modeling, execution and monitoring

IT executives, architects, software developers, and business analysts who want to learn about the latest open source, low-code application development technologies.

Detailed agenda and list of speakers can be found on each of the event pages.

Places are limited, so make sure to register asap !

Is Optimization AI or OR?

With the renewed interest in AI the same conversations are starting to come up again, about what is or isn’t AI.  My recent discussion was on whether optimisation products, such as OptaPlanner, are considered AI as some considered it more Operations Research (OR). For some background, OptaPlanner started out as a Tabu Solver implementation, but has since added other techniques like Simulated Annealing.

Although I’d like to add that no single technique is AI, they are all tools and techniques that are quite typically used together in a blended, hybrid or integrated AI solution. So it’s the right tool or tools for the job.

The answer is that Optimisation is both an AI and an OR problem. It is a technique used and researched by both groups,  the two different disciplines tend to take different approaches to the problem, having differing use cases and have historically used different techniques, with a lot of cross pollination from both sides.

I’ll start with a consumer oriented answer to the question. StaffJoy has a nice blog article on the overlap of OR and AI, and I’ll quote from that below:
https://blog.staffjoy.com/how-operations-research-and-artificial-intelligence-overlap-b128a3efee2e
“Startups are using OR techniques in products like OnFleet, Instacart, and Lyft Line. However, when similar techniques are being exposed externally as services, they are often described as AI — e.g. x.ai, Atomwise, and Sentient. Very few companies describe algorithms that they sell as optimization (with the exception of SigOpt) because the end goal of customers is automating decisions. With StaffJoy, we have found that customers better understand our product when we describe it as an “artificial intelligence” tool rather than an “optimization” or “operations” tool. We think that this is because customers care more about what a product achieves, rather than the means it uses to achieve it.”

In short consumers do not see the difference between OR and AI, when applied to real world problems and it is commonly marketed as AI.

I’ll go a little more technical now, to further demonstrate it’s more than just marketing – as that side is only touched on in the above blog post.

While the two groups (OR and AI) may have once been distinct, it’s been well established that the OR and AI groups overlap in this space and have collaborated for years. Glover (1986) states them as “the recent remarriage of two disciplines that were once united, having issued from a common origin, but which became separated” – see final paper link at end.

A cursory google with terms “operations research” and “artificial intelligence” will more than prove this. Some techniques, like Linear Programming, are strongly on the OR side, others like Local Search (which OptaPlanner falls under) are shared. Optimisation, and local search (along with other techniques), is a core fundamental taught in every AI course without fail, and will be covered in every general AI book, used in schools – such as “AI:  A Modern Approach”- see chapter 4, page 120
http://aima.cs.berkeley.edu/contents.html

The book “Artificial Intelligence Methods and Applications” also makes it clear the two (OR and AI) are linked:
“Local search, or local optimisation, is one of the primitive forms of continuous optimisation in a discrete problem space. It was one of the early techniques proposed during the mid sixties to cope with the overwhelming computational intractability of NP-hard combinatorial optimisation problems. Unlike continuous optimisation techniques, local search has often been used in AI research and has established a strong link between AI and the operational research area.”
https://books.google.co.uk/books?id=0a_j0R0qh1EC&pg=PA67&lpg=PA67&dq=%22local+search%22+operations+research+artificial+intelligence&source=bl&ots=h2jGquBm4d&sig=2V7CKRIs3ZL-NKzqL3Dnkx33_NI&hl=en&sa=X&redir_esc=y#v=onepage&q=%22local%20search%22%20operations%20research%20artificial%20intelligence&f=false

Lastly I’ll quote directly from the original Tabu Solver paper “These developments may be usefully viewed as a synthesis of the perspectives of operations research and artificial intelligence… … The foundation for this prediction derives, perhaps surprisingly, from the recent remarriage of two disciplines that were once united, having issued from a common origin, but which became separated and maintained only loose ties for several decades: operations research and artificial intelligence. This renewed reunion is highlighting limitations in the frameworks of each (as commonly applied, in contrast to advocated), and promises fertile elaborations to the strategies each has believed fruitful or approaching combinatorial complexity.” Glover (1986). Note the paper is from “The Center of Applied Artificial Intelligence”. 
http://leeds-faculty.colorado.edu/glover/TS%20-%20Future%20Paths%20for%20Integer%20Programming.pdf

So I hope that clears that up – AI is a very broad church 🙂

Drools, jBPM and Optaplanner are switching to agile delivery!

Today we would like to give everyone in the community a heads up at some upcoming changes that we believe will be extremely beneficial to the community as a whole.
The release of Drools, jBPM and Optaplanner version 7.0 a few weeks ago brought more than just a new major release of these projects.
About a year ago, the core team and Red Hat started investing on improving a number of processes related to the development of the projects. One of the goals was to move from an upfront planning, waterfall-like development process into a more iterative agile development.
The desire to deliver features earlier and more often to the community, as well as to better adapt to devops-managed cloud environments, required changes from the ground up. From how the team manages branches to how it automates builds and how it delivers releases. A challenge for any development team, but even more so to a team that is essentially remote with developers spread all over the world.
Historically, Drools, jBPM and Optaplanner aimed for a cadence of 2 releases per year. Some versions with a larger scope took a bit longer, some were a bit faster, but on average that was the norm.
With version 7.0 we started a new phase in the project. We are now working with 2-week sprints, and with an overall goal of releasing one minor version every 2 sprints. That is correct, one minor version per month on average.
We are currently in a transition phase, but we intend to release version 7.1 at the end of the next sprint (~6 weeks after 7.0), and then we are aiming to release a new version every ~4 weeks after that.
Reducing the release timeframe brings a number of advantages, including:
  • More frequent releases gives the community earlier access to new features, allowing users to try them and provide valuable feedback to the core team. 
  • Reducing the scope of each release allows us to do more predictable releases and to improve our testing coverage, maintaining a more stable release stream.
  • Bug fixes as usual are included in each release, allowing users more frequent access to them as well. 
It is important to note that we will continue to maintain backward compatibility between minor releases (as much as possible – this is even more important in the context of managed cloud deployments as well where seamless upgrades are the norm) and the scope of features is expected to remain similar to what was before. That has two implications:
  • If before, we would release version 7.1 around ~6 months after 7.0, we now will release roughly 6 new versions in those 6 months (7.1, 7.2, …, 7.6 ), but the amount of feature will be relatively equivalent. I.e., the old version 7.1 is roughly equivalent in terms of features as the scope of the new versions 7.1,…, 7.6 combined. It just splits the scope in smaller chunks and delivers earlier and more often.
  • Users that prefer to not update so often will not lose anything. For instance, a user that updated every 6 months can continue to do so, but instead of jumping from one minor version to the next, he will jump 5-6 minor versions. This is not a problem, again, because the scope is roughly the same as before and the backward compatibility between versions is the same.
This is of course work in progress and we will continue to evolve and adapt the process to better fit the community’s and user’s needs. We strongly believe, though, that this is a huge step forward and a milestone on the project maturity level.

RuleML+RR with DecisionCamp – July 12-14 201, London

RuleMLWeb Rules and Reasoning as well as DecisionCamp are all coming together (as well as being collocated with BICOD) this year in London.
RuleML+RR home, schedule, registration
DecisionCamp home, schedule, registration

Explore that latest AI happenings at RuleML+RR and keep up to date with the latest Decision Model and Notation (DMN) at Decision Camp.

When: July 12-14 2017
Where: Birkbeck, University of London, London, UK
Malet St, London WC1E 7HX, UK

A number of Red Hat Engineers will be there and presenting:
Mark Proctor – Drools co-founder, BRMS and BPMS Platform Architect:

Edson Tirelli – Drools project lead: DMN Technology Compatibility Kit (TCK), Demystifying the Decision Model and Notation Specification
Geoffrey De Smet – OptaPlanner founder, project lead: Real-time Constraint Solving with OptaPlanner

DecisionCamp:
DecisionCAMP-2017 will include presentations from leading decision management authorities, vendors, and practitioners. The event will explore the current state in Decision Management, the real-world use of the DMN standard, and solutions to various business problems using Decision Management  tools and capabilities. The event will include a special Open Discussion “What you Like and What you Do Not Like about DMN” and a QnA Panel “Real-world Business Decision Management: Vendor and Practitioner Perspectives”.

RuleML+RR:
“2017 is the leading international joint conference in the field of rule-based reasoning, and focuses on theoretical advances, novel technologies, as well as innovative applications concerning knowledge representation and reasoning with rules.”

Keynotes and Speeches:
Bob Kowalski (Imperial College London): Logic and AI – The Last 50 Years
Stephen Muggleton (Imperial College London): Meta-Interpretive Learning: Achievements and Challenges
Jordi Cabot (IN3-UOC, Barcelona): The Secret Life of Rules in Software Engineering (sponsored by EurAI)
Jean-Francois Puget (IBM): Machine Learning and Decision Optimization
Elena Baralis (Politecnico di Torino): Opening the Black Box: Deriving Rules from Data


DMN demo at Red Hat Summit

We have an event packed full of Drools, jBPM and Optaplanner content coming next week at the Red Hat Summit, but if you would like to know more about Decision Model and Notation and see a really cool demo, then we have the perfect session for you!

At the Decision Model and Notation 101 session, attendees will get a taste of what DMN brings to the table. How it allows business users to model executable decisions using a fun, high level, graphical language, that promotes interoperability and preserves their investment preventing vendor-lock-in.

But this will NOT be your typical slideware presentation. We have prepared a really nice demo of the end-to-end DMN solution announced by Trisotech a few days ago. During the session you will see a model being created with the Trisotech DMN Modeler, statically analyzed using the Method&Style DT Analysis module and executed in the cloud using Drools/Red Hat BRMS.

Come an join us on Tuesday, May 2nd at 3:30pm.

It is a full 3-course meal, if you will. And you can follow that up with drinks at the reception happening from 5pm-7pm at the partner Pavillion where you can also talk to us at the Red Hat booth about it and anything else you are interested in.

Happy Drooling!