,

LogSim

This article introduces a tool developed by Rob Vens for process modelling and mining. It uses a language similar to BPMN. Only better! It has full support for also executing your models in a realistic way using a full-fledged simulation environment.

Introducing LogSim

Note: LogSim is not to be confused with the British company Logistics Simulation Ltd., or with a log-making simulation program from HALCO Software.

LogSim is a process modelling and mining tool. It aims to help in creating executable business process models. LogSim is a business process modelling tool with integrated, full-fledged simulation facilities. In LogSim you not only build business models, but you execute them, you let them run while the software gathers all kinds of metrics to help you statistically evaluate your models for effectiveness, cost, speed etc. LogSim helps in detecting bottlenecks in your current solution so that you can improve your business performance.

Business process models are important in many contexts. They are used for optimising businesses, as tools for reaching a more mature level, as input for creating SOA’s, etc. Most service oriented platforms, such as Tibco, Cordys, SAP and WCF or BizTalk require some kind of process models, and they usually offer their own environment in which you can specify them. However, those environments do not help in actually measuring the performance of your solution. Before you can do that with any level of accuracy, you need to implement the process, run it for a minimum amount of time, and gather metrics. With LogSim you don’t need to do that. With LogSim you can build your models, play with them, and when you are satisfied your solution can perform according to your requirements, you can implement them on your platform of choice.

Currently LogSim is a proof-of-concept. The product does not offer functionality you might wish, such as export to BPEL. Also conformance to BPMN 2.0 is not fleshed out yet, although it is on the roadmap for version 4. It still is a one-man project so our resources are (yes, we are looking for funding) limited. However we believe we already offer more, especially in creating high-quality process models, than others, so we invite you to give LogSim a try.

History

LogSim originated from a research project that took place in 1992-94 on the University of Groningen, The Netherlands, at the Faculty of Management Science. It was a collaborative effort with Moret, Ernst & Young Management Consultants, that wanted to provide their clients with a tool that enabled them to model their business processes. For this they had developed a modelling language called Logistic Model and Notation (LMN), but they had envisioned that “just” making models and pictures was not enough: to build robust business process models you need to be able to run them, using a robust simulation environment that supports scenario’s, stochastic events, statistical monitoring etc.

In the course of 1993 and 1994 various versions of LogSim were produced, showing a gradual increase in understanding the power of combining a modelling language (which already existed and was used extensively, although only as a notational tool) with a simulation environment (which also already existed in the form of SmallSim, a generic simulation environment that I developed). The 1.x versions were multiplatform and were actually developed on a Macintosh. The 2.x versions were Windows-specific for various reasons that seemed valid at the time.

In 2011 we rebooted the project, which resulted in LogSim 3 (a new version still using the original Logistic Model and Notation). We also started work on LogSim 4 (which does not use LMN anymore as the notation but a somewhat extended version of BPMN 2.0). These versions are again multiplatform and available on all supported platforms.

Currently the focus (as far as focus goes…) is on LogSim 3, so that we will flesh-out the simulation engine and statistical tooling before changing the notation.

How to get it

The software will be made available again soon.

Goals of LogSim

LogSim wants to help in creating realistic models. Realistic models are models that reflect the actual complexity of real-world processes, in which stochastic events, uncertainty, waiting lines, in other words, chaos, make most models not optimal in practice.

Also LogSim wants to help the modellers in adapting models to reach goals like cost reductions and optimal efficiency. For this a model is not enough: you need to evaluate whether you are really choosing the correct strategies to reach those goals by playing with the different options and seeing the result of your decisions. Adapting your models should be as lightweight and simple a process as possible.

LMN (the modelling language used) was a remarkably prescient predecessor (10 years ahead!) of BPMN (Business Process Model and Notation). Most of the building blocks of LMN can be mapped to BPMN elements very nicely, as we will explain below. But LogSim contains on top of these modelling facilities a complete and robust simulation environment. Using this environment you can actually run your processes, and validate them against realistic dynamic behaviour, such as waiting lines, stochastic arrivals etc. With LogSim you build executable business process models.

This is different from the executability BPMN offers, and the various vendor tools contained in the products mentioned earlier, such as Tibco. That is because of the high level of realism that is close to what you will encounter in the “real” world. Executing a BPMN model in a service bus or on a process automation platform is actually something completely different than simulating that model.

LogSim 4

Alpha version!

