Friday, February 27, 2015

Insights into performance & sizing Business Resource Planner (part I)

(Article guest authored together with Maggie Hu, Senior Middleware Solutions Architect at Red Hat in North America and Geoffrey de Smet, Senior Software Engineer at Red Hat in Europe)

Two of the biggest questions anyone has when looking at using or adding a new component into an existing solution architecture is that of performance and sizing.

The first question is always hard to correlate from a document produced by a product vendor in comparison to your own specific solution or problem space, which makes almost any look at performance measurements an exercise in "guesstimation." After all, the producer of the performance numbers is using a setup or implementation that tends to deviate just enough from your own to raise a bit of doubt in the direct application of the results.

The second question follows closely with the first, as it is often performance that leads to a sizing estimation. One can often improve the performance by increasing resources in the deployment infrastructure and base hardware improvements can go a long ways to improving your solutions performance without changing a single line of code.

This article will tackle both questions in a linear fashion, presenting an example solution scoping of the underlying hardware as a baseline with several use cases to try and give you the widest possible coverage of numbers to evaluate for your sizing needs.

Business Resource Planner is part
of both JBoss BPM Suite and
JBoss BRMS products.
It is possible for you to employ the same techniques on your own Business Resource Planner project solutions to gather even more accurate feedback as to your performance and sizing needs.

Introduction

Business Resource Planner is a lightweight, embeddable constraint satisfaction engine which optimizes resource and planning problems.

This component can be found as part of the Red Hat JBoss BRMS and Red Hat JBoss BPM Suite products. It is based on the upstream project, OptaPlanner, and is currently available as a technical preview. In the follow release of these products it will be given fully supported status, so we thought it was perfect timing to introduce you to some performance and sizing information.

An overview and further details of the product can be found on Red Hat’s Customer Portal - Business Resource Planner Guide.

This article will set the stage by outlining the three example use cases to be used for performance and sizing runs and explain our setup to evaluate as a baseline.

In follow on articles in this series we will show you how we set all this up and then detail some of the terminology involved in these types of solutions. It will entail using the Business Resource Planner component along with its benchmark tooling to present each case results.

Case examples

The following three examples have been chosen from the set of documented examples so that you have a good explanation around each one. You can explore these and quite a few more on the Customer Portal.

In each example below we will detail what the problem is, the domain size and how it is modeled along with the data sets used.


1. Cloud balancing

Suppose your company owns a number of cloud computers and needs to run a number of processes on those computers. The problem to be solved is how to assign each process to a computer under the given constraints to minimize the total maintenance cost.

The data sets to be run in our benchmark will be:
  • 100 computers with 300 processors
  • 400 computers with 1200 processors
A simple to understand problem with just one entity, one variable and data sets that scale up nicely to show both performance and sizing.

2. Curriculum course scheduling

Need to schedule each lecture into a time slot and into a room. The following constraints apply to this use case.


Hard
A hard constraint can not be broken or the solution found is not feasible.

  • Teacher conflict: A teacher must not have 2 lectures in the same period.
  • Curriculum conflict: A curriculum must not have 2 lectures in the same period.
  • Room occupancy: 2 lectures must not be in the same room in the same period.
  • Unavailable period (specified per dataset): A specific lecture must not be assigned to a specific period.

Soft
Soft constraints can be broken but have a penalty in a solution, making them undesirable but sometimes unavoidable.

  • Room capacity: A room's capacity should not be less than the number of students in its lecture.
  • Minimum working days: Lectures of the same course should be spread into a minimum number of days.
  • Curriculum compactness: Lectures belonging to the same curriculum should be adjacent to each other (so in consecutive periods).
  • Room stability: Lectures of the same course should be assigned the same room.

A more complex problems space with a single entity and two variables, the data sets run in this benchmark are found within the example project:

  • comp01.ctt
  • comp02.ctt

3. Nurse rostering

An advanced example case where we are solving a roster where for each shift, we assign a nurse from the staff to work that shift. The following constraints apply to this use case.

There are three types of nurses and eight nurses to be scheduled:
  • Maternity nurses
    • Ann, Beth, Cory
  • Emergency nurses
    • Dan, Elin, Greg
  • Basic nurses
    • Hue, Ilse
