At Acquired Intelligence Inc, we have a small knowledge base which can be used to determine the species of an observed whale. The obvious difference between the two Whale Watchers is the method of displaying information to the user. The CGI version uses HTML web pages to present information, and the Java version displays all information in the Applet's window. Although the methods of displaying information are somewhat similar, the inner workings of the Java version of the Whale Watcher are vastly different from its CGI-based counterpart. These components each provide an end-point of a network connection, enabling the Applet to access the inference engine.
Server allows remote clients to connect to an inference engine.
The Server is capable of simultaneously serving multiple knowledge bases to multiple clients. Due to security constraints of the Java SecurityManager , Applets are not allowed to open network connections to arbitrary hosts. The only host to which an Applet can create a socket is the one from which it was served. The API provides an Acquire object, which is simply a wrapper around a socket. This object has a wide range of methods which allow you to both interact with the Server's inference engine, and to set and query the states of the knowledge bases it provides.