Java client side with Applet :
-
Advantages
- Ability to download code over the network
- Run it on a variety of desktops
- Offering a rich user interaction
- Secure
-
Disadvantages
- Browser incompatibility
- Slow download time
- Sandbox environment to much restricted (Security)
-
Balance : The applet offered an attractive solution but with major disadvantages. So, Java morphed from an applet-based language into the programming platform of choice on the server.
Java server side with Servlet / JSP :
Focus shifted heavily from the client to the server side, using server-based technologies, it was easier from a program maintenance viewpoint to control from the server the user interface for the client. The user interface centers around markup technologies like HTML, XML, XHTML, and so on.
-
Advantages
- Browser independent - can generate simple HTML document
- Support for multiple kinds of clients, especially thin clients (Web, PDA, Phone, ...)
-
Disadvantages
- HTML / XML Limitations (interactivity limited)
- Must use DHTML for rich interaction (browser dependant) or Applet, other plug-in.
DHTML is difficult to write and maintain and has notorious browser deployment problems.
-
Balance: This approach doesn't fit for rich interactive application. A browser-based email client serves as a good example. Although browser-based email clients are quite popular, traditional email clients are more prevalent, especially in the workplace, where there is a need to sift through lots of email, apply filters, and be able to work offline in certain scenarios.
Java comes back on the client (Java plug-in / JavaWebStart) :
Some of the ease-of-use and ease-of-programming features associated with Java Web Start include many advantages.
-
Advantages
-
Portability : Java Web Start is available on Windows, Solaris, and Linux, and is expected to be ported to other platforms.
-
Caching: Applications launched with Java Web Start are cached locally. Thus, an already-downloaded application is launched on par with a traditionally installed application.
-
Maintainability: If the remote application is updated, Java Web Start updates the locally cached version at the application's next invocation or immediately (depends on the configuration we want).
-
Easy launching: Java Web Start allows applications to be launched independently of a Web browser. The application can also be launched through desktop shortcuts, making launching the Web-deployed application similar to launching a native application. A web page can also launch application, it is the sane link that download and install the application the first time.
-
Ability to work offline: An application can be used in situations where launching through the browser is inconvenient or impossible. If all resources can be find locally, the application can work offline.
-
Disadvantages
- Install Java Web Start with JRE (but automatic)
- Time to download Client the first time and for new versions (but automatic)
-
Balance : The best of the 2 worlds : client/server - web application.