Hard
A hard constraint can not be broken or the solution found is not feasible.
  • Shifts: all required shifts must be assigned.
  • Amount: only one shift per day per nurse.
Soft
Soft constraints can be broken but have a penalty in a solution, making them undesirable but sometimes unavoidable.
  • Ann: maximum consecutive working days is 5
  • Beth: minimum consecutive free days is 2
  • Carla: has a days-off wish for Sundays
  • All: after night shift sequence a nurse gets 2 days-off
  • and a few more... 
This is another complex solution space with a single entity and single variable, but has variable data set types with time limits being assigned for finding a solution set (sprint as in seconds, medium as in minutes and long as in hours). We will be using the first two types as found within the example project:
  • sprint_01.xml
  • medium01.xml

The bench

The hardware and software used to run this performance and sizing benchmark exercise are listed for your reference.
  • Processor: Intel Core i7
    • Speed: 2.3 GHz
    • Number: 1
    • Cores: 4
    • L2 Cache (per Core): 256 KB
    • L3 Cache: 6 MB
  • Memory: 16 GB
  • OS: osX 10.10.2
  • Java (JDK): 1.7.0_71

In the following articles in this series we will walk through the setup and start running the above use cases and present our results.

Tuesday, February 24, 2015

Slides from webinar - How to excite the travel industry with a BPM story

As mentioned previously, today I presented a JBoss BPM Suite based webinar to show you everything you would want to know about our JBoss BPM Travel Agency solution.

The session was well attended and if you have any questions you will be presented a pop-up in the slides below from the session to contact me directly.

Happy to answer any questions you might have or to listen to any comments or feedback you might have, so don't be shy.

How to excite the travel industry with a BPM story

One of the most interesting branches for talking about processes is the travel industry. 

All across the Internet you will find references to solutions, offerings, and products that try to align with the travel industry business process management (BPM) solutions. Whether you are talking to an airline, a baggage handler, a bookings agency or anyone in between, they all have one thing in common. They are dealing with complex business processes that often need to combine rules, events, resource planning, and processes.

In this webinar, we’ll take a deep look into a sample solution for this industry, simulating a travel agency booking system with:

  • Service integration
  • Multiple tasks
  • Complex BPM elements
  • Rule-based fraud detection for payment processing
You will leave with an advanced overview of the capabilities of Red Hat JBoss BPM Suite and can dive in deeper with the showcased project, the JBoss BPM Travel Agency.



As always, thank you for your time and interest.



Japanese translation (日本語訳)

Monday, February 23, 2015

Business Resource Planner Online Workshop (Lab 1 & 2)

Today we kick off a brand new free online workshop centered around the Business Resource Planner.

This is a new component available as a tech preview in JBoss Business Rules Management System (BRMS) & Business Process Management (BPM) Suite products.

It will soon be fully supported so it's a great time to start providing some structured and real life examples to get you up and running with a minimum of fuss.

In this workshop we will be introducing you to the possibilities that abound for your business when leveraging the Business Resource Planner for all you complex resourcing and planning tasks.

Business Resource Planner component
is available in both
JBoss BRMS & JBoss BPM Suite products.
Each installment of this workshop will lead you through the various aspects based on solutions for a wide array of problems that can be tackled simply and effectively with the Business Resource
Planner.

This week we kick it off with an introduction to the products, then get you started by installing the Business Resource Planner (not provided, but available online), and setting up the JBoss Developer Studio IDE.

The upcoming articles will supply new exercises to help you better understand the capabilities and strengths that using a planning engine used together with a rules engine can provide.

All of the workshop materials will be hosted online with the help of OpenShift, so all you need is a browser to follow along.

You do need a basic understanding of Java, as this workshop will be run using an IDE and code examples of planning solutions.

So what are you waiting for?

The workshop starts here:



We start with the introduction to the two products, JBoss BRMS & JBoss BPM Suite. We will present a simple overview of the capabilities and show the Business Resource Planner component in the overall product architectures:



Then we will guide you through the installation of Business Resource Planner project:



At which time you are ready for the last lab of this article, installing JBoss Developer Studio and tooling:



Be sure to keep an eye out here for the next article in this series in which our goal will be to arrange a planning for a department of angry nurses so that everyone is happy with their work roster.

Can it be done?

