When it comes to mainframe modernization, applications and hardware present unique challenges for the enterprise. Applications must be revised periodically to reflect changes in the business, and to leverage the emergence of new software technologies. But mainframe applications are often customized to meet exacting business needs. Consequently, software revisions are time-consuming and expensive. Updates may not even be possible if code maintainers are unavailable. Mainframe hardware upgrades are necessary to support more users and advanced computing features, but new hardware is also costly, and the upgrade process must be planned and tested carefully -- unlike distributed processing environments with individual servers, mainframes cannot be so easily (or inexpensively) updated. Let's look at the key considerations in application and hardware modernization.
Mainframes run mission-critical business applications like databases or enterprise resource planning (ERP) systems. Unfortunately, a large amount of mainframe software is heavily customized (even written from scratch) for specific mainframe systems and businesses, and requires considerable time from software developers. In-house developers typically offer better turnaround time and support, but they're a fixed cost for the business. Outside developers may take longer to accomplish an update, and the update cost is often higher, but the business can budget the expense on a per-project basis.
But it's the upgrade process (or path) that is often more crucial to a business than the time and expense of the upgrade work. There are four approaches, depending on the level of hardware changes that are taking place simultaneously. A simple upgrade (dubbed "upgrade in place") will introduce new software features and functionality to the existing application, though the older version and its data will often be left on the mainframe until the new version is proven. When a new hardware platform is being introduced, a software upgrade involves a migration process which moves the current or upgraded application to the new platform.
If the original application is not maintainable (e.g., the original developers are not available), the "upgraded" application is usually a reverse-engineered version of the software written from scratch. Extensive code changes might also be more cost-effective to introduce as a new product rather than attempting to service an older code base. Outright replacement with a newly-written application is frequently seen as a low-risk upgrade path.
One of the most interesting developments in mainframe application modernization is Web services (or "application services") which connect an application to the Web. This allows legacy mainframe applications to the entire company, as well as customers and even consumers. Once Web-enabled, the application can be accessed by the company Web site or the native application. A Web-enabled application can utilize other Web services like security and personalization, bringing even more features to the application. Web service information can also help administrators a foundation to troubleshoot mainframe applications.
Mainframe hardware typically experiences a performance pinch as a greater number of users run applications that are increasingly complex. Eventually, the mainframe's hardware will require upgrades -- most commonly to improve processing power and memory. New processors help to tackle more calculation-intensive tasks, additional memory supports more sophisticated applications with less storage access, and cryptographic coprocessors handle encryption and decryption on the fly. For example, IBM's z9 s07 mainframe can support between one and seven processors -- each processor starts with 8 GB of memory, but scales to 64 GB per processor.
And there are other compelling reasons to contemplate an upgrade. Mainframe upgrades and replacements are sometimes selected to improve processing for specific operating systems. For example, IBM's z9 mainframe claims a 35% processing improvement for Java and Linux. A mainframe upgrade may also be essential to support new application releases such as DB2 version 8 for z/OS.
Virtualization plays an important role in mainframe hardware. By implementing virtualization software, it is possible to virtualize the processor, memory, storage I/O, and networking resources into aggregated pools -- applications can utilize resource pools without regard to specific hardware. This improves utilization of the mainframe, and reduces the need for upgrades. IBM claims that their z/VM software can support hundreds of Linux images simultaneously.
But there are some circumstances when the entire mainframe must be upgraded. This can happen when one mainframe reaches the end of its service life, is too expensive or impractical to maintain, or simply cannot meet ongoing business needs. As one example, IBM's z9 mainframe (released in April 2006) offers 26 MIPS in the base unit, and is upgradeable to 400 MIPS as processing demands dictate. New mainframes also support advanced features which can be essential for continued compliance. For example, IBM's z9 integrates an encryption feature based on the SHA-256 hashing algorithm. By encrypting all data at the hardware level, there is no performance penalty imposed by encryption software, and any tapes are natively secure.