The implementation of an entity (e.g. Tomcat) is agnostic about where it will be installed/started. When writing the application definition specify the location or list of possible locations (
Location instances) for hosting the entity.
Location instances represent where they run and indicate how that location (resource or service) can be accessed.
For example, a
JBoss7Server will usually be running in an
SshMachineLocation, which contains the credentials and address for sshing to the machine. A cluster of such servers may be running in a
MachineProvisioningLocation, capable of creating new
SshMachineLocation instances as required.