Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

2012 06-15-jazoon12-sub138-eranea-large-apps-migration


Published on

Presentation @ Jazoon 2012: automated migration of large applications to Java - key success factors

Published in: Technology
  • Be the first to comment

2012 06-15-jazoon12-sub138-eranea-large-apps-migration

  1. 1. AUTOMATEDMIGRATION TO JAVAKey success factors for large business applicationsDidier Durand & Pierre-Jean Distcheideranea (Lausanne, CH)submission #138
  2. 2. agenda> background> starting point> target context> benefits> technology> choose & change target> process automation> iso-functionality key success factors> progressive migration> testing> code structure> samples & demonstration 2
  3. 3. CONTEXT
  4. 4. background> eranea (Lausanne, CH), specialized in automated migration of large business application to java / linux / x86 clouds> presentation based on various finished or running projects – media – banking – administration – insurance – retail – independent software vendors> current lead project: migration of core banking system (10M lines of Cobol) for private bank in Geneva 4
  5. 5. starting point> a large mission-critical homemade application> encapsulating all business knowledge and know-how with high- reliability proven by decades of operations> representing large investments (10s to 100s of men-year in development)> on the way to technological obsolescence> running on a very expensive proprietary system when compared to standards of 2012 5
  6. 6. target: x86 (1) x86 as powerful as anybody x86 > 2/3 of total market ! x86 architecture used by Amazon, Google, Facebook, Twitter 6
  7. 7. target: linux (2) worldwide server market 1. linux is growing (roll-outs, subscriptions, shipments) fast 2. proprietary OS disappear lots of 3. linux references: office automation London Stock servers Exchange, NYSE, Euronext, etc. 4. for the “3S” : Speed, Stability, Security 7
  8. 8. benefits (1): massive savings 100% = approx. 5 millions CHF/an100% 1. software too costly → 3rd party competitive environment90% software required for base + 3rd parties80%70% 2. switch to OSS :60%50% IBM software approx -90 % on software (z/OS, Cics, DB2, etc..) costs (70%)40%30% leverage for h/w switch20% Peripherals (disks, tapes, etc.)10% 3. total savings Cpu x86 h/w + OSS s/w → 90% 8
  9. 9. benefits (2): modernization> web technologies → html/ajax UI> core components → java, linux + associated tools for monitoring, etc.> IDE (Eclipse) + all java tooling (unit test, code analysis, code coverage, etc.)> SOA → 1 web service (SOAP) per legacy transaction> SOA → BPM> java becomes native and new source code → old technologies are abandoned 9
  10. 10. benefits (3): modernization> new architecture • horizontal growth → no big bang • function isolation: transactions <> batch → higher stability • high-availability and disaster recovery much less costly • small increment → fast decisions> standards components: • recruiting easier • various alternatives / many suppliers 10
  11. 11. technology (1) Cobol NeaTranscoder pgm Cobol Lexical Syntax Semantics Code copy Analysis Analysis Analysis Generation BMS desc NeaRuntime Java XML Program Screen Online (incl SQL) “Cobol” support SQL support SOA Internal DBMS Object Display support implementation CICS Emulation Tracing / logging Batch 11
  12. 12. technology (2) legacy application + database 1. automated synchro with traceability & reporting CI CI engine engine Internet AS sources DB sources DB(JBoss) repository ERIT 2. copy (partial) repository ERIT of legacy assets Integrate Integrate 3. replication of client processes & systems eranea VPN / VPC
  14. 14. choose & change target full mutation ISV derived appl. DBsolution level 4 on Linux Java AS level 3 on Linux Cobol → Java level 2 CICS → Java AS others : identical different steps original Cobol → Java of level 1 appl. others : identical single project <> different projects 14
  15. 15. automation> transcoding must be 100% automatic • 1% tweaking on 10M lines → 100000 lines !> repeatable whenever needed • no additional HR costs> very fast • 1 million lines → 4 minutes> incremental / recurrent improvement • new ideas implementable at each run • full specs not needed initially> quality remain constants 15
  16. 16. iso-functionality> definition: legacy & new system do the exact same thing: • all algorithms, functions, etc. produce 100% identical results • data stored to database is identical “at the bit level” • UI does the exact same thing: field positions, function keys / shortcuts, screen chaining> consequence: • legacy and new system can run in parallel sharing the same database • users are split between the 2 systems • they collaborate via the sharing of data • they can migrate individually 16
  17. 17. (very) progressive migration Java becomes tomcat activity reference • 100% of data on DB2 • Cobol remains reference 100% migration to Java DRDA new DBinstantaneous progressive on AS data way back migrationto old system Cobol on Cics CICS DB2 0% time 6-9 2-3 months months mainframe switched off no big bang = key success factor !
  18. 18. testing: legacy <> new system 3270 CICS DB2 COBOL (1) XML transcoder or screen run-time or Cobol data bug fixes (2) (4) XML screen when (1) & (3) different data XML screen (3) data Tomcat HTML
  19. 19. code structure> original code structure must be preserved: • 1 Cobol program → 1 Java class • line by line transcoding • Cobol reading order is kept> code restructuring (reverse analysis + MDA) is avoided: • original programmers dont recognize their code • java gurus dont like the generated code> at least, original programmers are happy: • they recognize their code • their adaptation is minimized • they dont fear for their job → they adhere to project 19
  21. 21. eranea software components> eranea software components> neaTranscoder: conversion tool> neaRuntime: runtime framework> neaWebServices: SOAP interface for legacy software> neaWebTerminal: web client> integrate: continuous integration, reporting, inventory & test management 21
  22. 22. neaTranscoder> 100% automatic conversion of Cobol programs to Java classes for all Cobol features (copybooks, stored procs, sql, vsam files, batch, cics, etc.)> initial semantics fully preserved: “down to bit level”> generated Java code must be maintainable by humans> generated Java remains procedural → on purpose to keep Cobol developers on board> initial Cobol code becomes comments in Java → facilitate the transition of developers> dead code detection and removal 22
  23. 23. sample transcoded Cobol in Java (1)
  24. 24. sample transcoded Cobol in Java (2)
  25. 25. transcoder plugin for Eclipse
  26. 26. neaRuntime (1)> java runtime framework used by transcoded programs (batch, tp, ws, etc.)> handles internal (16bits – UTF16) vs external representation (8bits – EBCDIC or ASCII)> supports extended precision of Cobol: up to 31 digits> 2-phase commit for SQL> supports fixed or floating point operations with identical rounding when compared to mainframe> support of all transactional Cobol / Cics functions (pseudo- of fully- conversational screen maps, volatile or persitent queues, async messaging, etc.)> batch → separate “clean” JVM for each job step • logical filenames • internal <> external multi-threaded sorts • fixed- or variable-length sequential files 26
  27. 27. neaRuntime (2)> multiple containers possible: • tomcat for simple transactional applications • (clustered) JBoss for transactional high-end applications • plain JVM for batch programs • database manager (DB2, etc.) for stored procedures • Eclipse for development / debugging • JUnit for automated tests> compatible with Java 1.6 or 1.7 on Sun JRE, OpenJDK and IBM J9> easy scaling on multi-core x86 → multi-threading for transactional and batch> optimized object management / caching for reduced (blocking) GC 27
  28. 28. neaWebTerminal> optimized Ajax web client to render legacy (3270, etc.) screens> display is fully identical to original look & feel: • all functions keys (PF1 → PF24) are emulated via Ajax • all fields at same place • navigation (Tab, etc.) fully identical> supports composite 3270 multi-windows screens as well as data-only maps> supports capture and replay of test scenarios> authentication via LDAP> support for portlet integration 28
  29. 29. neaTerminal : screenshot (1)
  30. 30. neaTerminal : screenshot (2)
  31. 31. integrate> inventory of legacy Cobol programs and generated Java classes • advanced query capabilities> continuous integration dashboard • Cobol imports from source • transcoding process • build, package & deploy procedures> non-regression tests management & monitoring: • Cobol execution capture • Java replay & comparison • Database synchronization • code coverage analysis: program & paragraph levels> monitoring of application servers 31
  32. 32. Merci !eranea http://www.eranea.comDidier Duranddidier.durand@eranea.comPierre-Jean