> Can any body please tell me what is strength and weakness of both
Thick Client compared to Web client ?
There are many strengths and weaknesses of both designs. Here are few:
Web Interface - Strengths:
---------------------------
- Needs no installation on client machines. Most people have a browser
already. Updating is equally easy. Update the server app and it will be
updated for everybody.
- Since there is no installation on client machines there are very small
requirements to the client machines. They only need enough power to run a
browser.
- Only the UI data is tranfered across the network. No need for the firewall
to be open for database access or other systems. The web server will access
those systems.
- Ideal if the app UI contains vast amounts of text.
Web Interface - Weaknesses:
------------------------------
- The GUI components available in HTML are rather limited. You cannot get as
nice a GUI with HTML as you can with for instance Swing. Not everything is
possible in HTML.
- You may encounter problems with the browsers the clients are using.
Because an HTML / JavaScript UI works in Internet Explorer doesn't mean it
also works in Netscape / Mozilla / Opera etc. It may not even work with
older versions of Internet Explorer.
- Can be slower, and often requires a lot of mouse work from the user.
- You have to refresh the page everytime you want to check if data has
changed on the server. HTML cannot access the server in the background.
- You cannot add efficient keyboard shortcuts.
Thick Client - Strengths:
-------------------------
- You can code the UI exactly as you want it. If you need new GUI
components, you can develop them yourself. This is not possible with HTML.
- It is easier to develop UI's that update themselves depending on what
happens on the server. In a web app you have to refresh the page to see if
things have changed on the server. In a swing or other gui you can access
the server in the background whenever you need to.
Thick Client - Weaknesses:
----------------------------
- You need Java installed on all client machines, and the correct version
too. This is something Java WebStart can take care of though.
- Swing UI's can be a little "slow" in their reaction time.
There are probably more strengths and weaknesses of both models than these.
These are just the ones I could remember just now.
All in all:
-------------
If you are developing an app for users outside of your organization, a web
interface is probably the easiest to manage (install, update etc.). Unless
you desperately need features that HTML cannot give you. Usually you can
find some kind of acceptable compromise, or you can throw in an Java Applet
if you really need something more advanced.
If you are developing and app for users inside your own organisation the
installation of Java and the client app on the users machines may be easier
than for external users. But still quite some work. Consider how the
application is to be used. If it an app that the users are primarily just
observing, like a server surveillance app, then I'd be inclined to do a
thick client. If the users has to click buttons anyways to use the app, I'd
probably go for a web interface. But still, consider how the users will use
the app first. If it's something they use 8 hours a day, a web interface can
sometimes be annoying, because of the lack of keyboard shortcuts.
Kind Regards,
Jakob Jenkov
www.jenkov.dk