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.
- About
- Architecture
- [Comparison][#comparison]
- Requirements
- Downloading
- Installing
- Usage
- Contributors
There are multiple different interfaces exploiting a range of different underlying technologies.
The first interface is the base COBOL (BMS) interface:
The second interface is the Carbon React UI interface:
The third interface is the Customer Services interface:
The fourth interface is the Payment interface:
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.
CICS Sample Application Comparisons | ||
---|---|---|
FEATURES | CBSA | GENAPP |
Programming Languages | ||
Assembler | ✅ | ❌ |
COBOL | ✅ | ❌ |
Java | ✅ | ❌ |
JavaScript | ✅ | ❌ |
Interfaces | ||
BMS/3270 | ✅ | ✅ |
Liberty | ✅ | ❌ |
Spring Boot | ✅ | ❌ |
z/OS Connect | ✅ | ❌ |
Data | ||
Db2 | ✅ | ✅ |
JDBC | ✅ | ❌ |
VSAM | ✅ | ✅ |
Build | ||
JCL - COBOL Components | ✅ | ✅ |
Maven - Java Components | ✅ | ❌ |
Other | ||
EXEC CICS API calls | 30 | 27 |
Support via GitHub Issues | ✅ | ❌ |
Open Source | ✅ | ✅ |
Event Binding | ❌ | ✅ |
Workload Simulator Scripts | ❌ | ✅ |
Please refer to the Architecture documentation for more detailed information.
- An existing CICS TS region running at V6.1 or later
- A Db2 subsystem (V12 or later)
- A Liberty JVM server in CICS (set up and configured during the installation process) for the Liberty UI and Spring Boot interfaces
- Java 17
- Apache Maven on the workstation (to build the Liberty UI, Customer Services and Payment interfaces)
- 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)
- 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.
Installation instructions:
Installation of CBSA is split into 3 parts :
- The base COBOL(BMS) installation, this is mandatory and should be installed first. See the base COBOL installation documentation.
- The Liberty 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 Liberty UI installation documentation.
- The Customer Service and Payment interface installation (also optional). See deploying the Payment and Customer Services documentation.
Various user guides are provided:
- For the base/COBOL(BMS) interface please refer to the CBSA BMS User Guide.
- For the Liberty UI please refer to the CBSA Liberty UI User Guide.
- For the Customer Services interface please refer to the CBSA Customer Service User Interface User Guide.
- For the Payment interface please refer to the CBSA Payment Interface User Guide.
- For the RESTful API guide please refer to the CBSA RESTful Api Guide.
Jon Collett - JonCollettIBM
James O'Grady - JAMOGRAD
Tom Slattery - Tom-Slattery
Christopher Clash - ChristopherClash
This project is licensed under Eclipse Public License - v 2.0.