Execution engine for business processes
An execution engine is disclosed for executing business processes. An executable object model is generated for a business process document. Executable object models of business processes are assigned to virtual processors.
1 . A method of implementing business processes that integrate data sources using a virtual multi-processor, comprising:
receiving a plurality of business process execution language (BPEL) documents;
parsing each said BPEL document to create a document object model of a business process;
compiling an executable object model (EOM) of each said business process;
assigning each new EOM to a process queue assigning a virtual processor to execute a selected EOM in said process queue; and
executing at least one step of said selected EOM using said assigned virtual processor;
whereby a plurality of business processes may be executed in parallel on a plurality of execution threads.
2 . The method of claim 1 , wherein after completion of a step said virtual processor decides whether to execute a next step or place an assigned EOM back onto said process queue.
3 . The method of claim 1 , further comprising: for said at least one step of said selected EOM, placing activities that are invocations of web services for accessing data or data transporters for accessing data onto a service invocation bus for execution.
4 . The method of claim 1 , further comprising: for each activity placed onto said service invocation bus, placing said activity onto a queue to be executed from a thread in a thread pool.
5 . A business process execution engine, comprising:
a parser for parsing a business process execution language (BPEL) document to generate a document object model (DOM);
a compiler to generate an executable object model (EOM) of a business process from said DOM;
a processor for executing EOMs as virtual machine processes; and
a service invocation bus for binding an activity to a web service provider or data transporter.
6 . The execution engine of claim 5 , wherein said service invocation bus comprises:
a service invocation bus request queue;
a dispatcher thread pool; a web services invocation foundation (WSIF) application provider interface (API); and
at least one provider interface.
7 . The execution engine of claim 6 , wherein said service invocation bus includes:
a first provider interface for .NET™ web services; and
a second provider interface for Java services to access at least one of a real time data stream, a navigation and extraction, and a database.