The Nexaweb toolkit offers a simple framework for building client applications and for linking them to a distant server with
packets of data known as MCOs (Managed Client Objects). Nexaweb shuttles these objects back and forth between the client and
the server, compressing and encrypting them as necessary. Most of the transit details are hidden from the programmer, who
is freed to concentrate on processing events generated whenever the MCOs complete their trip.
To test the system, I tried building a simple sports scoreboard that would update itself, a throwback to the days of the push
client. The framework is simple to use, offering the standard widgets bundled with the AWT.
Nexaweb Studio, built on top of the Eclipse open source IDE, comes with several plug-ins for building these clients by dragging
and dropping the components. The plug-ins produce an XML-encoded file -- similar to XML User Interface Language -- that carries
the details about the interface, and the Nexaweb client handles the details of decoding and displaying it.
Encoding the business logic for the system requires creating the MCOs. These are written in Java but are invoked by links
coded in the XML describing the application. After they are created, the MCOs have access to the local client and the server.
I found that my simple sports scoreboard wasn’t good enough to push the Nexaweb framework. Several of the examples included
with the system do a better job showing off the advantages of building a rich client. One of the order processing examples,
for instance, has a snappy interface that clicks you through a large stack of orders, eliminating the wait for a distant server
to process the request and send back a pile of HTML.
The full Nexaweb installation comes with a complete version of Eclipse as well as a version of Tomcat. If you’re familiar
with Eclipse, the product is easy to use, although it may seem a bit like cribbing. If Eclipse is new to you, you’ll be amazed
what a little company can offer simply by building on top of an open source toolkit.
Nexaweb Studio’s wizards make it easy to get started. A few clicks create a project, and a few more finish off the configuration
of the Tomcat server. In minutes, the JSP and XML files you create are defining data fields and interfaces for a user in a
distant browser. Many of the configuration headaches of integrating these pieces are handled for you. The packaging is nice,
too.
I think the greatest competitor to Nexaweb will be JavaScript itself. Although I continue to be a believer in the capabilities
of Java applets and Java clients launched by Web Start, there’s no doubt that JavaScript-based tools such as Google’s Gmail
are impressive. The language that was once responsible for a few display hacks is now handling complex desktop applications
with real success.
This success, however, must be the result of long, hard hours of debugging. Thousands if not millions of differences among
JavaScript implementations provide little consistency to help the developer. Java, on the other hand, is a well-designed language
created by programming professionals with experience building large systems. Nexaweb’s toolkit leverages this and adds a great
deal of functionality for carrying these objects back and forth.
Still, the competition from the standard browser and increasingly standardized JavaScript highlight the limitations of choosing
something other than HTML/HTTP. As a result, Nexaweb’s tool will appeal to a different developer than will ICEsoft’s product.
Nexaweb is fixing some of the basic problems with the HTTP protocol, at the cost of forcing you to abandon standard HTML.
It would be silly, for instance, to create a PeteZilla browser using Nexaweb’s framework.
Conversely, ICEsoft’s solution stays safely in the harbor of the HTML standard, but that means it can’t fix all the problems
with HTTP. You could use it to create a push-based tool to display sports scores or offer more interactivity, but it wouldn’t
be easy.
These tools inhabit different development niches, yet both offer useful ways to leverage today’s Web standards and overcome
their limitations.