48
® IBM Software Group © 2006 IBM Corporation EGL Online Seminar Series What’s New in V7.1 What’s New in V7.1 Jon Sayles – [email protected] 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

Slide 1 - Hi

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Slide 1 - Hi

®

IBM Software Group

© 2006 IBM Corporation

EGL Online Seminar Series

What’s New in V7.1What’s New in V7.1

Jon Sayles – [email protected]

All statements regarding IBM's plans, directions, and intent are subject to change or withdrawalwithout 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

Page 2: Slide 1 - Hi

2Last update: 12/04/2007

Today’s Session

Will take approximately one hourWill take approximately one hour Is a “what is” – not “how to” sessionIs a “what is” – not “how to” session I will make the slides available to anyone who is interested I will make the slides available to anyone who is interested

(please eMail me, and send along your thoughts on these (please eMail me, and send along your thoughts on these Sessions) Sessions)

Along with the product bits, there is/are:Along with the product bits, there is/are: A new EGL book – written by Saul Margolis, and A new EGL book – written by Saul Margolis, and

published by MC Presspublished by MC Press New internal docsNew internal docs A new EGL/JSF Course, offered through Rational A new EGL/JSF Course, offered through Rational

EducationEducation New PowerPoint Tutorials – for v7.1New PowerPoint Tutorials – for v7.1 The EGL CafeThe EGL Cafe

http://www-949.ibm.com/software/rational/cafe/index.jspa

Page 3: Slide 1 - Hi

3Last update: 12/04/2007

Rational Business Developer V7.1 Highlights

Repackaging EGL as a stand-alone product Simplified user experience

Single install Single install Smaller overall footprintSmaller overall footprint More EGL-focused interfaceMore 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. and then some.

Page 4: Slide 1 - Hi

4Last update: 12/04/2007

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

Page 5: Slide 1 - Hi

5Last update: 12/04/2007

Technology Innovation: EGL Rich UI

Consistent with EGL philosophy, hides all Consistent with EGL philosophy, hides all Ajax complexities with a higher level Ajax complexities with a higher level abstraction abstraction

Includes WYSIWIG and scripted Includes WYSIWIG and scripted composition tools, and libraries of Rich UI composition tools, and libraries of Rich UI widgets widgets (EGL rendering of DOJO, YUI, EXT, etc)

Fully open and extensible: JavaScript Fully open and extensible: JavaScript experts can easily create EGL rendering of experts can easily create EGL rendering of any JS widget and enrich the libraryany JS widget and enrich the library

Easily integrate/consume any service Easily integrate/consume any service (REST or SOAP, external or created in EGL)

Single language end-to-end, simple and Single language end-to-end, simple and productive to deliver RIA-to-mainframe productive to deliver RIA-to-mainframe solutionssolutions

Combined with EGL legacy interoperability Combined with EGL legacy interoperability easily extends legacy to Web 2.0easily extends legacy to Web 2.0

EGL notation and tools to support development of Rich Internet Applications (RIA)

Page 6: Slide 1 - Hi

6Last update: 12/04/2007

EGL and the Web2.0 Architecture

COBOLCOBOL JavaJava

J2EE

EGLEGL

compilationcompilation

ServerServer

JSFJSF

JDBCJDBC

JCLJCL

SOASOA

SOASOA

JavaScriptJavaScript

EGLEGL

compilationcompilation

BrowserBrowser++

System ISystem I

System ZSystem Z

EGL EGL MashupMashupGatewayGateway

The The InternetInternet

PHP/ASP/PHP/ASP/J2EE/etcJ2EE/etc

The The InternetInternet

PHP/ASP/PHP/ASP/J2EE/etcJ2EE/etc

Plain HTMLPlain HTML

dojodojo

SilverlightSilverlight

FlexFlex

LayoutsLayouts

REST/SOAPREST/SOAP

mashupsmashups

SOASOA

GWTGWT

VoltaVolta

Google GearsGoogle Gears

Etc.Etc.

In RBD 7.1 today On IBM AlphaWorks todayIn RBD 7.5 late 2008*

* Plans are always subject to change

““CALL”CALL”

COBOL

RPGRPG

++

EnterpriseEnterpriseDataData

EnterpriseEnterpriseDataData

One language end-to-endOne language end-to-end

Page 7: Slide 1 - Hi

7Last update: 12/04/2007

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

Page 8: Slide 1 - Hi

8Last update: 12/04/2007

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

Page 9: Slide 1 - Hi

