1. A method for dynamically ordering and managing a plurality of event processing units and runtime environments that carry out synchronous and asynchronous operations in a required order as part of an event driven runtime of an executing computer program application package, the method comprising: providing a software object oriented framework which includes a base event processing unit class, and zero or more other event processing unit classes which inherit either directly or indirectly from the base event processing unit class; creating, maintaining, adding, deleting or reordering runtime links to generate current runtime links that form a graph or topology of the event processing units in a manner that ensures that there is always a single linear deterministic ordering for passing events through the graph of the event processing units formed by the runtime links and for carrying out both synchronous and asynchronous operations in the required order as part of the event driven runtime of the executing computer program application package; dynamically changing the graph or topology of the event processing units according to the current runtime links and the needs of the executing computer program application package to maintain the single linear deterministic ordering; and ordering the processing of events includes: (1) performing any pre-children processing of the event if needed for the particular event being processed; (2) initially setting or resetting child flags maintained to track the combined event processing needs of all the children event processing units needs along with the needs of all their dependents; (3) setting up any environment changes needed for each child event processing and call each child event processing unit in the order of the list of children; (4) collecting the combined event processing type based needs of all the children and their decedents as each call to a child returns; (5) performing any post-children processing of the event if needed for the particular event being processed; (6) setting the flags of event type classifications that are now to be handled by this event processing unit in the future; and (7) returning control to a parent processing unit or to a main processing loop.