Eclipse Expands Runtime Scope

SAN FRANCISCO -- Developers of the open source Eclipse platform have been expanding Eclipse's ability to run applications across different systems.

The idea is to allow developers who use Eclipse to "build and deploy the application logic and defer those decisions [of what platforms to run the application on] until deployment time," said Mike Milinkovich, executive director of the Eclipse Foundation. "That is where we're trying to take this technology."

Milinkovich spoke at the JavaOne conference, being held this week in San Francisco.

Eclipse is software that plays two roles: It is an integrated developer environment (IDE), which developers could use to build programs. The IDE supports multiple languages, such as C++, Fortran, Java, PHP, Python, Perl, Tcl.

In its second role, the program works as a rich client platform (RCP). This runtime environment serves as a middle layer between the programs themselves and different operating systems and hardware configurations. Developers can write a program once for Eclipse, and then use different versions of Eclipse for each computer/operating system combo that program will run upon. In this way, a single version of a program could run on both Microsoft Windows and Linux, using the OS-specific version of Eclipse for each platform.

While Eclipse's RCP functionality has been used for desktop computer applications for several years, developers have been looking at ways to expand the variety of scenarios in which it could operate. The component-based architecture of Eclipse enables this technique. "Eclipse is a container-based approach you can dynamically load and unload components," or bundles, as they are needed, Milinkovich explained.

For the presentation, Eclipse evangelist Wayne Beaton showed how the same basic program -- an expense reporting tool -- could run on a laptop, a Nokia phone and delivered to the client as a Web page.

The basic program itself can be written once, and, with minimal reconfiguration, can be run on different platforms. Bundles that support the different platforms are added in, as needed.

"The bundles that are shared do not need to be recompiled. Build them once and run them of different platforms," Beaton explained.

For the laptop, the program ran on the standard RCP configuration. For running as a browser page from a server, the sample program relied on Eclipse's Rich Ajax Platform (RAP), which took all the features and formatted them for the browser using AJAX. RAP was released last December.

And for the mobile phone, the program utilized the embedded RCP (eRCP), which reformats the user interface to work in the smaller form-factor, and to use the additional controls often found on cell phones, such as side-buttons. Like the other versions of this program, the mobile version allows users to add of edit expense line items, though the interface is broken up into multiple windows, each of which can be accessed only at one time.

In addition to showing off Eclipse's multi-platform prowess, the software's spokesmen also talked about the next release of the program, version 3.4 codenamed Ganymede. This version is due to be released June 27 (it is always released the last Thursday in June).This will be the fifth successive release in this time schedule, Milinkovich said. In this release, 24 new or updated bundles will be shipped.

One new item hooks Eclipse into Subversion, an open-source program for managing large software development projects. Another will be a collection of tools for enabling Service Oriented Architecture, such as Business Process Notation Language.

This release will also be the first to offer packages of components tailored for specific uses, such as for development in Java, C++, and software modeling.

About the Author

Joab Jackson is the chief technology editor of Government Computing News.