Series Table of Contents:
  1. The introduction and installation of Business Resource Planner project
  2. Installing JBoss Developer Studio and tooling.
  3. Customizing score functions - Schedule angry nurses (coming soon...)

Note: if for some reason the online materials are not available, feel free to contact me.


Wednesday, February 18, 2015

Kicking Off a Nordics Rules, Events, Planning & BPM Tour

Aarhus & Copenhagen JBug's in March 2013
The new year will start with a few stops in the Nordics as I bring you rules, events, planning and BPM all rolled into a single hands on workshop series.

In March I am invited to speak for a partner conference in Denmark and will be hosting two workshops for the local JBug.

The first will be in Aarhus and the second in Copenhagen, so don't forget to RSVP on the site invitations.

(click slide to preview workshop)

Rule the World - Practical Rules & BPM Development

With this workshop you get a chance to do just that, unlock the power of business rules engines and business processing for your development projects. We will take you through it all step-by-step, building rules, domain specific languages, using the wizards and editors that the JBoss BRMS & BPM Suite provide to create your own rules or process project. You have a choice in this workshop between an online web shop project or an HR employee rewards process project.

This is a hands on experience that takes you from nothing to a fully working rules or process experience with JBoss open source software. No experience in rules or processes is required, you will be guided by the experienced speaker and go home ready to apply what you have learned in your own projects. (Depending on connectivity, potential to work on a bpmPaaS instance where you create your workshop project on an OpenShift hosted product.)

Host and presenter will be Eric D. Schabell


See you there!

Monday, February 16, 2015

Calling all Nordic Partners for JBoss BPM Masterclass

Next month, after touring Denmark for a couple of partner events and JBug workshops, we will be landing in Stockholm, Sweden for some more JBoss BPM fun!

March 12-13th we willl be spending two days digging into the details of JBoss BRMS & JBoss BPM Suite products with partners that want to get hands on with these flexible technologies.

To join us for two days of getting down and dirty (be sure to bring your laptop), you will need to register here before Wednesday, 6th March midnight:

JBoss BPM Masterclass

The exact details are here below and can be found on the registration site along with a detailed agenda.

Red Hat JBoss BPM Suite Masterclass

We invite you to spend two days with Red Hat expert and learn about JBoss BPM Suite. 

This two-day master class will prime you with the knowledge you need to understand the capabilities, components and basic concepts involved as you start leveraging process and rule-driven solutions. 
(click slide to view masterclass)


We will focus on business process management (BPM) concepts, explain how to capture your enterprise's logic in business rules (BRMS & BPMS), and cover what complex events can bring to your customer experiences. All attendees will be left with an understanding of how rules and events are handled in a project , where to position business logic and understand the value BPM can bring to their organization.

Host and presenter will be Eric D. Schabell
Register and hope to see you there!

Thursday, February 12, 2015

Webinar - How to Excite the Travel Industry with a BPM Story

We have talked about how much fun this can be, we have showed you the videos of how it works and we have showcased it in bpmPaaS.

What more can we do with the JBoss BPM Travel Agency?

Well I am glad you asked, as we will be hosting a live webinar where I will walk you through this fantastic example of how to leverage rules, services, user tasks and more in a travel industry use case.

We will be live on Tuesday, February 24th at 08:00 PT / 11:00 ET / 17:00 CET. Be sure to register online so as not to miss this hour of power where we show you how to excite the travel industry with a fantastic BPM story.

How to excite the travel industry with a BPM story

One of the most interesting branches for talking about processes is the travel industry. 

All across the Internet you will find references to solutions, offerings, and products that try to align with the travel industry business process management (BPM) solutions. Whether you are talking to an airline, a baggage handler, a bookings agency or anyone in between, they all have one thing in common. They are dealing with complex business processes that often need to combine rules, events, resource planning, and processes.

In this webinar, we’ll take a deep look into a sample solution for this industry, simulating a travel agency booking system with:

  • Service integration
  • Multiple tasks
  • Complex BPM elements
  • Rule-based fraud detection for payment processing
You will leave with an advanced overview of the capabilities of Red Hat JBoss BPM Suite and can dive in deeper with the showcased project, the JBoss BPM Travel Agency.

See you there?


Tuesday, February 10, 2015

JBoss Technology Evangelist - How to create simple, consistent, repeatable demo projects

