Tuesday, July 19, 2016

Red Hat Cool Store - a Vaadin powered solution

Vaadin powered front end solution for the
Red Hat Cool Store demo project.
The Red Hat Cool Store has been one of the longest running demo projects of the many that I have put together. The initial release dates all the way back to April, 2013.

It has gone through many evolutions on the JBoss middleware product side over the years, but I thought it would be a good time to look back at what the project is and how we got here with Vaadin powering the front end of the solution.

Ruling retail with JBoss BRMS

JBoss Business Rules Management System (BRMS) is an industry leading Open Source rules, events and planning solution. I have a lot of material around the introduction to JBoss BRMS and even online workshops where you can build the Cool Store application from scratch in a self paced tutorial.

The background of what the Cool Store demo project is showcasing is based on a need to showcase the JBoss BRMS features in action for our customers, partners and interested parties. This project showcases the use of business logic externalized from an application, so that updates to the business logic do not require a new build & deployment cycle for your application.
Added item highlights checkout button.

The business logic is created within JBoss BRMS in the following artifacts:

  • domain model in the form of data objects
  • business rules in various forms:
    • guided rules
    • technical rules
    • decision table
  • domain specific language (DSL)
  • ruleflow (process)
This is all fronted by an online web shopping cart application that leverages a RestAPI interfacing with the JBoss BRMS rules engine. The online web shopping cart application has been implemented using the Vaadin framework, but more on that in a minute.

Clear the shopping cart pop-up.
The workflow to be demonstrated is that you can design, build and deploy an application. After this you have JBoss BRMS with runtime access to your business logic, allowing your business owners to change that logic and having that logic picked up by the next user of your application. 

Let's look at an example to review how this works.

The CoolStore application leverages the JBoss BRMS rules to calculate the shipping costs based on your rules in the projects decision table. When you add items to the shopping cart as shown in the screenshots in this article, the various shipping tiers in the decision table will determine the price to be paid for shipping.

New checkout displays an order receipt.
Now, without re-deploying the web application, you can adjust how much the ranges are and what the shipping for the shopping cart total order will be by tweaking this table, for example:
  • the price from Tier 2 based on value totaling between $26 - $50 is $4.99
  • you can fill your cart with over $25 of materials to validate
  • edit decision table and adjust it to $6.99 
  • save changes
  • build & deploy your cool store project
  • clear the shopping cart application
  • re-order the same materials and validate the charge to shipping is now $6.99
This is all shown in a video which is included in the project documentation and based on the initial Vaadin release 1.0. This brings us to the best part of this story, how open collaboration brings out the best in all of us.

Vaadin powered front end solution

The Vaadin web application was put together using one of the original Vaadin releases and never updated over the ensuing years. That all changed on November 2015 when Matti Tahvonen, Vaadin's Marketing Manager, reached out and offered to collaborate on updating the online shopping cart application to showcase the newest versions of Vaadin.
Add item to new shopping cart.

We met online, chatted about the changes that they could help me with and I met AMahdy AbdElAziz, who forked the project to bring it up to the current version of Vaadin 7.

This includes a few new UI features that we did not spend time on and a newer look and feel to the web application.

It is amazing to see the changes between Vaadin 1.0 and the current versions. Here is an overview of what was done by AMahdy AbdElAziz (first in a five part series), but the best way to find out the differences is to try it for yourself.

Get started with Red Hat Cool Store

Getting started is pretty easy as the project is in the same template you are used to getting from my JBoss Demo Central projects, providing you with the 3-step setup you expect from us:
  1. clone the project.
  2. download the products (JBoss EAP + BRMS)
  3. run the init script for automated setup.
The updates have not stopped and AMahdy continues to keep the front end up to date with Vaadin releases. We have also pushed the entire project into the Cloud, so if you want to experiment with the containerized versions of this demo project, check out Red Hat Demo Central for more information.

Keep your eyes on the project as it continues to evolve as a JBoss BRMS cornerstone in highlighting what you are able to achieve with rules, events, planning and an easy to use web framework like Vaadin.