Work is in progress for version 3 and 4. While version 3 will still only support LMN, version 4 will use a somewhat extended version of the BPMN 2.0 notation and syntax in order to be more compliant to the standard as defined by the OMG. BPMN as such lacks a few essential elements to make it complete for simulation purposes, such as Waiting Lines, so we needed to find a solution for those issues that are as much in line with BPMN as possible.

The extensions that we deemed necessary for BPMN to be really simulatable are:

  1. Waiting Lines (there is no concept of queing in BPMN)
  2. Stateful tokens (instead of the virtual placeholders in BPMN)
  3. Stochastic distribution durations for sequence flows (instead of the instantaneous flow in BPMN)
  4. Stochastic DMN in Activities (and the connected Gateways)

Probably some more will pop up in the test runs.

LogSim 4 will make it possible to build executable and simulatable BPMN models. Many environments and tools like BPSim promise this, we know, but we believe we make a difference, because our approach is different. Simulation in LogSim is not an add-on to a modelling tool or language, but the modelling tool is built on top of a robust simulation environment, containing robust simulation features such as:

  1. run scenario building with bounded parameters
  2. unattended runs and information gathering
  3. industry-strength stochastic capabilities (probability distributions, random number generators)
  4. run-in delays
  5. and more!

The same simulation engine was used in another tool we created earlier, SmallSim.

We hope to distribute the software free-of-charge again. Beta versions will be made available for those brave souls willing to participate in early reviews.

LogSim 3

We are currently mainly working on version 3. This is a new version of LogSim, however still using the original LMN for its language. We do this because we believe that the modelling language LMN (short for Logistic Model and Notation) still has many interesting features, and because at the moment our time-resources are very limited and bringing out this version can be done relatively fast, while the work for version 4 will take longer. Remember, LogSim is a spare-time, one-man project at the moment!

LogSim 3 is multiplatform and available on all supported platforms. In this case multiplatform really means what it says: it run bit-identical on Windows, Mac, Linux and many others. You can open and work on the same model on all those platforms.

LogSim 3 uses a business process modelling language called the Logistic Model and Notation (LMN). This language may be regarded as a predecessor (but in a way also as the next generation…!) of BPMN with some interesting features that made it especially suitable for simulating complex logistic processes. The main distinguishing feature is that LMN contains the concept of Waiting Lines, with full stochastic support.

The walkthrough below is using the LogSim 3 engine. The screens are produced on a Macintosh running Mac OS X, but LogSim 3 will run on all supported platforms, and will adopt the look-and-feel of the platform you use. The screen shots are already several years old, modern versions look somewhat better I assure you!

Workorder

Logistic Model and Notation takes objects (defined with various properties) as central concepts, and models the flow of these objects through many stations or Transformators (see below) in a business.

These objects are called Workorders. In the real world these can be documents, actual products on which work is done (reflected by the changing attributes of the products during the flow), or abstract objects that you only use as placeholders for the process flow steps. The closest corresponding concept in BPMN is the Token, however there is a fundamental difference with BPMN in that in LMN a Workorder is stateful and can have an indefinite set of properties which can and will be modified during their processing in the execution flow, while in BPMN a token is stateless. And what is even more powerful: the modification of these properties is specified in stochastic terms as well!

External Agent and Event

The objects (or work orders) flowing through the model are instantiated by External Agents, that send Events into the organisation we are modelling. These events effectively instantiate these objects, with default properties. This is similar to BPMN in that most processes are triggered from external pools by Message Flows. External Agents can also subscribe to receive Events from any element within the model, on certain specified moments.

Event Actions

Objects (the Workorders) are created by Events. We can see here a specific kind of event called an Initial Event called SWIFT-payment, creating objects every 25 minutes according to a stochastic distribution (in this case an exponential distribution).

Event Attributes

The objects created by this Event have a set of characteristics, that you can see above. LogSim 3 supports 2 attributes, and an unlimited number of them (as long as the total of percentages is 100 percent of course). Each of these can optionally be assigned a due date, that is we specify that in order to comply with our business rules these objects should be processed after this period of time.

Event Quantities

Finally we can specify how many objects or Workorders are created. Again, this quantity can be specified as a stochastic distribution. In this case just one, as a fixed quantity, is produced. But it could just as well have been any distribution quantity.

