Transcript EGL - IBM

®
IBM Software Group
RBD/EGL for System z
RBD V7.5.1 Technical Training
Mark Evans ([email protected])
IBM EGL Ecosystem Team
© 2008 IBM Corporation
IBM Software Group | Rational software
 © Copyright IBM Corporation 2008. All rights reserved.
 The information contained in these materials is provided for informational purposes only,
and is provided AS IS without warranty of any kind, express or implied. IBM shall not be
responsible for any damages arising out of the use of, or otherwise related to, these
materials. Nothing contained in these materials is intended to, nor shall have the effect of,
creating any warranties or representations from IBM or its suppliers or licensors, or
altering the terms and conditions of the applicable license agreement governing the use
of IBM software. References in these materials to IBM products, programs, or services do
not imply that they will be available in all countries in which IBM operates.
 This information is based on current IBM product plans and strategy, which are subject to
change by IBM without notice. Product release dates and/or capabilities referenced in
these materials may change at any time at IBM’s sole discretion based on market
opportunities or other factors, and are not intended to be a commitment to future product
or feature availability in any way.
 IBM, the IBM logo, the on-demand business logo, Rational, the Rational logo, and other
IBM Rational products and services are trademarks or registered trademarks of the
International Business Machines Corporation, in the United States, other countries or
both. Other company, product, or service names may be trademarks or service marks of
others.
2
IBM Software Group | Rational software
Agenda

RBD/EGL for System z Overview

EGL COBOL Generation

EGL Integration with COBOL Web Services

Miscellaneous Topics
 Deployment Consideration
 debugging Considerations
 Development Environment Infrastructure
 IMS and VSE architectures
3
IBM Software Group | Rational software
IBM Rational Business Developer – EGL Technology
addressing the challenges of construction of Services and Applications
 Decouple application specification from runtimes.
 Immediately useable by developers of any background.
 Hide technical complexity.
 Support emerging standards and technologies.
 Guarantee optimal (native) deployment to any platform
 New and traditional.
 Ensure easy inter-operability with legacy.
 Ensure productivity without compromising flexibility:
 Language simplicity.
 Language robustness.
 Provide agile, iterative development.
 Programming for System z with EGL is the same as any other
Platform
4
IBM Software Group | Rational software
EGL and System z – Platform and Data
Support
EGL
program/library/service
Execution
Targets


WebSphere

Unix System
Services

z/Linux*

Z/OS Batch

Z/OS CICS

IMS

Online

IMS Batch

VSE CICS*

VSE Batch*
Java

Data with Java

DB2

Serial files

MQ Queues
Java
Data with
COBOL
iSeries
COBOL
•To be shipped in RBD 7.5.1.1
•With the RBD Generation Extension for z/VSE V7.5.1
COBOL

DB2

IMS/DB (or DL/I)

VSAM

Indexed

Relative

Serial

MQ Queues

Serial

QSAM

GSAM (IMS)

Transient Data
(CICS)

Temp Storage
(CICS)

JES SPOOL
5
IBM Software Group | Rational software
EGL and System z – Application Styles
Batch Jobs
Text UI/3270
EGL Web RUI
Handler
Native Java
EGL Web JSF
EGL Services
EGL VG Web
Transactions
EGLJava
Wrapper
EGL Program
EGL Program
Non-EGL Program
EGL Library
z/OS/VSE Batch
MQ Series
Web Service (EGL or native)
Non-EGL Program
CICS/IMS/VSE*
* Services not available on IMS and VSE
Resources
6
IBM Software Group | Rational software
EGL Business Logic Example – Server program
package pot.programs;
import pot.records.*;
// basic called program
program TE01A type basicProgram (awork TE01W01) // Received record
arecord TE01R01; // SQL Record Data declaration
function main()
move awork.id to arecord.id; // Move from work to record
TE01_READ(); // read DB2 table
if ( arecord is noRecordFound) /* if not found*/
awork.MESSAGE = "Record does not exist";
else
awork.MESSAGE = " ";
move arecord to awork byName; /* move from DB2 record to work*/
end
end
function TE01_READ(); // function to read DB2 table
try
get arecord usingKeys arecord.ID ;
end
end
end
7
IBM Software Group | Rational software
Agenda

