07.05.2014 Views

Tools to Make Your HP COBOL Applications Migration ... - OpenMPE

Tools to Make Your HP COBOL Applications Migration ... - OpenMPE

Tools to Make Your HP COBOL Applications Migration ... - OpenMPE

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Tools</strong> <strong>to</strong> <strong>Make</strong> <strong>Your</strong> <strong>HP</strong><br />

<strong>COBOL</strong> <strong>Applications</strong><br />

<strong>Migration</strong> Easy<br />

Nicolas Fortin<br />

Product Marketing Manager<br />

Speedware Corp.


Overview<br />

Breaking down the 3GL migration challenge


<strong>HP</strong> <strong>COBOL</strong><br />

• About <strong>HP</strong> <strong>COBOL</strong><br />

− An implementation of ANSII standard <strong>COBOL</strong>, with a few<br />

differences and extensions.<br />

• Why you may need a migration <strong>to</strong>ol<br />

− <strong>HP</strong> <strong>COBOL</strong> compiler does not exist on other platforms<br />

− Technologies referred <strong>to</strong> by the code do not exist on other<br />

platforms<br />

− Concepts are different on other platforms<br />

− Significant amount of code and concepts need <strong>to</strong> be<br />

adapted<br />

− Major investment of time and resources


Challenges of <strong>HP</strong> <strong>COBOL</strong> <strong>Migration</strong><br />

• Issues exist in 4 areas: code, database, OS and<br />

user interface<br />

− Compiler-specific code<br />

• Syntax and MPE extensions<br />

− Platform-specific code<br />

• Database and MPE intrinsics<br />

− MPE concepts references<br />

• JCL, Message files, file equations, CIERROR, JCW, etc.<br />

− User interface / VPLUS replacement<br />

• Database migration<br />

<strong>HP</strong> e3000 3GL applications are<br />

proprietary <strong>to</strong> MPE/iX


Understanding <strong>HP</strong> <strong>COBOL</strong><br />

• How does <strong>HP</strong> Cobol differ from ANSI Cobol and<br />

other compilers? Examples:<br />

− Syntax and compiler directives<br />

• e.g. comma, dot, semicolon, “”, etc.<br />

• e.g. $PAGE, $TITLE, $EDIT, $DEFINE,<br />

$COMMENT, $CONTROL QUOTE, $CONTROL<br />

LIST, $INCLUDE<br />

− <strong>HP</strong>-specific extensions<br />

• ACCEPT MY-DATA FREE ON INPUT ERROR<br />

• CALL...GIVING<br />

• MOVE %33 TO MY VALUE


Understanding <strong>HP</strong> <strong>COBOL</strong><br />

• How does <strong>HP</strong> Cobol differ from ANSI Cobol?<br />

− <strong>HP</strong>-specific concepts<br />

• e.g. MOVE "!JOB J123, MANAGER.SYS“ TO<br />

OUT-REC<br />

• e.g. MOVE "FILE MYFILE;DEV=LP" TO<br />

COMMAND-BUF<br />

• e.g. Checking CIERROR or return status<br />

• e.g. Passing PARM and INFO on RUN command<br />

• e.g. Specifying an entry point<br />

− Reserved Words (<strong>HP</strong> or other compilers)<br />

• e.g. DIVIDE-BY-ZERO, BEGINNING, COMMON,<br />

DISABLE, ENABLE, ENDING, FILE-LIMITS,<br />

MORE-LABELS, PROCESSING, WINDOW


User interface<br />

• Areas that need attention<br />

− Direct terminal I/O<br />

• Differences between <strong>HP</strong> <strong>COBOL</strong> and other compilers in the way<br />

information is displayed<br />

• Escape sequences and control characters<br />

− VPLUS forms<br />

• Do not exist on other platforms<br />

• Covered in “User Interface” presentation


Database / File interface<br />

• Areas that need attention<br />

− Database<br />

