3D Modernizing a Legacy RPG Banking
Download
Report
Transcript 3D Modernizing a Legacy RPG Banking
3D
Modernizing a
Legacy RPG
Banking
Application
Christer Ahlstedt,
IBS Konsult
September 20, 2007
3rd Annual
Plex/2E
Worldwide
Users
Conference
Bio Slide
> Christer Ahlstedt
> IBS Konsult AB/Sales & Marketing Manager
> More than 30 years experience in software
development and project management. Over
the past four years, IBS Konsult has
successfully run modernization projects, with
the mission to stepwise modernize business
critical legacy applications.
> I live in Gothenburg, Sweden, my e-mail is
[email protected]
2
September 20, 2007
[Modernizing a Legacy RPG Banking Application]
Copyright © 2007 CA
Why modernize
an old RPG
Application?
Focus on Business Processes &
Business Rules
Lifecycle of strategic applications
Hardware
Modernized appl.
Applications
Operativ system
databases
Business Processes,
Objects, Business Rules
0
Source: Compuware
5
10
15
20
25Years
Goals for the Modernization projects
Protect the IT investments you already have done
Reuse as much as possible. Pick the “low hanging
fruits” first. These changes will pay off immediately.
Saves time and money.
Make it possible to implement new features faster
and cheaper in the future (time to market).
Make future maintenance faster and cheaper
(reduction with up to 50%)
Improve possibility to stay current with new
technology, and reduce platform dependency
Introduce new concepts (SOA, Webservices)
5
September 20, 2007
[Modernizing a Legacy RPG Banking Application]
Copyright © 2007 CA
Modernizing a
Legacy RPG
Banking
Application
The Bank
CHALLENGE
RESULTS
> Need to respond to market
demands faster – new offerings
> Modern flexible application
where new offerings are put
together by “end users”, no
coding involved
> Application not flexible Business rules hard coded
> Large volumes of transactions
> Dependency of Key persons
7
> Time consuming monthly
batch runs replaced by smaller
runs overnight or ad hoc
SOLUTION
> New datamodel implemented
> Stepwise modernization
> New functionality and DB
implemented each month)
> New development projects run
in parallel with the
Modernization project
> Reuse of existing RPG-modules
> Modern (GUI) clients
September 20, 2007
[Modernizing a Legacy RPG Banking Application]
Copyright © 2007 CA
This presentation covers
> The IBS ”modernization approach”
How to modernize an application ”in production”
= real life
A Modernizing project in stead of replacing the legacy
application with a new standard application
Development cycle: Iterative process, small steps (4-8
weeks), no big bang implementation
How to modernize the foundation of the application
(change database layouts and relations)
Tools used
8
September 20, 2007
[Modernizing a Legacy RPG Banking Application]
Copyright © 2007 CA
Modernization Background
. Application
> Mission critical applications, represents
a big value for the customer
> ”Mature”, at least 10 -15 years old.
Some pgms are from the 1980’s
> Hard to replace the appl. with new
standard appl.
> Limited integration with other
applications
> Difficulty to adapt new solutions eg. web
solutions
9
September 20, 2007
[Modernizing a Legacy RPG Banking Application]
Copyright © 2007 CA
Modernization Background
Programs
The programs are big and
monolithical
The database is not normalised or
does not fully support business
processes any longer
Documentation does not exist or
is not up-to-date
Experienced (key) developers
have to maintain some of the big
programs
Platform dependency (System i)
10
September 20, 2007
[Modernizing a Legacy RPG Banking Application]
Copyright © 2007 CA
The Challenge
The Challenge is to redesign
and replace the supertanker with a fleet of small
special units, cooperating to
deliver the cargo on time
with no delays.
One module for each business function
Start of an IBS Modernization project
Feasibility Study
Processkarta
Process Map
Process
beskrivning
Processes
Informationsbeskrivning
Datamodel
Aktivitetsbeskrivning
Activities
Funktionsbeskrivning
Functions
We analyse, document..
> Business processes and
datamodel
> Any known requirements
Business has on IT
.. analyse risks, set goals, and plan
the first steps of the project
> Together with the customer we set the ”goals” and plan
the first steps of the modernization project.
> Choose activities that will save time and money for the
customer
Result:
Phase 1
Analysis Phase
Business processes
Existing Datamodel
Feasibility Study
Documentation,Goals, Standards etc.
Iterative development - deployment
Phase 1
4-8 weeks
Phase 2
Phase 3
Phase 4
Phase 5
Modernization project - planning
Modernization project
18
September 20, 2007
[Modernizing a Legacy RPG Banking Application]
Copyright © 2007 CA
Modernization project and ongoing
development
New development project
Modernization project
19
September 20, 2007
[Modernizing a Legacy RPG Banking Application]
Copyright © 2007 CA
The IBS
Modernization
approach……………
You need a firm
foundation
”The Bottom up
approach”
When rebuilding a house ….
21
September 20, 2007
[Modernizing a Legacy RPG Banking Application]
Copyright © 2007 CA
..you need a model,
...
22
September 20, 2007
and architechture
[Modernizing a Legacy RPG Banking Application]
Copyright © 2007 CA
..and a solid foundation for your new
building
23
September 20, 2007
[Modernizing a Legacy RPG Banking Application]
Copyright © 2007 CA
Can you live with your foundation for
another 10 years?
24
September 20, 2007
[Modernizing a Legacy RPG Banking Application]
Copyright © 2007 CA
Renovate Applications ….?
> You need a proper datamodel, normalised and
implemented as a Database.
> On top of this solid foundation, you can modernize
existing functions and also build new parts of the
application.
> This will prolonge the life of the application with many
years
25
September 20, 2007
[Modernizing a Legacy RPG Banking Application]
Copyright © 2007 CA
If necessary create a “to be” Data Model
Betalningsvillkor
BETALNINGSVILLKOR
KUND
Kundnr
Ordernr
ORDER
LEVERANTÖR/
ARTIKEL
Ordernr
Radnr
Valutakod
VALUTAKOD
LEVERANTÖR
ORDERRAD
ORDERRAD/
RABATTYP
Levnr
Artikelnr
Artikelnr
ARTIKEL
Ordernr
Radnr
Rabattyp
Rabattyp
RABATTYP
Levnr
LAGERPLATS
Lagerplnr
Stepwise implement the new datamodel
Browser
5250
Logic
Logic
Server pgm’s
Data
Data
Modernization
project
27
September 20, 2007
[Modernizing a Legacy RPG Banking Application]
Copyright © 2007 CA
The
Modernization
project
Tools used
The Development Lifecycle
Process
People
Business
Modeling
Analysis
Design
Construction
Test
Tools
Deploy
Production
Change
Requests
The Modernization project: Iterative steps 4 - 8 weeks
29
September 20, 2007
[Modernizing a Legacy RPG Banking Application]
Copyright © 2007 CA
Development Tools
> Project Planning
> Rigth tools for the job
> Modelling
Process
Data
> Development
Generate code?
Handle versions of
pgms.
> Conversion of Data
> Document Reqs and handle
changes
> Documentation
> Testing
> Deployment (production)
30
September 20, 2007
[Modernizing a Legacy RPG Banking Application]
Copyright © 2007 CA
From analysis to deployment
31
September 20, 2007
[Modernizing a Legacy RPG Banking Application]
Copyright © 2007 CA
CA ERwin and CA Plex
CA Plex
CA ERwin DM
Logical
Plex
Data Model*
Generic
Physical
Plex
Application
Model
Physical
DB2
DB2
DB2
32
September 20, 2007
[Modernizing a Legacy RPG Banking Application]
CA Plex
Function/Source
CA Plex
Function/Source
CA Plex
Function/Source
Copyright © 2007 CA
CA Plex
Business
rules
CA Plex
Pre-build
Class Libraries
BLOB’s
Repository
My
Class Libraries
Business
objects
Basic objects
Generators
HTML Win/NT iSeries iSeries EJB
C/S
XML Oracle NPT
33
September 20, 2007
[Modernizing a Legacy RPG Banking Application]
123
.NET
Copyright © 2007 CA
NT
Back
office
JAVA
IBM Websphere Development Studio
client (WDSc)
34
September 20, 2007
[Modernizing a Legacy RPG Banking Application]
Copyright © 2007 CA
The
Modernization
project
How to do it
How to modernize the super tanker?
Programs
The programs are big and
monolithical
Business logic is embedded in the
programs
The database is not normalised
36
September 20, 2007
[Modernizing a Legacy RPG Banking Application]
Copyright © 2007 CA
Modernization – What?
Database
Redesign/DDS/SQL
Modularisation of programs
business functions, services
Complex batch programs (split into modules)
Presentation layer (UI)
5250
GUI Clients
Web browser clients (HTML, JSP)
(Windows/Java)
Modernise the code: RPG II/III to RPG IV ILE/Java
Integration – web services, XML
37
September 20, 2007
[Modernizing a Legacy RPG Banking Application]
Copyright © 2007 CA
Going from monolithic (5250) programs to
Program code
For
Screen processing
All Business Logic
Database processing
Three-layer solution - Modularization of business logic,
external Database Objects (pgms) and multiple clients
5250
Program code
5250
Win/Java
Code for
Client processing
Webb
Web services
Program code
Code for
Business processes
Program code
Code for
Database processing
Module
1
Module
2
Browser
Module
n
Customer Account
Adress
Card
Database
Objects
Database Objects
> Database object (DBO)
Data attributes
IO - functions
– Single fetch of data
– Block fetch of data
– Read in other sequence
Program code
Contain code for
eg. Read Customer by Adress
– Write DBO
– Change DBO
View
– Delete DBO
Stored procedures
Write
Cust
– eg. for database integrity
> Advantage
One function for each IO – process
One place to change
Fast and easy
Less and more simple code in
calling program
Read
Cust
Change
Cust
Customer
Data
Delete
Cust
Fetch
Adress
Database
Objects
Reuse existing RPG programs?
Program code
For
Screen processing
All Business Logic
Database processing
Replace
Modify RPG pgms to process data
via external server pgms
Create external pgms to process
OLD layouts
Program code
Customer Account
For
Screen processing
Address
Database
Objects
All Business Logic
Call Database
”Wrapper” Pgm
42
September 20, 2007
[Modernizing a Legacy RPG Banking Application]
Database
Copyright © 2007 CA
Add new database layout to wrapper
pgm
OLD
Customer Account
Program code
For
Address
All Business Logic
Database
Objects
Add
NEW layouts
Customer Account
Call Database
”Wrapper” Pgm
43
September 20, 2007
[Modernizing a Legacy RPG Banking Application]
Adress
Copyright © 2007 CA
Bank
Prod
Database
Objects
Which record layout to process?
processing controlled via Wrapper Status flag inside wrapper
O = old , N= new , B=both
OLD
Customer Account
Address
Program code for
Screen processing
All Business Logic
Call Database
”Wrapper” Pgm
Database
Wrapper
Objects
program
NEW layouts
executes
database
processing
Customer
Account
controlled
Bank
via
value
Prod
of wrapper status flag
Adress
Database
Objects
Automating the development of wrapper
functions?
> We have developed programs, scanning through the RPG
source code and implementing the ”wrapper” calls
automatically,
commenting out the database processing statements
adding the calls to the database wrapper programs
> We generate new ”wrapper server functions”
automatically.
45
September 20, 2007
[Modernizing a Legacy RPG Banking Application]
Copyright © 2007 CA
Conversion of Production Data from old
layout into new DB layouts
> Delegate responsibility for conversion of data to a team
member
> Time consuming job, do not underestimate this task
> Conversion of data may have to be run several times to
keep data in synch.
To create testdata
To create a proper starting point for ”parallel runs”
46
September 20, 2007
[Modernizing a Legacy RPG Banking Application]
Copyright © 2007 CA
Testing is extremely important
> Test Manager
> We are deploying into
production environment new
functionality and database
changes almost every month
> The Test Manager is
responsible for:
> Systems testing
> Integration testing
> Reference testing
> Parallel runs (OLD - New DB
layouts)
47
September 20, 2007
[Modernizing a Legacy RPG Banking Application]
Copyright © 2007 CA
Capacity to run in parallel?
> Hardware to run old and
new application in
parallel
Servers
Storage (DB)
Memory
> Time to run over night
or monthly jobs
> End Users may have to
work with two appl.
48
September 20, 2007
[Modernizing a Legacy RPG Banking Application]
Copyright © 2007 CA
Development -> Deployment
Development
Env.
Source,
Object
49
September 20, 2007
[Modernizing a Legacy RPG Banking Application]
Production
systems
Source,
Object
Copyright © 2007 CA
Deployment - Installing new software into
production environment
> Project Manager
> The Project Manager can
delegate all/part of the
duties to a team member:
> One person responsible for
deployments (install new
functionality and database
changes into production
env)
> Responsible for setting the
”Wrapper Status Flags”
> Control & synch. Data
> Keep statistics of elapsed
time of production runs.
50
September 20, 2007
[Modernizing a Legacy RPG Banking Application]
Copyright © 2007 CA
The Bank
CHALLENGE
RESULTS
> Need to respond to market
demands faster – new offerings
> Modern flexible application
where new offerings are put
together by “end users”, no
coding involved
> Application not flexible Business rules hard coded
> Large volumes of transactions
> Dependency of Key persons
51
> Time consuming monthly
batch runs replaced by smaller
runs overnight or ad hoc
SOLUTION
> New datamodel implemented
> Stepwise modernization
> New functionality and DB
implemented each month)
> New development projects run
in parallel with the
Modernization project
> Reuse of existing RPG-modules
> Modern (GUI) clients
September 20, 2007
[Modernizing a Legacy RPG Banking Application]
Copyright © 2007 CA
Summary of the Modernization project
Protection of the IT investments they already had
done
Reuse of existing business logic. Stepwise
implementation. Pick the “low hanging fruits” first.
Saved time and money.
Made it possible to implement new features faster
and cheaper (time to market).
Made future maintenance faster and cheaper
Improved possibility to stay current with new
technology, and we have reduced platform
dependency
52
September 20, 2007
[Modernizing a Legacy RPG Banking Application]
Copyright © 2007 CA
Questions?