February 26, 2011 by huionn
Web-based Application vs Client-Server Software
For many years, I have been developing web-based enterprise applications, thinking web client (browser) is superior to thick client. My belief is convinced by the emergence of rich internet application (RIA) using AJAX and HTML5 technologies which provide better user experience.
Obviously, thick client has some benefits:
- more responsive – most of the processing is done on client and therefore the processing tends to be faster than centralized server (which serves a lot of requests). In addition, thin client requires more network traffic which can lead to slow respond.
- easier development model – client application is easier to develop with modern IDEs. From my experience, to support rich internet application for more than one browser is a headache.
- allowing disconnected operation – user need not to be always online.
However, those benefits are overwhelmed by the benefits of thin web client:
- Easier deployment and maintenance (upgrade)
- Centralized security and access control
- Collaboration among users
But are those arguments still valid now? Now I think web-based thick client offers the best of two worlds. The thick client is also connecting to centralized web server through HTTP, REST, Web Services or other API/protocols. Eclipse Rich Client Platform and other Java client can be deployed seamlessly with Java Web Start (JNLP).
So… I am learning RCP now.
Btw, RIA using Adobe Flash/Flex, Microsoft Silverlight and JavaFX may be still the better alternative. However they dictate learning a new programming language.