Method and system for linear tasking among a plurality of processing units
First Claim
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.
5 Assignments
0 Petitions
Accused Products
Abstract
System, device, method, and computer program and computer program products for providing communicating between devices having similar or dissimilar characteristics and facilitating seamless interoperability between them. Computer program software and methods of and systems and devices for sharing of content, applications, resources and control across similar and dissimilar permanently or intermittently connected electronic devices. Devices, systems, appliances, and the like communicating and/or interoperating within the framework provided. A linear tasking method, model, and system provides alternative to conventional pre-emptive and cooperative threading models used on devices so that multiple operations can be specified and run as if their actions were being executed simultaneously. LinearTasking ensures simple, reliable, flexible and extensibe way for processing units to coordinate their activities in very deterministic and easily tested manner.
110 Citations
28 Claims
-
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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A method for ordering and managing event driven execution and runtime environments of a plurality of event processing units of a computer program software application package, the method comprising:
-
providing a software object oriented framework which includes a base event processing unit class, and zero or more event processing unit classes which inherit either directly or indirectly from the base event processing unit class; creating, maintaining, adding, deleting or reordering links that form a graph or topology of event processing units in a manner that ensures that there is always a single linear deterministic ordering for passing events through the graph of processing units formed by the links; and dynamically changing the graph or topology of processing units according to the needs of the running application; the base event processing unit class comprises at least one of the following class object members; (1) a possibly null reference to a parent processing unit; (2) a possibly empty ordered linear list of references to child processing units; (3) one or more optional binary flag(s) corresponding to classifications of event types that are to be acted upon by the processing unit itself, wherein the flags are used to eliminate unnecessary passing of events down to children or their descendants that will not process any events of a particular class; (4) one or more child optional binary flag(s) corresponding to the classes of event types that are to be acted upon by any of the child processing units descending down a chain of parent processing and child processing until there are no more children or child processing units; (5) a procedure for adding, deleting, modifying, and/or reordering a reference to at least one of the parent and child processing units; and (6) a procedure for ordering the processing of events; the base event processing unit class comprising at least one processing unit class object member for ordering the processing of events; and the procedure for ordering the processing of events is performed according to the following steps; (1) perform any pre-children processing of the event if needed for the particular event being processed; (2) initially set (or reset) optional child binary 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 (children), where each optional child flag is a single bit corresponding to exactly one classification of event types, to initially indicate that no events of any of the classifications are to be acted upon by children or their decedents; (3) set up any environment changes needed for each child processing and call each child event processing unit in the order of the list of children; (4) as each call to a child returns, logically OR the optional child binary flags of processing types needed to be processed by each of the just called child to collect the combined event processing type based needs of all the children and their decedents; (5) perform any post-children processing of the event if needed for the particular event being processed; (6) set the binary flags of event type classifications that are now to be handled by this event processing unit in the future; (7) return control to a parent processing unit if the parent reference is a first state; and (8) return control to a main processing loop which logically called this processing unit if the parent reference is a second state. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21)
-
-
22. A computer program product for use in conjunction with a computer system or information appliance, the computer program product comprising a tangible computer readable storage medium and a computer program mechanism embedded therein, the computer program mechanism comprising:
-
a program module that directs the computer system or information appliance to function in a specified manner 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 program module including instructions for; generating or 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. - View Dependent Claims (23, 24, 25, 26)
-
-
27. An apparatus providing ordering and managing of event driven execution and runtime environments of a plurality of event processing units, the apparatus comprising:
-
a processing logic or processor and a memory coupled with the processing logic or processor;
means, accessible to the processing logic or processor, for generating or 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;means, accessible to the processing logic or processor, for 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; means, accessible to the processing logic or processor, 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 means for ordering the processing of events, including; (1) means for performing any pre-children processing of the event if needed for the particular event being processed; (2) means for 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) means for 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) means for collecting the combined event processing type based needs of all the children and their decedents as each call to a child returns; (5) means for performing any post-children processing of the event if needed for the particular event being processed; (6) means for setting the flags of event type classifications that are now to be handled by this event processing unit in the future; and (7) means for returning control to a parent processing unit or to a main processing loop.
-
-
28. A method comprising:
-
dynamically managing a plurality of event processing units and runtime environments that carry out asynchronous processing operations in a required order as part of an event driven runtime of an executing computer program; the dynamic managing further including;
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;adding runtime links or deleting runtime links and reordering the runtime links to generate a current runtime links set for the event processing units to ensure that there is always a single linear deterministic ordering for processing events through the event processing units for carrying out both synchronous and asynchronous operations in the required order as part of the event driven runtime of the executing computer program; and dynamically changing the event processing units according to the current runtime links and the needs of the executing computer program to maintain the required order of the single linear deterministic ordering; and ordering the processing of events that includes the steps of; (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) as each call to a child returns, collecting the combined event processing type based needs of all the children and their decedents; (5) perform 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; (7) returning control to a parent processing unit if the parent reference is a first state; and (8) returning control to a main processing loop which logically called this processing unit if the parent reference is a second state.
-
Specification