Microsoft Targets J2EE Users with JLCA 2.0

Continuing its efforts to migrate organizations from the J2EE
platform into the .NET camp, Microsoft
Tuesday launched Java Language Conversion Assistant (JLCA) 2.0, the latest
version of a tool geared to smoothing the path for Java language developers
to work with Web services and Web- and Windows-based applications within
the .NET Framework.

JLCA is part of Microsoft’s Java User Migration Path (JUMP) to .NET
strategy. It is built on ArtinSoft migration technology, and automatically
converts existing Java language source code into Microsoft’s C# language.

The 2.0 version is another step forward, adding the ability to convert Java
Server Pages (JSP) and servlet applications to ASP.NET, which Microsoft
claimed will allow organizations to more easily modify and scale sites,
while increasing developer productivity, leveraging ASP.NET features and
tightening the reins on maintenance and licensing costs by transitioning to
a single vendor rather than weaving together a patchwork of third party
products.

“Our customers are seeing productivity and performance increases because
they are able to leverage existing investments in their Web applications
written in the Java language by migrating them to ASP.NET,” said John
Montgomery, director of the Developer and Platform Evangelism Division at
Microsoft.

The software giant cited the experience of CodeNotes, a joint venture of
Infusion Development and Random House Books. CodeNotes, an eBook series
designed for software developers which also offers a Web site as a
companion to the book series, ran its site on a variety of Java-based
products from different vendors. The company said the products it used each
had their own upgrade and patch schedules, and it wanted to move to a
single platform and single vendor in order to reduce fixed costs and ease
the process of enhancing the site.

To accomplish this, Infusion ported the site from JSP to ASP.NET through
the JLCA 2.0.

“The primary reason for switching to ASP.NET was to consolidate the
maintenance and the licensing fees,” said Rob McGovern, senior project
manager for Infusion. “The Java version uses several different third party
products, each with its own upgrade and patch schedule. By moving to a
single platform, our maintenance overhead decreases dramatically. Secondary
reasons include ease of modification, better low-cost scalability and the
ability to leverage ASP.NET features for future enhancements to the site.”

The original CodeNotes.com architecture was written in Java and designed
around Jakarta Struts, a Model-View-Controller framework that uses Java
servlets, JSP, and Enterprise Java Beans (EJB). The site was hosted on
Microsoft Windows 2000 Advanced Server using Allaire’s JRun application
server and the Apache Web server. The back-end database was Microsoft SQL
Server 2000. Forms used a third-party product called Jive, chat used the
JChatBox component, and search was powered through the open source Apache
Lucerne product.

CodeNotes said this made maintaining the system a “nightmare” because it
was based on unsynchronized but interdependent components.

“Our other option was to keep the existing system, which required that
someone in the company maintain contacts with all the different vendors,”
the company said. “We also found that the Java architecture was fairly
difficult to set up as a development environment for even minor
modifications. The amount of ‘tweaking’ required to properly install all
the different components, configure the classpath and environment
variables, and make the site run on a development machine made bringing new
developers up to speed a challenging process.”


Enter Microsoft and JLCA 2.0. CodeNotes said the new version of JLCA
automatically converted 80 percent of its Java code, allowing one developer
and one manager to complete a full transition to the .NET Framework. The
company noted that its SQL Server database and stored procedures were
reused without change.

“The vast majority of the migration was completed in approximately 8
man-weeks of work,” the company said. “Roughly another 8 weeks was spent
prototyping systems and finding replacement functions for code that could
not be converted. Finally, another 4 man weeks was spent testing and
deploying the new system.”

Michael Van Atter, the programmer who worked the transition, noted, “There
were three points that really stuck out about the JLCA for me, that made
the conversion project run so smoothly.

“First, the JLCA integrates quite easily with the Visual Studio .NET IDE.
For example, the upgrade comments generated by the JLCA are automatically
added to the Visual Studio .NET task list. That makes getting the site up
to functional equivalence quite straightforward. Second, the JLCA converts
a significantly large percentage of the code, so getting to functional
equivalence can be done relatively quickly. This speeds up the deployment
time for the .NET version of the project and allows you to incorporate the
.NET features when you want, instead of forcing you to convert everything
to .NET style at once. This makes the learning curve for Java-oriented
people much easier than doing a direct conversion. Third, the JLCA does a
lot more than simple method-mapping. For instance, it converts tag
libraries to Web controls, and the JLCA examines the WEB-INF directory to
convert the mapping for tag libraries and servlets.”

Still, the conversion process isn’t perfect. Dan Fernandez, a product
manager for Visual C# .NET at Microsoft, noted that 80 percent of the
target Java market runs JSP server applications, explaining its efforts to
work JSP conversion into the new version of JLCA. The initial version of
the offering, JLCA 1.0, focused on the conversion of Java Classes and Java
Applets. But JLCA still can’t handle Enterprise Java Beans ,
though Fernandez said support for EJB conversion is slated for the next
version of JLCA.

“Our long-term goal is full J2EE conversion support,” Fernandez said. But
he added that Microsoft is making strides. When faced with the first
version of JLCA, Fernandez said, “Our customers were saying this isn’t
really that valuable to me because I can’t support what most of my
applications are.”

CodeNotes said converting the Struts framework, which relies on EJB, was an
issue.

“Struts nested tags is an area where the JLCA won’t convert exactly the way
we expect it to,” McGovern said. “Fortunately for us, most of the time that
we have nested tags related to Struts, we’re using an iteration tag
combined with some sort of formatting tag. The good news is that these are
very easy to replace with ASP.NET controllers. We can rip out almost all of
the nested tags and replace them with a simple grid control.”


Even so, McGovern said the important thing when coming up against a trouble
area like this is getting the functionality, not the code.

“It’s not as important that our ASP.NET site have exactly the Struts
framework and the Struts class libraries and everything that you’re used
to,” he said. “What it needs to do is mimic the same functionality that
Struts gave us.”

Get the Free Newsletter!

Subscribe to our newsletter.

Subscribe to Daily Tech Insider for top news, trends & analysis

News Around the Web