Core systems have been in place for the last 40 years. The last 10 years, however, the ICT environment has changed dramatically by developments such as Client Server, Internet and SOA. Central mainframe applications have been unlocked to client/server applications in the 90’s, via the internet around the millennium and now to SOA.
Mainframe applications have been designed to fulfill one task only, while today’s ICT demands more flexibility. How do Core System engineers cope with this challenge?
With the aid of tools and 4 decades of engineering craftsmanship developers can quickly identify the business rules embedded in core business processes, restructure code, remove dead code and create reusable components that can be enabled as services within an SOA. This combination goes by the name of Enterprise Modernization.

Fig. 1: Overview Enterprise Modernization
Enterprise Modernization: the process
Enterprise Modernization involves leveraging existing systems, improving the skills of IT staff and modernizing the architecture and infrastructure. It might be clear that transforming these changes all at once will be a very risky and finally a costly operation. Therefore, it´s recommended to schedule the process of Enterprise Modernization in different steps.
Determine the road to modernize
Every company has to deal with particular business-requirements and is facing different staffing constraints. Furthermore, not all IT departments have the same budgetary limitations. Therefore, before starting the Enterprise Modernization process, it is necessary to determine the ultimate destination of the modernization process and clearly define the steps to reach the point on the horizon.
This IT Modernization roadmap should acknowledge a holistic view of:
- Software delivery processes and infrastructure supporting asset discovery and reuse
- Architectural approaches that leverage web technology enhancements
- Organizational skills to rapidly develop cross-platform application.
To modernize core systems, it is necessary to standardize and harmonize the software assets themselves as well as the software development process.
Standardize and Harmonize
To successful accomplish the modernization initiative, it is necessary to standardize and harmonize the software assets themselves as well as the software development process. Therefore, each modernization approach starts with assessing and reviewing existing systems to establish a common repository of the key application assets.
Together with the knowledge received by these system reviews, this repository enables development teams quickly discover and understand application relationships and dependencies, as well as assess the impact of proposed changes. The focus of development teams will be on a higher level, because their view is lifted up from one single application to more applications, including the underlying relationships.
By using an integrated development environment for all platforms, development teams are able to break down the walls of their own development islands. All teams are working in according with the same standards and products and will anticipate and collaborate with other teams easily. Knowledge can also be shared across teams and will make the software development more flexible.
Extending the integrated development environment with appropriate tools will lift up your software lifecycle-, change- and release-management. Version control, deployment en defect tracking is done for all systems in the same way and affect the quality of your Software Lifecycle.
Re-factor assets
After the standardization and harmonization activities have been completed, you have established a solid foundation to proceed the modernization process. The next step of the modernization initiative is to re-factor parts of the applications. During this step developers will identify the embedded business rules. When the business rules are determined, it is possible to restructure the assets and create reusable components. Dead code can be identified and removed.
Reuse components
The final step in the Enterprise Modernization approach is to invest in new opportunities. Because applications are transformed into more or less reusable components, extension of the functionality of applications will be much easier and cheaper than before. Consequently more budget is available for investing in new technologies and innovations like:
- Composite application development (SOA)
- Extend your applications by a web-based user-interface
- Transform towards business language
The approach of Enterprise Modernization ensures the opportunities to achieve this higher level of software development. Applications are more flexible, reusable and easier to maintain and therefore increase business responsiveness to market demands and business requirements.
Enterprise Modernization: the software perspective
Now let’s look at enterprise modernization from a software or application perspective. Core systems are facing enterprise modernization issues such as maintenance costs, using existing assets, architectural complexity, teams working in silos, cross-platform support and skills. The goal of Enterprise Modernization is to provide the capabilities that an organization requires to cost-effectively and incrementally evolve enterprise systems toward modern architectures and technologies. Tooling can help you to adapt business processes quickly and flexibly by reusing existing applications and data. Developers can unite and use their skills in disparate programming languages and work within a single, integrated development environment. This environment helps to form the foundation for your enterprise modernization initiatives.

