This post is also available in: Nederlands (Dutch)
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 mining tool. It aims to help in creating executable business process models. LogSim is a business process modelling tool with integrated 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 evaluate your models for effectiveness, cost, speed etc. The models help 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 support for 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.
LogSim originated from a research project that took place in 1993-94 on the University of Groningen, The Netherlands, at the Faculty of Management Science. It was a collaborative effort with Moret, Ernst & Young, a management consultancy organisation 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 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 an 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 on my programming site: https://www.robvens.st
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 unusable 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 elsewhere. 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 is actually something completely different than simulating that model.
Work is in progress for version 3 and 4. While version 3 will still only support LMN, version 4 will use an 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 a much in line with BPMN as possible.
The extensions that we deemed necessary for BPMN to be really simulatable are:
- Waiting Lines
- Stateful tokens
- Stochastic distribution speeds for sequence flows
- Stochastic DMN in Activities and 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 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:
- run scenario building with bounded parameters
- unattended runs and information gathering
- industry-strength stochastic capabilities (probability distributions, random number generators)
- run-in delays
- and more!
The same simulation engine was used in another tool we created, 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.
We are 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 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!
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 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 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!
Each Transformator is a metaphor of a workplace, where one or more Transformers (think of Transformers as your work force) 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, and significantly exceeds the possibilities in BPMN.
Transformators correspond to the Tasks of BPMN.
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. External agents can also subscribe to receive events from any element within the model, on certain specified moments.
Objects are created by Events. We can see here an initial event called SWIFT-payment, creating objects every 25 minutes according to a stochastic distribution (in this case an exponential distribution).
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 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.
Finally we can specify how many objects or work orders 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 Events of BPMN, originating from other parts of the process environment, called Pools in BPMN.
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.
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.
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:
This information can be useful in determining whether your business process is optimal or not.
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. During the work in this specific Transformator 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 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 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 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).
Properties window for the workers in the model. This shows the list of workers, as well as the list of scheduled transformations.
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. These objects can do things to your object flow like:
- 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
These components correspond almost one-to-one to the various Gateways in BPMN.
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 is routed to the node named “prepare, relay”.
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.
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.
Click on the thumbnail to see a finished model of a business process, in this case the processing of foreign bank SWIFT payments to a Dutch bank. The following object types can be recognised:
- External objects
- Waiting lines (queues)
- Transformators (where Transformers do their thing)
- Joins (a Logistic Regulator combining objects from several workflows)
- Splits (a Logistic Regulator splitting objects across several workflows)
- Switches (a Logistic Regulator containing logic to decide how to route objects)
- Workflows (this is the route taken by objects)
- Events (messages sent out to External objects)
- Messages (messages sent in from External objects)
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.
On the right side you can see the random generator window, where you can specify the random generator 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:
- Truncated Normal
- and various custom distributions
LogSim has originally been developed in close cooperation with Ernst & Young Management Consultants. The Logistic Model and Notation (LMN) is published by the project members from Ernst & Young, as far as I know only available in Dutch:
- Drs. N.A. Brand, ing. J.R.P. van der Kolk: Werkstroomanalyse en -ontwerp: Het logistiek vriendelijk ontwerpen van informatiesystemen
- Werkstromen volgens Nico Brand & Edwin Platier