43
Enterprise Generation Language 2337 Hazy Meadows Ln Flower Mound, TX 75028 Tel 972-724-0288 (Bus) Tel 972-724-1202 (Home) Tel 214-507-0859 (Cell) [email protected] Doug Fulmer WW Sales Exec, e-bus Infrastructure iSeries

Enterprise Generation Language

  • Upload
    valin

  • View
    80

  • Download
    1

Embed Size (px)

DESCRIPTION

Doug Fulmer WW Sales Exec, e-bus Infrastructure iSeries. 2337 Hazy Meadows Ln Flower Mound, TX 75028 Tel 972-724-0288 (Bus) Tel 972-724-1202 (Home) Tel 214-507-0859 (Cell) [email protected]. Enterprise Generation Language. Better User Interface. Better Tools. Better - PowerPoint PPT Presentation

Citation preview

Page 1: Enterprise Generation Language

Enterprise Generation Language

2337 Hazy Meadows LnFlower Mound, TX 75028

Tel 972-724-0288 (Bus)Tel 972-724-1202 (Home)Tel 214-507-0859 (Cell)

[email protected]

Doug Fulmer

WW Sales Exec, e-bus Infrastructure iSeries

Page 2: Enterprise Generation Language

PAGE 2

© 2004 IBM Corporation

Today

5250

RPG/COBOL

PDM

Better User

Interface

Web

HATS

WebFacing

iWA

WAS Express

Presentation

Logic

Tools

Database

Better Tools

WDS / RSE

5250

ILE RPG/COBOL

DB2 / DDS

Better Portability

Java Tools

WAS Base

SQL

Better Scalability

EJBs

J2EE / EJBs

WAS ND

WebSphere BI

WebSphere MQ

WDS AE / RSE

Portal Express Plus

Stored Proc / Triggers

Better Architecture

Web Services

Portal Express

Java

Web Tools

WebSphere

Customers and partners may enter the map at any stage and may choose to exit at any stage as well.

RSE = Remote System Explorer

Developer’s Road Map

Page 3: Enterprise Generation Language

PAGE 3

© 2004 IBM Corporation

Development in the era of e-Business

• Maintain and Extend existing core systems• Develop new strategic Internet based systems

– Support the entire spectrum of e-Business solutions

• Simple Web

• Complex Transactional systems

• Integrated Business Processes

• Modernize and Integrate existing core systems

Page 4: Enterprise Generation Language

PAGE 4

© 2004 IBM Corporation

Application Development Challenges

• Lack of a cohesive, systematic, comprehensive approach– Islands of AD tasks optimization

• Fragmented, obsolete, poor or absent – Methodologies and Processes

– Architectural and Implementation Best Practices

– Tools

• Complexity of new technologies– Skills mismatches

– Slow skills ramp-up

– Slow, error prone development

• Legacy – Not integration-ready

– Costly to maintain

Page 5: Enterprise Generation Language

PAGE 5

© 2004 IBM Corporation

User Interface

User Interface

WebServices

WebServices

Business

Logic

Business

Logic

Enterprise Information Connection

Enterprise Information Connection

BusinessProcess

Integration

BusinessProcess

Integration

ControlLogic

ControlLogic

JavaBeans EJB EGL CICS RPG COBOL

JavaBeans EJB EGL CICS RPG COBOL

Servlets Struts JSF

Servlets Struts JSF

HTML JSP WML VML JSF Portlets

HTML JSP WML VML JSF Portlets

WSDL SOAP WSDL SOAP

JDBC JCA JMS EGL

JDBC JCA JMS EGL

SOA BP Choreography SOA BP Choreography

UDDI XML UDDI XML

High Skills … Slow ramp-up Many Tools, Methodologies, Processes Slow, error prone development

Application Construction Challenges

Many parts Many standards and APIs Complex Architectural Structure

Page 6: Enterprise Generation Language

PAGE 6

© 2004 IBM Corporation

User Interface

User Interface

WebServices

WebServices

Business

Logic

Business

Logic

Enterprise Information Connection

Enterprise Information Connection

BusinessProcess

Integration

BusinessProcess

Integration

ControlLogic

ControlLogic

Increase productivity Lower skills requirements

WebSphere Studio Solution

Comprehensive, well integrated developer assistance tools

Test and Deployment Made Easy!

