Win a copy of The Little Book of Impediments (e-book only) this week in the Agile and Other Processes forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

What is thin-client & what is fat-client?

 
Kaydell Leavitt
Ranch Hand
Posts: 690
Eclipse IDE Firefox Browser Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
In the SCJA exam-objective written by Sun, they call HTML using JavaScript "thin-client" and they call HTML using Applets "fat-client".

Why? Both JavaScript and Applets are client-side scripting languages. So, both JavaScript and Java Applets are downloaded from the web-server to the web-client (the web-browser). So why do they call JavaScript "thin-client" and call Applets "fat-client"?

Also, I disagre with Sun calling Swing applications "fat-clients". It seems to me that a Swing application can either be a thin-client or a fat-client, depending upon how the application is implemented. If you choose to use Swing in combination with a JDBC driver and put the business logic in the app running on the desktop, that is "fat-client", but if you use Swing and use RMI, or Sockets, or JAX-RPC, or you use stored procedures and put the database code on a server, that is "thin-client", right? So a Swing app may be either thin-client or fat-client, right?

Kaydell
[ May 26, 2007: Message edited by: Kaydell Leavitt ]
 
Ulf Dittmer
Rancher
Posts: 42969
73
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
First off, I wouldn't call Java (which is what applets are written in) a scripting language - it's full-blown programming language. I don't want to get into an argument about what exactly differentiates both concepts, but I think we can agree that there is no scripting going on in applets.

The phrase "thin client" has been used to mean different things. E.g., on the hardware side it is/was used for things like Suns/Oracles extinct concept of a network station (I forgot the exact name) that was supposed to host just the JVM, and then download all applications from a server. Similar to that is something like Citrix remote Windows desktop, which is a thin client wrapper around a fat Windows instance sitting somewhere else.

On the programming side it's generally used to mean that not an executable program is involved (like Java classes), but a description of what to display (like HTML). JavaScript muddles the water a bit, because it introduces executable content, whereas pure HTML thin clients relied exclusively on the server for executing anything.

Looking at it from the resource point of view, whereever Java is involved -no matter how many layers of the architecture it implements on the client- it surely is a fat client just by virtue of it needing a JVM to run.
 
Kaydell Leavitt
Ranch Hand
Posts: 690
Eclipse IDE Firefox Browser Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
OK. I think that I understand now. Applets are "fat" because you have to invoke the JVM on the computer that is running the web-brower and that takes more resources on the client than invoking the JavaScript interpreter, so JavaScript is "thin".

And, likewise, Swing is "fat". Also because it requires you to run the JVM on the client side.

But, I still think that where the database code is, still contributes to "fatness" or "thinness" of a client.

Kaydell
 
Ulf Dittmer
Rancher
Posts: 42969
73
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
But, I still think that where the database code is, still contributes to "fatness" or "thinness" of a client.


If you mean "fat vs. thin" to be on the architectural level, yes. As I tried to convey, "fat vs. thin" can be discussed on several levels, software architecture being one of them, hardware being another, and GUIs being a third.
 
Kaydell Leavitt
Ranch Hand
Posts: 690
Eclipse IDE Firefox Browser Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks for the help Ulf.

Kaydell
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic