The
MANASYS Jazz Project
Who Should be Interested in Jazz?
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, Mobile Apps, 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 Enterprise Developer (MFED).
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.
MANASYS Jazz takes
to extreme lengths the re-use of information through a layered development
system. Rich data definitions and simple
dialogs produce brief Jazz programs from which COBOL, JCL, CICS screens, and
JSON objects are produced, offering unrivalled productivity without risk.
No other software provides such a bridge between modern and legacy technologies, with the feel of modern technology yet generating both legacy and new-technology objects.
Companies with a legacy of Mainframe systems developed in COBOL (etc), typically, banks, insurance companies, and government organizations, who have one or several of these requirements: -
· Add function to legacy systems.
· Get faster, more agile development.
· Introduce modern programmers to the world of COBOL, CICS, and web services.
· Do more with existing development resources.
· Reduce the cost of outsourced development, even eliminating it in some cases.
· Improve the quality of new programming, and reduce future maintenance costs.
· Modernize their applications without the high risk of reprogramming.
· Make mainframe data available to new client apps through web services.
Early adopters will be those who want one or more of the above, and are open to new and innovative solutions.
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 usually 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 (or SQL or Easytrieve) 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 16. It currently handles these tasks: -
·
Import
COBOL, SQL, and Easytrieve 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.
Easytrieve
definitions (“Library”) can be imported into Jazz definitions.
d.
Data
definitions can be imported from a spreadsheet
e.
Other
imports – RPG2, PL/I, 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 Easytrieve-like
programs using PRINT statements.
Alternatively, a visual editor provides precise layout control, and the
ability to specify control break processing, 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, JSON or WSDL, 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 JSON or WSDL and creates the program and record
layouts and binding objects. This
feature is being re-developed.
·
Z/OS
and Micro Focus support.
a.
Working
with a z/OS mainframe Jazz submits jobs and handles job output by submitting
jobs and receiving job output through JES, just like any other z/OS COBOL
developer. The earlier overview videos
show MANASYS Jazz being used in this way.
b.
When
configured to work with Micro Focus Enterprise Developer, Jazz writes its
generated COBOL and JCL into shared folders and then passes control to MFED
where the program is compiled, JSON and binding files produced when necessary,
and the programs can be tested interactively.
Currently
Jazz supports physical-sequential files, VSAM, SQL (DB2) and XIO (External I/O:
data is accessed 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.
V16 Development. Build 16.3 has
completed development and been released.
·
Clicking
a [Client] button from a JSON web service program generates a C# interface
which should function in Windows™, Linux, UNIX, IOS, Android, … environments.
·
The
services can return many records, including Parent/Child record sets
2.
Development will continue with a wider variety of web services and client-side
programs. Ideas include
·
Review
and extension of the types of web service that can be generated, and their
corresponding client-side interfaces.
·
Prototype
client programs as Windows Forms or Web Pages will be generated in a variety of
languages.
·
Conversational
web services. Data passed from
transaction to transaction through “Viewstate”, similar in concept to the use
of Viewstate in ASP.NET
·
Client-server
reporting: Report Editor transmits data
with a web service, Crystal Reports (or similar) formats it and adds local
processing
·
Other
options suggested by client and our own experience.
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, C#, and VB.NET as intermediate languages when
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.