| Author |
I don't understand the thin client / fat client concept
|
Harry Henriques
Ranch Hand
Joined: Jun 17, 2009
Posts: 206
|
|
Hello bloggers,
I have completed and submitted my SCJD assignment with a stand-alone mode, a network client mode, and a network server mode. My submission has only one integrated J2SE application that supports all 3 modes. If I were deploying instances of my application on different computers as individual network clients, then the entire application would be deployed to each one of the different computers. My entire application would be deployed to a single JVM on a separate computer when it operates in network server mode.
Because of the fact that my entire application is deployed to the network clients and also to the network server, I'm having trouble understanding the concept of thin client / fat client. If I were supporting a private network and I had to perform an update on either client or server, then I would have to update every instance of the application on all computers. The impact would be similar no matter how small of an update was needed.
Any comments?
Best regards,
Harry Henriques
|
 |
Roel De Nijs
Bartender
Joined: Jul 19, 2004
Posts: 4350
|
|
Hi Harry,
Normally you would have 2 application jars for networked mode: the runme_client.jar containing common classes + gui-related classes and the runme_server.jar containing common classes + server-related classes. When you only make a change to your gui, you will only need to update your clients (through java web start for example). When you change your server from using a flat file to a rdbms (or a change of the business logic: implement 48-hours rule for example), then only an update of the server is required.
If you change something to the common classes (add a new method to the business service, change some parameters of existing method) you'll have to update both server and clients.
And just for convenience and simplicity you have to provide 1 runme.jar containing the executable code.
Kind regards,
Roel
|
SCJA, SCJP (1.4 | 5.0 | 6.0), SCJD
http://www.javaroe.be/
|
 |
Harry Henriques
Ranch Hand
Joined: Jun 17, 2009
Posts: 206
|
|
Roel De Nijs wrote: Normally you would have 2 application jars for networked mode: the runme_client.jar containing common classes + gui-related classes and the runme_server.jar containing common classes + server-related classes.
Hi Roel,
When you use the word "Normally", do you mean that this particular method is used by most people on their SCJD project? I don't know how to invoke a .jar file within a .jar file using the command line %>java -jar runme.jar server (for instance).
Thanks for your help.
Harry Henriques
|
 |
Roel De Nijs
Bartender
Joined: Jul 19, 2004
Posts: 4350
|
|
Hi Harry,
No, I mean in the real world
For example I'm working now on a client/server application (with a thin client). We have 3 projects: app-client, app-common and app-server. The app-common project is referenced both by app-client and app-server. When we deploy we create a runme-client.jar (containing all classes and other files from app-client and app-common) and a runme-server.jar (containing all classes and other files from app-server and app-common).
When we want to run our client: java -jar runme-client.jar
When we want to run our server: java -jar runme-server.jar
So these jars are both executable trhough the java command with the -jar option (and are not bundled together in a runme.jar). For the SCJD project you just need one file (the runme.jar which should run in 3 modes, depending on the command line argument), but that's not how you deploy a client/server application in the real world. It's just 1 executable jar for simplicity (like I said already and hopefully explained a bit better now).
Kind regards,
Roel
|
 |
Harry Henriques
Ranch Hand
Joined: Jun 17, 2009
Posts: 206
|
|
Thanks Roel,
Your explanation answers my question. I know that your native language isn't English. Your command of the English language amazes me.
Best regards,
Harry Henriques
|
 |
Roberto Perillo
Bartender
Joined: Dec 28, 2007
Posts: 2212
|
|
Howdy, Harry!
Terminology Clarification: just an additional reading!
|
Cheers, Bob "John Lennon" Perillo
SCJP, SCWCD, SCJD, SCBCD - Daileon: A Tool for Enabling Domain Annotations
|
 |
Roel De Nijs
Bartender
Joined: Jul 19, 2004
Posts: 4350
|
|
Harry Henriques wrote:Your command of the English language amazes me.
Thanks for these kind words. I'm always trying to express my opinions and thoughts as good as I can (at secondary school English was the worst of the 3 extra languages I got, but English is everywhere and certainly in IT, so just by using it a lot it now became the best of these 3 languages, because I hardly use the other ones).
Kind regards,
Roel
|
 |
Andy Jung
Ranch Hand
Joined: Feb 07, 2010
Posts: 150
|
|
Hi Roel,
is this something (normally having separate jars) you should include in your choices.txt?
Kind regards,
Andy
|
SCJP, SCJD
|
 |
Roel De Nijs
Bartender
Joined: Jul 19, 2004
Posts: 4350
|
|
|
I didn't mention it, because it is a must requirement to package your class files in a single jar (so it's not a decision you had to make)
|
 |
 |
|
|
subject: I don't understand the thin client / fat client concept
|
|
|