RBD/EGL for System z Overview

EGL COBOL Generation

EGL Integration with COBOL Web Services

Miscellaneous Topics
 Deployment Consideration
 debugging Considerations
 Development Environment Infrastructure
 IMS and VSE architectures
8
IBM Software Group | Rational software
The Power of Generation
 Generate all the complex code needed to access middleware
DB’s, App Servers, Transaction Managers, …
No necessity to keep up with complex and disparate APIs and
implementations
 Deploy services to any platform/runtime
Not just application servers…inclusive of CICS, System i, IMS
Build server to automatically upload, compile and create load modules on the
System z or System i
Customizable Procedure libraries to handle different compile and link
scenarios for System z deployable code
 Deploy applications optimally to all key platforms
COBOL for System z – for CICS, IMS or Batch, VSE CICS/Batch
COBOL for System i
Java for WAS or distributed platforms (either J2EE or non-J2EE)
9
IBM Software Group | Rational software
EGL Generation Process - Overview
Generation
•EGL Project
•EGL Source Parts
• Build Descriptors
• Other build parts
•Generate
COBOL
Directories
containing
COBOL code,
link & bind info
TCP/IP
TCP/IP
Code EGL Parts
• Logic
Save
• Data
w/Validation
• I/O
• Build parts
•Generate
Java
Java Project
containing
Java code
(compiled
automatically)
Executables
and
auxiliary files
Compile,
link, bind
Datasets/Files
containing
COBOL code,
link & bind info
10
IBM Software Group | Rational software
EGL COBOL Generation Process Detail – System z
EGL Projects
EGL Source
Files
1
ccublds
Generation Result
13
6
8
5
COBOL Generator
Build Client
TCP/IP
4
EGL Build Files
2
IDE
7
12
(Programs, etc)
COBOL
Source
Preprocessor
3
Other Files
Results Files
Workstation
EGL
JCL
Build
Scripts
EGL
Build
Server
EGL
COBOL
Runtime
files
CICS
IMS
Batch
11
9
10
Build
Job
Load
Modules
DBRMs
Listings
z/OS
1.
You have source ready to generate !!!!
8.
2.
Generate requested using source files and build
files as input
Build server pulls up buildplan.xml and retrieves/parses
correct EGL JCL Build Script
9.
Build server starts job to build (compile,etc) the generated
code
3.
4.
EGL Preprocessor is run to validate EGL source
for the target system (CICS, IMS, Batch)
The EGL COBOL generator creates COBOL and
other source files including “buildplan.xml” file in
local file system
5.
EGL Build client code (ccubldc) is invoked
6.
Build client starts up security process to encrypt
passwords
7.
From info in buildplan.xml, conversation with
running build server is started
10. Build job runs and pulls files from workstation and uses
files from the EGL COBOL runtime (copybooks) and then
creates executables
11. Build Job sends results back to the workstation
12. Build client is notified of job completion and if successful
or failure and it then notifies COBOL generator
13. COBOL Generator updates Generation Results view with
success or not and if failure….location of results file
11
IBM Software Group | Rational software
EGL COBOL Generation – Basic Steps
1.
Get Required EGL Components on z/OS
2.
Setup/Customize/Start Build Server
3.
Setup Build Files
4.
Write Code !!
5.
Generate the code
6.
Look at Results
7.
Test/Run
Done ONCE at beginning by
Administrator!!
(obviously)
12
IBM Software Group | Rational software
EGL Build Files (.eglbld)
 Build files
Contain Build Parts
Have a .eglbld file extension
 Build parts include:
Build descriptor
Resource Associations
Linkage options
Link Edit (COBOL only)
Bind Control (DB2 COBOL only)
 Editing build parts
Build parts use specialized build
part editors
13
IBM Software Group | Rational software
Build Parts – Build Descriptors
 A Build Descriptor is required
Specifies how to generate the code
Specifies runtime options associated with the code
 Composed of sets of options
Some options identify other build parts to utilize
Some identify other EGL parts to generate if
referenced
 Same EGL source may be associated with multiple
build descriptors
Target system generation & runtime options

Required to generate/build code
Debug runtime options

If running the code in the EGL debugger
14
IBM Software Group | Rational software
Build Parts – Build Descriptors
 The set of applicable options varies:
 By language being generated