(This post was cross post to Vaadin's blog here.)

Monday, July 18, 2016

Introducing Business Process Management with JBoss BPM

(This article was excerpted from the book Effective Business Process Management with JBoss BPM by Eric D. Schabell.)


Organizations are constantly being tested in the markets in which they operate by shifting expectations of their customers, and by competitors looking to provide better value at a lower cost. This tension is the catalyst that continually pushes organizations to search for ways to improve their services, improve the speed which they deliver value to their customers, enable employees to get more done with less administrative overhead, and most importantly, to constantly grow by generating more revenue. This is the basis of BPM, to be able to identify and capture processes in an organization to create repeatable, measurable and consistent execution of goals to drive their business forward.

When an organization studies its operations, it discovers there are many processes used in its daily business. These processes are often not well thought out, or they were created to complete some aspect of the daily business, with little thought given to improving efficiency. At this point the organization looks for the first steps for improving through automation the processes that represent business value.

Business value could be anything that drives organizational goals forward to make customers happy, and thereby generate more revenue. This business value can be anything, such as keeping track of interaction with a customer. If that data could be captured, the marketing department could search a customer’s behavioral patterns to decide what products and services to market to a particular person. It would take mass marketing out of the equation and allow for direct, specific marketing towards individual customers’ needs.

It is possible to identify pieces of business value that are not worth automating because they are inconsistent or have too many potential paths to justify the effort to automate. Others will require traditional human brain power, which is not easy to capture in automated process form. An example of this would be the hiring of employees, a process that can be largely automated, but the actual decision to hire a specific candidate remains a factor of human intelligence. We can automate the process of handling applications, scheduling interviews, and the post process of on-boarding a new employee once hired. We leave the “hire or not to hire” task to humans.

Another important facet of capturing business value in processes is that we can monitor our processes and tasks as they are completed to provide business owners with valuable information. We can provide insights into aspects that interest the business owner, and make intelligent decisions about when and where to improve a process as the business evolves.

Imagine your business is running a retail process to sell products online. This process has a user task to approve large orders and is staffed by a set number of people during certain business hours. Bottlenecks may develop in your process as the business grows. What can you do when the Christmas holidays arrive and you expect a surge in orders? Will the current staffing of the user task allow you to process ten times the number of orders? What about one hundred times the orders?

By using historical data captured in previous process instances, it is possible to determine how many orders will be large enough to require human approval, and on average how long each approval took. If you simulate your process using tooling provided by BPM process engines, you can set the amount of humans working on the approval task in the process and set how long they take. By simulating hundreds or even thousands of process instances, you can watch the results of the orders flowing through your process and determine that you will need to staff your user task differently. During the normal months of the year you are able to process large orders with just two employees assigned for eight-hour days. During the holidays, due to expected increases, simulation testing reveals it will require twenty-four hour shifts to approve large orders, and you need to increase staffing to four employees. It is always better to know this before hiring new employees for the holidays and discovering it did not help process orders fast enough to justify the costs.

This process we look at is a step-by-step plan to accomplish a set of tasks that deliver business value. The basic series of events that leads to process discovery begins with identifying the piece of business value to be automated. This piece of business value is selected for its potential to improve the business as a whole when:
  • The process can be automated.
  • The process can be consistently executed in the same way.
  • We can clearly define human involvement in the process.
  • Automation of the process will remove current ad-hoc or inconsistent behavior.
  • Measuring the process gains insights into current business behaviors.
  • Insights provide a better means to decide when changes can and should be made to improve a process.
  • We can reduce resource waste by efficiently handling wait-states.
Once a potential business process is identified, a workshop can be held by stakeholders from the business responsible for executing the process. For example, the human resource department might be in charge of registering new employees, getting them a workstation, starting their benefits, and assigning them an e-mail address. This process is discussed and dissected to identify the exact steps and order in which they would need to be accomplished to register a new employee. This results are put in a diagram with each step, from start to finish, drawn up as tasks to be completed.

These are the beginnings of a process, known as a process diagram. A process diagram contains all the elements needed to capture the steps in the processes without any of the execution details. You will find task nodes, start nodes, end nodes, transition arrows, gateways that split paths of the process, and gateways that join paths of the process together again.

The executions details needed to complete a process could be that a task in the process needs to send an email. The details we are missing to send an email from the task would be the sender, receiver, subject line, and body of the email. These need to be defined in the e-mail task. Another task might be to fetch data from an existing service in the organization, therefore requiring definitions for the location of the service, the service name, any data it might need, and whatever else is needed.

Figure 1 - A process that captures a piece of business
value, that of registering a booking for a hotel and 
a flight by taking payment from the provided credit 
card before notifying the buyer or determining 
that the payment was fraudulent and triggering 
a roll back of the bookings.
A process is not complete until we define the data needed for the process, what tasks are to be automated, what tasks humans must complete, what systems are to be integrated, and  the execution details for each task.

To illustrate this, imagine you are developing a process definition for a travel agency booking system. A part of the larger project is to define a process for registering a selected flight, hotel, and charge the credit card provided, if not fraudulent, and notify the customer of their travel details. If the credit card is fraudulent, we want to cancel the booked flight and the hotel. Figure 1 shows a process diagram of the travel agency booking section of the project. It is a fully implemented business process once the execution details have been added to each task, such as the flight booking service details, the hotel booking service details, the flight cancellation service details, the hotel cancellation service details, the credit card payment details, the e-mail details needed to notify the customer of their travel arrangements, and sorting out the details for cancellation services before they are signaled to undo a booking.

The ideal process is a fully automated process that removes human involvement. This is a process without any user tasks and is referred to as Straight Through Processing (STP).

Figure 2: An example of a Straight Through
Process (STP), this Customer Evaluation process
has only tasks and decisions from start to finish.
This process will always reach an end node for 
each and every instance of the process 
that is started.
By capturing a process in a static diagram and removing all human interaction we have ensured that each instance will be completed in a consistent manner. Any ad-hoc activities that are part of human nature, like taking a coffee break or visiting with a colleague, are no longer occurring when we have captured an STP process.

Figure 2 is an example of an STP process, where the tasks and decisions are made without human involvement from start to finish. This process will always reach one of the end nodes in the process diagram for each and every instance of the process that is started.

Sometimes a piece of business value that is to be captured as a process cannot be fully automated. Human involvement is needed to complete these types of processes, yet automating parts of the tasks will improve the business enough to justify turning it into a process. By capturing a process that contains user tasks, we have stumbled upon a very important feature of BPM, which allows us to manage wait states. A wait state is any task that requires that we pause processing and wait for some external event to notify the process to move onwards.

In classical application delivery, it is very hard to keep track of state. Waiting means putting information into storage so we can put our application to sleep until it is needed and we are ready to continue. With BPM technology we are provided with a state engine that manages wait states by keeping track of where we are in the process, by releasing resources that other process instances can use while our process instance is put to sleep. It also manages the rehydration of our process instance when it is ready to wake and continue from the current wait state. When a process instance reaches the wait state, it will save all state information needed to run the process instance and dehydrate, or go to sleep and wait for something to trigger a restart. When a trigger arrives to restart a process instance, it will rehydrate by gathering the necessary state data, and populating the process instance exactly as it was before the wait. It will then use the trigger provided information, such as a user task form with input data, to continue moving the process instance forward from where it stopped previously.

Figure 3 shows a process that leverages a user task called Approve Reward. When a process instance is started, the first task reached is the user task Approve Reward, at which time the task is assigned to a manager and waits until a manager has time to work on the task. When this user task is reached, the process engine will set up the task, and then be put to sleep so that it releases all resources for other process instances to use. This is how a single BPM process engine can execute many, many process instances at one time; there is a small set of active process instances. Most will be either in a completed state or they will be in a wait state and not be utilizing any computing resources.

Figure 3: The Rewards process has a wait state
in the form of a user task that is used by manager
 to approve or deny a submitted employee reward. 
The manager decision determines the completion 
path to be taken, approved or rejected.
Once the task is claimed, worked on and completed, the process instance will be signaled that it is ready to move onwards. The process engine will rehydrate or wake up the process instance, putting it back into a state to move onwards with the data provided by the user task and evaluate if it should take the reject path or accept path for this particular employee reward.

Now that you have a feel for the basics of what BPM is, let’s take a look at the three main elements that make up a BPM solution and need to be supported by any BPM product you might use.

An introduction to rules, events and processes

The basic building blocks for any BPM project requires a product to have the ability to integrate business rules, business events and business processes. In this section I will introduce the concept of a Business Rules Management Systems (BRMS), discuss what rules are, look at how events differ from rules, and look at business processes.

What are business rules?

In traditional application development, the information used to decide what is to be done at any point in the application exists in the application itself. This logic is referred to as business rules and is implemented in static application code, becoming part of the artifacts that are compiled, tested and delivered into production. Each change to business rules within such an application requires a complete release cycle, in which code is changed, compiled, tested and delivered to production. This costs time and is susceptible to errors. Changes to business rules are passed from the business owners during requirement discovery phases, to a project team and developers, whose interpretation might differ from what was intended.

The next time you are looking at applications in your organization, look for constructs like if-then-statements and case-statements, which are basic indicators of business rules within applications. These constructs are indicators of business rules that should be externalized from applications. Once such business rules are externalized you can deliver applications, and later modify the externalized business rules without needing new application code. It is now possible to put the business rules into the hands of the business owners, who understand how to maintain the life-cycle of the applications using the business rules.

Business rule management systems are designed to provide exactly this kind of support and tooling to business rules owners and application developers. Business rule management systems provide tooling to express rules in terms that the business owners understand, and allows the developer to focus on application delivery while the business owner retains visibility of the business rules serving customers. Finally, with business rules centralized in an external location it becomes easier to maintain consistency across applications leveraging the business rules. If business rules are spread out across multiple applications, there is a risk of duplication, and rule maintenance becomes difficult as the application landscape expands.

What are business events?

Business rules are triggered based on a condition that has to be met, and when that condition is met the rule triggers an action. Rules are evaluated one-by-one, and they are either triggered or not. Rules can be grouped together, but they are still evaluated one-by-one to determine if a rule has a condition that is met that causes its action to be executed.

Business rules are also part of a concept called business events. Events can be triggered when a rule, or set of rules, match their conditions over a defined time period. Events that take place within the context of a business rule management system are still business rules, but now you add a temporal element.

For example, traditionally there are rules that can be applied to credit card transactions. Imagine a rule that requires that a purchase must have a total value that fits the credit limit for that card. Should the purchase being attempted exceed that credit limit, the action taken will be to reject the purchase. This rule can be applied time and time again, without regard for any sort of time-sensitive information. It is only when we add a time element that it becomes a business event, such as looking at a period of transactions to determine if any took place in locations that are not physically possible. Such a series of purchases, say in Tokyo, San Francisco and Amsterdam in a span of 24 hours, would result in a business event triggering the blockage of the credit card, and a notification process to alert the card holder of fraudulent usage of the credit card.

A more modern example is how enterprises use business events to monitor their corporate image across all manner of social media channels. In the travel industry for example, you see event monitoring coupled with large customer contact centers, which are manned by hundreds of employees who receive notifications whenever online comments reference their company. If they can use event monitoring to detect and respond to messages, negative or positive, directly with the customer who wrote them they can have a positive effect on their image in the market. This is a powerful use of business events and is only possible with a business rule management system that has event processing.

What are business processes?

We have discussed how business processes can be discovered in an organization to reduce inefficient manual processes by automating as much as possible. What are business processes used for besides automation? Business processes are used to improve consistency in completing a series of tasks, increases visibility, and reduces errors.

Before an organization starts using processes to streamline its business activities, it is just a large pool of employees that are trying to bring value to their customers. This can be done by filling orders or providing services. These employees are assigned tasks that might require interaction with back-office systems like shipping, financial, or inventory, or it might require they contact a transport company to handle order delivery.

A modern organization evolves over time, automating some interactions with back-office systems, and adding technology to provide a service layer that communicates with various applications. The problem is these services are used by applications for specific tasks, and not linked together to handle a complete series of tasks that makes up a business process.

Once the back-office and external organizations have been put behind an automated layer of services, business process discovery can identify the processes that can be automated. Business processes become the layer of organization or integration that brings a series of identified tasks to complete a part of the business, sometimes involving human interaction. By managing the user tasks deemed necessary to remain in business processes, they can be repeated in a consistent manner, measured for efficiency, and reduce errors during their completion. Finally, an overview of business activities can be monitored and reports generated to keep track of how various parts of the organization are functioning. This can lead to quicker decisions around adapting existing processes, or implementing new ones, to further accelerate the earning potential of the organization as a whole.

To review, it starts with experts from the business helping to identify needed tasks and the sequence in which they are to be completed. A small group of human resource employees could be used to discuss the hiring process. They would tell their stories about how they put together a job description, place advertisements for the job opening, handle incoming reactions from applicants, schedule interviews using existing calendaring systems for employees selected to interview candidates, gather interview impressions from the employees, obtain a decision from the hiring owner of the job, inform rejected candidates, notify the hired candidate, begin the onboarding, etc. Portions of this process are worth automating, like the onboarding process that uses manual tasks, when automation would save valuable time and resources.

A BPM suite is used to automate the process by integrating services in the organization, directly with systems, or managing human interaction with tasks users need to complete. The BPM suite captures the process instance data and generates reports to provide business owners up to date information and visibility into every aspect of business operations.

When looking at BRMS products you will note they support rules and events. A BPM suite product needs to be a super-set by encompassing BRMS functionality and adding in support for process development and execution. Therefore, when talking about a BPM suite we will be referring to rules, events, and processes in a single suite.



For source code, sample chapters, the Online Author Forum, and other resources, go to

https://www.manning.com/books/effective-business-process-management-with-jboss-bpm


[Note: This post was originally published on Red Hat Developers, the community to learn, code, and share faster. Originally posted here.]

Friday, July 15, 2016

Installing the Red Hat Container Development Kit (CDK) 2.1 release

Red Hat Container Development Kit (CDK)
installation made easy!

When an application developer or architect tasked with exploring the possibilities that containerized applications offer, nothing is easier than the Red Hat Container Development Kit (CDK).

The Red Hat CDK has all the Cloud tooling you need for your local OSX, Linux or Windows environment and it has a few containers pre-configured for you to explore.

Last week this project released version 2.1, so we updated the automated installation project called the Container Development Kit Install Demo.

This article will get you started in just minutes with the entire Red Hat CDK installed locally on your personal machine to provide you with your very own personal private PaaS.

UPDATE: with version 2.1 the installation takes just over 13 seconds on my machine.  Start up of OpenShift takes just 107 seconds We can safely say it takes 'seconds' to get started now!

What you get

First off, the Red Hat CDK is a product that is available to customers and partners, for more details on who has access and how to obtain access, see Red Hat Developers. Also for the details around what specifications for your machine, see the online documentation.

The Red Hat CDK is packaged into a RHEL 7 virtual machine that you can start on your machine after installing this project. There are several choices provided with pre-configured installations, but they all include the basic setup for Docker and the tools needed to start leveraging Docker based containers.

The following containers can be started after installing this project for you to start exploring:
  • OpenShift Container Platform - a containerized version of OpenShift can be started that can be accesses through a Web console in your browser or via the OpenShift command line tools. Explore your very own private PaaS developer experience with this container.
  • Kubernetes - a container to set you up for exploring a Kubernetes cluster. It is setup to run as an all-in-one Kubernetes master to manage pods and node for running multiple pods.
On top of this you can start creating your own container based applications after you are comfortable with how these examples work.
Check out the video where I walk you through
the easy installation process in just a few minutes.

Container development 

As you might not want to go through all the steps in the installation guide time and again to setup the Red Hat CDK on your machine, here I hope to make it so simple anyone can do it.

Not only that, you can do it in just four steps, I promise! It is really that easy with the fully automated Container Development Kit Install Demo project put together to make the process both fool proof and repeatable. So what are the three steps you ask?
  1. Download and unzip CDK install demo.
  2. Add products as needed, free downloads available here.
  3. Run 'init.sh' or 'init.bat' file.
  4. Read and follow displayed instructions and enjoy the Red Hat Container Development Kit (CDK) on your local machine!
Red Hat Cloud Suite
It will check if you have the pre-requisites installed, but if you don't and start the installation it will stop, warn you and provide the links to go and get what is missing. The same goes for the products needed, which depend on your OS for the correct virtual image you need to run the Red Hat CDK, don't worry, it will point you in the right direction if you read the output.

For more information around containers, a Cloud stack and why you need to care about this containerized stack for your application development, see the App Dev Cloud Stack series that takes you on a tour of the Red Hat Cloud Suite.

We will be back soon to dive deeper into how these container examples in the Red Hat CDK look and how to get started with them.





Monday, July 11, 2016

Codemotion Milan 2016: Containers, JBoss BPM and Monkeys

I have spoken in the past at Codemotion Rome, but never in Milan, so this year I have submitted a few talks in hopes of spending a few days with the good people that host these conferences.

From my new position at Red Hat I have a broader reach on the topics and technology that I can choose from to submit, so the sessions below you will find are pretty far apart on the technology spectrum.

Fingers crossed and maybe I will see you at one of these sessions should they be accepted for Codemotion Milan on the 25-26th of November 2016:

Painless containerization in your very own Private Cloud

As application developers we are coming to grips with new technology all the time. Containerizing what we do is becoming the standard as our applications are delivered into the Cloud. Let me show you a painless way to easily install a private Cloud in just minutes, one that leverages today's docker based container technologies from & wrapped in a developer friendly self-service OpenShift platform. 

Join me for an hour of power where you will walk away with the ability to leverage real hands-on example applications of painless containerization in your very own private OpenShift Cloud platform.


App Dev in the Cloud: Not my circus, not my monkey...

When faced with all the hype around Cloud, most application developers are not really all that excited. Maybe you get that feeling that it isn't your problem, just leave me to my applications. Let me show you why, as an application developer, you can't ignore your Cloud stack anymore. 

We will examine your Cloud stack anxieties and provide you with a solutions to ease you into your first private PaaS on your own local machine that you can install in just minutes. Finally you will be given a myriad of examples to take home with you to take control of this circus and own the monkeys!


Effective Business Process Management with JBoss BPM

When getting started with JBoss BPM you are often looking for a reference to help you on your journey, something that will make you an effective member of your project team that is developing process applications. 

I will present an overview of how to get started, where you can find the help you need and leave you a collection of example projects that you can install locally on your development machine or in the Cloud. 

Join us for an hour of power that will turn you into a productive BPM'er and send you home with early access to the publication of the same name.

Thursday, July 7, 2016

How To Import Any JBoss BRMS Example Project

This tips & tricks comes to you after I have been asked the following repeatedly over the last few weeks by users of the JBoss BRMS demos:

"How can I import the projects associated with the various JBoss BRMS demo projects into my own existing installation?"

What this means is that users want to have an example project in their personal installation of the product without using the projects installation process. This is certainly possible but not totally obvious to everyone.

Below I will walk you through how the various example projects for JBoss BRMS are setup, how the actual rules projects are loaded into JBoss BRMS when you set them up and why. After this I will show you how to extract any of the available rules projects for importing in to any previously installed JBoss BRMS server.
Figure 1: In JBoss BRMS open the Administration
perspective with menu options, Authoring -> Administration.

Background on how it works

The normal installation of a JBoss BRMS demo project that I have provided uses a template. This template ensures that the process is always the same; download, unzip, add products and run the installation script. After doing this, you are done, just fire up the JBoss BRMS for the adjusted experience where you open up the Authoring perspective to a pretty process designer with the demo project displayed for you to kick off a demo run.

These projects have a demo template that provides some consistency and you can read about how it works in a previous article.  For the initial installation run of any of these demo projects, a folder is copied from support/brms-demo-niogit to the installation at the location target/jboss-eap-{version}/bin/.niogit. 


Figure 2: To import a new project, open the Clone repository
from the menu Repositories. This will allow you to bring
in any rules project to your JBoss BRMS.
This folder contains all of the project and system Git repositories that are formatted for the version of the project you have downloaded. By installing this directory or complete repository, when JBoss BRMS starts up the first time, it will pick up the state I left it in when designing the experience around you using this demo project.

Get your hands on a specific rules project

The problem I want to help you with in this article is to show you how to extract only the rules project from one of these examples and import this into your own installation of JBoss BRMS.

Figure 3: Cloning a repository is how you import an 
existing project, which requires the 
information shown.
The following list is the order you do the tasks, after which I will explain each one:

  1. Download any JBoss BRMS demo project and unzip (or clone it if you like).
  2. Log in to your own JBoss BRMS and open Administration perspective via menu: Authoring -> Administration.
  3. Setup the new rules project you want to import: Repositories -> Clone repository -> fill in details including import project URL
  4. Explore the new project in the Authoring perspective: Authoring -> Project Authoring
I am going to assume you can find a JBoss BRMS demo project of your liking from the link provided in step 1 and download or clone to your local machine.

I will be using the JBoss BRMS Cool Store Demo as the example project you want to import into your current JBoss BRMS installation instead of leveraging the standalone demo project.

In your current installation where you are logged in,  open the Administration perspective as shown in figure 1 by menu options Authoring -> Administration. This allows you to start importing any existing rules project. We will be importing the Cool Store rules project by using the feature to clone existing projects found in menu options, Repositories -> Clone repository as shown in figure 2.
Figure 4: Once the project has been imported (cloned), you
will receive this message in a pop-up.

This will produce a pop-up that asks for some information about the project to be imported, which you can fill in as listed below and shown in figure 3:
  • Repository Name: retail
  • Organizational Unit: Demos    (select whatever org you want to use from your system)
  • Git URL: file:///Users/erics/demo-projects/brms/brms-coolstore-demo/support/brms-demo-niogit/coolstore-demo.git

Figure 5: Explore your newly imported rules project in the
authoring perspective within your JBoss BRMS installation.
The most interesting bit here is the Git URL, which is normally something hosted online, but this project we want to import is positioned locally in our filesystem, so we use a file based URL to point to it. Click on Clone button to import the project and you should see a pop-up that looks like figure 4 stating that you have successfully imported your project.

Now you can explore the new imported project in your authoring perspective and proceed as you desire with this project as shown in figure 5. This will work for any project I have put together for the field that is based on the standard template I use.

I hope this tips & tricks helps you to explore and enjoy as many of the existing rules examples offered in the current collection of demo projects.


[Note: This post was originally published on JBoss Middleware Blog.]

Monday, July 4, 2016

What You Missed at DevNation & Red Hat Summit 2016

DevNation & Red Hat Summit 2016
Last week was a whirl wind of activity in San Francisco, CA where DevNation and Red Hat Summit 2016 took place. While the weather was less than ideal with temperatures remaining rather on the fresh side, the activities kept us all running around to catch up on the latest news around Red Hat Open Source technologies.

As previously covered, I was scheduled to give a talk and help host a lab. Along with that I also had two different booth duty slots to cover where I got the chance to talk with many friends from near and far, while along the way I met new friends.

There was also an afternoon spent talking to industry analysts around the various aspects of the Red Hat Cloud Suite product. Mixed into that were countless chats, gatherings at a restaurant or pub in the vicinity where you get to catch up with the old guard at Red Hat. The final thing on my agenda was hosting an EMEA Cloud gathering with drinks and dinner, time used to get a feel for the home front before returning to that region later this summer.

Monday

This was the opening day for DevNation, where you get the chance to register and mingle with all manner of colleagues that just seem to pop up from everywhere in the world to say hi. It is probably my favorite day of the entire show, as nobody is ramped up to talk yet, everything is still possible and you see the anticipation on every face.
DevNation keynote with Mark Little
I spent time talking to friends from EMEA, APAC, NA and LTAM as they would appear and shout out, "Eric!!!" before a chat, hug and much back clapping. Who doesn't like moments like that?

The DevNation keynote was a good showcase with quite a few surprises, such as the announced release of JBoss EAP 7, the launch of a new community called MircoProfile and a rather large demo showcase of .Net on RHEL.... I mean who would have thought, right?

After this it was time for lunch and catching up with the JBoss jBPM / Drools team as we watched DevNation lightning talks on all manner of topics. Always nice to see our rock star engineers and get a peak at what they are up to these days before it goes live.
Lightning talks at DevNation lunch
I had to head over to the Red Hat booth and make sure that everything was ready, including all the SWAG we had for attendees and the demo pod with no less than four (4) exciting live use cases for Red Hat Cloud Suite.

Then it was off to the Giants baseball game with a group from APAC and NA, which is always a nice way to collaborate, chat and enjoy the greatest game on the planet... well, at least I think so. If you were wondering, the Giants lost. 

Gatherings at the stadium part of
DevNation & Red Hat Summit

Tuesday

This is the start of Red Hat Summit with the theme this year being "The Power of Participation", so it opened with a keynote by CEO Jim Whitehurst the resonated well on this theme. In the mean time, I had to run out early on the keynote as my talk with a partner was in the first slot right after the keynote in another building a block away. No time to run from keynote to my talk, so setup early while the attendees moved from one building to the next for our session. 

We gave a talk called Partners in Crime and outlined our work with JBoss BPM Suite and Signavio. It also showcased a demo of the current progress being made around designing BPM processed with Signavio tools that are then integrated into the JBoss BPM Suite. There was also interest in my new book's early access program and all week I was able to push people to the JBoss BRMS & BPM Suite booth for a postcard with a scan code for a free chapter from Effective Business Process Management with JBoss BPM.

Following the talk, I was due to appear for my first booth duty as the partner pavilion where it was busy at all the pods, not just our Red Hat Cloud Suite pod. We gave out many t-shirts, stickers, mint cases and had great chats around the products as attendees showed their interest in sharing their experiences using these technologies.

The evening was another gathering at the ballpark for another Giants game with partner Signavio. It was a cold evening with lots of wind so we did not stay until the end, but instead got a chance to catch some sleep before the early 5k run the next morning.

Wednesday

Running 5k on Cloud Suite
At 05:30 the alarm went off and had to hustle down to the Moscone Center for the start at 06:00 of the Summit 5k. A nice jog with colleagues and customers around the bay front and baseball stadium before heading back for work at the Red Hat Summit.

This was the morning of the big keynote where Burr Sutter and company did the yearly Red Hat technology showcase demo live on stage. This year they included products from OpenShift, JBoss BPM Suite and JBoss EAP 7 along with some community projects to provide a DevOps CI/CD end to end demonstration from dev to mobile with visual aids for the crowd. A very nice story around what Red Hat technologies and products can do for enterprises.

Then it was back to the booth for more chats, where the t-shirts where flying out the door and a lot of interest again in the Red Hat Cloud Suite product. We spent a bit of time on the white board too, which brought the interest right out of the passant attendees!

Keynote demo for Red Hat Summit
In the late afternoon I stopped by, together with the colleagues whom I was hosting a lab with the next day, the room to test our our environment one last time before the big day. All was well so headed out to a team dinner with the Integrated Solutions Business Unit before calling it a day.

Thursday

As a nice example of how fun and crazy a day can start at Red Hat Summit, I walked into the presentation and photo session with the winner of the Mini Cooper give away promotion for JBoss EAP 7 launch! 
Winner of JBoss EAP 7 Mini
Cooper give away
After a quick selfie with the winner I was off to host our hands on lab with OpenShift, JBoss Fuse and JBoss BRMS. This took up most of my day and afterwards I spent time with another friend to plan our our demo work the coming months, so keep an eye on Red Hat Demo Central for some cool AppDev in the Cloud activities.

The Red Hat Summit closed out for me with a gathering of EMEA Cloud Solution Architects to catch up on who is around when I head back to EMEA later this summer. We had drinks and dinner before some headed to the closing party.

It was a great week, a good time, tiring and exhilarating all rolled into one. There is nothing quite like it, so, see you at DevNation & Red Hat Summit 2017?