• TurboImage: Does not exist on other platforms<br />

−TurboImage is accessed with <strong>HP</strong> Image<br />

intrinsics (lots of them)<br />

−Code is very specific <strong>to</strong> Image methodology<br />

−Usually, the intrinsics are intertwined in the<br />

application<br />

• Image/SQL: Does not exist on other platforms<br />

• Allbase/SQL: <strong>HP</strong>UX support ends in Dec 2006.<br />

• Omnidex/Superdex<br />

− File system<br />

• File naming (FILE.GROUP.ACCT)<br />

• Cobol statements or intrinsics<br />

−Cobol statements: OPEN,READ,WRITE<br />

−Intrinsics: FOPEN, FREAD, FWRITE, etc.<br />

• MPE file access: Sequential, Message, Circular,<br />

Temporary, RIO, Byte-Stream<br />

• KSAM files<br />

−Accessed using Cobol statements, Fxxxx or<br />

CKxxxx intrinsics


How it works <strong>to</strong>day<br />

<strong>HP</strong> e3000


Image Look-alike Option<br />

<strong>HP</strong>-UX / Windows / Linux


Image intrinsics mapping Option<br />

<strong>HP</strong>-UX / Windows / Linux<br />

<br />

<br />

<br />

“mapping” software library<br />

<br />

#$ #%&'<br />

!" #


Redesign Option<br />

<strong>HP</strong>-UX / Windows / Linux<br />

<br />

<br />

Embedded SQL Statements<br />

<br />

#$ #%<br />

!" #


OS interface<br />

• Areas that need attention<br />

− Calls <strong>to</strong> MPE system intrinsics and surround code (return-status<br />

check)<br />

− Execution of OS Commands<br />

− File equations<br />

− MPE-specific networking<br />

− UDC and command file utilization<br />

− JCL code<br />

− System variables and JCWs<br />

− Interaction with spoolers<br />

− Interaction with jobs<br />

− Interaction with forms<br />

− Interaction with hardware devices


<strong>HP</strong> <strong>COBOL</strong> specifics<br />

• Areas that need attention<br />

− Cobol Concepts<br />

• Copylibs<br />

−KSAM files need <strong>to</strong> be migrated<br />

−Concept is done differently with other<br />

compilers<br />

• $INCLUDE is done differently<br />

• CIERROR and intrinsics return status<br />

• Macro expansion does not exist with other<br />

compilers<br />

• SORT files<br />

• Sharing file IDs (FDs as Intrinsic<br />

parameters)


SUMMARY: So what is required?<br />

• Solutions for<br />

− <strong>HP</strong> <strong>COBOL</strong> code conversion for new compiler<br />

− MPE-specific concepts<br />

− Database and file migration<br />

− Terminal interface (Direct I/O and VPLUS)<br />

− Additional challenges<br />

• External utilities replacement<br />

• Job files and command files<br />

• Inter-application or inter-system communication<br />

• Use of ODBC, ADO or JDBC by PC apps


<strong>HP</strong> <strong>COBOL</strong> replacement<br />

Compilers


<strong>COBOL</strong> Compiler Options<br />

• Acu<strong>COBOL</strong>-GT<br />

− Acu<strong>COBOL</strong>-GT runtime (UNIX, Windows)<br />

− AcuBench


<strong>COBOL</strong> Compiler Options<br />

• MicroFocus<br />

− NET EXPRESS (Windows)<br />

− SERVER EXPRESS (UNIX)


Cobol Compilers summary<br />

• Microfocus’ Server or Net Express<br />

− Largest market share<br />

− Priced on no. dev and users<br />

− Compiles in<strong>to</strong> native code<br />

− Offers screen equivalent for GUI forms<br />

− Requires a lot of code changes<br />

− Supported by <strong>COBOL</strong> <strong>Migration</strong> solutions<br />

• AcuCorp’s AcuCobol-GT<br />