(Java vs. COBOL)
 By target system
(iSeries, CICS, IMS, Batch, etc..)
 By intended use of the build descriptor

Target System

Debug
 Setting up your build descriptors
 Easier if you avoid setting it up from scratch
 Good to have one as a starting point

The “Create EGL Project” wizard can generate one for you
 Some people prefer use a common build descriptor for all projects
15
IBM Software Group | Rational software
Build Parts – Build Descriptor Editor
Filter based on
target system, intended
use of descriptor and
all vs. basic options
Filter to show only
options with values
Optionally, you can click
this list to select a
database connection
 Visible options can be filtered
 By target system
 By intended use of descriptor
 Basic vs. All options
Values
 Optionally, the EGL Build Parts Editor
then uses that database connection to
automatically set values for the SQLrelated build descriptor options.
 Show only options with values
Options
16
IBM Software Group | Rational software
Build Parts – Build Descriptor – System Option
System Options..
 The system build descriptor option specifies the target
platform for generation.
 This option is required. There is no default value
• AIX - Indicates that generation produces a Java program that can run on AIX
• HPUX - Indicates that generation produces a Java program that can run on HP-UX.
• IMSBMP - Indicates that generation produces a COBOL program that can run in an IMS batch
message processing (BMP) region.
• IMSVS - Indicates that generation produces a COBOL program that can run as an IMS message
processing program (MPP).
• ISERIESC - Indicates that generation produces a COBOL program that can run on iSeries
• ISERIESJ - Indicates that generation produces a Java program that can run on iSeries
• LINUX - Indicates that generation produces a Java program that can run on Linux (with an Intel
processor)
• SOLARIS™ - Indicates that generation produces a Java program that can run on Solaris.
• USS - Indicates that generation produces a Java program that can run on z/OS UNIX® System
Services
• WIN - Indicates that generation produces a Java program that can run on Windows 2000/NT/XP
• ZOSBATCH - Indicates that generation produces a COBOL program that can run on z/OS under
the control of JCL
• ZOSCICS - Indicates that generation produces a COBOL program that can run on CICS for z/OS
17
IBM Software Group | Rational software
Build Parts – Linkage Options
 There are linkage option elements
 callLink

Linkage information used for a given call
to another program
 asynchLink

1
Information used for asynchronous
transfers (sysLib.startTransaction)
 transferLink

Information used for program transfers
(transfer EGL statement)
 fileLink

Information for accessing VSAM file or
transient data queue
 Each linkage option element has several
properties
2
 Build descriptor option: “linkage”
 Identifies the Linkage Options part to
use
 Use is optional and no default if not
specified
18
IBM Software Group | Rational software
Build Parts – Bind Control
 Bind Control parts are only applicable to:
COBOL code built for z/OS
Code accesses DB2
 Provides information to create a bind control file
Same as bind control file you would create for native COBOL code
SQL used to create database request modules (DBRMs) to put in plan
19
IBM Software Group | Rational software
Generation – Default Build Descriptors
1
There are two generate menu items
Generate with wizard…

Wizard leads you though a
sequence of dialogs
Generate

Only enabled if there is a
default build descriptor configured
2
 Default build descriptors
Can be associated with a project,
a folder and a file
Are configured using the
Properties dialogs
 A default build descriptor can be set up
in Preferences dialog
20
IBM Software Group | Rational software
Generation – Default Build Descriptor Dialog
Used when using the
Generation default.
 Properties dialog sets up specification of defaults for:
Used during EGL debug
 Target system (used when generating Java or COBOL code)
 Debug (used when debugging EGL code)
21
IBM Software Group | Rational software
Agenda

RBD/EGL Overview

EGL COBOL Generation

EGL Integration with COBOL Web Services

Miscellaneous Topics
 Deployment Consideration
 debugging Considerations
 Development Environment Infrastructure
 IMS and VSE architectures
22
IBM Software Group | Rational software
EGL Services - Create enterprise services…
 Web services provide standardized access to assets
for different software applications residing on
disparate platforms
 Web service definitions provide abstract interfaces
which allow for loose coupling between business
components – implementation can vary without
affecting consumers
 You can reuse applications exposed as Web services
