Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current Restore this Version View Page History

« Previous Version 2 Next »

BigBank demonstrates a complete distributed, multi-cluster loan processing 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. 

Deploying to a Single VM

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

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). 

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

Start the server.

Boot the Fabric3 runtime from the server/vm/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:

  • Launch the shared H2 database process from cluster/database: java -jar target/h2-1.2.140.jar 
    * From the controller/target/image/bin directory: java -jar server.jar controller
 
    * From the zone1/target/image/bin directory: java -jar server.jar participant
 
    * From the zone2/target/image/bin directory: java -jar server.jar participant

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.