Dynamic delegation chain for runtime adaptation of a code unit to an environment
AssigneeOracle America, Inc.
InventorsKrzysztof Palacz, Grzegorz J. Czajkowski, Laurent P. Daynès
Life of this patent
Estimating the term…
Abstract
A dynamic delegation chain of executor objects can, at runtime, adapt code units to be executed as isolated computations prior to their execution to comport with current state of an environment. A dynamic delegation chain performs the dynamic runtime adaptation of the code unit in accordance with isolated computations that host the executor objects of the delegation chain. Adapting a code unit prior to execution of the code unit allows adaptation of the code unit to a current state, as well as at least reducing concerns of program integrity.
Claims16
A method comprising:
- assembling a delegation chain of a plurality of executor objects for serially adapting a code unit to an environment comprising a plurality of aspects, at runtime,
- wherein the plurality of executor objects are capable of rejecting the code unit based on one or more of the plurality of executor objects,
- wherein the plurality of executor objects are configured to customize the code unit,
- wherein the environment hosts asynchronous concurrent tasks, and
- wherein assembling comprises customizing at least one of code and configuration data of a first executor object code that causes the first executor object to submit the code unit to a second executor object of the plurality of executor objects before executing the code unit;
- dynamically adapting the code unit to the environment, at runtime, using the delegation chain, to serially delegate execution of the code unit, by:
- submitting, by each executor object of the plurality of executor objects and based on one of the plurality of aspects implemented by each executor object, the code unit to a next executor object of the delegation chain;
- and
- executing, after dynamically adapting, the code unit as an isolated computation directly by a privileged system executor object of the plurality of executor objects when the code unit is allowed by the plurality of executor objects in accordance with a current runtime state of the environment,
- wherein each of the plurality of aspects refer to a feature or element of a program executing in the environment that is a cross-cutting concern or a core concern.
A method comprising:
- assembling a delegation chain of a plurality of executor objects for serially adapting a code unit to an environment comprising a plurality of aspects, at runtime,
- wherein the plurality of executor objects is capable of rejecting the code unit based on one or more of the plurality of executor objects,
- wherein the plurality of executor objects is configured to customize the code unit, and
- wherein the environment hosts asynchronous concurrent tasks;
- dynamically adapting, after assembling, the code unit to the environment using the delegation chain to serially delegate execution of the code unit, by:
- submitting, by each executor object of the plurality of executor objects and based on one of the plurality of aspects implemented by each executor object, the code unit to a next executor object of the delegation chain;
- and
- executing, after dynamically adapting, the code unit as an isolated computation directly by a privileged system executor object of the plurality of executor objects when the code unit is allowed by the plurality of executor objects in accordance with a current runtime state of the environment,
- wherein each of the plurality of aspects refer to a feature or element of a program executing in the environment that is a cross-cutting concern or a core concern.
A computer program product encoded in one or more non-transitory machine-readable media, the computer program product comprising instructions to:
- assemble a delegation chain of a plurality of executor objects for serially adapting a code unit to an environment comprising a plurality of aspects, at runtime,
- wherein the plurality of executor objects are capable of rejecting the code unit based on one or more of the plurality of executor objects,
- wherein the plurality of executor objects are configured to customize the code unit,
- wherein the environment hosts asynchronous concurrent tasks, and
- wherein assembling comprises customizing at least one of code and configuration data of a first executor object code that causes the first executor object to submit the code unit to a second executor object of the plurality of executor objects before executing the code unit;
- dynamically adapt the code unit to the environment, at runtime, using the delegation chain, to serially delegate execution of the code unit, by:
- submitting, by each executor object of the plurality of executor objects and based on one of the plurality of aspects implemented by each executor object, the code unit to a next executor object of the delegation chain;
- and
- execute, after dynamically adapting, the code unit as an isolated computation directly by a privileged system executor object of the plurality of executor objects when the code unit is allowed by the plurality of executor objects in accordance with a current runtime state of the environment,
- wherein each of the plurality of aspects refer to a feature or element of a program executing in the environment that is a cross-cutting concern or a core concern.
A computer program product encoded in one or more non-transitory machine-readable media, the computer program product comprising instructions to:
- assemble a delegation chain of a plurality of executor objects for serially adapting a code unit to an environment comprising a plurality of aspects, at runtime,
- wherein the plurality of executor objects is capable of rejecting the code unit based on one or more of the plurality of executor objects,
- wherein the plurality of executor objects is capable of customizing the code unit, and
- wherein the environment hosts asynchronous concurrent tasks;
- dynamically adapt, after assembling, the code unit to the environment using the delegation chain to serially delegate execution of the code unit, by:
- submitting, by each executor object of the plurality of executor objects and based on one of the plurality of aspects implemented by each executor object, the code unit to a next executor object of the delegation chain;
- and
- execute, after dynamically adapting, the code unit as an isolated computation directly by a privileged system executor object of the plurality of executor objects when the code unit is allowed by the plurality of executor objects in accordance with a current runtime state of the environment,
- wherein each of the plurality of aspects refer to a feature or element of a program executing in the environment that is a cross-cutting concern or a core concern.
An apparatus comprising:
- a set of one or more processing units configured for:
- assembling a delegation chain of a plurality of executor objects for serially adapting a code unit to an environment comprising a plurality of aspects, at runtime,
- wherein the plurality of executor objects is capable of rejecting the code unit based on one or more of the plurality of executor objects,
- wherein the plurality of executor objects is capable of adapting the code unit, and
- wherein the environment hosts asynchronous concurrent tasks;
- dynamically adapting the code unit to the environment, using the delegation chain of the plurality of executor objects to serially delegate execution of the code unit, by:
- submitting, by each executor object of the plurality of executor objects and based on one of the plurality of aspects implemented by each executor object, the code unit to a next executor object of the delegation chain;
- and
- executing, after dynamically adapting, the code unit as an isolated computation directly by a privileged system executor object of the plurality of executor objects when the code unit is allowed by one or more of the plurality of executor objects in accordance with a current runtime state of the environment,
- wherein each of the plurality of aspects refer to a feature or element of a program executing in the environment that is a cross-cutting concern or a core concern.
Dependencies are inferred from the claim text.