Page 7: Enterprise Generation Language

PAGE 7

© 2004 IBM Corporation

Why Enterprise Generation Language?

• Pressure to move to Java/J2EE• Available developers skills

are business oriented programming technologies – COBOL, PL/I, RPG, 4GL

• Cost of re-training can be significant– Gartner study finds that cost can be

over $20,000 per developer

• Business pressure may not afford time to re-train

• Results may be sub-optimal– Application architecture– Maintainability– Performance

Page 8: Enterprise Generation Language

PAGE 8

© 2004 IBM Corporation

Rapid Development with JSF and EGL

User Interface

User Interface

WebServices

WebServices

BusinessLogic

BusinessLogic

Enterprise Information Connection

Enterprise Information Connection

BusinessProcess

Integration

BusinessProcess

Integration

ControlLogic

ControlLogic

JSF RAD tools virtually eliminates

complex error prone manual coding Point and click Web presentations

Control Logic and Navigation automation

Rich UI components

No-code input validation

EGL simplifies business logic and shields from

complexities of data access (Databases, Files,

Message Queues) and legacy integration High level simple I/O verbs insulate from

coding data access APIs

Procedural easy to learn language

Simple CALL interface to existing programs

insulates from connectivity APIs

Page 9: Enterprise Generation Language

PAGE 9

© 2004 IBM Corporation

EGL – What Is It?

• EGL = Enterprise Generation Language – High level programming specifications

– Hides complexities of implementation technology

• For the non-Java programmer

• For the non-CICS programmer

• Special Parts + Scripting Language– Stored in files managed by workbench repositories

• Interactive Development and Debugging– Environment independent language

– Built-in debugger

– Can be used for RAD development

Page 10: Enterprise Generation Language

PAGE 10

© 2004 IBM Corporation

EGL Approach: Making the complex simple

Simplify specification and construction High-level language specifications

Shields from systems complexities

Easy and quick to learn

Similar to traditional, procedural languages

Facilitate verification Test/debug at logical level

No deployment required, iterative prototype-to-production

Automate generation for Java or COBOL (WDSc AE) for iSeries

Page 11: Enterprise Generation Language

PAGE 11

© 2004 IBM Corporation

Rapid development using a platform-neutral high level 4GL specification languageAbstractions, wizards, and tooling for lower skill requirements to take advantage of new technologies (e.g. EJBs, Java, web services, Struts, MQSeries)

Migration path from VisualAge Generator's 4GLBringing forward and enhancing the core technologies created over the last 20+ years in VisualAge Generator and CSPWith significant additions and enhancements necessary for robust e-business Web Application development

EGL – What Is It?

VG Constructs

ProgramFunctionRecordItemMapsSQL I/OFile IO...

EGL Constructs (R5)

ProgramFunctionRecordStructureItemSQL I/OFile IO...

EGL Additions (R5)

Modernized SyntaxSelect StatementMulti-dimensional arraysNested StructuresMultilevel Qualifiers

EGL Constructs (R5+)

Web TransactionsTablesIMS DB/DCText UI...

Page 12: Enterprise Generation Language

PAGE 12

© 2004 IBM Corporation

EGL – Conceptual Summary

Server scripting in EGL

Bind EGL variables to page via Page Data view

…builds on top of Websphere Studio Tools, like Page Designer.

…supports Text-based UI’s for migration of existing apps

EGL

MQ,Call,

Web Services,…

SQL,WAS,CICS

DB2

The OutsideWorldEGL Code

Websphere Studio-based 4GL (comfortable for 4GL, COBOL, RPG developers)

zSeries

pSeries

iSeries

xSeries

Simplify complexruntimes

Deploy optimally todiverse platforms

Latest Web capabilities

plus “heritage” support

For developers who need to solve Business Problems, not Technology Problems

Page 13: Enterprise Generation Language

PAGE 13

© 2004 IBM Corporation

EGL Development Process Overview

DevelopSpecify business logic using high level abstractionsBuild web pages or text screensTarget platform neutral - Shield complexity of target systemInteractive test of application logicStrong Team support

GenerateTransform EGL logical specification into Java or COBOL Create build script for server artifactsCreate class files ready to export to JAR for deployment

Deploy and RuniSeriesWindowszOS: CICS or Batch (IMS in follow on release)Linux, AIX (Solaris and HP in follow on release)

