Token

Token is a set of data to manage "tasks flowing in business process (business flow)." It can be considered as a kind of a control number.

Overview of Token
In general, "Token" means a "mark" or a "substitute coin," but in the information system area, "token" has a unique definition.

Especially, in telecommunication network and security area, "token" means "transmission privilege, access privilege, ticket, and so on" and, in many cases, "token" implies reference number, control tag, and control number that are used to control something in any way. In order to manage enormous tasks in a company, BPM engines (workflow engines) implemented in many BPM suite and BPM software products attach data called token to control each task.

In addition, it means "lexical token or character," which is a unit to analyze program codes, in software programming area.

Split of Token
In the right diagram, "A2" and "B1" starts concurrently by AND-Split after activity "A1" is executed. In such a case, BPM engine (workflow engine) splits a token into two and keeps track of the status of each token. Likewise, in case multiple routes are chosen by OR-Split, the token is also split.

On the other hand, in case of XOR-Split, at which "only one route" must be chosen, the token is never split.

In the right diagram, the following possibilities can be considered as a timing at which "C1" starts. However, according to the basic rule defined in BPMN1.1, the third option above is expected. (Some products adopt the first option.)
 * 1) "C1" starts after joining the results of "A2" and "B1."
 * 2) "C1" starts after receiving one of the results of "A2" and "B1."
 * 3) "C1" starts upon receiving the result from each of "A2" and "B1" respectively. ("C1" is executed twice.)

(*)In order to clearly show that "C1" waits until both of "A2" and "B1" are completed, Parallel Gateway must be placed. Furthermore, if the complex way to wait the results from the two activities needs to be specified, Complex Gateway is used.

Divergence of Token
In the process diagram shown in Figure 1, when "A1" is started again after "C1" is completed, the number of tokens is 1. Therefore, in this process diagram, the number of tokens is always "1 or 2."

However, on the other hand, if a token processed at "B1" goes back to "A1" and is split again after "A1" is completed, the number of tokens diverges. "Whether divergence of tokens is allowed or not" depends on the specification of each BPM engine (workflow engine).

In addition, a process diagram in which "split" and "join" are always coupled and process blocks are nested is said to be "structured" after "Structured Theorem / Structured Programming" in software engineering. A token never diverges in a structured process diagram. (Note that it does not necessarily mean "a token always diverges" in a process diagram that is not structured.)

Related Articles

 * Workflow
 * Workflow Engine