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

Didier Durand
Didier DurandSVP Product Management at LzLabs GmbH
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
1 of 32

Recommended

Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例 by
Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例
Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例Yahoo!デベロッパーネットワーク
42.1K views49 slides
6 ouvrage-chap-1 by
6 ouvrage-chap-16 ouvrage-chap-1
6 ouvrage-chap-1hassanabdellaoui3
119 views4 slides
Ontologie concept applications by
Ontologie concept applicationsOntologie concept applications
Ontologie concept applicationsbenouini rachid
7.4K views26 slides
base de données fédérés by
base de données fédérésbase de données fédérés
base de données fédérésOussama Yoshiki
8.9K views40 slides
Chp4 - UML by
Chp4 - UMLChp4 - UML
Chp4 - UMLLilia Sfaxi
4.6K views20 slides
ARC-009_RDB 技術者のための NoSQL ガイド by
ARC-009_RDB 技術者のための NoSQL ガイドARC-009_RDB 技術者のための NoSQL ガイド
ARC-009_RDB 技術者のための NoSQL ガイドdecode2016
674 views86 slides

More Related Content

What's hot

Paradigmes de Programmation by
Paradigmes de ProgrammationParadigmes de Programmation
Paradigmes de Programmationmahfoudsam
3.2K views18 slides
Parlez vous IoT - Présentation du protocole MQTT by
Parlez vous IoT - Présentation du protocole MQTTParlez vous IoT - Présentation du protocole MQTT
Parlez vous IoT - Présentation du protocole MQTTArnaud Thorel
353 views39 slides
Tp5 - WINDEV by
Tp5 - WINDEVTp5 - WINDEV
Tp5 - WINDEVLilia Sfaxi
3K views6 slides
Les 4 étapes de la mise en place d'un logiciel ERP by
Les 4 étapes de la mise en place d'un logiciel ERPLes 4 étapes de la mise en place d'un logiciel ERP
Les 4 étapes de la mise en place d'un logiciel ERPDivalto
11.6K views1 slide
conception et création une base de donnée de réservation de vol by
conception et création une base de donnée de réservation de vol conception et création une base de donnée de réservation de vol
conception et création une base de donnée de réservation de vol sara bada
1.7K views23 slides
自動化ツール Ansible に触れてみよう(技術インターン) by
 自動化ツール Ansible に触れてみよう(技術インターン) 自動化ツール Ansible に触れてみよう(技術インターン)
自動化ツール Ansible に触れてみよう(技術インターン)akira6592
1.1K views33 slides

What's hot(20)

Paradigmes de Programmation by mahfoudsam
Paradigmes de ProgrammationParadigmes de Programmation
Paradigmes de Programmation
mahfoudsam3.2K views
Parlez vous IoT - Présentation du protocole MQTT by Arnaud Thorel
Parlez vous IoT - Présentation du protocole MQTTParlez vous IoT - Présentation du protocole MQTT
Parlez vous IoT - Présentation du protocole MQTT
Arnaud Thorel353 views
Les 4 étapes de la mise en place d'un logiciel ERP by Divalto
Les 4 étapes de la mise en place d'un logiciel ERPLes 4 étapes de la mise en place d'un logiciel ERP
Les 4 étapes de la mise en place d'un logiciel ERP
Divalto11.6K views
conception et création une base de donnée de réservation de vol by sara bada
conception et création une base de donnée de réservation de vol conception et création une base de donnée de réservation de vol
conception et création une base de donnée de réservation de vol
sara bada1.7K views
自動化ツール Ansible に触れてみよう(技術インターン) by akira6592
 自動化ツール Ansible に触れてみよう(技術インターン) 自動化ツール Ansible に触れてみよう(技術インターン)
