EGL Application Modernization

Download Report

Transcript EGL Application Modernization

Legacy TUI to EGL/Web
Application Modernization
Enterprise Modernizations
Copyright 2008, Synchrony Systems, Inc.
State of Affairs of Legacy Applications
Applications are text-based, monolithic, inflexible
Architecture is single-tier
Tools, language and platform are antiquated
Domain knowledge buried deep inside source
Pressures to modernize; fear of risks, costs, complexity
Copyright 2008, Synchrony Systems, Inc.
Page 2
The Need
Move to browser-based rich UI and Web 2.0
Refactor into component architecture and SOA
Extract application software assets
Accelerate EGL adoption
Manage risk, cost and complexity of modernization
Copyright 2008, Synchrony Systems, Inc.
Page 3
The Solution
Analysis to generate modernization plan
Text forms transformation metrics
Program flow transformation metrics
Transformation challenges metrics
Technology enabled modernization to EGL/Web
Inversion of control
UI Facelift
JSF
Rich UI
Business logic refactoring
SOA Enablement
Copyright 2008, Synchrony Systems, Inc.
Page 4
The Result
Improved architecture
Single language; multiple deployment targets
No middleware or proprietary runtime components
SOA enabled
Improved language and platform
Full integration with EGL
Modern IDE – RBD
Native look and feel (JSF or Rich UI)
Copyright 2008, Synchrony Systems, Inc.
Page 5
Modernization Roadmap
Monolithic Legacy
Host Architecture
Monolithic EGL
Host Architecture
JSF Single-tier
Architecture
SOA/JSF Multi-tier
Architecture
SOA/RUI Multi-tier
Architecture
Terminal
Terminal
Web Browser
Web Browser
Web Browser
(TUI
3270/5250)
(EGL TUI
3270/5250)
(EGL/JSF
Facelift)
(EGL/JSF
Facelift)
(Rich UI Facelift/
RUI Handlers
Display Logic)
Host
Host
App Server
App Server
Host/
App Server
(EGL Handlers/
Display Logic)
(TUI Programs/
COBOL
RPG
Natural)
(EGL Programs/
Display Logic
Business Logic
Data Access)
Copyright 2008, Synchrony Systems, Inc.
(EGL Handlers/
Display Logic
Business Logic
Data Access)
Host
(EGL Services/
Business Logic
Data Access)
(EGL Services/
Business Logic
Data Access)
Page 6
Modernization Roadmap
Monolithic Legacy
Host Architecture
Monolithic EGL
Host Architecture
JSF Single-tier
Architecture
SOA/JSF Multi-tier
Architecture
SOA/RUI Multi-tier
Architecture
Terminal
Terminal
Web Browser
Web Browser
Web Browser
(TUI
3270/5250)
(EGL TUI
3270/5250)
(EGL/JSF
Facelift)
(EGL/JSF
Facelift)
(Rich UI Facelift/
RUI Handlers
Display Logic)
Host
Host
App Server
App Server
Host/
App Server
(EGL Handlers/
Display Logic)
(TUI Programs/
COBOL
RPG
Natural)
(EGL Programs/
Display Logic
Business Logic
Data Access)
Copyright 2008, Synchrony Systems, Inc.
(EGL Handlers/
Display Logic
Business Logic
Data Access)
Host
(EGL Services/
Business Logic
Data Access)
(EGL Services/
Business Logic
Data Access)
Page 7
Critical Web Transition
Monolithic EGL
Host Architecture
Terminal
Monolithic Legacy
Host Architecture
Terminal
(EGL TUI
3270/5250)
(TUI
3270/5250)
Host
JSF Single-tier
Architecture
TUI forms → web pages
TUI programs → JSF Handlers
Monolithic → web model
Host → application server
Host
Web Browser
(EGL/JSF
Facelift)
App Server
(TUI Programs/
COBOL
RPG
Natural)
SOA/JSF Multi-tier
Architecture
SOA/RUI Multi-tier
Architecture
Web Browser
Web Browser
(EGL/JSF
Facelift)
(Rich UI Facelift/
RUI Handlers
Display Logic)
App Server
Host/
App Server
(EGL Handlers/
Display Logic)
(EGL Services/
Business Logic
Data Access)
Host
(EGL Programs/
Display Logic
Business Logic
Data Access)
Copyright 2008, Synchrony Systems, Inc.
Preserve execution sequence
Maintain program state
Retain transactions
(EGL Services/
Business Logic
Data Access)
(EGL Handlers/
Display Logic
Business Logic
Data Access)
Page 8
Modernized TUI Application – Before and After
Copyright 2008, Synchrony Systems, Inc.
Page 9
EGL/TUI Application
Copyright 2008, Synchrony Systems, Inc.
Page 10
EGL/Web Application
Copyright 2008, Synchrony Systems, Inc.
Page 11
UI Facelift
Improve on “text based” UI look and feel
Links replace selection entry fields
Toolbars and buttons replace function keys
Styles, colors and graphics highlight logical screen areas
Copyright 2008, Synchrony Systems, Inc.
Page 12
Program Flow
TUI Program (sequential)
Web Application (event-driven)
“main” Function
Page request handler
program initialization
program initialization
form initialization
input loop
form initialization
converse
User
interacts
with form
onConstruction
onPreRender
User
interacts
with page
Display
Submit
Submit function
validate
validate
forward
forward
Return
Return
redisplay
redisplay
Copyright 2008, Synchrony Systems, Inc.
Page 13
Implementation Differences
TUI
Web
Program flow
Sequential
Event-driven
Presentation
Text-based
HTML/JSF/RUI
Copyright 2008, Synchrony Systems, Inc.
Page 14
TUI Transformation Technology (T3) Overview
Copyright 2008, Synchrony Systems, Inc.
Page 15
EGL Modernization Toolset
Analytics
Application knowledge mining
Modernization scenarios, metrics, estimates
Rules-based transformation
Bulk transformation of monolithic application flow to web model
Business logic extraction into services
Facelift of Text UI to JSF/Rich UI
Copyright 2008, Synchrony Systems, Inc.
Page 16
T3 Transformation Approach
Source code rewriting
Transformation scripting language
Generic transformation rules
Application specific transformation rules
Web page generation
Pattern matching language
Generate JSP pages with smart layout
Generic and application specific layout transformation rules
Rules-based
Reusable
Replayable
Customizable to customer requirement
Copyright 2008, Synchrony Systems, Inc.
Page 17
T3 Primary Components
Analysis
Identify common characteristics of TUI forms
Identify common program structures of TUI programs
Program flow transformation
Generation of JSF page handlers
EGL program transformation to use JSF/RUI forms
Generate submit functions
Function-key toolbar links
Menu selection links
Transformation of state management
Text UI transformation
Grouping fields according to common usage patterns
Conversion of text forms to web pages
Copyright 2008, Synchrony Systems, Inc.
Page 18
T3 Block Diagram
Transformation
Rules
TUI Application
Legacy Code
(Cobol, RPG,
Natural Adabas)
Form
specifications
(e.g. 3270,
5250, DDS)
EGL TUI Code
T3 Primary Components
Web Application
EGL Source
Transformation Engine
EGL Web Code
Form Generation
Engine
JSP Web Page
Form Generation
Rules
Copyright 2008, Synchrony Systems, Inc.
Page 19
T3 – EGL Transformation
Transformation script written
in our own
transformation language
Transformation scripts
Debugging log of
transformation actions
Copyright 2008, Synchrony Systems, Inc.
Resulting EGL code
generated by the selected
transformation action
Page 20
T3 – Transformation Results Overview
EGL source files
to be transformed
Transformed EGL source
EGL source code of
the selected file
Abstract syntax tree
of EGL code
Copyright 2008, Synchrony Systems, Inc.
Page 21
T3 – TUI Form Pattern Matching
Facelift patterns
EGL TUI forms
to be generated
as JSP
The fields on the
selected TUI
form
Pattern matching
language
Embedded script
to generate
JSP for matching
fields
Colors indicate
which fields are
matched by
each pattern
Debugging
information
Copyright 2008, Synchrony Systems, Inc.
Page 22
T3 – Facelift Generation Preview
A view of the
resulting
web page
Copyright 2008, Synchrony Systems, Inc.
Page 23
Modernization of TUI Application – Phase I
Copyright 2008, Synchrony Systems, Inc.
Page 24
Text Forms Transformation
Text
Form
JSP/JSF page
Copyright 2008, Synchrony Systems, Inc.
Data
Record
Page Handler
Page 25
Extracting JSP/JSF Page from Text Form
Layout is extracted from text
form specification
JSF components are bound to
fields in data records
Text
Form
JSP/JSF page
Copyright 2008, Synchrony Systems, Inc.
Data
Record
Page Handler
Page 26
Converting Text Form to Data Record
One data record per text form
Provides data displayed by JSF
page
Provides data to be processed
by handler
Contains presentation fields to
control appearance (color,
enabled/disabled state, etc.)
Copyright 2008, Synchrony Systems, Inc.
Text
Form
JSP/JSF page
Data
Record
Page Handler
Page 27
JSF Page Handler
One page handler per form
Holds data record used JSF
page
Handles requests to display
the page
Handles requests to process
page when submitted
Copyright 2008, Synchrony Systems, Inc.
Text
Form
JSP/JSF page
Data
Record
Page Handler
Page 28
UI Facelift
Header Area
Selection Area
Input Area
Message Area
Navigation Area
Copyright 2008, Synchrony Systems, Inc.
Page 29
Layout Areas – Target UI
Header Area
Selection Area
Input Area
Message Area
Navigation Area
Copyright 2008, Synchrony Systems, Inc.
Page 30
Behavior Mapping - Example
Description options are maintained
Selection codes are embedded into link logic
Text borders are replaced with graphic borders
Input fields are removed (hidden)
Copyright 2008, Synchrony Systems, Inc.
Page 31
Resizable Layout
Expected web browser behavior
Support multiple monitor sizes
Copyright 2008, Synchrony Systems, Inc.
Page 32
Resizable Text
Copyright 2008, Synchrony Systems, Inc.
Page 33
Centralized Style Information
Simplified maintenance
Customization of look
Use style sheets (CSS) and page templates (JTPL)
Copyright 2008, Synchrony Systems, Inc.
Page 34
Core Program Logic Transformations
Convert flow from monolithic to web
Split functions at the converse statement
Replace control flow statements with navigation statements
Remove 'input loops‘
Connect logic to JSF lifecycle events
Convert TUI artifacts to JSF equivalents
TUIPrograms to JSF Handlers
‘Use form’ statements
‘Set’ statements
Create handler functions
PF Keys
Menu selections
Copyright 2008, Synchrony Systems, Inc.
Page 35
Support Components
Native EGL libraries (NavLib & FormLib)
Handle program control flow
Provide state management
Encapsulate JSF/HTML widget style interactions
Custom Style Sheet
Project set-up and configuration
Data source configuration
Project build files
Application deployment descriptor
Copyright 2008, Synchrony Systems, Inc.
Page 36
Multiple Forms
A single TUIProgram converses multiple forms
For floating forms and or help forms
Transformed to use JSF dialog panels
For independent forms
Split into multiple JSFHandlers
Each form is a separate web page
Copyright 2008, Synchrony Systems, Inc.
Page 37
Co-dependent Multiple Forms
Maintain a single JSF Handler
Manage internal page display state
Multiple form submits
AJAX refreshes
Multiple UI paradigms
Merged screens into single web page
Notebook model – JSF tab group panel
Wizard model
Copyright 2008, Synchrony Systems, Inc.
Page 38
Open Cursors – Challenges
Programs that keep an open database cursor across
converse statements
Open statement, perhaps with ‘forUpdate’ clause
Retrieve one or more rows from the database
Converse form, show the retrieved data
After converse use the cursor for:
Getting more data
Replacing or deleting the current row
Cursors don’t remain open across web page renderings
When the from is submitted the cursor can no longer be used
Copyright 2008, Synchrony Systems, Inc.
Page 39
Open Cursors – Solutions
For programs that show one record at a time
Pre-fetch the records into a dynamic array
Keep an index for the currently displayed record
Move data to the form based on the currently indexed record
Update or Delete the current record as a separate DB transaction
The record must specify a primary key
For programs that page through a table of several records
Define a record to hold displayed data
Pre-fetch rows into a dynamic array of these records
Use a JSF DataTable to display many rows of data
For large record sets
Implement programmatic paging using EGL and DB positioning
options
Copyright 2008, Synchrony Systems, Inc.
Page 40
SOA Enablement – Phase II
Copyright 2008, Synchrony Systems, Inc.
Page 41
Phase I EGL Modernization Recap
TUI forms transformed to web pages
All text programs transformed to JSF Handlers
Monolithic programs transformed to web model
Deployed on single web tier
Copyright 2008, Synchrony Systems, Inc.
Page 42
Phase II – SOA Enablement
Starting point – EGL/Web Application
Single tier deployment
Extract business logic/data access to EGL Services
Business logic/data access extracted into ‘stateless’ functions
Requires analysis of variable/data usage
Pass required data as arguments to functions
Put functions into services
Create interfaces for the services
JSF Handlers are modified to invoke service functions
EGL Services are deployed to host platform
Multi tier deployment
Copyright 2008, Synchrony Systems, Inc.
Page 43
Summary
Transformation from EGL TUI to Web
Modernization Analysis
High degree of automation
Systematic and repeatable transformation
Co-existence of ongoing development and modernization
Q&A
Copyright 2008, Synchrony Systems, Inc.
Page 44