Sun has been touting Java as a network programming language ideally suited for Internet applications -- even though it's missing at least two key features needed to make that a reality.
Now Sun is about to add one of those features: new code that lets Java objects on different computers easily work with each other, without additional middleware such as an object request broker (ORB). Down the road, Sun's Javasoft group will add the second capability: letting Java objects interact across a firewall. Firewalls control public Internet access to corporate backbones but also prevent client/server applications from working across broad portions of the net.
The addition of the Java Remote Method Invocation (RMI) code will be essential in making Java a language for distributed applications. Today, developers can build stand-alone applications in Java and run them either on an application server or, more typically, on a Web server.
The problem is that for the downloaded applet to work with server- based Java objects, reams of low-level code have to be manually written. With RMI, Sun is handing to developers, in effect, a ready-to-use system that replaces all that code.
"If RMI had existed when we were writing our Java application, it would have saved us a lot of work," says Barry Burke, director of strategic planning at Applix Inc., a Westborough, Massachusetts-based vendor of real-time applications and tools. "It implements client/server Java applications over the net."
Applix created a Web browser-based Java front end to its server-based real-time spreadsheet.
The company's Applixware server runs all the spreadsheet calculations, which are displayed through the downloaded Java client. It is this kind of interaction, with application functions handled by different computers, that Java RMI is designed to facilitate.
A pre-beta developers' re-lease of the RMI tool kit is available at http://java.sun.com/. The final release is expected at year-end.
Java RMI is the second of two distributed object mechanisms Sun is creating for Java. The first, announced a few weeks ago and called Joe, is an ORB written in Java that works with Sun's Neo ORB on servers. Joe creates a connection based on the Common ORB Architecture standard between Java objects and Neo-based applications written in C or C++.
However, Java RMI works without an ORB, and without the attendant programming and infrastructure complexities, according to Eduardo Pelegri- Llopart, staff engineer with Sun's Javasoft group.