Demos
Three systems we are modernizing in the open.
Each demo takes one slice of a real legacy system, modernizes it, and publishes the parity report: what ran, what matched and what didn't. This page shows where each one stands and links to the results as they are ready.
CardDemo
Read the case study · Run the batch in the Parity Lab · Try the account screen · Try the update screen · Engineering record · Mainframe template · Source
A credit card management application that AWS publishes as a mainframe modernization sample, under the Apache 2.0 license: 44 COBOL programs, about 22,900 lines, 17 CICS online programs and 47 JCL jobs and procs.
The first slice, the daily posting job (POSTTRAN), now runs in Java. On CardDemo's sample data and on crafted edge cases, 309 distinct transactions, its output is identical to the original COBOL record for record.
The second and third slices, the monthly interest job (INTCALC) and the daily transaction report (TRANREPT), are identical too, on 108 interest charges and 1,596 report lines, and so are all three jobs moved onto a PostgreSQL database. The tests found eight things the business should know, among them that refunds count as extra spending in the credit-limit check, that the last account never gets its interest, and that the report's grand total counts the last transaction twice. The case study walks through every step.
The first online screen, View Account, now has a Java service and a web page. On 76 recorded screens the service fills the original 3270 screen exactly as the COBOL does, except one field group the original fills from uninitialized storage. You can try it with any account number.
The second, Update Account, writes: it checks about forty fields and saves the account and its customer together. On 389 recorded screens and every saved record, the Java service matches the COBOL byte for byte, on record files and on PostgreSQL, and the tests found eight problems in the original, from a group id saved in the zip-code field to zip codes that can never pass. You can change an account on both.
GammaQuest Tracker
Our own project, issue and time tracker, built by Gamma Quest on ASP.NET Web Forms: 105 pages, about 21,200 lines of C# and 63 SQL Server tables.
The first slice is time tracking, ported to modern .NET in a Linux container. Because this is a production system of ours, the source stays private. The demo will publish:
- Aggregate findings from the inventory
- The parity report for the time-tracking slice, including number formatting that depends on server culture and timestamps that use server local time
Apache DayTrader
An online stock-trading benchmark that IBM built for WebSphere and contributed to the Apache Geronimo project, under the Apache 2.0 license. The 2.x branch targets Java SE 5.
The first slice will be trading: buy and sell orders, holdings and balances, including the asynchronous path through JMS. The demo will publish:
- The original rebuilt in a container with its original toolchain
- The slice on current Java in containers
- A parity report from replaying the same recorded traffic against both
How every demo works
- Record
Run the original system on real or sample inputs and keep every output as the reference.
- Modernize
Convert or rewrite one slice and build it with an automated pipeline.
- Replay
Run the new slice on the same inputs, from the same starting data.
- Compare
Check every output, record by record. Each difference is fixed or explained.
- Publish
Show the parity report, including what is still unverified.
Want this for your system?
A two-to-three-week assessment maps your system, finds the risks and gives you a fixed price for the first slice.