Remote Swing or server-side Swing - this is the most concise characterization of Canoo's UltraLightClient library (ULC). ULC offers server-side peer classes for Swing. For each Swing widget, there's a peer ULC class with essentially the same API.
The value added by ULC is the built-in split between client and server: ULC splits each widget into a client part and a faceless server part, and synchronizes these so-called half widgets at runtime.
The result is a client that's rich but thin, an idea that sounds puzzling today, since we associate rich clients with fat clients, and thin clients with HTML-based poor clients.
Minimal Footprint
An important characteristic of ULC is its minimal footprint. Despite the fact that it's a client/server technology, it imposes neither a framework nor an application server onto its user.
All infrastructural tasks are delegated to standard J2EE. The client relies on native Swing, communication is configurable as HTTP(S) or RMI over IIOP, and the server half widgets may run within a servlet or in an EJB container.
Conceptually, ULC is just a smart widget set. Its impact on an application is limited to the presentation layer. Programmers can employ their technology of choice for business objects, persistence, and other software layers. The only constraint ULC imposes is the thin client architecture.
Rich Thin Clients
ULC seeks to combine the benefits of HTML thin client applications and fat client productivity applications. Its starting point is the J2EE architecture with a server-side programming and execution model.
This makes ULC applications conceptually similar to HTML-based J2EE applications: all the business logic and the model of the presentation logic execute on the server. The client is a generic presentation engine, like a browser. The difference between a browser and the ULC engine is that the latter handles descriptions of rich graphical user interfaces instead of HTML.
While not new, the concept of rich thin clients has lost none of its appeal. It promises state-of-the-art usability combined with easy manageability and operation.
Let's see to what extent Canoo's ULC lives up to this promise.
Getting Started
Canoo's offering includes:
- The core ULC library, currently v. 5.1.3
- A visual editor for the WebSphere Studio Application Developer IDE, currently v. 1.0 (an Eclipse version is scheduled for Q2004)
- A load and performance testing tool, currently v. 2.2
The best way to start is to run the sample applications, some of which are available as online demos on the Web site. To execute them on your own machinery, either double-click their launch scripts or drop one of the WAR Files into your preferred application server and invoke their start page within your Web browser.






