Your SlideShare is downloading. ×
Slide 1 - Hi
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.


Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Slide 1 - Hi


Published on

  • Be the first to comment

  • Be the first to like this

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. EGL Online Seminar Series What’s New in V7.1 Jon Sayles – [email_address] All statements regarding IBM's plans, directions, and intent are subject to change or withdrawal without notice. The content of this presentation does not constitute IBM commitment to deliver products and functions. IBM Warranties are delivered exclusively as indicated in products availability Terms and Conditions
  • 2. Today’s Session
    • Will take approximately one hour
    • Is a “what is” – not “how to” session
    • I will make the slides available to anyone who is interested (please eMail me, and send along your thoughts on these Sessions)
    • Along with the product bits, there is/are:
      • A new EGL book – written by Saul Margolis, and published by MC Press
      • New internal docs
      • A new EGL/JSF Course, offered through Rational Education
      • New PowerPoint Tutorials – for v7.1
      • The EGL Cafe
  • 3. Rational Business Developer V7.1 Highlights
    • Repackaging EGL as a stand-alone product
      • Simplified user experience
        • Single install
        • Smaller overall footprint
        • More EGL-focused interface
      • Part of Rational’s increased focus on the “business developer” and System z & I customers
    • Functional focus for V7.1 (not necessarily in this order)
      • Restoring the VAGen migration path
        • And re-enabling IMS and MQ users
      • Usability and productivity
      • Solutions versatility
        • Responding to user/customer input and enhancement requests
      • Enhancing Informix 4GL migration path
      • Target System I customers
    • (Jon’s op-ed) This was an immense release. That addressed customer needs/requests/enhancements, etc. and then some. 
  • 4.
      • Restoring the VAGen migration path
        • TUI (language elements and editor)
        • Web Transactions
        • DL/I I/O and debugger support - IMS Transaction Manager runtime
        • MQ
        • Java Wrappers
      • Usability and productivity
        • Simplified interface for creating web services
        • New Project wizard enhancements
        • Source editor enhancements
        • Debugger hot-swapping
        • JSF security support
        • Miscellaneous language enhancements BiDi enhancements (editors and runtime)
      • Solutions versatility
        • BIRT reports
        • Portlet support
      • Enhancing Informix 4GL migration path
        • Migration of ACE reports to EGL
        • Miscellaneous CUI/GUI enhancements
        • CSV file I/O
      • Target System i market
        • Access to System i objects
        • LWI support
        • Miscellaneous System i enhancements
      • Rich U.I. (RUI)
    RBD V7.1 Enhancements
  • 5. Technology Innovation: EGL Rich UI
    • Consistent with EGL philosophy, hides all Ajax complexities with a higher level abstraction
    • Includes WYSIWIG and scripted composition tools, and libraries of Rich UI widgets (EGL rendering of DOJO, YUI, EXT, etc)
    • Fully open and extensible: JavaScript experts can easily create EGL rendering of any JS widget and enrich the library
    • Easily integrate/consume any service (REST or SOAP, external or created in EGL)
    • Single language end-to-end, simple and productive to deliver RIA-to-mainframe solutions
    • Combined with EGL legacy interoperability easily extends legacy to Web 2.0
    EGL notation and tools to support development of Rich Internet Applications (RIA)
  • 6. EGL and the Web2.0 Architecture COBOL Java J2EE EGL compilation Server JSF JDBC JCL SOA SOA JavaScript EGL compilation Browser + System I System Z EGL Mashup Gateway The Internet PHP/ASP/ J2EE/etc Plain HTML dojo Silverlight Flex Layouts REST/SOAP mashups SOA GWT Volta Google Gears Etc. In RBD 7.1 today On IBM AlphaWorks today In RBD 7.5 late 2008* * Plans are always subject to change “ CALL” COBOL RPG + Enterprise Data One language end-to-end
  • 7. EGL / RBD v7.1 Enhancements
    • Support for MQ Series
    • IMS/TM and IMS DL/I support
    • System i support
    • CSV files support
    • Text User Interface applications
    • Web Transaction support
    • BIRT integration
    • EGL Portal/Portlet support
    • Enhanced security
    • JSF support enhancements
    • EGL language enhancements
    • EGL invocation from native Java
    • ILE service procedures invocation
    • *** EXTENSIVE *** Usability enhancements
    • Bi-directional text enhancements
    • Built-in tools for VAGEN migration
    • Rich U.I. – an enormous topic, that will be covered in the Q3 Online Seminar series, sometime in the fall
  • 8. MQ Support
    • Re-introduced EGL Language support for MQ Series
    • Use standard EGL External Data Access elements:
      • Record of type: MQRecord
      • Data Access Abstractions:
        • Get
        • Add
      • Build file/Resource Association (to define the queue)
    • Two MQ support levels:
      • Standard file IO
        • (Data Access Abstractions)
      • Full MQ (low-level) API support
    • Either way, EGL simplifies an un-Godly complex coding paradigm, if tackled through native Java API-set
  • 9. IMS (DB and TM) - Support
    • Support for:
    • IMS TM – full support for MPP (Type 1) programs
      • Formatted and un-formatted 3270 screens
      • Alternate IO-PCB
    • IMS BMP and QBMP
    • zOS – IMS Batch (DL/I programs)
    • Remote Debug!
    • DL/I Database
      • All databases and access methods supported
        • HDAM/HIDAM
        • Secondary Index
        • Logical Relationships
        • GSAM
      • Complete DL/I language support
        • Different levels of abstraction – use of consistent vocabulary
        • Ability to support custom/complex requirements through #dli{
      • Special records that provide abstracted and simplified coding – AND learning IMS
      • Debugging of DL/I calls in EGL
      • Calling IMS DL/I databases through CICS DL/I facility from JavaGen web applications and Web Services
  • 10. Portal / Portlet - Support
    • Full API support for Portal Server’s Portlet technology
    • No courseware planned for this  … but Steve Dearth has created an excellent documentation set – which you can pull down from: - grab:
  • 11. I5 (System i) Application and Platform Support
    • Support for LWI
    • API support for data queues and data areas
      • From EGL program, iSeries DataQueue and DataArea objects can be accessed
      • Access is provided using EGL libraries
      • Source of the Libraries are provided
        • iCobolLib for the ISERIESC platform
        • iJavaLib for the Java platform
    • API support for calling native service programs
        • Service program objects in i5/OS (*SRVPGM)
        • Contain procedures that can be called from
        • Programs or other Service programs
        • Similar to DLL on other platforms
        • EGL programs can now call the service procedures
    • callCmd function – available now on System i
    • Ability for System i/RPG remote program calls to remain “persistent”
      • Allows better re-use of existing production RPG application logic
      • Significantly improves response time
  • 12. EGL Support For LWI
    •  Definition:
            • Light Weight Infrastructure ( LWI )
            • An embeddable runtime technology
            • Based on Open Services Gateway initiative ( OSGi ) framework
            • A light-weight application server which provides a platform for building and hosting web applications
            • Shares services and components from various IBM organizations
    • Key Design features:
            • Minimal resource footprint on system resources
            • Simple to configure, customize and extend
            • Easy to embed into exploiting products
    • Reference:
    • Why is LWI relevant to EGL ?
    • i5/OS is a supported runtime environment for EGL
    • LWI is integrated into i5/OS
        • Known as “Integrated Web Application Server for i5/OS”
        • PTF can be obtained for: V5R4 - GA 12/2007/V6R1 - GA 01/2008
        • Provides Web Administrative Interface
          • Create application server instance
          • Install web application (WAB,WAR)
        • Reference
    • An alternative to WebSphere Application Server or Tomcat
  • 13. CSV File Support***
    • Allows users to write to/and read from .CSV files directly (new CSVRecord type)
  • 14. Text User Interface (TUI) Application Support***
    • A Text UI application presents a text-based user interface similar to that of a 5250 or 3270 terminal.
    • This means that using EGL, you can generate programs for both COBOL and Java that present an identical interface to the user.
  • 15. Business Intelligence Reporting Tool Integration***
    • An Eclipse-based open source reporting system
    • A mature Eclipse technology
    • Can create pdf/html reports
    • Can generate complex report design layouts:
      • Lists
      • Charts
      • Cross-tabulation
      • Letters
      • Documents
      • Compound reports.
    • BIRT home page:
    • Steps to use BIRT
      • Download the BIRT Runtime
        • Also you’ll need iText-1.5.2.jar file
      • Configure your project
      • Watch the BIRT Report Design tutorial
      • Create a BIRT Report Design file
      • Create the BIRTHandler
      • Create the EGL Program that calls the BIRTHandler
    • Check out the BIRT section in the v7.1 PowerPoint Tutorials
  • 16. BIRT Elements and Integration out out out in EGL JavaGen Application EGL BirtHandler EGL Program or JSFHandler BIRT Report Design BIRT Design File (xml) Generated report (html/PDF)
  • 17. VAGEN Migration Facility – Built-in to the Tooling***
    • Like EGL version migration
    • Excellent course written by Jeri Petersen
  • 18. Enhanced Security***
    • New Built-in functions to call LDAP, and secure your WAS application
    • Examples built-in to the product Help Samples Gallery
  • 19. Calling EGL From Native Java***
    • Can now call EGL programs – from Java classes
      • Develop and Debug!
  • 20. EGL Language Enhancements***
    • Can now spell out:
      • AND
      • OR
    • New exclusive or (XOR) functionality
    • SqlDataCode for date/time/timestamp values in text variables
    • Classpath for startTransaction() in Java
    • Getting Java system properties – sysLib.getProperty(“…..”);
    • Support spacesZero in Debug and Java
    • Compatibility of hex, float, and smallfloat
    • New returnValue field in InvocationException
    • Functions may return records
    • Enhanced calls to iSeries programs
  • 21. JSF Support Enhancements***
    • New Page Data view
    • Vastly improved Page Data tooling performance
    • Type-ahead
  • 22. BIDI Enhancements
    • Right to Left National Language Orientation
      • Arabic
      • Hebrew
      • Urdu, Farsi, ….
    • Bi-directional because:
      • Numbers and English terms and names are still left-to-right
    • V7.1 Enhancements:
      • BIDI Preferences
      • Processing Visual Data in Java Environments
      • Processing Logical Data In Cobol Environments
      • Encoded Text Conversions
  • 23. Usability Enhancements – Code Formatter***
    • Ctrl/Shift/F – formats and aligns EGL source code
  • 24. Usability Enhancements – Annotate Errors As You Type***
    • Allows developers to see possible EGL syntax errors, keystroke-by-keystroke
  • 25. Usability Enhancements – (Vastly) Simplified Web Services Development Process ***
    • No need for separate projects for your Web Services
    • Automated Descriptor File creation and population
    • No need for bindFile Annotation
    • Reduced what was @ v7.0 a 24 slide “adventure” to a 10 slide walk-in-the-park
  • 26. Usability Enhancements – New Project Create***
    • Simplified wizard-workflow
    • Use of connection to enter the EAR file deployment information
  • 27. V7.1 COBOLGen – 1 of 6
    • Displaying program logic flow in customer applications
      • statementTrace option
      • Cobol DISPLAY statements
      • User code traced
      • EGL support functions traced
  • 28. V7.1 COBOLGen – 2 of 6
    • Debug tracing customer applications
      • debugTrace option
      • imbedded in CBL source
      • IBM use only
  • 29. V7.1 COBOLGen – 3 of 6
    • Defining the correct language codepage in customer applications
      • CODEPAGE(####) symbolic parameter
      • any values support by the COBOL compiler
      • a few follow:
  • 30. V7.1 COBOLGen – 4 of 6
    • Libraries and called programs generated for batch, available for other environments
    No Yes IMSBMP No Yes IMSVS Yes Yes zosCICS Yes Yes zosBatch Batch called program Batch library Available in
  • 31. V7.1 COBOLGen – 5 of 6
    • CICS STGPROT=YES 0C4 abend problem
      • Symptoms:
        • User is running under CICS
        • User gets 0C4 abend and when examined it is in a library (system or user library generated for batch, but used in CICS)
        • CICS region has SIT option STGPROT=YES
      • Corrective action:
        • 7.1 fixpack 1 has fix – available early summer / 2008
        • If user is getting this in a system library, then contact Jeff Douglas for JCL to relink the 11 system libraries. No code change is required.
        • If user is getting this in a user library, then have them alter the link edit deck to look similar to this (change ALIB to their library’s name):
  • 32. V7.1 COBOLGen – 6 of 6
    • LE compliant main module
      • IMSBMP and batch only
      • Allows the user to use LE compliant programs, such as debuggers, or to pass parameters from the JCL
      • What happens:
        • If this symbolic parameter is set, then the main module link edited is ELARLEMN, otherwise it is the older ELARMAIN
        • ELARLEMN is an LE compliant assembler program that allows LE correctly pass its needed information along to subsequent programs
  • 33. RBD 7.1 Skills Transfer Language Enhancements
  • 34. 1. SqlDataCode for date/time/timestamp values in text variables
    • SqlDataCode is a property of fields of SQLRecords
    • It indicates what type of SQL column the field is associated with
    • Example
      • Record R type SQLRecord
      • h hex(8) { sqlDataCode = 448 }; // 448 means varchar
      • end
  • 35. 1. SqlDataCode for date/time/timestamp values in text variables
    • In v7.1 the following values for sqlDataCode are now allowed on char, unicode, and string variables
      • 384 & 385 (SQL date)
      • 388 & 389 (SQL time)
      • 392 & 393 (SQL timestamp)
    • This allows unicode, char, and string variables to read/write date, time, and timestamp values in EGL’s SQL I/O statements
    • Conversion between text and date/time types is done in the usual way
      • Dictated by StrLib’s defaultDateFormat, defaultTimeFormat, or defaultTimestampFormat
  • 36. 2. Classpath for startTransaction() in Java
    • VGLib.startTransaction() runs a new program asynchronously
    • In Java we run the new program in a new JVM
    • When you call startTransaction from within WAS you don’t know how to make the new JVM use the same classpath as WAS
  • 37. 2. Classpath for startTransaction() in Java
    • Solution: When we see _classpath_ in the Java command property, we’ll replace it with the current classpath
      • The property is
      • It tells us how to create the new JVM
    • Example
      • = java -classpath _classpath_
      • The command becomes “java -classpath d:WAS...”
    • This works outside of WAS too
  • 38. 3. Getting Java system properties
    • SysLib.getProperty() gets values from the properties files (or web.xml) that define the environment of the EGL program
    • For example if your properties file contains
      • myprop = hello
    • … then var1 string = SysLib.getProperty( "myprop" ); returns "hello"
    • In v7.1, if we can’t find the property we will check for a Java system property
    • Example
      • var2 string sysLib.getProperty( "" ) // returns "Windows XP"
  • 39. 4. Support spacesZero in Debug and Java
    • The spacesZero build option is now supported in Debug and Java
    • It has always been supported in COBOL
    • When the data of a Num or Numc variable is all blanks
      • If spacesZero is YES, the variable’s value is zero
      • If spacesZero is NO, error!
  • 40. 5. Compatibility of hex, float, and smallfloat
    • hex(16) variables can now be assigned to, assigned from, or compared with float variables
    • hex(8) variables can now be assigned to, assigned from, or compared with smallfloat variables
    • Older versions of EGL (and VAGen) did not have float or smallfloat, but used hex
  • 41. 6. New operators
    • In v7.0 we added two bitwise operators
      • & (bitwise and)
      • | (bitwise or)
      • Their operands must be ints or smallints
    • In v7.1 we added an xor operator, which does a bitwise exclusive OR
    • All three bitwise operators can now be used with hex(2), hex(4), and hex(8) operands, in addition to ints and smallints
    • The operands are always converted to ints, and the result is always an int
    • Hex operands are converted to ints by padding on the left with zeros till the value is four bytes long, then interpreting that bit pattern as an int
  • 42. 7. New returnValue field in InvocationException
    • In Debug and Java, EGL can call a function from a DLL using the CALL statement
      • Linkage is remoteCall with remoteComType=DISTINCT
    • An InvocationException is thrown if the function returns a non-zero value
    • In v7.1 you can now get that non-zero value when this happens: there is a returnValue field in the exception
  • 43. 8. Functions may return records
    • EGL functions may now return a record
    • A copy of the record is returned to the function’s caller
      • *** This may be slow if the record is very large
  • 44. 9. Enhanced calls to iSeries programs
    • Calls made from Java to iSeries have been enhanced in several ways
      • We improved performance, use of host resources, flexibility, and usability
    • Linkage is remoteCall with remoteComType = Java400
      • This is for calling programs written in COBOL (EGL or not), RPG, C, etc.
      • Not used for calling EGL Java programs (different linkage, not described here)
  • 45. 9. Enhanced calls to iSeries programs
    • When the linkage has remotePgmType=EGL or EXTERNALLYDEFINED
      • The EGL catcher program is used so the EGL iSeries COBOL runtime must be installed
      • If the linkage includes luwControl=CLIENT, the caller can use SysLib.commit() and SysLib.rollback() on the work done by the called program
      • Connections are pooled. On the first call a connection and host job are created based on the host and user name provided. The host job stays active until the JVM runs to completion. Subsequent calls will use the existing connection. In a web environment there is no guarantee that calls will get the same connection.
  • 46. 9. Enhanced calls to iSeries programs
    • When the linkage has remotePgmType=STATEFUL
      • The EGL catcher program is not used so the EGL iSeries COBOL runtime is not needed
      • luwControl=CLIENT is not supported. Commits and rollbacks must be coded on the host.
      • Currently only available for JSFHandlers. A connection and host job is created for each web session. Each time that session makes a call to the host it uses the same connection. This is especially useful when calling a stateful program on the host. A stateful host program can keep resources open (SQL connections, files, queues, etc.)
      • The connection will be disconnected when the HTTP session goes times out. The user can also use ExternalTypes to gain access to the HTTPSession and invalidate it (make it timeout).
  • 47. 9. Enhanced calls to iSeries programs
    • When the linkage has remotePgmType = STATELESS
      • The EGL catcher program is not used so the EGL iSeries COBOL runtime is not needed
      • luwControl=CLIENT is not supported. Commits and rollbacks must be coded on the host.
      • This uses a connection from the same pool as EGL and EXTERNALLYDEFINED
  • 48. 9. Enhanced calls to iSeries programs
    • Usability enhancements
      • If the hostname (in the location field of the linkage) is not supplied, it defaults to localhost
      • If the userid and password have not been set (see SysLib.setRemoteUser function) we use *CURRENT
        • A Java program running on a System I has already been authenticated. In this case the user wants the connection to use the current credentials.