Fig. 2: Overview Asset Modernization
Asset modernization: extending the value of existing enterprise assets
Successful modernization initiatives require deep insight into targeted applications. Asset discovery and transformation tools can help your development teams generate detailed reports and graphics that enable rich understanding of existing applications. With this knowledge, developers can quickly identify the business rules embedded in core business processes, restructure code, remove dead code and create reusable components that can be enabled as services within an SOA.
In addition, asset modernization tools can help you:
- Manage and govern the design, development and consumption of software assets and services;
- Eliminate the need to research, catalog and assemble the information for each service request;
- Identify assets that could be affected by proposed changes;
- Reduce the cost of ongoing application maintenance;
- Shorten the learning curve for new developers;
- Improve the productivity of existing IT staff.
Asset modernization tools analyze the business software and identify components that can be reused.
Asset modernization tools can help analyze the business software and identify components that can be reused. Component identification within their applications provides an organization the ability to modernize incrementally to minimize risk and costs. According to Jeffery Poulin and Brent Carlson, the industry-average cost to develop new software is approximately €75 per line. “This means that every 1,000 lines of reused code yields a Development Cost Avoidance of €60,000!” This certainly makes the case for reusing existing code in any modernization effort.
“Every 1,000 lines of reused code yields a Development Cost Avoidance of €60,000!”
Support the lifecycle of assets
When you begin the process of creating reusable assets, it is also important to properly manage and govern your services. By establishing a comprehensive picture of your software assets, you can improve asset reuse. In turn this can help you to quickly deliver innovative IT solutions, control costs, reduce application backlogs and improve business flexibility and responsiveness. Asset management tooling can help improve productivity and software delivery through asset reuse. This enables you to create, modify, govern and locate any type of development asset, including SOA and systems development assets.
Analyze existing enterprise applications
Often, companies have hundreds of project teams simultaneously making changes to application code and data structures. An automated asset-analyzer application, such as IBM Rational Asset Analyzer, can help engineers to cut through the complexity of the applications and interdependencies across the core systems to increase productivity and improve product quality. Rational Asset Analyzer scans mainframe and distributed software assets, stores related application information in a repository, and makes the data available in graphical and textual format through a web browser.

