Patent ID: 8316369

Claim:
A computer program product comprising one or more physical computer-readable storage media having thereon computer-executable instructions that, when executed by one or more processors of the computing system, cause the computing system to instantiate a scheduler, the scheduler configured to schedule execution of a plurality of components in a dataflow network, each of the plurality of components being created using a domain/agent model in which data access boundaries are defined by one or more domains, and in which at least one of the one or more domains includes a plurality of agents configured to access a mutable shared state and an immutable shared state of shared data of the at least one domain, the plurality of agents including a writer agent, a general reader agent and an immutable reader agent, the writer agent having read access and write access to the mutable shared state and read access to the immutable shared state, the general reader agent having read access to the mutable shared state and the immutable shared state, and the immutable reader agent only having read access to the immutable shared state, the scheduler configured to identify, for each of the plurality of components, a creation source for the given component, possible creation sources including at least an agent-level method or an agent level function which is implemented by either the writer agent, the reader agent or the immutable reader agent; the scheduler configured to identify, for each of the plurality of components, an appropriate domain-level access permission for the given component based on the creation source of the given component and based on whether the creation source was implemented by the writer agent, the reader agent or the immutable reader agent; and the scheduler configured to determine, based at least on the identified appropriate domain-level access permission for at least two of the plurality of components, whether a particular component may concurrently execute with one or more other components of the plurality of components.