in a variety of service-oriented architecture
frameworks, such as a process choreographer or an
enterprise service bus.
23
IBM Software Group | Rational software
EGL Services – Flexibility and Productivity
At development time…
focus on the business logic
implement SOA design elements: Services & Interfaces
leverage existing COBOL or RPG developers for new SOA
development
ignore deployment targets/technology while coding/testing
EGL
Service
Use existing non-EGL Web Service
Create EGL Interface and EGL Records
automatically based on existing WSDL
EGL
Service
EGL
Interface
EGL
Records
EGL
Records
EGL
Service
W
S
D
L
Build & expose EGL Web Service
Non-EGL
User of
EGL Service
W
S
D
L
Existing
Service
EGL applications invoke
operations in EGL Interface and
send Records as parameters
Deploy EGL Services…
in Java to Java to WAS, Tomcat, Win, Linux, HP-UX,
Solaris, iSeries
in COBOL to CICS, System i
24
IBM Software Group | Rational software
RBD/EGL SOA Integration with Enterprise Programs – Options
Web Service Based
Option 1 and 2
CICS TS 3.x
Channel
Web Service
Requester
SOAP Message
WSDL
EGL and non-EGL client
CICS
Web
Service
Runtime
RDz
Generated
Handlers
Callable
COBOL
Program
Cobol Call
Channel
EGL
COBOL Cobol Call
Web Service
Wrapper
EGL
COBOL
Service
HFS
WSDL
Service Invocation
WSBIND
Call Interface Based
Option 3
EGL
Client
CICSECI or CICS J2C
Call Statement
25
IBM Software Group | Rational software
RBD/EGL SOA Integration – Option 1
Using EGL Web Services to create new logic or wrapper existing programs
Web Service Based
Option 1
Web Service
Requester
SOAP Message
WSDL
EGL and non-EGL client
CICS TS 3.x
Callable
COBOL
Program
CICS
Web
Service
Runtime
Cobol Call
Channel
EGL
COBOL Cobol Call
Web Service
Wrapper
EGL
COBOL
Service
HFS
WSDL
WSBIND
26
IBM Software Group | Rational software
CICS as a service provider (Basic Web Services support)
TCPIPSERVICE
SOAP message
Service
Requester
CSOL
CWXN
CICS TS V3.1
CPIH/User Defined Xact
Pipeline
URIMAP
matching
HFS
pipeline
config
WSDL
URIMAP
dynamic
install
PIPELINE
data mapping
dynamic
install
Program
WSBind
WEBSERVICE
27
IBM Software Group | Rational software
EGL CICS Web Services – What is generated?
TCPIPSERVICE
SOAP message
Service
Requester
CSOL
CWXN
CICS TS V3.1
CPIH/User Defined Xact
Pipeline
URIMAP
matching
HFS
pipeline
config
WSDL
URIMAP
dynamic
install
PIPELINE
data mapping
Wrapper Pgm
dynamic
install
WSBind
WEBSERVICE
Service Pgm
Generated by EGL
28
IBM Software Group | Rational software
EGL Services
SOA
Concepts built into the language
 Service part
 Remotable sets of behavior: behave the same whether invoked locally or remotely
 EGL Service - accessed from EGL code using a local or TCP/IP connection
 EGL Web service - accessed from any code using a HTTP connection
Service StockQuoteService
Function getQuote (symbol String) returns (money)
…
end
end
 Interface part
 Provides abstract definition of Service
 Can be created directly from WSDL for use by Web Service clients
 Access external services as EGL services
Interface IStockQuoteService
Function getQuote(symbol String) returns (money);
end
Service StockQuoteService implements IStockQuoteService
Function getQuote(symbol String) returns (money)
…
end
end
29
IBM Software Group | Rational software
Service Part

A service is similar to a library,
with the major exception that a
service may be located remotely
from its client.

The client – which can be a
program, JSF handler, library, or
other service - uses (invokes)
the functions defined in the
service.

Services have one or more
public functions that contain
business logic. Once you have
written the business logic, you
can deploy the service as one of
the following:
 an EGL Java™ service
 a Web service
 an EGL COBOL service
 a CICS® Web Service

