Eric D. Schabell: May 2015

Wednesday, May 27, 2015

Webinar - A Guide to Modern BPM Data Integration

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 Wednesday, June 17th 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 modernize your data integration with BPM solutions.

A Guide to Modern BPM Data Integration

Enterprise data is often critical to providing timely and effective information for any enterprise application, but we struggle to integrate our vital and often diverse sources of information to our applications in a timely and effective manner.

No more.

Whether you are a Data Analyst, Business Analyst or in IT Strategy, this webinar will illustrate how easy it is to integrate disparate data spread across your organization when modeling and automating your business processes with modern BPM tools.

We will take you through an in depth sample solution that simulates a Travel Agency with examples of some of the complexities you will encounter:
Looking to Automate your business?

  • realtime disparate data integration 
  • rule based data validation
  • rule based fraud detection for payment processing
  • service integration
You will receive an advanced overview of the capabilities of both the Red Hat JBoss Data Virtualization, Red Hat JBoss BPM Suite and a sample project with which to evaluate the solution.

See you there?

Monday, May 25, 2015

Red Hat JBoss BPM Suite - Online Workshop Building a Travel Agency (Lab 03 - Create Domain Model)

Welcome to the second series of JBoss Business Process Management (BPM) Suite online workshops.

For the very first ones you can start building the JBoss Cool Store retail online web shop and JBoss HR Employee Rewards process project.

In this workshop we will be introducing you to the possibilities that abound for your business when leveraging this product.

Each article presented here will push out the next installment of this workshop that will lead you through building the JBoss BPM Travel Agency, including installation of the product, designing the domain model, building rules, tasks, forms and integrating services.

If you would like a tour of the JBoss BPM Travel Agency, there is a four part video series to quickly get you up and running.

This project is available as a completed project called the JBoss BPM Travel Agency, but we thought it would be interesting to help you build this application from scratch.

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

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?

The previous article we created a new project for our very own JBoss BPM Travel Agency.

In this article we continue on to creating our domain model:



Be sure to keep an eye out for our next article in which we will bring you a step closer to completing your very own JBoss BPM Travel Agency.
Looking to Automate your business?

Series Table of Contents:
  1. Installing JBoss BPM Suite.
  2. Creating a new project.
  3. Creating a domain model.
  4. Create Data Validation Guided Rules
  5. Creating technical data validation rules. (coming soon...)
  6. and much more....
Note: if for some reason the online materials are not available, feel free to contact me.

Friday, May 22, 2015

Red Hat JBoss BPM Suite - Online Workshop Building a Travel Agency (Lab 02 - Create New Project)

Welcome to the second series of JBoss Business Process Management (BPM) Suite online workshops.

For the very first ones you can start building the JBoss Cool Store retail online web shop and JBoss HR Employee Rewards process project.

In this workshop we will be introducing you to the possibilities that abound for your business when leveraging this product.

Each article presented here will push out the next installment of this workshop that will lead you through building the JBoss BPM Travel Agency, including installation of the product, designing the domain model, building rules, tasks, forms and integrating services.

If you would like a tour of the JBoss BPM Travel Agency, there is a four part video series to quickly get you up and running.

This project is available as a completed project called the JBoss BPM Travel Agency, but we thought it would be interesting to help you build this application from scratch.

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

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?

The previous article we got our hands dirty by installing the JBoss BPM Suite so we could begin construction of our very own JBoss BPM Travel Agency.

In this article we continue on to creating a new project:



Be sure to keep an eye out for our next article in which we will bring you a step closer to completing your very own JBoss BPM Travel Agency.
Looking to Automate your business?

Series Table of Contents:
  1. Installing JBoss BPM Suite.
  2. Creating a new project.
  3. Creating a domain model.
  4. Create Data Validation Guided Rules
  5. Creating technical data validation rules. (coming soon...)
  6. and much more....
Note: if for some reason the online materials are not available, feel free to contact me.

Thursday, May 21, 2015

A Microservices Migration Story with JBoss BPM Travel Agency (video)

Some time ago we launched a rather expansive JBoss Travel Agency demo project to show some of the more interesting feature of JBoss BPM Suite.

