Cars Online Part 4 - Customer Search With MDM
By The Old Toxophilist on Feb 23, 2010
This is the Second entry in this trail that is GlassFish ESB (Open
ESB) and will look at the Search For Customer functionality. We assume
that the Cars Online application is used as a car sales application is
part of a larger corporate implementation. The assumed company also has
dealings with finance and insurance which has been built up by
acquisition. Hence they will be using a MDM Solution to manage their
Therefore we have implemented a simple Customer MDM solution using
the OpenESB MDM implementation building a Customer orientated solution
which we will integrate with using a BPEL Process.
The Business Process bsCustomerSearch.bpel receives the Customer
Search Information, entered on the "Customer Details" Screen, and then
accesses the MDM implementation using the generated API. First the
process attempts to find an exact match and if this failed will use the
Block search to find a number possible matches. Once the search has
completed all possible matches and their associated score are returned
to the Search screen and the user can cycle through them.
I used the GlassFish ESB Healthcare Pack to build the
MDM rather than the Mural Download because I needed to run the NetBeans
Applications under 6.7.1.
The screen you see below was briefly described in the first entry of
this trail. Within this entry we will look at the functionality behind
the "Search" Button. The data entry fields on the Customer details
screen also double as the search entry screens and when the user
selects the search button. On selecting the Search button the backing
to retrieve the contents and then write them to the Java Session before
calling the AjaxCustomerSearchServlet which will retrieve all the
search information and build the Web Service call associated with the Search Business Process which
will be described later.
Once the data has been retrieved by the Business Process and
returned to the Servlet and then, via a JSON Array, to the
using the next and previous buttons (only displayed when multiple
records have been returned). The current record number and its MDM
Matching score are displayed. As the user moves through the record all
the fields and the Google map will be updated and once the user has the
correct record they can move onto the next screen by selecting the
"Payment Terms" button thus saving the Customers data.
Returning to the Search screen will re-initialise the result data
and display all the information associated with the previously accepted
Search results. If the user need to perform a new Search then the data
can be simply cleared using the "Clear" button.
The search Business Process attempts to identify the Customer in a
number of ways based on the Search Criteria passed in. At first the
process will try to do an Exact Match on the customer and if this work
the single record data will be returned tot he user. As can be seen
from the image below if the Exact Search does not return a single
records we will proceed to do a Block Search based on the MDM
configuration. Given the data entered into the MDM this will the three
rows shown in the next section.
You can see that I have also added the option to execute a phonetic
search if the Block Search does not return any results but this is
essentially a place holder at present until I extend the search so that
the user can specify the type to execute.
As mentioned the MDM implementation is based on that contained
within the GlassFish ESB Healthcare Pack, because I am using GlassFish
2.2 and NetBeans 6.7, but you can achieve the same functionality by
downloading the Open ESB implementation. I installed the Mural Product,
as described on the Mural Site,
and then implemented a Customer MDM solution, as described in the Tutorial,
and created an number of external systems.
These external systems we then populated, manually, with a number of
customer records and validated using the generated MDM application. The
image below shows the expected data when searching for Melanie Wilson
and it can be seen from the images in the first section that the data
returned and displayed on the screen matches the expected contents of
the MDM search.