SlideShare une entreprise Scribd logo
1  sur  32
Télécharger pour lire hors ligne
AUTOMATED
MIGRATION TO JAVA
Key success factors for large business applications




Didier Durand & Pierre-Jean Distcheid
eranea (Lausanne, CH)
submission #138
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
CONTEXT
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
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
target: x86 (1)




                                                             x86 as powerful
                                                               as anybody

    x86 > 2/3 of total market !



      x86 architecture used by Amazon, Google, Facebook, Twitter
                                                                          6
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
benefits (1): massive savings

 100% = approx. 5 millions CHF/an

100%
                                        1. software too costly →
                 3rd party                 competitive environment
90%
                 software                  required for base + 3rd parties
80%
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 switch
20%          Peripherals
             (disks, tapes, etc.)
10%                                     3. total savings
            Cpu
                                            x86 h/w + OSS s/w → 90%

                                                                             8
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
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
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
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
KEY SUCCESS FACTORS
choose & change target
                                                                               full
                                                                             mutation

  ISV            derived
                  appl.                                                  DB
solution                                                   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
automation

> transcoding must be 100% automatic
       • 1% tweaking on 10M lines → 100'000 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
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
(very) progressive migration
                                                                     Java
                                                                  becomes
                   tomcat
                                         activity                 reference
                                              • 100% of data on DB2
                                              • Cobol remains reference
                                       100%




                                                                          migration to
                                                               Java
                                     DRDA




                                                                            new DB
instantaneous   progressive                                   on AS




                                                                             data
   way back
                migration
to old system
                                                     Cobol
                                                    on Cics
                     CICS        DB2
                                        0%                                               time
                                                         6-9                2-3
                                                        months             months

                                                                               mainframe
                                                                               switched
                                                                                  off
                       no big bang = key success factor !
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
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 don't recognize their code
      • java gurus don't like the generated code

> at least, original programmers are happy:
       • they recognize their code
       • their adaptation is minimized
       • they don't fear for their job → they adhere to project   19
TECHNOLOGY, SAMPLES
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
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
sample transcoded Cobol in Java (1)
sample transcoded Cobol in Java (2)
transcoder plugin for Eclipse
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
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
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
neaTerminal : screenshot (1)
neaTerminal : screenshot (2)
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
Merci !


eranea                     http://www.eranea.com

Didier Durand
didier.durand@eranea.com


Pierre-Jean Ditscheid
pjditscheid@eranea.com

Contenu connexe

Tendances

Docker 101: Introduction to Docker
Docker 101: Introduction to DockerDocker 101: Introduction to Docker
Docker 101: Introduction to Docker
Docker, Inc.
 
MongoDB概要:金融業界でのMongoDB
MongoDB概要:金融業界でのMongoDBMongoDB概要:金融業界でのMongoDB
MongoDB概要:金融業界でのMongoDB
ippei_suzuki
 

Tendances (20)

Docker 101: Introduction to Docker
Docker 101: Introduction to DockerDocker 101: Introduction to Docker
Docker 101: Introduction to Docker
 
메모리 할당에 관한 기초
메모리 할당에 관한 기초메모리 할당에 관한 기초
메모리 할당에 관한 기초
 
Architecture microservices avec docker
Architecture microservices avec dockerArchitecture microservices avec docker
Architecture microservices avec docker
 
Bluestore
BluestoreBluestore
Bluestore
 
Docker Kubernetes Istio
Docker Kubernetes IstioDocker Kubernetes Istio
Docker Kubernetes Istio
 
Service Mesh - Observability
Service Mesh - ObservabilityService Mesh - Observability
Service Mesh - Observability
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 
MySQLレプリケーションあれやこれや
MySQLレプリケーションあれやこれやMySQLレプリケーションあれやこれや
MySQLレプリケーションあれやこれや
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
ビッグデータ処理データベースの全体像と使い分け
ビッグデータ処理データベースの全体像と使い分けビッグデータ処理データベースの全体像と使い分け
ビッグデータ処理データベースの全体像と使い分け
 
From Zero to Docker
From Zero to DockerFrom Zero to Docker
From Zero to Docker
 
Minio Cloud Storage
Minio Cloud StorageMinio Cloud Storage
Minio Cloud Storage
 
MongoDB概要:金融業界でのMongoDB
MongoDB概要:金融業界でのMongoDBMongoDB概要:金融業界でのMongoDB
MongoDB概要:金融業界でのMongoDB
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
 