We provided a collection of videos that not only show you how to install it, what the various rule and process artifacts are in the project, but we also walk you through the various paths you can take during actual use of the JBoss Travel Agency process.

The project continued to expand over time, adding on not just a bookings process, but also a payment process that included advanced features like compensation (rolling back bookings), integration of traditional web services in service tasks and a credit card fraud detection system.

JBoss Fuse based microservices migration.
We have showcased this project on several online webinars, including together with PEX Processing Network.

What is left you might ask?

We thought long and hard on this before deciding that an interesting idea might be to look at migration of the existing projects web services to microservices based on JBoss Fuse technology.

Nothing like progressing into a modern enterprise architecture, right?

As always we bring you not only a solution, but a reusable demo project you can easily spin up yourself to explore the details around how a JBoss BPM project would integrate with the microservices we migrate from existing classic web services with JBoss Fuse.
Looking to Automate your business?

The project is called the JBoss BPM Suite & JBoss Fuse Travel Agency Integration Demo.

The project installs JBoss BPM Suite 6.1 with the Travel Agency projects rules, process, forms and sub-flow. It then installs JBoss Fuse 6.1.1. and configures in the background the Camel routes, containers and deploys this into FuseFabric.

You can find more details around the JBoss Fuse setup in these articles by Christina Lin.

Here is a tour of the project, how it works and a few runs through the process in less than 10 minutes.



We hope you enjoy this one too and feel free to browse for more at JBoss Demo Central.

Wednesday, May 20, 2015

JBoss BPM Suite Quick Guide - Weight Watching with a Realtime Decision Server

(This article is based on work originally done by Stefano Picozzi, an Architect a Red Hat located in Sydney, Australia.)

Previously we wrote an extensive introduction to the new feature found in JBoss BPM Suite 6.1 called the Realtime Decision Server.

We covered the architecture, the usage and supplied you with a very simple decision table (spreadsheet) based rule set for giving out financial loans.

Rule Execution Server architecture.
This project was then deployed as a Realtime Decision Server for your applications to query where we provide some example RestAPI calls for you to test, leaving the actual integration into your eventual applications as an exercise for the reader.

The project

To make this as easy as possible for you to get started, we have put together a complete and easy to use Weightwatcher Realtime Decision Server demo project.

In this project you will find a step-by-step description that helps you to make use of your very own Realtime Decision Server.

To setup the project you just follow these simple instructions:

  1. Download and unzip.
  2. Add products to installs directory.
  3. Run 'init.sh' or 'init.bat' file.
  4. Start JBoss Server by running ./target/jboss-eap-6.4/bin/standalone.sh
  5. Login to http://localhost:8080/business-central
- login for admin and analyst roles (u:erics / p:jbossbrms1!)

Now you can note if the Realtime Decision Server is running at:


To make use of the Realtime Decision Server you will need a rule based project to deploy and this is a quick outline describing how you will get started.
  • us the provided rule project or create a new project in business central
  • create a model or import existing model
  • create simple rule using the model that you have created
  • build and deploy your project

Realtime Decision Server

DevServer created.
The following outline walks you through the process of deploying your rule project into a rule execution server so that applications can consume the provided RestAPI.

It is based on the Weightwatcher Realtime Decision Server demo project from JBoss Demo Central.
Container creation.
  • select Deploy -> Rule Deployments from business-central 
  • click Register to register your server and key in the following server information
    • Endpoint: http://localhost:8080/kie-server/services/rest/server/
    • Name: DevServer
    • Username:  erics
    • Password: jbossbrms1!
  • click connect, your server should be created
  • click + symbol at right most corner on your server
  • you’ll get a pop-up screen to create container for your rule project
    • Name: container-weightwatchers1.0
    • groupid - artifactId - version
      • you search search business central if you can't remember this information, click select button to import automatically from found item
  • container created for your rule project and exposed as a REST service that can be consumed from your application
  • select the server DevServer and click on Start in the top right corner
Container deployed and started.
You can now access this project to test with any REST client.

In our Weightwatcher Realtime Decision Server demo project we walk you through the Firefox browser RESTClient extension usage, but it is easy enough to replicate with other clients like SoapUI.

