Z is close but not quite 100% correct about application clients.
You can run an application client on any system, not just a system with the full app server installed on it. To do so, naturally, you do need to get some - not all - of the app server bits onto the remote system. (Currently the footprint is much larger than we would like for historical reasons, but we plan to improve this greatly in V3.) The Developer's Guide
http://docs.sun.com/app/docs/doc/819-3672 explains in detail how to do prepare a remote system to run app clients. Look in this part of the guide
Developing Applications and Application Components
+-- Developing Java Clients
Briefly, you can either transport the bits there yourself and use the appclient command to launch the client or you can use the built-in support for Java Web Start and let the combination of Java Web Start and GlassFish take care of that for you.
Z has pointed out some of the key differences between application clients and a stand-alone Java app that refers to enterprise components on the server. Not only can you use the built-in annotation/injection handling to simplify your client's access to server-side resources but the app client container also handles security for you.
- Tim
[Message sent by forum member 'tjquinn' (tjquinn)]
http://forums.java.net/jive/thread.jspa?messageID=252238