ModelUse Rational Rose/XDEExport data model from DB Schema or UML model to EGL & DDLOptional, but useful

Iterative

Page 14: Enterprise Generation Language

PAGE 14

© 2004 IBM Corporation

RPGRPG

WebSphere Development Studio

COBOLCOBOL

C/C++C/C++PDM SEU SDA,RLU

PDM SEU SDA,RLU

JavaTMJavaTM

TraceTrace

DebugDebug

ProfilingProfiling DBDB XMLXML AppServerApp

Server

WebWeb

StrutsStruts WebService

WebService

iSeriesiSeriesiSeriesiSeries iSeriesiSeries iSeriesiSeriesWeb

FacingWeb

FacingRSERSE

iSeriesProjectsiSeries

Projects

UnlimitedLicensesUnlimitedLicenses

WebSphere Development Studio Client V5.1.2

+CODE+VisualAge RPG

www.ibm.com/software/awdtools/iseries

JSFJSFEGLJava

generation

EGLJava

generation

Current 5722-WDS customers with software subscriptionfor V5R3 and V5R2, to upgrade use feature #: 2656Available after GA

HATSStudioHATSStudio

Page 15: Enterprise Generation Language

PAGE 15

© 2004 IBM Corporation

WDSc Advanced Edition V5.1.2

JavaJava

TraceTrace

DebugDebug

ProfilingProfiling DBDB XMLXML AppServerApp

Server

WebWeb

StrutsStruts WebService

WebService

iSeriesiSeriesiSeriesiSeries iSeries *iSeries * iSeriesiSeriesWeb

Facing *Web

Facing *RSERSE

iSeriesProjectsiSeries

Projects

Workstation License order through Passport Advantage http://www.lotus.com/services/passport.nsf/WebDocs/Passport_Advantage_Home

Workstation License order through Passport Advantage http://www.lotus.com/services/passport.nsf/WebDocs/Passport_Advantage_Home

+CODE+VisualAge RPG

www.ibm.com/software/awdtools/iseries

JSFJSFEGLJava

generation

EGLJava

generation

EJB *EJB *

HATSStudioHATSStudio

EGL *COBOL

generation

EGL *COBOL

generation

Test *Cases Test *Cases

Portal *ToolkitPortal *ToolkitJ2EE *J2EE *

Page 16: Enterprise Generation Language

PAGE 16

© 2004 IBM Corporation

Page Builder Tools enhancements

Page Templates:

Separate out common page elements in a single template file

Palette:

Contains rich JSF controls. It can be customized with additional controls and groups.

Quick Edit View:

Allows scripting of client or server side events in Java or EGL.

Attributes View:

Customize the key properties of the selected component

Page Data View:

Reflects data available for use by the page. Allows easy binding of data to UI tags/controls

Navigator:

Simplified project navigator hides complexity of J2EE artifacts.

Results:Rapid UI CreationSimple binding of UI to DataQuick Server-side event scripting using Java or EGL

Page 17: Enterprise Generation Language

PAGE 17

© 2004 IBM Corporation

• Native calls to COBOL, RPG, C, or Java from generated EGL applications via “Call” keyword

• Text-based UI support needed for:– VisualAge Generator– Informix– Other 4GL’s

• WYSIWYG TUI builder planned – <2004/2005>

Coexistence with “Heritage Apps”

ProjectExplorer

Visualeditor

Attributes

Page 18: Enterprise Generation Language

PAGE 18

© 2004 IBM Corporation

What Applications can be developed in EGL?

Internet applications

Callable Web Services

Database applications

Callable programs from traditional Java rich GUI clients

Standalone batch applications

Standalone TUI applications

For iSeries, CICS (zOS), Linux, AIX, Windows

WebServices

WebServices

eglegl

WebServers

WebServers

eglegl

J2EETransactions

Servers

J2EETransactions

Servers

Other Transactions

Servers

Other Transactions

Serverseglegl

Page 19: Enterprise Generation Language

PAGE 19

© 2004 IBM Corporation

Accelerate Application Delivery with ARAD

Internal productivity benchmark for Sun PetStore reference application

Hand-Coded in Java IDE WebSphere Studio and EGL

507.5 Hours 60 Hours

WebSphere Studio JSF/EGL is dramatically faster than traditional development

Page 20: Enterprise Generation Language

PAGE 20