You can also view the endpoint as shown in your server which is in my case: 

http://localhost:8080/kie-server/services/rest/server/containers/container-weightwatchers1.0

The output in our case was:

<response type="SUCCESS" msg="Info for container container-weightwatchers1.0">
     <kie-container container-id="container-weightwatchers1.0" status="STARTED">
           <release-id>
               <artifact-id>weightwatchers</artifact-id>
               <group-id>com.redhat.demos</group-id>
               <version>1.0</version>
           </release-id>
           <resolved-release-id>
               <artifact-id>weightwatchers</artifact-id>
               <group-id>com.redhat.demos</group-id>
               <version>1.0</version>
           </resolved-release-id>
           <scanner status="DISPOSED"/>
     </kie-container>
</response>

With a proper XML request you can access the rule packages you expose in this manner from your applications over REST.

Looking to Automate your business?
See the detailed instructions in the Weightwatchers Realtime Decision Server demo project for exactly how to interact with the rules deployed on your server.


(*The Realtime Decision Server can be deployed along with the entire JBoss BPM Suite or with the JBoss BRMS product. While we reference only JBoss BPM Suite in this article, it can be taken to mean either product.)

Monday, May 18, 2015

Red Hat JBoss BPM Suite - Online Workshop Building a Travel Agency (Lab 01 - Install JBoss BPM Suite)

Welcome to the second series of JBoss Business Process Management (BPM) Suite online workshops.

For the very first ones you can start building the JBoss Cool Store retail online web shop and JBoss HR Employee Rewards process project.

In this workshop we will be introducing you to the possibilities that abound for your business when leveraging this product.

Each article presented here will push out the next installment of this workshop that will lead you through building the JBoss BPM Travel Agency, including installation of the product, designing the domain model, building rules, tasks, forms and integrating services.

If you would like a tour of the JBoss BPM Travel Agency, there is a four part video series to quickly get you up and running.

This project is available as a completed project called the JBoss BPM Travel Agency, but we thought it would be interesting to help you build this application from scratch.

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

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?

The previous article we did an introduction to the workshop and a short introduction to rules, events and processes along with the products involved.

In this article we actually start to get our hands dirty by installing the JBoss BPM Suite so we can begin construction of our very own JBoss BPM Travel Agency:



Be sure to keep an eye out for our next article in which we will bring you a step closer to completing your very own JBoss BPM Travel Agency.
Looking to Automate your business?

Series Table of Contents:
  1. Installing JBoss BPM Suite.
  2. Creating a new project.
  3. Creating a domain model.
  4. Create Data Validation Guided Rules
  5. Creating technical data validation rules. (coming soon...)
  6. and much more....
Note: if for some reason the online materials are not available, feel free to contact me.

Friday, May 15, 2015

Ultimate Guide: When To Use Which JBoss Integration Products

Figure 1: Data Integration vs Application Integration
(Article guest authored together with Syed Rasheed, Senior Principal Product Marketing Manager at Red Hat in North America)

One of the prime issues for someone examining their enterprise integration options is the question of how does Data Integration compare to Application Integration. These are two very different aspects in an organization as noted in Figure 1.

There are myriad of integration technologies and information exchange patterns and broadly speaking, integration solution typically falls under into one of two styles.

Application Integration

Also known as Process Integration, it's used for integration of end-to-end business processes that cut across application or functional boundaries where multiple applications need to be orchestrated as part of automation of business transaction. This type of integration usually helps to accelerate development of integrated systems processes solutions.

JBoss Fuse is ideally suited for this type of integration and often complimented by JBoss BPM Suite to add business process automation services.

Data Integration

This is used for accessing data and functions from disparate systems to create a combined and consistent view of core information for use across the organization to gain necessary insights and improve business decisions and operations. This type of integration usually helps to accelerate development of business intelligence systems.

JBoss Data Virtualization is ideally suited for this type of integration.

Interestingly both integration tools, JBoss Data Virtualization and JBoss Fuse, deal with data abstraction, federation, transformation and meta-data. They also feature connectors and service oriented architectures.

Interchangeable?

The burning question is, are they interchangeable?

The answer is no.