自動化ツール Ansible に触れてみよう(技術インターン)
akira65921.1K views
MongoDB very basic (Japanese) / MongoDB基礎の基礎 by Naruhiko Ogasawara
MongoDB very basic (Japanese) / MongoDB基礎の基礎MongoDB very basic (Japanese) / MongoDB基礎の基礎
MongoDB very basic (Japanese) / MongoDB基礎の基礎
Naruhiko Ogasawara4.3K views
「Oracle Database + Java + Linux」 環境における性能問題の調査手法 ~ミッションクリティカルシステムの現場から~ Part.1 by Shogo Wakayama
「Oracle Database + Java + Linux」環境における性能問題の調査手法 ~ミッションクリティカルシステムの現場から~ Part.1「Oracle Database + Java + Linux」環境における性能問題の調査手法 ~ミッションクリティカルシステムの現場から~ Part.1
「Oracle Database + Java + Linux」 環境における性能問題の調査手法 ~ミッションクリティカルシステムの現場から~ Part.1
Shogo Wakayama4.9K views
Artirilmiş gerçekli̇k by gamzeic
Artirilmiş gerçekli̇kArtirilmiş gerçekli̇k
Artirilmiş gerçekli̇k
gamzeic1.4K views
Deno Deployと組み合わせるのに Upstashをおすすめしたい.pdf by 虎の穴 開発室
Deno Deployと組み合わせるのに Upstashをおすすめしたい.pdfDeno Deployと組み合わせるのに Upstashをおすすめしたい.pdf
Deno Deployと組み合わせるのに Upstashをおすすめしたい.pdf
Metasploit et Metasploitable2 : exploiter VSFTPD v2.3.4 by Khalid EDAIG
Metasploit et Metasploitable2 : exploiter VSFTPD v2.3.4 Metasploit et Metasploitable2 : exploiter VSFTPD v2.3.4
Metasploit et Metasploitable2 : exploiter VSFTPD v2.3.4
Khalid EDAIG1.6K views
Généralités sur les périphériques du STM32 by Hajer Dahech
Généralités sur les périphériques du STM32Généralités sur les périphériques du STM32
Généralités sur les périphériques du STM32
Hajer Dahech4K views
Comment l’architecture événementielle révolutionne la communication dans le S... by Vincent Lepot
Comment l’architecture événementielle révolutionne la communication dans le S...Comment l’architecture événementielle révolutionne la communication dans le S...
Comment l’architecture événementielle révolutionne la communication dans le S...
Vincent Lepot4.1K views
Interfaces Tangíveis:Representação Física e Controle Digital nas Artes Intera... by Patricia Barbosa
Interfaces Tangíveis:Representação Física e Controle Digital nas Artes Intera...Interfaces Tangíveis:Representação Física e Controle Digital nas Artes Intera...
Interfaces Tangíveis:Representação Física e Controle Digital nas Artes Intera...
Patricia Barbosa2.3K views

Viewers also liked

Eranea : global presentation of solution by
Eranea : global presentation of solutionEranea : global presentation of solution
Eranea : global presentation of solutionDidier Durand
4.4K views6 slides
Transforming mission-critical applications on mainframes for innovation by
Transforming mission-critical applications on mainframes for innovationTransforming mission-critical applications on mainframes for innovation
Transforming mission-critical applications on mainframes for innovationEranea
711 views27 slides
Eranea brochure : introduction to solution for mainframe migration / transfor... by
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
3.2K views6 slides
2014 01-23-eranea-apalia-private-cloud by
2014 01-23-eranea-apalia-private-cloud2014 01-23-eranea-apalia-private-cloud
2014 01-23-eranea-apalia-private-cloudDidier Durand
1.1K views24 slides
Migrating legacy applications (Cobol, PL/I) to Java on z/OS by
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/OSEranea
1.2K views21 slides
Transforming mission-critical applications on mainframes for innovation by
Transforming mission-critical applications on mainframes for innovationTransforming mission-critical applications on mainframes for innovation
Transforming mission-critical applications on mainframes for innovationEranea
5K views54 slides

Viewers also liked(7)