Fig. 3: Rational Asset Analyzer
Transform existing software assets into reusable components
A key part of Enterprise Modernization is to identify reusable components and business rules that can be extracted and converted into a web service. Identifying these rules can help accelerate strategic and tactical modernization initiatives by allowing development teams to quickly transform existing assets and discover reusable business logic for creating services.
A key part of Enterprise Modernization is to identify reusable components and business rules that can be extracted and converted into a web service.
Architecture modernization: driving innovation with technology advancements
A modernization initiative must also address the complex dimensions of architecture. Fragmented business processes, workflows, data and tightly coupled application architectures reduce your flexibility and agility. To transform your core systems into flexible applications and services while avoiding costly and high-risk rip-and-replace approaches, you can work with what you already have. Architecture modernization can help to reduce time to market, improve business alignment for growth, cut costs and limit business risk. Design and construction tools are designed to:
- Speed the efficiency of core system development, web development and integrated mixed-workload development;
- Break skills silos by simplifying and accelerating cross-platform development;
- Increase productivity and reduce training costs by extending host applications to modern user interfaces;
- Accelerate the adoption of SOA by rendering existing IT assets as service components, which encourages reuse and efficiency;
- Create enterprise data standards, verify compliance and generate compliant models.
Easily extend your applications to the web with reduced cost and risk
Making existing mainframe applications available through the web can help extend their value while increasing efficiency and promoting asset reuse. Web applications provide a standard and easy-to-use graphical user interface (GUI) for your core system. These applications include portlets, rich client applications and applications targeted for browsers on mobile devices.
Skills modernization: using and modernizing existing and new skills
Traditional IT professionals have decades of experience and domain knowledge. The question is: how do you use this experience to improve your current enterprise applications and take advantage of the new architectures and technologies that are available on these platforms? An example of a tool that supports high development productivity is the platform-neutral, business-oriented Enterprise Generation Language (EGL). Because it’s platform independent, EGL enables developers to build cross-platform applications and automatically generate and deploy native Java and COBOL code that’s optimized for the target platform. EGL hides the details of the target execution platform and associated middleware, enabling developers to focus on the business problem rather than on the underlying implementation technologies. Even developers with little or no experience with Java and web technologies can use EGL to create enterprise-class services and applications quickly and easily.
EGL can help you:
- Use new technologies and innovation without retraining the existing staff;
- Assign new employees to any project, no matter what the target platform is;
- Speed the efficiency of core system development, web development and integrated composite application development.
Using EGL, a major advancement in business languages
Because larger enterprises can have numerous development platforms and skill sets, a platform-neutral development approach can help eliminate skills silos and create a unified pool of business-oriented developers who can be freely shifted across projects according to business demands.
EGL is a programming language specifically designed to help business-oriented developers leverage the benefits of mainframe and Java platforms without having to learn all the details. Enabling your developers to focus on the business problem, EGL features high-level specifications that let developers quickly write fully functional applications and services. IBM Rational Business Developer software enables developers to write business logic in EGL source code and then generate Java or COBOL code along with the run-time artifacts required to deploy the application to the desired execution platform.
import com.acme.ordersys.api.*;
handler Client type JSFHandler{view=CustomerOrders.jsp}
// Service references
orderSvsIOrderService{@bindService{“OrderService"};
utilsClientUtils{ @bindService};
// Fields bound to JSF components in the JSP
custid CustomerId{ inputRequired= yes, minInput=9 };
orders Order[];
// Function bound to some button on JSP
Function getOrders()
try
orders = orderSvs.getOrdersForCustomer(custid);
…
onException( ex ServiceInvocationException)
…
end
end
// Other event handlers
end
Listing 1: Example of EGL Client Code
EGL hides the details of the deployment platform and associated middleware programming interfaces, which frees your developers to focus on the business problem rather than on the underlying implementation technologies. EGL is designed to help developers who have little or no experience with COBOL, mainframe, Java or Web technologies create enterprise-class services and applications quickly and easily.
acme.ordersys.api.*;
Service OrderService implements IOrderService
Function getOrdersForCustomers(
Custid CustomerID) returns(Order[])
orders Order[];
get orders using custid;
return( orders );
end
End
Listing 2: Example of EGL Service Code
EGL is easy to learn, whether your background is procedural or object oriented programming. We encourage you to join the growing community of EGL users and discover how this revolutionary technology can help you deliver innovative business solutions in record time.
Process and infrastructure modernization: improving team collaboration and responsiveness
Organizations have traditionally managed mainframe development separately from other platform developments. However, this separation not only can hinder collaboration and productivity across the software life cycle, it can also lead to errors that result in application failure or downtime. Tools for process, quality, and change and release management help automate and enforce development processes and enhance collaboration and productivity across multiple operating platforms throughout the application life cycle. These tools help you:
- Enforce software governance policies and procedures across functionally diverse and geographically distributed teams;
- Ensure that business goals and requirements drive downstream design, development and testing;
- Lower costs by eliminating duplicate tools and processes;
- Realize improved end-to-end communication and traceability across the life cycle;
- Verify software builds and document the exact software versions that are deployed;
- Manage quality across the software-delivery life cycle;
- Strategically integrate application security throughout the software-development life cycle;
- Validate the scalability and reliability of complex applications before deployment.
Govern change and release processes
Solutions for change and release management can help boost productivity, improve visibility into projects and processes, unite distributed teams, and provide audit trails and traceability across the software-development life cycle for fast delivery of high-quality software. Tools can unify workflows for software configuration management and software change management. They can also help manage the software-development life cycle by using built-in replication and synchronization capabilities to provide integrated version control, workflow management and defect tracking.
Enterprise change management can help protect your software assets globally, and help ensure that changes are linked to approved requests and that those changes are driven by a valid business requirement.
Development investment modernization: enabling business flexibility
Modernizing how you invest your development expenses is the final key to enterprise modernization. Investment in modernization includes moving investments to key platforms, architectures, and applications that can return maximum ROI. Organizations that continue to rely on inefficient existing applications and non-relational databases are finding that their ongoing maintenance costs are skyrocketing. To avoid this scenario, you need to make the transition to open, modular and proven software-development platforms that span the entire software-delivery life cycle.
Make the transition to open, modular and proven software-development platforms that span the entire software-delivery life cycle
Conclusion
By modernizing core systems your applications will become more understandable, less complex and easy to extend. Business rules and complex interfaces between applications can be unlocked and transformed into solid and clear pieces of code. Spaghetti is transformed into smooth lasagna.