What do you mean by thin-client application?

Jaswant Agarwal picture Jaswant Agarwal · Oct 5, 2009 · Viewed 21.5k times · Source

What do you mean by thin-client application?

Answer

mjv picture mjv · Oct 5, 2009

A thin client application is one where the requirements on the user-side application host, in terms of processing power, footprint and configuration are relatively minimal.

Thin client applications are opposed to applications which require the end-user side to do some of the following:

  • install an application-specific program, typically a relatively big binary, maybe with dependant libraries and supporting files,
  • install a database of sorts
  • include its own logic to process some of the functions of the appliciton, end-to-end.

Such "non-thin client" applications do not exclude the possibility of having some of the data or features of the application served from a remote server, but several of the applications features are handled locally by the application.

Thin clients on the other hand imply the existence of a server which provides most of the application's behavior, leaving the "thin-client" side handle little more than input from the end-user and display on the screen.

A web application is in most cases a thin-client application, even though it is not always thought as such (because the 'thin client' term was traditionally used in the context of terminal services (see below)). The web browser does little more than these User Input / Display functions (even though doing some of this requires a bit of javascript heavy lifting). With the arrival of "Web 2.0" and its web browsers with fast and reliable javascript, html5 features such as canvas, etc.the distinction between web applications and thin-client may become blurred again. On the whole, because of their heavy server support these applications, and because of their ability to "just work" (no client-side installation required) web applications will be considered 'thin client', I think, even when the client receives big scripts so it can support several features locally...

There are many applications which are not web-browser based and which qualify as thin-client. For example a dedicated online ordering application that would let the end-user search former orders or the catalog itself, input new orders with some minimal validation etc. would qualify as thin-client.

A technology often associated with thin client is that of Microsoft's Terminal Services (or simlar technologies offered by other vendors such as Citrix), whereby the end-user side computer is merely a graphic console, taking input from the end user and passing it along to the server, and receiving exact bitmap images of the portions of the screen that need to be updated. This technology allows running unmodified traditional applications, on the server side, and have these used on any thin client that may need it. In this fashion, no installation is required on the client side, and also the hardware requirements for the client-side are much reduced, since all of the heavy calculations, access to huge storage and other expensive resources are done by the server.