A method and apparatus is disclosed for dynamically determining the order
of execution of a plurality of computer program components. A
characterization mechanism provides an annotation of each executable
component. A partial order mechanism depends upon the characterization
mechanism, and enables a first executable component to declare which other
executable components, times, data sets, or other resources are
pre-conditions to execution of the first executable component. At load
time, a partial order evaluator resolves the pre-conditions and generates
a final order of execution of the components based upon interdependencies
and resource requirements represented in the pre-conditions. In a
preferred embodiment, the pre-conditions are stored in an acyclic directed
graph, and the final order is generated by making a breadth-first
traversal of the graph and adding nodes of the graph to the final order in
the order in which the nodes are traversed.
Un método y un aparato se divulga para dinámicamente determinar la orden de la ejecución de una pluralidad de componentes del programa de computadora. Un mecanismo de la caracterización proporciona una anotación de cada componente ejecutable. Un mecanismo parcial de la orden depende del mecanismo de la caracterización, y permite a un primer componente ejecutable declarar cuál son condiciones previas otros componentes ejecutables, los tiempos, los modems, u otros recursos a la ejecución del primer componente ejecutable. En el tiempo de carga, un evaluador parcial de la orden resuelve las condiciones previas y genera una orden final de la ejecución de los componentes basados sobre interdependencias y requisitos de recurso representados en las condiciones previas. En una encarnación preferida, las condiciones previas se almacenan en un gráfico dirigido acíclico, y la orden final es generada haciendo un traversal breadth-first del gráfico y agregando los nodos del gráfico a la orden final en la orden en la cual se atraviesan los nodos.