Reflection, a Java Thin Client Technology

As Java application developers come to market with business applications they must consider how to deploy their application in a networked environment. Using traditional solutions the developer would distribute the application by providing the GUI front-end in Java and using a distributed object protocol like EJB, CORBA, or SOAP to provide back-end support.

Regardless of the mechanism used to divide the application into components they are still faced with the requirements of installing and administering the Java runtime and associated libraries and drivers on each client machine. Often the new application cannot run effectively on older PC’s due to the memory and processing capabilities of older hardware.

The Reflection technology eliminates these concerns while providing full compatibility with your Java applications. Your existing applications will run using Reflection without any modifications.

Reflection Technology

The WaveCrest Reflection product projects your Java application from a UNIX or Windows Server onto a Windows PC Workstation. This technology allows the user to run your Java application on their workstation without installing the application or it’s associated runtimes, database and other drivers on the workstation.

The WaveCrest Reflection product consists of a set of server based Java classes and O/S libraries and a small downloadable client application. It is designed to be fully AWT and SWING compatible.

The developer does not need to make any code changes to the existing Java application to use this technology. The application development team can ignore the fact that the application will be deployed using the Reflection software.

The client software is compiled as a native executable rather than a Java library. This provides several benefits. It is faster, it is smaller, and it does not require any additional software to be installed (such as a Java runtime, or database drivers).

By using this product, your customers can use less powerful client PC's. This will greatly reduce the need to upgrade their existing PC's to use your product.

Reflection also provides a good solution for ASP deployment of your software. You can deploy your existing Java applications on your Internet server. All Java runtimes, database drivers, and application libraries are installed on the server. The Reflection client can be embedded in a web page or can be downloaded and installed as a separate executable.

If embedded in a web page the Reflection client provides full application functionality from within the browser.

If installed as a separate executable, the client becomes the bridge to the application. You can install your own menu icons, splash screen, etc for use with the client. The result is that the client looks like a standard Windows application with your icons and splash screens. When launched, the client initiates a session with the server and runs your application.

Why use Reflection?

To understand why the Reflection product is uniquely qualified to address today’s market challenges a little bit of background is necessary.

Java application developers today are challenged to create a robust application, which provides for both Internet and internal deployment. While Java is perhaps the most Internet friendly application development language which exists today, it is a challenge for most developers to design a distributed application which your clients can use both internally and across the Internet and that provides the same level of features which they have come to expect.

Medium Weight Client

Normally a Java application is designed as a medium weight client. It may have distributed processing capabilities (usually for database and business logic). Depending on the design, the application may require database drivers to be installed on the client. At a minimum, the application will always require the Java runtime to be installed.

A typical Java application requires a lot of support software on the client PC. This includes the Java Interpreter, possibly database support (ODBC/JDBC/other), and the client application libraries. Due to Java related issues (including Swing), Java applications can show poor performance unless the PC is fairly powerful.

Thin Client

For our purposes we will define a Thin Client as a product which requires less software to be installed on the client PC. Thin Clients have relative levels of ‘Thinness’. The minimum Thin Client would require a small, easily downloadable software module with no other support software. Most Thin Clients today are deployed within a Web Browser. The application is normally HTML based with Java applets used for the business logic. The application communicates with the server to accomplish all processing including database I/O and business logic. Some logic may be downloaded to the PC, for example, simple field validation.

Browser based Thin Clients have a difficult time providing the same feature set that users of a traditional application have come to expect. While a browser interface has become the standard for Internet information gathering, it does not provide the same type of user interface as a traditional GUI application. This can result in poor customer acceptance of the new product.


As you can see, neither the medium weight client nor the thin client provides an optimal solution for deploying a full-featured business application across the Internet.

The WaveCrest Reflection product addresses these issues. You can deploy the entire application on the server. The client module is smaller than a browser, is easily downloadable and requires minimal resources on the client PC.

Reflection excels at reducing workstation administration. The only software installed on the client is the Reflection client. This can be made to be self-installing and self-updating from the server. This eliminates almost all user workstation administration.

Reflection Requirements

Reflection is designed to be an add-in to your existing application. There are two parts to the system.


The server side of the product consists of server based Java classes and O/S libraries, which intercept the application GUI commands and event requests and forward them to the client. The server library is kept in a Java Archive file that must be added to the class path. Normally the server is launched by a request from the client. The launch process automatically adds the Jar file to the class path as part of the server application launch.

This discussion assumes that your application will run on the server that you plan to use. You must install the necessary support software on your server, including the Java Runtime, database drivers, and application libraries.


The client is designed to run on Microsoft Windows systems (Win95 and above). The client side of the product consists of a Windows executable. In an Internet environment the client is downloaded from the server. If you are installing on a local network you can choose to use the same server downloadable installation or to install the client manually.

© 2002 WaveCrest Software, Inc