Monday, September 29, 2014

4 Exciting Resources From BPM Openhouse 2014

This week was the kickoff of the BPM Open House event online.

While I posted earlier that there were a number of reasons to attend, the biggest was to enjoy the overview and live demo given of JBoss BPM Suite on both local and bpmPaaS on OpenShift.

Before we give you the promised resources, a short recap of the event and our sessions.

We delivered our session live before a worldwide audience and opened with the following by Luis Cortes.

Improve your organization’s capability for faster growth and change with BPM, Rules and Events

BPM is no longer only about improving efficiency and productivity. According to leading analysts, 85% of organizations report that their primary objective for BPM is achieving faster growth and improved capabilities for change. Meanwhile, where once traditional BPM systems were too expensive and too complex for mid-sized businesses to setup and use now because of cloud computing BPM is becoming more accessible to a much larger audience.

So how can Business Process Management help your business quickly adapt to changing business requirements?

Join this session to:

  • Hear how a leading consumer goods manufacturer uses Red Hat BPM to manage the process of launching new products increasing sales of new product by 18% and decreasing the time to market from 15 to 9 weeks
  • Understand how you can use Business Process Management, Rules and Events to support business growth and fuel your company’s performance
  • Explore general trends on why companies from all sectors are embracing and getting results from BPM



There was then a live demo session where I walked through the various aspects of a financial project showcasing rules, events and BPM. Finally I showcased the same project in bpmPaaS, a cloud deployed JBoss BPM Suite. It was all based on the following outline.

Red Hat JBoss BPM Suite - Building flexible business solutions for changing markets

Looking for improved business agility, operational efficiency and time to market? This demonstration, focusing on a loan origination scenario, will take you through how you can quickly model, simulate, test, deploy and improve a working example using JBoss BPM Suite’s web-based tools. JBoss BPM Suite is an open source business process and decision management platform that enables users to capture business policies and procedures, accelerate application development and automate business operations across physical, virtual, mobile and cloud environments.


This demonstration will explore the following features:
  • Graphical process modeler
  • Guided rule editors
  • Process simulator
  • Forms Designer
  • Interactive business dashboard




We promised four resources that were not to be missed at the BPM Openhouse.

  1. Free access to session slides
  2. Unlimited access to Mortgage BPM project
  3. Open use of free Cloud instances of JBoss BPM Suite on OpenShift
  4. Bonus usage of free Cloud instances of JBoss BRMS on OpenShift

Enjoy!

Friday, September 26, 2014

2 Sessions To Challenge You at JavaLand 2015

There is a new and interesting Java based conference that is gaining in popularity rather quickly.

It is called JavaLand and in 2015 it will be hosted on March 24-25th in Phantasialand, a theme park with great facilities located in Germany.

I am interested in bringing to you a full immersion experience with hands on workshops for xPaaS, rules, events and BPM. We will build all things cloudy and BPM enabled if these submissions are accepted.

Java island?
You have to admit, the location is pretty special so hope to join everyone with the following lab based workshops.

Mastering xPaaS - get down and dirty in the OpenShift Cloud

Ever wondered about all the new Cloud offerings out there? What is a PaaS? What is this thing Garner keeps calling xPaaS? How can I as a beginner get started in a few hours?

Whether your business is running on applications based on Java EE6, PHP or Ruby, the cloud is turning out to be the perfect environment for developing your business. There are plenty of clouds and platform-as-a-services to choose from, but where to start?

Join us for three action-packed hours of power where we'll show you how to deploy your existing application written in the language of your choice - Java, Ruby, PHP, Perl or Python, with the project of your choice - jBPM, Ceylon, Switchyard, Drools Planner, Aerogear, GateIn, Drools (Rules / BPM) and more deployed into the OpenShift PaaS in just minutes. All this and without having to rewrite your app to get it to work the way the cloud provider thinks your app should work.


If you want to learn about xPaaS and see how investing just a few hours of your time can change everything you thought you knew about putting your business applications in the cloud, this session is for you!


Do It Yourself Adventure - Add Rules & BPM To Your Toolbox

Ready to add something new to your development toolbox?

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, events and BPM to create a real life project of your choosing. Choose from an online web shopping cart experience or an HR employee awards approval process, it's all up to you.

This is a hands on session that takes you from zero to a fully working project based on JBoss open source software. An extra bonus will be an option to run your project on a real life PaaS experience as provided by OpenShift. No time like the present to accelerate your projects into the Cloud!

No expertise in rules or processes is required, you will be guided by the speaker and be sent homeward ready to apply what you have learned in your own projects.


Look forward to seeing you all next year!

Tuesday, September 23, 2014

How to solve impossible business resource planning problems

A fantastic webinar is being hosted this week on JBoss Business Resource Optimizer, a tool used to ease the planning of your business resources.

The tour will be given by none other than Geoffrey De Smet, senior software engineer and OptaPlanner community project lead at Red Hat together with Phil Simpson, principal product marketing manager at Red Hat.

Geoffrey has vast experience at modeling, solving, creating and executing optimization tooling for these complex problems. You don't want to miss a chance to hear him expound on the various aspects and challenges that they are able to meet for your business.

Be sure to register before the event, to be held on Wednesday, 24 Sep 2014 at 11:00 ET (11AM ET) / 17:00 CET (Paris).

Webinar abstract

The world is full of planning problems—scheduling employee shifts, assigning delivery cars to routes, scheduling classrooms for course exams, and assigning manufacturing tasks to machines—just to name a few. Each of these problems can have dozens, or even hundreds, of interconnected constraints.

Solving such problems optimally is key to your business success. The technology and knowledge to do so has been available almost exclusively to large enterprises. Until now.

Powerful—yet accessible and easy to use—tools are now available to help any size enterprise optimize business resource planning.

Join us for this webinar to learn:

  • Basic planning concepts.
  • When to choose heuristic or metaheuristic optimization algorithms.
  • How to overcome scalability challenges.
  • How to quickly solve a wide range of common planning problems using the OptaPlanner planning engine and advanced rules engine functionality in Red Hat JBoss BRMS.

Saturday, September 20, 2014

3 Essential Ways To Start Your JBoss BPM Process

This episode of tips and tricks will help you to understand the best way to initiate your process instances for your needs.

Planning your projects might include process projects, but have you thought about the various ways that you can initiate your process?

Maybe you have JBoss BPM Suite running locally in your architecture, maybe you have it running in the Cloud, but wherever it is you will still need to make an informed choice about how to initiate a process.

We will cover here three essential ways you can best start a JBoss BPM process:
  1. UI dashboard
  2. RestAPI
  3. Build & Deploy button top right.
  4. client application (API)

BPM Suite UI

In the interest of completeness we have to mention the ability to start a process instance exists in the form of a button within JBoss BPM Suite dashboard tooling.

When logged into JBoss BPM Suite and you have finished project development, your BPM project can then be built and deployed as follows.

AUTHORING -> PROJECT AUTHORING -> TOOLS -> PROJECT EDITOR -> BUILD&DEPLOY (button)

The next step is to start a process instance in the process management perspective in one of two ways.

1. PROCESS MANAGEMENT -> PROCESS DEFINITIONS -> start-icon

 2. PROCESS MANAGEMENT -> PROCESS DEFINITIONS -> magnifying-glass-icon -> in DETAILS panel -> NEW INSTANCE (button)

Process definitions has start icon in right corner.
Both of these methods will result in a process instance being started, popping up a start form if data is to be submitted to the BPM process.


RestAPI

Assuming you are going to be calling for a start of your BPM process after deployment from various possible locations we wanted to show you how these might be easily integrated.

Details view of process definition has 'New Instance' button.
It does not matter if you are starting a process from a web application, a mobile application or creating backend services for your enterprise to use as a starting point for processes. The exposed RestAPI provides the perfect way to trigger your BPM process and can be show in the following code example.

This example is a very simple Rest client that, for clarity, will be embedding the various variables one might pass to such a client directly into the example code. There are no variables passed to the process being started, for that we will provide a more complete example in the section covering a client application.

It sends a start process command and expects no feedback from the Customer Evaluation BPM process being called, as it is a Straight Through Process (STP).

public class RestClientSimple {
    private static final String BASE_URL = "http://localhost:8080/business-central/rest/";
    private static final String AUTH_URL = "http://localhost:8080/business-central/org.kie.workbench.KIEWebapp/j_security_check";
    private static final String DEPLOYMENT_ID = "customer:evaluation:1.0";
    private static final String PROCESS_DEF_ID = "customer.evaluation";
    
    private static String username = "erics";
    private static String password = "bpmsuite";
    private static AuthenticationType type = AuthenticationType.FORM_BASED;

    public static void main(String[] args) throws Exception {

     System.out.println("Starting process instance: " + DEPLOYMENT_ID);
        System.out.println();
        
     // start a process instance with no variables.
        startProcess();

        System.out.println();
     System.out.println("Completed process instance: " + DEPLOYMENT_ID);
    }

    /**
     * Start a process using the rest api start call, no map variables passed.
     * 
     * @throws Exception
     */
   public static void startProcess() throws Exception {
        String newInstanceUrl = BASE_URL + "runtime/" + DEPLOYMENT_ID + "/process/" + PROCESS_DEF_ID + "/start";
        String dataFromService = getDataFromService(newInstanceUrl, "POST");
        System.out.println("newInstanceUrl:["+newInstanceUrl+"]");
        System.out.println("--------");
        System.out.println(dataFromService);
        System.out.println("--------");
    }

<...SNIPPED MORE CODE...>
}

The basics here are the setup of the business central URL to point to the start RestAPI call. In the main method one finds a method call to startProcess() which builds the RestAPI URL and captures the data reply sent from JBoss BPM Suite.

To see the details of how that is accomplished, please refer to the class in its entirety within the JBoss BPM Suite and JBoss Fuse Integration Demo project.

Intermezzo on testing

An easy way to test your process once it has been built and deployed is to use curl to push a request to the process via the RestAPI. Such a request looks like the following, first in generic form and then a real run through the same Customer Evaluation project as used in the previous example.

The generic RestAPI call and proper authentication request is done in curl as follows:

$ curl -X POST -H 'Accept: application/json' -uerics 'http://localhost:8080/business-central/rest/runtime/customer:evaluation:1.1/process/customer.evaluation/start?map_par1=var1&map_par2=var2'

For the Customer Evaluation process a full cycle of using curl to call the start process, authenticating our user and receiving a response from JBoss BPM Suite should provide the following output.

$ curl -X POST -H 'Accept: application/json' -uerics 'http://localhost:8080/business-central/rest/runtime/customer:evaluation:1.1/process/customer.evaluation/start?map_employee=erics'

Enter host password for user 'erics':  bpmsuite1!

{"status":"SUCCESS","url":"http://localhost:8080/business-central/rest/runtime/customer:evaluation:1.1/process/customer.evaluation/start?map_employee=erics","index":null,"commandName":null,"processId":"customer.evaluation","id":3,"state":2,"eventTypes":[]}

Results of our testing with curl.
We see the process instances complete in the process instance perspectives as shown.

Client application

The third and final way to start your JBoss BPM Suite process instances is more in line with injecting a bunch of pre-defined submissions to populate both the reporting history and could be based on historical data.

The example shown here is available in most demo projects we provide but is taken from the Mortgage Demo project.

This demo client is using static lines of data to be injected into the process one at a time. With a few minor adjustments one could pull in historical data from an existing data source and inject as many processes as desired in this format. It also is a nice way to stress test your process projects.

We will skip the setup of the session and process details as these have been shown above, but provide instead a link to the entire demo client class and leave these details for the reader to pursue.

Here we will just focus on how the individual start process calls will look.

public static void populateSamples(String userId, String password, String applicationContext, String deploymentId) {

   RuntimeEngine runtimeEngine = getRuntimeEngine( applicationContext, deploymentId, userId, password );
   KieSession kieSession = runtimeEngine.getKieSession();
   Map processVariables;

   //qualify with very low interest rate, great credit, non-jumbo loan
   processVariables = getProcessArgs( "Amy", "12301 Wilshire", 333224449, 100000, 500000, 100000, 30 );
   kieSession.startProcess( "com.redhat.bpms.examples.mortgage.MortgageApplication", processVariables );

}

As you can see the last line is where the individual mortgage submission is pushed to JBoss BPM Suite. If you examine the rest of the class you will find multiple entries being started one after another.

We hope you now have a good understanding of the ways you can initiate a process and choose the one that best suits your project needs.


Wednesday, September 17, 2014

How to setup custom remote deployment repositories for JBoss BPM Suite

In this article we wanted to share another configuration property that can provide surprising help when setting up your JBoss BPM Suite.

Previously we outlined a basic set of configuration properties to provide you with a few tricks when installing your own JBoss BRMS or JBoss BPM Suite products.

As the JBoss BPM Suite is a super set, including full JBoss BRMS functionality, the rest of this article will refer only to JBoss BPM Suite but apply to both products.

In this article we will show you how to modify your JBoss EAP container configuration to point the products at a custom deployment repository by adjusting a single configuration property.

Maven repository

The default setup is that the products will look for your maven setting in the default settings.xml as found set in the M2_HOME variable or in the users home directory at .m2/settings.xml.

The following system property can be added to JBoss EAP standalone.xml configuration file to point to any file containing your custom settings.
  • kie.maven.settings.custom
    • Location of the maven configuration file where it can find it's settings.
    • Default: the M2_HOME/conf/settings.xml or users home directory .m2/settings.xml
It should also be mentioned that by taking control of the settings for your remote deployment repository you also now have control over the (remote) repositories from which you pull your dependencies. For example,  we can now point to repositories within your enterprise to provide JBoss BPM Suite with existing data models.

Example usage in JBoss EAP

When initially setting up the product for use on JBoss EAP containers, one can adjust configuration with the help of system properties.

Below we show how to configure an installation to point to our custom maven deployment repository by using a custom settings file we will call bpmsuite-settings.xml

<!-- Configuration property found in standalone.xml -->
<property name="kie.maven.settings.custom" value="${user.home}/.m2/bpmsuite-settings.xml" />

We hope this helps you with configuring your own custom deployment repositories and enables you to tie into existing continuous integration infrastructures that might exist in your organization.

Friday, September 12, 2014

Catch Up on East Coast Tour You Might Have Missed Last Week (Video)

Previously I mentioned that this week I would be on an East Coast tour with JBoss BRMS & BPM Suite.

It started at the Boston JUG where due to a mix up I ended up showing up about 40 mins late, but this did not deter this fine group of Javan's, who enjoyed pizza until the show could start. With a minimum of fuss we kicked it off and powered through more than an hour of JBoss based rules, events and BPM materials that they were able to take home and work through at their own pace.
Hands on labs available online

The materials are all available online as the labs are constructed to be hands on and easy to follow without assistance.

The sessions cover both local installations and provide the necessary information to get started on your very own xPaaS installation of bpmPaaS on OpenShift too.

What more could you want?

A few questions at the end and some great follow up discussions on the front steps of the building around ongoing projects and challenges that we brainstormed a bit on before heading home into the night.
Rules, events and BPM

The day after we were off to Washington DC where the DCJBug had invited us for this hands on rules, events and BPM session.

The venue was well located near the airport and after everyone arrived, enjoyed the pizza and got settled we kicked of roughly a 90 minute session that they captured on video.

Some of the attendees were remote across the US so it was played out live to all these locations and you can enjoy the session now too!



Fun was had by all and there was a lot of enthusiasm around the ability to get started from no knowledge of the technology and build something real by the end while learning about these products. The online hosted hands on labs are available for your pleasure at any time.



Enjoy!

Monday, September 8, 2014

The Essential Steps to Run the BPM HR Employee Rewards Process

There is nothing like seeing the results of a good project come to the screen when you run it the first time.

This is also the case for those of you that have been following along with the online BPM workshop series that has been published here over the last few months.

With the final week and lab completed you are ready to build, deploy and run through the HR Employee Rewards process to see how it all looks.

In case you missed this series, we proved some of the links to get you started.

The first series of labs (1-10) focuses on JBoss BRMS and building rules, events, and ruleflow artifacts to launch your very own online retail Cool Store.

The second series of labs (11-17) puts you through the paces of creating an HR Employee Rewards process.