© 2004 IBM Corporation

EGL inter-operability = flexibility

Powerful integration of EGL, RPG/CL, COBOL and Java

for no-compromise solutions Maximum productivity, maximum flexibility

Two-way interoperability

Tools integration (Seamless workbench, Editors, Debuggers)

Java/C/C++Java/C/C++

RPG – CL – COBOL RPG – CL – COBOL

EGLEGL

Existing Application Frameworks

Business Logic and Components

Productivity

Flexibility

Page 21: Enterprise Generation Language

PAGE 21

© 2004 IBM Corporation

Lansawww.LANSA.com

mrcwww.mrc-productivity.com

Business Computer Designww.bcdsoftware.com

Magic Softwarewww.magicsoftware.com

GeneXuswww.genexus.com

Computer Associateswww.ca.com

ASNAwww.asna.com

Other Alternatives

Page 22: Enterprise Generation Language

PAGE 22

© 2004 IBM Corporation

What is the same for RPG/COBOL Developers?

• Team development

• Business logic

– Procedural legacy language(s) replaced by EGL

• SQL SQL (and RDBMS RDBMS)

– If developers have used DB2

– However, if using local DB2 system, dissimilar tools and IDE

• Transactions

– All principles of online systems design apply

– Most differences are vocabulary-based

• Code Construction

– If developers have used products such as CSP, IEF, IEW, TELON, APS, etc.

Page 23: Enterprise Generation Language

PAGE 23

© 2004 IBM Corporation

What's different but similar for RPG/COBOL Developers?

• WDSc TSO/ISPF

• EGL Library file Set of related copybooks (database schema)

• Pages Screens – and many similar U.I. Concepts with…

– CICS/BMS maps … HTML forms

• EGL Program RPG/CL/COBOL program source file

• EGL executable Program executable

• JCL CL Pgm

• Managing state – especially if developers are experienced in "conversational" C.I.C.S. programming

• Almost all EGL language constructs similar … and familiar

Page 24: Enterprise Generation Language

PAGE 24

© 2004 IBM Corporation

COBOL EGL … Programming Similarities

• EGL Program Legacy Source file definition

• Datatypes and variables similar – Slightly different syntax (actually pretty close for an iSeries programmer)

• Assignment/Move MoveL/MOVE/COMPUTE statement

• EGL Function RPG Procedure, COBOL paragraph

• EGL call RPG/COBOL CALL – to RPG Procedure or COBOL sub-program, passing parameters, etc.

• Conditional expressions – similar. Use of || && in place of OR/AND

• Conditional expressions

– EGL while PERFORM UNTIL…

– EGL for PERFORM UNTIL…VARYING

• EGL Redefines/Function REDEFINES clause

• Comments Comments – Slightly different rules

• Type definitions are similar extensions to Field Reference File

Page 25: Enterprise Generation Language

PAGE 25

© 2004 IBM Corporation

What's new for RPG/COBOL Developers?

• Rich, window'd IDE (WDSc)

– Not if experienced using WDSc RSE

– If totally "green-screen" get them to read a Redbook on WDSc before they start with EGL

• EGL Artifacts - High level of abstraction in development

• Other EGL and WSED aspects

– Projects and administrative artifacts (Workspace, etc.)

– Libraries

– Debugging

• Web Services and XML

Page 26: Enterprise Generation Language

PAGE 26

© 2004 IBM Corporation

Similar aspects of EGL and RPG

• Field Reference File (RPG/DDS)

• Data Items (EGL)package data;

// AdataItem Apartment char(10) {displayName="Apartment"} end

// CdataItem City char(30) {displayName="City"} enddataItem CustomerId int

