1. A method comprising: obtaining software structure data identifying a plurality of application components of an application that are associated with requested functionality, the application components in the plurality of application components not referring to each other; obtaining software logic data indicating interaction rules between the plurality of application components; storing the software structure data and the software logic data in a designated area of memory in an externalized form separate from the plurality of application components to permit access to the software structure data and software logic data separate from the plurality of application components; and coordinating an invocation of the plurality of application components at run time based on the software logic data, such that the application is configured while the application is running, wherein coordinating the invocation of the plurality of application components at run time includes: receiving a request to execute an action, the request including an action state object associated with the action; obtaining a name of an application component specified by the action; obtaining a reference to the application component using the software structure data stored in the memory; invoking the application component using the action state object as an input parameter; and if the application component is a last application component of the action, returning the action state object to a requestor of an action execution.