A Few of the services are discussed below.
BasicService
This is a mandatory service and does operations
similar to the AppletContext from the Applet class.
The getCodeBase method provides access to the codebase
of the application. The isOffline method which can be
used to determine if the application is running
offline or online. Finally the isWebBrowserSupported
method can help in finding the browsers supported by
the JNLP client. The class is javax.jnlp.BasicService
DownloadService
This is a mandatory service that needs to be provided.
It allows the application to control the resources
being downloaded and cached on the client. It can
check for already existing resources, load new
resources, force caching of resources and remove
resources from the client machine. Only resources
available for the application can be downloaded. They
need to be specified in the JNLP file. The class is
javax.jnlp.DownloadService.
FileOpenService
This service provides the flexibility to access the
files on the client machine even if they are in a
untrusted environment. The openFileDialog or
openMultiFileDialog can be used to access the file
required. The contents of the file are returned in a
FileContents object which provides access to the
contents of the file. This service cannot be used to
find the directory structure of the client machine.
The JNLP client needs to show the security dialog box
to warn the user of the operation. The class is
javax.jnlp.FileOpenService.
FileSaveService
This service provides a mechanism for storing files on
the client machine, even if they are in a untrusted
environment. The file save dialog box is displayed by
invoking the saveFileDialog or saveAsFileDialog
methods. This method returns a FileContents object
representing the file that was saved. The class is
javax.jnlp.FileSaveService.
ClipboardService
This service provides an interface to access the
contents of the Clipboard even when running in a
untrusted environment. It consists of two methods,
setContents and getContents, that help set or retrieve
the contents of the clipboard. The service has to warn
the user of the potential dangers of letting a
untrusted application access clipboard data.
The class is javax.jnlp.ClipboardService.
PrintService
This service provides access to printing from an
untrusted application. The application submits a
request to the JNLP client for a print job which is in
turn passed to the client machine for permission. If
accepted the print job is executed.
The
class is javax.jnlp.PrintService.
PersistanceService
This service provides a mechanism to store data on the
client side even in a untrusted environment. The
service is similar to the service provided by the
cookies in HTML. Unlike cookies there is no maximum
limit on the data that can be stored on the client.
The maximum limit is decided by the JNLP client
implementing this service.
The class is
javax.jnlp.PersistanceService.
ExtensionInstallerService
This is a mandatory service that provides methods to
provide an extension installer to manipulate the
progress bar shown during installation. It provides
methods like updateProgress and hideProgressBar to
update the progress bar during installation. It also
provides information on native libraries.
The class is javax.jnlp.ExtensionInstallerService.
Conclusion:
Java Web Start is Java's new trick to recapture
the client market. The initiative looks promising given the growing demand for
scalable and portable applications in the Intranet domain. Though it's a good
beginning, JNLP has a long way to go in proving itself as a viable technology.
With languages like Delphi, VB and VC++ already ruling the client server
market, Java Web Start has to do more than provide a web centric application
model. Added to this, java does not command a good position in the User
Interface(UI) arena when compared to languages like VC and VB. Swing, AWT and
imaging have to be drastically revamped for java to enter the UI sector.
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.