Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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?