|
BPMN-OS
BPMN for optimization and simulation
|
Data required for optimisation and simulation is provided through BPMN extension elements, i.e.
The XML-schema definition for these extensions is provided in BPMNOS.xsd.
Information is provided via attributes. Within an <bpmnos:attributes> container any number of <bpmnos:attribute> elements can be provided to define attributes. For each attribute the following fields can be provided
id: a unique identifier,type: the type of the attribute which must be one of integer, decimal, boolean, string, collection,name: the name of the attribute and optionally, an initial assignmentobjective: an optional field indicating whether the attribute value contributes to a global objective which must be either maximize or minimize, andweight: an optional decimal indicating a multiplier for the objective function which must be provided if objective is set.Global attributes can be defined globally for a collaboration element as shown in the following example.
Data attributes can be defined for a data object element as shown in the following example.
Data attributes are similar to global attributes, however, they only exist within the scope cotaining the data object.
Status attributes can be defined for a process element and an activity element as shown in the following example.
Status attributes are attached to tokens moving through a process model. Their lifetime is restricted to the node that they are defined for and they are dynamically added and removed to the token status.
Restrictions allow to constrain the domain of attributes and to determine the sequence flows out of diverging gateways. Within a <bpmnos:restrictions> container any number of <bpmnos:restriction> elements can be provided to specify restrictions. For each restriction the following fields can be provided
id: a unique identifier,scope: the scope indicating when the restriction has to be satisfied which must be one of entry, exit, full.expression: an expression representing the requirements.Restrictions can be added to a process element and an activity element as shown in the following example.
Gatekeeper restrictions can be added to a sequence flow element as shown in the following example.
operators can be used to modify attribute values. Within an <bpmnos:operators> container any number of <bpmnos:operator> elements can be provided to specify operators. For each operator the following fields can be provided
id: a unique identifier,expression: an expression assigning a value to an attribute.The following shows an example of an operator increasing an attribute value.
The following shows an example using a lookup table that must be specified using a data store.
Decision tasks are represented by task elements with an additional field bpmnos:type="Decision". For these decision tasks, choice on the value fo one or more attributes can be made. Within a <bpmnos:decisions> container any number of <bpmnos:decision> elements can be provided to define the respective attributes as shown in the following example.
Each condition constrains the values that may be chosen for the specified attribute.
Messages can be used to exchange information by delivering a content from one process to another.
For message throw events and message catch events a <bpmnos:message> element must be provided with field name representing a name of the message. Message definitions may contain one or more parameters defining a message header, where the name field represents a name for the header entry and either the attribute field provides an attribute name holding the value of the header entry or the value field explicitly specifies the value. By default, every header contains entries with names sender and recipient. Messages can only be deliered to a recipient if the recipient specifies the same message name as the sender and the entry names of the headers are identical and all header values match, i.e. either have the same value or one of both is undefined.
Moreover, message definitions may contain one or more <bpmnos:content> element defining a message content. For each such element the following fields can be provided
key: a key allowing to refer to the content,attribute: the attribute name containing the value to be added to the message content or the name of the attribute for which the value is set to the message content.The following shows an example of an outgoing message definition for a send task sending a message with name Request to a recipient that must also have a parameter named machine having the value of the machine attribute. The message content is populated with the values of the instance and duration attributes.
The following shows an example of an incoming message definition for a message catch event receiving a message with name Request from a sender that must also have a parameter named machine having the value of the machine attribute. The recipient attributes order and duration are set to the values of the respective message content.
<bpmnos:message> element must be embedded in a <bpmnos:message> container because multiple messages may be defined for multi-instance tasks. For other message catch events and message throw events the <bpmnos:message> element must not be embedded in a <bpmnos:message> container.The trigger for a timer event can be specified by providing a parameter with name trigger and value being an expression as shown in the following example.
Lookup tables can be made available by adding the following extension elements to a data store reference.
The parameter name specifies the name of the lookup table to be used in expressions. The parameter source specifies the filen name of the lookup table.
For loop and multi-instance activities, additional parameters can be specified: