Upload
sampetruda
View
594
Download
1
Tags:
Embed Size (px)
DESCRIPTION
Citation preview
®
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
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
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.
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
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)
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
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
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
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
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
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
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
13Last update: 12/04/2007
CSV File Support*** Allows users to write to/and read from .CSV files directly (new CSVRecord type)
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.
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
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
17Last update: 12/04/2007
VAGEN Migration Facility – Built-in to the Tooling*** Like EGL version migration Excellent course written by Jeri Petersen
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
19Last update: 12/04/2007
Calling EGL From Native Java*** Can now call EGL programs – from Java classes
Develop and Debug!
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
21Last update: 12/04/2007
JSF Support Enhancements*** New Page Data view Vastly improved Page Data tooling performance Type-ahead
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
23Last update: 12/04/2007
Usability Enhancements – Code Formatter*** Ctrl/Shift/FCtrl/Shift/F – formats and aligns EGL source code
24Last update: 12/04/2007
Usability Enhancements – Annotate Errors As You Type*** Allows developers to see possible EGL syntax errors, keystroke-by-keystroke
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
26Last update: 12/04/2007
Usability Enhancements – New Project Create*** Simplified wizard-workflow Use of connection to enter the EAR file deployment information
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
28Last update: 12/04/2007
V7.1 COBOLGen – 2 of 6
Debug tracing customer applicationsdebugTrace option imbedded in CBL source IBM use only
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:
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
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):
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
®
IBM Software Group
© 2006 IBM Corporation
RBD 7.1 Skills Transfer
Language Enhancements
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
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
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
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
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"
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!
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
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
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
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
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)
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.
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).
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
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.