ThinClient is a term used to characterise an application where processing logic is largely directed from a remote server. A WebApplication is characterised as a ThinClient application. Other mechanisms for construction of ThinClient application include: * use of CitrixMetaframe * Use of WindowsTerminalServices Thin client applications are perceived to be slow / unresponsive and spartan in functionality See also RichInternetApplication for an emerging hybrid solution. ----- '''What is a Thin Client?''' Perhaps "thin-ness" can be graded on a scale. Possible factors that contribute to thin-client-ness may include: * Lack of TuringComplete execution of script or app programming tie-ins * Limited persistence between "browser" launches, possibly including: ** Configuration data for the browser itself (e.g. default window arrangements, 'home' pages for browsing, display preferences, security preferences)... though the client would be relatively 'thinner' (at potential loss of flexibility across sites) if this data is also stored remotely. ** Permanent cookies, or some equivalent, offering remote systems some ability to track sessions across "browser" launches. This sort of persistent data is probably the rich, buttery 'trans fat' of persistence, since it stores meaningful data on the browser that cannot be recovered from another copy of the same browser, so fewer cookies is definitely thinner. Having a quota for cookies would count towards thinness. ** Cached data (downloaded sounds or textures, locally optimized 3D mesh transforms, etc.) intended to improve performance or offline service availability. In some ways supporting a large amount of cached data will 'thicken' a client, in the sense that it becomes closer to downloading a client prior to running, so one might count expected amount of cached material against the 'thin-ness' scale. However, since the information here can always be regenerated if deleted or if starting from a fresh browser, it isn't as 'thick' as cookies. * Small footprint (small EXE) * Simple UI config/draw interface or language * Config/draw commands largely declarative * Relies heavily on server processing * Meaningful work severely limited without the server * Ability to move the interface of active sessions from one machine to another (without shutting down any ongoing computations) * Ability to re-enter a session after a purely client-side crash or shutdown (e.g. because all relevant details are on server) * Ability to combine the above two effects: crash client machine, start up client on another machine, with active session undisturbed. ---- '''Reading material''' ''Could thin clients cure your security headaches?'' at http://insight.zdnet.co.uk/0,39020415,39185565,00.htm ---- See ThinClientHasFailed