SIMULATION USING BUILDING BLOCKS Edwin Valentin Alexander Verbraeck

SIMULATION USING BUILDING BLOCKS
Edwin Valentin
Alexander Verbraeck
Delft University of Technology
Faculty of Technology, Policy and Management
Systems Engineering Group
P.O. Box 5015, 2600 GA Delft, The Netherlands
ABSTRACT
In this paper we sketch how the use of building blocks
provides added value for improving the effectiveness of
simulation studies. Research conducted by other groups
regarding building blocks is in our view not yet sufficient
for successful application in the field of discrete event
simulation. In addition the sets of building blocks provided by simulation vendors do not provide the added
value we expect. To improve the effectiveness of simulation studies we identified a set of requirements for the
architecture of building blocks. It was possible to implement this architecture in existing simulation environments. In a case for modeling business processes in
banking environments we used a set of building blocks
that has been designed according to the mentioned requirements, to illustrate the improved effectiveness.
1 INTRODUCTION
Contrary to what we have been expecting for a long time,
discrete event simulation is an instrument which is not
used on a day-to-day basis by decision makers, even for
data-intensive decisions that require quantitative analysis.
We see the (perceived) low effectiveness of simulation
studies as the major reason for the lack of use of simulation as a problem solving instrument. This low effectiveness is in our opinion caused by several reasons. Examples are that the insight provided by the first models leads
to new questions of decision makers which the models
cannot answer, that the modeled situation changes before
the simulation study could be finished, that simulation
experts and decision makers speak and think in different
‘languages’ and that the simulation expert lacks background knowledge of a domain to correctly solve the
problem using simulation.
Looking at the construction of discrete event simulation models, we notice that this process has a highly repetitive character. Especially when developing models in
the same domain or for the same organization, similar
modeling constructs are being used over and over again. It
seems very logical to structure and package these repetitive processes, and make them available for the modeler
for repeated use. Using the standard simulation statements, it can take quite long to create a complex model,
but with larger, pre-constructed blocks, the modeler
should be able to create the model in less time. Our hypothesis is that the concept of these pre-constructed
blocks will also improve the effectiveness of simulation
studies for discrete events simulation models. To stay
independent of the software engineering concept of ‘components’, we will use the more neutral term ‘building
blocks’ in this paper. Building blocks are very close to
objects in object orientation, but they possess improved
functionality for aggregation, and much attention is paid
to fully specifying the interfaces of the building blocks.
In the second section of this paper we will show how
building blocks are described in literature and how they
are currently implemented in some of the popular discrete
event simulation tools. We notice that building blocks are
used, but we observe all kinds of different architectures.
In the third section of the paper we evaluate the different
architectures used in the current tools and we deduce a set
of requirements for an overall architecture of discrete
event simulation building blocks. Section four shows that
this new architecture satisfies the identified requirements.
Finally we will illustrate our architecture for building
blocks using a case study for business process redesign in
a financial environment.
2 BUILDING BLOCKS IN LITERATURE AND
PRACTICE
As mentioned before, the concept of building blocks is not
completely new. Several architectures for simulation
building blocks can be found both in literature and in current simulation tools.
2.1
Building blocks in literature
Analogous to the development of component based software (Allen & Frost, 1998; Szyperski, 2001; Herzum &
Sims, 2000; Heinemann & Councill, 2000), simulation
model builders are using components to construct their
models. When constructing a model of a complex system
that in reality consist of several components from different vendors, e.g. a part of a factory with a number of ma-
chines, it would be ideal to construct a simulation model
of that factory from simulation components that have a
one-to-one match with the machines on the factory floor
(Sarjoughian & Cellier, 2001). Ideally, these components
can be downloaded from the web-sites of the machine
vendors and can be plugged into any simulation model
because of standardized interfaces. At the moment, however, these standard interfaces and “open” simulation environments hardly exist, and it will take several years
more before even part of this vision is realized. Even
worse, we need to think about the architectures of these
building blocks that would allow such advanced use.
Fishwick (1998) and Pegden et al. (2001) provide first
ideas for these interfaces and functionality of components,
but the existing commercially available simulation tools
do not yet allow the use of these types of components.
The research performed by Kasputis and Ng (2000) is an
example of possibilities for building blocks with the current technologies. They illustrate the possibility of reaching a higher effectiveness in their simulation studies by
using a set of components for the simulation models
which they developed for models of the US Navy. However, their solution is not easy to generalize, because these
components are fixed within one organization, and require
simulation software of the US Navy.
2.2
Building blocks in practice
In practice we see that a lot of the current discrete event
simulation software tools provide some kind of building
blocks. Building blocks can be applied on three different
aggregation levels. At the bottom level, we see generic,
domain independent building blocks like a queue and a
resource, actually wrapping the concepts of the simulation
language in a user-friendly way. At the second level,
building blocks are used as part of the simulation tool
focussing on a special domain. In addition, some tools
offer the possibility for users to develop or extend building blocks according to their own, very specific, needs.
Examples of sets of building blocks for a special domain are the material handling building block sets of
AutoMod, the Contact Center and Factory Analyzer libraries of Arena and the MedModel library of Promodel.
These tools and packages are all described in Peters et al.
(2001). The user construction of building blocks for a
special domain is for instance available within the simulation tools Arena, eM-plant and Extend.
3 REQUIREMENTS FOR THE ARCHITECTURE
OF BUILDING BLOCKS
The requirements for simulation building block libraries
come from two different sources. The first set of requirements is mainly based on literature and is aimed at supporting to improve the effectiveness of simulation studies.
The second set of requirements follows from experiences
with the architecture of available simulation libraries,
which we tested in several projects (Verbraeck et al.
1998; Versteegt & Verbraeck, 2001; Saanen, 2001; Verbraeck & Valentin, 2001).
3.1
Requirements based on literature
The first set of requirements for the architecture of simulation building blocks is based on an analysis that looks at
the possible contribution of building blocks to the improvement of the effectiveness of a simulation study. The
steps for a simulation study of Banks (1998) have been
used as a basis to look for possible improvements.
REQ 1:Usable within several simulation studies
The development of building blocks is a time-consuming
task. No matter how many experience a simulation analyst
has, it would be very uncommon to get the full pay-back
of the extra investment for creating building in one simulation study. Therefore, the building blocks should be applicable in more than one simulation study.
REQ 2: Applicable in current simulation tools
The available commercial simulation tools have taken
years to develop and to reach a high-level of user friendliness. Even though better founded concepts like the
DEVS-framework (Zeigler et al., 2000) and pure object
oriented simulation (Balci et al., 1997) are available, the
average simulation expert is not able to use these frameworks. He/she is more convenient using one of the currently available commercial simulation tools (Swain,
2001).
REQ 3: Support easy model development
The development of a simulation model is more than just
the coding of the model. If possible, the building blocks
should also ease the phases of conceptualization of the
system, before the model construction can start, and give
support with the gathering of data during the model construction phase (Banks, 1998).
REQ 4: Resulting models should be understandable for
problem owner
Simulation models are not just meant to generate numbers, they should also provide insight in the system. We
see the necessary insight on two different levels. One
level is that the structure of the model is understandable
for the problem owner, i.e. that he/she recognizes the
processing of the simulation model. The other level is that
the working of the system can be assessed, e.g. through a
visualization the problem owner understands. In addition,
the quantitative output always remains important. The
user will almost always use the output in the decision
making, but not before credibility has been assured
through understanding of the working of the model.
REQ 5: Resulting models should be ready for VV&A
After the step model construction, simulation studies are
followed by verification and validation before the simulation run can be performed (Banks, 1998). The models we
construct using building blocks should enable us to do
easy and fast verification and validation of the model. The
accreditation is already part of requirement 4.
REQ 6: Easy adaptation
Systems that are modeled in a simulation study, usually
evolve over time. This means that when the simulation
models are used for answering questions over a prolonged
period, the model builder should be able to adapt the
models to the system changes with minimal effort. The
building blocks should be capable of handling these
changes, and if possible easing the change process.
REQ 7: Maintainable and extendable
In addition to easy changing the models built with building blocks, the building blocks themselves should also be
easily adaptable. Even though a set of building blocks
might seem perfect for the first study, next projects might
require different, or more often, extended functionality of
the building blocks. The building block architecture
should support easy changes or extensions in the building
blocks.
3.2
Requirements based on experiences with current
simulation tools
When we have a closer look at libraries in existing simulation tools, we observed some positive and negative
characteristics. The experiences with these characteristics
in different projects triggered us in defining the following
requirements for our own architecture:
REQ 8: Domain specific blocks with a manageable size
In several of the existing building blocks, we see a limited
set of very powerful building blocks with lots of features
that can be switched on or off. Usually these building
blocks have extensive user interfaces. This indicates that
the building blocks contain functionality that is not required every time, which means overhead in the building
blocks, overhead for the user, and problems with maintenance. Still we want to be able to have building blocks
that show some domain specificity and that are not as
general and small as a queue or a resource.
REQ 9: Not closed, but also not completely open
Building blocks in the tool Arena are compiled and you
cannot have a look inside. The building blocks of eMplant are completely open and you can change each attribute value and call every internal function. Both options
have their disadvantages, so a trade-off needs to be made.
REQ 10: Flow of objects and method calls
The flow oriented simulation tools like Arena, Witness
and AutoMod are clear and easy to use for visualization.
The object oriented tools like Extend and eM-plant handle
a lot by method calls, which makes them powerful for
complex coding. A trade off needs to be made between
the object oriented advantages of using methods and the
flow oriented advantages of clarity and animation.
4 A NEW ARCHITECTURE FOR SIMULATION
BUILDING BLOCKS
In the previous section we defined the requirements for an
architecture for simulation building blocks from a technical standpoint (based on available simulation tools) and a
process-oriented standpoint, based on the steps in a simulation study. In this section we will first of all explain how
we face the technical requirements and by that explain
how the process-oriented requirements are met as well.
4.1
Relationships between building blocks
So far we just spoke about individual building blocks. In
practice, a consistent library of building blocks is usually
needed to carry out a simulation project. One of the questions for the architecture is which mechanisms are important for providing the relationship between building
blocks. In one of our projects for simulating passenger
movements in airport terminals, we assumed that inheritance would be a major relationship between different
types of building blocks. Inheritance would decrease the
efforts in maintenance and provide the model builder with
a clear structured set of building blocks. In this project,
we defined a large set of building blocks, that included
check-in counters, gates, souvenir shops, and security
checks, for modeling the infrastructure of the airport. In
our abstract view, we noticed an inheritance structure to
handle all these building blocks, see Figure 1 for a small
subset using UML (Rumbaugh et al, 1999).
GenericArea
<abstract>
0..n
CompoundArea
SingleArea
CheckInCompoundArea
GateCompoundArea
Gate2CompoundArea
Figure 1:
WalkArea
Walk2DArea
LeisureArea
ConveyorArea
ShopArea
SittingArea
HandlingArea
HandlingGroupArea
HandlingStateArea
HandlingScheduleArea
Inheritance structure of building blocks
While performing simulation studies with this inheritance structure, we found out that we more or less
satisfied requirements 1 to 6, but maintenance and extendibility (REQ 7) were extremely hard. Because of the
many different characteristics in the infrastructure building blocks, the ‘pure’ inheritance tree we started with,
provided more and more problems over time. Parts needed
to be duplicated between building blocks far away in the
tree, and in other cases abstract artifacts that were not
meant to be included in the models had to be entered high
in the inheritance tree. This made it harder for the model
builders to understand the models as well. As a result we
had a closer look at the concepts behind the areas.
What we observed over and over again was that
smaller repetitive parts existed within our building blocks,
that were not meant to be handled as a single part of a
simulation model. In fact these were smaller building
blocks, that were not meant to be visible to the model
builder, but only to the building block developer. These
so-called building block elements are the finer structure
that the building block developer uses to create, extend,
and adapt the model building blocks.
4.2
Private versus public
To handle the difficult requirement that a building block
should be as open as possible for reasons of clarity, yet as
closed as possible to avoid that the user damages the
building block (REQ 9), we see clear interfacing as a good
solution, combined with “hiding” of information. The
open / closed issue is mostly an problem because of accessing information or methods a user is not allowed to
use or change. By defining specific interfaces around a
building block, this problem is solved. Secondly, information within the building block should be split up in
private and public information. In the current simulation
tools some technical opportunities are already available to
do this, such as creating a special sub-frame in eM-plant
and using a unique-hidden operand within Arena. Thirdly,
the public information and functions of a building block
should be reachable using the most basic calls provided
within the simulation language, so the building blocks can
easily cooperate with the statements of the used simulation environment, which is not hard to achieve according
to our experiences (shown in the example in section 5).
4.3
4.4
Domain specific sets of building blocks
We see a set of model building blocks, consisting of a
larger set of building block elements as a tool that will
support in simulation studies within a certain problem
domain. However, within each problem domain one can
always identify one or more studies that cannot be solved
in an effective way using the proposed set. As a result we
limit ourselves not only to a problem domain, but within
that domain to a set of issues we can solve.
To improve the use of the set of model building
blocks, we take three things into account:
• Model building blocks are representations of items
one can clearly identify within a problem domain
(helps to satisfy REQ 1).
• The user interface – both the terms in the forms to fill
in and the animation provided – contains the terminology of the problem domain of the problem owner
(satisfies REQ 4).
• Development of new model building blocks using
(new) building block elements will lead to the ability
to solve new issues within the identified problem domain (solves REQ 6).
In the simulation studies for airport terminal modeling, we
saw that the aggregation mentioned in section 4.1 could
be used over and over again, to define larger aggregations,
which in the end became very project specific. All the
concepts mentioned above helped to achieve this goal.
One example for the airport building blocks a project specific library for terminal evacuation, which could easily be
built on top of the terminal specific building blocks,
sometimes by replacing the control building block elements by “evacuation specific” controls.
Insta nce s in sim ula tion m od e l
(p roje ct sp e cific)
Proje ct sp ecific
b uild ing b locks
D om a in sp e cific
b u ild in g b locks
Flow and objects
It is our experience in many discrete event simulation
projects that problem owners think in terms of flows
(REQ 10). They notice a passenger flow through an airport, a document flow through an organization, or flowing
envelopes or packages through a mail sorter. In order to
stay close to this view, we usually support this flow in the
building block structure, but we use object oriented
mechanisms for control. Especially in the control, more
algorithmic features are useful, which are best provided
by object oriented mechanisms. The building block elements for control can then be used as element in the flow
supporting model building blocks. By using this combination, the models visualize the flow that the problem
owner can easily recognize (REQ 4).
B uild ing b lo ck e le m e n ts
(g e ne ric an d d om a in sp e cific)
level of aggregation
Both the building blocks and the building block elements possess a very well specified and clear interface to
the other building blocks or building block elements.
What we found out is that composition or aggregation
might be a more important structuring mechanism than
inheritance.
When we implemented this structure for the airport
terminals, we were also able to maintain our building
blocks. We took this even a step further and defined inheritance trees of building block elements, but not anymore for the model building blocks. Because we knew
what types of building block elements together form a
model building block, we defined an interface for the
model building block, that supports the user in configuring the model building block by choosing the building
block elements of which it is built up. This possibility not
only improved the easy model construction (REQ 3), but
also enabled models to be more easily recognized by the
problem owner, thanks to the detailed knowledge available in the building block elements (REQ 4).
Sim ula tion conce p ts a nd
sta te m en ts p ro vid e d b y th e
sim ula tion lan g ua g e
Figure 2:
Inheritance structure of building blocks
As a result, we found out that the architecture of model
building blocks we developed, also supported the usability
within several simulation studies (REQ 1). Our libraries
were implemented in current simulation tools, so we also
satisfied REQ 2.
4.5
Remaining advantages of the architecture
Projects carried out with these architectures of simulation
building blocks showed that some of the features that we
chose provide even more advantages than we thought on
beforehand.
One of the advantages of the clear one-to-one representation of the object system in the simulation building
blocks is that models can be built by people less experienced in the use of a simulation environment, because
they are just copying components they observe in their
own system into the simulation model. There is, of course,
also a danger attached to this: a model is a reduction of
the depicted system, and anyone not aware of that can
deduce invalid conclusions from running the model. Another advantage that surfaced during our studies is that
data gathering – usually one of the most cumbersome
tasks of a simulation study – is much easier, because the
information needed from the modeled system is defined
by the information to be entered in the pre-defined and
carefully designed (user) interfaces of the different model
building blocks. All observations show that we succeed to
support easy model development (REQ 3).
REQ 5 looks like a tough requirement. In the studies
we carried out, we found that VV&A was greatly helped
by the fact that each building block is usually extensively
tested before handing it over to model builders. Therefore,
modeling errors have not to be searched in the detailed
simulation code, but rather in the entered data and the
higher-level model structure. Furthermore, the building
block interfaces are designed to show problem domain
terminology, so expert validation and accreditation are
easier than projects where models have been built from
low-level simulation building blocks that usually show
terms understandable for simulation experts, not domain
experts. A final advantage is that the building block usually include collection of statistics for the most common
performance indicators in the domain. This saves time in
providing the client with the first results.
5 CASE STUDY INTERNATIONAL BANKING
Ayad and Sol (2002) have identified several alternatives
for business models for banks. As part of the research,
they investigated two different international payment
systems in two different countries, which are part of the
same banking organization. The main question they
wanted to answer was: “Will our new business model
provide the cost savings we expect?”. Several variables
that influence the performance indicators for this question
have been identified: location of databases, accessibility
of information, allocation of tasks to countries or a central
organization, personnel allocation to perform tasks and
order of executing tasks.
To be able to give quantitative answers to these questions, a simulation model had to be constructed. Because
of the required model flexibility, the high number of tasks
and processes and the further use of the model in later
stages of the research, the choice was made to use building blocks. A second reason was that we expected to use
these types of building blocks in more business process
related (research) projects. After preliminary research, we
defined four high-level types of building blocks:
• Actors who perform tasks, but do not know anything
about the rest of the process.
• Databases that store information about the customer
and about payments / documents / generic items.
• Task-allocators that assign tasks to be performed to
actors who have the right competencies to perform
the required tasks.
• Process steps which are all kinds of actions performed on the payment/document/item, like “Claim
actor” , “Perform task”, “Retrieve from database” and
“Check consistency with database”.
These building blocks have been implemented in the
Arena simulation language with several variants for each
building block. Figure 3 shows the conceptual model for
the “Capture Order Process”, one of the many processes
in the banking study. Figure 4 shows a screen dump of the
model part of the same process, that was created using the
building blocks.
Arrive of payment
Select actor to
perform "Input
payment"
Select actor to
perform "check
input"
Claim actor for
task "Input
payment"
Claim actor for
task "check
input"
Perform task
"Input payment"
Check information of
the 'payment
Country A' database
Add information to
the 'payment
Country A'
database
Release actor of
task "Input
payment"
Figure 3:
Perform task
"check input"
WRONG
Adjust information
of database
'payment
Country A'
CORRECT
Release actor of
task "Input
payment"
Conceptual example bank process
The building blocks were created in Arena, and as the
implementation shows, construction within Arena was
successful. The model building blocks are very close to
the standard building blocks that Arena provides. The
main difference is the way actors are handled. In Arena it
is determined immediately which instance of a “resource”
should be used for a process. In these models we use a
task allocator to uncouple the document flow and the actors. In this way we succeed in fulfilling the requirement
about flow and control (REQ 10).
Figure 4:
Implementation of “Capture Order Process”
6 CONCLUSIONS
In this paper we identified the major success factors for
applying building blocks in discrete event simulation
studies. These were aggregation rather than inheritance,
separation between building block elements and building
blocks, using well defined interfaces, hiding of private
variables and attributes, showing the flow in the building
blocks, but controlling in a more OO and algorithmic way,
and creating a hierarchy for domain specificity. The resulting architecture can be implemented on top of existing
commercially available simulation tools, and has been
successfully applied in different domains for a number of
simulation studies. Further research will focus on testing
the development and use of building blocks by simulation
experts who are not yet familiar with this architecture.
ACKNOWLEDGEMENTS
The authors acknowledge the support of the BETADE
research program for funding, and want to thank Nadia
Ayad for providing the material for the banking case.
REFERENCES
P. Allen, S. Frost. Component-Based Development for Enterprise Systems. Cambridge University Press, 1998.
N. Ayad; H.G. Sol. “Development of New Geographically Distributed Business Models for Global Transactions”. In: R.H.
Sprague, J F Nunamaker (eds.); Proceedings of the 35th
Hawaiian International Conference on Systems Sciences,
IEEE, 2002, CD-ROM, 8 p.
O. Balci; A.I. Bertelrud; C.M. Esterbrook; R.E. Nance. “The
Visual Simulation Environment Technology Transfer” In:
S.Andradottir, K.J.Healy, D.H.Withers and B.L. Nelson
(eds). Proceedings of the 1997 Winter Simulation Conference. IEEE, 1997, p.1323-1329.
J. Banks. Handbook of simulation; Principles, Methodology,
Advances, Applications and practice. John Wiley & Sons,
1998.
G.T. Heinemann, W.T. Councill. Component-Based Software
Engineering. Addison-Wesley, 2001.
P. Herzum, O. Sims. Business Component Factory. OMG, 2000.
S. Kasputis and H.C. Ng. “Composable simulations” In: J.A.
Joines et al.(Eds.), Proceedings of the 2000 Winter Simulation Conference, p.1577-1584.
C.D. Pegden; V. Kachitvichyanukul; J.O. Hendrikson; R.G.
Ingallsand B.W. Schmeiser. “Simulation environment for the
new millennium (panel)” In: B.A. Peters et al. (Eds.) Proceedings of the 2001 Winter Simulation Conference, IEEE,
2001. p.541-547.
B.A. Peters; J.S. Smith; D.J.Medeiros; M.W.Rohrer. Proceedings of the 2001 Winter Simulation Conference, IEEE, 2001.
J. Rumbaugh, I. Jacobson, G. Booch. The Unified Modeling
Language Reference Manual. Addison-Wesley, 1999.
Y.A. Saanen. “Designing Software for Robotised Terminals” In:
Proceedings AAPA Conference, 2001.
H.S. Sarjoughian; F.E. Cellier (Eds.). Discrete Event Modeling
and Simulation Technologies: A Tapestry of Systems and AIBased Theories and Methodologies. Springer-Verlag, 2001.
J.J. Swain, “Power Tools for Visualization and Decision Making”. MS/OR Today, February 2001, p. 52-63.
C. Szyperski. Component Software, 2nd edition. Addison
Wesley, 2001.
A. Verbraeck; E.C. Valentin. “The use of building blocks to
enhance flexibility and maintainability of simulation models
and simulation libraries” In: N. Giambiasi, C. Frydman
(Eds.), Proceedings ESS’2001 – 13th European Simulation
Symposium 2001, p. 973-979.
A. Verbraeck; Y.A. Saanen; E.C. Valentin. “Logistic Modeling
and Simulation of Automated Guided Vehicles”. In: A. Bargiela, E. Kerckhoffs (Eds.) Simulation Technology: Science
and Art. 10th European Simulation Symposium and Exhibition. 1998. p. 514-519
C. Versteegt; A. Verbraeck. “Concepts for safety control for the
concurrent use of infrastructure in intelligent transport systems using AGVs”, In: Proceedings 8th World Congress on
Intelligent Transport Systems, 2001, CD-ROM, 8 p.
B.P. Zeigler; H. Praehofer, T.G. Kim. Theory of Modeling and
Simulation : Integrating Discrete Event and Continuous
Complex Dynamic Systems. Academic Press, 2000.
AUTHOR BIOGRAPHIES
Alexander Verbraeck is an associate professor in the
Systems Engineering Group of the Faculty of Technology,
Policy and Management of Delft University of
Technology, and a part-time full professor in supply chain
management at the R.H. Smith School of Business of the
University of Maryland. He is a specialist in discrete
event simulation for real-time control of complex
transportation systems and for modeling business systems.
His current research focus is on development of generic
libraries of object oriented simulation building blocks in
C++ and Java. Contact information:
<[email protected]>
<www.tbm.tudelft.nl/webstaf/alexandv>
Edwin Valentin is a researcher in the Systems
Engineering Group of the Faculty of Technology, Policy
and Management of Delft University of Technology. His
specialty is the development of domain-dependent generic
discrete-event simulation libraries. Edwin participates in
the BETADE research program on developing new
concepts for designing and using building blocks in
software engineering, simulation, and organizational
modeling. Contact information:
<[email protected]>
<www.tbm.tudelft.nl/webstaf/edwinv>