In general, you create a Service
part when you want to make
your business logic available to
other programs, either locally or
remotely, in an encapsulated
way.
Example of an EGL Service
30
IBM Software Group | Rational software
EGL Services – EGL Deployment Descriptor Files

EGL Deployment
Descriptor files are used
to describe how EGL
service applications are
bound to the clients that
call them, and vice versa
 Generates wrapper
program for each service

Service Client Bindings
 How to invoke the
service

Services Deployment
 How the service is
invoked

Sharable Protocols
 Common information for
clients and services
31
IBM Software Group | Rational software
EGL CICS Web Services – Generation Process
Deployment
Descriptor file
HFS
WSBIND
(.egldd file)
WSDL
Build Descriptor file
EGL Build
(.eglbld file)
Server
CICS
Generation
Services Source
z/OS
(.egl files)
PDS w/Load
Modules
Workstation
z/OS
 Deployment Descriptor File  WSBIND, WSDL, & Wrapper COBOL programs
 Services  COBOL program
32
IBM Software Group | Rational software
EGL CICS Web Service Client
CICS TS 3.x
COBOL
Program
Cobol Call
COBOL
Web Service
Proxy
Channel
CICS
Web
Service
Runtime
SOAP Message
Service
Provider
HFS
WSDL
 Need to:
BIND
 Create an interface representing the external service
 Create the client bindings (using the wizard)
 Declare/invoke the interface
 Generates to EXEC CICS INVOKE WEBSERVICE
33
IBM Software Group | Rational software
RBD/EGL SOA Integration – Option 2
EGL Services and Call Interface
CICS TS 3.x
Web Service
Requester
SOAP Message
WSDL
EGL and non-EGL client
Callable
COBOL
Program
CICS
Web
Service
Runtime
Cobol Call
Channel
EGL
COBOL Cobol Call
Web Service
Wrapper
EGL
COBOL
Service
HFS
WSDL
Service Invocation
WSBIND
CICSECI or CICS J2C
Call Interface Based
Option 2a
EGL
Client
34
IBM Software Group | Rational software
EGL Services for CICS
 EGL also has the concept of an EGL service
 Which is:
 Accessing the generated service directly using
– CICS ECI (remote invocation)
– CICS JCA/J2C (remote invocation)
– COBOL Calls
 From EGL Web Service Client
– EGL generated Java under WAS (libraries/services/jsfHandlers)
– EGL generated Java running outside WAS
– EGL generated COBOL running as 3270/CICS Batch programs in CICS
 With remote invocation (CICS ECI or CICS J2C)
 No XML parsing
 No WSDL processing
 Can utilize Channels and Containers
– But data can be dynamic length (dynamic arrays, in and out types, etc)
 EGL handles the data conversion
 Should be better performance (less parsing)
 Can use same generated EGL Service code as used through Web Services
 i.e. no re-generation required
35
IBM Software Group | Rational software
EGL Services vs Web Services – Web Client Bindings
 You can create multiple Web
Client Bindings
 Allows you to create multiple
ways for the services to be
invoked
and
 Allows service client to determine
which protocol to use by
 Referencing name in the
service/interface declaration
using “bindingKey”
36
IBM Software Group | Rational software
RBD/EGL SOA Integration – Option 2
EGL Services and Call Interface
CICS TS 3.x
Web Service
Requester
SOAP Message
WSDL
EGL and non-EGL client
Callable
COBOL
Program
CICS
Web
Service
Runtime
Cobol Call
Channel
EGL
COBOL Cobol Call
Web Service
Wrapper
EGL
COBOL
Service
HFS
WSDL
Service Invocation
WSBIND
Call Interface Based
Option 2b
EGL
Client
CICSECI or CICS J2C
Call Statement
37
IBM Software Group | Rational software
RBD/EGL SOA Integration with COBOL – Call Interfaces
z/OS
AIX/Linux/zOS
Client
DB2
WAS web
Services
WAS server
Call Programx
J2C Config
Tcpipservice port
EGL Generated
Web Service
code
CTG Server
EGL
Generated
ProgramX
Or
Native
COBOL
Programx
CICS
 Web Service is created using EGL wizard based on already created EGL Programx
 No additional coding needed by programmers…just develop called program and generate needed artifact
