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

32
AUTOMATED MIGRATION TO JAVA Key success factors for large business applications Didier Durand & Pierre-Jean Distcheid eranea (Lausanne, CH) submission #138

Upload: didier-durand

Post on 18-Dec-2014

9.074 views

Category:

Technology


0 download

DESCRIPTION

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

TRANSCRIPT

Page 1: 2012 06-15-jazoon12-sub138-eranea-large-apps-migration

AUTOMATED MIGRATION TO JAVAKey success factors for large business applications

Didier Durand & Pierre-Jean Distcheideranea (Lausanne, CH)submission #138

Page 2: 2012 06-15-jazoon12-sub138-eranea-large-apps-migration

2

agenda

> background

> starting point

> target

> benefits

> technology

> choose & change target

> process automation

> iso-functionality

> progressive migration

> testing

> code structure

> samples & demonstration

key success factors

context

Page 3: 2012 06-15-jazoon12-sub138-eranea-large-apps-migration

CONTEXT

Page 4: 2012 06-15-jazoon12-sub138-eranea-large-apps-migration

4

> 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

background

Page 5: 2012 06-15-jazoon12-sub138-eranea-large-apps-migration

5

> 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

starting point

Page 6: 2012 06-15-jazoon12-sub138-eranea-large-apps-migration

6

target: x86 (1)

x86 > 2/3 of total market !

x86 as powerfulas anybody

x86 architecture used by Amazon, Google, Facebook, Twitter

Page 7: 2012 06-15-jazoon12-sub138-eranea-large-apps-migration

7

target: linux (2)

1. linux is growing fast

2. proprietary OS disappear

3. linux references: London Stock Exchange, NYSE, Euronext, etc.

4. for the “3S” : Speed, Stability, Security

worldwide server market(roll-outs, subscriptions, shipments)

lotsof

office automationservers

Page 8: 2012 06-15-jazoon12-sub138-eranea-large-apps-migration

8

benefits (1): massive savings

1. software too costly → competitive environment required for base + 3rd parties

2. switch to OSS :

approx -90 % on software costs (70%)

leverage for h/w switch

3. total savings

x86 h/w + OSS s/w → 90%10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

100% = approx. 5 millions CHF/an

Cpu

Peripherals(disks, tapes, etc.)

3rd party software

IBM software(z/OS, Cics, DB2, etc..)

Page 9: 2012 06-15-jazoon12-sub138-eranea-large-apps-migration

9

> 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

benefits (2): modernization

Page 10: 2012 06-15-jazoon12-sub138-eranea-large-apps-migration

10

> 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

benefits (3): modernization

Page 11: 2012 06-15-jazoon12-sub138-eranea-large-apps-migration

11

technology (1)

“Cobol” support

SQL support

CICS Emulation

Display support

Tracing / logging

InternalObject

implementation

JavaProgram

(incl SQL)

XMLScreen

DBMS

LexicalAnalysis

Syntax Analysis

Semantics Analysis

Cobolcopy

Cobolpgm

BMSdesc

Code Generation

NeaTranscoder

NeaRuntime

Online

SOA

Batch

Page 12: 2012 06-15-jazoon12-sub138-eranea-large-apps-migration

technology (2)

Internet

sourcesrepository

DB ERIT

Integrate

client

1. automated synchrowith

traceability & reporting

2. copy (partial)of legacy assets

3. replicationof

processes & systems

CIengine

sourcesrepository

Integrate

eranea

CIengine

legacy application+

database

DB ERIT

VPN / VPC

AS(JBoss)

Page 13: 2012 06-15-jazoon12-sub138-eranea-large-apps-migration

KEY SUCCESS FACTORS

Page 14: 2012 06-15-jazoon12-sub138-eranea-large-apps-migration

14

originalappl.

fullmutation

level 1

level 2

level 3

level 4

Cobol → Javaothers : identical

Cobol → JavaCICS → Java ASothers : identical

Java AS on Linux

DBon Linux

different stepsof

single project<>

different projects

derivedappl.

ISVsolution

choose & change target

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

15

> 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

automation

Page 16: 2012 06-15-jazoon12-sub138-eranea-large-apps-migration

16

> 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

iso-functionality

Page 17: 2012 06-15-jazoon12-sub138-eranea-large-apps-migration

(very) progressive migration

2-3months

DRDA

time

activity

Cobolon Cics

Javaon AS

100%

6-9months

• 100% of data on DB2• Cobol remains reference

Javabecomesreference

data

mig

ration

to

new

DB

mainframeswitched

off

CICS DB2

progressivemigration

no big bang = key success factor !

instantaneousway back

to old system

0%

tomcat

Page 18: 2012 06-15-jazoon12-sub138-eranea-large-apps-migration

testing: legacy <> new system

Tomcat

CICS DB2

XMLscreendata

3270

XMLscreendata

HTML

COBOL

XMLscreendata

transcoder orrun-time or Cobol

bug fixes

(1)

(2)

(3)

(4)when (1) & (3) different

Page 19: 2012 06-15-jazoon12-sub138-eranea-large-apps-migration

19

> 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

code structure

Page 20: 2012 06-15-jazoon12-sub138-eranea-large-apps-migration

TECHNOLOGY, SAMPLES

Page 21: 2012 06-15-jazoon12-sub138-eranea-large-apps-migration

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

Page 22: 2012 06-15-jazoon12-sub138-eranea-large-apps-migration

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

Page 23: 2012 06-15-jazoon12-sub138-eranea-large-apps-migration

sample transcoded Cobol in Java (1)

Page 24: 2012 06-15-jazoon12-sub138-eranea-large-apps-migration

sample transcoded Cobol in Java (2)

Page 25: 2012 06-15-jazoon12-sub138-eranea-large-apps-migration

transcoder plugin for Eclipse

Page 26: 2012 06-15-jazoon12-sub138-eranea-large-apps-migration

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

Page 27: 2012 06-15-jazoon12-sub138-eranea-large-apps-migration

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

Page 28: 2012 06-15-jazoon12-sub138-eranea-large-apps-migration

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

Page 29: 2012 06-15-jazoon12-sub138-eranea-large-apps-migration

neaTerminal : screenshot (1)

Page 30: 2012 06-15-jazoon12-sub138-eranea-large-apps-migration

neaTerminal : screenshot (2)

Page 31: 2012 06-15-jazoon12-sub138-eranea-large-apps-migration

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

Page 32: 2012 06-15-jazoon12-sub138-eranea-large-apps-migration

eranea http://www.eranea.com

Didier Durand [email protected]

Pierre-Jean Ditscheid

[email protected]

Merci !