enterprise generation language 2337 hazy meadows ln flower mound, tx 75028 tel 972-724-0288 (bus)...
TRANSCRIPT
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)
Doug Fulmer
WW Sales Exec, e-bus Infrastructure iSeries
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
© 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
© 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
© 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
© 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
© 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
© 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
© 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
© 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
© 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
© 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
© 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
© 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
© 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
© 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
© 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
© 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
© 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
© 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
© 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
© 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
© 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
© 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
© 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
© 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
© 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
© 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
© 2004 IBM Corporation
Compiling an EGL program
EGLEGL
EGL Script Intermediate
ReUsable!
EGLEGL
compile bind
Final
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
© 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
© 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
© 2004 IBM Corporation
EGL – Comments
// rest of line is comment
/* comment delimiters
- single/multiple lines
- cannot be nested */
-- SQL statement comment
PAGE 34
© 2004 IBM Corporation
EGL Structure Example
Two dimensional array of 20 by 15 elements
One dimensional array of 20 elements
PAGE 35
© 2004 IBM Corporation
Data Parts – DataItem – Examples
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
© 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
© 2004 IBM Corporation
Logic Statements – Case – Examples
Case usingMatching Criteria
Case usingLogical Evaluation
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
© 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
© 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
© 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
© 2004 IBM Corporation
Questions