1. A computer implemented method for on demand starting of an application comprising: creating a naming reference within a memory storage, the naming reference comprising metadata describing an Enterprise JavaBean (EJB) application; matching the EJB application to the naming reference within the memory storage responsive to a request for the EJB application from a client, the naming reference obtained by an object factory; persisting a running applications hash table to maintain a list of started EJB applications; persisting a deployed applications hash table to maintain a list of deployed EJB applications; checking via the naming reference if the EJB application is in the running applications hash table; starting the application if the EJB application matched to the naming reference is only found in the deployed applications hash table; returning a reference to the EJB application to the client if the EJB application is in the running applications hash table.