Wednesday, September 30, 2015

Lienzo for new jBPM Designer and Drools Decision Tables

Michael Anstis and myself have been working on the Lienzo tool, a GWT based HTML Canvas library for Scene Graphs.

Michael has been working on lienzo-grid, as the basis for our next generation decision tables - so it can support multiple interconnected tables on a page.

I'm working with Lienzo so that it can form the basis of our next generation designer. I wanted to make sure that we had a high quality core, in how users interact with shapes and connectors. I've just done a small demo, to show progress.

  1. Real time alignment and distribution of shapes
  2. Orthogonal line support with heuristics for minimising joins, and real time drawing. With easy add/remove of points, as well as avoiding ugly layouts:
    1. Corners should be nicely rounded, default canvas joins is not enough.
    2. Lines should not go back on themselves.
    3. When connected lines should go away from the shape.
    4. Corner connections can be in one of two directions, select the one that gives the least corners.
  3. Magnets should be auto determined by analysing the path, currently supports any SVG path of lines and arcs.  So things like lightning bolts, or human outline shapes can be used.
Here is a link to my latest video, The lightning bold is added at 1m35s.

All of the generic work is making it's way back into Lienzo and we hope this will evolved to be a part of community soon. Hopefully early versions before end of this year, in community.

A big thanks to Dean Jones (Lienzo lead) for all his support and help.

This mean we can have the same canvas library for both decision tables and designers. Keeping our loading sizes smaller and reducing the number of libraries my teams have to support and maintain. Dean is also working on charts, so we can hopefully unify that too.



Monday, September 28, 2015

Drools 6.3.0.Final released

Drools 6.3.0.Final has been released.

This release continues with the focus on extending and improving the platform that we have followed for the 6.x series. Bellow you can read about the highlights of the release but here are some important links:

Release Notes

Drools 6.3 is released alongside:

Thank you to all the contributors that made this release possible.

Happy Drooling

Release Highlights

Real Time Validation and Verification for the Decision Tables

Decision tables used to have a Validation-button for validating the table. This is now removed and the table is validated after each cell value change. The validation and verification checks include:
  • Redundancy
  • Subsumption
  • Conflicts
  • Missing Columns

Improved DRL Editor

The DRL Editor has undergone a face lift; moving from a plain TextArea to using ACE Editor and a custom DRL syntax highlighter.

Browsing graphs of objects with OOPath

When the field of a fact is a collection it is possible to bind and reason over all the items in that collection on by one using the from keyword. Nevertheless, when it is required to browse a graph of object the extensive use of the from conditional element may result in a verbose and cumbersome syntax. 

By borrowing ideas from XPath, this syntax can be made more succinct, as XPath has a compact notation for navigating through related elements while handling collections and filtering constraints. This XPath-inspired notation has been called OOPath since it is explictly intended to browse graph of objects.

Kie Navigator View for Eclipse

A new viewer has been added to the Eclipse Tooling. This Kie Navigator View is used to manage Kie Server installations and projects.

Generation of JPA enabled Data Models

Data modeller was extended to support the generation of persistable Data Objects. The persistable Data Objects are based on the JPA specification and all the underlying metadata are automatically generated.

Data Set Authoring

A new perspective for authoring data set definitions has been added. Data set definitions make it possible to retrieve data from external systems like databases, CSV/Excel files or even use a Java class to generate the data. Once the data is available it can be used, for instance, to create charts and dashboards from the Perspective Editor just feeding the charts from any of the data sets available.

Consolidated Kie Server (execution server): Rules and Processes

A lot of work went into the creation of unified, highly configurable, minimal execution server - ideal for cloud-based or micro-services architectures.  Since v6.0 the workbench has included an execution server that could be accessed remotely.  This was however embedded into the workbench and designed to operate in a symmetric way when deployed in a clustered environment (all nodes in the cluster were able to execute all processes / requests).  In Drools v.6.2 a new minimal decision service was introduced that allows only deploying specific rule sets to specific containers, giving the user full control over deployment.  This has now been unified, resulting in a lightweight execution server where you can execute your processes, rules, tasks and async jobs.  It can be set up as a single execution server for all your projects, or different execution server instances (possibly one for each project).


Drools Workshops Chile/Argentina (Nov/15)