External Agents correspond to the Triggers of BPMN (usually in the form of Messsage Flows triggering a Message Start Event), originating from other parts of the process environment, called (External) Pools in BPMN.

Waiting Line

These workorders are first dumped into the first Waiting Line, SWIFT-payment arrival in this case. Waiting Lines are interesting, and very important modelling constructs that are completely overlooked in BPMN. They represent the stochastic robustness of modelling in LogSim: it is precisely the stochastic aspect of reality that many modelling techniques fail to address properly, and which LogSim handles well. Waiting Lines do the trick.

BPMN explicitly chose to model only processes, and views waiting lines (or queues) as data structures. This is why there is no explicit way to model waiting lines in BPMN. The only way to “simulate” them is to create a specific Pool to dump the Workorders in, and processes that add to and take from the Pool, or use Data Stores to synchronise processes.

For the simulation facilities in LogSim Waiting Lines are very useful because they will gather any statistics you deem interesting, which helps a lot in determining the optimal process configuration.

Waiting Line

In the Waiting Line shown here, there are no Workorders waiting, but since we have done a few runs many Workorders have passed through the waiting line. Click on the bar chart button and you will see a histogram of the period Workorders have been waiting inside the waiting line. We can also see that 168 Workorders have gone through this Waiting line:

Waiting Line Histogram

This information can be useful in determining whether your business process is optimal or not.

Transformator

Each Transformator is a metaphor of a workplace, where one or more Transformers (think of Transformers as your work force, active agents such as people, departments or machines) work on these objects. This work is modelled as changing one or more of the object’s properties, as explained above. This is an extremely powerful feature, and the most distinguishing one of LogSim, which significantly exceeds the possibilities in BPMN.

Transformators correspond to the Activities of BPMN.

Transformator

A Transformator is a certain activity or work on an object during a specified time interval, here a Uniform stochastic distribution between 0.3 and 0.6 minutes. Time spent in an Activity in BPMN cannot be specified.

During the work in this specific example no attributes are modified. However, these could be added to the list of transformations under “Actions”. Objects can have any number of basic scalar attributes, such as Strings, Numbers or Dates.

The actual work is not done by the Transformators, but by Transformers. This is analogous to the resources or capacity of an organisation. An Organisation (the containing entity in which the business processes are run) defines any number of them. These Transformers, or the work force, can be persons or other actors or roles such as computers or machines. They are allocated to one or more Transformators using a time schedule with priorities. For example, a desk employee is allocated to the front office during work hours with a priority of 60%, but to a manager with a priority of 70%, which implies that when the manager needs the employee, he or she is forced to stop working on front-office tasks. The activities performed by the Transformers (the workers) can be monitored and statistically analysed, in order to be able to make statements about the efficiency of a process scenario.

The next illustration shows the list of Transformers of an Organisation. The selected Transformer named “Central Computer 1” is allocated to two Transformators, “Receive SWIFT-payment” and “Book on VV-account”. This is done by selecting from a drop down list of currently defined Transformers (the blue rectangles in the model).

Transformers

Properties window for the workers in the model. This shows the list of workers, as well as the list of scheduled transformations.

Logistic Regulator

What makes LogSim special, and able to closely resemble the complex reality you want to model, is the fact that you can specify special stochastic flow controllers, called Logistic Regulators. There are four kinds:

  • Switch: switching on certain conditions (effectively branching the flow, or routing it)
  • Splits: splitting objects to enable object copies to go through a different flow
  • Joins: joining objects at specified points in the flow
  • Timer: switching on time

These components correspond almost one-to-one to the various Gateways in BPMN with some extra functionality:

Switch

Above you can see a Logistic Regulator, here a Switch, which routes objects (or work orders) based on a stochastic distribution. When the draw (similar to throwing a dice) from the distribution indicates success the object or Workorder is routed to the node named “prepare, relay”. A Switch corresponds to the combination of an XOR gateway in BPMN, and a previous Decision Task, because the Switch actually decides about the gate that is activated. Also the Data-based behaviour in BPMN is different: there the Gateway routes based on information created and provided in the previous Activity (actually the BPMN standard says “any data known to the Process Instance”). Here the Switch routes based on either properties of the Workorder, or on a probability. This makes it much easier for example to model failure incidents that occur statistically.

The flow of objects is continuously monitored, which enables you to analyse statistically what happens. Running different models can be used as a simple scenario analysis.

Below you can see an example of a finished model, modelling international payments through SWIFT.