Eranea : global presentation of solution by Didier Durand
Eranea : global presentation of solutionEranea : global presentation of solution
Eranea : global presentation of solution
Didier Durand4.4K views
Transforming mission-critical applications on mainframes for innovation by Eranea
Transforming mission-critical applications on mainframes for innovationTransforming mission-critical applications on mainframes for innovation
Transforming mission-critical applications on mainframes for innovation
Eranea711 views
Eranea brochure : introduction to solution for mainframe migration / transfor... by 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...
Eranea3.2K views
2014 01-23-eranea-apalia-private-cloud by Didier Durand
2014 01-23-eranea-apalia-private-cloud2014 01-23-eranea-apalia-private-cloud
2014 01-23-eranea-apalia-private-cloud
Didier Durand1.1K views
Migrating legacy applications (Cobol, PL/I) to Java on z/OS by Eranea
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
Eranea1.2K views
Transforming mission-critical applications on mainframes for innovation by Eranea
Transforming mission-critical applications on mainframes for innovationTransforming mission-critical applications on mainframes for innovation
Transforming mission-critical applications on mainframes for innovation
Eranea5K views
Eranea's solution and technology for mainframe migration / transformation : d... by 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...
Eranea9.4K views

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

Embedded Virtualization applied in Mobile Devices by
Embedded Virtualization applied in Mobile DevicesEmbedded Virtualization applied in Mobile Devices
Embedded Virtualization applied in Mobile DevicesNational Cheng Kung University
6.9K views88 slides
Xen summit 2010 extending xen into embedded by
Xen summit 2010 extending xen into embeddedXen summit 2010 extending xen into embedded
Xen summit 2010 extending xen into embeddedThe Linux Foundation
691 views19 slides
Windows Azure For Architects by
Windows Azure For ArchitectsWindows Azure For Architects
Windows Azure For ArchitectsAnko Duizer
405 views69 slides
eXtremeDB FE by
eXtremeDB FEeXtremeDB FE
eXtremeDB FEhyeongchae lee
1.2K views24 slides
21st Century SOA by
21st Century SOA21st Century SOA
21st Century SOABob Rhubart
684 views33 slides
Linux on System z Update: Current & Future Linux on System z Technology by
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 TechnologyIBM India Smarter Computing
991 views45 slides

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

Windows Azure For Architects by Anko Duizer
Windows Azure For ArchitectsWindows Azure For Architects
Windows Azure For Architects
Anko Duizer405 views
21st Century SOA by Bob Rhubart
21st Century SOA21st Century SOA
21st Century SOA
Bob Rhubart684 views
Pandora FMS - Technical presentation by Sancho Lerena
Pandora FMS - Technical presentationPandora FMS - Technical presentation
Pandora FMS - Technical presentation
Sancho Lerena2.3K views
WS-* Specifications Update 2007 by Jorgen Thelin
WS-* Specifications Update 2007WS-* Specifications Update 2007
WS-* Specifications Update 2007
Jorgen Thelin807 views
Google Android Naver 1212 by Yoojoo Jang
Google Android Naver 1212Google Android Naver 1212
Google Android Naver 1212
Yoojoo Jang1.4K views
The sFlow Standard: Scalable, Unified Monitoring of Networks, Systems and App... by netvis
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...
netvis2K views
Operating the Hyperscale Cloud by Open Stack
Operating the Hyperscale CloudOperating the Hyperscale Cloud
Operating the Hyperscale Cloud
Open Stack937 views
下午1 intel yang, elton_mee_go-arch-update-final by csdnmobile
下午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
csdnmobile364 views
21st Century SOA by Bob Rhubart
21st Century SOA21st Century SOA
21st Century SOA
Bob Rhubart1.2K views
Complex Er[jl]ang Processing with StreamBase by darach
Complex Er[jl]ang Processing with StreamBaseComplex Er[jl]ang Processing with StreamBase
Complex Er[jl]ang Processing with StreamBase
darach1.9K views
dotnet_remoting by OPENLANE
dotnet_remotingdotnet_remoting
dotnet_remoting
OPENLANE492 views
Singularity Rethinking The Software Stack by alanocu
Singularity    Rethinking The  Software  StackSingularity    Rethinking The  Software  Stack
Singularity Rethinking The Software Stack
alanocu1.3K views
Choosing Your Windows Azure Platform Strategy by drmarcustillett
Choosing Your Windows Azure Platform StrategyChoosing Your Windows Azure Platform Strategy
Choosing Your Windows Azure Platform Strategy
drmarcustillett444 views
Microservices Architecture - Cloud Native Apps by Araf Karsh Hamid
Microservices Architecture - Cloud Native AppsMicroservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native Apps
Araf Karsh Hamid1.4K views

