ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
Visual COBOL Development for
         Unix & Java
        Darren Self & Paula Willis
         Product Development
Visual COBOL for Eclipse

• Complete COBOL development environment
  – Modern IDE
  – Remote development
  – Native and managed code




                2
Why work remotely?




                 3
RSE/SAMBA




            • Project Creation/Maintenance

            • Compilation

            • Debugging



     4
Why hold with tradition?
© Daily Telegraph




                    5
From this...




               6
To this...




             7
Develop on all platforms
     Well, almost!




          © Science Museum, London
Remote Development Supported Platforms




     Desktop Eclipse IDE       Server Hubs



                           9
Seeing more details...




10                 © Darren Self, 2012
11
Java
                                          JVM
source code               managed code

java (.java)               JVM bytecode

                 Java        ...
  class c1     compiler      iconst_0i
                             aload
  {
                 javac       istore_1
  }                          jsr

                            .class/.jar



Write Once Run Anywhere
COBOL
                                           JVM
source code                managed code

COBOL (.cbl)                JVM bytecode

 Program-id P   COBOL         ...
 working-stor   compiler      iconst_0i
 procedure di                 aload
 display “hel    jvmgen       istore_1
 goback.                      jsr

                             .class/.jar
Mixing languages
source code              managed code   JVM



              COBOL
              compiler
 COBOL


                Java
              compiler     ...
  Java                         JVM
                             bytecode

               JRuby
              compiler
 JRuby
What is JVM COBOL?

• COBOL with extensions to take advantage of features of
  the JVM framework

                set/invoke      set/invoke
               OO syntax       OO syntax
               inner-class     inner-class
               annotations     annotations
            exception handling
                            exception handling
               collections     collections
                 declare         declare Core    COBOL
            extension methods
                            extension methods
                sync verb        sync verb
             predefined types predefined types
               linkage-less     linkage-less
                  enums           enums
             and much more....
                             and much more....
Choice of 2 runtime configurations

                                   Pure runtime                          Impure runtime


                                                                          native        native         native
                                                                           app           app            app

                                                    app                                   app
                                           myapp.jar/class                         myapp.jar/class
              runtime components
Micro Focus




                                     FileHandler             SQL               Native
                                                                                              Native SQL
                                    mffilehandler.jar     mfsqljvm.jar      FileHandler

                                              pure runtime                             runtime
                                          mfcobolrtspure.jar                  mfcobolrts.jar & mfcobol.jar


         • Pure JVM runtime, JVM FileHandler, JVM SQL • JVM runtime with native interop support
         • No support for interop to native code      • Calls the native FileHandler
SmartLinkage

•   If legacy COBOL app contains COBOL data types in linkage
•   Set ilsmartlinkage directive on legacy COBOL app
•   On compilation auto-generates managed types
•   So you can access COBOL linkage data from other managed
    languages transparently.

    – No hand-written wrapper classes needed

    – No changes required to the original code

    – COBOL data shown in C#/Java/COBOL intellisense
Darren.Self@microfocus.com
Paula.Willis@microfocus.com

More Related Content

Visual COBOL Development for Unix and Java

  • 1. Visual COBOL Development for Unix & Java Darren Self & Paula Willis Product Development
  • 2. Visual COBOL for Eclipse • Complete COBOL development environment – Modern IDE – Remote development – Native and managed code 2
  • 4. RSE/SAMBA • Project Creation/Maintenance • Compilation • Debugging 4
  • 5. Why hold with tradition? © Daily Telegraph 5
  • 8. Develop on all platforms Well, almost! © Science Museum, London
  • 9. Remote Development Supported Platforms Desktop Eclipse IDE Server Hubs 9
  • 10. Seeing more details... 10 © Darren Self, 2012
  • 11. 11
  • 12. Java JVM source code managed code java (.java) JVM bytecode Java ... class c1 compiler iconst_0i aload { javac istore_1 } jsr .class/.jar Write Once Run Anywhere
  • 13. COBOL JVM source code managed code COBOL (.cbl) JVM bytecode Program-id P COBOL ... working-stor compiler iconst_0i procedure di aload display “hel jvmgen istore_1 goback. jsr .class/.jar
  • 14. Mixing languages source code managed code JVM COBOL compiler COBOL Java compiler ... Java JVM bytecode JRuby compiler JRuby
  • 15. What is JVM COBOL? • COBOL with extensions to take advantage of features of the JVM framework set/invoke set/invoke OO syntax OO syntax inner-class inner-class annotations annotations exception handling exception handling collections collections declare declare Core COBOL extension methods extension methods sync verb sync verb predefined types predefined types linkage-less linkage-less enums enums and much more.... and much more....
  • 16. Choice of 2 runtime configurations Pure runtime Impure runtime native native native app app app app app myapp.jar/class myapp.jar/class runtime components Micro Focus FileHandler SQL Native Native SQL mffilehandler.jar mfsqljvm.jar FileHandler pure runtime runtime mfcobolrtspure.jar mfcobolrts.jar & mfcobol.jar • Pure JVM runtime, JVM FileHandler, JVM SQL • JVM runtime with native interop support • No support for interop to native code • Calls the native FileHandler
  • 17. SmartLinkage • If legacy COBOL app contains COBOL data types in linkage • Set ilsmartlinkage directive on legacy COBOL app • On compilation auto-generates managed types • So you can access COBOL linkage data from other managed languages transparently. – No hand-written wrapper classes needed – No changes required to the original code – COBOL data shown in C#/Java/COBOL intellisense

Editor's Notes

  1. Why?Limited hardwareGeographical realitiesCompile with local librariesThird party limitations (Tuxedo for instance)Debug on platform where code will be running
  2. RSE over TCPIP – can be secured over SSLOptional SAMBA connection for project accessLong running daemon on server Starts processes per user under their authentication These processes control compilation and debugging of remote applications
  3. Connect to anything – almost!