AIOpsで実現する効率化 OSC 2022 Online Spring TIS
AIOpsで実現する効率化 OSC 2022 Online Spring TISAIOpsで実現する効率化 OSC 2022 Online Spring TIS
AIOpsで実現する効率化 OSC 2022 Online Spring TIS
 
MuleアプリケーションのCI/CD
MuleアプリケーションのCI/CDMuleアプリケーションのCI/CD
MuleアプリケーションのCI/CD
 
MySQL Slow Query log Monitoring using Beats & ELK
MySQL Slow Query log Monitoring using Beats & ELKMySQL Slow Query log Monitoring using Beats & ELK
MySQL Slow Query log Monitoring using Beats & ELK
 
AWSスポットインスタンスの真髄
AWSスポットインスタンスの真髄AWSスポットインスタンスの真髄
AWSスポットインスタンスの真髄
 
Kubernetes security
Kubernetes securityKubernetes security
Kubernetes security
 
Automation with ansible
Automation with ansibleAutomation with ansible
Automation with ansible
 

En vedette

En vedette (7)

Eranea : global presentation of solution
Eranea : global presentation of solutionEranea : global presentation of solution
Eranea : global presentation of solution
 
Transforming mission-critical applications on mainframes for innovation
Transforming mission-critical applications on mainframes for innovationTransforming mission-critical applications on mainframes for innovation
Transforming mission-critical applications on mainframes for innovation
 
Eranea brochure : introduction to solution for mainframe migration / transfor...
Eranea brochure : introduction to solution for mainframe migration / transfor...Eranea brochure : introduction to solution for mainframe migration / transfor...
Eranea brochure : introduction to solution for mainframe migration / transfor...
 
2014 01-23-eranea-apalia-private-cloud
2014 01-23-eranea-apalia-private-cloud2014 01-23-eranea-apalia-private-cloud
2014 01-23-eranea-apalia-private-cloud
 
Migrating legacy applications (Cobol, PL/I) to Java on z/OS
Migrating legacy applications (Cobol, PL/I) to Java on z/OSMigrating legacy applications (Cobol, PL/I) to Java on z/OS
Migrating legacy applications (Cobol, PL/I) to Java on z/OS
 
Transforming mission-critical applications on mainframes for innovation
Transforming mission-critical applications on mainframes for innovationTransforming mission-critical applications on mainframes for innovation
Transforming mission-critical applications on mainframes for innovation
 
Eranea's solution and technology for mainframe migration / transformation : d...
Eranea's solution and technology for mainframe migration / transformation : d...Eranea's solution and technology for mainframe migration / transformation : d...
Eranea's solution and technology for mainframe migration / transformation : d...
 

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

Xen summit 2010 extending xen into embedded
Xen summit 2010 extending xen into embeddedXen summit 2010 extending xen into embedded
Xen summit 2010 extending xen into embedded
The Linux Foundation
 
WS-* Specifications Update 2007
WS-* Specifications Update 2007WS-* Specifications Update 2007
WS-* Specifications Update 2007
Jorgen Thelin
 
Google Android Naver 1212
Google Android Naver 1212Google Android Naver 1212
Google Android Naver 1212
Yoojoo Jang
 
Operating the Hyperscale Cloud
Operating the Hyperscale CloudOperating the Hyperscale Cloud
Operating the Hyperscale Cloud
Open Stack
 
下午1 intel yang, elton_mee_go-arch-update-final
下午1 intel yang, elton_mee_go-arch-update-final下午1 intel yang, elton_mee_go-arch-update-final
下午1 intel yang, elton_mee_go-arch-update-final
csdnmobile
 
dotnet_remoting
dotnet_remotingdotnet_remoting
dotnet_remoting
OPENLANE
 
Singularity Rethinking The Software Stack
Singularity    Rethinking The  Software  StackSingularity    Rethinking The  Software  Stack
Singularity Rethinking The Software Stack
alanocu
 
Choosing Your Windows Azure Platform Strategy
Choosing Your Windows Azure Platform StrategyChoosing Your Windows Azure Platform Strategy
Choosing Your Windows Azure Platform Strategy
drmarcustillett
 

Similaire à 2012 06-15-jazoon12-sub138-eranea-large-apps-migration (20)

Embedded Virtualization applied in Mobile Devices
Embedded Virtualization applied in Mobile DevicesEmbedded Virtualization applied in Mobile Devices
Embedded Virtualization applied in Mobile Devices
 
Xen summit 2010 extending xen into embedded
Xen summit 2010 extending xen into embeddedXen summit 2010 extending xen into embedded
Xen summit 2010 extending xen into embedded
 
