Laboratory Information Integration Hub Project

Hub Evaluation and Recommendation Document (Draft)

Contract number: Subcontract number \# 87587NBS23

Submitted to:

Margaret Gronvall

Technical Lead

Booz Allen Hamilton

Phone: (240) 314-5951

Mail to
[**gronvall_margaret@bah.com**](mailto:gronvall_margaret@bah.com)

Chris Jones

Sr. Subcontractor Administrator

Booz Allen Hamilton

Phone: 703-377-7305

Mail to
[**jones_christopher_a@bah.com**](mailto:jones_christopher_a@bah.com)

Submitted by:

![](media/image1.png){width="1.6041666666666667in"
height="0.3333333333333333in"}

Smita Hastak

101 West Renner Road, Suite 130

Richardson, TX 75082

July 14, 2006

Contact Information: E-mail
[**shastak@scenpro.com**](mailto:shastak@scenpro.com);
[**hastaks@mail.nih.gov**](mailto:hastaks@mail.nih.gov)

Telephone : 301/402-4063 ; FAX: 972/437-3611

***Laboratory Information Integration Hub Version 0.5***

HUB Recommendation Document (DRAFT)

**Version 1.0**

**07/11/2006**

Document Change Record

  ------------- -------------- -------------------------------------------
  Version       Date           Description
  Number                       

  1.0           *07/11/2006*   Initial document
  ------------- -------------- -------------------------------------------

TABLE OF CONTENTS