38
IBM Software Group | Rational software
EGL – Calling COBOL Programs (remote or local)
 Standard EGL Call statement identifies the program
Call “myprog” (parm1, parm2,…);
Parameters:
Can be items and/or records (up to 30)
Passed as values across network
Converted to pointers on mainframe as needed
Data converted on Client side before sending to mainframe
All are treated as in/out parameters (sent both ways)
CICS and IMS…total record can only be 32K in length
Data received using normal “linkage” methods for target program
 EGL communications layer
Provides the interface to various target specific communication protocols
Developer does not need to know anything about:
APIs to make the remote call
How the call is physically implemented
Anything about conversions
The details of making the connection to the remote system are specified in an
EGL “build file” through a linkage options part
39
IBM Software Group | Rational software
Linkage Options Build Part Editor – Specifying the linkage option
EGL Build File
1
Program callLink
applies to
1.
Type of callLink
Build Descriptor
must associate the
linkage options to
use (this does not
happen by default!)
So can be different
ones for debugging
vs deployment if
you have different
build descriptors
Properties vary
by type
40
IBM Software Group | Rational software
RBD/EGL SOA Integration – Option 3
EGL Integration with non-EGL Web Service
Web Service Based
Option 3
CICS TS 3.x
Channel
Web Service
Requester
SOAP Message
WSDL
EGL and non-EGL client
CICS
Web
Service
Runtime
RDz
Generated
Handlers
Callable
COBOL
Program
Cobol Call
Channel
EGL
COBOL Cobol Call
Web Service
Wrapper
EGL
COBOL
Service
HFS
WSDL
Service Invocation
WSBIND
EGL
Client
CICSECI or CICS J2C
Call Statement
41
IBM Software Group | Rational software
RBD/EGL SOA Integration with non-EGL Web Service
Getting Started:
• You have/get a WSDL file for a COBOL program/copybook
• Could be done using Rational Developer for System z tooling (more on this tomorrow)
• In EGL:
1. Create/Update an EGL Web/RUI Project
2. Create a Deployment Descriptor file in the project (if not already there)
3. Copy the generated WSDL (from RDz) into the project
4. Using this WSDL, use tools to create an interface part and Web Client Bindings
•
Interface part defines the APIs/signatures the client project needs to invoke the created service
•
Web Services Client Binding in Services Descriptor file defines interface/how-to invoke the generated Web
Service
5. Update the Web Services Client Binding entry with the URL to invoke the Web Service
6. Code a RUI/Handler/JSF Handler/library/etc to invoke the Web Service (sample)
7. Generate the:
•
JSF handler, library, etc part invoking the service
•
Client deployment descriptor file
42
IBM Software Group | Rational software
Create web services for zOS runtimes – RDz* Tooling
 Build, Deploy, and Test Web services from existing
applications
 Create source code skeletons from web service
definitions
 Map web service definitions to existing application
modules
 Supports traditional languages
 COBOL
 PL/I
 Supports zOS specific runtimes
 CICS
 IMS
 Batch
*RDz = Rational Developer for zSeries
43
IBM Software Group | Rational software
Consuming EGL Web Services – Create Interface and Client bindings

Copy the WSDL from RDz into the EGL project

Select the WSDL file and choose:
1.
“Create EGL Client Interface”
2.
Choose which web service you want to interface with
(Next)
3.
Choose (filled in for you based on WSDL)
4.

Location of source

Which functions to interface with
Click “Next” to specify client bindings
44
IBM Software Group | Rational software
Consuming EGL Web Services – Create Interface and Client bindings

Choose the EGL deployment descriptor file to hold the EGL Client Bindings (how to invoke the service)
45
IBM Software Group | Rational software
Consuming non-EGL Web Services – Resulting Definitions



Need to fill in URI with URL used to invoke the web service
–
http://<hostname>:<soaplistenerport>/<relativepathofservice>
46
IBM Software Group | Rational software
Consuming non-EGL Web Services – Write the code to invoke the service
 Code normal EGL logic
 Declare input/output variables
 Declare the interface
Invoke service (using interface)
47
IBM Software Group | Rational software
Consuming non-EGL Web Services – Generation
 Add Client Project Deployment Descriptor
File to build descriptors
 Generate the:
 Deployment Descriptor File in Client
