Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Introduction

BigBank (download) demonstrates a complete distributed, multi-cluster loan processing distributed online banking application. BigBank is organized into several architectural tiers:

  • A loan service tier responsible for providing a RESTful and WS-* web service that receives loan applications.
  • A back-end services tier responsible for performing credit checks, rating, pricing, and managing approvals.
  • A consumer web-based UI for submitting new applications and reviewing loan status.
  • A back-office web-based UI for managing loan approvals and viewing real-time business events and statistics.  
  • A database tier for persisting loan application data.

BigBank can be deployed to the single-VM runtime used for the starter examples or deployed to the two-cluster topology that is configured under servers/cluster. In either case, configuration remains the same. When deployed to the cluster environment, the loan service and web UIs will be deployed to the cluster zone1 while the back-end services will be deployed to the cluster zone2. Fabric3 will wire the services by transparently provisioning a number of JMS queues and topics. 

...

  • modern API tier that exposes REST services for account balance, financing (loans), and payments.
  • A backend tier that simulates legacy services accessed vis Web Services (WS-*) and JMS.
  • A high-performance, event-driven fraud detection subsystem built using ZeroMQ.

Getting Setup

To build and deploy BigBank to the single-VM server, do the following:

...

1. Build the BigBank source

...

To build BigBank, go to apps/bigbank and execute: mvn clean install.

The build will produce three archives: the loan application and back-end services contribution (bigbank-loan-<version>.jar); the consumer UI (bigbank-web-<version>.war); and the back-office UI (bigbank-backoffice-<version>.war). 

Info

Note both web applications currently do not support Internet Explorer. Please use FireFox, Chrome, or Safari.

Start the server.

Boot runtime images in /servers.

2. Start the servers

When the build has completed, boot the Fabric3 runtime from the servers/server-backend/vmtarget/image/bin directory by executing:

java -jar server.jar



Deploy the archives.

Copy bigbank-loan-<version>.jar to the severs/vm/target/image/runtimes/vm/deploy directory. Next, copy the two war archives to the deploy directory.

Deploying to a Distributed Domain

The samples distribution also contains an automated build process for producing a set of clustered servers. To create the clustered servers, execute the following from the servers/cluster directory:mvn clean install.
 The build will create three server images located in the target directory of each module under /servers/cluster: controller, zone1, and zone2.

Follow the steps in the previous section to build the BigBank application. When the build completes, launch the H2 database, controller and zone runtimes:

...

Alternatively, the server can be started by providing the path to the server.jar archive relative to the current directory. e.g.:

java -jar target/image/bin/server.jar

 

Next, boot  the Fabric3 runtime from the servers/server-frontend/target/image/bin

...

After booting, the runtimes will discover each other and form a distributed domain consisting of two clusters (zones). Note the runtimes may be on the same machine or different machines. Copy the BigBank archives to the controller/target/image/runtimes/controller/deploy directory. The controller will provision the loan service and web UIs to zone1 and the backend services to zone2.. 

3. Run the clients

From your IDE, launch one of the clients located in the client module.