Introduction

The process engine is the core of Twister, it's where the processes live and get executed. The engine basically listens to messages that are sent to it and reacts to those messages accordingly to one of the processes that hve been deployed in it.

The process engine manages the processes that haven been deployed using the Process Deployer and interacts with your services and the WorkList Manager. So the only ways to communicate with the engine is by deploying a process or sending a message to it. The only way the engine communicates to its environment is by sending a message to another service or by letting know an end user what he has to do through the WorkList Manager.

A process execution overview

Let's describe now how a process is created, lives inside the engine and finish its execution, that should clarify some points.

  • First, you should have a description of your process in a formal XML description language. Twister supports BPEL4WS but could, later on, support other description schemas if necessary. How do you obtain this stuff ? if you're very courageous you can type it with your two hands but if you don't like cumbersome tasks we recommend using a graphical interface like BPWS4J (by IBM) or anything that suits you. Twister development plan includes such a tool but it shouldn't be implemented before a little while.
  • The process description file must then be deployed in the engine using the Twister Deployer. The Deployer will create, from the description, necessary structures in the engine so that your process can actually be executed.
  • Upon reception of an appropriate message (as defined in the pro cess description), a new process instance will be created. The process instance is the execution representation of your process, a process being executed several times
  • When more messages arrive aimed at the process instance that have been created, the instance activities gets executed step by step until the instance is completed (or faulted). Depending your process definition the engine can reply to messages, send new messages, invoke services, wait for a specific date or deadline, ask the WorkList Manager for a Work Item creation...
  • When the process instance execution is finished, it is simply archived. and that's it !