Enterprise Java

A Micro Services 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. travel-agency

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 micro services migration.
JBoss Fuse based micro services 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 micro services 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 micro services 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.

compensation-process

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. Download and unzip.
  2. Add products to installs directory.
  3. Run ‘init.sh’ or ‘init.bat’ file. ‘init.bat’ must be run with Administrative privileges.
  4. Start the JBoss BPM Suite server, login, build and deploy JBoss BPM Suite process project at http://localhost:8080/business-central (u:erics/p:bpmsuite1!).
     
    Containers auto setup for you!
    Containers auto setup for you!
  5. Add fabric server passwords for Maven Plugin to your ~/.m2/settings.xml file the fabric server’s user and password so that the maven plugin can login to the fabric.
    <!-- Server login to upload to fabric. -->
     <servers>
         <server>
             <id>fabric8.upload.repo</id>
             <username>admin</username>
             <password>admin</password>
         </server>
     </servers>
  6. Start Fuse Server, by running ‘fuse’ or ‘fuse.bat’:
     
    External client web application showcasing RestAPI integration!
    External client web application showcasing
    RestAPI integration!
  7. Login to Fuse management console at: http://localhost:8181 (u:admin/p:admin).
  8. 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.

Looking to Automate your business?
Looking to Automate your business?

You can now run the process by submitting through the client web application at: http://localhost:8080/external-client-ui-form-1.0

The process will now be using the various micro services 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.

Eric Schabell

Eric is Chronosphere's Director Technical Marketing & Evangelism. He's renowned in the development community as a speaker, lecturer, author and baseball expert. His current role allows him to coach the next generation of technical marketers & evangelists helping the world to understand the challenges with cloud native observability. He brings a unique perspective to the stage with a professional life dedicated to sharing his deep expertise of open source technologies and organizations. Follow on https://www.schabell.org.
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Back to top button