1 / 44

Legacy TUI to EGL/Web Application Modernization

Legacy TUI to EGL/Web Application Modernization. Enterprise Modernizations. 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

Download Presentation

Legacy TUI to EGL/Web Application Modernization

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Legacy TUI to EGL/WebApplication Modernization Enterprise Modernizations

  2. 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

  3. 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

  4. 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

  5. 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)

  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 (TUI 3270/5250) Terminal (EGL TUI 3270/5250) Web Browser (EGL/JSF Facelift) Web Browser (EGL/JSF Facelift) Web Browser (Rich UI Facelift/ RUI Handlers Display Logic) Host (TUI Programs/ COBOL RPG Natural) Host (EGL Programs/ Display Logic Business Logic Data Access) App Server (EGL Handlers/ Display Logic Business Logic Data Access) App Server (EGL Handlers/ Display Logic) Host/ App Server (EGL Services/ Business Logic Data Access) Host (EGL Services/ Business Logic Data Access)

  7. Monolithic Legacy Host Architecture Monolithic EGL Host Architecture JSF Single-tier Architecture SOA/JSF Multi-tier Architecture SOA/RUI Multi-tier Architecture Terminal (TUI 3270/5250) Terminal (EGL TUI 3270/5250) Web Browser (EGL/JSF Facelift) Web Browser (EGL/JSF Facelift) Web Browser (Rich UI Facelift/ RUI Handlers Display Logic) Host (TUI Programs/ COBOL RPG Natural) Host (EGL Programs/ Display Logic Business Logic Data Access) App Server (EGL Handlers/ Display Logic Business Logic Data Access) App Server (EGL Handlers/ Display Logic) Host/ App Server (EGL Services/ Business Logic Data Access) Host (EGL Services/ Business Logic Data Access) Modernization Roadmap

  8. SOA/RUI Multi-tier Architecture Monolithic Legacy Host Architecture Monolithic EGL Host Architecture JSF Single-tier Architecture SOA/JSF Multi-tier Architecture Terminal (TUI 3270/5250) Terminal (EGL TUI 3270/5250) Web Browser (EGL/JSF Facelift) Web Browser (EGL/JSF Facelift) Web Browser (Rich UI Facelift/ RUI Handlers Display Logic) Host (TUI Programs/ COBOL RPG Natural) Host (EGL Programs/ Display Logic Business Logic Data Access) App Server (EGL Handlers/ Display Logic Business Logic Data Access) App Server (EGL Handlers/ Display Logic) Host/ App Server (EGL Services/ Business Logic Data Access) Host (EGL Services/ Business Logic Data Access) Critical Web Transition • TUI forms → web pages • TUI programs → JSF Handlers • Monolithic → web model • Host → application server • Preserve execution sequence • Maintain program state • Retain transactions

  9. Modernized TUI Application – Before and After

  10. EGL/TUI Application

  11. EGL/Web Application

  12. 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

  13. Program Flow TUI Program (sequential) Web Application (event-driven) “main” Function Page request handler onConstruction program initialization program initialization onPreRender form initialization input loop form initialization User interacts with form User interacts with page Display converse Submit Submit function validate validate forward forward Return Return redisplay redisplay

  14. Implementation Differences

  15. TUI Transformation Technology (T3) Overview

  16. 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

  17. T3 Transformation Approach • Source code rewriting • Transformation scripting language • Generic transformation rules • Application specific transformationrules • 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

  18. 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

  19. T3 Block Diagram Transformation Rules T3 Primary Components Web Application TUI Application Legacy Code (Cobol, RPG, Natural Adabas) EGL TUI Code EGL Source Transformation Engine EGL Web Code Form Generation Engine JSP Web Page Form specifications (e.g. 3270, 5250, DDS) Form Generation Rules

  20. T3 – EGL Transformation Transformation script written in our own transformation language Transformation scripts Resulting EGL code generated by the selected transformation action Debugging log of transformation actions

  21. 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

  22. T3 – TUI Form Pattern Matching Facelift patterns EGL TUI forms to be generated as JSP Pattern matching language Embedded script to generate JSP for matching fields The fields on the selected TUI form Colors indicate which fields are matched by each pattern Debugging information

  23. T3 – Facelift Generation Preview A view of the resulting web page

  24. Modernization of TUI Application – Phase I

  25. Text Forms Transformation

  26. Extracting JSP/JSF Page from Text Form • Layout is extracted from text form specification • JSF components are bound to fields in data records

  27. 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.)

  28. 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

  29. UI Facelift Header Area Selection Area Input Area Message Area Navigation Area

  30. Layout Areas – Target UI Header Area Selection Area Input Area Message Area Navigation Area

  31. 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)

  32. Resizable Layout • Expected web browser behavior • Support multiple monitor sizes

  33. Resizable Text

  34. Centralized Style Information • Simplified maintenance • Customization of look • Use style sheets (CSS) and page templates (JTPL)

  35. 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

  36. 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

  37. 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

  38. 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

  39. 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

  40. 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

  41. SOA Enablement – Phase II

  42. 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

  43. 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

  44. 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

More Related