The Jazz Project
Thirty years ago mainframes were state-of-the-art and “Nobody got fired for buying IBM”. Now they are largely ignored as our focus has turned to Windows, Web, and the latest announcements from Microsoft, Apple, Google, and others. Yet much of the world’s commerce continues to be managed with mainframes running COBOL programs.
Mainframe hardware has continued to advance but the software environment has stagnated, so that mainframes are programmed in essentially the same way as they were 30 years ago. Mainframe users have a problem, finding people with the right skills to service their mission-critical systems. It isn’t just skills. Learning old languages like COBOL and PL/I is not the problem, the difficult part is understanding the logic of systems built by programmers who retired years ago. Increasingly the work is sent offshore but this brings its own set of problems. Some mainframe users have elected to redevelop their systems, yet this is risky and expensive: partly because nobody now understands the old applications and partly because other technology may not be able to service the performance and concurrency requirements of these mission-critical applications.
A revolution in programming technology is needed, offering mainframe users the productivity benefits that users of small-scale systems take for granted, and offering paths to a more flexible future. MANASYS Jazz is that revolution! Jazz unlocks your mainframe data, whether you want to add function to your mainframe applications, or make the data available to other systems. Even if you have an active project to close down your mainframe systems, MANASYS Jazz will be an invaluable tool for this project.
MANASYS-Jazz is a modern programming system for z/OS (real or emulated) batch, CICS, and Web Service development. It
· Makes basic programming tasks very simple.
· Makes the basic parts of complex tasks very simple, without making the complex parts more difficult.
MANASYS Jazz is a total redevelopment of MANASYS™, a COBOL-generating programming system that was very popular in the Fujitsu mainframe environment but was never ported to the MVS (now z/OS) environment. Jazz takes full advantage of technology advances since the 1980’s, operating in the Windows environment but generating code for z/OS.
Like MANASYS before it, Jazz is based on two key principles: -
These principles are clearly shown in the way in which Jazz defines data, where a COPY statement is the single place where you describe everything about this record: not just a copy book of the fields in the record, but a description of its organization, where to find it, its indexes, validation rules, display formats, and so on. You can even create your own field types with LIKE ensuring consistent storage format, conversion and display rules, and validation rules.
This and other innovations make MANASYS Jazz enormously productive. Initial examples have shown Jazz/COBOL ratios from 1:20 to 1:60, even over 1:100, and user experience has told us that "In using JAZZ, programs that take hours or days can be done in minutes, data mapping that takes a day or more to complete can be done in minutes”.
We expect that Business Analysts (BA’s) will be able to write many programs themselves with less effort than currently needed to write a specification. For more complex tasks technical specialists be involved, but the technical specialists can still use Jazz for most of the problem, using 3GL-level (COBOL or Java) knowledge only to extend Jazz into areas that it doesn’t yet support. With huge reductions in development effort the need for COBOL programming is all but eliminated, and turnaround from change request to delivery will be hours, not months.
We know that you don’t always create new systems from scratch – sometimes you’re just adding a few new functions to an existing system. Jazz programs are vastly shorter and simpler than the corresponding COBOL program, and so are closer to the original business problem, making ongoing maintenance easier. That’s great once the problem is expressed in Jazz, but how do you get there? Where do we start?
Existing IT systems are large and complex but most of this complexity is caused by the solution, not the actual business problem. As we redevelop our old mainframe systems into new environments, we replace an old mess of legacy z/OS-COBOL code with a new mess of even more complex UNIX or Windows code.
Start by adding a few Jazz-generated programs to your system, perhaps a new report, a new screen dialog, a new web service. You don’t have to undertake a “big bang” redevelopment of the whole system that would put your business at risk. You can, if you wish, progressively replace your system section by section. Jazz is completely compatible with previous programming technology, so you can add a few Jazz-generated programs to your existing system, you don’t have to redevelop the whole system in Jazz before you can make progress.
In particular, as this video shows Web Services with their supporting WSDL (SOAP) or JSON (REST) message formats are very quickly developed, making the data of your legacy systems available to new web and mobile services.
First we import the relevant COBOL record layouts into Jazz. Then we add properties to these definitions that aren’t in the COBOL: field headings, validation rules, record keys, and so on. Where we can recognize data types with particular rules we use LIKE to define them as a data type. Now we start developing our new function. With rich record definitions there will be very little to write.
Jazz development has been underway since January 2013, and it’s now at Version 15. It currently handles these tasks: -
· COBOL Conversion
a. Any COBOL record layout can be automatically converted to a Jazz definition.
· Batch programming
a. Reading a file, and reformatting and writing out records.
b. Producing a Report, with control breaks, totals and subtotals.
c. Read VSAM records by key for reporting and updating.
d. Creating VSAM and sequential test data
e. Data mapping and conversions.
a. Jazz creates an Excel spreadsheet from the input and output definitions (either Jazz or COBOL).
b. After this is edited to check alignment and mapping, Jazz generates a conversion program.
· Classical CICS Programming
a. Enquiry programs that look up and display records from a VSAM file.
b. Update programs to display, update, add, and delete records from a VSAM file.
c. Automatic handling of Alternate indexes
d. Automatic handling of generic keys and PF10/PF11 for Previous/Next record
e. Handling record hierarchies and displaying record lists, with automatic handling of PF7/8 for Up/Down.
· Web Services Programming
a. Web Service Providers. A quick dialog defines a web service provider and its input and output messages. Then the actual logic is added, and [Process] creates the program, .wsdl (or .json), and .wsbind objects. As with Classical CICS programming, you can create enquiry or update programs for single records and for record hierarchies.
b. Web Service Requesters. INVOKE ?; initiates a discovery dialog that reads WSDL and creates the program and record layouts and binding objects.
Currently Jazz supports physical-sequential files, VSAM, and XIO (External I/O: data is access through pre-written I/O routines). SQL support has been partly developed, and will be completed when required. Support for other database types (ADABAS, IMS, IDMS) could be added if required. The original MANASYS products also supported IBM’s DL/I and Fujitsu’s AIM, a CODASYL-style database (like IDMS), so the requirements are well understood.
1. Planned V15 Development.
· Jazz is being validated and developed to support Micro Focus™, who supply software that supports enterprise systems in Windows and UNIX environments. Currently Jazz has been validated for batch and classical CICS, current development is extending this to Web Services.
2. Medium-term development. Further development priority and schedule will depend on feedback from early adopters. Ideas include
· Validation with DB2. Support for DB2 was developed to “COBOL Looks OK” a long time ago, but without a DB2 test facility and without a customer requirement this was never advanced to “Compiles OK” and “Runs correctly”. A DB2 environment is currently being established, and this is planned to be the priority after Micro Focus validation is complete.
· Development of client-side programming
o .NET and/or Java
o Client COBOL objects (requires Micro Focus™ software)
· Interface objects, encapsulating the data rules of the Jazz message definitions
· Client-server reporting: Report Editor transmits data with a web service, Crystal Reports formats it and adds local processing
3. Longer-term development.
· A wider range of platforms and intermediate languages
· Eventually Jazz should handle all “Business-type” programming on mainframes, UNIX, and Windows, using COBOL, Java, and VB.NET as intermediate languages as appropriate
http://www.jazzsoftware.co.nz has a range of brief videos showing what Jazz can do, and links from this page allow you to drill down to the detail of the Jazz Language Reference, and the Jazz Users’ Guide.