Series Table of Contents:

  1. The introduction and installation of JBoss BRMS 
  2. Creating a new project
  3. Creating a domain model
  4. Creating a Domain Specific Language (DSL)
  5. Creating Guided Rules
  6. Creating Technical Rules (DRL)
  7. Creating Guided Decision Tables
  8. Create RuleFlow Process
  9. Create Test Scenarios
  10. Running the Cool Store
  11. Installing JBoss BPM Suite
  12. Creating Rewards Project
  13. Create Domain Model
  14. Create Rewards Process
  15. Complete Process Details
  16. Creating User Task Forms
  17. Running Rewards Demo

Now that you have run through the results yourself in the final lab 17, we wanted to provide a link to a video run through of this project:



We hope you enjoy this video.

Friday, September 5, 2014

Red Hat JBoss BPM Suite - Online Workshop Building a Rewards Demo (Lab 17 Running Rewards Project)

We are back with this weeks episode in the JBoss Business Rules Management System (BRMS) & Business Process Management (BPM) Suite online workshop series.

In this workshop we will be introducing you to the possibilities that abound for your business when leveraging these two new and exciting products.

Each week we will push out the next installment of this workshop that will lead you through building an employee rewards approval application, leveraging a business process with human tasks.

This project will be available as a completed project called the Rewards Demo, but we thought it would be interesting to help you build this human resource application from scratch.

The second half of the workshop will be taking you through the same type of exercise, but with the JBoss BPM Suite, where you will put together an application that leverages a process, leverages human tasks, allows you to design your own forms, and much more.

Last week we created the necessary user task forms.
Running rewards project

This week we run our completed rewards project and examine the BAM dashboard reporting.

The weeks following will feed you a new set of exercises to help you to the next stage of development as you watch your very own BPM project march towards completion.

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 not need to be a Java developer, as this workshop focuses on only the online product web dashboard experience as an analyst would interact with the product. The only technical deviation from this will be the initial installation of the product, but we have detailed instructions and it is a three step process that should not take you more than a few minutes.

So what are you waiting for?

Get started running the rewards project:



If you missed previous episodes of this workshop, you can backtrack to catch up.

Series Table of Contents:
  1. The introduction and installation of JBoss BRMS 
  2. Creating a new project
  3. Creating a domain model
  4. Creating a Domain Specific Language (DSL)
  5. Creating Guided Rules
  6. Creating Technical Rules (DRL)
  7. Creating Guided Decision Tables
  8. Create RuleFlow Process
  9. Create Test Scenarios
  10. Running the Cool Store
  11. Installing JBoss BPM Suite
  12. Creating Rewards Project
  13. Create Domain Model
  14. Create Rewards Process
  15. Complete Process Details
  16. Creating User Task Forms
  17. Running Rewards Demo
  18. Automated Task Reassignment
Be sure to keep an eye out for next weeks release of the following article which will bring you a step closer to completing your very own BPM project.

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

Thursday, September 4, 2014

A Night of Hands On Rules, Events and BPM with the Peru JUG

Yesterday evening in Peru timezone and middle of the wee hours of the morning for me here in Europe, we held a BPM workshop online for the Peru JUG.

The group set up a hangout and we talked rules, events and BPM tooling for around two hours. I took them through the following topics over the course of the event:


It was fun to interact with this group as they were full of questions around the strengths of the open source rules, events and BPM products. You can watch the recording if you missed it here:



This is the second continent where we have toured with our online BPM workshop series, next week we take it on the road on the east coast of North America.

If you would like to have this workshop series stop in at your local event, just let me know as I am happy to bring rules, events and BPM to your area.

Hope to see you soon!

Tuesday, September 2, 2014

The Most Popular Way to Get Started Integrating BPM with Apache Camel

This week we bring you a new demo project to highlight the integration possibilities between Red Hat JBoss BPM Suite and Red Hat JBoss Fuse products.

These products are used to get you started integrating your BPM projects with your Apache Camel architecture in minutes.

This initial announcement provides an automated installation (repeatable) in minutes where you get JBoss BPM Suite running on an instance of JBoss EAP and a separate instance of JBoss Fuse in its very own Karaf container.

There are plans to expand this demo project with various integration scenarios or use cases, but for now we start with just a single story around using a JBoss Fuse camel route to interact with a rules and process project deployed onto JBoss BPM Suite.

