• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

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

 
Ranch Hand
Posts: 694
Mac OS X Eclipse IDE Firefox Browser
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • 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 ]
 
Rancher
Posts: 43081
77
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • 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: 694
Mac OS X Eclipse IDE Firefox Browser
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • 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: 43081
77
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • 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: 694
Mac OS X Eclipse IDE Firefox Browser
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thanks for the help Ulf.

Kaydell
 
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
reply
    Bookmark Topic Watch Topic
  • New Topic