Enterprise COBOL systems must change to adapt to new business and legal requirements, but every change brings risk and increases system complexity. As complexity increases the system becomes harder to understand, making the next change even harder. As developers retire, leaving no one to explain the original logic, things become even worse, especially as COBOL skills become harder to find. Some enterprises attempt to solve this problem by introducing new languages, or new application software, but this is a high-risk strategy and so many continue struggling with their existing technology, attempting to recruit modern developers who have never heard of COBOL and Mainframes and teaching them the skills that they need to be effective. This doesn’t solve the problem, but it might defer it for a while.
There is a solution that is very effective, and very low-risk. It’s called MANASYS Jazz, and is the third generation of software originally developed in the 1980’s. Since the first generation of MANASYS was released, we have had a single goal:
to make programming as simple as possible
without sacrificing flexibility, efficiency, or the safety of proven technology.
Here are some of the ways that MANASYS Jazz does this: -
With principles “Say it once” and “Say What, not How”, Jazz definitions give complete record descriptions in one place. Import from COBOL (or SQL, or Easytrieve) creates basic Jazz definitions with a few clicks. Then, with simple editing, you add validity rules, display formats, code meanings, record locations, record (field) relationships, and more. Here’s an example of a Jazz record definition, created with Import from SQL and then edited (as highlighted): -
DEFINE EMPLOYEE SQL DATA(
EMPNO CHAR(6) PIC '999999' REQUIRED KEY,
FIRSTNME VARCHAR(12) REQUIRED,
MIDINIT CHAR (1),
LASTNAME VARCHAR(15) REQUIRED,
WORKDEPT CHAR(3) CAPS DKEY 'XEMP2' EXISTS DEPARTMENT.DEPTNO,
PHONENO CHAR(4) PIC '9999',
EDLEVEL SMALLINT REQUIRED,
SEX CHAR(1) CAPS CODES(M:Male, F:Female),
SALARY MONEY(9,2) MIN 0,
BONUS MONEY(9,2) MIN 0,
COMM MONEY(9,2) MIN 0,
By writing powerful definitions where everything about the data is in one place, MANASYS Jazz is able to access, validate, and display data without requiring the detailed logic of COBOL, Java, and other languages. For example, programmers simply write ACCEPT (Input.Sex …) to check that SEX is “M" or “F”, and PRINT (Input.Sex … to display its value as “Male” or “Female”. The definition does the rest. System design is simplified, errors reduced, and 20-fold or greater productivity gains are achieved!
Even better, future maintenance becomes easy. For
example, suppose a policy change now allows employees to record their sex as
“G” for “Gender diverse”. To implement
this new rule you only need to change the definition to
SEX CHAR(1) CAPS CODES(M:Male, F:Female, G:'Gender diverse’),
and regenerate the COBOL [and C# programs]. Change done!
With the data designed, you’ll start writing a Jazz program by choosing a program type with the New/Logic/ dialog.
Select the logic type that you want, and the dialog leads you through selecting records and setting conditions to create a Jazz program for that type of program. For a CICS program the dialog invokes a graphical 3270 screen editor where you drag and drop data on to the screen layout. The Report Designer allows you to graphically design report layouts.
The resulting program will be displayed in the Jazz Workbench. This might be exactly what you want, but if not, the program can be edited to add and change logic. MANASYS Jazz provides a simple, but very powerful, language, ranging from high level statements like ACCEPT (IJSPG2A.JZ-Employee.*)… potentially equivalent to hundreds of lines of COBOL, to detailed assignment statements capable of specifying any calculation. Here is a list of Jazz statements.
From creating a web service with a few clicks, to defining calculation logic precisely, you can work at the appropriate level of detail. Unlike other languages, you do not need to work at the detail level for the whole program
When your program is written, click [Process] and the Jazz Workbench turns the Jazz program into COBOL. Depending on the program type it may also generate JCL, BMS (for 3270 screen layouts), JSON or WSDL (for Web Services), and C# (for client-side Web Service Interfaces). All these are standard, well-understood, languages. The COBOL code is clearly written in a very standard way, and although Jazz subprograms are used for some purposes such as DATE Arithmetic (here is a complete list), they are all supplied as source code. So there is no hidden run-time, nor special rules. The COBOL (and JCL etc) is yours to distribute and use as you like – there is no run-time licensing. Programs should compile and run first time.
If there are errors in MANASYS Jazz we’ll respond quickly with advice on how to avoid the error, and schedule a fix for a future release. In the worst case, you can edit the COBOL (etc) while you wait for a proper fix.
MANASYS Jazz itself is installed on a Windows PC, and nothing is installed on the mainframe except the support routines for functions such as DATE Arithmetic which are supplied as source code and compiled by you. MANASYS Jazz communicates with the mainframe only through text – COBOL, JCL, etc. It can’t infect your mainframe with malware.
MANASYS will be configured to work with the test environment, and nothing changes in the way that test programs are promoted into production, so development risk is at least no higher than before. In fact, it is greatly reduced.
Although modern IDE’s like Visual Studio improve productivity by catching errors early and providing great test environments, it remains as true today as it was in 1970 that the larger the program, the more likely it is to have errors, and the harder it is to understand. The best way to improve productivity is to reduce the number of lines of code that the developer must write, and the only way to make it understandable to others is to ensure that the documentation that they need is an inherent part of the development process, not a detached afterthought that probably won’t be reliable or kept up to date.
In the Initial Demonstration Video a program like this is written
*# Last Updated by JAZZUSR at 1/02/2021 3:40:29 PM
PROGRAM aanexmpl BATCH;
PROCESS IN1 [WHERE (IN1.Region = 1 | IN1.Region = 6) ]
ORDER (IN1.Region BREAK, IN1.District BREAK, IN1.Name);
GET FR WHERE (FR.Region = IN1.Region);
PRINT (IN1.Region BREAK(IN1.District),FR.Name BREAK (IN1.District), IN1.District BREAK,
IN1.Name, IN1.SalesThisMonth SUM);
END PROCESS IN1;
This is 10 lines of Jazz, or 29 if we include the definitions brought in by the COPY statements. And here is the COBOL program – 616 lines of COBOL, or 21 times as many. The COBOL is documented with a copy of the Jazz program as comments at the beginning, and then comments throughout the program relating the generated COBOL to particular Jazz statements. A later programmer will easily be able to understand this COBOL, which is clearly written and easily related to the original Jazz code. Everything compiled and worked first time.
Even more spectacular ratios are shown by program JSPG2 of the Bridging Two Worlds video. Here
· We started with 21 lines of DB2 table definition, mostly written for us with the dialog: Import From SQL.
· Dialog New/Logic/WebService created 25 lines of Jazz web service program, plus 58 lines of Jazz message definition
· Which became about 2500 lines of COBOL
· From which 320 lines of JSON was generated
· From which MANASYS Jazz generated about 1000 lines of C# client interface
All the required code – COBOL, JSON, and C# – was inferred from the data definitions and the dialog responses. Very little information had to be repeated. Data validation enforced by both the COBOL program and the C# interface program is consistent: for example both check that Employee.Sex must be “F” or “M”. Again, everything compiled and worked first time.
Time, cost, and the opportunity for error have been reduced dramatically. Future maintenance costs reduce greatly: as above, many changes will be done by merely by changing Jazz definitions.
With MANASYS Jazz downloaded and configured (which should not take more than a few hours), we estimate that it will take less than a day for a new programmer to learn enough to write batch reports and similar programs, and in less than a week to be writing classical CICS or Web Service programs. COBOL knowledge is not essential, just as Assembler knowledge is not necessary for COBOL, but we recommend that experienced programmers are available to assist with set up, and to assist with CICS and Web Service concepts. MANASYS Jazz programs are developed using the Jazz Workbench which provides immediate checking with error reporting, highlighting of keyword and field names, and on-line help. As any new programmer should expect!
Because they’ll be productive very quickly, MANASYS is a good way of introducing modern developers, who are used to interactive IDE’s like Visual Studio, to COBOL programming. Although users don’t need to know COBOL to start using MANASYS, they will inevitably learn it as they gain experience and explore different program types. Some of them may go on to become COBOL experts, able to work with older manually-written programs.
MANASYS Jazz is a low-risk option that can really help with your development costs and skills shortages. Why not try it out? What have you got to lose, except the development backlog?