Eric D. Schabell: 2013

Monday, December 30, 2013

Year in Review 2013 - JBoss, Cycling, Travel, and telling stories

My last article for 2013... the year in review where I wander through the highlights of my work, play, cycling, writing, and travels for the past year.

This year marks the second year in my current role at Red Hat as a JBoss Technology Evangelist, covering the Integration & BPM technology products. This was a handful, requiring coverage of JBoss SOA-P, EDS, BRMS, BPM-Suite, Fuse, and messaging products.

While I was alone it was really hard to keep ahead of the wave of great technology products we put out, but luckily I got assistance from Kenny Peeples and have been able to focus much more on JBoss BRMS & BPM Suite products.

I am very excited at the coming releases of these products and have been around the world talking about them this year as you can see in the Travels section below. Looking forward to my continued involvement with the JBoss MW Business Unit in 2014 and continued interaction with some of the smartest people I have ever worked with in Engineering, Product Management, and Marketing divisions of Red Hat.

Writing

The writing continued in 2013 with blogging, articles and a revision submitted for OpenShift Primer that should be released in early 2014.

I focused mainly on schabell.org (98 articles), howtojboss.com (33 articles), community.jboss.org (23 articles), and dzone.com for the technical writing I do throughout the year. I covered a wide range of topics and provided quite a few demo projects that you can also browse over on github.com.

I also wanted to challenge myself to write something different so I started working on short stories but only got one pushed out before turning to sport journalism (amateur). In April I applied and got accepted to help staff the RedSoxLife.com site, attempting to publish daily articles during the Red Sox baseball season. This was a magical task as I attended several games this year in Boston and following the team so closely while they went all the way and won the World Series was indescribable.

I plan to continue with all these writing tasks in 2014, so stay tuned!

Cycling

This year I spent a lot of time on the bike, cycling to prepare for my first vacation in the French Alps near Annecy. I got to climb top category mountains and several in the 20th stage of the 2013 Tour du France. This was fantastic and I wrote up a nice article including the tracked rides around Lac Annecy.

I also participated in the second annual Ries van der Velden Classic, going almost five and a half hours over 130 km's. It was a windy and long day but had a great time cycling in Red Hat kit for the cause.

I logged around 1500 km's over the year, a bit low for my normal season but a lot of these were spent climbing mountains and it was amazing!

Travels

I went on the road 18 times this last year and visited 22 cities in 10 countries. I got a few new destinations where I had never been to before, which is really nice. Here is a look at the destinations:

  • Madrid (4x)
  • Paris
  • Munich (3x)
  • Geneve
  • Boston, MA (3x) - attended MLB:  Red Sox vs Angles, Red Sox vs NYY 
  • Dallas, TX
  • Raleigh, NC
  • Emerald Isle, NC
  • Washington, DC - attended MLB: Nationals vs Rays
  • Singapore
  • Chicago, IL - attended MLB: Cubs vs Pirates
  • Hamburg
  • Aarhus, DK
  • London (2x)
  • Barcelona
  • Antwerpen
Many of these were for JUG's, JBUG's, conferences, and events. See the links for details as they are too numerous to list here.

That about sums up 2013. I am looking forward to 2014 as a year I am again privileged enough to share my stories with all of you.



Thursday, December 26, 2013

OpenShift Primer - a JBoss Business Resource Optimizer Preview

While working on a revision of the existing OpenShift Primer book I came up with a few new quickstart projects. One of the more exciting things coming soon the to the Red Hat JBoss products is the JBoss Business Resource Optimzer, based on the OptaPlanner project.

What is the OptaPlanner?

"OptaPlanner optimizes business resource usage. Every organization faces planning problems: provide products or services with a limited set of constrained resources (employees, assets, time and money). OptaPlanner optimizes such planning to do more business with less resources.

OptaPlanner is a lightweight, embeddable planning engine written in Java™. It helps normal Java™ programmers solve constraint satisfaction problems efficiently. Under the hood, it combines optimization heuristics and metaheuristics with very efficient score calculation."

To get you started I have put together a quickstart project based that allows you to preview the abilities of the JBoss Business Resource Optimizer in the form of two demos. It will optimize a data center for cloud usage and show you how to optimize a vehicle routing puzzle.

The example is available on OpenShift: http://optimizer-inthe.rhcloud.com/

It is more fun to put together your very own example, so here you can find the instructions as outlined in the demo project

Create an account at http://openshift.redhat.com
Create a JBoss EAP 6 application
rhc app create optimizer -t jbosseap-6
Add this upstream openshift-businesss-resource-optimizer repository
cd optimizer