This is a series of article that give you a glimpse behind the scenes of how JBoss Technology Evangelists do what they do.

It is not a blueprint, but more of a series of tips and theories that have been accumulated through years of telling the JBoss stories we tell.

This first article will tackle the mystery of how JBoss Technology Evangelists are able to consistently create working, easy to use and repeatable demo projects.

When standing on a stage or doing a live demo in an online session, it all looks so easy but of course there is a lot of work that goes on behind the scenes to get a project into that perfect looking state.

It is not only the story you want to tell, but the technology in a project that must support that story without failing. As we often have to setup different JBoss technologies it became a necessity to tune some sort of generic framework or template to put these demo project into.

Over the last three years the goal has always been guided by three principles:
  • KISS (keep it simple stupid)
  • Consistency
  • Repeatability
These stem from our supporting anyone who wants to explore and get started with a JBoss technology. Note that while these are listed in an order that does have some significance as to what is most important, they all have to balance against each other.

If one must be weighed more heavily than any when using technology, it is KISS, so you will find that this is followed almost religiously when deciding how to solve anything within this demo project template.

Simple

They need to have a simple setup taking almost no effort to get them started, or more realistic, the least amount of effort as possible.

Each project requires but three steps to get going:
  1. Download and unzip the project.
  2. Add products to installs directory in the project.
  3. Run init.sh (for Unix) or init.bat (for Windows) to install project.

That is it, just watch the install output to continue with the project as you see fit.

This setup also relies on the very smallest or basic set of dependencies that are physically possible for unix & windows based systems; Java and Maven, nothing more than that.

It is all about learning what the project in front of you does, so it must be clear and offer the possibility to explore how it was setup, configured and runs. Based on your feedback over the years, full automation is not desired as it takes the project out of the learning sphere for the user.

There is a balance offered when installing a project with auto configuration and setup, but there are still some steps that allow you to pause, consider and explore what has been done.

Consistent

The only way to be able to jump between all the various JBoss technologies and products is to have some consistency in our demo projects. A customer, partner or interested party needs to be able to recognize a simple and clear form of project setup.

This is done with a simple and clear project template structure:
  • docs/
    • project documentation and screenshots.
  • installs/
    • where you place needed JBoss products.
  • projects/
    • sources for services, clients, or other project based code.
  • support/
    • all other configuration, setup or other needed files / utilities.
  • init.{sh|bat}
    • installation scripts to setup project.
That's it, every single time it will look like this.

Repeatable

Nothing is worse than having to provide a demo project and spending a large amount of time on it to only be able to have it run one time. There is often a factor that rushes the completion of a project so that one has little chance to bring some sort of order into it.

This template allows you to develop your project while saving the repeatability of the project. Note that all setup is done in a new directory called target where you can then throw it all away and just setup the project again (with the initial init script).

This is a golden rule, that every demo project it should be repeatable in minutes, if not less.

JBoss demo template project

You have seen amazing demos done by JBoss Technology Evangelists, but you want to create your own awesome demo to convince your friends, team and boss that your project is exactly what the doctor ordered?

This template will provide the tools to setup simple, consistent and easily repeatable demo projects like those found on JBoss Demo Central.

Getting started with this template

  1. Download and unzip.
  2. Run init.sh to populate a project, see REAME files that are generated for how to use:
    $ ./init.sh PROJECTNAME
    
This will fully populate a project directory with all you need to get started. Just add you project code, modify the init.{sh|bat} to your needs and launch your project.

Here is a sample run of when creating a new project:

    $ ./init.sh newproject
    



Now you can start by adding your project sources to the projects directory and modifying the rest as needed.

Stay tuned for more in the JBoss Evangelist series.

Monday, February 9, 2015

Quickest Way into the Clouds with JBoss BPM Travel Agency

In October of last year we brought the latest JBoss BPM Suite demo project into the light, a travel agency process application that got the travel industry excited to automate their booking experience.

This initial release was just the start.

It allowed you to submit a travel request, which was then filled out with services that provided flight and hotel suggestions. Rules were applied to determine the pricing structure, tasks assigned to review and eventually approve the booking.

While it ended there, we did not. Our faithful team of travel developers (Niraj Patal & Sheperd Chengeta) worked on to provide a payment processing sub-process which gave us a new and extended version.