− Very popular in the <strong>HP</strong> e3000 community<br />

− Priced on no. dev and users<br />

− Compiles in<strong>to</strong> OS independent object code and native code<br />

− Runs on the <strong>HP</strong> 3000!<br />

− Offers GUI and SQL interfaces<br />

− Require very little syntax changes with MPE switch compatibility<br />

− Supported by <strong>COBOL</strong> <strong>Migration</strong> solutions<br />

• Fujitsu’s NetCobol<br />

− Not as well known but proven<br />

− No run-time fees<br />

− Most .Net enabled<br />

− Compiles in<strong>to</strong> native code for .Net<br />

− No popular migration <strong>to</strong>ol support (sweet3000 not offered anymore)<br />

• Legacy J’s PerCobol<br />

− Not very popular; not marketed in the 3000 community<br />

− Compiles in<strong>to</strong> Java byte code. Offers GUI interface.<br />

− No migration <strong>to</strong>ol support except for ViewJ for VPLUS


<strong>Migration</strong> Solutions


Possible <strong>Migration</strong> Solutions<br />

• Manual conversion<br />

• Speedware’s AMXW<br />

• Ordina-Denkart’s ViaNova 3000<br />

• Transoft<br />

• others


Manual approach<br />

• Migrate your databases and files<br />

• Convert <strong>HP</strong> <strong>COBOL</strong> code syntax <strong>to</strong> work with new<br />

compiler<br />

• Convert all that is MPE-specific <strong>to</strong> platform-native<br />

equivalents<br />

• Terminal interface (Direct I/O and VPLUS)<br />

• Additional challenges<br />

• External utilities replacement<br />

• Job files and command files<br />

• Inter-application or inter-system communication<br />

• Use of ODBC, ADO or JDBC by PC apps<br />

• etc.


The AMXW Solution<br />

• Adapts the code<br />

− <strong>to</strong> a new compiler<br />

− <strong>to</strong> run in the new environment<br />

• Maps MPE-specifics <strong>to</strong> platform-native equivalents<br />

− Supports MPE intrinsics<br />

− Supports database and file intrinsics<br />

− Supports MPE commands with an MPE shell<br />

− Uses mapping technology; not an emula<strong>to</strong>r<br />

• Migrates databases and files<br />

• Handles user interface including VPLUS<br />

replacement solutions


Product Overview<br />

• Migrates applications written in many 3GLs <strong>to</strong> Unix<br />

or Windows<br />

− <strong>HP</strong> <strong>COBOL</strong> <strong>to</strong> MicroFocus or Acu<strong>COBOL</strong>-GT<br />

− Fortran 77 <strong>to</strong> Fortran 77<br />

− Pascal <strong>to</strong> Pascal<br />

− C <strong>to</strong> C<br />

− SPL <strong>to</strong> C<br />

• Solves most challenges involved in a migration process<br />

• Flexible purchasing model: Use the <strong>to</strong>ol yourself or<br />

outsource the project or a combination of both<br />

• Cost-effective solution which yields quick results and fast<br />

Return-On-Investment (ROI)<br />

• Proven for 12 years; used by high-profile companies


AMXW Client on Windows


Business Benefits of AMXW<br />

• Gets you up and running – fast!<br />

• Quick and cost-effective<br />

• Reduces the risk of error<br />

• Minimizes tedious manual conversion<br />

• Offers flexible approach<br />

− Purchase and migrate yourself<br />

− Outsource project<br />

− A combination of both: in-house & outsourcing


Technical Benefits of AMXW<br />

• Au<strong>to</strong>mates code conversion for the new compiler<br />

and environment<br />

• Migrates millions of lines of code in a day<br />

• Supports the most popular MPE intrinsics and<br />

commands<br />

• Maintains application performance and business<br />

continuity<br />

• Enables gradual conversion of MPE-specifics <strong>to</strong><br />

explicit native equivalents


Solution <strong>to</strong> Intrinsics<br />

