Documente Academic
Documente Profesional
Documente Cultură
1 Modeling Overview
Modeler provides a comprehensive development environment supporting the
modeling of communication networks and distributed systems. Both behavior
and performance of modeled systems can be analyzed by performing discrete
event simulations. The Modeler environment incorporates tools for all phases of
a study, including model design, simulation, data collection, and data analysis.
This section is designed to allow reading at two levels: detailed and conceptual.
For more detailed information, merely read the paragraph text, as you would a
traditional text. To cover the information more quickly, remain at a conceptual
level by reviewing only tables, diagrams, bullet list headings, and special key
concept paragraphs, as shown below. If you require more detail on a particular
topic, read only the paragraphs in the corresponding section.
Key Concept—To quickly cover the material in this section, simply skip over
paragraph text, reviewing only tables, diagrams, bullet list headings, and key
concept sections such as this one.
• Authors—do not use Modeler to conduct their own simulation studies, but to
prepare an environment for others to do so. Modeler is used to create
customized models that are correct for a particular type of end user.
Modeler Architecture
Modeler provides a comprehensive development environment for modeling and
performance-evaluation of communication networks and distributed systems.
The package consists of a number of tools, each one focusing on particular
aspects of the modeling task. These tools fall into three major categories that
correspond to the three phases of modeling and simulation projects:
Re-Specification
Analysis
Model Specification
Model specification is the task of developing a representation of the system that
is to be studied. Modeler supports the concept of model reuse so that most
models are based on lower level models developed beforehand and stored in
model libraries. Ultimately, however all models are based on the basic concepts
and primitive building blocks supplied by the Modeler environment.
Specification Editors
Modeler supports model specification with a number of tools, called editors,
which capture the characteristics of a modeled system’s behavior. Because it is
based on a suite of editors that address different aspects of a model, Modeler
is able to offer specific capabilities to address the diverse issues encountered in
networks and distributed systems. To present the model developer with an
intuitive interface, these editors handle the required modeling information in a
manner that is parallel to the structure of real network systems. Therefore, the
model-specification editors are organized hierarchically. Models built in the
Project Editor rely on elements specified in the Node Editor; in turn, when
working in the Node Editor, you use models defined in the Process Editor and
External System Editor. The remaining editors are used to define various data
models, typically tables of values, that are later referenced by process- or
node-level models. This organization is reflected in the following list.
• ICI Editor—Create, edit, and view interface control information (ICI) formats.
ICIs are used to communicate control information between processes.
Figure 1-2 Graphical Editors for Network, Node, and Process Models
Node Editor
Project Editor
Process Editor
Modeling Domains
The Network, Node, Process, and External System modeling environments are
sometimes referred to as the modeling domains of Modeler because they span
all the hierarchical levels of a model. The remaining specification editors
correspond to no particular modeling domain because they mainly support the
three principal editors. As mentioned earlier, the capabilities offered by the
modeling domains mirror the types of structures found in an actual network
system; the issues addressed by each domain are summarized in the following
table and then briefly described in the remainder of this section.
A network model may make use of any number of node models. Modeler does
not place restrictions on the types of nodes that can be deployed in a
communication network; instead it adopts an open approach whereby modelers
can develop their own library of node models to use as building blocks for
network models. There are no limits on the number of node models or node
instances that a network model can contain (other than those imposed by
workstation memory limitations).
The Project Editor can provide a geographic context for network model
development. You can choose locations on world or country maps for the
elements of wide-area networks and can use dimensioned areas for local-area
networks. In addition to providing an intuitive environment for deploying the
components of a network model, this feature provides an intrinsic notion of
distance, which allows automatic calculation of communication delays between
nodes.
The basic object used to build network models is the fixed communication node.
In Modeler, this is the only type of node available. Fixed nodes can be assigned
arbitrary locations, but during a simulation their location may not change. The
optional Wireless functionality adds capability for mobile and satellite nodes, as
described in Chapter 2 Modeling Wireless Networks on page WM-2-1. Mobile
nodes can be assigned predefined trajectories that specify their positions as a
function of time throughout a simulation run; similarly, satellite nodes are
assigned orbits that prescribe their motion. With the Wireless functionality,
simulations can involve all three types of nodes.
Most nodes require the ability to communicate with other nodes to do their
function in a network model. Several different types of communication link
architectures are provided to interconnect nodes that communicate with each
other. Modeler provides simplex (unidirectional) and duplex (bidirectional)
point-to-point links to connect nodes in pairs and a bus link to allow broadcast
communication for arbitrarily large sets of fixed nodes. The Wireless
functionality adds the capability for fixed, satellite, and mobile nodes to
communicate with each other via radio links. While bus and point-to-point links
are modeled as explicit objects that you must create, radio links are dynamically
evaluated based on characteristics of the communicating nodes. As will be
described in later sections, each type of link can be customized by editing
parameters or supplying new logic for the underlying link models. The following
figure shows some typical network model diagrams involving each of the
supported link types.
Key Concept—Network models consist of nodes and links that can be deployed
within a geographical context. Modeler comes with fixed nodes and
point-to-point and bus links; the Wireless functionality adds mobile and satellite
nodes and radio links.
Figure 1-3 Network Models with Point-to-Point, Bus, and Radio Links
Point-to-Point Links
Bus Links
Radio Links
Node Domain The Node Domain provides for the modeling of communication
devices that can be deployed and interconnected at the network level. In
Modeler terms, these devices are called nodes, and in the real world they may
correspond to various types of computing and communicating equipment such
as routers, bridges, workstations, terminals, mainframe computers, file servers,
fast packet switches, satellites, and so on.
Node models are developed in the Node Editor and are expressed in terms of
smaller building blocks called modules. Some modules offer capability that is
substantially predefined and can only be configured through a set of built-in
parameters. These include various transmitters and receivers allowing a node
to be attached to communication links in the network domain. Other modules,
called processors, queues, and external systems, are highly programmable,
their behavior being prescribed by an assigned process model. Process models
are developed using the Process Editor.
A node model can consist of any number of modules of different types. Three
types of connections are provided to support interaction between modules.
These are called packet streams, statistic wires (also sometimes referred to as
streams and statwires, respectively), and logical associations. Packet streams
allow formatted messages called packets to be conveyed from one module to
another. Statistic wires convey simple numeric signals or control information
between modules, and are typically used when one module needs to monitor
the performance or state of another. As will be described later in this manual,
both packet streams and statistic wires have parameters that may be set to
configure aspects of their behavior. Logical associations identify a binding
between modules. Currently, they are allowed only between transmitters and
receivers to indicate that they should be used as a pair when attaching the node
to a link in the Network Domain. Figure 1-5 shows a typical node model that
includes the three types of connections.
Figure 1-5 Node Model Employing Packet Streams, Statistic Wires, and Logical
Associations
packet stream
statistic wire
logical association
The modeling paradigm selected for the Node Domain was designed to support
general modeling of high-level communication devices. It is particularly well
suited to modeling arrangements of stacked or layered communication
protocols. In the Node Editor, a device that relies on a particular stack of
protocols can be modeled by creating a processor object for each layer of that
stack and defining packet streams between neighboring layers, as shown in the
following diagram for the familiar TCP/IP stack.
Process Domain As indicated in the description of the Node Domain, queue and
processor modules are user-programmable elements that are key elements of
communication nodes. The tasks that these modules execute are called
processes. Because it has a set of instructions and maintains state memory, a
process is similar to an executing software program. Processes in Modeler are
based on process models that are defined in the Process Editor. The
relationship between process model and process is similar to the relationship
between a program and a particular session of that program running as a task
(in fact, the term process is used in many operating systems as well). Just as
nodes created in the Project Editor are instances of node models defined with
the Node Editor, each process that executes in a queue, processor, or esys
module is an instance of a particular process model.
Proto-C models allow actions to be specified at various points in the finite state
machine. The actions can be general in nature because they are expressed as
C or C++ statements. Because Proto-C is focused on modeling protocols and
algorithms, it also provides an extensive library of over 300 Kernel Procedures
(also known as KPs) that can be invoked to do commonly needed actions.
Kernel Procedures are grouped into packages of related functions. The
following table shows some of the capabilities provided by the Kernel Procedure
libraries.
Id Identification of objects
Topo Query of model topology (for example, automatic discovery and configuration)
A process model can define parameters, called attributes, that are used after it
is instantiated as a process to customize aspects of its behavior. This technique
fosters reuse of process models for various purposes by avoiding hardwired
specification where possible. For instance, a process model that performs
window-based flow control, may be defined with the window size as an attribute,
so that it is reusable in different situations requiring different values of the
window size.
External System Domain The esys module mentioned in the description of the
Node Domain encompasses the mechanism for communicating with other
simulators and allowing them to interact with a discrete event simulation. This
interaction, called a cosimulation, means that the two simulators can exchange
data while running synchronously. Part of the role typically played by a module
inside a node is instead played by a simulator external to Modeler. For esys
modules, the process model controls Modeler’s interaction with the external
system. Esys modules have all the capabilities of both processors and queues.
Network
Node
Module
External
Process System
Definition
To the simulation, an external system is a black box. While Modeler can feed
data to the external system and receive data from it, the other simulator has
complete control of the data after it arrives.
• Process model—The process model of the esys module places values onto
esys interfaces and reads values placed onto the esys interfaces by the
external simulator. It serves as the interface between the external code and
the rest of the model.
Key Concept—When Modeler runs a cosimulation, its interface with the external
code is an external system definition (ESD), represented in the node model by
an esys module. ESDs use esys interfaces to send and receive data when
communicating with external code.
Objects Objects represent entities that are part of the system of interest. In
general, an object is a component, or building block of a model and the object
is said to be part of that model. So for example, a processor module is an object
that is part of a node model. An object generally plays one or more of the
following roles in a model:
• Specify behavior
• Create information
• Respond to events
Objects are created by various mechanisms in models. Many result from explicit
specification by the user via graphical or programmatic methods. So for
example, a link object may be created in a network model by physically dragging
it from the Project Editor’s object palette. Other objects are created
automatically by the system. For example, subqueue objects are automatically
created for a queue object. Similarly, when a node object is created, the objects
within the node are also implicitly assumed to exist. Finally, during simulation,
some objects are created dynamically by the system or by the model. A process,
for example, can be considered an object and may be created at any time by
another process to do a task. Dynamic objects are different in many ways than
the statically created objects; in particular they offer more specialized interfaces,
allowing them to be manipulated in a more efficient manner. Most of the material
in this section does not apply to dynamic objects.
Key Concept—Objects are the building blocks of models and appear in each of
the modeling domains. Some objects are created explicitly by the user; others
are implicitly created by Modeler. During a simulation, certain types of objects
can be created dynamically.
Value
Properties
Attributes are data items used to configure an object and represent the control
that the object’s designer has made available to the user. Each attribute has a
name that allows it to be referenced uniquely within an object. Each attribute
also provides a storage area for the information that is “assigned to it”. This
information is called the attribute’s value. Finally, an attribute has a set of
properties that specify the rules related to its use, as well as several additional
functions. Major attribute properties are enumerated in the following table.
Data Type Class of data storage. Modeler supports a variety of numerical and text
storage types, as well as a compound attribute whose value is another
object.
Default Value Provides a value that can be used in the absence of explicit
assignment.
Range For numerical attributes, limits the set of acceptable values to specified
bounds.
Symbol Map Lists values and names that represent them. Supports
pre-configuration and more meaningful presentation of value choices.
Also can be used to limit value choices to a restricted set.
Models Many models (network, node, and process) consist largely of objects.
At the same time, most objects have a model that confers upon them some or
all of their characteristics. The object is an instance of the model because there
is a many-to-one relationship between a model and the objects that refer to it.
The model defines an object class to which all related objects belong.
Some objects are fundamental and have an implicit model that cannot be
changed by the user. For example, state objects in process models are simple
objects whose only means of external control is provided by their attributes.
Their characteristics and behavior are defined and documented and these
constitute their model; however, their fundamental behavior and structure are
always similar and cannot be changed. Therefore they have no “model”
attribute.
However, several key objects offer a “model” attribute that allows their
fundamental behavior and structure to be controlled externally. In fact, altering
an object’s model can even cause it to acquire a completely new interface.
Indeed, these objects are fundamentally quite generic, and most of their
characteristics are obtained from the model to which they refer. The following
table lists the objects that support a “model” attribute.
In each of the model types listed in Table 1-5, a model interface is specified.
One of the characteristics transferred to an object from its model is its set of
attributes. The model dictates which new attributes will be acquired by the
object, and what their names and values will be. Similarly, it can specify values
for attributes that intrinsically belong to the object and can also cause these to
become hidden from the user. Therefore, the model can completely control the
attribute interfaces of the object.
Model Attributes and Attribute Promotion With both models and attributes
introduced as concepts, the notion of a model attribute can be defined. In
addition to describing objects, attributes can be associated with models to
represent a parameter of the model. This was mentioned previously with regard
to process models. The importance of providing a parameter for a model lies in
increasing the generality of the model. By varying the values of the model’s
parameter, a user can alter model behavior without modifying the model. This
approach is in contrast to hardwiring the value of the attribute into the model,
which gives the user no control over the model. In a “hardwired” model, the user
would need to duplicate the model and change the attribute value to achieve a
change in behavior. This means that multiple, specialized versions of the model
would need to be maintained, which is clearly undesirable. The model attributes
mechanism allows the same models to be “reused” without increasing the
model inventory.
In concrete terms, model attributes are specified as part of a model, but they
appear on objects. They are acquired by an object at the moment that the
object’s model is specified. The model’s attributes are added to other attributes
that are intrinsic to the object, as shown in the following figure.
Object “O”
object refers to model “M”
Model = “M”
A
Object Attributes B
C
D
X
Y
Z
Model “M”
object acquires attributes A
A,B, C, and D Model Attributes B
C
D
Key Concept—Model attributes are inherited by objects that refer to the model.
They become part of the object’s attribute list.
There are many forms of communication that are supported by the Modeler
modeling environment. However, there is one fundamental structure, called
packet, that provides the most commonly used mechanism for information
exchange. Packets are objects that contain formatted information that can
change dynamically. They can be stored by and transferred between objects in
each of the modeling domains. In the Node Domain, packets typically travel
over streams; in the Network Domain, they are typically transferred over links.
Packets are essentially composed of three main storage areas. The first area
can be viewed as a list of user-defined values called packet fields; the second
area consists of a set of predefined values that are used by the simulation
system for tracing and accounting purposes; and the third area contains
transmission data attributes that are used to support customizable models for
communication links.
User-Defined Fields
1 dst_addr integer 9 16
4 ack integer 0 1
owner 19 2 11.505
id 116 4 11.509
(Note: Due to space limitations this chart shows the same number
of items in each category, but in actuality, both user-defined fields
and TDAs can have a variable number of entries; also, not all
predefined fields are shown.)
such as routing tables, are transferred across networks. The information field
type is provided for convenient support of bulk or filler data in a packet, which
can be important to accurately model packet size; information fields contain no
values.
• Unformatted packets have no fields when they are created; fields are added
one at a time and can only be referenced by numeric index, not by name.
Unformatted packets are typically useful only for very simple applications
and the recommended approach is to define packet formats for most models,
particularly when several different types of packets are used in a network.
• Value vector packets do not contain user-defined fields. Instead, they contain
a sequence of binary numbers representing data passed between
simulators. Value vector packets are used primarily with cosimulations.
Packets can be used to transfer data at all levels of a network model via several
communication mechanisms. Processors, queues, and other modules forward
packets within nodes via packet streams, which were introduced earlier in this
section. Packet streams may introduce delay and also queue packets until a
destination module is ready to accept them. At the network level, packets are
sent between nodes over communication links. Communication links use
customizable underlying models to model delays and errors in packet
transmission. A third packet transfer mechanism, called packet delivery,
supports transfer of packets between modules, regardless of their location in a
network, without requiring any physical connection to exist between them.
Key Concept—Although the generic term “packet” is used, Modeler can use
packets to represent other forms of communication as well. In stream-oriented
communications, for example, packets may be used to represent key signalling
information, allowing the connection to be modeled in terms of its duration,
bandwidth requirements, etc.
• Output Vectors
• Output Scalars
• Animations
Output Vectors The types of data that can be collected have several different
forms. The most common result extracted from a simulation is called an output
vector, which is simply a collection of pairs of real values, called entries. An
output vector, often called simply a vector, contains an arbitrarily-sized list of
entries collected during one simulation run. The first value in the entries can be
thought of as the independent variable and the second as the dependent
variable. These are referred to as the abscissa and the ordinate, respectively.
In the majority of cases, the independent variable of a vector is simulation time,
which increases monotonically as a simulation’s execution progresses. In other
words, most vectors represent the value of some quantity of interest as it varies
over time. Under certain conditions, it is interesting to create vectors that have
abscissa variables other than time; this topic is described later in this manual.
The following figure depicts a typical data set contained in a vector. Note that it
is possible for a vector to store multiple ordinate values with the same abscissa
value.
time Q Size
0.0 0.0
1.0 2.0
1.0 1.0
1.3301 0.0
5.0 1.0
5.0 2.0
5.0 3.0
10.0 2.0
10.6602 3.0
...
998.0 54.0
Scalars are typically only of limited use when taken as individual data points.
Instead, the usual practice is to combine scalars recorded over multiple
simulations to form a graph or curve that indicates how a system variable varies
as a function of other system parameters. Both the dependent and the
independent system variables, used to generate such a graph, are recorded as
scalars. For example, a typical graph generated in performance analysis is
Throughput vs. Offered Load, which indicates how well a network is able to
deliver the data that it is requested to deliver, as the amount of data increases.
Here the Offered Load scalar is an independent variable that is varied as an
input to each simulation. Throughput is measured over the course of the
simulation and its final value (because it is already an average) is recorded as
another scalar.
When Throughput is graphed against Offered Load, each point in the graph is
formed by taking an abscissa and an ordinate value from the respective scalar
statistics within the same simulation run. Each point of the graph usually
corresponds to a new simulation run. The following figure shows a typical plot
generated from scalar values.
Key Concept—Discrete event simulations can generate animations that you can
view during the run or afterwards. Several forms of predefined or automatic
animations are provided (packet flows, node movement, state transitions, and
statistics). You can also program your own detailed, customized animations.
probes when running a simulation. Each probe indicates that a particular scalar
statistic, vector statistic, or form of animation should be collected. Probe lists are
defined using the Choose Results operation in the Project Editor. You can also
define advanced forms of probes in the Probe Editor, which is described later in
this manual.
Analysis
The third phase of the simulation project involves examining the results
collected during simulation. Typically, much of the data collected by simulation
runs is placed in output vector files. Modeler provides a graphing and numerical
processing environment in the Results Browser of the Project Editor.
Numerical Data Analysis The Project Editor allows output vector files to be
selected and individual or multiple vectors to be loaded and displayed as traces.
Traces are ordered sets of abscissa and ordinate pairs, called entries (traces
are similar in structure to vectors). In addition, scalars from the same file can be
plotted against each other to view the results of multi-simulation parametric
studies. After scalars are plotted this way, their data points have been grouped
as ordered pairs and the resulting data set is treated as a trace. Two graphs,
one generated from vector data and the other from scalar data, are shown in
Figure 1-13.
Traces are held and displayed in analysis panels. A number of display options
are available to help you customize the data’s presentation. These include
multi-level zoom, background colors, trace colors, plotting style, and labeling.
The Results Browser is linked to the Filter Editor, which supports the use of
mathematical filters to process vector or trace data. Mathematical filters are
defined as hierarchical block diagrams based on a predefined set of calculus,
statistical, and arithmetic operators (a typical filter is shown in the diagram
below). Predefined or user-defined filters can be invoked when specifying an
analysis panel and applied to combinations of data from output vector files and
existing analysis panels, to generate and display new traces.
Modeler Editors
Modeler presents its capabilities in the form of distinct environments, called
editors. Each editor allows you to do some set of related functions within a
window that is contained in the overall Modeler graphical environment. The
following table lists Modeler’s editors and identifies the purpose of each.
Project Editor Specify network topology and configure nodes and links.
Choose results, run simulations, and view results.
External System Definition Editor Build interfaces between Modeler and external code for
use during cosimulation.
Generic Data File Editor Create and edit .gdf text files.
ICI Editor Create, edit, and view interface control information (ICI)
formats.
Packet Format Editor Specify packet format, defining the order, data type, and
size of fields contained within the packet.
Project Editor
The Project Editor is used to construct and edit the topology of a communication
network model. It also provides basic simulation and analysis capabilities. The
Network Domain in which the Project Editor works is the highest modeling level,
in the sense that it encompasses objects that are defined in the other modeling
domains. The network model therefore specifies the entire system to be
simulated. This section summarizes the objects used in the Project Editor and
the operations that it provides.
Simplex point-to-point link Supports a unidirectional flow of packets between two fixed
nodes.
Duplex point-to-point link Supports a bidirectional flow of packets between two fixed nodes.
Bus link Provides broadcast connectivity for a set of fixed nodes. Nodes
may transmit packets onto the bus, receive packets from the bus,
or both.
For a complete listing of operations and an in-depth explanation of their use, see
Project Editor on page ER-3-1.
Create objects Individual subnetwork, node, and link objects can be created by
dragging and dropping them from a palette (see figure above).
Multiple palettes can be open and each can be configured to
show only certain models, based on a keyword search.
Import topology and traffic Use information from sources such as VNE Server to
automatically build a network model and set conversation pair
traffic and link loads.
Verify links Verifies that links are connected correctly for their node and link
characteristics.
Select map Displays the selected map, cropped to the borders of the
current subnetwork. Maps are provided with Modeler and are
based on the CIA World Data Bank.
Node Editor
The Node Editor is used to specify the structure of device models. These device
models can be instantiated as node objects in the Network Domain (such as
computers, packet switches, and bridges). In addition to the structure, the node
model developer defines the interface of a node model, which determines what
aspects of the node model are visible to its user. This includes the attributes and
statistics of the node model. This section summarizes the objects used in the
Node Editor and the operations that it provides.
Transmitter Allows packets to be sent outside of the node’s boundary via attached
links. Two types of transmitters correspond to supported link types:
point-to-point and bus.
Receiver Allows packets to be received from other nodes via attached links. Two
types of receivers correspond to supported link types: point-to-point and
bus.
Packet Stream Connects an output stream of a source module to the input stream of a
destination module, allowing packets to be communicated and buffered
between them.
Statistic Wire Connects an output statistic of a source module to the input statistic of a
destination module, allowing numerical data to be communicated.
Optional active notification of value changes via interrupts at the
destination module.
Logical Association Indicates a coupling between two modules. Currently supported for
appropriate transmitter-receiver pairs only to specify that they be kept
together when attaching the node to a link.
Esys Module General-purpose and programmable like processors and queues, but
can also specify an ESD model that defines the behavior of the module.
Contains both a process model and an external system definition (ESD).
Edit model attributes Attributes that characterize the node as a whole (as opposed
to a particular object within it) can be associated with the
node model. These attributes automatically appear in the
node model’s interface.
Edit model attribute interfaces The attribute interface of a node model defines the attributes
that a user of the node model has access to. It also defines
how they are presented, value constraints and choices,
documentation, default values, and several other properties.
This operation allows you to hide attributes that should not
appear in the model’s interface.
Promote node statistics Statistics associated with modules can be promoted to the
level of the node model, which means that they become
associated with the node as a whole. This is useful to
rename statistics and to hide underlying node model
structure.
Process Editor
The Process Editor is used to specify the behavior of process models. Process
models are instantiated as processes in the Node Domain and exist within
processor, queue, and esys modules. Processes can be independently
executing threads of control that do general communications and data
processing functions. They can represent functionality that would be
implemented both in hardware and in software. In addition to the behavior of a
process, the process model developer defines the model’s interfaces, which
determines what aspects of the process model are visible to its user. This
includes the attributes and statistics of the process model. This section
summarizes the objects used in the Process Editor and the operations that it
provides.
Model-level information “blocks” Several blocks of text specify additional components of the
process, including: declaration of state (persistent), and
temporary (scratch) variables; user-defined functions that
can be called by the process’ states and transitions; code
to be executed upon process termination; and declaration
of globally-scoped variables, data structures, etc.
Set initial state Designates a particular state as the state where a process
should begin execution when it is created.
Edit model attributes Process model attributes are parameters of the process,
allowing some aspects of its behavior to be controlled
externally. These attributes form part of the model’s interface
and are scoped locally to the process’ instance.
Edit simulation attributes Simulation attributes are parameters needed by the process,
but scoped to the overall system model. That is, the same
attribute is shared by multiple processes and has one value
throughout the entire simulation.
Edit statistics Process models declare statistics that they are responsible
for computing. These statistics can be scoped locally
(contributed to only by this process) or globally (shared
across the entire system model). Declaring statistics makes
them available in the Node Domain for statistic wire
connections and in the Probe Editor for statistic collection
specification.
Declare external object files The code in process models may rely on externally defined
functions and data. Each process model declares those
external object files that it requires to be included in the
simulation program.
Compile process model Generates a C/C++ file that integrates all graphical and code
elements of the process model. Then compiles the C/C++ file
to prepare it for inclusion in a simulation program. Reports
compilation errors if any.
Probe Editor
The Probe Editor is used to define data collection requirements prior to
executing a simulation. Because most simulation models would generate very
large volumes of data if all possible outputs were recorded, Modeler relies on
the user to explicitly designate what is of interest. Each desired output is
enabled by creating an object called a probe and configuring it appropriately.
Groups of probes are saved as probe lists so that they can be used collectively
when running simulations. Several types of probes are used to collect different
types of simulation results. This section describes each type of probe.
Node statistic Applies to a node object at the network level, or to a module within a node.
In both cases, the source of the statistic is a module, but as mentioned
earlier, module statistics may be promoted to the node level. Supports
collection of both built-in and user-defined statistics.
Link statistic Applies to a link object at the network level. Links generate only built-in
statistics (computed by Modeler).
Global statistic Collects statistic values from multiple objects located anywhere in the
network. The name of the statistic serves as a “rendezvous” point for the
sources.
Simulation attribute Records a scalar statistic for the simulation attribute. Simulation attributes
are viewed as input parameters of the system. Their values, while known in
advance, are often needed in post-simulation analysis so that they can be
related to simulation outputs.
Custom animation Enables custom animation programmed within process models and link
models.
The Simulation Sequence Editor allows any number of separate simulation runs
of various models to be specified as simulation sets. The attributes for each
simulation set are specified in the Simulation Set dialog box.
The External System Definition Editor enables you to create and modify external
system definitions. An external system definition (ESD) specifies (via a
simulator description file) how the cosimulation should be built and defines the
esys interfaces that will exchange data with the external simulator. Each esys
interface has a number of attributes you can set. The External System Definition
Editor enables you to create and edit ESDs.
• Information fields model bulk data in terms of its size, without concern for
actual content.
Create new field Create graphical representations of new fields and place
them in the workspace.
Edit field attributes View or modify a field’s attributes. Changes made to one field
can optionally be applied to an entire set of selected fields.
Edit packet attributes View or modify attributes pertaining to the entire packet.
• Link model
Most parameter models take the form of a functional relationship (in which case
they are edited graphically) or a table of information (in which case they are
edited in dialog boxes). This is depicted below using the PDF model type. This
section provides a brief description of each type of parameter model.
Link model dialog box A link model represents a class of link objects that can be
instantiated in a network model. It defines attribute interfaces for
point-to-point and bus links. Each link attribute can be set in
advance to correct values, and if necessary hidden from view.
Interface control information (ICI) dialog box ICI Formats: An ICI (Interface Control Information) is a data
structure that is used to establish a formal interface between
modules that communicate via some form of interrupt. In a general
sense, an ICI is simply a structure of state information that can be
associated with an interrupt at the interrupt source and then
extracted at the interrupt destination. Typically, ICIs are used to
pass indications and requests between protocol layers. ICIs
consist of individual data components called attributes. Attributes
may be of type integer, double, or structure.
Probability density function (PDF) graphical A PDF is a mapping of real values of a random variable to their
associated probability densities. PDFs are used to assign values
to the various distribution attributes of packet sources. They are
also commonly used to generate random variable values within
process models (such as to implement random time-out intervals
for retransmissions or choose random destinations for packets).
The customization of the modeling environment seen by the end user is made
possible by Modeler. Using Modeler, sophisticated models of nodes and
processes can be created. These models can then be prepared as a library for
use by the end user who is less familiar with the detailed operation of the
system. To the end user, these models appear as off-the-shelf components; he
is protected from the underlying complexity.
Model Security An author can protect models so that only authorized users can view or use them. Models
are encrypted and unusable when shipped. They can then be unlocked with three security
levels, supporting different requirements to protect information. Only the author can provide
keys to unlock models.
External Tool Support Authors can augment Modeler’s user interface by adding action buttons, menus, and menu
items, or by defining actions that can be performed when users click on objects. The
processing associated with each action is specified using a scripting language, which
includes support for invoking external programs, as well as importing data from those
programs.
Asynchronous Commands Modeler can implement commands that are asynchronously received from external
programs via interprocess communication. These actions include opening tools, loading
models, graphical positioning, and modification of objects. This allows models to be
updated in real-time as the state of other applications change.
Attribute Interfaces The key to productizing models is tailoring the interface that they present to the user. For
node and process models, attributes and statistics constitute the majority of the visible
interface. Attributes can be customized in derived models (without changing base models)
by renaming them, pre-assigning their value and hiding them. Their properties can be
controlled including allowing you to: restrict ranges; offer meaningful symbolic values;
specify default values; and customize documentation. Similar capabilities are provided for
the statistics offered by a model.
Application Program Interface Modeler offers an Application Program Interface (API) called EMA (External Model Access).
EMA allows your programs to access (create and/or parse) models. This means that you
can automatically generate models to reflect information that is stored elsewhere (for
example, in Network Management databases). You can also extract information from
models and simulation output files to use them in external applications. Because EMA is a
published interface, you can do robust integration of Modeler and other tools that will
survive new software releases.