The
Jazz Project
Jazz and the
Maintenance of Existing Systems
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 AIM, 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. MANASYS Jazz takes full advantage of
technology advances since the 1980’s, operating in the Windows
environment but
generating code for z/OS or Micro Focus.
Like earlier
versions of MANASYS, 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 some programs themselves
with less effort than currently needed to write a specification. For more complex tasks technical specialists
will 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 can easily replace an old mess of legacy
z/OS-COBOL code with a new mess of even more complex UNIX or Windows code. But there’s an alternative.
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. As this process
continues much of the COBOL logic will be replaced by far simpler Jazz logic
(still generating COBOL programs, but reducing the need to acquire skilled
COBOL programmers).
Jazz
development has been underway since January 2013, and it’s now at Version
15. It currently handles these tasks: -
·
Import
COBOL, SQL, and other. definitions.
a.
Any
COBOL record layout can be automatically imported into a Jazz definition.
b.
SQL
table definitions can also be read from the database and imported into Jazz
definitions
c.
Data
definitions can be imported from a spreadsheet
d.
Other
imports – RPG2, Easytrieve, etc – will be developed
as required.
Once imported, the definitions can be edited to add missing information
such as validity criteria, headings, file type and location that are missing
from more primitive definitions.
·
Batch
programming.
a.
Reading
files, and reformatting and writing out records.
b.
Producing
a Report, with control breaks, totals and subtotals. Simple reports are produced with PRINT
statements, and a visual editor provides precise layout control when needed.
c.
VSAM
and SQL records can be read by key for reporting and updating.
d.
Sequential,
VSAM and SQL test data can be produced
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 only implemented for SOAP (WSDL) messages
Currently
Jazz supports physical-sequential files, VSAM, SQL (DB2) and XIO (External I/O:
data is access through pre-written I/O routines). Support for other database types (ADABAS,
IMS, IDMS) could be added if required. The original MANASYS product supported
IBM’s DL/I and MANASYS AIM supported both relational databases and Fujitsu’s
AIM/DB, a CODASYL-style database (like IDMS), so the requirements are well
understood, but development of these extensions awaits a customer requirement
and partnership.
1.
V15 Development.
·
Jazz
has been validated and developed to support Micro Focus™, who supply software that supports enterprise systems in
Windows and UNIX environments. Jazz has
been validated for batch, classical CICS, and Web Services.
·
Planned
DB2 support is now complete except for PROCESS … HAVING. MANASYS-Jazz provides SQL conditions
o
IN(list),
o
BETWEEN
value1 AND Value2, and
o
LIKE
pattern)
in normal (not SQL) logic,
and also supports PIC properties with the definitions of SQL CHAR fields.
2.
Medium-term development. Further development priority and schedule will
depend on feedback from early adopters.
Ideas include
·
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 could 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 the Help and Training Page provide complete documentation,
allowing you to drill down to the detail of the Jazz Language Reference, and the Jazz Users’
Guide.