Architecture

In the paradigm used in the tool, the system modeled is represented by a collection of objects which interact by sending and receiving messages. The internal state of each object is represented by a set of integer-valued variables.

Events and messages and their associated conditions and actions define the behavior of an object. Events are generated spontaneously by an object, provided that the conditions specified when the object was defined are satisfied. These conditions are Boolean expressions evaluated using the current state of the object. Messages are just an abstraction used to represent the interaction among objects, and are delivered (and reacted to) in zero time. When either an event is executed or a message is received, a set of actions specified by the user is taken with a given probability distribution. As a result of an action taken, the object's state may change and messages may be sent to other objects in the model.A detailed explanation of how messages and events are executed in the Tangram-II simulator is given in section 4.

The tool provides a graphical interface to aid the user when creating a new object type or defining a model. It is based on the public domain TANGRAM Graphic Interface Facility TGIF, developed at UCLA [#!tgif!#].

The current version is implemented in C/C++ and has several solvers for transient and steady state analysis of performance and availability metrics. A robust simulator is also part of the solution methods and supports rare event simulation.

In order to create a new model, the user may employ different types of objects that can be retrieved from a library previously created, or he/she may build new object types from scratch. The objects are parameterized and instances can be declared with actual parameters specified for each instance.

The user starts building the model of a system by instantiating objects from the Object Library using the Modeling Environment module, provided that all types of objects needed are already in the library. Otherwise, new object types are first created and stored in the Object Library. Then, the objects are parsed and data structures are created for each object instance. New object types are defined and specified in terms of a graphical representation and their associated behavior. The interface of the tool displays a template to aid the user in the construction of a new object type.

After the model is built, mathematical description of the model can be generated (e.g a Markov Chain) and an appropriate solution technique can be used to obtain steady state and/or transient measures of interest. If the model is not Markovian or cannot be handled by the analytical solvers, then the simulator can be used to obtain different measures of interest.

Figure [*] shows the Modeling Environment Interface. The icons on the left hand side of the figure show the options available to the user:

  1. Specification of a model (Model Specification Module);
  2. Mathematical model generation (Mathematical Model Module);
  3. Analytical solution of the model (Analytical Model Solution Module);
  4. Measures-of-interest generation (Measures of Interest Module);
  5. Traffic descriptors computation (Traffic Descriptors Module);
  6. Simulation (Simulation Module);
  7. Hidden Markov Models (HMM Module).

Figure: The Modeling Environment.
\includegraphics[width=4in]{figuras/modelenv.eps}

Guilherme Dutra Gonzaga Jaime 2010-10-27