Service-oriented architecture: programming model and product architecture
IBM Systems Journal
Using logical data models for understanding and transforming legacy business applications
IBM Systems Journal - Model-driven software development
The causes of bloat, the limits of health
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Hi-index | 0.00 |
There is a growing need to translate large-scale legacy mainframe applications from COBOL to Java. This is to transform the applications into modern Web-based services, without sacrificing the original programming investments. Most often, COBOL-to-Java translators are used first for the base program transformations, and then corrections and fine tuning are applied by hand to the resulting code. However, there are many serious performance problems that frequently appear in those Java programs translated from COBOL, and it is particularly difficult to identify problems hidden deeply in large-scale middleware applications. This paper describes the details of some performance pitfalls that easily slip into large-scale Java applications translated from COBOL using a translator, and that are primarily due to the impedance mismatch between the two languages. We classified those problems into four categories: eager object allocations, exceptions in normal control flows, reflections in common paths, and inappropriate use of the Java class library. Using large-scale production middleware, we present detailed evaluation results, showing how much overhead these problems can cause, both independently and collectively, in real-world scenarios. The work should be a step forward toward understanding the problems and building tools to generate Java programs that have comparable performance with corresponding COBOL programs.