Hello, This is something that I have been thinking about for awhile. Let's say I develop a java application that is not an applet, and not a servlet, but a standalone java application. If I am in a client-server environment, can that application be put on a server and accessed by all the client computers? Or does it have to be installed separately on each computer I want it to run on? Is this what is meant by an 'application server'? Or is a server that runs servlets or Coldfusion an application server? And a follow up: If I am in a client-server environment running win2k server, can a Microsoft application such as Word be put on that server and be accessed by all the client computers? Or does it have to be installed separately on all the client computers? Thank you for any responses.
Yes, you can put a Java Application on a Server and everyone can access it so long as they have access to the server. For that matter, one time I copied the JRE folder to the server as well, and wrote my batch file so that it used that JRE folder for the VM and the client didn't have to even install JAVA. This is not good practice, but it worked for what I needed it to do. As for your second question. No. By default, Windows and Office won't let you do that. You can however use Terminal Services which is designed to do what you desire. You still have to have a liscense for each user that uses Office though. No way around that legally.
Larry, like a lot of other folks, you probably haven't thought about exactly what the words "a server" really mean (to paraphrase a late president). Hardware vendors use the term "server" to refer to a particular type of configuration which generally is distinguished by high-performance disk drives, options for remote diagnosis and/or control, and possibly even amenities such as hot-swap power supplies. However, in my previous job, I bought these "servers" to act as client machines because the users were pulling down large mainframe files and acting on them locally. The most common generic use of the term "server" - and I think the one you meant, is LAN server - which refers to software installed on some computer (often a hardware "server" box) that's responsible for sharing out resources over a network. The exact details vary - Novell servers were dedicated machines running a custom OS, nowadays many shops are running Windows servers, and they run basically the same OS as client machines do - just with fewer limitations on resource sharing. A "server" in the software sense is really any program that waits for client requests and, upon receiving one, serves up some sort of response. A LAN server falls into this category, as do web servers, Java application servers (which often also provide web server capabilities), time servers, mail servers, ftp servers, and many other functions. Software servers are generally lightweight enough that one machine can and often does host multiple software servers of different types and sometimes even multiple servers of the same type (for example, multiple copies of Apache). Going back to your original question for a moment. To run a java application, you need 2 things. 1) a Java runtime. 2) the java application. Either, neither, or both of these can be places on a LAN server. Just as long as the client machine can access both items - whether through the local filesystem or a LAN share, the Java app will be able to run. The same is actually true of Windows apps as well, except that Windows apps usually call so many outside DLLs and registry entries that the job is next to impossible. There's also a third type of server I should mention - you can write a Java application AS as server program. I've seen http servers and proxies, ftp servers, and EJB servers all written in Java. A Java server is just a server application (as defined above) that happens to be written in Java. Going back to MS Office. At least at one time, I believe that products like Word were constructed to run off a LAN. However thanks in part to the registry and very much in part to the fact that Microsoft intends to see you pay at least once for every machine you run MS Office apps, you can't just put a copy on a LAN server and use it at will. Instead you'd have to do a separate licensed install for each LAN client.
An IDE is no substitute for an Intelligent Developer.
Its been a while since I looked at Terminal Services, but in some cases at least, the client user's registry settings still come into play. Technically that means an install would have to be done per-login, rather than per-machine, but it's still multiple installs. Of course, I don't KNOW that Microsoft is auditing that stuff, but then I hadn't KNOWN that some of their OEM licenses carried a "this copy of Windows is welded into the machine and cannot be transferred even if the machine is scrapped" clause until recently. I do know that they're looking to keep the cash cow fat, so even if you can run multiple Office users for free via WTS today, there's no guarantee down the road.
Oh, you can't do it for free now. You actually have to liscense each client machine for terminal services. In Advanced Server there is actually a Terminal Services Server and a Terminal Services Liscense Server that distrubutes the certificates to the client machines. But this is off topic, I think we have probably answered Larry's question.