Pitfalls in Large-Scale Java Applications Translated from COBOL

undefined
Performance Pitfalls in Large-Scale Java
Applications Translated from COBOL
Toshio Suganuma
Toshiaki Yasue
Tamiya Onodera
Toshio Nakatani
Presented By:
Nawras Alkassab
Natasha Delahunt
Marcos Moraes
Vaishnavi Sunku
Introduction
Legacy transformation:
Adaptation 
to modern Web-based service-oriented
architecture (SOA)
difficult to find skilled COBOL programmers 
Conversion from COBOL to java
Need to translate large-scale legacy mainframe applications
corrections and fine tuning are applied by hand
COBOL
Structure of COBOL Program
Drawbacks of this structure
No dynamic allocation of data
Single thread of execution
Overview of
Problem
Structural issues are categorized as
Impedance mismatch
Inappropriate program conversions
Technical Problems are categorized into four
eager object allocations
 exceptions in normal control
flows, reflections in common paths
 inappropriate use of the Java class library
Major
Contributions
Identify performance bottlenecks and pitfalls that
easily slip into large scale Java applications translated
from COBOL
Detailed experimental evaluations showing significant
performance overheads caused by those problems
Limitations of
Current
Solutions
Cobol
History
Cobol 60 - 1959
Limitations
Memory allocation
High cost to maintaining the mainframes
Lack of developers
Limitations of
Current
Solutions
Software Mining Translator. How it works?
Limitations of
Current
Solutions
Software Mining Translator. How it works?
Limitations of
Current
Solutions
Translation problems
Convert Variables
Typed x Untyped
Fix converted and complete the code
Documentation
Long-term
 Maintanence
Technical
Limitations
Closer look at COBOL
Technical
Limitations
Technical
Limitations
Technical
Limitations
Eager Object Allocations
String initialization and reinitialization
Technical
Limitations
Technical
Limitations
Authors’ solution:
Technical
Limitations
Eager Object Allocations
String initialization and reinitialization
BigDecimal and its initialization
Technical
Limitations
Technical
Limitations
Authors’ solution:
Technical
Limitations
Eager Object Allocations
String initialization and reinitialization
BigDecimal and its initialization
Class constructor and arrays
Technical
Limitations
Inappropriate Calls to Class Libraries
Technical
Limitations
Authors’ solution:
Experimental
Results
Authors looked into the performance problems of a
large Java middleware system that was translated from
an original COBOL version
Fixing eager object allocations is particularly effective for
large tansactions
Conclusion
As mentioned in the paper:
 using translators may generate a code with many bugs which
opens the door for security problems.
Good (secure) COBOL code may lead to bad JAVA code, if
translated using translators
Security vulnerabilities and database breaches may occur.
Conclusion
To overcome this, the translation process can either be
adjudicated by a long-term monitoring by developers
Or, the developers need to hardcode the translation by
themselves ( very expensive)
Proposed
Solution
Program analysis can estimate potential executions of a code
(both dynamic and static)
Therefore, such tools can help detecting bugs and security
vulnerabilities.
Implementing dynamic analysis tools on the JAVA code after
translation to dynamically identify bugs during the run-time.
On the other hand, running dynamic analysis tool on COBOL code
may give some insights and facilitate the translation procedure.
For example, analyzing a COBOL code before translation.
It’s worth mentioning that Dynamic analysis and translation is
much more complicated than static analysis.
Slide Note
Embed
Share

Uncovering the challenges in migrating legacy COBOL applications to Java, this presentation delves into the structural issues, performance bottlenecks, and translation problems encountered in the process. Highlighting the difficulties in maintaining and optimizing code, it emphasizes the need for skilled programmers and meticulous corrections to ensure smooth modernization.

  • Legacy Transformation
  • Java Applications
  • COBOL Migration
  • Performance Pitfalls
  • Software Modernization

Uploaded on Sep 27, 2024 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


  1. Performance Pitfalls in Large-Scale Java Applications Translated from COBOL Presented By: Toshio Suganuma Toshiaki Yasue Tamiya Onodera Toshio Nakatani NawrasAlkassab Natasha Delahunt Marcos Moraes VaishnaviSunku

  2. Legacy transformation: Adaptation to modern Web-based service-oriented architecture (SOA) difficult to find skilled COBOL programmers Introduction Conversion from COBOL to java Need to translate large-scale legacy mainframe applications corrections and fine tuning are applied by hand

  3. Structure of COBOL Program COBOL Drawbacks of this structure No dynamic allocation of data Single thread of execution

  4. Structural issues are categorized as Impedance mismatch Inappropriate program conversions Technical Problems are categorized into four eager object allocations exceptions in normal control flows, reflections in common paths inappropriate use of the Java class library Overview of Problem

  5. Identify performance bottlenecks and pitfalls that easily slip into large scale Java applications translated from COBOL Detailed experimental evaluations showing significant performance overheads caused by those problems Major Contributions

  6. Cobol History Cobol60 -1959 Limitations of Current Solutions Limitations Memory allocation High cost to maintaining the mainframes Lack of developers

  7. Software Mining Translator. How it works? Limitations of Current Solutions

  8. Software Mining Translator. How it works? Limitations of Current Solutions

  9. Translation problems Convert Variables Typed x Untyped Fix converted and complete the code Documentation Long-term Maintanence Limitations of Current Solutions

  10. Technical Limitations Closer look at COBOL

  11. Technical Limitations

  12. Technical Limitations

  13. Technical Limitations Eager Object Allocations String initialization and reinitialization

  14. Technical Limitations

  15. Authors solution: Technical Limitations

  16. Eager Object Allocations String initialization and reinitialization BigDecimal and its initialization Technical Limitations

  17. Technical Limitations

  18. Authors solution: Technical Limitations

  19. Eager Object Allocations String initialization and reinitialization BigDecimal and its initialization Class constructor and arrays Technical Limitations

  20. Technical Limitations Inappropriate Calls to Class Libraries

  21. Authors solution: Technical Limitations

  22. Authors looked into the performance problems of a large Java middleware system that was translated from an original COBOL version Fixing eager object allocations is particularly effective for large tansactions Experimental Results

  23. As mentioned in the paper: using translators may generate a code with many bugs which opens the door for security problems. Conclusion Good (secure) COBOL code may lead to bad JAVA code, if translated using translators Security vulnerabilities and database breaches may occur.

  24. To overcome this, the translation process can either be adjudicated by a long-term monitoring by developers Conclusion Or, the developers need to hardcode the translation by themselves ( very expensive)

  25. Program analysis can estimate potential executions of a code (both dynamic and static) Therefore, such tools can help detecting bugs and security vulnerabilities. Implementing dynamic analysis tools on the JAVA code after translation to dynamically identify bugs during the run-time. Proposed Solution On the other hand, running dynamic analysis tool on COBOL code may give some insights and facilitate the translation procedure. For example, analyzing a COBOL code before translation. It s worth mentioning that Dynamic analysis and translation is much more complicated than static analysis.

More Related Content

giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#