SlideShare a Scribd company logo
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

More Related Content

What's hot

Introduction to BPM, Business Process Management, BPM
Introduction to BPM, Business Process Management, BPMIntroduction to BPM, Business Process Management, BPM
Introduction to BPM, Business Process Management, BPM
Sarbashrestha Panda
 
05 architectural styles
05 architectural styles05 architectural styles
05 architectural styles
Majong DevJfu
 
Software Measurement: Lecture 1. Measures and Metrics
Software Measurement: Lecture 1. Measures and MetricsSoftware Measurement: Lecture 1. Measures and Metrics
Software Measurement: Lecture 1. Measures and Metrics
Programeter
 
Complexity
ComplexityComplexity
Complexity
Rajesh Kumar
 
Domain specific Software Architecture
Domain specific Software Architecture Domain specific Software Architecture
Domain specific Software Architecture
DIPEN SAINI
 
Dana Clinic Management System (DCMS)
Dana Clinic Management System (DCMS)Dana Clinic Management System (DCMS)
Dana Clinic Management System (DCMS)
zaherdouri
 
2.software requirement specification
2.software requirement specification2.software requirement specification
2.software requirement specification
Deepak Sharma
 
Unit 4- Software Engineering System Model Notes
Unit 4- Software Engineering System Model Notes Unit 4- Software Engineering System Model Notes
Unit 4- Software Engineering System Model Notes
arvind pandey
 
CASE tools and their effects on software quality
CASE tools and their effects on software qualityCASE tools and their effects on software quality
CASE tools and their effects on software quality
Utkarsh Agarwal
 
Case tools
Case toolsCase tools
Case tools
Afraz Khan
 
Software architecture Unit 1 notes
Software architecture Unit 1 notesSoftware architecture Unit 1 notes
Software architecture Unit 1 notes
Sudarshan Dhondaley
 
Introduction to Business Process Analysis and Redesign
Introduction to Business Process Analysis and RedesignIntroduction to Business Process Analysis and Redesign
Introduction to Business Process Analysis and Redesign
Marlon Dumas
 
Component based software engineering
Component based software engineeringComponent based software engineering
Component based software engineering
Charotar University Of Science And Technology,Gujrat
 
Ch 8 configuration management
Ch 8 configuration managementCh 8 configuration management
Ch 8 configuration management
Kittitouch Suteeca
 
Cost of software quality ( software quality assurance )
Cost of software quality ( software quality assurance )Cost of software quality ( software quality assurance )
Cost of software quality ( software quality assurance )
Kiran Hanjar
 
مخططات حالات الاستخدام Use case diagram uml
مخططات حالات الاستخدام Use case diagram umlمخططات حالات الاستخدام Use case diagram uml
مخططات حالات الاستخدام Use case diagram uml
Sally Jarkas
 
Spice
SpiceSpice
Spice
Oana Feidi
 
Software engineering 13 software product metrics
Software engineering 13 software product metricsSoftware engineering 13 software product metrics
Software engineering 13 software product metrics
Vaibhav Khanna
 
Agile Methodology - Software Engineering
Agile Methodology - Software EngineeringAgile Methodology - Software Engineering
Agile Methodology - Software Engineering
Purvik Rana
 
Design Pattern
Design PatternDesign Pattern
Design Pattern
Himanshu
 

What's hot (20)

Introduction to BPM, Business Process Management, BPM
Introduction to BPM, Business Process Management, BPMIntroduction to BPM, Business Process Management, BPM
Introduction to BPM, Business Process Management, BPM
 
05 architectural styles
05 architectural styles05 architectural styles
05 architectural styles
 
Software Measurement: Lecture 1. Measures and Metrics
Software Measurement: Lecture 1. Measures and MetricsSoftware Measurement: Lecture 1. Measures and Metrics
Software Measurement: Lecture 1. Measures and Metrics
 
Complexity
ComplexityComplexity
Complexity
 
Domain specific Software Architecture
Domain specific Software Architecture Domain specific Software Architecture
Domain specific Software Architecture
 
Dana Clinic Management System (DCMS)
Dana Clinic Management System (DCMS)Dana Clinic Management System (DCMS)
Dana Clinic Management System (DCMS)
 
2.software requirement specification
2.software requirement specification2.software requirement specification
2.software requirement specification
 
Unit 4- Software Engineering System Model Notes
Unit 4- Software Engineering System Model Notes Unit 4- Software Engineering System Model Notes
Unit 4- Software Engineering System Model Notes
 
CASE tools and their effects on software quality
CASE tools and their effects on software qualityCASE tools and their effects on software quality
CASE tools and their effects on software quality
 
Case tools
Case toolsCase tools
Case tools
 
Software architecture Unit 1 notes
Software architecture Unit 1 notesSoftware architecture Unit 1 notes
Software architecture Unit 1 notes
 
Introduction to Business Process Analysis and Redesign
Introduction to Business Process Analysis and RedesignIntroduction to Business Process Analysis and Redesign
Introduction to Business Process Analysis and Redesign
 
Component based software engineering
Component based software engineeringComponent based software engineering
Component based software engineering
 
Ch 8 configuration management
Ch 8 configuration managementCh 8 configuration management
Ch 8 configuration management
 
Cost of software quality ( software quality assurance )
Cost of software quality ( software quality assurance )Cost of software quality ( software quality assurance )
Cost of software quality ( software quality assurance )
 