1\. Introduction [3](#introduction)

1.1 SCOPE [3](#scope)

1.2 Evaluation methodology [3](#evaluation-methodology)

1.3 Reference Documents [4](#reference-documents)

2\. Evaluation Criteria [5](#evaluation-criteria)

2.1 Compliance with caBIG™ Principles
[5](#compliance-with-cabig-principles)

2.2 Compliance with Published NCICB Technology Stack
[5](#compliance-with-published-ncicb-technology-stack)

2.3 Compliance with JBI Specifications (JSR 208)
[5](#compliance-with-jbi-specifications-jsr-208)

2.4 Supported Operating Systems [7](#supported-operating-systems)

2.5 Application Level Security [7](#application-level-security)

2.6 Transport Level Security [7](#transport-level-security)

2.7 Built in Support for Guaranteed Messaging
[8](#built-in-support-for-guaranteed-messaging)

2.8 Message Mediation [8](#message-mediation)

2.9 Workflow Orchestration [8](#workflow-orchestration)

2.10 Management Console [9](#management-console)

2.11 Quality of Documentation [9](#quality-of-documentation)

2.12 Installation Flexibility [9](#installation-flexibility)

2.13 Integrated Development Environment
[10](#integrated-development-environment)

2.14 Out of the Box Components and Services
[10](#out-of-the-box-components-and-services)

3\. HUB Product Options -- Preliminary SCreening
[11](#hub-product-options-preliminary-screening)

4\. Software Evaluation Matrix [13](#software-evaluation-matrix)

5\. USE CASES [18](#use-cases)

5.1 Administration [18](#administration)

5.2 Application Interface [19](#application-interface)

5.2.1 Loan Broker -- Sample Application
[19](#loan-broker-sample-application)

6\. IMplImentation References [22](#implimentation-references)

6.1 [www.ecubesystems.com]{.underline}
[22](#__RefHeading___Toc140452643)

6.2 LEADING ONLINE TRADING COMPANY [22](#leading-online-trading-company)

6.3 DEPARTMENT OF DEFENSE CONTRACTOR
[22](#department-of-defense-contractor)

7\. Conclusions and Recommendation [23](#conclusions-and-recommendation)

# Introduction

The overall goal of Laboratory Hub Integration project is to build a hub
system that can be adapted and extended to support multiple data formats
and whose value and usability can be pilot tested in one or more cancer
centers.

The Information Hub is defined as the software component that is
primarily responsible for receiving input from various external systems,
routing the input to various services that are hosted on the hub, and
eventually routing the output of those services to external systems.

This Hub Recommendation Document captures the evaluation criteria for
the selection of the software required for Information Hub. Various open
source software products have been evaluated and compared based on these
criteria. This document provides a report of this evaluation effort and
makes a recommendation accordingly.

## SCOPE

Due to the 6 month time frame of this project, the products chosen for
evaluation of the Information Hub to be utilized in the 0.5 version
release of the Information Hub Solution have not under gone a fully
exhaustive evaluation.

caBIG is the sponsor of this project as such the evaluation has been
limited to Open Source products only.

The evaluation methodology as detailed in section 1.3 has been used for
evaluation and recommendation of the product.

## Evaluation methodology

The evaluation steps taken for the assessment of the software required
for Information Hub included the following steps:

-   A set of evaluation criteria have been developed based on the
    overall goal of the project, compliance with caBIG principles,
    published NCICB future technology stack, and stated requirements.

-   A preliminary screening of available open source products was
    conducted

-   Based on the screening results, 3 dominant products were selected as
    candidates for further analysis. These products are Sun Project Open
    ESB, Apache Service Mix, and LogicBlaze Fuse.

-   Short listed products were installed on a development machine. The
    examples included as part of the each product's installation were
    tested and the product management consoles were used to start/stop
    applications. Each product's published documentation has been
    reviewed and compared against the evaluation criteria as well. The
    comparison matrix thus generated has been included as part of this
    document.

-   From this comparison matrix one product was short listed for further
    detailed analysis.

-   With the objective of meeting project goals a few use cases have
    been used to evaluate the short-listed product. This document
    includes details of the use cases, experiments conducted and the
    results.

-   Based on the comparison matrix and use case results recommendation
    has been made for the product suited for the project.

## Reference Documents

For additional project, and requirement specific information, refer to
the following documents:

-   Lab Hub Enterprise Architect Use Case Model

-   Hub Software Requirements Specification

# Evaluation Criteria

### 2.1 Compliance with caBIG™ Principles {#compliance-with-cabig-principles .unnumbered}

As the caBIG program is the primary sponsor, all work performed for this
project must be done in compliance with the caBIG principles. Software
that is used and/or developed in the context of this project must be
caBIG™ compatible at the silver level
(*https://cabig.nci.nih.gov/guidelines_documentation/caBIGCompatGuideRev2_final.pdf*)
and be made available to the community through resources provided by the
General Contractor. These requirements are

-   Open Source

-   Open Development

-   Open Access

-   Federation

### 2.2 Compliance with Published NCICB Technology Stack {#compliance-with-published-ncicb-technology-stack .unnumbered}

The Information Hub has been proposed based on JBI (Java Business
Integration) and J2EE standards and it must be in compliance with the
published NCICB Technology Stack
([*http://gforge.nci.nih.gov/docman/view.php/27/2380/caCORE31TechnologyUsage.xls*](http://gforge.nci.nih.gov/docman/view.php/27/2380/caCORE31TechnologyUsage.xls))
and be compatible with

-   J2EE 1.4

-   Java 1.5.0_06

### Compliance with JBI Specifications (JSR 208)

The overall goal of the project is to build a hub system that can be
adapted and extended to multiple data formats and whose value and
usability can be pilot tested in one or more cancer centers. This
objective is best served by building hub based on Java Business
Integration (JBI) Architecture.

JBI is based on JSR 208 specifications
*(<http://www.jcp.org/en/jsr/detail?id=208>).* The objective of JBI
standard is to provide a standard Message Exchange Patterns (MEPs) and
Service Provider Interface (SPIs) for business integration, to provide
standards for interfaces for key components in an integrated runtime
environment.

The specifications opens the way for integration of multiple
technologies such as B2B, BPEL, Messaging, Transformation, Scripting
etc. in a standard way, leading to a true component based design.

The JBI Specification defines three types of technologies: Service
Engines (SE s), Binding Components (BC s) and integration environment.
SEs provides business logic and transformation service to other
components. BCs provide connectivity to services external to JBI
installation. BC's convert protocol and transport specific messages such
as HTTP, SOAP, FTP messages to a normalized format

A key feature of JBI specifications is the insistence on interfaces -
not the internal structure -- of Service Engines and Binding Components.
Except for their interfaces to the integration environment, the
components are "black boxes", which makes them loosely coupled and can
be easily swapped with any other equivalent components.

Besides the interfaces JBI places only two requirements on SEs and BCs:
that the exchanges between components and environment be message based
(the MEPs) and that the interaction be defined in a standardized manner
(the SPIs, typically expressed in WSDL)

SEs and BCs interact using a standard internal normalized message format
(based on XML) and the exchanges happen using JBI runtime engine based
on a Normalized Message Router (NMR)

Following diagram depicts a simple view of a JBI Container. Application
A is an existing application, which has a need to exchange the data with
an incompatible application, Application B.

![](media/image2.png){width="7.020833333333333in"
height="2.3541666666666665in"}

Based on the JBI Specifications following requirements have been
selected as part of hub evaluation criteria:

-   Pluggable and Swappable Service Engines

-   Pluggable and Swappable Binding Components

-   Support for Normalized Message Format for internal messaging

-   Normalized Message Router

-   Loosely Coupled Services

-   Standard Message Exchange Patterns

-   WSDL and Service Registry Support

-   XML- Centric Messages

-   JBI Management Beans

-   Tools for Management and Installation of Components/Services

-   Support for JBI Deployment Units and Components

### Supported Operating Systems

The Hub should be able to deploy on popular operating systems identified
below. Specifically Linux being an open source OS, should be supported

-   Linux

-   Any Unix Platform that supports Java

-   Windows XP SP2

-   Windows 2000

###  Application Level Security

To authenticate and enforce access controls upon users of Hub, JBI
specifications drive a need to have a flexible API to provide access to
JAAS providers, and/or plug in an Authentication Module. Following
features are required to evaluate Application Level Security.

-   Support Java Authentication and Authorization Service (JAAS)

-   Support Pluggable Authentication Module Framework (PAM)

-   Support User-Based Authentication

-   WS-Security

### Transport Level Security

The need for secured communication with cancer centers, clients and
partners require support for:

-   SSL

-   HTTPS

### Built in Support for Guaranteed Messaging

For a messaging hub guaranteed messaging is a fundamental requirement.
"Guaranteed Messaging" has a number of dimensions, including:

-   Transactionality: ensuring completion of a process, even if the
    process is a composite application.

-   Message Persistence: continuing to persist the state of message
    exchange that is stopped, which may be due to failure of messaging
    subsystem, network or recipient.

-   Recoverability: the ability to restart a persisted message exchange
    at the point in the process where it had stopped.

-   Exactly Once Delivery: ensuring that a message is delivered once and
    only once to avoid duplicate processing of a process or a
    transaction.

-   Secrecy: protecting information from disclosure to outside parties.

### Message Mediation

As message moves from one point to another, multiple mediating
activities can take place. These activities include:

-   Smart Routing: As a message moves from one point to another there
    may be a need for routing the message from one destination to
    another, placing one message ahead of another in a queue, invoking
    other mediating activities.

-   Transformations: are the changes in data format in which message is
    presented to the target

-   Validation: validation of content or format or context etc to allow
    or prevent it to proceed further.

### Workflow Orchestration 

Orchestration is an ability to specify the sequence of services that
comprise a composite application and to execute that sequence in
response to the appropriate request. BPEL has emerged as a leading
standard for managing composite applications as such support for BPEL is
one of the evaluation criteria. Although BPEL may not be implemented
during the 0.5 release of the project, it is important that the product
chosen can support or supply the following:

-   BPEL Service Engine

-   BPEL Development Tool

### Management Console

Information Hub consists of several individual SEs, BCs and lightweight
components. There is a need to have a centralized monitoring and
management tool for administration of Hub and its various components.

-   JMX Interface: JMX interface provides a capability to take a feed of
    runtime parameters and statistics. This data is displayed on console
    for the Hub administration and tuning purposes.

-   Start/Stop Processes: Ability to start to stop processes from
    console is better than running commands from the command line.

-   Hot Deploy/UnDeploy Components: Ability to deploy and undeploy
    components at run time using console.

-   Monitor Component Performance: Parameters like message throughput,
    message count, messages in the memory, messages buffered (inbound
    and outbound) for hub and individual components,

### Quality of Documentation

Quality of documentation is an important factor, as it would help
application developers and administrators during the development,
deployment and production phases of the project. The list of
documentation that will be evaluated is provided below:

-   User Manuals

-   Installation Guides

-   Developer Guides

-   Example Use Cases

### Installation Flexibility

Flexibility in terms of being able to install either standalone or
embedded in an application component or as part of services supported by
an application server allows the component reuse through out the
enterprise.

-   Standalone

-   Embedded in an application component.

-   Part of Application Server

### Integrated Development Environment

An Integrated Development Environment would greatly enhance developer
productivity. The time frames in which a development and Integrated
Development Environment would need to be available in are as follows:

-   Currently Available

-   Availability in next 4 weeks

### Out of the Box Components and Services

Out of the Box components and services engines are that can easily be
modified or deployed on the Hub as is are very important for the
project. For the current and near future requirements, we are evaluating
the availability of the following components:

-   Email -- Support for sending email messages like critical admin
    support requirements etc.

-   HTTP/HTTPS -- Send and receive messages using HTTP

-   JMS -- Send and receive messages using JMS

-   FTP -- Send messages to a FTP Server as files. Poll a FTP location
    for incoming files

-   BPEL -- Message Orchestration Engine

-   Rules Engine -- Support for smart routing based on Rules.

-   Scripting -- Support for scripting language, required for routing,
    validation and transformation messages.

-   XSLT Transformation -- Transformation Engine based on XSLT
    (Spreadsheet) template

-   Validation -- Component for validating messages using XML Schema

-   Scheduler -- Support for a built in timer for scheduled service
    invocations.

-   SAAJ -- Support for invoking Web services using SOAP with
    attachments and Apache AXIS.

###  {#section .unnumbered}

# HUB Product Options -- Preliminary SCreening

The table below lists the open source products that were evaluated
during the preliminary screening process.

Table 3‑1

+----------+----------------+-------------------+--------------------+
| SOFTWARE | Supported By   | Advantages        | Disadvantages      |
+==========+================+===================+====================+
| MULE     | > SymphonySoft | -   Supports JBI  | -   Internals are  |
|          |                |     integration   |     not built on   |
|          |                |                   |     JBI            |
|          |                | -   Well          |                    |
|          |                |     documented    |                    |
|          |                |                   |                    |
|          |                | -   More mature   |                    |
|          |                |                   |                    |
|          |                | -   Open source   |                    |
|          |                |     with          |                    |
|          |                |     available     |                    |
|          |                |     paid support  |                    |
+----------+----------------+-------------------+--------------------+
| Service  | > Apache       | -   Built on JBI  | -   Poor           |
| Mix      |                |     technology,   |     documentation  |
|          |                |     Apache        |                    |
|          |                |     Foundation    | -   No             |
|          |                |                   |     implementation |
|          |                | -   Fully         |     track record   |
|          |                |     compliant     |                    |
|          |                |     with JBI      |                    |
|          |                |     standard      |                    |
|          |                |                   |                    |
|          |                | -   Potential for |                    |
|          |                |     industry      |                    |
|          |                |     standard      |                    |
|          |                |                   |                    |
|          |                | -   Supported by  |                    |
|          |                |     Apache        |                    |
|          |                |     Foundation    |                    |
|          |                |                   |                    |
|          |                | -   Open source   |                    |
|          |                |     with          |                    |
|          |                |     available     |                    |
|          |                |     paid support  |                    |
+----------+----------------+-------------------+--------------------+
| ERA HUB  | > NIH          | -   Developed by  | -   Work in        |
|          |                |     NIH           |     Progress       |
|          |                |                   |                    |
|          |                | -   Custom built, | -   Soft target    |
|          |                |     can be        |     for            |
|          |                |     modified at   |     completion,    |
|          |                |     will          |     may not meet   |
|          |                |                   |     NCICB time     |
|          |                | -   Interface     |     frames         |
|          |                |     documented    |                    |
|          |                |     and supported | -   Custom built,  |
|          |                |     by NIH        |     not JBI        |
|          |                |                   |     compliant, no  |
|          |                | -   Familiar to   |     open source    |
|          |                |     some of the   |     community      |
|          |                |     Research      |     support        |
|          |                |     Institutions  |                    |
|          |                |     and some      | -   No routing     |
|          |                |     commercial    |     capability yet |
|          |                |     vendors       |     (except to NIH |
|          |                |     (funded       |     eRA            |
|          |                |     SBIRS)        |                    |
|          |                |                   | -   Limited API    |
|          |                | -   Proven        |     for services   |
|          |                |     messaging     |     plugging       |
|          |                |     capability    |                    |
|          |                |                   | -   EbXML messages |
|          |                |                   |     only           |
|          |                |                   |                    |
|          |                |                   | -   Custom -- ad   |
|          |                |                   |     hoc metadata   |
|          |                |                   |     management,    |
|          |                |                   |     Registry not   |
|          |                |                   |     implemented    |
+----------+----------------+-------------------+--------------------+
| Project  | > Sun          | -   Open Source   | -   Project still  |
| Open ESB | > Microsystems |     Service Bus   |     in Beta. To be |
|          |                |                   |     released in    |
|          |                | -   Fully         |     October 06     |
|          |                |     Compliant     |                    |
|          |                |     with JBI      | -   Training and   |
|          |                |                   |     Paid Support   |
|          |                | -   Good          |     still not      |
|          |                |     Documentation |     available. Sun |
|          |                |                   |     is currently   |
|          |                | -   Full          |     working on it. |
|          |                |     Integrated    |                    |
|          |                |     Development   | -   Community      |
|          |                |     Tooling is    |     Support still  |
|          |                |     available in  |     in an          |
|          |                |     the NetBeans  |     incubation     |
|          |                |     5.5 beta.     |     stage.         |
|          |                |                   |                    |
|          |                | -   Some          | -   Currently      |
|          |                |     Community     |     supported on   |
|          |                |     Support       |     Sun            |
|          |                |     Available     |     Application    |
|          |                |                   |     Server PE. Not |
|          |                |                   |     yet certified  |
|          |                |                   |     to run under   |
|          |                |                   |     other open     |
|          |                |                   |     source         |
|          |                |                   |     Application    |
|          |                |                   |     Servers.       |
|          |                |                   |                    |
|          |                |                   | -   Available on   |
|          |                |                   |     Solaris and    |
|          |                |                   |     Windows        |
|          |                |                   |     platforms. Not |
|          |                |                   |     yet certified  |
|          |                |                   |     to be on Linux |
|          |                |                   |     platform       |
+----------+----------------+-------------------+--------------------+
| Lo       | > LogicBlaze   | -   Comprehensive | -   In the current |
| gicBlaze |                |     Open Source   |     version        |
| Fuse 1.1 |                |     SOA platform  |     clustering     |
|          |                |                   |     available only |
|          |                | -   Provided      |     at the broker  |
|          |                |     under Apache  |     level.         |
|          |                |     Software      |     Individual     |
|          |                |     License 2.0.  |     component      |
|          |                |     Gives         |     level          |
|          |                |     complete      |     clustering not |
|          |                |     rights to     |     available in   |
|          |                |     modify and    |     the current    |
|          |                |     distribute    |     version but    |
|          |                |     the code      |     expected in a  |
|          |                |                   |     later version  |
|          |                | -   Fully         |     available      |
|          |                |     Compliant     |     towards end of |
|          |                |     with JBI      |     the year.      |
|          |                |                   |                    |
|          |                |    Specifications | -   Developer      |
|          |                |                   |     Level          |
|          |                | -   Improved      |     Documentation  |
|          |                |                   |     not available. |
|          |                |    Documentation, |     Still work in  |
|          |                |     Use Cases     |     progress       |
|          |                |                   |                    |
|          |                | -   Single point  | -   Integrated     |
|          |                |     source for    |     Development    |
|          |                |     all required  |     Environment    |
|          |                |     components    |     currently a    |
|          |                |     for building  |     work under     |
|          |                |     a SOA based   |     progress.      |
|          |                |     ESB, which    |     Eclipse IDE    |
|          |                |     include       |     available      |
|          |                |     ServiceMix,   |     towards end of |
|          |                |     ActiveMQ,     |     July 2006.     |
|          |                |     BPEL,         |                    |
|          |                |     Scripting     |                    |
|          |                |     etc.          |                    |
|          |                |                   |                    |
|          |                | -   Certified and |                    |
|          |                |     validated     |                    |
|          |                |     code versions |                    |
|          |                |     for quality   |                    |
|          |                |     and           |                    |
|          |                |                   |                    |
|          |                |  interoperability |                    |
|          |                |                   |                    |
|          |                | -   LogicBlaze is |                    |
|          |                |     a Apache      |                    |
|          |                |     Certified     |                    |
|          |                |     provider for  |                    |
|          |                |     commercial    |                    |
|          |                |     support and   |                    |
|          |                |     training for  |                    |
|          |                |     ServiceMix,   |                    |
|          |                |     ActiveMQ      |                    |
|          |                |                   |                    |
|          |                | -   SLA based     |                    |
|          |                |     Commercial    |                    |
|          |                |     Support for   |                    |
|          |                |     Development   |                    |
|          |                |     and           |                    |
|          |                |     Production    |                    |
|          |                |     phases        |                    |
|          |                |                   |                    |
|          |                | -   Community     |                    |
|          |                |     based free    |                    |
|          |                |     support       |                    |
|          |                |                   |                    |
|          |                | -                 |                    |
|          |                |    Implementation |                    |
|          |                |     References    |                    |
|          |                |     Available     |                    |
+----------+----------------+-------------------+--------------------+

# Software Evaluation Matrix

Based on the preliminary screening in section 3 we have done a detailed
evaluation on Apache Service Mix 3.0, LogicBlaze Fuse 1.1 and Sun
Project Open ESB.

To accomplish this analysis, the following steps were performed on each
of these products:

-   Install the executable version of the software on Windows XP
    Professional SP2 in the lab.

-   Install the source code version of the software on Windows XP
    Professional SP2 in the lab. Build the executable version from the
    source version of the software.

-   Review the product documentation, installation guides, features
    guide, case studies, and white papers. Visit the product family
    websites and see the supporting products.

-   Install and run the example cases enclosed with the software.
    Monitor results

-   Start the management console and monitor the performance of
    different components of ESB. Try to start/stop/deploy/un deploy the
    components.

-   Join the community forums and open tickets. Check out the response
    time and quality of the response.

The results are as follows:

+----+--------------------------------------+---------+--------+------+
| ** | **Criteria**                         | *       | **Log  | **S  |
| S. |                                      | *Apache | Blaze  | un** |
| N  |                                      | Service | Fuse   |      |
| o. |                                      | Mix     | 1.1**  | Pro  |
| ** |                                      | 3.0**   |        | ject |
|    |                                      |         |        | Open |
|    |                                      |         |        | ESB  |
+----+--------------------------------------+---------+--------+------+
| *  | **Compliance with caBIG Principles** |         |        |      |
| *1 |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | Open Source                          | Yes     | Yes    | Yes  |
| *  |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | Open Development                     | Yes     | Yes    | Yes  |
| *  |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | Open Access                          | Yes     | Yes    | Yes  |
| *  |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | Federation                           | Yes     | Yes    | Yes  |
| *  |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | **Compliance with Published NCICB    |         |        |      |
| *2 | Future Technology Stack**            |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | J2EE 1.4                             | Yes     | Yes    | Yes  |
| *  |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | **Compliance with JBI Specifications | Yes     | Yes    | Yes  |
| *3 | (JSR 208)**                          |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | Pluggable and Swappable Service      | Yes     | Yes    | Yes  |
| *  | Engines                              |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | Pluggable and Swappable Binding      | Yes     | Yes    | Yes  |
| *  | Components                           |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | Support for Normalized Message       | Yes     | Yes    | Yes  |
| *  | Format for internal messaging        |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | Normalized Message Router            | Yes     | Yes    | Yes  |
| *  |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | Loosely Coupled Services             | Yes     | Yes    | Yes  |
| *  |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | Standard Message Exchange Patterns   | Yes     | Yes    | Yes  |
| *  |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | WSDL and Service Registry Support    | Yes     | Yes    | Yes  |
| *  |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | XML- Centric Messages                | Yes     | Yes    | Yes  |
| *  |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | JBI Management Beans                 | Yes     | Yes    |  Yes |
| *  |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | Tools for Management and             | Yes     | Yes    |  Yes |
| *  | Installation of Components/Services  |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | Support for JBI Deployment Units and | Yes     | Yes    | Yes  |
| *  | Components                           |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | **Supported Operated Systems**       |         |        |      |
| *4 |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | Linux                                | Yes     | Yes    | ?    |
| *  |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | Any Unix Platform which supports     | Yes     | Yes    | Yes  |
| *  | Java                                 |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | Windows XP SP2                       | Yes     | Yes    | Yes  |
| *  |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | Windows 2000                         | Yes     | Yes    |  ?   |
| *  |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | **Application Level Security**       |         |        |      |
| *5 |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | Support Java Authentication and      | Yes     | Yes    | Yes  |
| *  | Authorization Service (JAAS)         |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | Support Pluggable Authentication     | Yes     | Yes    |  Yes |
| *  | Module Framework (PAM)               |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | Support User-Based Authentication    | Yes     | Yes    |  Yes |
| *  |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | WS-Security                          | Near    | Near   |  ?   |
| *  |                                      | Future  | Future |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | **Transport Level Security**         |         |        |      |
| *6 |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | SSL                                  |  Yes    | Yes    |  Yes |
| *  |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | HTTPS                                |  Yes    | Yes    |  Yes |
| *  |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | **Built in Support for Guaranteed    |         |        |      |
| *7 | Messaging**                          |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | Transactionality                     | Yes     | Yes    | Yes  |
| *  |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | Message Persistence                  | Yes     | Yes    |  Yes |
| *  |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | Recoverability                       | Yes     | Yes    |  Yes |
| *  |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | Exactly Once Delivery                | Yes     | Yes    | Yes  |
| *  |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | Secrecy                              | Yes     | Yes    |  Yes |
| *  |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | **Message Mediation**                |         |        |      |
| *8 |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | Smart Routing                        | Yes     | Yes    |  Yes |
| *  |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | Transformation                       | Yes     | Yes    |  Yes |
| *  |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | Validation                           | Yes     | Yes    |  Yes |
| *  |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | **Workflow Orchestration**           |         |        |      |
| *9 |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | BPEL Service Engine                  | Yes     | Yes    |  Yes |
| *  |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | BPEL Development Tool                | Inc     | Incu   |  ?   |
| *  |                                      | ubation | bation |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| ** | **Management Console**               |         |        |      |
| 10 |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
|    | JMX Based                            | Yes     | Yes    |  Yes |
+----+--------------------------------------+---------+--------+------+
|    | Start/Stop Processes                 | Yes     | Yes    |  Yes |
+----+--------------------------------------+---------+--------+------+
|    | Hot Deploy/UnDeploy Components       | Yes     | Yes    |  Yes |
+----+--------------------------------------+---------+--------+------+
|    | Monitor Component Performance        | Yes     | Yes    |  Yes |
+----+--------------------------------------+---------+--------+------+
| ** | **Quality of Documentation**         |         |        |      |
| 11 |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
|    | User Manuals                         | [Poor]  | [      | Good |
|    |                                      | {.mark} | Good]{ |      |
|    |                                      |         | .mark} |      |
+----+--------------------------------------+---------+--------+------+
|    | Installation Guides                  | [Poor]  | [      | Good |
|    |                                      | {.mark} | Good]{ |      |
|    |                                      |         | .mark} |      |
+----+--------------------------------------+---------+--------+------+
|    | Developer Guides                     | Not     | Not    | Yes  |
|    |                                      | Present | p      |      |
|    |                                      |         | resent |      |
+----+--------------------------------------+---------+--------+------+
|    | Example Use Cases                    | Yes     | Yes    | Yes  |
+----+--------------------------------------+---------+--------+------+
| ** | **Installation Flexibility**         |         |        |      |
| 12 |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
|    | Standalone                           | Yes     | Yes    | No   |
+----+--------------------------------------+---------+--------+------+
|    | Embedded in an application component | Yes     | Yes    | ?    |
+----+--------------------------------------+---------+--------+------+
|    | Part of Application Server           | Yes     | Yes    | Yes  |
+----+--------------------------------------+---------+--------+------+
| ** | **Integrated Development             |         |        |      |
| 13 | Environment**                        |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
|    | Currently Available                  | No      | No     | Yes  |
+----+--------------------------------------+---------+--------+------+
|    | Availability in next 4 weeks         | Yes     | Yes    |      |
+----+--------------------------------------+---------+--------+------+
| ** | **Out of the box Components and      |         |        |      |
| 14 | Services**                           |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | Email                                | Yes     | Yes    |  Yes |
| *  |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | HTTP/HTTPS                           | Yes     | Yes    |  Yes |
| *  |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
|    | FTP                                  | Yes     | Yes    | Yes  |
+----+--------------------------------------+---------+--------+------+
| *  | JMS                                  | Yes     | Yes    |  Yes |
| *  |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | BPEL                                 | Yes     | Yes    | Yes  |
| *  |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | Rules                                | Yes     | Yes    | Yes  |
| *  |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | Scripting                            | Yes     | Yes    | Yes  |
| *  |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | XSLT Transformation                  | Yes     | Yes    | Yes  |
| *  |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | Validation                           | Yes     | Yes    | Yes  |
| *  |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
|    | Scheduler                            | Yes     | Yes    | ?    |
+----+--------------------------------------+---------+--------+------+
|    | SAAJ                                 | Yes     | Yes    | ?    |
+----+--------------------------------------+---------+--------+------+
| ** | **Project Status**                   | ** **   | ** **  |      |
| 14 |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | Incubation                           |         | ** **  | Yes  |
| *  |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| *  | Version Ready for Deployment         | Yes     | Yes    | No   |
| *  |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| ** | **Training and Support**             |         |        |      |
| 15 |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
|    | Free Community Support               | Yes     | Yes    | In   |
|    |                                      |         |        | cuba |
|    |                                      |         |        | tion |
+----+--------------------------------------+---------+--------+------+
|    | Paid Developer Level Commercial      | Yes     | Yes    | Not  |
|    | Support with SLA                     |         |        | yet  |
+----+--------------------------------------+---------+--------+------+
|    | Paid Production Level Commercial     | Yes     | Yes    | Not  |
|    | Support with SLA                     |         |        | yet  |
+----+--------------------------------------+---------+--------+------+
|    | Paid Product Training                | Yes     | Yes    |  Not |
|    |                                      |         |        | yet  |
+----+--------------------------------------+---------+--------+------+
|    | Single Point Whole Product Support   | No      | Yes    |  No  |
|    | for all required components for Hub  |         |        |      |
+----+--------------------------------------+---------+--------+------+
|    |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
| ** | **Certified Distribution**           |         |        |      |
| 16 |                                      |         |        |      |
| ** |                                      |         |        |      |
+----+--------------------------------------+---------+--------+------+
|    | Validated Code Versions for quality  | No      | Yes    |  No  |
|    | and interoperability                 |         |        |      |
+----+--------------------------------------+---------+--------+------+

Based on the results captured in the comparison matrix, Logic Blaze Fuse
is a better-suited product for the project requirements. More details of
Logic Blaze Fuse features are covered in the subsequent sections as well
as a use cases that were tested using Logic Blaze Fuse and the product
support.

# USE CASES 

## Administration 

In this use case we performed following activities:

-   Test Ease of Installation -- Logic Blaze Fuse1.1 code was downloaded
    from the [www.logicblaze.com](http://www.logicblaze.com/). The code
    is available as binary distribution as well as source distribution.
    Both distributions were downloaded in the lab on a Windows XP SP2
    machine; instructions were followed in the enclosed documentation
    for installation of the product. Product got installed in first
    attempt in a matter of few minutes.

-   Check the enclosed documentation -- User level documentation is
    available along with the code distribution. The documentation is
    clear and easy to follow.

-   Start/Stop the Server in standalone mode -- Logic Blasé Fuse 1.1
    server was started using the instructions in the enclosed
    documentation; Server came up cleanly. On following stop
    instructions the server went down also cleanly.

-   Test Management Console Features -- Following the steps detailed in
    "Logic Blaze Fuse Console Guide", console came up easily. Console is
    web based and consists of several portlets. These portlets are:

    -   JBI Container -- Displays software version of the JBI Container,
        Status (stopped/started). Allows user to start/stop the
        container.

    -   System Service -- Displays status of all the JBI system services
        and allows the user to start/stop the services. Some of these
        services are installation service, broker service,
        AdminCommandService, AutoDeploymentService etc.

    -   JBI Components -- Displays JBI Component details like - type of
        component (SE/BC), Status (Stopped/Started), and lets
        administrator start/stop a component.

    -   Components Statistics -- Polls the log files every second and
        display the information like inbound rate/count, outbound
        rate/count of messages, queue size etc.

    -   Archives Installed/Deployed -- Allow to install/uninstall and
        deploy/undeploy service assemblies and units. Displays the
        current status of these components.

    -   Brokers -- Lists the running Apache ActiveMQ Message Brokers

    -   Queues -- Monitors Apache ActiveMQ Queues

    -   Topics -- Monitors Apache ActiveMQ topics

## Application Interface 

As part of hub requirements we have identified following as key
requirements which we would like to test using sample applications

-   Ability to receive SOAP Messages using Web service calls from client

-   Ability to use a BPEL engine to orchestrate the messages

-   Ability to invoke applications like CSM, caAdapter, C3PR using
    Service Engines

-   Ability to invoke external web services to access applications like
    CTOM

We have two sample applications, which came bundled with Logic Blaze
Fuse 1.1; we used these applications to test our individual
requirements. These applications are

### Loan Broker -- Sample Application

![](media/image3.wmf)

In this use case

1.  The web client requests a loan rate from the Loan Broker system

2.  The loan broker BPEL service engine asks the Credit Agency for the
    credit rating of the loan requester.

3.  The loan broker solicits the best loan rate from multiple banks. The
    WS-Notification service engine sends the request amount, duration,
    and the loan requesters credit score to the banks.

4.  The bank responds to the loan broker with the best loan rate.

5.  The loan broker determines which bank had the best rate and returns
    that information to the requester (web client)

This use case is implemented with two banks. The message flow in the
application is as follows

![](media/image4.wmf)

Message Flow

1.  The web client is loan requester. It requests a loan rate by
    publishing a JMS message on an ActiveMQ queue.

2.  Loanbroker-jms receives the message. Loanbroker-jms is a binding
    component that can receive and process JMS messages. Loanbroker-jms
    will normalize the incoming message. Normalizing the message will
    put it in the neutral format that is used within the JBI system.
    After normalization, loanbroker-jms will pass the message along the
    intended recipient via the Normalized Message Router (NMR). In this
    case loanbroker-lb is the message recipient. Loanbroker-jms
    implements the In-Only Message Exchange Pattern (MEP).

3.  Loanbroker-lb is a front end to the BPEL process. Loanbroker-lb is a
    service engine (SE) and its job is to take the loan request and pass
    it to the loanbroker-bpel process. It then waits for a reply from
    the BPEL process. The loanbroker-lb is an aggregator; it receives an
    In-Out MEP on a callback endpoint. The response is sent back to the
    consumer as the Out message of the In-Out MEP.

4.  The loanbroker-bpel process receives the loan rate request. As the
    BPEL process is asynchronous, the incoming MEP for loanbroker-bpel
    is In-Only and the response is sent as In-Only MEP to a callback
    endpoint.

5.  First loanbroker-bpel must obtain the credit rating of the
    requester. To do this the BPEL process sends a message over the NMR
    to the loanbroker-ca process.

6.  Loanbroker-ca is a binding component. It translates the normalized
    message (which contains a credit rating request into a HTTP-SOAP
    message. This is done so that loanbroker-ca can communicate with the
    creditagency-http binding component. The MEP for the loanbroker-ca
    is In-Out.

7.  The creditagency-http BC passes the credit rating request to the
    creditagency-service.

8.  The creditagency-service processes the request and response. The
    response is sent back via a SOAP message over HTTP to the
    creditagency-http binding component.

9.  The creditagency-http binding component receives the HTTP+SOAP
    response from the creditagency-service and passes it to the
    loanbroker-ca binding component, also via HTTP-SOAP.

10. Loanbroker-ca normalizes the HTTP-SOAP message and sends it over the
    NMR to the loanbroker-bpel process.

11. Now that the BPEL process has the credit score information it can
    send the loan rate request to the banks. The loan request for the
    bank is sent to a WS-N process. This component would normally notify
    a group of banks of the request. The message exchange pattern for
    the loanbroker-bpel is In-Only.

12. bank0-wsn sends the loan request to Bank 0. The MEP is In-Only.

13. bank0-service processes the loan request and sends a response back
    to loanbroker-bpel using an In-Only MEP

> (Please note: In order to reduce the complexity message flow only for
> Bank 0 is shown. For other banks message flow has not been shown)

# IMplImentation References

Sections 6.1 -- 6.3 list implementation references provided by
LogicBlaze. These companies and organizations have chosen to utilize the
Fuse product within their respective environments.

## [[]{#__RefHeading___Toc140452643 .anchor}www.ecubesystems.com](http://www.ecubesystems.com/)

eCube has selected LogicBlaze FUSE as the underlying platform for its
eCube NXTware Evolution Server product, which provides mainframe
integration with COBOL and CICS transactions. eCube chose to build
NXTware Evolution Server 2.5 on the LogicBlaze FUSE platform for its
component-oriented SOA framework, and JBI-standard APIs. eCube extends
LogicBlaze FUSE with commerical JBI binding components for COBOL, CICS,
and CORBA interoperability.

## LEADING ONLINE TRADING COMPANY 

(NDA in place with LogicBlaze)

Company has selected the LogicBlaze FUSE platform to provide an
ultra-high performance transport for real-time data feeds. The Apache
ActiveMQ messaging component manages each subscription profile and
publishes updates to Jetty for transmission to the clients. Jetty is
providing container services in addition to managing the I/O overhead
for HTTP. This streaming portfolio management application monitors any
dynamic combination of a collection of 30,000 data points. In the
Jetty/AJAX-based web client configuration, the platform has scaled over
10,000 concurrent clients on a single instance with continuous data
streaming.

## DEPARTMENT OF DEFENSE CONTRACTOR

(NDA in place with LogicBlaze)

Company is developing an embedded software framework that uses
LogicBlaze FUSE as the platform for their Service Oriented Architecture.
Company selected LogicBlaze FUSE because of mission-critical message
performance. The solution provides real-time, in-flight operational
commands via packet messaging over military-band radio frequency
communications. LogicBlaze FUSE provides an event-driven architecture
using services that interact over a JBI-compliant Normalized Message
Router (NMR). Multiple instances of the ActiveMQ messaging component are
clustered to form a single logical NMR across the cluster for purposes
of data replication. In-flight vehicles utilize an auto-discovery
algorithm in FUSE to join/leave the cluster as necessary allowing for a
very dynamic system.

# Conclusions and Recommendation

Based on the lessons learned during our evaluation process and our
findings from the website, reference documentation of Logic Blaze Fuse
we summarize our findings about LogicBlaze fuse as follows:

-   LogicBlaze Fuse is provided under the Apache Software License 2.0
    (often referred to as "ASL"). LogicBlaze has taken care to ensure
    that the distribution does not include any components, libraries or
    technologies licensed under the General Public License (GPL) or
    Lesser General Public License (LGPL). The most obvious benefit of
    Apache 2.0 License is that, unlike GPL or a LGPL, it gives
    organizations the right to modify the code and redistribute it
    without restriction. The full text of ASL can be found at
    http://[www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)

-   Logic Blaze bundles best of breed of components from the open source
    community and ensures that the distribution contains a stable and
    interoperable code base from all the components. LogicBlaze has
    selected components from strong open communities with a robust pace
    of innovation and development

-   LogicBlaze Fuse is a comprehensive SOA runtime platform provided as
    an open source distribution. Figure 6-1 depicts the general
    structure of the platform:

Figure 7‑2

![](media/image5.wmf){width="5.331944444444445in"
height="7.236805555555556in"}

(General Structure of LogicBlaze Fuse)

-   LogicBlaze offers a free community based support. It also offers a
    commercial SLA based support for

    -   Development

    -   Production Environment

It is the recommendation of the Laboratory Information Integration Hub
team that LogicBlaze Fuse be selected and utilized as the
integration/messaging hub for the Laboratory Information Integration Hub
project.

It is also recommended that NCICB purchase commercial product support
for this product before the product is deployed in the production
environment.