9Last update: 12/04/2007

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{#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

Page 10: Slide 1 - Hi

10Last update: 12/04/2007

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: www.jsayles.com/ibm/ - grab: portal.zipportal.zip

Page 11: Slide 1 - Hi

11Last update: 12/04/2007

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

1. iCobolLib for the ISERIESC platform

2. 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

Page 12: Slide 1 - Hi

12Last update: 12/04/2007

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: https://csopensource.ibm.com/projects/lwi

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• http://www-03.ibm.com/systems/i/software/ias

An alternative to WebSphere Application Server or Tomcat

Page 13: Slide 1 - Hi

13Last update: 12/04/2007

CSV File Support*** Allows users to write to/and read from .CSV files directly (new CSVRecord type)

Page 14: Slide 1 - Hi

14Last update: 12/04/2007

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.

Page 15: Slide 1 - Hi

15Last update: 12/04/2007

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: http://www.eclipse.org/birt

Steps to use BIRT1. Download the BIRT Runtime

Also you’ll need iText-1.5.2.jar file

2. Configure your project3. Watch the BIRT Report Design tutorial4. Create a BIRT Report Design file5. Create the BIRTHandler6. Create the EGL Program that calls the BIRTHandler

Check out the BIRT section in the v7.1 PowerPoint Tutorials

Page 16: Slide 1 - Hi

16Last update: 12/04/2007

BIRT Elements and Integration

out

out

outin

BIRT Design File (xml)

EGL JavaGen

Application

Generated report (html/PDF)

EGL BirtHandlerEGL BirtHandler

EGL Program or JSFHandlerEGL Program or JSFHandler

BIRT Report DesignBIRT Report Design

Page 17: Slide 1 - Hi

17Last update: 12/04/2007

VAGEN Migration Facility – Built-in to the Tooling*** Like EGL version migration Excellent course written by Jeri Petersen

Page 18: Slide 1 - Hi

18Last update: 12/04/2007

Enhanced Security*** New Built-in functions to call LDAP, and secure your WAS application Examples built-in to the product Help Samples Gallery

Page 19: Slide 1 - Hi

19Last update: 12/04/2007

Calling EGL From Native Java*** Can now call EGL programs – from Java classes

Develop and Debug!

Page 20: Slide 1 - Hi

20Last update: 12/04/2007

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

Page 21: Slide 1 - Hi

21Last update: 12/04/2007

JSF Support Enhancements*** New Page Data view Vastly improved Page Data tooling performance Type-ahead

Page 22: Slide 1 - Hi

22Last update: 12/04/2007

BIDI Enhancements

Right to Left National Language OrientationArabicHebrewUrdu, Farsi, ….

Bi-directional because:Numbers and English terms and names are still left-to-right

V7.1 Enhancements:BIDI PreferencesProcessing Visual Data in Java EnvironmentsProcessing Logical Data In Cobol EnvironmentsEncoded Text Conversions

Page 23: Slide 1 - Hi

23Last update: 12/04/2007

Usability Enhancements – Code Formatter*** Ctrl/Shift/FCtrl/Shift/F – formats and aligns EGL source code

Page 24: Slide 1 - Hi

24Last update: 12/04/2007

Usability Enhancements – Annotate Errors As You Type*** Allows developers to see possible EGL syntax errors, keystroke-by-keystroke

Page 25: Slide 1 - Hi

25Last update: 12/04/2007

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

Page 26: Slide 1 - Hi

26Last update: 12/04/2007

Usability Enhancements – New Project Create*** Simplified wizard-workflow Use of connection to enter the EAR file deployment information

Page 27: Slide 1 - Hi

27Last update: 12/04/2007

V7.1 COBOLGen – 1 of 6

Displaying program logic flow in customer applications statementTrace optionCobol DISPLAY statementsUser code tracedEGL support functions traced

Page 28: Slide 1 - Hi

28Last update: 12/04/2007

V7.1 COBOLGen – 2 of 6

Debug tracing customer applicationsdebugTrace option imbedded in CBL source IBM use only

Page 29: Slide 1 - Hi

29Last update: 12/04/2007

V7.1 COBOLGen – 3 of 6

Defining the correct language codepage in customer applicationsCODEPAGE(####) symbolic parameterany values support by the COBOL compilera few follow:

Page 30: Slide 1 - Hi

30Last update: 12/04/2007

V7.1 COBOLGen – 4 of 6

Libraries and called programs generated for batch, available for other environments

Available inAvailable in Batch libraryBatch library Batch called Batch called programprogram

zosBatchzosBatch YesYes YesYes

zosCICSzosCICS YesYes YesYes

IMSVSIMSVS YesYes NoNo

IMSBMPIMSBMP YesYes NoNo

Page 31: Slide 1 - Hi

31Last update: 12/04/2007

V7.1 COBOLGen – 5 of 6

CICS STGPROT=YES 0C4 abend problemSymptoms:

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):

Page 32: Slide 1 - Hi

32Last update: 12/04/2007

V7.1 COBOLGen – 6 of 6

LE compliant main module IMSBMP and batch onlyAllows the user to use LE compliant programs, such as debuggers, or to pass

parameters from the JCLWhat 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

Page 33: Slide 1 - Hi

®

IBM Software Group

© 2006 IBM Corporation

RBD 7.1 Skills Transfer

Language Enhancements

Page 34: Slide 1 - Hi

34Last update: 12/04/2007

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

ExampleRecord R type SQLRecord

h hex(8) { sqlDataCode = 448 }; // 448 means varcharend

Page 35: Slide 1 - Hi

35Last update: 12/04/2007

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

Page 36: Slide 1 - Hi

36Last update: 12/04/2007

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

Page 37: Slide 1 - Hi

37Last update: 12/04/2007

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 vgj.java.command It tells us how to create the new JVM

Example vgj.java.command = java -classpath _classpath_ The command becomes “java -classpath d:\WAS\...”

This works outside of WAS too

Page 38: Slide 1 - Hi

38Last update: 12/04/2007

3. Getting Java system properties

SysLib.getProperty()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 containsmyprop = hello

…then var1 string = SysLib.getProperty( "myprop" );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

Examplevar2 string sysLib.getProperty( "os.name" ) // returns "Windows XP"var2 string sysLib.getProperty( "os.name" ) // returns "Windows XP"

Page 39: Slide 1 - Hi

39Last update: 12/04/2007

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!

Page 40: Slide 1 - Hi

40Last update: 12/04/2007

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

Page 41: Slide 1 - Hi

41Last update: 12/04/2007

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

Page 42: Slide 1 - Hi

42Last update: 12/04/2007

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

Page 43: Slide 1 - Hi

43Last update: 12/04/2007

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

Page 44: Slide 1 - Hi

44Last update: 12/04/2007

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)

Page 45: Slide 1 - Hi

45Last update: 12/04/2007

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.

Page 46: Slide 1 - Hi

46Last update: 12/04/2007

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).

Page 47: Slide 1 - Hi

47Last update: 12/04/2007

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

Page 48: Slide 1 - Hi

48Last update: 12/04/2007

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.