System Architecture Overview
The AWS CardDemo application is a comprehensive mainframe credit card management system designed to demonstrate modernization patterns for AWS Mainframe Modernization (AWS M2). The application implements a classic 3-tier mainframe architecture with online transaction processing (CICS), batch processing, and multiple data storage technologies.
Core Technologies
| Technology | Purpose | Component Count |
|---|
| COBOL | Business logic | 39 programs (~28,000 LOC) |
| CICS | Online transaction processing | 25 transactions |
| VSAM | Primary data storage | 7 KSDS files + 3 AIX |
| BMS | Screen definitions | 17 mapsets |
| JCL | Batch job orchestration | 47 jobs |
Optional Extension Technologies
| Technology | Purpose | Used In |
|---|
| DB2 | Relational database | Transaction types, fraud tracking |
| IMS DB | Hierarchical database | Authorization storage |
| IBM MQ | Asynchronous messaging | Authorization requests, data extraction |
1. CICS Online Transaction Processing
Purpose: Real-time user interactions for credit card management
Key Programs:
Transaction Categories:
- Entry & Navigation: CC00, CM00, CA00 (3 programs)
- Account Management: CAVW, CAUP (2 programs)
- Card Management: CCLI, CCDL, CCUP (3 programs)
- Transaction Processing: CT00, CT01, CT02 (3 programs)
- User Administration: CU00-CU03 (4 programs)
- Billing & Reports: CB00, CR00 (2 programs)
- Authorization: CP00, CPVS, CPVD (3 programs - optional)
- DB2 Extensions: CTLI, CTTU (2 programs - optional)
- MQ Extensions: CDRA, CDRD (2 programs - optional)
Design Patterns:
- Pseudo-Conversational: Tasks terminate between user interactions
- COMMAREA: State management across conversation cycles
- XCTL: Program chaining without return
- BMS: 3270 screen handling
2. Batch Processing Subsystem
Purpose: Scheduled background processing for bulk operations
Processing Cycles:
Key Programs:
- Transaction Processing: CBTRN01C, CBTRN02C, CBTRN03C
- Account Processing: CBACT01C, CBACT02C, CBACT03C, CBACT04C
- Customer Processing: CBCUS01C
- Statement Generation: CBSTM03A
- Utilities: CBIMPORT, CBEXPORT
3. Data Storage Layer
VSAM File Organization:
File Specifications:
| File | Type | Key | Record Size | Purpose |
|---|
| ACCTDAT | KSDS | ACCT-ID (11) | 300 bytes | Account master |
| CUSTDAT | KSDS | CUST-ID (9) | 500 bytes | Customer master |
| CARDDAT | KSDS | CARD-NUM (16) | 150 bytes | Card master |
| CCXREF | KSDS | CARD-NUM (16) | 50 bytes | Card-account xref |
| TRANSACT | KSDS | TRAN-ID (16) | 350 bytes | Transaction master |
| USRSEC | KSDS | USER-ID (8) | 100 bytes | User security |
| DISCGRP | KSDS | GROUP-ID (10) | 200 bytes | Interest rates |
Alternate Indexes:
- CARDAIX: Access cards by account ID
- CXACAIX: Access xref by account ID
- Transaction AIX: Access transactions by timestamp
Modular Architecture
The application uses a modular design with optional extensions:
Deployment Variants
Variant 1: Base (VSAM Only)
- Components: Core CICS + VSAM + Batch
- Complexity: Low
- Use Case: Pure rehosting
- Migration Effort: Minimal
Variant 2: Base + DB2
- Components: Core + Transaction Type DB2 Extension
- Complexity: Medium
- Use Case: Gradual data modernization
- Migration Effort: Medium
Variant 3: Base + MQ
- Components: Core + MQ Integration Extension
- Complexity: Low-Medium
- Use Case: Service enablement
- Migration Effort: Low
Variant 4: Full Integration
- Components: Core + All Extensions (DB2 + IMS + MQ)
- Complexity: High
- Use Case: Comprehensive modernization demo
- Migration Effort: High
1. CICS to VSAM (Synchronous)
Characteristics:
- Direct file I/O via EXEC CICS
- Record-level locking
- ACID compliance via CICS
- Synchronous operations
2. CICS to DB2 (Embedded SQL)
Characteristics:
- Static embedded SQL
- Two-phase commit
- Cursor processing
- SQLCA error handling
3. MQ Message Processing (Asynchronous)
Characteristics:
- Asynchronous messaging
- Request/response pattern
- Message correlation
- Decoupled processing
4. IMS Database Access (Hierarchical)
Characteristics:
- Hierarchical navigation
- Parent-child relationships
- Position-based access
- Two-phase commit with CICS
Rehosting to AWS M2
Migration Options:
-
Replatform (Lift and Shift)
- Target: AWS M2 with Micro Focus
- COBOL code: Minimal changes
- Data: VSAM emulation or conversion
- Timeline: 3-6 months
-
Replatform + Optimize
- Target: AWS M2 with database backend
- Replace VSAM with Amazon RDS
- Maintain COBOL business logic
- Timeline: 6-12 months
-
Refactor (Blu Age)
- Target: Java/Spring Boot
- Automated COBOL to Java conversion
- Modern UI (Angular/React)
- Timeline: 12-18 months
AWS Service Mapping
| Mainframe Component | AWS Service | Purpose |
|---|
| CICS Region | AWS M2 Runtime | Transaction processing |
| VSAM Files | Amazon RDS / DynamoDB | Structured data |
| DB2 | Amazon RDS PostgreSQL | Relational database |
| IMS | Amazon RDS | Hierarchical to relational |
| IBM MQ | Amazon MQ | Message queuing |
| JCL Jobs | AWS Batch / Step Functions | Batch orchestration |
| 3270 Terminal | TN3270 Emulator / Web UI | User interface |
| SYSOUT/Logs | CloudWatch Logs | Logging |
Online Processing
| Metric | Target | Notes |
|---|
| Transaction Response Time | < 2 seconds | End-to-end |
| VSAM Random Access | < 10ms | Single record read |
| DB2 Query Response | < 100ms | Simple lookup |
| Concurrent Users | 100+ | Pseudo-conversational design |
Batch Processing
| Job | Frequency | Typical Duration | Volume |
|---|
| Transaction Posting | Daily | 2-5 minutes | 1K-10K transactions |
| Interest Calculation | Monthly | 5-15 minutes | All active accounts |
| Statement Generation | Monthly | 15-30 minutes | All cards |
Authentication Flow
Security Features:
- VSAM-based user authentication
- Role-based access (Admin/User)
- Transaction-level authorization
- Password validation
- Session management via COMMAREA
Data Security
- VSAM: Share options control concurrent access
- DB2: Row-level security via SQL predicates
- Encryption: Can be enabled at storage level
- Audit: Transaction logging in CICS
Horizontal Scaling
- Multiple CICS regions
- Load balancing across regions
- Shared VSAM files with proper share options
- Connection pooling for DB2
Vertical Scaling
- CICS region size (memory)
- Database buffer pools
- Batch job parallelization
- File system performance tuning
- VSAM for Core Data: Fast indexed access, proven reliability
- DB2 for Reference Data: Easier maintenance, SQL capabilities
- Pseudo-Conversational CICS: Optimal resource utilization
- Modular Extensions: Incremental modernization support
- Batch Window Approach: Separate online and batch processing
- GDG for Versioning: Historical data retention
- XCTL for Navigation: Memory-efficient program chaining