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.
Acquisition use case
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.When a company acquires a sister company, there is often a period of merging systems, applications and most importantly data stores.
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.
This is a solution based on data integration, where we areIt 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.
“…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.
Interested in finding out more?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.
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.
- (OPTIONAL) First ensure you have an OpenShift container based installation, such as one of the following installed first:
- OCP Install Demo
- Red Hat Container Development Kit (CDK) using Minishift
- or your own OpenShift installation.
- Download and unzip this demo.
- Add products to installs directory. For example download and add BPMS installer into the installs directory.
- 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.
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
- 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.
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
The 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.
|Published on System Code Geeks with permission by Eric Schabell, partner at our SCG program. See the original article here: AppDev in the Cloud – Data Virtualization Solves Acquisition Use Case|
Opinions expressed by System Code Geeks contributors are their own.