Java .NET Integration

Serena Software

Mainsoft ports nearly 1 million lines of code for Serena Software; saves 5 million in development & support costs

Industry: Enterprise IT governance and portfolio management software
Company: Serena Software
URL: http://www.serena.com

As enterprise IT organizations seek to bring greater visibility and efficiencies to software development, management, and acquisition processes, they are increasingly turning to software packages that enable them to govern the activities of software organizations. Enterprises who employ IT governance and portfolio management software such Mariner, Serena Software's industry leading IT governance solution, are able to realize substantial savings in identifying where investments can improve business operations as well as software development and management practices.

Mariner is a sophisticated Web-based application intended for enterprise use in providing management visibility into project and application portfolio practices. It enables enterprise IT management to select and plan promising software development and infrastructure projects based on their value to the business, and to manage the cost, schedule, and quality of those projects during execution. Based on the .NET platform, it incorporates a highly advanced AJAX-based user interface that improves response time and provides a native application look and feel. Mariner consists of nearly a million lines of C#, JavaScript, and HTML code.

Business opportunity

In 2003, Serena Software (then called Pacific Edge Software) made the strategic decision to re-architect Mariner using the Microsoft® .NET platform and the C# language. While this implementation met the immediate technical and performance goals of its customer base, the company has since entered into partnerships with other software vendors whose solutions are Java-based.

Decision process

According to John Scumniotales, Vice President of Products for Serena Software, the company's options for interfacing with their partners' applications were limited. "We looked at implementing our product as a set of Web services to interface in a loosely-coupled manner with our partners' applications, but that didn't meet some of our key technical requirements, such as the need for tight integration at the user interface level, as well as high performance of the application as a whole. Our only other alternative was to completely rewrite Mariner as a Java application."

Rewriting was technically feasible, but at a high cost. Scumniotales estimated that a full rewrite would take nearly ten man-years of development effort, in addition to hiring a new team of Java developers and integrating them into the existing development organization. More importantly, doing so delayed the market opportunity of an early introduction. There would likely be lost sales during the years it would take to re-implement Mariner on the Java platform. And maintaining both code bases going forward would be an ongoing burden. It would require duplicating every new feature development for both the Java and the .NET version and would double on-going development costs.

Solution

Scumniotales, who was familiar with Mainsoft's software and services from a previous position at Rational Software (now IBM), chose to port Mariner to a Java application using Mainsoft. This cross-platform solution enables development teams to work entirely within the Visual Studio IDE using Microsoft technologies, and recompile C# or Visual Basic code seamlessly into Java bytecode.

He also engaged Mainsoft's professional services to expedite the port. Mainsoft and Serena worked closely to define the success criteria of the project, primarily focused around performance and scalability. Given the complexity of the Mariner product, Serena wanted to complete the project in three months, keep the budget low, and maintain acceptable performance and scalability.

Following a five-step methodology, Mainsoft's cross-platform experts worked closely with Serena Software to complete the project in 2.5 months. "The Mainsoft engineers worked almost as an extension of my own development team," Scumniotales said. Among the challenges faced during the port were ensuring that performance remained consistent and working around and replacing platform-specific technologies. Mariner leverages platform specific technologies like Microsoft Message Queue for queuing, the Dundas charting control for .NET, and the file system for Mariner's document management system. Working with Serena's engineering team, the Mainsoft team replaced these components with non-Microsoft technologies on the Java platform.

The new Mariner software currently runs on Red Hat Linux running on the Java EE platform. It has been tuned to deliver approximately equivalent performance on Java EE and .NET, and it meets its customers' scalability requirements.

Perhaps the most significant advantage moving forward is that Serena Software still only has to maintain a single code base - the .NET code. Maintaining a single source code base to provide platform options for its customers and partners saves considerable expense and complexity of maintaining two functionally equivalent code bases. As Scumniotales noted, "Using Mainsoft, Serena is able to simultaneously develop and target Microsoft .NET, Linux, and Java EE server platforms. In the past, this would have required costly and time-consuming software porting projects."

Conclusion

This project could have been accomplished using traditional porting and software support techniques, but at a significant higher initial and ongoing cost, and with the loss of near- term market opportunities. Scumniotales states that using Mainsoft reduced a multi-year development effort to just a few months of effort.

Mainsoft's software and services enabled Serena Software to quickly meet its business need to run on Java and to support Java, Linux, and ultimately WebSphere moving forward, all from the .NET code base.