The key difference is that in application integration, data is treated as a special type of process step that typically contains a SQL statement to execute against a source. A service end point has a static or fixed service interface for executing a particular piece of business logic within an application.

That logic may retrieve data or it may update data in the course of its execution, but the primary purpose is the access to and integration of the business logic for use in business processes. The artifact created by application integration platform like JBoss Fuse is a service that might contain a query, but it cannot be queried.

This is important.

With data integration we attempt to rationalize, unify and abstract data sources for use by applications and business processes. In that sense, data virtualization platforms can be thought of as residing below application integration platforms in classic architectural block diagrams. They are enabling easier and more efficient data access by the application integration platforms or other mobile, enterprise applications and/or business intelligence and reporting tools.

The primary interface presented by data virtualization platforms is the more dynamic relational data model, as opposed to the more static service interface. Exposing data in tables and views enables application consumers to decide in what shape they wish to consume the data versus the service provider.

Consider a simple example where:
  • Customers reside in a table in one database
  • Orders reside in a table in a separate database
  • An application requires unified data combining customers and orders
In any type of application services integration platform, one would create a getCustomers service and a getOrders service using database adapters. One would then write a new service – business logic – that invokes both of those base services to get the data from each database and then create transformation code to copy and merge the data into a unified result set. The application would then be able to invoke that top level service to get the unified data in the structure defined by the services platform.

If the developer of the top level service did not allow for parameters to order or project different attributes or select subsets of rows, the application developer would be forced to do that work themselves or request that a new service be created.

This is a static model for data access.

In a data virtualization platform, one would expose the customer and order tables as views to the application. The application would then connect to the data virtualization platform via standard Java Database Connections (JDBC) and issue a standard SQL query that joins the data from the two tables to retrieve the data. The application is free to dynamically change the SQL to order, project or select any subset of the data they wish at run time.

This is not fixed by the static service definition.

Data virtualization platforms also have the ability to provide service interfaces. In fact data services bring the long desired alignment between traditionally isolated application and data integration technologies stacks. With the data services model, differences between the application integration and data integration blur, but they do remain.

In that scenario, the data virtualization platform will generally provide a much quicker time to market and higher performance as standard SQL is used to define the services while the data virtualization platforms do the heavy lifting of optimizing the joining of the data through query optimization.

In service integration platforms, the optimization of joining the data is the responsibility of each individual developer. It is highly unlikely that the individual services developer would build in the logic to dynamically select between a large collection of join algorithms depending on the inputs and shape of the sources.

Looking to Automate your business?
Data virtualization optimizers do that and more.

The Bottom Line

In the end, application integration platform like JBoss Fuse are best suited for the functional integration of independent applications to implement a multi-step business process. Data virtualization platforms are best suited for the creation of data services where one is attempting to present a holistic view of the business data for analysis or operational visibility. Both technologies have different primary use cases and they are not interchangeable, however they can be used together.


[Feedback welcome, for more information feel free to contact the author through comments below or @junooni, or visit Red Hat Integration.]

Wednesday, May 13, 2015

JBoss BPM Suite Quick Guide: Changes You Need for Building Applications with JBoss EAP 6.4 Modules

This weeks tips & tricks article will dive in JBoss BRMS 6.1, which was released out into the wild on Thursday, April 16th.

This new release brings with it many notable improvements and features which we have highlighted previously.

While we were updating our various demo projects that we host on JBoss Demo Central, we noticed something worth mentioning when we were building our Cool Store web application code against the new JBoss EAP 6.4 that is the supported platform for JBoss BRMS 6.1.

Figure 1: JBoss BRMS modules in JBoss EAP 6.1.
If you were building your web applications against the modules installed by the JBoss BRMS or JBoss BPM Suite you would find them inside the JBoss EAP servers modules directory as shown in figure 1.

Note this figure 1 shows you the view for JBoss BRMS, but it also applies to JBoss BPM Suite where you will see a bpms folder instead of brms.

If you are looking to build your project with the same maven configuration on JBoss EAP 6.4 with JBoss BRMS 6.1 or JBoss BPM Suite 6.1, you will find that it does not work.

The reason becomes very clear when we compare figure 1 to the same modules directory on JBoss EAP 6.4 as shown in figure 2.