Windows Azure For Architects
Windows Azure For ArchitectsWindows Azure For Architects
Windows Azure For Architects
 
eXtremeDB FE
eXtremeDB FEeXtremeDB FE
eXtremeDB FE
 
21st Century SOA
21st Century SOA21st Century SOA
21st Century SOA
 
Linux on System z Update: Current & Future Linux on System z Technology
Linux on System z Update: Current & Future Linux on System z TechnologyLinux on System z Update: Current & Future Linux on System z Technology
Linux on System z Update: Current & Future Linux on System z Technology
 
Pandora FMS - Technical presentation
Pandora FMS - Technical presentationPandora FMS - Technical presentation
Pandora FMS - Technical presentation
 
WS-* Specifications Update 2007
WS-* Specifications Update 2007WS-* Specifications Update 2007
WS-* Specifications Update 2007
 
Google Android Naver 1212
Google Android Naver 1212Google Android Naver 1212
Google Android Naver 1212
 
The sFlow Standard: Scalable, Unified Monitoring of Networks, Systems and App...
The sFlow Standard: Scalable, Unified Monitoring of Networks, Systems and App...The sFlow Standard: Scalable, Unified Monitoring of Networks, Systems and App...
The sFlow Standard: Scalable, Unified Monitoring of Networks, Systems and App...
 
Operating the Hyperscale Cloud
Operating the Hyperscale CloudOperating the Hyperscale Cloud
Operating the Hyperscale Cloud
 
下午1 intel yang, elton_mee_go-arch-update-final
下午1 intel yang, elton_mee_go-arch-update-final下午1 intel yang, elton_mee_go-arch-update-final
下午1 intel yang, elton_mee_go-arch-update-final
 
21st Century SOA
21st Century SOA21st Century SOA
21st Century SOA
 
What's New in RHEL 6 for Linux on System z?
What's New in RHEL 6 for Linux on System z?What's New in RHEL 6 for Linux on System z?
What's New in RHEL 6 for Linux on System z?
 
Complex Er[jl]ang Processing with StreamBase
Complex Er[jl]ang Processing with StreamBaseComplex Er[jl]ang Processing with StreamBase
Complex Er[jl]ang Processing with StreamBase
 
dotnet_remoting
dotnet_remotingdotnet_remoting
dotnet_remoting
 
Singularity Rethinking The Software Stack
Singularity    Rethinking The  Software  StackSingularity    Rethinking The  Software  Stack
Singularity Rethinking The Software Stack
 
Deep Dive into WinRT
Deep Dive into WinRTDeep Dive into WinRT
Deep Dive into WinRT
 
Choosing Your Windows Azure Platform Strategy
Choosing Your Windows Azure Platform StrategyChoosing Your Windows Azure Platform Strategy
Choosing Your Windows Azure Platform Strategy
 
Microservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native AppsMicroservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native Apps
 

Dernier

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Dernier (20)

MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 

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

  • 1. AUTOMATED MIGRATION TO JAVA Key success factors for large business applications Didier Durand & Pierre-Jean Distcheid eranea (Lausanne, CH) submission #138
  • 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
  • 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. 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. target: x86 (1) x86 as powerful as anybody x86 > 2/3 of total market ! x86 architecture used by Amazon, Google, Facebook, Twitter 6
  • 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. benefits (1): massive savings 100% = approx. 5 millions CHF/an 100% 1. software too costly → 3rd party competitive environment 90% software required for base + 3rd parties 80% 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 switch 20% Peripherals (disks, tapes, etc.) 10% 3. total savings Cpu x86 h/w + OSS s/w → 90% 8
  • 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. 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. 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. 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. choose & change target full mutation ISV derived appl. DB solution 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. automation > transcoding must be 100% automatic • 1% tweaking on 10M lines → 100'000 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. 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. (very) progressive migration Java becomes tomcat activity reference • 100% of data on DB2 • Cobol remains reference 100% migration to Java DRDA new DB instantaneous progressive on AS data way back migration to 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. 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. 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 don't recognize their code • java gurus don't like the generated code > at least, original programmers are happy: • they recognize their code • their adaptation is minimized • they don't fear for their job → they adhere to project 19
  • 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. 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. sample transcoded Cobol in Java (1)
  • 24. sample transcoded Cobol in Java (2)
  • 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. 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. 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
  • 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. Merci ! eranea http://www.eranea.com Didier Durand didier.durand@eranea.com Pierre-Jean Ditscheid pjditscheid@eranea.com