Recently uploaded

Webinar : Desperately Seeking Transformation - Part 2: Insights from leading... by
Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...
Webinar : Desperately Seeking Transformation - Part 2: Insights from leading...The Digital Insurer
91 views52 slides
Redefining the book supply chain: A glimpse into the future - Tech Forum 2023 by
Redefining the book supply chain: A glimpse into the future - Tech Forum 2023Redefining the book supply chain: A glimpse into the future - Tech Forum 2023
Redefining the book supply chain: A glimpse into the future - Tech Forum 2023BookNet Canada
44 views19 slides
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue by
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlueElevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlueShapeBlue
224 views7 slides
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue by
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlueCloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlueShapeBlue
139 views15 slides
Why and How CloudStack at weSystems - Stephan Bienek - weSystems by
Why and How CloudStack at weSystems - Stephan Bienek - weSystemsWhy and How CloudStack at weSystems - Stephan Bienek - weSystems
Why and How CloudStack at weSystems - Stephan Bienek - weSystemsShapeBlue
247 views13 slides
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti... by
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...ShapeBlue
141 views29 slides

Recently uploaded(20)

Webinar : Desperately Seeking Transformation - Part 2: Insights from leading... by The Digital Insurer
Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...
Webinar : Desperately Seeking Transformation - Part 2: Insights from leading...
Redefining the book supply chain: A glimpse into the future - Tech Forum 2023 by BookNet Canada
Redefining the book supply chain: A glimpse into the future - Tech Forum 2023Redefining the book supply chain: A glimpse into the future - Tech Forum 2023
Redefining the book supply chain: A glimpse into the future - Tech Forum 2023
BookNet Canada44 views
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue by ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlueElevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
ShapeBlue224 views
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue by ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlueCloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
ShapeBlue139 views
Why and How CloudStack at weSystems - Stephan Bienek - weSystems by ShapeBlue
Why and How CloudStack at weSystems - Stephan Bienek - weSystemsWhy and How CloudStack at weSystems - Stephan Bienek - weSystems
Why and How CloudStack at weSystems - Stephan Bienek - weSystems
ShapeBlue247 views
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti... by ShapeBlue
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...
ShapeBlue141 views
KVM Security Groups Under the Hood - Wido den Hollander - Your.Online by ShapeBlue
KVM Security Groups Under the Hood - Wido den Hollander - Your.OnlineKVM Security Groups Under the Hood - Wido den Hollander - Your.Online
KVM Security Groups Under the Hood - Wido den Hollander - Your.Online
ShapeBlue225 views
Initiating and Advancing Your Strategic GIS Governance Strategy by Safe Software
Initiating and Advancing Your Strategic GIS Governance StrategyInitiating and Advancing Your Strategic GIS Governance Strategy
Initiating and Advancing Your Strategic GIS Governance Strategy
Safe Software184 views
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT by ShapeBlue
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBITUpdates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT
ShapeBlue208 views
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ... by ShapeBlue
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...
ShapeBlue129 views
Business Analyst Series 2023 - Week 4 Session 8 by DianaGray10
Business Analyst Series 2023 -  Week 4 Session 8Business Analyst Series 2023 -  Week 4 Session 8
Business Analyst Series 2023 - Week 4 Session 8
DianaGray10145 views
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And... by ShapeBlue
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...
ShapeBlue108 views
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha... by ShapeBlue
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
ShapeBlue183 views
NTGapps NTG LowCode Platform by Mustafa Kuğu
NTGapps NTG LowCode Platform NTGapps NTG LowCode Platform
NTGapps NTG LowCode Platform
Mustafa Kuğu437 views
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ... by ShapeBlue
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
ShapeBlue171 views
LLMs in Production: Tooling, Process, and Team Structure by Aggregage
LLMs in Production: Tooling, Process, and Team StructureLLMs in Production: Tooling, Process, and Team Structure
LLMs in Production: Tooling, Process, and Team Structure
Aggregage57 views
Future of AR - Facebook Presentation by Rob McCarty
Future of AR - Facebook PresentationFuture of AR - Facebook Presentation
Future of AR - Facebook Presentation
Rob McCarty65 views

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