There are no layered modules installed for either product, so you will need to adjust your projects maven configuration to pull the dependencies from the centrally hosted JBoss Maven Repositories.

Figure 2: No modules in JBoss EAP 6.4.
How can we do that you ask?

Easy and it only takes a few minutes to update your Maven configuration.

Previously we covered the setup for you to adjust and pull dependencies on the product from the JBoss Maven repository, but for ease we will include the code you need for your configuration here:

<repositories>
 <repository>
  <id>jboss-maven-repository</id>
  <name>JBoss Maven Repository</name>
  <url>http://maven.repository.redhat.com/techpreview/all/</url>
  <layout>default</layout>
  <releases>
   <enabled>true</enabled>
   <updatePolicy>never</updatePolicy>
  </releases>
  <snapshots>
   <enabled>false</enabled>
   <updatePolicy>never</updatePolicy>
  </snapshots>
 </repository>
</repositories>

<pluginrepositories>
 <pluginrepository>
  <id>jboss-maven-repository</id>
  <name>JBoss Maven Repository</name>
  <url>http://maven.repository.redhat.com/techpreview/all/</url>
  <layout>default</layout>
  <releases>
   <enabled>true</enabled>
   <updatePolicy>never</updatePolicy>
  </releases>
  <snapshots>
   <enabled>false</enabled>
   <updatePolicy>never</updatePolicy>
  </snapshots>
 </pluginrepository>
</pluginrepositories>
Looking to Automate your business?

Once these repositories have been configured you can then pull in any dependencies you previously used from the modules directory in JBoss EAP 6.1 with the JBoss BRMS and JBoss BPM Suite products.

Feel free to comment if you have any questions around this topic.





Monday, May 11, 2015

Red Hat JBoss BPM Suite - Online Workshop Building a Travel Agency (Introduction)

Welcome to the kickoff of the second series of JBoss Business Process Management (BPM) Suite online workshops.

For the very first ones you can start building the JBoss Cool Store retail online web shop and JBoss HR Employee Rewards process project.

In this workshop we will be introducing you to the possibilities that abound for your business when leveraging this product.

Each article presented here will push out the next installment of this workshop that will lead you through building the JBoss BPM Travel Agency, including installation of the product, designing the domain model, building rules, tasks, forms and integrating services.

If you would like a tour of the JBoss BPM Travel Agency, there is a four part video series to quickly get you up and running.

This project is available as a completed project called the JBoss BPM Travel Agency, but we thought it would be interesting to help you build this application from scratch.

This week we kick it off with an introduction to the workshop including the product overview, pointers to the JBoss BRMS workshop and then point you to the first lab which will be released soon showing you how to install the JBoss BPM Suite.

In following articles we will feed you new sets of lab exercises to help you to the next stage of development as you watch your very own JBoss BPM Travel Agency take off and fly.

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

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?

Let's get started with the introduction to the workshop:



For a short introduction to rules, events and processes along with the products involved:




Be sure to keep an eye out for our next article in which we will bring you a step closer to completing your very own JBoss BPM Travel Agency.
Looking to Automate your business?

Series Table of Contents:
  1. Installing JBoss BPM Suite.
  2. Creating a new project.
  3. Creating a domain model.
  4. Create Data Validation Guided Rules
  5. Creating technical data validation rules. (coming soon...)
  6. and much more....
Note: if for some reason the online materials are not available, feel free to contact me.

Friday, May 8, 2015

Red Hat Taste of Training - Configuring Cache Stores with JDG

There are often questions asked of me around JBoss Integration & BPM products when people run into me at conferences, events or online.

I have taken many of these questions home with me and they get answered in the form of an article around Tips&Tricks label or maybe a demo project gets created.

I am a teacher, I have a story to tell and you out there are a big part of the path this story takes.

Sometimes a student is just looking for a learning experience that mirrors the classroom, so with that in mind Red Hat has provided a series of free videos that give you a Taste of Training.

This just over 5 and half minute video will take you through how to configure a JBDC cache store to house data and introduces you to a JBoss Data Grid course.

It is based on the course JB453, Red Hat JBoss Data Grid Development.

