HomeDigital EditionSys-Con RadioSearch Java Cd
Advanced Java AWT Book Reviews/Excerpts Client Server Corba Editorials Embedded Java Enterprise Java IDE's Industry Watch Integration Interviews Java Applet Java & Databases Java & Web Services Java Fundamentals Java Native Interface Java Servlets Java Beans J2ME Libraries .NET Object Orientation Observations/IMHO Product Reviews Scalability & Performance Security Server Side Source Code Straight Talking Swing Threads Using Java with others Wireless XML

For thousands of companies, Java lowers the cost of software deployment and creates unprecedented flexibility in managing applications. In spite of this, I sometimes run into developers who sneer at applets. "I don't care about mere applets in Java," they tell me. "I'm writing real applications." Real applications, they argue:

  • Don't run within a browser, cluttered as it is with interface elements like menus, back/forward buttons, etc.
  • Are not limited by the Java "sandbox"
  • Are installed once and then run many times after installation
  • Are launched from the desktop
Unfortunately, this desktop-centric paradigm has several limitations:
  • Applications must be installed by either the end-user (difficult to control and maintain consistency) or by the centralized IS department (very expensive).
  • Applications must be updated all at once, even if the change is very small.
  • Even if the application itself is written in an environment like Java, an installer must be written for every platform on which the application will be deployed.
In fact, Java gives developers the best of both worlds, allowing applications to have the functionality of desktop applications while maintaining the flexibility and managability allowed by Intranets.

To see how, I will address each of the objections outlined above one by one.

My application doesn't need the browser user interface. Your application need not look like an applet running within a browser. A simple JavaScript command allows complete control of Navigator's "chrome":

window.open("myapp.html", "MyApp", "width=640,height=480");

This line of JavaScript opens a "chromeless" Navigator window that looks and feels like an operating system-specific application. Navigator 4.0 can also capture the entire screen (the desktop) if need be. In addition, Java allows a developer to create a native operating system window which can be launched from a HTML web page.

I need to work outside of the "sandbox." The Java "sandbox" isolates the executing program from the underlying operating system. Although this isn't a problem for many applications, it limits applications that need to interact with a special server or access the desktop hard drive.

To address this, Netscape Navigator 4.0 employs acapabilities-based security model for Java. Using this model, developers package programs in JAR files and sign them with their digital certificate. Once a JAR file is signed, it can ask for specific capabilities, such as "allow me to read and write to the TEMP directory." The end-user or security administrator then decides whether the signer is trustworthy enough to allow the program these capabilities.

My application is quite large and my end-users can't download it every time they want to use it. Navigator 4.0 allows a signed Java object to permanently install itself on the desktop computer using SmartUpdate. SmartUpdate can include your application's code, other code (including binaries) as well as make minor updates.

I don't want to require that my end-users run Navigator to run my application. "Running Navigator" can be almost invisible to the end-user if you use the appropriate JavaScript code to control the look of the Navigator window in which you place your application. However, it is true that Navigator must be invoked in order for this to take place. To this, I have two comments.

First, many users - about 63 million at last count - have Navigator installed on their machines. Chances are that your target audience will already be comfortable in the Navigator environment and will be accustomed to using the corporate Intranet or the Internet to locate information and applications.

Second, eventually the point will be moot. The traditional "desktop" will disappear, to be replaced by a webtop. The webtop employs HTML, Java and JavaScript as the primary interface; through it, users select content and applications using hyperlinks instead of traditional desktop icons.

Java applications deployed through Netscape Navigator 4.0 offer the power and flexibility of traditional desktop applications in a multi-platform, net-centric environment. They are more than the best of both worlds - they are the future of computing.

About the Author
Steve Thomas is the platform product manager at Netscape Comunications Corporation. He can be reached at [email protected]. For more information, see developer.Netscape.com.


All Rights Reserved
Copyright ©  2004 SYS-CON Media, Inc.
  E-mail: [email protected]

Java and Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. SYS-CON Publications, Inc. is independent of Sun Microsystems, Inc.