Virtual machine and programming language for event processing
First Claim
Patent Images
1. A virtual machine for executing a program, comprising:
- an instruction executor for executing instructions from the program using a computer, wherein;
the instructions from the program have been generated in an intermediate language, by a compiler, to cause processing of an execution sequence according to a specification of a model, the model specification encoded using a model notation that is distinct from the intermediate notation;
the instructions from the program are encoded in a markup language notation by the compiler and are selected by the compiler from allowable instructions of the intermediate language, the markup language notation being distinct from the intermediate language; and
the allowable instructions of the intermediate language comprise;
an event instruction for receiving an inbound event;
an assignment instruction for assigning a value;
a branch instruction for conditional transfer to a different one of the instructions;
an emit instruction for specifying that an outbound event is to be emitted;
a terminate instruction for specifying that a current execution context object is to be terminated; and
a fan-out instruction for at least one of specifying event correlation and enabling a context switch, the context switch causing a particular execution context object to be used as the current execution context object.
1 Assignment
0 Petitions
Accused Products
Abstract
A virtual machine supports execution of compiler-generated code and provides an execution environment for code that may correspond to any of several different event-driven or message-driven programming models (such as state machines, rules for complex event processing and event correlation, monitoring contexts, processes, and mediations). The programming models may be used in business monitoring and/or business integration environments. A programming language is defined for execution using the virtual machine, which contains a relatively small number of instructions and which is preferably generated by a compiler from a higher-level, event-driven or message-driven model.
-
Citations
21 Claims
-
1. A virtual machine for executing a program, comprising:
an instruction executor for executing instructions from the program using a computer, wherein; the instructions from the program have been generated in an intermediate language, by a compiler, to cause processing of an execution sequence according to a specification of a model, the model specification encoded using a model notation that is distinct from the intermediate notation; the instructions from the program are encoded in a markup language notation by the compiler and are selected by the compiler from allowable instructions of the intermediate language, the markup language notation being distinct from the intermediate language; and the allowable instructions of the intermediate language comprise;
an event instruction for receiving an inbound event;
an assignment instruction for assigning a value;
a branch instruction for conditional transfer to a different one of the instructions;
an emit instruction for specifying that an outbound event is to be emitted;
a terminate instruction for specifying that a current execution context object is to be terminated; and
a fan-out instruction for at least one of specifying event correlation and enabling a context switch, the context switch causing a particular execution context object to be used as the current execution context object.- View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
15. A computer program product for executing a virtual machine, wherein the computer program product is embodied on one or more non-transitory computer-readable storage media and comprises computer-readable instructions for:
-
obtaining instructions from a program, the instructions from the program having been generated in an intermediate language, by a compiler, to cause processing of an execution sequence according to a specification of a model, the model specification encoded using a model notation that is distinct from the intermediate notation, and executing the obtained instructions from the program using the virtual machine on a computer, wherein the instructions from the program are encoded in a markup language notation by the compiler and are selected by the compiler from allowable instructions of the intermediate language, the markup language notation being distinct from the intermediate language, the allowable instructions of the intermediate language comprising;
an event instruction for receiving an inbound event;
an assignment instruction for assigning a value;
a branch instruction for conditional transfer to a different one of the instructions;
an emit instruction for specifying that an outbound event is to be emitted;
a terminate instruction for specifying that a current execution context object is to be terminated; and
a fan-out instruction for at least one of specifying event correlation and enabling a context switch, the context switch causing a particular execution context object to be used as the current execution context object.
-
-
16. A non-transitory computer-readable storage medium storing source code written in a programming language, wherein:
-
the programming language comprises an intermediate language which is generated, by a compiler, to cause processing of an execution sequence according to a specification of a model, the model specification encoded using a model notation that is distinct from the intermediate notation, and allowable instructions of the intermediate language comprising; an event instruction for receiving an inbound event; an assignment instruction for assigning a value; a branch instruction for conditional transfer to a different one of the instructions; an emit instruction for specifying that an outbound event is to be emitted; a terminate instruction for specifying that a current execution context object is to be terminated; and a fan-out instruction for at least one of specifying event correlation and enabling a context switch, the context switch causing a particular execution context object to be used as the current execution context object; and the source code comprises a plurality of the allowable instructions of the programming language which are selected by the compiler, wherein the source code is encoded by the compiler, during the generating, in a markup language notation and is executable to cause processing of the execution sequence according to the specification of the model. - View Dependent Claims (17, 18)
-
-
19. A program of instructions stored on a non-transitory computer-readable storage medium which, when executed, causes a computer to perform:
-
obtaining the instructions from the program, the instructions from the program having been generated in an intermediate language, by a compiler, to cause processing of an execution sequence according to a specification of a model, the model specification encoded using a model notation that is distinct from the intermediate notation; and executing the obtained instructions from the program, wherein the instructions from the program are encoded in a markup language notation by the compiler and are selected by the compiler from allowable instructions of the intermediate language, the markup language notation being distinct from the intermediate language, the allowable instructions of the intermediate language comprising; an event instruction for receiving an inbound event; an assignment instruction for assigning a value; a branch instruction for conditional transfer to a different one of the instructions; an emit instruction for specifying that an outbound event is to be emitted; a terminate instruction for specifying that a current execution context object is to be terminated; and a fan-out instruction for at least one of specifying event correlation and enabling a context switch, the context switch causing a particular execution context object to be used as the current execution context object. - View Dependent Claims (20, 21)
-
Specification