git remote add upstream -m master git://github.com/eschabell/openshift-business-resource-optimizer.git

git pull -s recursive -X theirs upstream master
Then push the repo upstream
git push
That's it, you can now checkout your application at:
http://optimizer-$your_domain.rhcloud.com/optaplanner-webexamples-6.0.0-redhat-6

Enjoy!

Monday, December 23, 2013

Devoxx 2013 Parleys Channel Adds JBoss OpenShift Primer

As I mentioned previously, I was at Devoxx 2013 talking OpenShift Primer and how you can spin up a lot of JBoss into the Cloud along with almost any other application.

This talk was one of many JBoss talks recorded and released on Parleys.com. Over on Arun's blog you can find a complete listing of what we all did there during Devoxx 2013.

Here is the link to my talk recorded live in Antwerp:



Friday, December 20, 2013

JBoss Business Optimizer Demo - Get Started with Tech Preview


With the coming release of the Red Hat JBoss BRMS and BPM Suite products, one of the new Technical Previews, JBoss Business Optimizer, might just get looked over unless you happen to be interested in optimizing your resources.

We are here to rectify this situation and give you a couple of demos all rolled up into a JBoss Business Optimizer demo project. This demo will give you the chance to preview the new technology that comes from the community project OptaPlanner.

Within this demo project you will find two ready to use examples of how the JBoss Business Optimizer can be used. They are pre-installed for you with a minimum of fuss:
  1. git clone https://github.com/eschabell/business-resource-optimizer-demo.git
  2. read the Readme.md file.
  3. see the installs/README and download the listed products from https://access.redhat.com/jbossnetwork
  4. add the products to the installs/* directory.
  5. run the init.sh 
  6. enjoy the demos on http://localhost:8080/optaplanner-webexamples-6.0.0-redhat-6
The installation has a demo around vehicle routing and you can watch a video on the details behind the demo here:



The other demo is around resource planning in the Cloud, which also has a video on the background of the optimizer work being done here:

Thursday, December 19, 2013

JBoss BPM Suite - adding mock data to all demo projects


Previously I have announced the availability of demo projects that get you started with the Red Hat JBoss BPM Suite. There is the Generic Loan Demo, the Customer Evaluation Demo, and the Mortgage Demo.

The only thing really missing in these demos was a pre-installed set of mock data to fill the Process and Tasks dashboard with pretty graphics. Well, now we have added this to all three of the above mentioned demo projects!

Out of the box when you install these demos, behind the scenes 1000 instances are pumped into the H2 (in memory database used by these demos) to fill the dashboard with amazing graphical representations. Upon restart these will be re-populated, so each time you go there you will have a minimum of 1000 entries of mock data.

None of this mock data is related directly to the demo itself, but that is just fine, as each time you run an instance of the project process it will populate its results alongside the existing data. Just watch for your user name or process project name in the Process and Tasks dashboard.

For the latest versions that were tagged with these features we point you to these demo projects.
If all goes well you will see the installed mock data in the Process and Task Dashboard.

Dashboard filled with mock data.

Tuesday, December 17, 2013

JBoss BRMS Primer at the Radboud University Nijmegen

Today I gave my annual guest lecture on Business Rules based on a real life open source product to the students of Stijn Hoppenbrowers.

He invites me yearly to present a real world solution for the students to contrast the rather theoretical examples and projects that they have used up to that point.

The students are taking a business rules course on the way to a Masters in Information Technologies.

They get a tour through the JBoss Business Rules Management System (BRMS) product and a live demo at the end where I dig into what was discussed.

Here is the slide deck for those interested in following up:


Thursday, December 12, 2013

JBoss BPM Suite - examining the migrated Customer Evaluation demo

Customer Evaluation

This Customer Evaluation demo project has been around some time now, originally setup to get you up and running quickly with the JBoss BRMS product.

The project was originally developed and designed to show you how to integrate rules with a BPM process. It contained all the elements that you needed to setup, run, and demo the project in both the products web tooling and JBoss Developer Studio IDE.

We spent some time digging into how to migrate this from the JBoss BRMS product over to the newer early releases of JBoss BPM Suite product. An extensive look at the process, the touch points, and what it looks like in a direct comparison between the old project and the new was published previously.

Feel free to review to get the complete picture of how we arrived where we are now.

Introduction

With the coming release of the JBoss BPM Suite product, currently in Beta phase and available on the Customer Portal if you have a subscription, it was time to migrate this over to the new product. In this article we will walk you through the results, how it all works, and get you up and running with this
demo project.
Data Modeler

This article will not be diving into the migration details as this was covered in a previous article. We will start here at the point that you are just interested in how this particular demo works with the new JBoss BPM Suite product.

The installation of the demo project has been covered in the projects documentation directory and readme file which you can obtain from the github site, https://github.com/eschabell/bpms-customer-evaluation-demo. You can retrieve this with a simple 'git clone git://github.com/eschabell/bpms-customer-evaluation-demo.git' after which you can follow the step-by-step guide found in the Quick Start Guide. This is provided in both ODT and PDF formats. It is all kicked off by the init.sh script you will find in the project, which is quite verbose and points you to the various steps you might need to take should you have chosen not to read the provided Quick Start Guide.

Architecture

The new project setup deploys JBoss BPM Suite deployable EAP 6 war's into the JBoss EAP 6 application platform. The project has been updated completely to facilitate this install. You just need to get a copy of the project, provide copies of the products as described in the installs/README files, and run the provided init.sh script.
Process Designer

A target directory will be created, installing JBoss EAP 6.1.1, deploying JBoss BPM Suite components, copying over default configuration setting through the support/* files, and you are ready to rumble!

Deploying project

The initial setup to be demonstrated has two distinct parts. 

The first is the demo project that is supplied in a git repository that the installation has placed such that when you start the JBoss BPM Suite for the first time and login, you will be confronted with the project ready to go.

At this point you can wander around the various components and inspect the project artifacts as detailed in the Quick Start Guide. This project contains a rule, a process, and the data model in the form of two objects, a Person and Request. The data model you can view in the Data Modeler component.

To create the project maven artifact, you will need to Build & Deploy the project, see the Quick Start Guide for details. This is necessary to provide the rule, process, and data model for the development usage in the second part of this demo.

Japanese translation (日本語訳)
Running mvn install

Project integration

The second part of the project can be run after you have completed the Build & Deploy as described above. You will then be able to import the project you will find in projects/customer-evaluation-demo directory into your JBoss Development Studio and run the unit test that you find there.

This unit test is a demonstration of interaction based on the maven dependency you will find in the root pom file of the project. It states that it needs version 1.0 of the customer evaluation project. To pull this into your project you will need to run 'mvn install' from your JBoss Developer Studio with the JBoss BPM Suite running, giving you access to the maven artifact you built previously.

Once this artifact has been pulled into your local maven repository, the project unit test shows direct integration of your code with the artifact, running four tests over the demo process. Application development would now use the project maven artifact in this same fashion to call rules, interact with the process, and make use of the data model it provides.

Running unit tests

Feedback welcome

This is a quick dive into the details resulting from migration of an existing application to the new JBoss BPM Suite and can also be viewed as a standalone demonstration of rules integration with a BPM process. 

Please feel free to provide feedback and suggestions for this demo. We will take any and all pull requests that can improve the demo experience. We hope you enjoy this demo experience.

Monday, December 9, 2013

Open Source Conference Amsterdam 2013 - JBoss Integration & BPM together with a zeppelin Nemo fish

OSC 2013 in Amsterdam.

Previously I mentioned that I will be speaking at the Open Source Conference 2013 in Amsterdam, hosted by Red Hat in the Amsterdam Beurs van Berlage (the old stock exchange building) on the 6th of December.

It was an amazing day that included over 1000 attendees, over 160 attending my session with standing room only in the back (sorry about that guys), and fun had by all in the form of a flying zeppelin Nemo fish that zoomed around the Stock Exchange floor all day.
Flying zeppelin Nemo fish.

This fish was part of a competition to remotely try to get it to 'swim' through the air and through a large hoop that was hanging 10 meters over the Red Hat booth. It was a great idea and at the end of the day they gave the fish away to a young visitor (not sure how he got in to the event) just 6 years old. Apparently, he flew it through the hoop faster than any of the other adults in attendance!
JBoss Integration & BPM session.

My session covered JBoss Integration & BPM with a focus on the upcoming JBoss Fuse Service Works and JBoss BRMS / BPM Suite products. It was jam packed and I was approached at the booth afterwards by several attendees. There is a lot of interest in these coming products.

There were so many stands and people to talk to throughout the day that you were kept really busy. The Benelux team did a great job putting this event together and it was attended by some of the Red Hat big hitters.


My slides can be viewed online as well as the abstract as I previously mentioned.



There is also a promo video that was made of this event that includes an interview with Paul Cormier and you can see the fish flying around in the beginning of the video.


Friday, December 6, 2013

JBoss Developer Day in London 2013 - a day of integration, BPM, and OpenShift

Live demo of the BPM Suite & OpenShift

This week I was in London at the JBoss Developer Day to present in two session slots. The talks I posted previously, but the day itself was attended by a good group of customers and contacts that were both knowledgeable and engaged.

The setting was an intimate kind of theater workshop with an amazing cafe off the back with outstanding coffee for us in the breaks. I spent time chatting with many of them and also with several of my colleagues in sales, engineering, and support so the networking was as good as the sessions provided by the speakers.

The slides for both talks are provided here for your enjoyment.

A look into the crystal ball at JBoss BRMS and BPM Suite



OpenShift Primer - Get your applications into the cloud




Friday, November 29, 2013

Open Source Conference Amsterdam 2013 - JBoss Integration & BPM in the house

Previously I mentioned that I will be speaking at the Open Source Conference 2013 in Amsterdam, hosted by Red Hat in the Amsterdam Beurs van Berlage (the old stock exchange building) on the 6th of December.

Traditionally this event draws a great crowd, over 1000 attendees the last few years, registration is completely free so sign up now!

They have scaled back on my original planned two session, so I will only be talking about what is new in Integration & BPM, but look forward to seeing you there.

What’s new in JBoss Integration & BPM World

(Breakout Room 3, 14:55 - 15:25 hrs)

Join us for a session on the coming product launches of Red Hat JBoss Fuse Service Works (FSW), Red Hat JBoss Business Rules Management System (BRMS), and Red Hat JBoss Business Process Management Suite (BPM Suite). We will walk you through these exciting new technologies, what they are going to mean to you, and how they can be leveraged to expand your business into the future.

JBoss FSW is Red Hat’s middleware solution for application integration, messaging, SOA, and service governance requirements. It combines the core ESB technology from our Fuse product and technical innovations from popular open source communities like SwitchYard and Overlord. JBoss BRMS and BPM Suite are Red Hat’s next generation products for maximizing your business activities with rules, events, reporting, and processes by leveraging the popular open source communities Drools and jBPM.

Thursday, November 28, 2013

Migration Tips - moving projects from JBoss BRMS 5 to JBoss BPM Suite 6

Getting ready for your migration?

This migration article will try to put into perspective the daunting task that any developer faces when asked to evaluate the move from one version of a product to another.

Introduction

We will try to put the aspects that need your attention, allowing you to evaluate your personal project for migration to the new Red Hat JBoss BPM Suite v6.

It should be understood that the JBoss BPM Suite 6 product represents a superset of the JBoss BRMS 6 product. Therefore, by covering the BPM example project we will automatically cover rule project assets as we go along.

For the rest of this article we will be using an existing JBoss BRMS 5 project that we migrated to JBoss BPM Suite 6, providing the links to the projects code base both before and after the migration:
Please read the projects files for links to other articles describing requirements, products, and how to both install and run these demos in their respective IDE or product UI components. Also note the first demo project is more maturely documented at this time, the newer version will be expanding over time so check back regularly or feel free to submit any changes you feel could be of use.

Foundations

The backbone of the new JBoss BRMS & BPM Suite 6 products is based on using GIT as the repository for all your rule and process assets. Where as the older JBoss BRMS 5 product used a JCR repository based on Jackrabbit, we now seem to have the ability to migrate our projects into the new product with a single push of our project into a new repository.

Or is it not that simple?

Unfortunately it is not that easy. First you need to understand that the git backend is usable by all tools that support it. For example, the git CLI tooling you can use from your favorite shell work 100% with this repository. What is important to understand is that the current UI provided by the JBoss BRMS & BPM Suite products are not full git implementations. They currently interact in a very simplified way and when unable to interact will often just present an empty repository view.

To get the current product working correctly depends on adhering to the needed structure of your git repository. To ensure a project will be available in the products wonderful graphical interfaces, one should create an empty project within the UI with placeholder files for processes, rules, and whatever else you need. It is then a simple matter of running a git clone of this project into your favorite IDE to start migrating your project.

Once you have the project cloned, you can add your assets into the project in the correct locations based on the placeholder files. For example, I created an empty customer.bpmn2 file and added my customereval.bpmn2 file right next to it. I proceeded to then remove the old placeholder file and push this all into the repository. The UI of the product automatically picks up the changes and my process asset appeared for use in the designer.

Rules files import this same way without incident, other than that you will need to ensure your package name is aligned with your new project structure. The product has a UI that is tailored for a more business oriented user, therefore you can expect the old package naming of the customer evaluation demo, org.jbpm.customer.evaluation, to be more simplified. Ours turned out to be a simple package name of customer.evaluation so we adjusted this in our rules file and all was good.

The model for our project consists of two Java classes, or POJO's, a Request and a Person. These needed to be imported into the correct location for the form modeler component to identify, and they would not appear until the package name was corrected as discussed above.

There is a fundamental change in how you access your projects assets, so once you have the rules, processes, and your projects model in the product, this will be main available via a maven repository, built as a simple jar file. Below we will cover these details in the section Maven.

This means you can split your project into the code project that leverages your rules, events, and processes and the actual artifacts themselves. They will be contained in a project that deploys a jar that you leverage in your application code. Your unit tests will reside in your applications code project and leverage the generated jar dependencies.

The API's

The core API of the products has been fully refactored. You have to migrate everything you did to interact with the core of rules, events, and processes.

Eventually.

For now, you can use the provided backwards compatibility found in the knowledge-api.jar provided just for the projects that want to ride the old waves. Currently it can be found in the deployable-generic.zip, but that could change as the product approaches general availability (GA) status.

As for the other half of your enterprises code base, the unit tests that leveraged the jbpm-test.jar will need to be refactored. This jar does not provide for any backwards compatibility and we had to rewrite our existing unit tests. The good news is that the code is simplified, making your unit tests cleaner and easier to understand.

For both these jars, you can add them to your maven dependencies once these are made available. We have included and example internal repository where the maven dependencies are found, purely for your information in the migrated customer evaluation project.

The RestAPI has also changed. It will require some work to re-engineer your custom user interfaces that you might have created. The RestAPI provides you with access to the following areas:
  • Jobs
  • Repositories
  • Organizational units
  • Projects
  • Process instances, with or without vars (start, variables, details, abort, signal)
  • Work items (complete, abort)
  • History to view process instance completed
  • Comprehensive task interface
You can find documentation on this online at the Customer Portal.

JCR to GIT tooling

There is a community tool for migration of existing JCR repositories to the GIT repository format. At this time there was nothing to test but it is being exercised in the productization process.

Will this be the hammer that makes all your migrations look like a nail waiting to be hit?

Stay tuned for more on this as it has yet to be included in the early Beta releases.

Maven details

JBoss BRMS & BPM Suite products maintain a maven repository that you can add to your project for accessing the rules, events, and process project dependencies. Just add the following to your project pom file and you will be ready to locate dependencies:


   guvnor-m2-repo
   Guvnor M2 Repo
   http://localhost:8080/business-central/maven2/


As an example, assume that we have defined our customer evaluation project properly with a GAV (GroupID, ArtifactId, Version), we can then add the dependency for the version 1.0 jar as follows:


      customer
      evaluation
      1.0


Finally, the most important tip here is to never clone your repository from the filesystem, but always use the running product git URI. Referring to our running example of the customer evaluation demo, you would clone that outside of the product using CLI or your favorite IDE by accessing the project under:

# Never use the filesystem directly as it is not monitored by the product,
# so this is a bad practice: 
#
#    git clone file://{path-to-repo}/.niogit/customer.git
#
# This is the best practice, for example using git from a shell:
#
$ git clone git://localhost/customer

Cloning into 'customer'...
remote: Counting objects: 562, done
remote: Finding sources: 100% (562/562)
remote: Getting sizes: 100% (435/435)
remote: Compressing objects:  89% (388/432)
remote: Total 562 (delta 24), reused 72 (delta 21)
Receiving objects: 100% (562/562), 59.21 KiB, done.
Resolving deltas: 100% (198/198), done.

Task updates

The JBoss BRMS 5 product provided a task server that was bridged from the core engine by using, most commonly, the messaging system provided by HornetQ.

The new JBoss BPM Suite product will provide only support for the task server running locally, so no more messaging to be setup. To help you bridge the gap until you can migrate this in your current architecture, there is a helper or utility method, LocalHTWorkItemHandler. It can be found in the source code (separate download) if you want to investigate further at
jbpm-human-task/jbpm-human-task-workitems/src/main/java/org/jbpm/services/task/wih/util/LocalHTWorkItemHandlerUtil.java

Furthermore, the TaskService API is part of the public API, so there are just a few things to keep in mind when migrating:
  • package changes will cause a bit of refactoring your imports
  • some API changes will cause refactoring of methods
Customer evaluation demo
As most customers have created custom interfaces and interacted extensively with the human task component, expect to have some work here to migrate this area of your architecture if using tasks in your processes.

Migration in practice

Looking specifically at the project customer evaluation, we wanted to migrate a simple application that contains rules, a model, a unit test, and a process. This migration would provide factual evaluation as to the ease with which various aspects of the application could be migrated.

Here we would like to present the findings and point you to the project results (ongoing) of the migrated customer evaluation demo.

Unit Tests

We started with the unit tests and updated the pom.xml file to point to the internal production maven repository and included just the dependencies for the knowledge-api, plus the jbpm-test jar. This code snippet shows just the generic entries for the necessary jars, leaving out the exact version that is set as a property for the current release. You will also note that we leave out the repository entry that will be set to the maven repository you have the product dependencies stored in.


   org.jbpm
   jbpm-test
   ${bpm-suite-version}
   test



   org.drools
   knowledge-api
   ${bpm-suite-version}
   compile


Results of migration unit test.
Once these dependencies are in your project you can then begin the refactoring needed to change your current unit tests into the ones you will find working in the projects folder.

This includes an entry to eventually pull in the jar compilation of the product hosted artifacts, see the comments inline within the pom.xml file.

The initial setup used to involve a KnowledgeBase and a StatefulKnowledgeSession.

This has been reduced to just setting up a session strategy and RuntimeEngine.

# The createRuntimeManager() method and getRuntimeEngine() method are 
# both part of the provided testing harness found in JbpmJUnitBaseTestCase
# class that you can extend all unit tests off of.
#
createRuntimeManager(Strategy.SINGLETON, resources);
RuntimeEngine runtime = getRuntimeEngine(ProcessInstanceIdContext.get());

Where the older unit tests had to manipulate the sessions, we now have a streamlined case for each unit test.

@Test
public void underagedCustomerEvaluationTest() {
 // setup of a Person and Request.
 Person underagedEval = getUnderagedCustomer();
 Request richEval = getRichCustomer();

 // Map to be passed to the startProcess.
 Map params = new HashMap();
 params.put("person", underagedEval);
 params.put("request", richEval);

 // Fire it up!
 System.out.println("=========================================");
 System.out.println("= Starting Process Underaged Test Case. =");
 System.out.println("=========================================");

 KieSession ksession = runtime.getKieSession();
 ksession.insert(underagedEval);
 ProcessInstance pi = ksession.startProcess("org.jbpm.customer-evaluation", params);
 ksession.fireAllRules();

 // Finished.
 assertProcessInstanceCompleted(pi.getId(), ksession);
 assertNodeTriggered(pi.getId(), "Underaged");
 ksession.dispose();

 System.out.println("======================================");
 System.out.println("= Ended Process Underaged Test Case. =");
 System.out.println("======================================");
}

You will find the completely migrated unit test in the project src/test/java/CustomerEvaluationTest.java and can run this as a JUnit test.

From IDE to UI

The final step would be to import the existing rule, two Java classes that make up our domain model, and the BPMN2 process.
Designer with imported process.

To achieve this we started our JBoss BPM Suite and create a new repository and project. We then created empty placeholder files for the process and rule.


Back in our IDE we cloned the project with git clone git://localhost/customer and proceeded to locate the exact files we had inserted. We then removed these and added our existing rule and process files. After pushing them back into the project, they appeared in the UI project explorer. They only needed adjustments to the packaging as that had changed when we created our project, from a long package name to just customer.evaluation.

Importing the model was the same story, first creating an empty model via the form modeller
component and then replacing the file with our two java objects. Once the packages were adjusted to match the project definition, they appeared in the UI.

Form modeller with imported model.
The form modeller creates objects with annotations and our objects currently do not have them. This is causing some issues when we try to run the process (which builds and deploys). The JBoss BPM Suite attempts to generate a user task form to submit the initial process variables, but as they are objects and not the string fields we are provided, this fails.

Conclusions

These are the early days of JBoss BRMS & BPM Suite products, so an early look at the migration possibilities is just that, an early look. This is not the definitive guide to migrations, but a summary of the areas that will be affected and what you can expect based on a small sample application.

The issues around annotations on our model, dealing with importing a model, packaging paths all seem to be worth investigating further. This should be taken care of once the final documentation is provided for the product.

Note that the projects/customer-evaluation-demo is intended to be imported into your JBoss Developer Studio and interact with the running project in the BPM Suite. This is currently a work in progress, so watch for progress updates as the final product launch approaches.

We will continue to migrate our other demo projects and follow up with updates of what is encountered along these lines. Each project will be more complicated and involve exercising more and more of the product functionality, integration, and usability.

Monday, November 25, 2013

JBoss Developer Day in London 2013

Next week the Red Hat UK team has put together a lively schedule filled will excellent topics that will be presented by some of the best speakers on JBoss topics running around in Europe.

It will be held on Thursday, 5 Dec 2013 at Shoreditch Works Village Hall in London. It kicks off at 0930 hrs with registration and finishes up by bleeding over into the JBoss Architect MeetUp at 1730 hrs.

I was invited to host two sessions, one on the upcoming Red Hat JBoss BRMS & BPM Suite products and another based on the OpenShift Primer.

A look into the crystal ball at JBoss BRMS and BPM Suite

(10:15 - 11:00 hrs)
There is nothing like previewing the future of Business Rules and Business Process tooling. Be among the first one to leave footprints in the fresh snow as we take you on a tour of the JBoss Business Rules Management System (BRMS) and JBoss Business Process Management Suite (BPM Suite).

Attendees will be provided with the background architectures, a live demo of their capabilities, and a look at how they are Cloud enabled by the OpenShift cloud service. Join us for an hour of rules, processes, cloud, and crystal ball gazing!

OpenShift Primer - Get your applications into the cloud

(11:55-12:40 hrs)
Ever wondered about the new Cloud offerings out there? What is a PaaS? What is this thing called OpenShift?

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 an action-packed hour 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 Java project of your choice 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 OpenShift PaaS and see how investing an hour of your time can change everything you thought you knew about the Cloud!

(Speaker author e-book: OpenShift Primer, might give away free copies in this session)

See you there? 

Friday, November 15, 2013

Red Hat JBoss BPM Suite - Automated Lending with a Generic Loan Demo

Red Hat JBoss BPM Suite Generic Loan Demo

This article is brought to you by an example of our strong links to our partners, people who understand and leverage the Red Hat JBoss middleware products for their customers.

Last week for current Red Hat customers we have made the Red Hat JBoss BPM Suite Beta1 available. This is a milestone release on the way to a final version 6 release.

This demo originated from Dan-Grigore Pupaza who works for a Red Hat partner.

Without going into details that will be presented upon a final Beta release announcement soon, I wanted to give customers with access to the Beta1 release a head start by providing a completely automated setup of the JBoss BPM Suite, with a pre-configured generic loan demo project out of the box.

This project is setup like all my previous JBoss demos and therefore should be a snap for you to get started with. You just need to obtain the project, download the products from the Customer Portal, and push the start button.

Easy as can be!

For more details here is a bit of a walk through to get you on your way, starting with the Github hosted project bpms-generic-loan-demo.

Get project
# You will want to clone the project as follows.
#
$ git clone https://github.com/eschabell/bpms-generic-loan-demo.git

With this project still based on the Beta releases, the final documentation has not been added, therefore I provide the walk through in this article instead. This will be replaced with details quickstart documentation in the project you cloned above in the future, including a slide overview of the project architecture.

For now lets look at the directories and files provided.

Project structure
README.md - contains instructions and details to get started.
init.sh - the script to install and configure products and demo.
installs/ - directory to put the products for this demo, see README file there.
projects/ - directory containing the developer demo project for JBDS import.
docs/ - directory containing eventual demo documentation.
support/ - directory with all supporting files and configurations for installing project.

Once you have cloned this to your machine, you can then go to the Customer Portal and download the JBoss BPM Suite Beta1 product.
Download the last entry for JBoss EAP 6

The file you have downloaded will be called jboss-bpms-6.0.0.Beta1-deployable-eap6.x.zip, you will also need to download JBoss EAP 6.1.0, which can be found in the Customer Portal also.

Install products
# Download & copy to the installs directory. 
# Ensure that this file is executable by running:
#
$ chmod +x installs/jboss-bpms-6.0.0.Beta1-deployable-eap6.x.zip
$ chmod +x installs/jboss-eap-6.1.0.zip

Now you can execute in the project root directory the provided init.sh (or init.bat) file.

Installation output

You will now note that you have a new directory, target/ that contains the JBoss EAP server, an installation of JBoss BPM Suite, and a pre-configured generic loan demo project which you can start as follows.

Start JBoss BPM Suite
# The will run with this startup, installing a maven repository from
# the JBoss BPM Suite in the directory you start it from. 
#
$ ./target/jboss-eap-6.1/bin/standalone.sh
JBoss BPM Suite login

Once the product is started you can open a browser window to login to Business Central of the JBoss BPM Suite.

http://localhost:8080/business-central

There are a few roles defined and configured for the human task that is part of the generic loan demo.

User roles for demo
  • User erics with password bpmsuite, has all roles and admin rights.
  • User alan with password bpmsuite, has Loan Officer role.
    Select Project Authoring
For ease of initial use, login as the first user with full rights to use all functionality in the product, which will be shown in the screenshots used for the rest of this post.

After login you will see the initial screen with links to various parts and components of the JBoss BPM Suite. It has been pre-loaded with the generic loan demo so no need to use the Authoring -> Administration menu where you would start to either create a new repository and project, or import an existing one from some Git repository.

Project Explorer
We will go straight to the generic loan demo to inspect, build, and deploy our first instance of the process by selecting Project Authoring from the listing on the left of the screen. This will take you to the empty Project Explorer view with the generic loan project pre-selected in the right hand menus. This will then load all the existing project artifacts into the Project Explorer business user browser on the left hand side.

You can explore the various assets at your leisure and we leave that exercise to the reader. Please try to remember, this is an early Beta access version and there are issues to be fixed, see the project README.md for more details on what you can expect to encounter.

Project Editor
Now we want to build and deploy the project, so that we can start our very first instance to run through the demo. To do this we need to open the Tools -> Project Editor which will give you the Project Screen that has a Build & Deploy button at the top right corner.

Hitting that button will give a green bar pop-up that says Build successful if all goes well.

Build & deploy project
Now you can open the Process Management -> Process Definitions at the top to get to view your deployed project. You will see a single entry for the LoanApp and you can inspect it by clicking on the search spy-glass icon on the right, which provides process details.
Process started

The button New Instance at the top can be pressed to deploy a new process, which pops-up with your first form to submit a loan application.

The following data can be filled in to initiate the process.

Submit form
  • Name: erics
  • Age: 30
  • Income: 3000
  • Amount: 10010  (auto approval if under 10k, no human task)
  • Period (in months): 24
Hit the submit arrow at the bottom of the form and then you can then inspect the process progress, view the task list, and complete tasks as needed.

Monitoring (BAM)
For monitoring you can view the Process & Task Dashboard, especially as you claim and complete tasks from the Tasks List.
Monitoring dashboard (BAM), 1 completed

This completes the quick overview, which gets you started on working with the JBoss BPM Suite product.

One final note, the entire demo is running in memory, so if you restart your JBoss BPM Suite, you will lose your process data, instances, etc. Just re-run the jar tooling discussed above to reset your installation.

Open Source Conference Amsterdam 2013 - JBoss Integration, BPM, and xPaaS talks abound

I will be attending the Open Source Conference 2013 in Amsterdam, hosted by Red Hat in the Amsterdam Beurs van Berlage (the old stock exchange building) on the 6th of December.

Traditionally this event draws a great crowd, over 1000 attendees the last few years, registration is completely free so sign up now!

I will be giving the following two talks.

The JBoss Cloud Guide to all things xPaaS

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 an action-packed half hour where we take you through the Cloud Guide that covers everything and the kitchen sink! We have all the examples, demos, and practical tips for ratcheting up your knowledge of what is available right now in the world of open source JBoss based xPaaS functionality. Not only will you be able to setup diverse PaaS solutions, you will be shown how to leverage your existing application with the product of your choice - examples with JBoss BPM, Switchyard, Opta Planner, JBoss Mobile, JBoss Portal, and more leveraging the OpenShift PaaS in just minutes. 

If you want to learn more about the practicality of Red Hat's xPaaS vision and the role JBoss can play, see how investing an hour of your time can change everything you thought you knew about putting your business applications in the cloud, this session is for you!

What’s new in JBoss Integration & BPM World

Join us for a session on the coming product launches of Red Hat JBoss Fuse Service Works (FSW), Red Hat JBoss Business Rules Management System (BRMS), and Red Hat JBoss Business Process Management Suite (BPM Suite). We will walk you through these exciting new technologies, what they are going to mean to you, and how they can be leveraged to expand your business into the future.

JBoss FSW is Red Hat’s middleware solution for application integration, messaging, SOA, and service governance requirements. It combines the core ESB technology from our Fuse product and technical innovations from popular open source communities like SwitchYard and Overlord. JBoss BRMS and BPM Suite are Red Hat’s next generation products for maximizing your business activities with rules, events, reporting, and processes by leveraging the popular open source communities Drools and jBPM.