{displayName="Customer#“range = (1, 1000)}

end…

// PdataItem Password char(8) {displayName="Password", displayUse=secret} enddataItem Phone char(10) {displayName="Phone"} enddataItem PostalCode char(10) {displayName="Zip Code"} end

// SdataItem State char(2)

{displayName="State", selectFromList = StateTable.stateAbbreviation,selectType = value}

End

*************** Beginning of data ************************** R FLDREF A** A A APARTMENT 10A A** C A CITY 30A A CUSTOMERID 9P 0 RANGE(1 1000) A** D A DIRECTIONS 255A A** E A EMAILADDR 50A A** F A FIRSTNAME 30A A** L A LASTNAME 30A A** P A PASSWORD 8A A PHONE 10A A POSTALCODE 10A A** S A STATE 2A A STREET 30A ****************** End of data ******************************

Page 27: Enterprise Generation Language

PAGE 27

© 2004 IBM Corporation

Similar aspects of EGL and RPG

• RPG is…– Field Reference File– Records– Programs– Subroutines– Text UI– Reports– SQL or Indexed database access– …

• EGL is…– Data Items– Records– Programs– Functions– Text UI– Reports– SQL or Indexed database access– Libraries/Services– Integrated Websphere Studio debugger -

breakpoints/watchpoints– JSF-based web apps w/”Page Handlers”– Portlet support– Deploy to Linux and other platforms– UML import– Web services support– …

Page 28: Enterprise Generation Language

PAGE 28

© 2004 IBM Corporation

Compiling an RPG IV program

ILE Service Program

(*SRVPGM)

RPGIV Source

Members (RPGLE)

ILE Modules (*MODULE)

CRTRPGMOD CRTSRVPGM

ReUsable!

RPG RPG IVIV

RPGIV Source

Members (RPGLE)

ILE Modules (*MODULE)

ILE Program (*PGM)

CRTRPGMOD CRTPGM

CRTBNDRPG

compile

compile

bind

bind

link

Page 29: Enterprise Generation Language

PAGE 29

© 2004 IBM Corporation

Compiling an EGL program

EGLEGL

EGL Script Intermediate

ReUsable!

EGLEGL

compile bind

Final

Page 30: Enterprise Generation Language

PAGE 30

© 2004 IBM Corporation

EGL Application Artifacts

• Page Handler– Contain functions and data related to a .jsp– “On Page Load” function– Declare data structures that are available to “Seoul”– Functions bound to command buttons– Should be mostly “Controller Logic”

• Library– Multiple entry points– Put “Business Logic” here for web apps– Contain functions and data declarations

• generally related in some way• Example: “Data Access Library” for Customer Table

– SQL Record definition– All basic CRUD functions– Generated by Data Access Library Wizard from existing Schemas

• Program– Used for single point of entry situations– TUI program, Batch program, GUI program, …

Welcome.egl

Welcome.jsp

CustomerLib.egl

Call “getCustomer”function

Payroll.egl

Main pgm

Calcs.egl

Called pgm

PrintChecks.egl

Called pgm

Page 31: Enterprise Generation Language

PAGE 31

© 2004 IBM Corporation

Rich Data

• Data Dictionary, iSeries Field Reference file, …• Define Validations, Formatting, Display information, etc… once for Data Items

– These rules apply wherever the data item surfaces (Web Page, TUI, business logic, …)

– Validations are automatically run by EGL runtime and appropriate messages are displayed

• Use Data Items to create Record definitions or other data structures to leverage Rich Data

DataItem CustomerId int { column=CUSTOMER_ID, range=(1, 1000), displayName="Customer Number", format= “######” } end

// Customer SQL RecordRecord Customer SQLRecord { tableNames=("PIZZABYIBM.CUSTOMER"), keyItems=("customerId“) }

customerId CustomerId; firstName FirstName; lastName LastName; … state State;end

DataItem State char(2) {displayName=“State Abbr.", format= “AA”, validatorTable=StateTable } end

DataTable StateTable type matchValidTable StateAbbreviation char(3); {contents = [["NC"], ["MN"], ["TX"], ["VA "] ...]}end

// StoreLocation SQL RecordRecord Store SQLRecord

… state State;end

Page 32: Enterprise Generation Language

PAGE 32

© 2004 IBM Corporation

Data Access

• “Record” abstracts access to:– Relational data

– MQ messages

– Indexed, Relative, Serial data

– DL/I (v6.0)

• Common verbs for data access/unit of work management– Add, Get, Replace, Delete, Commit

• I/O errors handled in a common fashion across disparate data types

• Data format conversions handled automatically

SQL MQ DL/I XML Serial Indexed Relative

EGL RecordEGL Record

* - future

Add

Get

Replace

Delete

Commit

Page 33: Enterprise Generation Language

PAGE 33

© 2004 IBM Corporation

EGL – Comments

// rest of line is comment

/* comment delimiters

- single/multiple lines

- cannot be nested */

-- SQL statement comment

Page 34: Enterprise Generation Language

PAGE 34

© 2004 IBM Corporation

EGL Structure Example

Two dimensional array of 20 by 15 elements

One dimensional array of 20 elements

Page 35: Enterprise Generation Language

PAGE 35

© 2004 IBM Corporation

Data Parts – DataItem – Examples

Page 36: Enterprise Generation Language

PAGE 36

© 2004 IBM Corporation

Logic Statements – If-Else

• Selectively runs a block of code– based on result of logical expression

– runs block when true

– runs alternative block when false

• Syntax:if (logicalExpression)

EGL statements when true

else

EGL statements when false

end

• else clause is optional

Page 37: Enterprise Generation Language

PAGE 37

© 2004 IBM Corporation

Logic Statements – While

• Selectively loops through a block of code – based on result of logical expression

– while block runs when evaluated true

– expression evaluated • when while construct first entered• after each execution of the while block

– execution repeats until evaluated false

• Syntax:while (logicalExpression)

EGL statements when true

end

• Can use to simulate For loop

Page 38: Enterprise Generation Language

PAGE 38

© 2004 IBM Corporation

Logic Statements – Case – Examples

Case usingMatching Criteria

Case usingLogical Evaluation

Page 39: Enterprise Generation Language

PAGE 39

© 2004 IBM Corporation

EGL - Debugging

• EGL source level debugger– Breakpoints, watch variables, change values, …– Extends base Eclipse debugger

• Debug entire application seamlessly regardless of ultimate deployment targets

– Transition from debugging JSP’s to EGL code to Java to … and back

• Validate system correctness prior to deployment

EGL Java Runtime(.jar containing common routines)

EGL Java Runtime(.jar containing common routines)

EGL GeneratorEGL Generator

// Event handler: Delivery Address button clickedFunction forwardToDeliveryAddress() customer.emailAddr = emailEntered ; get customer; setSessionAttr(PizzaConst.custrKey, customer); forward to DeliveryInfo ;End

// Event handler: Delivery Address button clickedFunction forwardToDeliveryAddress() customer.emailAddr = emailEntered ; get customer; setSessionAttr(PizzaConst.custrKey, customer); forward to DeliveryInfo ;End

Java Classes,Configuration Files,

Generation Process - Runtime:

Interpretive Debug Process - Development:

EGL InterpreterEGL Interpreter

Makes calls to EGL runtime from Debugger

Websphere Studio DebuggerWebsphere Studio Debugger

EGL Model

EGL Code

Page 40: Enterprise Generation Language

PAGE 40

© 2004 IBM Corporation

EGL Product Deliveries

EGL 5.1.2• Websphere Studio Site Developer/Application Developer (available May

21st)– Web Applications (based on Java Server Faces)– Text UI applications for distributed platforms– iSeries/Java support (WDSC for iSeries)– VG migration tooling– Many misc enhancements– Creation of EGL-based Web Services

• WDSC Advanced Edition for iSeries (available July 21st)– i-series/COBOL support– 5250 TUI applications

• Websphere Studio Enterprise Developer (available 3Q)– COBOL deployment to CICS and Batch

• Utilities developed in collaboration with BP’s– UML to EGL import tool– <other tools> to EGL migration tool

Page 41: Enterprise Generation Language

PAGE 41

© 2004 IBM Corporation

Recap - EGL Benefits

• Easy to learn, lowers skills barrier to e-business

• Maximize existing “Business Oriented” developers

• Higher productivity to deliver systems faster

• Maximum flexibility

• Multiple platforms and topologies

• Step to Java if required

• Bring legacy to e-business

• Easily connect to existing resources

• Quickly develop new functions on traditional platforms

Page 42: Enterprise Generation Language

PAGE 42

© 2004 IBM Corporation

Recap - EGL Benefits

• Expand e-business developers team with traditionally skilled programmers

• Tap into new valuable resources with strong business domain knowledge

• Lower risk and increase project success rate• Lower costs of training• Lower Cost of development and • Deliver Projects faster and lower

development costs

• Expand e-business developers team with traditionally skilled programmers

• Tap into new valuable resources with strong business domain knowledge

• Lower risk and increase project success rate• Lower costs of training• Lower Cost of development and • Deliver Projects faster and lower

development costs

Page 43: Enterprise Generation Language

PAGE 43

© 2004 IBM Corporation

Questions