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

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:

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.