Friday, November 2, 2007

Rich Client VS Web Client

In many instances, while architecting/designing Enterprise Java Applications, most of us come across a question. Should I use Rich Client more specifically Rich Thin Client or Web Client ?

Rich Thin Clients are the swing application client downloaded on the client computer using technologies like Java Webstart. Typically, data access piece of these clients is handled on the centralized server.

Here are the some of the pros and cons of each one, and when to use each one.


Manageability:

Web Clients are inherently easily manageable and very little manageability is required. Since the deployment is done on the centralized application server, so we have good control over the application. Profiling, Monitoring, Security and Centralized logging features can be easily applied and utilized in these applications.

With the advent of technologies like Java webstart, deploying the rich client applications have become easier than before. Features like Centralized logging, monitoring and profiling are not as easily achievable as in web clients.


Communication:

Web Clients need to communicate to server for every request. Typically, web clients do not hold any state of the client. Hence, all the business logic pieces need to reside on server and increasing communication. Web Clients traditionally provided only synchronous communication, with advent of technologies like AJAX, asynchronous capability can be added.

Rich Clients on other hand can handle good amount of business logic on their end reducing communication with the server piece. Rich Clients support synchronous and asynchronous communication inhouse.