مخططات حالات الاستخدام Use case diagram uml
مخططات حالات الاستخدام Use case diagram umlمخططات حالات الاستخدام Use case diagram uml
مخططات حالات الاستخدام Use case diagram uml
 
Spice
SpiceSpice
Spice
 
Software engineering 13 software product metrics
Software engineering 13 software product metricsSoftware engineering 13 software product metrics
Software engineering 13 software product metrics
 
Agile Methodology - Software Engineering
Agile Methodology - Software EngineeringAgile Methodology - Software Engineering
Agile Methodology - Software Engineering
 
Design Pattern
Design PatternDesign Pattern
Design Pattern
 

Viewers also liked

Eranea : global presentation of solution
Eranea : global presentation of solutionEranea : global presentation of solution
Eranea : global presentation of solution
Didier Durand
 
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
 
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...
Eranea
 
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
Didier Durand
 
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
Eranea
 
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
 
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...
Eranea
 

Viewers also liked (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...
 

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

Embedded Virtualization applied in Mobile Devices
Embedded Virtualization applied in Mobile DevicesEmbedded Virtualization applied in Mobile Devices
Embedded Virtualization applied in Mobile Devices
National Cheng Kung University
 
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
 
Windows Azure For Architects
Windows Azure For ArchitectsWindows Azure For Architects
Windows Azure For Architects
Anko Duizer
 
eXtremeDB FE
eXtremeDB FEeXtremeDB FE
eXtremeDB FE
hyeongchae lee
 
21st Century SOA
21st Century SOA21st Century SOA
21st Century SOA
Bob Rhubart
 
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
IBM India Smarter Computing
 
Pandora FMS - Technical presentation
Pandora FMS - Technical presentationPandora FMS - Technical presentation
Pandora FMS - Technical presentation
Sancho Lerena
 
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
 
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...
netvis
 
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
 
21st Century SOA
21st Century SOA21st Century SOA
21st Century SOA
Bob Rhubart
 
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?
IBM India Smarter Computing
 
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
darach
 
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
 
Deep Dive into WinRT
Deep Dive into WinRTDeep Dive into WinRT
Deep Dive into WinRT
Sasha Goldshtein
 
Choosing Your Windows Azure Platform Strategy
Choosing Your Windows Azure Platform StrategyChoosing Your Windows Azure Platform Strategy
Choosing Your Windows Azure Platform Strategy
drmarcustillett
 
Microservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native AppsMicroservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native Apps
Araf Karsh Hamid
 

Similar to 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
 

Recently uploaded

"Scaling RAG Applications to serve millions of users", Kevin Goedecke
"Scaling RAG Applications to serve millions of users",  Kevin Goedecke"Scaling RAG Applications to serve millions of users",  Kevin Goedecke
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
Fwdays
 
Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...
Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...
Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...
manji sharman06
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
operationspcvita
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
Pablo Gómez Abajo
 
ScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking ReplicationScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking Replication
ScyllaDB
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
DianaGray10
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Neo4j
 
QA or the Highway - Component Testing: Bridging the gap between frontend appl...
QA or the Highway - Component Testing: Bridging the gap between frontend appl...QA or the Highway - Component Testing: Bridging the gap between frontend appl...
QA or the Highway - Component Testing: Bridging the gap between frontend appl...
zjhamm304
 
Day 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio FundamentalsDay 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio Fundamentals
UiPathCommunity
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
Ajin Abraham
 
Containers & AI - Beauty and the Beast!?!
Containers & AI - Beauty and the Beast!?!Containers & AI - Beauty and the Beast!?!
Containers & AI - Beauty and the Beast!?!
Tobias Schneck
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
Safe Software
 
AWS Certified Solutions Architect Associate (SAA-C03)
AWS Certified Solutions Architect Associate (SAA-C03)AWS Certified Solutions Architect Associate (SAA-C03)
AWS Certified Solutions Architect Associate (SAA-C03)
HarpalGohil4
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
DianaGray10
 
Session 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdfSession 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdf
UiPathCommunity
 
Demystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through StorytellingDemystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through Storytelling
Enterprise Knowledge
 
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptxPRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
christinelarrosa
 
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdfLee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
leebarnesutopia
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
Antonios Katsarakis
 

Recently uploaded (20)

"Scaling RAG Applications to serve millions of users", Kevin Goedecke
"Scaling RAG Applications to serve millions of users",  Kevin Goedecke"Scaling RAG Applications to serve millions of users",  Kevin Goedecke
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
 
Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...
Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...
Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
 
ScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking ReplicationScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking Replication
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
 
QA or the Highway - Component Testing: Bridging the gap between frontend appl...
QA or the Highway - Component Testing: Bridging the gap between frontend appl...QA or the Highway - Component Testing: Bridging the gap between frontend appl...
QA or the Highway - Component Testing: Bridging the gap between frontend appl...
 
Day 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio FundamentalsDay 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio Fundamentals
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
 
Containers & AI - Beauty and the Beast!?!
Containers & AI - Beauty and the Beast!?!Containers & AI - Beauty and the Beast!?!
Containers & AI - Beauty and the Beast!?!
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
 
AWS Certified Solutions Architect Associate (SAA-C03)
AWS Certified Solutions Architect Associate (SAA-C03)AWS Certified Solutions Architect Associate (SAA-C03)
AWS Certified Solutions Architect Associate (SAA-C03)
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
 
Session 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdfSession 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdf
 
Demystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through StorytellingDemystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through Storytelling
 
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptxPRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
 
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdfLee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
 

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