Project
 Libraries, services, etc that are not
automatically generated
NOTE: JSF Handlers will be automatically
generated
 Service client is ready to run
48
IBM Software Group | Rational software
EGL Services – Conceptual View
 To do Web Service, you may want to architect a separate project for your Web Services. You
can think of this as a “service” project – and you can think of calls to the web services as
coming from “client” projects
Service Project
Client Project
• Client process
• Service Variable
• Call to the Web service
• EGL Deployment Descriptor
• WSDL (copy)
• EGL Interface
• Web Service
• EGL Code
• Generated Java
• EGL Deployment Descriptor
• WSDL
Common
EAR File
(Optional)
49
IBM Software Group | Rational software
Agenda

Rational Business Developer and EGL Introduction
 Capabilities at a Glance
 How is SOA based development supported?

EGL Integration with CICS COBOL Web Services

EGL COBOL Generation

Miscellaneous Topics
 Deployment Consideration
 debugging Considerations
 Development Environment Infrastructure
 IMS and VSE architectures
50
IBM Software Group | Rational software
EGL – Java Deployment Considerations
 Just like other Java applications once generated
 J2EE Applications
 Export EAR (Enterprise Archive File)
– Includes WAR (Web Archive)
 Install EAR on Application Server
 Setup any required datasource definitions for SQL access
 Non-J2EE Java Applications
 Export the compiled class files into a Jar file
 Copy/Send Jar files to execution machine
– Exported application code
– EGL Java Runtime Jar files
51
IBM Software Group | Rational software
EGL – COBOL Deployment Considerations
 Just like other COBOL applications once generated
System z applications
 Load Modules are in System z datasets
 Load Module datasets need to be added to JCL
 CICS program/transaction definitions as needed
 EGL COBOL Runtime dataset must also be in JCL
 IMS PSBs, PCBs, etc must be created
52
IBM Software Group | Rational software
EGL CICS Web Services – Deploying Service on CICS
 For resulting load modules:
 In CICS DFHRPL;


Add PDS with load modules for service and service wrapper
Add EGL COBOL Runtime library
 In CICS CSD


Add CICS Program entries (unless dynamically created)
Add any required DB2 related entries if program accesses DB2
 Install CICS groups/entries as necessary
 Perform CICS NEWCOPY if replacing existing load modules
 For Web Services Infrastructure:
 Add CICS Pipeline Entry to specify target HFS directories that generation writes to
(one time if you want to always generate to same HFS directory)
 Perform a CEMT P PIPELINE SCAN to:



Enable the Pipeline
Create WebService entry based on information in generated WSBIND file
Create URIMAP entry based on information in generated WSBIND file
NOTE: CICS Userid must have permission to write to HFS directories specified in Pipeline definition
 If using Transaction other than CPIH in Web Service Entry



Recommended if using EGL generated Web Service
Still must be associated with same program example as CPIH
Can be done by CEDA COPY command:
–
CEDA COPY TRANSACTION(CPIH) GROUP(DFHPIPE) AS(<newname>) TO(<group>)
 Install CICS group/entries as necessary
53
IBM Software Group | Rational software
EGL for System z – EGL COBOL Runtime
 To Generate and Execute EGL Generated COBOL, the EGL COBOL Runtime is REQUIRED.
 Rational COBOL Runtime for zSeries V6.0.1
 PID # 5655-R29
 MLC based (i.e. NOT Passport Advantage)
 Includes
– EGL Build Server
– EGL COBOL Runtime modules
– For IMS, ZOSBATCH, ZOSCICS
– Supports EGL, VAGen, and CSP generated applications
 Rational COBOL Runtime for z/VSE V7.5
 PID # 5648-F66
 MLC Based (i.e. not Passport Advantage)
 Includes
– EGL COBOL Runtime Modules
– For VSECICS, VSEBATCH
– Support EGL, VAGen, and CSP Generated applications
 ALWAYS GET LATEST PTFs, these upgrade it to be equivalent to each generation release
54
IBM Software Group | Rational software
EGL Deployment – Why Runtime Code ?
 Smaller Modules
 Common functions DO NOT have to be REPEATEDLY compiled with each program.
 E.g. Error Handling, Mapping Services, some I/O services
 Similar to compiler requirements (COBOL/RPG and LE/ILE)
 Easier Maintenance
 Product Maintenance/enhancements may not require regeneration/compilation to get
