Skip to content

cicsdev/cics-banking-sample-application-cbsa

Repository files navigation

cics-banking-sample-application-cbsa

The CICS Bank Sample Application (CBSA) is an application which simulates the operation of a bank, from the point of view of the Bank Teller. CBSA has multiple uses here are a few examples:

  • CBSA can be used as a teaching/learning aid, as all source code is provided. It demonstrates how various technologies can be integrated together; CICS, COBOL, BMS, Db2, SQL, Java, Liberty, Spring Boot etc.
  • CBSA provides an example of a traditionally written CICS application that has been extended over time, and is structured in a way that is recognisable to most CICS TS customers - so it can be used a conversation piece for discussions around the application development lifecycle.
  • CBSA can be used straight out of the box for testing purposes. For example: the testing of CICS interactions, or for testing verification/validation/interaction of IBM and vendor tool offerings.
  • CBSA can be used as the building block for application modernisation conversations.

Table of Contents

About

There are multiple different interfaces exploiting a range of different underlying technologies.

The first interface is the base COBOL (BMS) interface:

Main Menu


The second interface is the Carbon React UI interface:

Carbon React Main Menu


The third interface is the Customer Services interface:

CS Landing Page


The fourth interface is the Payment interface:

Payment Landing Page


There is also a RESTful API please refer to the CBSA RESTful API Guide for more detailed information.

The interfaces are designed to exploit the underlying banking functionality, which includes functions to:

  • Pay money in
  • Take money out
  • Transfer funds
  • Open new accounts etc. etc.

Architecture

Payment and CS architecture diagram2

Please refer to the Architecture documentation for more detailed information.

Requirements

  • An existing CICS TS region running at V6.1 with APAR PH60795 applied, or later
  • A Db2 subsystem (V12 or later)
  • A Liberty JVM server in CICS (set up and configured during the installation process) for the Carbon React UI and Spring Boot interfaces
  • Java 17
  • Yarn to build the web front-end
  • Various VSAM files (set up and configured during the installation process)
  • A z/OS Connect server (if the RESTful API or the Customer Services or Payment interfaces are required)
  • A Maven wrapper is used to build the Java components. This is included for your convenience.

Downloading

  • Clone the repository using your IDEs support, such as the Eclipse Git plugin
  • or, download the sample as a [ZIP] from the release page and then follow the installation instructions (see Installing).

Tip: Eclipse Git provides an 'Import existing Projects' check-box when cloning a repository.

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Installing

Installation instructions:

Installation of CBSA is split into 3 parts :

  1. The base COBOL(BMS) installation, this is mandatory and should be installed first. See the base COBOL installation documentation.
  2. The Carbon React UI installation, this is optional, requires a JVM server to be running in the CICS region (this gets set up as part of installation process). See the Carbon React UI installation documentation.
  3. The Customer Service and Payment interface installation (also optional). See deploying the Payment and Customer Services documentation.

Usage

Various user guides are provided:

  1. For the base/COBOL(BMS) interface please refer to the CBSA BMS User Guide.
  2. For the Carbon React UI please refer to the CBSA Carbon React UI User Guide.
  3. For the Customer Services interface please refer to the CBSA Customer Service User Interface User Guide.
  4. For the Payment interface please refer to the CBSA Payment Interface User Guide.
  5. For the RESTful API guide please refer to the CBSA RESTful Api Guide.

Contributors

Jon Collett - JonCollettIBM

James O'Grady - JAMOGRAD

Tom Slattery - Tom-Slattery

Christopher Clash - ChristopherClash

License

This project is licensed under Eclipse Public License - v 2.0.