javacro'14 - desktop2web migration is finished, 700.000+ lines of code is reborn – matija...

19
Desktop2web migracija je prošla, 700.000+ linija koda se ponovo rodilo Matija Tomašković | CEO POSLOVNE WEB APLIKACIJE 12.05.2014.

Category:

Technology


1 download

DESCRIPTION

Two years ago, on first JavaCro conference, we have introduced concept of painful migration of legacy business applications to Java web environment using automatic desktop2web converter. During last year we have converted huge legacy text-based application based on Panther to Java web environment of Evolution Framework. Was it really painful to migrate several hundred thousands lines of code to Java, hundreds of forms with tens of thousands form controls, hundreds of services and more than hundred reports? What problems have we encountered along this way? How old-new code works in web environment? If you plan to do such migration or you were just considering in theory once to do it, we are here to tell you our real story from practice.

TRANSCRIPT

Page 1: JavaCro'14 - Desktop2web migration is finished, 700.000+ lines of code is reborn – Matija Tomašković

Desktop2web migracija je prošla, 700.000+ linija kodase ponovo rodilo

Matija Tomašković | CEO

POSLOVNE WEB APLIKACIJE12.05.2014.

Page 2: JavaCro'14 - Desktop2web migration is finished, 700.000+ lines of code is reborn – Matija Tomašković

DESKTOP2WEB MIGRACIJA JE PROŠLA, 700.000+ LINIJA KODA SE PONOVO RODILO

Evolva

Godina osnivanja:

Broj djelatnika:

2003

~20

Automatska konverzija legacy

Razvoj poslovnih Java web aplikacija

Kvaliteta:

Specijalizacija:

POSLOVNE WEB APLIKACIJE | [email protected] | www.evolva.hr 2 | 12.05.2014.

Automatska konverzija legacy aplikacija i timova na Java/web razvoj

Tehnologije:

Page 3: JavaCro'14 - Desktop2web migration is finished, 700.000+ lines of code is reborn – Matija Tomašković

DESKTOP2WEB MIGRACIJA JE PROŠLA, 700.000+ LINIJA KODA SE PONOVO RODILO

Televizijske kuće› VTV - Varaždinska televizija (Varaždin)› Nova TV (Zagreb)› Otvorena televizija (Zagreb)

Marketing i upravljanje projektima› Nacionalni park Plitvička jezera (Plitvice)› Val produkcija (Zagreb)› DAN (Varaždin, Bjelovar, Koprivnica)› Modern Sounds (London, UK)› Samara Digital (London, UK)

Bankarstvo i financije› Privredna Banka Zagreb (Zagreb)› FIMA vrijednosnice (Varaždin)› APOS Rijeka (Rijeka)› ISP BIH (Sarajevo, BIH)

Telekomunikacije› Iskon Internet (Zagreb)› Metronet telekom (Zagreb)

Fakulteti i javna uprava

Evolva - reference

POSLOVNE WEB APLIKACIJE | [email protected] | www.evolva.hr 3 | 12.05.2014.

› Samara Digital (London, UK)› Tehnopark Varaždin (Varaždin)› Tin Marketing (Varaždin)

Cestovni promet i ostalo› Telegra (Sveta Nedjelja)› Geoline APS (Bagsvaerd, Danska)› NTH (Hrvatska / Švicarska)› Hereditas (Zagreb)› J&J mobile (Varaždin)

Fakulteti i javna uprava› Fakultet organizacije i informatike (Vžd)› Geotehnički fakultet (Varaždin)› Grad Varaždin (Varaždin)

Izdavaštvo› Quark Solutions (Muenchen, Njemačka)› Bertelsmann (Guetersloh, Njemačka)› Crossmedia (Duesseldorf, Njemačka)› Vincentz (Hannover, Njemačka)› Bulls Press (Stockholm, Švedska)› CyberWatcher (Oslo, Noverška)› Mladinska Knjiga Sarajevo (Sarajevo, BiH)

Page 4: JavaCro'14 - Desktop2web migration is finished, 700.000+ lines of code is reborn – Matija Tomašković

DESKTOP2WEB MIGRACIJA JE PROŠLA, 700.000+ LINIJA KODA SE PONOVO RODILO

Izazov

TUI i GUI Panther aplikacije

Konvertirana Java web aplikacija

POSLOVNE WEB APLIKACIJE | [email protected] | www.evolva.hr 4 | 12.05.2014.

- zadržati postojeće funkcionalnosti i ljude- modernizirati ih tehnološki, a zatim funkcionalno

Page 5: JavaCro'14 - Desktop2web migration is finished, 700.000+ lines of code is reborn – Matija Tomašković

DESKTOP2WEB MIGRACIJA JE PROŠLA, 700.000+ LINIJA KODA SE PONOVO RODILO

Što se konvertira

FORM EVENT CODE

POSLOVNE WEB APLIKACIJE | [email protected] | www.evolva.hr 5 | 12.05.2014.

Panther IDE

FORM LAYOUT

Page 6: JavaCro'14 - Desktop2web migration is finished, 700.000+ lines of code is reborn – Matija Tomašković

DESKTOP2WEB MIGRACIJA JE PROŠLA, 700.000+ LINIJA KODA SE PONOVO RODILO

Konverzija koda - usporedba

POSLOVNE WEB APLIKACIJE | [email protected] | www.evolva.hr 6 | 12.05.2014.

Stari kod ┘└ Konvertirani Java kod

Page 7: JavaCro'14 - Desktop2web migration is finished, 700.000+ lines of code is reborn – Matija Tomašković

DESKTOP2WEB MIGRACIJA JE PROŠLA, 700.000+ LINIJA KODA SE PONOVO RODILO

Form editor

POSLOVNE WEB APLIKACIJE | [email protected] | www.evolva.hr 7 | 12.05.2014.

└ Panther form editor Web-based form editor ┘

Page 8: JavaCro'14 - Desktop2web migration is finished, 700.000+ lines of code is reborn – Matija Tomašković

DESKTOP2WEB MIGRACIJA JE PROŠLA, 700.000+ LINIJA KODA SE PONOVO RODILO

Arhitektura Panther migracije

EXEDesktop

Desktop computer Web server Database

Utility codeUtility code

Engine API

Form rendering

Form layout

Form event code Konverter

POSLOVNE WEB APLIKACIJE | [email protected] | www.evolva.hr 8 | 12.05.2014.

Web browser WARWebHTTP

AJAX

HTML, CSS, JavaScript

Utility codeUtility code

Engine API

Form rendering

Form layout

Form event code

Page 9: JavaCro'14 - Desktop2web migration is finished, 700.000+ lines of code is reborn – Matija Tomašković

DESKTOP2WEB MIGRACIJA JE PROŠLA, 700.000+ LINIJA KODA SE PONOVO RODILO

Case: PBZ - faze

Proof of concept: native konverzija• Panther API u Javi / AJAX engine• izgradnja desktop2web konvertera• testiranje performansi, robusnost

Kreće web isporuka 2.0 - GUI• konverzija tekućeg posla

Proof of concept: GUI konverzija• izgradnja GUI crtalice + GUI engine

Kreće web isporuka 1.0• ekrani se crtaju i pišu u Pantheru• konvertiraju• isporučuje se Java web aplikacija

POSLOVNE WEB APLIKACIJE | [email protected] | www.evolva.hr 9 | 12.05.2014.

• konverzija tekućeg posla• učenje kroz converter• kreće isporuka GUI-only ekrana• izrada naprednih komponenti

• izgradnja GUI crtalice + GUI engine• izgradnja GUI konvertera• probna konverzija manjih aplikacija• testiranje performansi, skalabilnost

Velika konverzija• najveća aplikacija

Dovršetak migracije• preostale aplikacije

Page 10: JavaCro'14 - Desktop2web migration is finished, 700.000+ lines of code is reborn – Matija Tomašković

DESKTOP2WEB MIGRACIJA JE PROŠLA, 700.000+ LINIJA KODA SE PONOVO RODILO

Velika migracija

• cca 600 ekrana• cca 200.000 LOC (events)• + cca 420.000 LOC (view)

• cca 1.000 servisa• cca 100.000 LOC

• cca 200 izvještaja

Merlin

POSLOVNE WEB APLIKACIJE | [email protected] | www.evolva.hr 10 | 12.05.2014.

RESURSI ZA KONVERZIJU:• konverzija: 3-4č x 12mj• priprema i testiranje: 1č x 12mj

IZVOR: http://comediva.com/images/stories/silfs_merlin.gif

