Patent ID: 8244869

Claim:
A method for loading server services comprising: providing an application server, executing on a computer including a computer readable medium and processor, wherein functionality provided by the application server is embodied in a plurality of features, each of which includes one or more server services of a plurality of server services that are internal service classes available on the application server; representing the plurality of server services as a graph data structure comprising nodes and a plurality of connections between the nodes; wherein each node in the graph data structure represents a different server service, and wherein the plurality of connections between nodes indicate dependencies between those server services, and wherein the application server is configured to start a particular server service only after all server services on which the particular server service depends have been started; when the application server is started, sorting the graph data structure to create an ordered list of nodes based on the plurality of connections between the nodes; reading license files to determine which of the plurality of server services are licensed services; receiving startup options from a user input; updating the ordered list of nodes based on the license files and the startup options to indicate which server services to start, wherein the server services to start include a set of server services which includes those server services that are both licensed services and which were indicated in the startup options, and other server services on which the server services in the set of server services depend; and loading only the server services in the set of server services, and the other server services upon which the server services in the set of server services depend, during startup according to the ordered list.