Java Clients - Fat, Thick, Rich or Thin?
843810Nov 23 2006 — edited Nov 27 2006This is a question that I've been constantly asking myself over the years. Sometimes when I hear somebody refer to particular java client apps as thick or fat clients, I wonder if they are using the terms correctly.
Some (perhaps many) will refer to all java clients as fat or thick clients. I personally feel that this is untrue. I feel that a java client "can" be written to run as a thin client. In this case, my definition of a thin java client is where most of the business logic and core functionality of the application resides on the server side and as little functionality as possible is written on the client side and is mostly meant to serve as the bare essentials to display and navigate information from the server as well as invoke management functionality residing on the server on that information. As well, I personally think this would be the preferred way to develop all java clients in that important security and structural integral functionality ultimately resides on the server side leaving no room for malicious mis-use of the application.
Some will refer to "thin" clients as "browser only" based applications in that they are "thin" because there is no additional VM or bytecode to download and/or instantiate/execute.
Macromedia (now Adobe) will refer to their "Flex" applications as "Rich" clients. To me this means "rich" in functionality above and beyond browser capabilities. What does this mean to others? If this is the case, then can java clients not be considered and referred to as "rich" clients as well?
Fat and/or Thick clients means to me that much of the functionality in addition to functionality that could alternatively reside on the server side has been written, packaged or bundled with the client. An example of this would be a client that directly connects to a database using JDBC drivers as apposed to connecting to a server app that would do this on the client's behalf. The latter version is certainly "thinner".
Can anybody (or bodies) please shed some clarification on these terms Thick, Fat, Rich and Thin, how to officially distinguish between them and how to correct somebody who is mis-using the term(s).
Are all "Rich" clients also considered Thick or Fat? What officially constitutes a client of each type?
Links to other external sites as qualifiers are also welcome.
(take this one for instance: http://en.wikipedia.org/wiki/Client_%28computing%29 )
I'd like to get to the bottom of this and be able to say it right every time.