migration of a large oracle forms application to...
TRANSCRIPT
![Page 1: Migration of a large Oracle Forms application to Scoutwiki.eclipse.org/images/7/7e/RhenusFormsMigration.pdf · Migration of a large Oracle Forms application to Scout Karsten Thoms,](https://reader031.vdocuments.mx/reader031/viewer/2022021515/5b19f1397f8b9a46258ce780/html5/thumbnails/1.jpg)
!!!!!!!!!!!!!!!!!!!!!!!!!!
© itemis AG! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
Eclipse Scout User Day 2014, Ludwigsburg, 27.10.2014
Migration of a large Oracle Forms application to Scout Karsten Thoms, itemis AG
![Page 2: Migration of a large Oracle Forms application to Scoutwiki.eclipse.org/images/7/7e/RhenusFormsMigration.pdf · Migration of a large Oracle Forms application to Scout Karsten Thoms,](https://reader031.vdocuments.mx/reader031/viewer/2022021515/5b19f1397f8b9a46258ce780/html5/thumbnails/2.jpg)
https://www.flickr.com/photos/kalleboo/2470243807
System „Logitrack“- Developed from 2004 on- 50 man years effort- Developers had strong Oracle / PL/SQL Know How- ERP System for Logistics branch covering Air-, Ocean-, Road Logistics
System Metrics- 22 Modules- 1300 Tables / Views- 1150 Forms-
![Page 3: Migration of a large Oracle Forms application to Scoutwiki.eclipse.org/images/7/7e/RhenusFormsMigration.pdf · Migration of a large Oracle Forms application to Scout Karsten Thoms,](https://reader031.vdocuments.mx/reader031/viewer/2022021515/5b19f1397f8b9a46258ce780/html5/thumbnails/3.jpg)
https://www.flickr.com/photos/duncan/121790568
Rhenus fusioned with company that developed LogitrackIT Landscape ConsolidationOracle Forms drop from technology stack- Forms still supported, but not actively developed further- Designer is dead, last version with Oracle 10- Java Know-How is easier to get than PL/SQLBuild a common DEVELOPMENT ENVIRONMENT
![Page 4: Migration of a large Oracle Forms application to Scoutwiki.eclipse.org/images/7/7e/RhenusFormsMigration.pdf · Migration of a large Oracle Forms application to Scout Karsten Thoms,](https://reader031.vdocuments.mx/reader031/viewer/2022021515/5b19f1397f8b9a46258ce780/html5/thumbnails/4.jpg)
Migration Approaches
Manual Migration
Standard Tools
Model Based
Manuelle Migration Vorteil: • Potential zur Restrukturierung Nachteile: • Parallele Entwicklung von Alt- und Neusystem • Zeit-, Personal- und Kostenintensiv • Homogenität des Zielsystems schwer sicherzustellen • Konsistenz zum Altsystem schwer nachweisbar
Standard Werkzeug Vorteile: • Fertiges Werkzeug • Zeitersparnis • Ggf. Kostenersparnis Nachteile: • Werkzeug und Zielarchitektur nicht anpassbar • Weiterentwicklung sehr aufwendig/nicht möglich • Abhängigkeit vom Werkzeughersteller
![Page 5: Migration of a large Oracle Forms application to Scoutwiki.eclipse.org/images/7/7e/RhenusFormsMigration.pdf · Migration of a large Oracle Forms application to Scout Karsten Thoms,](https://reader031.vdocuments.mx/reader031/viewer/2022021515/5b19f1397f8b9a46258ce780/html5/thumbnails/5.jpg)
4 321
1) Legacy System analyzed2) Automated extraction of Metadata from Legacy System3) Build Reference Application4) Derive Code Generator
![Page 6: Migration of a large Oracle Forms application to Scoutwiki.eclipse.org/images/7/7e/RhenusFormsMigration.pdf · Migration of a large Oracle Forms application to Scout Karsten Thoms,](https://reader031.vdocuments.mx/reader031/viewer/2022021515/5b19f1397f8b9a46258ce780/html5/thumbnails/6.jpg)
How we opted for Scout
Initial prototype targeted plain RAP with Spring and custom application frameworkScout seamed to fit, but no concrete experience available => RiskPOC: Replace Client layer by ScoutGood match for desired target architectureTook a longer time until we got a final decision to go with Scout
![Page 7: Migration of a large Oracle Forms application to Scoutwiki.eclipse.org/images/7/7e/RhenusFormsMigration.pdf · Migration of a large Oracle Forms application to Scout Karsten Thoms,](https://reader031.vdocuments.mx/reader031/viewer/2022021515/5b19f1397f8b9a46258ce780/html5/thumbnails/7.jpg)
A typical mask in the Logitrack application~30% of the forms have such a simple structure
![Page 8: Migration of a large Oracle Forms application to Scoutwiki.eclipse.org/images/7/7e/RhenusFormsMigration.pdf · Migration of a large Oracle Forms application to Scout Karsten Thoms,](https://reader031.vdocuments.mx/reader031/viewer/2022021515/5b19f1397f8b9a46258ce780/html5/thumbnails/8.jpg)
One of the most complex mask~250 fields12 Tab PagesMaster-Detail with tables (react on master table row selection)
![Page 9: Migration of a large Oracle Forms application to Scoutwiki.eclipse.org/images/7/7e/RhenusFormsMigration.pdf · Migration of a large Oracle Forms application to Scout Karsten Thoms,](https://reader031.vdocuments.mx/reader031/viewer/2022021515/5b19f1397f8b9a46258ce780/html5/thumbnails/9.jpg)
Transformation Process
DB
As Input we have the Database and XML exported from Oracle FormsFrom this textual DSL models (based on Xtext) are generated (using Xtend)The DSL models are translated to application code via code generation
![Page 10: Migration of a large Oracle Forms application to Scoutwiki.eclipse.org/images/7/7e/RhenusFormsMigration.pdf · Migration of a large Oracle Forms application to Scout Karsten Thoms,](https://reader031.vdocuments.mx/reader031/viewer/2022021515/5b19f1397f8b9a46258ce780/html5/thumbnails/10.jpg)
Transformation Process
DB
An example of an Oracle Forms XML exportThese files are preprocessed in a first step to reduce the amount of data. This can reduce in best case to 10% of the original file length
![Page 11: Migration of a large Oracle Forms application to Scoutwiki.eclipse.org/images/7/7e/RhenusFormsMigration.pdf · Migration of a large Oracle Forms application to Scout Karsten Thoms,](https://reader031.vdocuments.mx/reader031/viewer/2022021515/5b19f1397f8b9a46258ce780/html5/thumbnails/11.jpg)
Transformation Process
DB
Examples of textual DSL modelsThese models are generated once during the migration phaseFurther development happens in these DSL formats
![Page 12: Migration of a large Oracle Forms application to Scoutwiki.eclipse.org/images/7/7e/RhenusFormsMigration.pdf · Migration of a large Oracle Forms application to Scout Karsten Thoms,](https://reader031.vdocuments.mx/reader031/viewer/2022021515/5b19f1397f8b9a46258ce780/html5/thumbnails/12.jpg)
Transformation Process
DB
Forms XML100 (10%)101 kLOC
Database1300 Tables/Views
Frontend DSL360 Files21 kLOC
Business DSL 1300 Files65 kLOC
JAVA6900 Files820 kLOC
PL/SQL 830 Files22 kLOC
Some metrics we have right nowCurrently we use ~10% of the forms as source for an integration buildFor the database it is planned to reduce the visible scope of the 1300 tables/views behind an API schema, which contains only the relevant part for the application
![Page 13: Migration of a large Oracle Forms application to Scoutwiki.eclipse.org/images/7/7e/RhenusFormsMigration.pdf · Migration of a large Oracle Forms application to Scout Karsten Thoms,](https://reader031.vdocuments.mx/reader031/viewer/2022021515/5b19f1397f8b9a46258ce780/html5/thumbnails/13.jpg)
Generated Artifacts
~40 different artifact types are generated from the DSL modelsThe initial application structure is scaffolded with a Maven archetype
![Page 14: Migration of a large Oracle Forms application to Scoutwiki.eclipse.org/images/7/7e/RhenusFormsMigration.pdf · Migration of a large Oracle Forms application to Scout Karsten Thoms,](https://reader031.vdocuments.mx/reader031/viewer/2022021515/5b19f1397f8b9a46258ce780/html5/thumbnails/14.jpg)
https://www.flickr.com/photos/booleansplit/12329159165/
No 100% GenerationGeneration Gap Pattern@Replace, @InjectToFramework DevelopmentPLSQL code is dumped to files for manual translationIt does not pay off to try to translate PLSQL code for a single project
![Page 15: Migration of a large Oracle Forms application to Scoutwiki.eclipse.org/images/7/7e/RhenusFormsMigration.pdf · Migration of a large Oracle Forms application to Scout Karsten Thoms,](https://reader031.vdocuments.mx/reader031/viewer/2022021515/5b19f1397f8b9a46258ce780/html5/thumbnails/15.jpg)
Demo Time
Demo:- Development Environment- Generating DSL models- Generating application code- Show running application
![Page 16: Migration of a large Oracle Forms application to Scoutwiki.eclipse.org/images/7/7e/RhenusFormsMigration.pdf · Migration of a large Oracle Forms application to Scout Karsten Thoms,](https://reader031.vdocuments.mx/reader031/viewer/2022021515/5b19f1397f8b9a46258ce780/html5/thumbnails/16.jpg)
Lessons Learned
Issues:- LayoutUsing the code generator it was easy to migrate from Scout 3.9 to 4.0Especially our Multi Column Content Assist broke. We had a custom solution, but with Scout 4 this is supported more direct by the frameworkThe simple forms can be generated to 100%Using code generation we are flexible to start the migration process before all issues are solved. Initially the developers concentrate on migrating the form structure and UI logic, which can be done already nowPLSQL developers were able to produce a working application without seeing any Java code in the first training week
![Page 17: Migration of a large Oracle Forms application to Scoutwiki.eclipse.org/images/7/7e/RhenusFormsMigration.pdf · Migration of a large Oracle Forms application to Scout Karsten Thoms,](https://reader031.vdocuments.mx/reader031/viewer/2022021515/5b19f1397f8b9a46258ce780/html5/thumbnails/17.jpg)
Outlook
Migration phase starts nowMajor manual development issues:- Search component- Integration of stored proceduresMajor parts we have to solve in the tooling/framework:- Lazy loading of tab page content- Limit table content- Modularization
![Page 18: Migration of a large Oracle Forms application to Scoutwiki.eclipse.org/images/7/7e/RhenusFormsMigration.pdf · Migration of a large Oracle Forms application to Scout Karsten Thoms,](https://reader031.vdocuments.mx/reader031/viewer/2022021515/5b19f1397f8b9a46258ce780/html5/thumbnails/18.jpg)
Questions ?
Thank you for your attention