changes
 More Language Functionality can be delivered than available in native languages
 E.g - “String” handling in COBOL, libraries, backward scans on files, dynamic
allocations of files, etc
 Shield programmer from mundane tasks and specific platform complexities
 Conversions to EBCDIC on calls to mainframe systems
 Conversational State Management (Java and in COBOL)
 TUI UI programming specifics (5250/3270)
 Etc.
55
IBM Software Group | Rational software
EGL Problem Determination - Java
 Can use Java Debuggers (in RAD/RBD) against generated code
 EGL Messages written to Application Server Console
 EGL provides optional Java Runtime Trace
 Traces logic flow
 Gives details on items like SQL access, etc
 Trace can be sent to files, console, or stdErr
 Use EGL Function (writeStdOut) to “DISPLAY”/write messages to console/SYSOUT
 Last resort !! but familiar method to many programmers
56
IBM Software Group | Rational software
EGL Problem Determination - COBOL
 Can use standard COBOL Debuggers against generated code
 System I and system z
 EGL Messages written to error destinations:
 EGL defined CICS Transient Data Queue
 EGL defined DD card in Batch
 System i Job Log
 For Abends, failing address can be associated with failing EGL statement
 EGL statements are comments in source/compile listings
 Fixes would be made in EGL
 Use EGL Function (writeStdOut) to “DISPLAY”/write messages to console/SYSOUT
 Last resort !! but familiar method to most programmers
 Use EGL Build Descriptor named statementTrace=Yes
 Generates a DISPLAY for each EGL statement and for SQL I/O
 Can be used to trace statement flow and find where errors occurred
 Do not use in production
57
IBM Software Group | Rational software
Development Environment Overview
Logical Components View – access to z
In Debug, access to
DB2 on z/OS
CICS programs
Rational ClearCase
Repository
Windows XP
Rational Business Developer V7.5
CICS Transaction Gateway V7.0.1.2
DB2 Universal JDBC driver
(with DB2 Connect license
from DB2 connect Personal Edition V9.5)
EGL Generation to z/OS
z/OS
CICS Transaction Server
DB2 on z/OS
Enterprise COBOL
Rational COBOL Runtime w/
EGL Build Server
(CTG and DB2 included with RBD)
58
IBM Software Group | Rational software
Development Environment Overview
Detailed View – Access to system Z
z/OS v1.x
Windows Workstation
TCP/IP
DB2 JDBC Driver
w/DB2 Connect v9.5
license
Tcpipservice port 1436
DB2 Enterprise
UDB v8
CICS
Transaction
Gateway
v7.0.1.2
TCP/IP
Port
Rational Business
Developer V7.5.1
EGL Build Server
Part of Rational COBOL
runtime
CICSTS
Generated Load
Modules
EGL Runtime
Modules
Native Programs
TCP/IP
DB2 v8/v9
59
IBM Software Group | Rational software
RBD/EGL Integration with VSE
z/VSE
AIX/Linux/zOS
DB2
WAS server
RUI Client
EGL JSF
EGL
Library
Non-EGL Client
J2C Config
Tcpipservice port
EGL Generated
Services
EGL
Generated
ProgramX
Or
Native
COBOL
Programx
CICS
CTG Server
 Use EGL Web Services or web development to “CALL” to a program running on VSE CICS
60
IBM Software Group | Rational software
EGL and IMS – 10,000 feet
Support for:
 IMS TM
 Formatted and un-formatted 3270 screens
 Alternate IO-PCB
 Called backend programs
 IMS BMP
 zOS – IMS Batch (DL/I programs)
 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
61
IBM Software Group | Rational software
RBD/EGL Integration with IMS
z/OS
AIX/Linux/zOS
DB2
WAS server
RUI Client
EGL JSF
Message Queue
EGL Generated
Services
EGL
Library
Non-EGL Client
J2C Config
EGL
Generated
ProgramX
Or
Native
COBOL
Programx
TCPIP
IMS
Connectors
IMS
 Use EGL Web Services or web development to “CALL” to a program running on IMS
62