Example LogSim Model

Splits and Joins

The application window showing a completed logistic model from which the previous illustrations are generated. The triangles are other flow controllers, called Splits, which effectively split the flow of control. Usually these Splits are later combined in controllers called Joins. The Join effectively combines objects into one new object, while keeping the accumulated flow information about the original objects. No information is lost.

Splits and Joins correspond closely to the concepts of Parallel Gateway, and AND Gateway in BPMN.

Timer

A LMN concept that has not been discussed so far is a Timer. This is a special Logistic Regulator that does not switch on attributes or probability distributions, but on time. For example, in weekends a support request is handled in a different way.


Click on the thumbnail below to see a finished model of a business process, in this case the processing of foreign bank SWIFT payments to a Dutch bank.

Complete LMN model of SWIFT payments

LMN Elements

  • External object: Objects external to the main process (external pools). Corresponds to external (black box) pools in BPMN.
  • Waiting Line: Queues for stateful tokens, from which Transformators take their next job. No corresponding element in BPMN (unfortunately!).
  • Transformators: The workplace, where Transformers do their thing. Weak correspondence with BPMN Lanes, although the concept of Transformers in LMN is closer.
  • Join: A Logistic Regulator merging objects from several workflows Closely corresponds to a merging gateway (both Parallel and OR).
  • Split: A Logistic Regulator splitting objects across several workflows. Closely corresponds to a splitting Parallel or OR Gateway in BPMN.
  • Switch: A Logistic Regulator containing logic to decide how to route objects. Corresponds to a combination of a Decision Task and an XOR Gateway in BPMN.
  • Workflow: The route taken by objects. Corresponds to a Sequence Flow in BPMN, with some additional properties such as latency (stochastically defined).
  • Event: Message sent out to external objects. Corresponds to a Message Flow in BPMN, with the constraint that this is only for messages out of the main pool to an external pool.
  • Message: Message sent in from external objects. Corresponds to a Message Flow in BPMN, with the constraint that this is only for messages from an external pool to the main pool.
  • Timer: A Logistic Regulator for routing based on time. Decides which route to switch to based on time. Corresponds to an intermediate timer event in BPMN.

Random number generation

Random generator

Every stochastic aspect in the system is controlled by high quality random number generators. Both the random number generators as the stochastic distributions are built using the latest scientific research in that area.

You use the random generator to specify which one you want to use for a specific stochastic process. Several algorithms are available, and you can also provide your own file with “real” random numbers, or numbers obtained from event logs.

Random generators are the input for the broad spectrum of stochastic distributions that control the real events in the model:

Overview of stochastic distributions in LMN

  • Bernoulli: A model for the set of possible outcomes of any single experiment that asks a yes–no question This distribution is used to model a set of yes/no decisions, in the case that each decision is completely independent of the previous one. The Binomial distribution is a special case of the Bernoulli, for a set of 1.
  • Binomial: A model for a single yes/no decision A decision needs to be made, usually a succes/failure experiment. A series of such experiments would result in a Bernoulli distribution.
  • Exponential: The amount of time until some specific event occurs The Exponential distribution or the Gamma distribution is used to predict the wait time until future events occur. For example: The time between arrivals at an airport or train station. Or the amount of time until an equipment failure. Or even the amount of time until the next earthquake. The difference between the gamma distribution and exponential distribution is that the exponential distribution predicts the wait time until the first event. In contrast, the gamma distribution indicates the wait time until the kth event.
  • Fixed: Not really a distribution! – it is a fixed value The same value is returned each time a sample is drawn from the distribution.
  • Gamma: The wait time until the kth event Rarely used directly but it is an important distribution because it is used to generate other distributions that have much more use (e.g. Beta, Pearson etc). Closely resembles Weibull, which is often a better choice because it is much faster.
  • MErlang:
  • Normal:
  • Poisson:
  • Triangular:
  • Truncated Normal:
  • Uniform:
  • Weibull:
  • Any custom distribution: LogSim allows you to specify any custom distribution, or import a set of variables, for example collected from real-world observations

LogSim has originally been developed in close cooperation with Ernst & Young Management Consultants. The original (that is, before we started working on the tool) Logistic Model and Notation (LMN) is published by the project members from Ernst & Young, as far as I know only available in Dutch:

Tags:

Leave a Reply

Your email address will not be published. Required fields are marked *