Page 11: JavaCro'14 - Desktop2web migration is finished, 700.000+ lines of code is reborn – Matija Tomašković

DESKTOP2WEB MIGRACIJA JE PROŠLA, 700.000+ LINIJA KODA SE PONOVO RODILO

Velika migracija – prije i poslije

POSLOVNE WEB APLIKACIJE | [email protected] | www.evolva.hr 11 | 12.05.2014.

Page 12: JavaCro'14 - Desktop2web migration is finished, 700.000+ lines of code is reborn – Matija Tomašković

DESKTOP2WEB MIGRACIJA JE PROŠLA, 700.000+ LINIJA KODA SE PONOVO RODILO

Velika migracija – prije i poslije

POSLOVNE WEB APLIKACIJE | [email protected] | www.evolva.hr 12 | 12.05.2014.

Page 13: JavaCro'14 - Desktop2web migration is finished, 700.000+ lines of code is reborn – Matija Tomašković

DESKTOP2WEB MIGRACIJA JE PROŠLA, 700.000+ LINIJA KODA SE PONOVO RODILO

Problematika procesa konverzije

Tehnički izazovi• straničenje gridova• izvještaj iz grida• yes/no pitanja usred metode• viška kod (stari copy-paste)

Tijekom konverzije• nedostatak know-howa o staroj

funkcionalnosti• konverzija "na slijepo"• monotonija

POSLOVNE WEB APLIKACIJE | [email protected] | www.evolva.hr 13 | 12.05.2014.

• viška kod (stari copy-paste)• veliki izvještaji / robusnost• "previše" prostora na ekranu• <ENTER>• nove kontrole, novi propertiji –

potreba za optimizacijom• veza na hardver• JDBC ograničenja (PL/SQL table)

• monotonija

Testiranje i isporuka• nedostatak spremne testne okoline• nedostupnost starih razvojnih resursa• nedostupnost korisnika• razlika u brzini odaziva zbog Java/web

arhitekture• vizualne razlike u izgledu ekrana i

stare navike

Page 14: JavaCro'14 - Desktop2web migration is finished, 700.000+ lines of code is reborn – Matija Tomašković

Nakon konverzije...

POSLOVNE WEB APLIKACIJE | [email protected] | www.evolva.hr 14 | 26.09.2012.

Page 15: JavaCro'14 - Desktop2web migration is finished, 700.000+ lines of code is reborn – Matija Tomašković

DESKTOP2WEB MIGRACIJA JE PROŠLA, 700.000+ LINIJA KODA SE PONOVO RODILO

Moćan GUI editor

POSLOVNE WEB APLIKACIJE | [email protected] | www.evolva.hr 15 | 12.05.2014.

• 100+ kontrola• osnovne kontrole• složene kontrole• pluginovi

Page 16: JavaCro'14 - Desktop2web migration is finished, 700.000+ lines of code is reborn – Matija Tomašković

DESKTOP2WEB MIGRACIJA JE PROŠLA, 700.000+ LINIJA KODA SE PONOVO RODILO

Jednostavna izrada kompleksnih ekrana

POSLOVNE WEB APLIKACIJE | [email protected] | www.evolva.hr 16 | 12.05.2014.

• 295 kontrola• 27 validacija

Page 17: JavaCro'14 - Desktop2web migration is finished, 700.000+ lines of code is reborn – Matija Tomašković

DESKTOP2WEB MIGRACIJA JE PROŠLA, 700.000+ LINIJA KODA SE PONOVO RODILO

Nadzorne konzole i izvještaji

POSLOVNE WEB APLIKACIJE | [email protected] | www.evolva.hr 17 | 12.05.2014.

Page 18: JavaCro'14 - Desktop2web migration is finished, 700.000+ lines of code is reborn – Matija Tomašković

DESKTOP2WEB MIGRACIJA JE PROŠLA, 700.000+ LINIJA KODA SE PONOVO RODILO

Nadzorne konzole i izvještaji

POSLOVNE WEB APLIKACIJE | [email protected] | www.evolva.hr 18 | 12.05.2014.

Page 19: JavaCro'14 - Desktop2web migration is finished, 700.000+ lines of code is reborn – Matija Tomašković

Hvala na pažnji

www.evolva.hr

[email protected]

POSLOVNE WEB APLIKACIJE