This single application is referred to as the One True Elvis; other instances of the same application are Elvis Clients, aka Elvis Impersonators. If there are multiple users on a machine (for example, on a Linux or Solaris system), or if a user has invoked multiple different applications, there may be multiple One True Elvis's on a system. However, for a given application, there will never be more than a single One True Elvis of that application for a given user.
The concept of Elvis is inspired by the Jext project's
org.jext.JextLoader
class, but provides more general and secure implementation.
Elvis is intended for use when you want only one instance of an application to exist for a given user.
It's expected that Elvis clients will simply pass the One True Elvis their command line arguments (and possibly other information) for processing, and then exit.
The model of behavior for the One True Elvis is this:
The model of client interaction for Elvis is this:
For more information about how to use Elvis, see the (not yet written) Elvis How-To, and the (not yet available) Elvis Javadoc.
Elvis is not intended for session/connection based interprocess communications, or for persistent clients. Elvis isn't a replacement for RMI, Corba, System V IPC, sockets, or other traditional and more general methods of extended interprocess communications.
Security | Elvis only accepts connections from the local host. Connections originating from other hosts are logged and rejected. If too many such connections are received, Elvis will exit on the assumption that this is a exploit attempt. |
Uniqueness | Elvis works regardless of the number of JVMs that may be running for a given user, or the number of users on the machine. Not yet completely implemented. |
Hosting and related project support for Elvis is provided by SourceForge. | |
Elvis originates at Synaptics, Inc. |
Last updated May 2, 2002 by Christopher Heiny