• Developed most commonly used intrinsics (system calls)*<br />

− IMAGE (Dbbegin, Dbclose, Dbdelete, Dbend, Dberror, Dbexplain, Dbfind, Dbget,<br />

Dbinfo, Dblock, Dbopen, Dbput, Dbunlock, Dbupdate, Dbxbegin,…)<br />

− KSAM (Ckclose, Ckdelete, Ckerror, Cklock, Ckopen, Ckopenshr, Ckread,<br />

Ckreadbykey, Ckrewrite, Ckstart, Ckunlock, Ckwrite,…)<br />

− FILES (Fcheck, Fclose, Fcontrol, Fdelete, Ferrmsg, Ffileinfo, Fgetinfo, Flock,<br />

Fopen, Fpoint, Fread, Freadbackward, Freaddir, Freadlabel, Freadseek, Frename,<br />

Fsetmode, Fspace, Funlock, Fupdate, Fwrite, Fwritedir, Fwritelabel, Genmessage,<br />

Iodontwait, Iowait, Print, Printfileinfo, Read, Readx,…)<br />

− PROCESS (Activate, Create, Createprocess, Father, Getprocid, Getprocinfo, Kill,<br />

Quit, Suspend, Terminate,…)<br />

− COMMANDS (Command, Hpcicommand, Mycommand,…)<br />

* Sample listing only – several more intrinsics are available.


Intrinsics case study<br />

3<br />

GETDSEG<br />

2<br />

FERRMSG<br />

50<br />

FWRITEDIR<br />

319<br />

FCONTROL<br />

909<br />

FWRITE<br />

900<br />

FCLOSE<br />

14<br />

FUPDATE<br />

498<br />

FCHECK<br />

38<br />

FUNLOCK<br />

3<br />

DMOVOUT<br />

126<br />

WHO<br />

0<br />

FSPACE<br />

4<br />

DMOVIN<br />

1<br />

SETJCW<br />

14<br />

FSETMODE<br />

1<br />

DEBUG<br />

10<br />

QUIT<br />

18<br />

FREMOVE<br />

462<br />

DATELINE<br />

21<br />

PUTJCW<br />

85<br />

FREADDIR<br />

48<br />

DASCII<br />

13<br />

PROCINFO<br />

8<br />

FREADBYKEY<br />

1<br />

CTRANSLATE<br />

10<br />

PRINTFILEINFO<br />

644<br />

FREAD<br />

6<br />

CREATEPROCESS<br />

8<br />

KILL<br />

499<br />

FPOINT<br />

1<br />

CREATE<br />

1<br />

JOBINFO<br />

745<br />

FOPEN<br />

170<br />

COMMAND<br />

1<br />

<strong>HP</strong>FOPEN<br />

39<br />

FLOCK<br />

2<br />

CLOCK<br />

33<br />

<strong>HP</strong>CIGETVAR<br />

3<br />

FLABELINFO<br />

2<br />

CALENDAR<br />

3<br />

PCIDELETEVAR<br />

6<br />

FINDJCW<br />

2<br />

BINARY<br />

2<br />

<strong>HP</strong>CICOMMAND<br />

43<br />

FGETINFO<br />

106<br />

ASCII<br />

12<br />

GETINFO<br />

100<br />

FFILEINFO<br />

6<br />

ACTIVATE<br />

No.<br />

Name<br />

No.<br />

Name<br />

No.<br />

Name<br />

MPE system intrinsics calls


Solution <strong>to</strong> MPE Concepts<br />

• Developed Command Interpreter (CI) commands* using<br />

most common parameters<br />

− FILES (Build, File, Listf, Listftemp, Purge, Rename, Reset, Save,…)<br />

− PROCESS (Run,…)<br />

− BATCH/SESSIONS (Stream, Job, Showjob,…)<br />

