What do you mean by thin-client application?
Means client side application which consumes low system resources. Resources can be - RAM, Hard disk, graphic processing power and similar other. And it relies on server(can be other computer) to fulfill part of resource requirement.
Examples of thin client application:
Browser: provides a common platform for thin client applications to run. As only browser needs needs to be installed on client side its the most popular way to create thin client application, only downside is not much privileges are provided for application to run.
Some online services like weather service: Not each computer can connect to satellite to know weather conditions (and probably not feasible), so installed application can connect to common server which in turn communicate with satellite and return the result to application.
A thin client typically means that the server does the majority of the work, while the client application does very little.
A thin client can refer to either a software program or to an actual computer that relies heavily on another computer to do most of its work. A thin client is part of a network, and the client software or computer acts as an interface, while the network server computer does all the real work. In the case of a computer, a thin client is unable to perform many functions on its own. A thin client computer may be a machine designed only for online use, sending and receiving email, and surfing the net. A thin client computer may also be part of a larger network, at a company or school for example.
Read more here
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.
A thin client is the one where it just acts as an interface to the user. The whole business processing is done at the server end where the server application is hosted.
The traditional thin client is the terminal/mainframe model. The terminal exists only to relay instructions to the mainframe and present a meaningful UI to the user. A good modern example is the web browser and the web server (with the browser being the thin client).
This is a bit of a crude explanation as there's more to it, but in simple terms I like to think of it like this:
If you're building software that is some variance of the following pattern:
UI -> domain model -> data
Then, in a thin client the UI layer is on the client machine (think of html pages, pre heavy javascript) and everything else is in a separate location (a server in many cases)
Whereas a thick client is where the data is on the [server] and the UI and domain model/logic is on the machine (think client side scripting/logic).