Running a client applet is quite a bit different from running a standalone application. One difference is that you typically run applets from within a browser running on the client computer. Of course, the browser needs to support Java!

Another difference is that since applets already support downloading of class files, you don't need to pre-install anything on the client computer except for the browser! Instead, you can place all of the required HTML and class files on a web server, and the applet and RMI infrastructure will download them as needed. We also don't need to worry about the policy file on the client.

There is one other complication with regards to applets: if you want the object server and the web server to reside on different hosts, you will need to learn about digitally signing the applet. That's because, by default, the browser security manager only allows network access, including RMI methods, back to the web server. In other words, unless you sign your applet, you will see security violations if you distribute your objects to a different server than the web server. Digitally signing is a topic beyond the scope of this short course.

Finally, we should note that its actually possible to write standalone applications so that just about everything can be downloaded upon demand, similar to as shown here for applets. Consult the JDK documentation regarding "bootstrapping applications" for more details.

Well, we have now covered enough about RMI to get you started writing and deploying your own distrubuted programs. Let's now look an alternative infrastructure for distributed objects -- the CORBA approach.