Enjoy and be sure to check out the other offerings brought to you by Red Hat Training.



Wednesday, May 6, 2015

A Microservices Migration Story with JBoss BPM Travel Agency

Some time ago we launched a rather expansive JBoss Travel Agency demo project to show some of the more interesting feature of JBoss BPM Suite.

We provided a collection of videos that not only show you how to install it, what the various rule and process artifacts are in the project, but we also walk you through the various paths you can take during actual use of the JBoss Travel Agency process.

The project continued to expand over time, adding on not just a bookings process, but also a payment process that included advanced features like compensation (rolling back bookings), integration of traditional web services in service tasks and a credit card fraud detection system.

JBoss Fuse based microservices migration.
We have showcased this project on several online webinars, including together with PEX Processing Network.

What is left you might ask?

We thought long and hard on this before deciding that an interesting idea might be to look at migration of the existing projects web services to microservices based on JBoss Fuse technology.

Nothing like progressing into a modern enterprise architecture, right?

Demo project

As always we bring you not only a solution, but a reusable demo project you can easily spin up yourself to explore the details around how a JBoss BPM project would integrate with the microservices we migrate from existing classic web services with JBoss Fuse.

The project is called the JBoss BPM Suite & JBoss Fuse Travel Agency Integration Demo.

The original web services sources can be found in the projects directory for your convenience, but are not built by default when we run the installation.

The project installs JBoss BPM Suite 6.1 with the Travel Agency projects rules, process, forms and sub-flow. It then installs JBoss Fuse 6.1.1. and configures in the background the Camel routes, containers and deploys this into FuseFabric.

You can find more details around the JBoss Fuse setup in the article by Christina Lin.

To setup this project there are just a few simple steps to get going, but note that there are 6 containers being setup and deployed so expect an initial installation to take some minutes:

Installation

  1. Add products to installs directory.
  2. Run 'init.sh' or 'init.bat' file. 'init.bat' must be run with Administrative privileges.
  3. Containers auto setup for you!
    Start the JBoss BPM Suite server, login, build and deploy JBoss BPM Suite process project at http://localhost:8080/business-central (u:erics/p:bpmsuite1!).
  4. 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.
     <!-- Server login to upload to fabric. -->
     <servers>
         <server>
             <id>fabric8.upload.repo</id>
             <username>admin</username>
             <password>admin</password>
         </server>
     </servers> 
    
  5. External client web application showcasing
    RestAPI integration!
    Start Fuse Server, by running 'fuse' or 'fuse.bat':
  6. Login to Fuse management console at: http://localhost:8181 (u:admin/p:admin).
  7. Under Runtime tab, you will see 6 containers, select and start them all.
Once you are up and running just build the project in JBoss BPM Suite and start the Fuse containers as the documentation describes.

You can now run the process by submitting through the client web application at:

Looking to Automate your business?
http://localhost:8080/external-client-ui-form-1.0

The process will now be using the various microservices and show full JBoss BPM Suite and JBoss Fuse integration in an easy to explore demo project.

We hope you enjoy this one too and feel free to browse for more at JBoss Demo Central.

UPDATE: video of this project available online now.

Monday, May 4, 2015

JBoss BPM Suite Quick Guide - Getting Started with the Realtime Decision Server

(This article is a cross post excerpt from article authored by Jey Paulraj, Senior Solution Architect at Red Hat in North America)

The latest release of the JBoss BPM Suite 6.1*, has quite a few improvements within the rules, events, planning and processes, but with so many updates to talk about we thought it might be nice to introduce topics of interest to you individually.

This article will feature a look at the Realtime Decision Server component, an out of the box feature which provides a unified platform to execute business rules.

Rule Execution Server architecture.

With most rule projects, you not only need to write the rules, but also execution code (tests at the very least) to ensure the rules are being used in your application. This was a tighter integration with the rules and the developer of the application.

This is no longer necessary with the Realtime Decision Server, as we can now have rule owners creating rules in the provided tooling, building the resulting rule project from JBoss BPM Suite business central and deploying the rule project into an execution container automatically deployed onto our JBoss BPM Suite server.

