Eric D. Schabell: AppDev in the Cloud - Data Virtualization Solves Acquisition Use Case

Tuesday, January 23, 2018

AppDev in the Cloud - Data Virtualization Solves Acquisition Use Case

appdev cloud data virtualization
In a past role I helped put together a rather expansive travel agency booking project to show some of the more interesting feature of JBoss BPM Suite.

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.

An interesting use case came to light that required the use of a data virtualization tool and this travel booking example project was a perfect fit. It's a use case where a sister travel agency is acquired mid-booking season and we don't want to have to re-deploy new applications to account for maintaining data in two disparate location.

Before we get into the solution, let's look closer at the use case shall we?

Acquisition use case

appdev cloud data virtualization
Disparate data sources simplified into single bookings view.
When a company acquires a sister company, there is often a period of merging systems, applications and most importantly data stores.

While this often takes time, there are use cases where the time to merge is not immediately available and business needs dictate a more agile solution.

The initial travel agency booking project stored its data in its own company data stores, but after acquiring a sister agency at the start of the booking season it became necessary to find more flexible solutions to maintaining data integrity across two organizations while using the same booking system. The data viewed should consolidate from all the disparate sources to provide the booking system users with a simplified overview of the final bookings data.

appdev cloud data virtualization
Process application and data virtualization services
deployed in single pod, but two separate containers.
It became apparent that modification to the booking application would not be possible, so the solution would be to find out how to leverage the existing data model to map the data through to two different backend data stores.

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

As JBoss Data Virtualization (DataVirt) is ideally suited for this type of integration we went ahead an put together an example of this that is a fully integrated a working JBoss BPM Travel Agency with JBoss DataVirt virtualized data sources that allow us to gather both Flight and Hotel information.

appdev cloud data virtualization
OpenShift Container Platform 3.7
Now the catch was to update this local solution by moving it to a container-based deployment strategy and push it out into the cloud.  In this elegant solution, a single OpenShift Container Platform pod is used and the builds for the BPM booking process is delivered in one container and its data services is delivered in a second container.

Interested in finding out more?

Data integration example

This demo is to install a Travel Agency process driven application in the Cloud based on the OpenShift Container Platform (OCP). It contains multiple web services for looking up data for the process and rules to calculate pricing. Furthermore, there are several tasks that can be activated to evaluate pricing and to review the final booking data before completing the booking.

This is an online employee travel booking process project. It contains multiple web services for looking up data for the process and rules to calculate pricing. Furthermore, there are several tasks that can be activated to evaluate pricing and to review the final booking data before completing the booking.

To setup this project there are just a few simple steps to get going.

Install Travel Agency Acquisition on OpenShift

  1. (OPTIONAL) First ensure you have an OpenShift container based installation, such as one of the following installed first:
  1. Add products to installs directory. For example download and add BPMS installer into the installs directory.
  2. Run 'init.sh':
   # The installation needs to be pointed to a running version
   # of OpenShift, so pass an IP address such as:
   #
   $ ./init.sh 192.168.99.100  # example for OCP.
    appdev cloud data virtualization
    Within BPM BAM dashboard, data display offered.
  1. Log in to Travel Agency Acquisition project to start exploring an online bookings application (the address will be generated by the init script):
  • OCP example: http://rhcs-travel-agency-aquisition-appdev-in-cloud.192.168.99.100.nip.io/business-central ( u:erics / p:bpmsuite1! )
     - build project: open menu Project Authoring -> 
    Open Project Editor -> Build -> Build & Deploy
    
  1. Create custom Dashboard entry for monitoring the external JBoss DataVirt virtualized DB views:
    - select menus Dashboards --> Business Dashboards 
    
    - select Administration -->  External Connections 
    
    - select Create New Datasource and select radio box Custom Datasource
    
    - fill in form as follows:
    
        - Name: TravelVDB
    
        - Url:  jdbc:teiid:TravelVDB@mm://localhost:31100
    
        - DB Driver Class:  select Teiid
    
        - User:  teiidUser
    
        - Password:  admin_24
    
        - Test query:  select 1
    
    - select Check Datasource, if all goes well then Save this configuration.
    
    - select in Workspace pulldown menu top left the entry 'Flight and Hotel Bookings' to view virtualized tables and data.
    
    - monitor these when running process instances.
    
    
  2. Submit and process a booking from customer booking form (see Booking a Trip below):
  • OCP example web app: http://rhcs-travel-agency-acquisition-appdev-in-cloud.192.168.99.100.nip.io/external-client-ui-form-1.0

appdev cloud data virtualizationThe process driven application uses the various data sources and the BPM BAM dashboard provides a running live view as fights and hotels are being booked.

We hope you enjoy this AppDev in the Cloud solution and invite you to browse for more at Red Hat Demo Central solution collection.