This new payment sub-process not only books the flights and hotels through external services, but also includes rules for fraud detection and several compensation (a BPM term for rolling back the bookings) services.

This project was made available to you for a local installation and with the work submitted by Andrew Block, you also have the option to generate a Docker installation.

We paused for a moment and put together a four part series of videos to show installation, detail the project artifacts, and run through the two use cases this project supports.
One might think that this would be enough, but if you look at our various BPM projects in JBoss Demo Central you would note that most also have the ability to run them on our bpmPaaS (OpenShift).

Say no more, with this article we are happy to announce that you too can run the JBoss BPM Travel Agency in the OpenShift Cloud using our bpmPaaS.

Not only that, it is just one-click* away!

So without further delay, head on over to the JBoss BPM Travel Agency project and use the one-click* button to get your very own copy launched today!

Digital sign coming soon!
(*Note: bpmPaaS requires a medium gear in OpenShift which is available to you with a Bronze level account.)


Friday, February 6, 2015

JBUG Scotland - JBoss BPM workshop on tour (Edinburgh & Glasgow)

In early March of this year I have been invited to bring a JBoss BPM workshop to the local Scotland JBUG's in Edinburgh and Glasgow.

I will be taking the attendees through a workshop that is all about getting hands on, so bring your own laptop, as we will embark on building a rules, events and BPM project of your choice.

You can create the JBoss Cool Store or the JBoss HR Employee Rewards process form scratch.

The entire workshop can be installed locally or you can use it online as it is hosted in the Cloud on OpenShift.

With a bit of interest I will also present some details around using xPaaS or bpmPaaS versions to build your applications in the Cloud.

The schedule is as follows:
Join us for some fun with rules, events and processes.

Rule the World - Practical Rules & BPM Development

With this workshop you get a chance to do just that, unlock the power of business rules engines and business processing for your development projects. We will take you through it all step-by-step, building rules, domain specific languages, using the wizards and editors that the JBoss BRMS & BPM Suite provide to create your own rules or process project. You have a choice in this workshop between an online web shop project or an HR employee rewards process project.

Bring your laptop as this is a hands on experience that takes you from nothing to a fully working rules or process experience with JBoss open source software. No experience in rules or processes is required, you will be guided by the experienced speaker and go home ready to apply what you have learned in your own projects.


Wednesday, February 4, 2015

How to Fly with the JBoss BPM Travel Agency (video 4 of 4)

The initial release of the JBoss BPM Suite Travel Agency got the travel industry excited about booking their next trip, but it was not a full booking experience.

We were missing the payment phase and had a few things more to show you, so just before the holidays last year we gave you the new and extended version.

This included a new payment sub-process, fraud detection, compensation (a BPM term for rolling back the bookings) and a tech preview of a new JSON client.

Well now we are here to present the first of four videos that will walk you through this project, covering these four topics:
So please enjoy this valid booking submission with the JBoss BPM Suite Travel Agency in less than 3 minutes.



Be sure and watch the rest of the series.








Monday, February 2, 2015

vJBug - Hit the ground running with BPM, a starters kit

This months virtual JBoss User Group (vJBug) will be hosting my session on how to get started fast, easy and without delays on using JBoss BPM.

There is a lot of content, a lot of help and it might be that you are looking for the express on-ramp to navigate through the basics for ramping up your JBoss BPM knowledge.

This session is for you then, so join us on 17 Feb 2015 online for this free vJBug session (RSVP here please)!

Hit the ground running with BPM — a starters kit

Looking to design business processes but not sure how to get started? If this is the first you’ve heard of Red Hat JBoss BPM Suite, or you’re anxious to get started with your freshly downloaded JBoss BPM Suite, this webinar’s for you.

Have no fear, the JBoss BPM Suite starter kit will:

  • Provide you with the details, help, and path to rules, events, and process freedom.
  • Show you a quick and easy entry into the world of process design.
  • Walk you through the contents, and what you can achieve, with the JBoss BPM Suite.
  • Start you off with an easy installation.
  • Use a pre-installed project and workshop to take you step-by-step through constructing the project from scratch.
Join us for a grand tour of the JBoss BPM Suite starter kit, and learn how you can hit the ground running as the BPM expert you always wanted to be.