The provided execution container is a self-contained environment that is provisioned to hold an instance of the compiled rule package and deployed rule instance. We are then provided with rule execution operations which are exposed in a RestAPI, so that any application can consume the deployed rules seamlessly.

This is a clean separation of rule development and application code development within a JBoss BPM Suite project.

Background

The Realtime Decision Server is distributed as a web application archive (WAR), look for the file named kie-server.war, as part of both the JBoss BRMS and JBoss BPM Suite 6.1 releases and is found in the server deployments directory.

To access the execution server functionality, that is being able to deploy an execution server with your rules, your user will need to have the role kie-server. This role needs to be added into the application-roles.properties file which can be found on the JBoss BPM Suite server at:

jboss-eap-x/standalone/configuration/application-roles.properties

If you are using any of the JBoss Demo Central hosted JBoss BRMS or JBoss BPM Suite demo projects, then you will find that this role has been added to the default setup of these projects.

To summarize, for using the Rule Execution Server you need to do the following:
  • deploymentkie-server.war into JBoss BPM Suite deployment folder
  • user role – add role kie-server to JBoss BPM Suite server configuration in application-roles.properties

The project

To make this as easy as possible for you to get started, we have put together a complete and easy to use Realtime Decision Server demo project. In this project you will find a step-by-step description that helps you to make use of your very own Realtime Decision Server.

To setup the project you just follow these simple instructions:

  1. Download and unzip.
  2. Add products to installs directory.
  3. Run 'init.sh' or 'init.bat' file.
  4. Start JBoss Server by running ./target/jboss-eap-6.4/bin/standalone.sh
  5. Login to http://localhost:8080/business-central
- login for admin and analyst roles (u:erics / p:jbossbrms1!)

Now you can note if the Realtime Decision Server is running at:


To make use of the Realtime Decision Server you will need a rule based project to deploy and this is a quick outline describing how you will get started.
  • us the provided rule project or create a new project in business central
  • create a model or import existing model
  • create simple rule using the model that you have created
  • build and deploy your project

Realtime Decision Server

The following outline walks you through the process of deploying your rule project into a rule execution server so that applications can consume the provided RestAPI.

DevServer created.
It is based on the Realtime Decision Server demo project from JBoss Demo Central.
  • select Deploy -> Rule Deployments from business-central 
  • click Register to register your server and key in the following server information
    • Endpoint: http://localhost:8080/kie-server/services/rest/server/
    • Name: DevServer
    • Username:  erics
    • Creating a container.
    • Password: jbossbrms1!
  • click connect, your server should be created
  • click + symbol at right most corner on your server
  • you’ll get a pop-up screen to create container for your rule project
    • Name: container-loan1.0
    • groupid - artifactId - version
      • you search search business central if you can't remember this information, click select button to import automatically from found item
  • container created for your rule project and exposed as a REST service that can be consumed from your application
  • select the server DevServer and click on Start in the top right corner
Container created and started.
You can now access this project to test with any REST client.

In our Realtime Decision Server demo project we walk you through the Firefox browser RESTClient extension usage, but it is easy enough to replicate with other clients like SoapUI.

You can also view the endpoint as shown in your server which is in my case: 

http://localhost:8080/kie-server/services/rest/server/containers/container-loan1.0

The output in our case was:

<response type="SUCCESS" msg="Info for container container-loan1.0">
     <kie-container container-id="container-loan1.0" status="STARTED">
           <release-id>
               <artifact-id>loandemo</artifact-id>
               <group-id>com.redhat.demos</group-id>
               <version>1.0</version>
           </release-id>
           <resolved-release-id>
               <artifact-id>loandemo</artifact-id>
               <group-id>com.redhat.demos</group-id>
               <version>1.0</version>
           </resolved-release-id>
           <scanner status="DISPOSED"/>
     </kie-container>
</response>

With a proper XML request you can access the rule packages you expose in this manner from your applications over REST.

Looking to Automate your business?
See the detailed instructions in the Realtime Decision Server demo project for exactly how to interact with the rules deployed on your server.


(*The Realtime Decision Server can be deployed along with the entire JBoss BPM Suite or with the JBoss BRMS product. While we reference only JBoss BPM Suite in this article, it can be taken to mean either product.)