Hi Everyone, I'm going to South America for two weeks in November and I'm planning to deliver two community workshops around Drools and jBPM. The workshops will be mostly focused on Drools (time restrictions) but I will try to include brief intro about jBPM as well.
I've drafted an initial agenda, that might change based on the feedback from people that is planning to attend. Feel free to drop me a comment if you want to see something in particular. I will do my best to accommodate more topics based on the amount of time that we have available.
Click here for the Spanish Version of this post.


Initially these are the dates and cities for the Workshops:
If you are interest in attending please get in touch with me or the organisers in each of the cities and if you can help me to spread the word about these workshops I will appreciate it. The more community members that we can gather the better the workshops are, mostly because we can all share experiences, headaches and future roadmaps.

Suggested Agenda

Here is my initial draft for the Agenda (this might change based on feedback)
1) Intro to Drools
2) Creating a Simple Project
3) Intro to the new KIE Server, how to integrate our apps with Drools
4) Overview about the KIE Workbench
5) Roadmap (7.x and future)
6) Drools + Microservices (Docker/Kubernetes)
7) Community Stories (here I will encourage the participants to share their use cases, if you are interested in giving a very short presentation about what your project is about please let me know, so we can create a list)
Feel free to drop me a message if you want to add something to it. The idea is to work with our laptops and get an application working by the end of the day. If we all work together during the Workshop we will be able to make it more interactive and share more experiences and doubts. I would like to avoid giving too much presentations, so I will try to keep these meet ups as hands on as possible.

Workshop Chile

I will be updating this post with more news every week so stay tuned!


Friday, September 25, 2015

Google Summer of Code 2015: jBPM Mobile (MGTW)

I would like to share with all you guys the success story from the Google Summer of Code 2015 program in collaboration with the jBPM project. This year Rodrigo Garcete from (Ciudad del Este) Paraguay, who this year was in charge of upgrading the jBPM Mobile implementation created using MGWT. This application is a proof of concept showing a fully functional mobile client that can deploy KIE Jars to the execution runtime and then start processes and tasks.
I personally had a great experience interacting with Rodrigo during the program and I do believe that the jBPM community gained a very valuable community member. Here you can find Rodrigo's fork containing the latest version of the code:
Keep reading to see what Rodrigo's experience was and at the end a short video showing the app in action. 

Rodrigo about the GSoC Program

Hi everyone
I am very grateful to the GsoC2015 program, for giving me the opportunity to participate this year, it was my first experience working with an open source community.
Also, I want to thank the community, specifically my mentor Mauricio Salatino (salaboy), for the trust you have placed in me.
The project to which work closely with my mentor salaboy this summer called jBPM Console NG Mobile, as its name implies, the aim of the project was to  adapt the jBPM Console NG application and make it available in the mobile world.
The technology stack that we used consist of MGWT,  UberfireErrai and jBPM.
It is important to mention that the project was already running, but with an old version of MGWT (1.2) and it was also using old services from the jBPM infrastructure.
First thing I did was to migrate all components to use the latest MGWT  version (2.0).
Then I had to modify the API calls to backend services, these changed a lot in version 6.4.0-SNAPSHOT.
The work was not easy .. but it wasnt  impossible, whenever I hit some problems, salaboy help me, explaining, and answering any questions I had, guiding me towards the right path.
After the first evaluation (mid term), all the upgrade was completed and we started looking into adding some new features and improvements. Little by little I was learning the internals of project, everything started to make more sense, and I was getting faster in getting things up and running.
In the final stage, we added new features such as the Deployment screen, the ability to start a process with variables and also completing tasks with simple variables.
From my side, I can say that I learned a lot, the experience was very rewarding, and I would like to encourage  other students in the world to participate in this program. You will learn a lot by working on any open source project.
My  idea is to continue collaborating with the project, keep improving it, adding new features, etc., 
To close this post, I uploaded a video showing the features and improvements that we have had done with salaboy during the program.

Summing up

This was a great year for the program and in my opinion the end results were exactly what the program was designed for:
  • Students getting involved in open source communities
  • Contributing valuable code and research
  • The Student learned real life tools and technologies
Hopefully next year one or more students can participate in the program and contribute to jBPM and Drools!