<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Enabling Batch Processing in BPMN Processes</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Luise</forename><surname>Pufahl</surname></persName>
							<email>luise.pufahl@hpi.uni-potsdam.de</email>
							<affiliation key="aff0">
								<orgName type="institution" key="instit1">Hasso Plattner Institute</orgName>
								<orgName type="institution" key="instit2">University of Potsdam</orgName>
								<address>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Mathias</forename><surname>Weske</surname></persName>
							<email>mathias.weske@hpi.uni-potsdam.de</email>
							<affiliation key="aff0">
								<orgName type="institution" key="instit1">Hasso Plattner Institute</orgName>
								<orgName type="institution" key="instit2">University of Potsdam</orgName>
								<address>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Enabling Batch Processing in BPMN Processes</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">9338791EBF98C587A480E31269075796</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-23T23:24+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>Batch Processing</term>
					<term>Process Enactment</term>
					<term>BPMN</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Business process automation improves organizations' efficiency to perform work. Single executions of process models, called process instances, are usually executed independently in business process management systems (BPMS). In practice, we can observe examples in which a synchronized execution of groups of instances for certain activities, called batch processing, can lead to an improved performance. Batch regions is a concept to allow batch processing in business processes. This demo presents the implementation of the batch region concept in an open-source BPMN engine. It shows how, with a few extensions only, batch processing is enabled and how the consolidated view of several work items in one user form, leads to an improved work efficiency for users.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Introduction</head><p>Business process automation improves organizations' efficiency to perform work. Therefore, processes are often captured in process models, typically in BPMN (Business Process Modeling and Notation) <ref type="bibr" target="#b1">[2]</ref> diagrams, the industry standard. These are then executed by a BPMS (e.g., Bizagi <ref type="bibr" target="#b0">[1]</ref>, Camunda <ref type="bibr" target="#b2">[3]</ref>, Signavio Workflow <ref type="bibr" target="#b7">[8]</ref>). An executing instance of a process model is called process instance. Multiple process instances might run simultaneously in a BPMS. However, as Russell et al. <ref type="bibr" target="#b6">[7]</ref> observe, "each of these is assumed to have an independent existence and they typically execute without reference to each other." In practice, we can observe different cases where the synchronized execution of several instances is beneficial and can improve process performance. For example, Fig. <ref type="figure">1</ref> shows the simplified version of an online retailer process as BPMN diagram in which</p><p>Copyright c 2016 for this paper by its authors. Copying permitted for private and academic purposes.</p><p>customer orders are handled. Often, online retailers do not charge any transport cost with the effect that customers place multiple orders in relatively short time frames. In such situation, several orders of the same customer could be packed and shipped together to save shipment costs. This approach, called batch processing, allows business processes which usually act on a single item, to bundle the execution of a group of process instances for certain activities in order to improve performance. Other examples which benefit from batch processing, we can observe in health care, e.g. collecting a set of blood samples for delivery to the laboratory, in insurance and finance, e.g. consolidating several letters to one customer and send them as one mail, and in administration, e.g. collecting several invoices for their approval. Usually these examples are already executed in a batch, but manually with the risk that batch processing rules might not be clear for everyone or might be ignored. Recent research approaches <ref type="bibr" target="#b3">[4]</ref><ref type="bibr" target="#b4">[5]</ref><ref type="bibr" target="#b5">[6]</ref> provide means to integrate batch processing in business processes models and its automatic execution. In contrast to the others, the batch region concept in <ref type="bibr" target="#b5">[6]</ref> allows an individual batch configuration based on which instances are batched with similar data characteristics over a number of activities. In this demo, we want to show an implementation of the batch region concept for BPMN processes in the open-source BPM platform Camunda <ref type="bibr" target="#b2">[3]</ref>. Next, Section 2 introduce the batch region concept for BPMN processes; Section 3 presents the implementation details. We conclude in Section 4. A batch region in a BPMN process diagram is a special type of sub-process enabling batch processing for its activities. Fig. <ref type="figure" target="#fig_1">2</ref> shows the online retailer process with a batch region surrounding the activities Pack order and Ship order. With its configuration parameters (visualized in the right panel of Fig. <ref type="figure" target="#fig_1">2</ref>), the process designer is able to specify the conditions for the batch execution. Those are (1) a grouping characteristic to cluster process instances to be processed in one batch based on data attributes (e.g., the custName and custAdress to identify similar order instances in our retailer example), (2) an activation rule to determine when a batch is activated while balancing between waiting time and costs savings (e.g., when at least two similar order instances are available or a timeout of one hour is reached specified in a threshold rule), and (3) the maximum batch size indicating the maximum number of instances in a batch (e.g., at maximum three orders fit in one parcel). In a batch region, XOR gateways are not allowed because decisions are usually taken on individual items, but not on a item group. Further, we require that only one start event in a batch region so that the activation of a batch cluster is uniquely determined.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Batch Region Concept in BPMN -Design and Execution</head><p>Each execution of the batch region is represented by a batch cluster. It collects a number of sub-process instances for batch execution whereby these are assigned based on their data values. For example, only instances with custName = John and custAddress = M adrid are assigned to the cluster John Madrid. A batch cluster has different life cycle states shown in Fig. <ref type="figure">3</ref>. When the first batch region activity is enabled, a sub-process instance gets assigned to an existing or new batch cluster. It is checked whether a cluster is available with the same data characteristics that is in the init or ready state. If not, a new cluster is created in the initial state init. If the activation rule is fulfilled, it transitions into the ready state.In this state, a batch work item init ready running terminated maxloaded Fig. <ref type="figure">3</ref>. Life cycle of a batch cluster including data of all instances is provided to the task performer. In the ready state, further instances can be still assigned to it to achieve an optimal cluster utilization. In this state, the cluster can transition into the maxloaded state, if its maximum batch size is reached, or into the running state, if the task performer begins the work item execution. In these two states, no further instances can be added. The cluster stays in the running state for all further activities in the sub-process. With termination of the last batch work item, it changes into the terminated state. Now, the instances are again independent from each other. After this short introduction into batch region design and its execution semantics, the next section describes our extensions of an open-source BPMN engine to enable batch processing.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Tool Architecture and Implementation</head><p>For the implementation<ref type="foot" target="#foot_0">2</ref> of the presented batch region concept, Camunda <ref type="bibr" target="#b2">[3]</ref> was selected, a Java-based, open source engine specifically tailored for a subset of BPMN. First, we integrated batch region concept in the BPMN XML specification by utilizing extension elements, which the BPMN specification <ref type="bibr" target="#b1">[2]</ref> explicitly supports to add new attributes and properties to existing constructs. The extension was added to the subprocess element describing the batch region configuration. Based on it, the Camunda modeler bpmn.io was adapted to enable a quick design of batch regions. Specifically, the sub-process element was extended as shown in Fig. <ref type="figure">1</ref>.</p><p>The Camunda engine was extended by only four additional classes: The batch region class stores the configurations of each identified batch region and manages the assignment of process instances to a batch cluster. The batch cluster class governs the batch execution for its assigned group of process instances. The batch behavior class includes the internal behavior of the activities in a batch region sub-process. In the Camunda engine, every process activity gets a task behavior (e.g., user task, service task) assigned, describing the internal activity behavior. In order to reuse these behaviors and limit the engine extension, the batch behavior inherits the normal task behavior and has additional methods for the batch execution defined in an interface. This is driven by the idea that one of the cluster instances leads the batch execution by first merging the data of all cluster instances and then executing the usual task behavior. Currently, this is implemented only for user tasks, but can easily applied to other task types. Further, a batch timer job class was added to enable the time-out defined in the threshold rule. Additionally, the BPMN parser was adapted to read batch regions' specifications and to assign every batch region activity its batch behavior.  For the example of the UserTaskBatchBehavior, the interaction of the batch behavior with the batch region and the batch cluster class is shown in Fig. <ref type="figure" target="#fig_3">4</ref>. As soon as an Execution object representing a process instance enables an activity with a batch behavior, it is added by the batch region to a cluster. If no batch cluster is currently available, it is first created and then the add()-method of the cluster is called in which also the activation rule is checked. Currently, our implementation supports the threshold rule. With its fulfillment, the cluster calls the composite()-method of the batch behavior merging the data of all instances. In case of the user task, a JSON variable with all instance data is created. This can be later reused during the user form design. Then, the executeBA()-method is called in which the batch behavior calls the execute()method of its super class. Now, the normal user task behavior is executed in which a work item for the task performer is created. Fig. <ref type="figure" target="#fig_4">5</ref> shows the batch work item for the Ship order activity of the retailer example. We have used the JSON variable to visualize all orders in a table. The task performer can easily inspect all orders and has to enter the value for the logistics provider only once, as it is valid for all orders. Instead of three work items, the task performer has to process only one, leading to time and cost savings.</p><p>Our implementation provides also the feature to add new instances, while the first batch region activity is not completed, yet. The corresponding addNewInstances()method simply adapts the JSON variable. With completion of a batch work item, the task manager calls the signal()-method of the batch behavior distributing new added data (e.g., the logistics provider in Fig. <ref type="figure" target="#fig_4">5</ref>) to all other cluster instances. Finally, with the last batch work item, also the batch cluster is terminated. The implementation shows that only small extensions on a BPMS are necessary, which also have no significant influence on the engine performance, to enable batch processing.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Conclusion</head><p>Real-world examples show the necessity of batch processing in business processes. In this paper, the batch region concept was implemented in an existing BPMS to realize batch processing for BPMN processes. Only small extensions are necessary to adapt the BPMN engine having also no significant impact on the engine performance. The demo shows that batch processing has the advantage that task performers can handle several items consolidated in one user form improving their work efficiency.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>1 Fig. 1 .</head><label>11</label><figDesc>Fig. 1. Simplified online retailer process shown in a BPMN diagram.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Fig. 2 .</head><label>2</label><figDesc>Fig. 2. Online retailer process with a batch region to save shipping costs.</figDesc><graphic coords="2,134.77,392.48,345.84,152.38" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Fig. 4 .</head><label>4</label><figDesc>Fig. 4. Sequence diagram visualizing the interaction between added classes batch behavior, batch region, and batch cluster to the Camunda engine.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_4"><head>Fig. 5 .</head><label>5</label><figDesc>Fig. 5. Batch work item for the Ship order activity of the online retailer example.</figDesc><graphic coords="5,186.63,115.84,242.10,182.70" type="bitmap" /></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="2" xml:id="foot_0">A link to repository of the implementation and a screen cast are available at http://bpt. hpi.uni-potsdam.de/Public/BatchProcessing.</note>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<monogr>
		<ptr target="http://www.bizagi.com/" />
		<title level="m">Bizagi Business Platform</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">OMG: Business Process Model and Notation (BPMN)</title>
	</analytic>
	<monogr>
		<title level="j">Version</title>
		<imprint>
			<biblScope unit="volume">2</biblScope>
			<biblScope unit="issue">0</biblScope>
			<date type="published" when="2011">2011</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<monogr>
		<ptr target="https://www.camunda.org/" />
		<title level="m">Camunda: Camunda open-source BPM Platform</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Dynamic batch processing in workflows: Model and implementation</title>
		<author>
			<persName><forename type="first">J</forename><surname>Liu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Hu</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Future Generation Computer Systems</title>
		<imprint>
			<biblScope unit="volume">23</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="338" to="347" />
			<date type="published" when="2007">2007</date>
			<publisher>Elsevier</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Optimizing Resource Utilization by Combining Activities Across Process Instances</title>
		<author>
			<persName><forename type="first">C</forename><surname>Natschläger</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Bögl</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Geist</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Biró</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Systems, Software and Services Process Improvement</title>
				<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2015">2015</date>
			<biblScope unit="page" from="155" to="167" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Batch regions: process instance synchronization based on data</title>
		<author>
			<persName><forename type="first">L</forename><surname>Pufahl</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Meyer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Weske</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">EDOC, 2014 IEEE 18th International</title>
				<imprint>
			<publisher>IEEE</publisher>
			<date type="published" when="2014">2014</date>
			<biblScope unit="page" from="150" to="159" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Workflow data patterns: Identification, representation and tool support</title>
		<author>
			<persName><forename type="first">N</forename><surname>Russell</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">H</forename><surname>Ter Hofstede</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Edmond</surname></persName>
		</author>
		<author>
			<persName><forename type="first">W</forename><forename type="middle">M</forename><surname>Van Der Aalst</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Conceptual Modeling-ER 2005</title>
				<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2005">2005</date>
			<biblScope unit="volume">3716</biblScope>
			<biblScope unit="page" from="353" to="368" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<monogr>
		<ptr target="https://workflow.signavio.com/" />
		<title level="m">Signavio Workflow</title>
				<imprint/>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