− ENVIRONMENT (Input, Setjcw, Setvar,Listf, Listftemp, Purge, Rename, Reset,<br />

Save,Showjcw, <strong>HP</strong> variables and JCWs,…)<br />

− CI / UDCS (MPE and target OS CommandFiles, Continue, Else, Endif, Eod, Eoj,<br />

Help, If, Recall, Reply, Showcatalog, Tellop,…)<br />

− OTHERS (Comment, Listacct, Listgroup,…)<br />

* Sample listing only – several more MPE concepts are available.


AMXW Architecture<br />

AMXW Client on Windows (optional)<br />

Source Platform<br />

Target Platform<br />

<strong>HP</strong> e3000 MPE and MPE/iX<br />

DBMS: Image, TurboImage,<br />

Allbase, KSAM and flat files<br />

Windows, UNIX, Linux<br />

DBMS: Oracle, Eloquence, SQL<br />

Server, Informix, Sybase, Ingres,<br />

DB2, MySQL


AMXW <strong>Migration</strong> Process<br />

• Collect code source files, copy libraries, databases and files<br />

on the <strong>HP</strong> e3000<br />

• Migrate databases and files using AMXW or DBmotion<br />

• Import source files and copy libraries in AMXW client<br />

(optional)<br />

• Migrate the application<br />

− Converts your code so that it works with your new compiler in your<br />

new environment<br />

• Run the application<br />

− Uses database and OS intrinsics library<br />

− Uses MPE shell<br />

− Supports new user interface including VPLUS replacement<br />

technologies


The ViaNova 3000 solution<br />

(Ordina-Denkart)<br />

• Code conversion<br />

− MicroFocus: Adapts code <strong>to</strong> work with MicroFocus compiler<br />

• Cross-compiler outsource-based service required<br />

− Acu<strong>COBOL</strong>: Uses the Acu<strong>COBOL</strong>-GT MPE switch and MPUX<br />

emula<strong>to</strong>r<br />

• Cross-compiler outsource-based service not required<br />

• Not all <strong>HP</strong> <strong>COBOL</strong> code specifics handled; some manual work required<br />

− Supports MPE intrinsics<br />

− Supports file intrinsics<br />

− Supports Database intrinsics through ORDAT’s ti2SQL<br />

− Supports MPE commands with their MPE emula<strong>to</strong>r (MPUX)<br />

• Migrates databases and files (mix of ViaNova and ORDAT)<br />

• Replaces VPLUS using their edWin/3k product


ViaNova 3000 - Solution overview<br />

• Migrates applications written in many 3GLs <strong>to</strong> Unix or<br />

Windows<br />

− <strong>HP</strong> <strong>COBOL</strong> <strong>to</strong> MicroFocus (cross-compiler) or Acu<strong>COBOL</strong>-GT<br />

− Fortran 77 <strong>to</strong> Fortran 77<br />

− Fortran <strong>to</strong> C<br />

− Pascal <strong>to</strong> C<br />

− C <strong>to</strong> C<br />

− SPL <strong>to</strong> C<br />

• Solves most challenges involved in a migration process<br />

• Outsource-based model: send the code, receive it migrated<br />

(~95%); in certain cases companies have used the <strong>to</strong>ol with<br />

training<br />

• Proven solution used by high-profile companies


ViaNova 3000 - solution overview


The Transoft solution<br />

• Code conversion<br />

− MicroFocus: Adapts code <strong>to</strong> work with MicroFocus compiler<br />

• Cross-compiler outsource-based service required<br />

− Acu<strong>COBOL</strong>: Uses the Acu<strong>COBOL</strong>-GT MPE switch and converts the<br />

MPE-specific code <strong>to</strong> a platform native equivalent<br />

• Uses their technology and services: Transoft intelligent<br />

adapters<br />

• Converts MPE-specifics <strong>to</strong> platform-native equivalents<br />

− Supports MPE intrinsics<br />

− Supports file intrinsics<br />

− Supports Database intrinsics or can convert <strong>to</strong> SQL<br />