Background

External BPM customer evaluation process
This demo is brought to you in part by our very own Christina Lin who is the JBoss Technology Evangelist that focuses on JBoss Fuse & messaging products. There will be more expansion and if you have a use case you would like to see then just let us know.

The project can be found on github and has documentation to get you up and running in minutes.

Demo details

Upon starting the server you will find a JBoss BPM Suite setup with the Customer Evaluation project ready for you to inspect, build and deploy for use by the JBoss Fuse camel route we will deploy.

A new container in JBoss Fuse
The JBoss Fuse component of this demo consists of setting up a new container to deploy our camel route into, where we then watch messages get processed live in the management console as we push them into the waiting queue. Each message will trigger an external call out to the deployed BPM process to evaluate our customer.

Installing and running

The following steps will get you up and running in a matter of minutes with this fully automated and repeatable demo:
  1. Camel route with visual message count
    Download and unzip.
  2. Add products to installs directory.
  3. Run 'init.sh' or 'init.bat'.
  4. Start the JBoss BPM Suite server, login, build and deploy JBoss BPM Suite process project at http://localhost:8080/business-central (u:erics/p:bpmsuite).
  5. Add fabric server passwords for Maven Plugin to your ~/.m2/settings.xml file the fabric server's user and password so that the maven plugin can login to the fabric.
     <!-- Login for fabric repo -->
    <servers>
      <server>
        <id>fabric8.upload.repo</id>
        <username>admin</username>
        <password>admin</password>
      </server> 
    </servers> 
    
  6. Start Fuse Server and start up fabric in fuse console:
     fabric:create --wait-for-provisioning 
    
  7. Deploy simple route from projects/brms-fuse-integration/simpleRoute:
     mvn fabric8:deploy
    
  8. Login to Fuse management console at: http://localhost:8181 (u:admin/p:admin).
  9. Connect to root container with login presented by console (u:admin/p:admin)
  10. Create container name c1 and add BPMSuiteFuse profile (see screenshot below)
  11. Trigger camel route by placing support/data/message.xml files into target/jboss-fuse-6.1.0.redhat-379/instances/c1/src/data folder (rename this message on copy for multiple runs)
  12. Enjoy the demo!
This video walks you through the project in less than 5 minutes:



We hope you enjoy this new demo showcasing JBoss Fuse integration with JBoss BPM Suite.

Monday, September 1, 2014

The 1 Talk You Need To See at Devoxx BE 2014

This years Devoxx BE 2014 will be on November 10th - 14th in Antwerp, Belgium. It is the biggest Java event in Europe and I have been attending, speaking, and helping out for the last six years.

Last year I had a session on OpenShift, but it was too short to get really down and dirty with hands on coding. This year I want to make a different approach and am only submitting hands on labs that give you three hours of fun with the topics covered.

With that in mind I submitted two hands on talks in the labs category, of which one got accepted as a University talk. This will be a three hour lecture style session where I will take you through the hands on material and you can follow along as you see fit.

The session will be scheduled for Monday or Tuesday of the Devoxx week, so watch the schedule for exact times and location or refer back to this article which I will update when more is known.

Mastering xPaaS - get down and dirty in the OpenShift Cloud 

Ever wondered about all the new Cloud offerings out there? What is a PaaS? What is this thing Garner keeps calling xPaaS? How can I as a beginner get started in a few hours?  

Whether your business is running on applications based on Java EE6, PHP or Ruby, the cloud is turning out to be the perfect environment for developing your business. There are plenty of clouds and platform-as-a-services to choose from, but where to start? 

Join us for three action-packed hours of power where we'll show you how to deploy your existing application written in the language of your choice - Java, Ruby, PHP, Perl or Python, with the project of your choice - jBPM, Ceylon, Switchyard, Drools Planner, Aerogear, GateIn, Drools (Rules / BPM) and more deployed into the OpenShift PaaS in just minutes. All this and without having to rewrite your app to get it to work the way the cloud provider thinks your app should work. 

If you want to learn about xPaaS and see how investing just a few hours of your time can change everything you thought you knew about putting your business applications in the cloud, this session is for you!