- After years of attempts by Microsoft to push aside the Java programming language, a software maker has developed a tool that could put the company's prized .Net initiative into the hands of Java developers.
Halcyon Software on Monday will release the first beta version of its Instant .Net (iNet), a plug-in for Microsoft's Visual Studio .Net developer software that converts .Net web services based on XML (Extensible Markup Language) into Java and allows these services to be hosted on any server software that supports Java.
Enterprise developers can use Wweb services to allow different types of applications from different vendors to communicate with one another over the internet. For instance, data in an Oracle database could be shared automatically with a CRM (customer resource management) application from PeopleSoft. Electronic wallets are also one example of the type of web service involved, allowing users to make online purchases without entering credit card or other information for each purchase.
While web services built using development tools from various vendors can be accessed over the internet on any device, no matter what operating system it runs, Microsoft has designed its .Net web services to be hosted only on its .Net server software. That software includes a runtime environment currently available only for Microsoft's software. But the company has submitted parts of the runtime environment to the European Computer Manufacturers Association (ECMA), an industry standards group.
One benefit of iNet is that companies hosting IT infrastructure on J2EE (Java2 Enterprise Edition) and Windows software can continue building applications in Microsoft code, but host them on a server with Java support, such as those from Microsoft competitors BEA Systems, Sun Microsystems and IBM, Don Hsi, Halcyon's chief executive officer said in an interview.
The Linux and Mac OS X operating systems also support Java, and would be capable of hosting .Net Web services using iNet. This would offer companies more choice in the software they run if they decide to build web services based on .Net.
"There's an argument that says Microsoft (server software) may not be a great place to deploy applications," he said. "Maybe a Linux box or a (Sun) Solaris box is better. This (iNet) lets developers deploy .Net Web services on those platforms."
A spokesman for Microsoft's .Net tools division declined to comment on Halcyon's technology.
Microsoft may be quiet about iNet because the software maker would not likely support the use of the Java programming language as a replacement of its technology, Hsi said. Java was developed by Sun and has emerged as a fierce competitor to Microsoft's own programming technologies. Microsoft left support for Java out of the Windows XP operating system, and both companies are battling to lure developers to use their respective programming languages.
"Microsoft has said it wants .Net to work in other operating systems," Hsi said. "But I think It's hard for Microsoft to digest the fact that we're using Java to accomplish this."
A .Net Web service can only be hosted on a server running Microsoft software because it includes a technology called CLI (Common Language Infrastructure), a central piece of the runtime environment that enables a Web service to work. Similar to how a JVM (Java Virtual Machine) resides on a client and runs Java applications, the CLI is the engine needed to run .Net applications.
The .Net Framework is the company's commercial implementation of the CLI, and includes additional features, such as class libraries and a client-side user interface. After about a year of beta testing, the .Net Framework will be widely released in its final version to developers on Feb. 13. Microsoft is expected to release its Windows .Net Server, designed around the .Net Framework, in the next five months, and will release a compact version of the runtime environment for handheld and small computing devices soon after.
Halcyon's iNet tool takes the place of the CLI. The company has developed a runtime environment with proprietary technology that enables a .Net Web service built with the tool to run inside a JVM.
"We're bypassing the whole CLI," Hsi said.
The way it works is that a developer builds a .Net Web service in Visual Studio .Net and compiles it into a language called MSIL (Microsoft Intermediate Language). The developer then uses Halcyon's IL-to-Java (Intermediate Language-to-Java) tool, which ultimately converts the MSIL code into Java byte code. Packaged in a file with Halcyon's proprietary runtime environment, the Web service is then able to run on top of a JVM.
Halcyon's project has merit, said Yefim Natis, vice president and research director with Gartner Inc. based in Stamford, Connecticut, who follows software development. However, it may not live up to its promise as Microsoft continues rolling out new features and updates for the .Net Framework, he said.
"I'm skeptical about the success of this," Natis said. "On the surface it's very attractive because it looks like you'd be able to use best-of-breed development environment, which is Visual Studio .Net, and then not be locked into using Microsoft software."
Because the .Net Framework includes more features than a JVM, such as vital class libraries and a user interface to display .Net Web services, Halcyon has had to develop additional runtime features to compensate for the differences. For instance, the company designed a Java version of Microsoft's Windows forms, which enables developers to create a client-side user interface, and Microsoft's ASP.Net, which allows applications to be displayed on a Web site.
"It's not going to be a true copy of the behavior and functionality of .Net," Natis said, because every time Microsoft makes a change or releases a service pack, Halcyon will have to race to implement the new features. "It will always be a second cousin. It will always be behind in features and lack in features."
Hsi contends that Halcyon, which is based in San Jose, California, will be able to recreate the .Net Framework for Java, despite any changes Microsoft might make to the technology. He has 90 developers dedicated to the task of keeping the technology fresh and the company has been working on the project since October 2000. Halcyon has also already commercially deployed a product called Instant ASP (iASP), which is a Java version of Microsoft's ASP (Active Server Pages) technology. With customers such as Hewlett Packard licensing iASP, Hsi said his company has proven it knows how to go about converting Microsoft code into Java.
There are other efforts under way to bring .Net web services to development platforms other than Windows using the ECMA standards. Ximian is heading up a project called Mono, which is an effort to port the CLI to Linux and Unix operating systems. That project will enable developers to build .Net Web services using Linux programming tools.
With technical help from Corel, Microsoft has also created a version of the CLI for the FreeBSD version of Unix. The purpose of that project is to prove that parts of the .Net Framework can be cloned using open standards, Microsoft said. The project is similar to Mono but is made available under Microsoft's shared source license, which means the code can only be used for research purposes and could not be used in commercial applications by enterprise customers.
The beta versions of iNet and Halcyon's runtime environment for Java will be available as free downloads on Halcyon's website. The second beta version of the software is expected to be available in March with a release candidate due out soon after. The first commercially available version of iNet is expected to be ready in July 2002, Hsi said.