− Converts MPE commands <strong>to</strong> platform-native equivalents<br />

• Migrates databases and files<br />

• Replaces VPLUS using their GUI intelligent adapters


Transoft – solution overview<br />

• Solution sold as Consulting Service<br />

• How it works<br />

− Source code statistics sent <strong>to</strong> Transoft<br />

− Quote provided based on code complexity<br />

− Based on acceptance, code sent <strong>to</strong> Transoft<br />

− Converted code installed/tested at cus<strong>to</strong>mer site<br />

with Transoft or PP


Transoft – solution overview<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

(<br />

(<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

!<br />

!<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

"<br />

"<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

#<br />

#<br />

$<br />

$<br />

<br />

<br />

<br />

<br />

<br />

<br />

%<br />

%<br />

&<br />

&<br />

<br />

<br />

#<br />

#<br />

'<br />

'<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Legacy Libera<strong>to</strong>r is ‘trained’ <strong>to</strong> convert<br />

the legacy source <strong>to</strong> Open Systems source<br />

based on the choices you have made<br />

regarding the Target Platform.


Conclusion<br />

• How <strong>to</strong> choose a solution vendor<br />

• Final advice<br />

• Q&A


How To Choose A Solution Vendor?<br />

• Fac<strong>to</strong>rs that influence vendor choice<br />

− Time requirements<br />

• Some solutions gets you started faster than others<br />

− Resource availability<br />

• Do you prefer being directly involved with the migration?<br />

− Budget restrictions<br />

• Some solutions cost more than others<br />

− End result<br />

• Explicit native code solutions take more time and cost more<br />

• Faster solutions use run-time emula<strong>to</strong>rs or mappers<br />

− Preference for migration methodology / technology<br />

− Willingness <strong>to</strong> pay ongoing support for emula<strong>to</strong>r/mapper<br />

runtime<br />

− Strategic IT Direction


How To Choose A Solution Vendor?<br />

• Solution is based on what best fits the cus<strong>to</strong>mers needs<br />

− Cus<strong>to</strong>mer wants <strong>to</strong> do it themselves<br />

• Best Fit: AMXW is the only solution that is sold as a <strong>to</strong>olset for<br />

cus<strong>to</strong>mers <strong>to</strong> do it themselves.<br />

• Alternative: ViaNova 3000 (Ordina Denkart) is a quick way for<br />

someone else <strong>to</strong> do 90%+ of the migration au<strong>to</strong>mation.<br />

− Finishing work is done manually by the cus<strong>to</strong>mer (no <strong>to</strong>ols)<br />

− Cus<strong>to</strong>mer wants it outsourced<br />

• ViaNova 3000 (Ordina-Denkart) can provide a 100%<br />

outsourced solution<br />

• AMXW with a platinum partner’s assistance can provide a<br />

100% solution.<br />

− Cus<strong>to</strong>mer wants the result as Native as possible (no MPE<br />

/ Image emulation)<br />

• Best Fit: Transoft will replace all MPE / Image references with<br />

native counterparts, however, this will take longer and cost<br />

more.<br />

• Alternative: ViaNova Flex service from Ordina-Denkart


Final Advice<br />

• Seek advice from Platinum Partners<br />

− Chosen by <strong>HP</strong> for their migration and integration expertise<br />

− They have done the homework on who is good at what<br />

− Platinum partners offer one-s<strong>to</strong>p shopping for all these <strong>to</strong>ols<br />

− Think of Platinum partners as “General Contrac<strong>to</strong>rs” or “<strong>Migration</strong><br />

advisors and engineers”<br />

• Don’t under-estimate how many resources a manual<br />

migration might take<br />

− Especially for testing<br />

• Choose the right compiler / migration <strong>to</strong>ol combination<br />

− Clearly identify target, budget, resource constraints, and desired<br />

end result.


Q&A<br />

• THANK YOU!

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!