AN OBJECT-ORIENTED VISUAL SIMULATION ENVIRONMENT FOR QUEUING NETWORKS

Similar documents
THE MODULAR SIMULATION LANGUAGE (MODSIM) -A POWERFUL TOOL FOR COMPUTER SIMULATION

Topics in Object-Oriented Design Patterns

Object Oriented Discrete-Event Simulation with OOSimL CS 4632

An Empirical Performance Study of Connection Oriented Time Warp Parallel Simulation

MODELING AND SIMULATION OF THRESHOLD ANALYSIS FOR PVFS IN WIRELESS SENSOR NETWORKS

An XML-based DEVS Modeling Tool to Enhance Simulation Interoperability

What are the characteristics of Object Oriented programming language?

CIS 1.5 Course Objectives. a. Understand the concept of a program (i.e., a computer following a series of instructions)

Spemmet - A Tool for Modeling Software Processes with SPEM

A DEVS LIBRARY FOR LAYERED QUEUING NETWORKS

A UML SIMULATOR BASED ON A GENERIC MODEL EXECUTION ENGINE

HOW AND WHEN TO FLATTEN JAVA CLASSES?

A STUDY OF OBJECT ORIENTED ANALYSIS AND DESIGN

Introduction to Object Oriented Analysis and Design

CS SOFTWARE ENGINEERING QUESTION BANK SIXTEEN MARKS

The modularity requirement

Modeling and Verification of Networkon-Chip using Constrained-DEVS

Sungkyunkwan University, Suwon 16419, Republic of Korea 2 College of Software Sungkyunkwan University Suwon 16419, Republic of Korea

CODING TCPN MODELS INTO THE SIMIO SIMULATION ENVIRONMENT

Virtual Plant for Control Program Verification

Parametric Behavior Modeling Framework for War Game Models Development Using OO Co-Modeling Methodology

Parallel Discrete Event Simulation

Classes and Inheritance in Actor- Oriented Models

Software Design Patterns. Background 1. Background 2. Jonathan I. Maletic, Ph.D.

OBJECT-ORIENTED SOFTWARE DEVELOPMENT Using OBJECT MODELING TECHNIQUE (OMT)

Architectural Patterns

In this Lecture you will Learn: Design Patterns. Patterns vs. Frameworks. Patterns vs. Frameworks

CoSMoS: A Visual Environment for Component-Based Modeling, Experimental Design, and Simulation

Organization of User Interface Software

Design Patterns. Architectural Patterns. Contents of a Design Pattern. Dr. James A. Bednar. Dr. David Robertson

Introduction to Electronic Design Automation. Model of Computation. Model of Computation. Model of Computation

AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz

«Computer Science» Requirements for applicants by Innopolis University

Chapter 1 Modeling Overview

Design Specification of Cyber-Physical Systems: Towards a Domain-Specific Modeling Language based on Simulink, Eclipse Modeling Framework, and Giotto

REVIEW AND OUTLOOKS OF THE MEANS FOR VISUALIZATION OF SYNTAX SEMANTICS AND SOURCE CODE. PROCEDURAL AND OBJECT ORIENTED PARADIGM DIFFERENCES

Design Pattern What is a Design Pattern? Design Pattern Elements. Almas Ansari Page 1

Hardware Description Languages & System Description Languages Properties

Exercise Unit 2: Modeling Paradigms - RT-UML. UML: The Unified Modeling Language. Statecharts. RT-UML in AnyLogic

Integration of analytic model and simulation model for analysis on system survivability

Transformation of analysis model to design model

DEVSView: A tool for visualizing CD++ simulation models

Composability Test of BOM based models using Petri Nets

Cover Page. The handle holds various files of this Leiden University dissertation

Resource-bound process algebras for Schedulability and Performance Analysis of Real-Time and Embedded Systems

Distributed Information System as a System of Asynchronous Concurrent Processes

Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

CS:2820 (22C:22) Object-Oriented Software Development

Design Pattern: Composite

Flight Systems are Cyber-Physical Systems

Design patterns of database models as storage systems for experimental information in solving research problems

POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual Design Models

Metaprogrammable Toolkit for Model-Integrated Computing

DEVSim++ Environment

Methodology for Automatic Synthesis of Wargame Simulator using DEVS

Applying the Component Paradigm to AUTOSAR Basic Software

A Tutorial on Agent Based Software Engineering

Hardware Description Languages & System Description Languages Properties

SCXML State Chart XML

Idioms for Building Software Frameworks in AspectJ

WHAT IS SOFTWARE ARCHITECTURE?

- - PARADISE: Design Environment for Parallel & Distributed, Embedded Real-Time

MULTIPROCESSORS AND THREAD LEVEL PARALLELISM

Chapter 4. Capturing the Requirements. 4th Edition. Shari L. Pfleeger Joanne M. Atlee

1. Write two major differences between Object-oriented programming and procedural programming?

Pattern Specification in a Visual Parallel Programming Language

Java for Programmers Course (equivalent to SL 275) 36 Contact Hours

09. Component-Level Design

DESIGN AND SIMULATION OF HETEROGENEOUS CONTROL SYSTEMS USING PTOLEMY II

An Introduction to Software Architecture

OPTIMIZING PRODUCTION WORK FLOW USING OPEMCSS. John R. Clymer

Resource Estimation for Objectory Projects

Measuring the quality of UML Designs

Déjà Vu: A Hierarchical Case-Based Reasoning System for Software Design

Advanced Database Applications. Object Oriented Database Management Chapter 13 10/29/2016. Object DBMSs

A Top-Down Visual Approach to GUI development

Design Patterns IV. Alexei Khorev. 1 Structural Patterns. Structural Patterns. 2 Adapter Design Patterns IV. Alexei Khorev. Structural Patterns

CAS 703 Software Design

Design Patterns IV Structural Design Patterns, 1

junit RV Adding Runtime Verification to junit

SCXML State Chart XML. Previously, in this course...

An Expert System for Design Patterns Recognition

Object-Oriented Design

Future Directions in Simulation Modeling. C. Dennis Pegden

Simulation with Arena

Paradigms of computer programming

An Open System Framework for component-based CNC Machines

DEVS and DEVS Model. Dr. Xiaolin Hu. Dr. Xiaolin Hu

Application Note. Communication Services Framework Fundamentals

Model Driven Development of Context Aware Software Systems

An Introduction to Software Architecture

A FRAMEWORK FOR ACTIVE OBJECTS IN.NET

Darshan Institute of Engineering & Technology for Diploma Studies

SIR C R REDDY COLLEGE OF ENGINEERING

CLIENT SIDE SIMULATION TOOL JSSim

A SIMULATION TESTBED FOR COMPARING THE PERFORMANCE OF ALTERNATIVE CONTROL ARCHITECTURES. Paul Rogers Robert W. Brennan

INTRODUCTION TO AWESIM. Jean J. O Reilly William R. Lilegdon. Symix Systems, Inc Keystone Crossing, Suite 450 Indianapolis, IN 46240, U.S.A.

Simply Java Programming: An Application Driven, Tutorial

Architectural Patterns

Architectural Patterns. Architectural Patterns. Layers: Pattern. Architectural Pattern Examples. Layer 3. Component 3.1. Layer 2

Transcription:

AN OBJECT-ORIENTED VISUAL SIMULATION ENVIRONMENT FOR QUEUING NETWORKS Hussam Soliman Saleh Al-Harbi Abdulkader Al-Fantookh Abdulaziz Al-Mazyad College of Computer and Information Sciences, King Saud University, Riyadh, Saudi Arabia ABSTRACT. A visual environment for object-oriented simulation of queuing networks is developed. A key design objective is to minimize the amount of programming required from the modeler while maintaining the full modeling power of a custom-made simulator for the queuing network application domain. The environment structure is based on a recently developed standard for the design of simulation environments The software is designed and implemented on top of the MODSIM II simulation system. Generic base classes are provided for the modeler which can been arranged in a certain network topology using a point-and-click visual interface. Node parameters can then be modified from their default values using dialog boxes to conform with the model component properties. If necessary, the modeler may also change the default behavior of the basic model components by overriding the definition of some of these components methods and/or deriving new object classes with completely different behavior. 1. INTRODUCTION Computer simulation has been recognized in many application domains as a powerful modeling tool used mainly to study complex systems for which other more structured deterministic models fail. As the size and complexity of the simulated system increases, need arises for organizing a simulation project into a logical structured sequence of steps, known as the simulation project cycle. The concept of a simulation environment has been developed with the objective of enhancing the simulation model building process by encompassing the underlying simulation language and support tools in one integrated package. Support tools can be either model-building tools or program design and verification tools. Several simulation environment structures have been reported in the literature over the past three decades. This has created the need to standardize the software architecture used in constructing these environments. In the next section, a typical reference model for standardizing simulation environments will be discussed and will be adopted in this study. This paper reviews related work in the general simulation environment literature. It also describes a developed object-oriented environment for queuing network simulation based on the object-oriented language MODSIM II and the above mentioned standard for building simulation environments. The environment uses a completely graphical user interface for both model specification and visualization. The idea is to relieve the non-technical modeler from the programming task, as much as possible, while preserving the full modeling capabilities of specialized custom-made simulators. This environment should serve as the front-end for a planned parallel simulation environment on a network of workstations which will be based on the Time Warp optimistic synchronization protocol for parallel and distributed simulations [1]. 2. A SIMULATION ENVIRONMENT STANDARD Over the past three decades, hundreds of simulation languages and environments have been published in the literature with the same common objective, but with different conceptual approaches. This wide variation of approaches has presented a difficulty to researchers and practitioners. A simulation environment standard is likely to provide a common foundation for basic requirements. The term simulation environment has been used in the literature to refer to a broad range of simulation software. It may refer to a simulation language programming environment in which the modeler codes the model in a special simulation-oriented syntax. It can also mean a flow diagram system, a simulation code generator, or a visual interactive

system. In all these three cases, no programming is involved. Instead, the modeler specifies the model and its parameters in some natural way and the system automatically carries on the rest of the task. Towards the goal of standardizing simulation environment structures, a recent reference model for general-purpose discrete-event simulation environments was presented by Tanir and Sevinc [2]. They defined their model by grouping different tasks with common properties into layers, and logically relating groups together to form a simulation environment. They also defined the associated requirements for the model's functional layers. As shown in figure (1), the reference model consists of five distinct layers. The top layer (layer 4), called the application layer, is dependant on the application domain. It can, however, access all layers so that developers can add application-specific constructs to their environments. Layer 3 is called the system design layer. Layer 2 deals with model knowledge management. Layer 1 defines the requirements for model specification. Finally, layer 0 provides the basic language-level support for the environment and can be accessed by all layers. This reference model will be discussed in this section, and will be adopted in this paper to specify the software structure and requirements of our simulation environment. Layer 0, the host language layer, provides the basic facilities for model building. Since the environment depends on the constructs available from the language, it can greatly influence the environment's structure. Usually, any general-purpose programming language with support for highlevel data structures and operations can be used at this level. In this study, the MODSIM II objectoriented language is used at this level, as will be discussed in the next section. Layer 1, the model specification layer, is concerned with modeling and model expression in formal language's symbols. Therefore, the flexibility and modularity of the simulation environment depends for the most part on this layer. In this layer, a model is viewed as a representation of a segment of the studied system that mimics its behavior. A model is the most basic construct available to the analyst and is analogous to an object in the object-oriented paradigm. That is, it can be described by a set of data (state information) and a set of operations on data. A model may also include a set of interfaces to enable it to interact with its environment, including other models, in the appropriate way. Like objects, models communicate with a message-passing mechanism. The model construct presents the basic support for modularity in a simulation environment because it can be used to develop a database of component models and/or construct a hierarchy of models through inheritance and model reuse mechanisms. A composite model can be constructed with several submodels or from previously defined submodels. Interface information is maintained for each submodel's interface. A model with no components is called an atomic model. Otherwise, it is called a coupled model. Description of component models and the coupling scheme that connects the interfaces of these component models should be part of a coupled model's definition. For atomic model levels, a primitive for waiting a specified interval of simulated time may be used for scheduling the model's temporal activities. For coupled models, a tie-breaking mechanism can be used to resolve conflicts between simultaneously scheduled component models for an internal temporal activity. At this layer, a formal mathematical basis must be determined for model representation and validation, such as the DEVS scheme [3] or Petri nets. A model specification language should also be determined to represent the model in a syntax that eases model representation, and can be independent of the underlying implementation language. A simulation environment must support designing and conducting experiments. Experimentation requirements should be available in layers 1, 2 and 3, including data and statistics gathering, and observation of component model interactions. Layer 2, the knowledge management layer, provides mechanisms for manipulating and utilizing models specified in layer 1. Functions needed at this level may be model comparison against other

models, or determining and creating the necessary model interconnections and resources to effectively configure a reusable model to function with a requesting parent model. Another example is synthesizing the actual model from graphical descriptions specified by the modeler. Layer 3 handles design-oriented issues. Currently, lower-level primitives are used to support the design methodology since these issues are too complex and not clearly defined to specify requirement for them. Layer 4, the application layer, is dependant on the application domain and should be specific to the application in hand. That is, it should include a set of application-specific extensions to the environment standard. 3. DEVELOPMENT TOOLS The host language is a major component of the structure of a simulation environment because the constructs that it provides are accessed and manipulated by all other environment components. A class of simulation languages has been developed to ease model representation by providing expressive and powerful simulation-oriented synatx. This class enables the modeler to naturally model a conceptualized system with the least amout of mental transformations. Examples of this class of languages include SLAM-II and SIMSCRIPT II.5. The major disadvantage of this approach is that it limits the modeler to the framework of the model specification buliding blocks and constructs provided by the simulation language. Another class of languages includes general-pupose programming languages with special library support for discrete-event simulation applications. In this class, MODSIM II, the host language of our simulation environment, is an important example. MODSIM II is a general-purpose, modular, block-structured high-level programming language which provides direct support for object-oriented programming and discrete-event simulation. MODSIM II programs can be divided into modules which may be stored in separate files and can be separately compiled. Modules can import constructs and definitions from each other which enhances the reusability of code. MODSIM II is also an object-oriented programming language which supports inheritance and multiple inheritance. It is a strongly-typed language. Simulation capabilities are provided in library modules. These modules directly support all capabilities needed to program process-based discrete-event simulations. Each object is capable of carrying on multiple, concurrent activities, each of which can elapse simulation time. An activity is an event scheduled by an object instance using the so-called TELL or WAITFOR methods. Activities can operate independently or they can synchronize their operations. Object activities can be interrupted if necessary. Object instances can have multiple TELL and/or WAITFOR methods carrying on activities simulataneously with respect to simulation time. Moreover, any method of an object instance can be invoked multiple times to operate simutaneously. The MODSIM II simulation engine takes care of scheduling and executing all such activities. SIMGRAPHICS II is the MODSIM II graphics package which allows easy access to animation, presentation graphics, and user-interface toolkits using a graphics editor called SIMDRAW to simplify construction. Animation is produced by drawing objects using SIMDRAW and then animating them within a MODSIM II program. Scaling, rotating, and positioning can be performed on created graphics. Presentation graphics such as pie charts, level meters, and bar graphs can also be created using SIMDRAW, and then used within the MODSIM II program by asking them to plot values. All elements of the MODSIM II graphics library are portable. For more details on the MODSIM II language or the SIMGRAPHICS II environment, the reader is referred to [4] and [5].

Figure 1: A Standard Simulation Environment Architecture 4. A Visual Queuing Network Simulation Environment This section describes the design and implementation of an object-oriented visual modeling and simulation environment for the queuing network application domain which is built on top of the MODSIM II language and simulation system. The developed environment represents an applicationoriented simulation system which greatly improves on the capabilities of currently available packages. In particular, it supports modularity and code reuse, provides a point-and-click visual interface for model specification, and allows for defining application-specific model components. This can be done by providing the user access to standard model base classes which can be used to derive new subclasses in order to tailor the model components to the specific needs of the application. The developed simulation environment utilizes the support provided by the MODSIM II runtime environment for simulation tasks such as time advance, list processing, and statistics collection. Referring to the simulation environment standard discussed earlier, one can see that the developed environment fits in layers 2 through 4. Effectively, it provides facilities for visual applicationoriented model specification in a format that is later translated by the developed environment to MODSIM II objects and constructs. The services of the model specification layer (layer 1) and the host language layer (layer 0) are provided by the MODSIM II simulation system. The developed environment also provides facilities for managing the model knowledge provided by the user through the application layer by arranging these user-defined model constructs in inheritance hierarchies and storing them in model component libraries. Queuing network topology information is also converted into a suitable format for storage and model management. Some support for system design functions (layer 3) is also provided by the developed environment through the use of predefined constructs and low-level primitives. The developed environment is designed to simulate queuing networks which consist of the following five components: source node, station, queue, link, and sink node. A source node is one from which jobs are produced and entered into the system based on a certain statistical distribution. A station is an intermediate node at which jobs are processed for a period of simulated time drawn from a certain statistical distribution. A queue is a node where jobs wait for processing by a station. Each queue is characterized by a queuing discipline and a maximum size. Links represent virtual or actual channels in which jobs flow between the various nodes. In addition, they help define the topology of the network. They can also have modifiable properties including link speed and type. Finally, a sink node is a terminal node at which jobs exit the system. An important objective for the design of the environment is to make model components reusable. Therefore, a number of base classes have been defined to encompass the basic properties required in each of the main five elements described above which characterize models of the selected application domain. These five basic model object classes are derived from MODSIM II generic objects. They are provided to the modeler as generic base classes which can been arranged in a certain network topology using the point-an-click visual interface shown in figure (2). Further, the modeler can change the default behavior of the basic model components by overriding the definition of the these components and deriving new object classes with the desired behavior. This can be done by clicking on the desired model component in the specified model and changing the code for the

desired method or property. Component interaction and communication is handled transparently by the environment. For example, stations automatically inform queue objects that a new job can be dequeued and sent to the station whenever the station becomes idle. This simulator has been implemented in the MODSIM II object-oriented language. All simulation support features of the MODSIM II environment are available for the user to assist in the model validation, program verification, and output analysis stages of the simulation study. These include visualization of an animated display of program execution at runtime, dynamic display of presentation graphics, automatic statistical data collection, and dynamic modification of model component parameters. Actual expeimental simulation studies using the developed environment are currently being planned and results will be reported in a later publication. Figure 2: The Visual Interface for Model Specification

5. CONCLUSION In this paper, the development of a visual environment for object-oriented simulation of queuing networks was described. The design objective was to minimize the amount of programming required from the modeler while maintaining the full modeling power of a custom-made simulator for the queuing network application domain. The software was designed and implemented on top of the MODSIM II simulation system and is coded in the MODSIM II object-oriented programming language. Generic base classes are provided for the modeler which can been arranged in a certain network topology using a point-and-click visual interface, and the modeler may then change the default behavior of the basic model components by overriding the definition of some of these components methods and/or deriving new object classes with completely different behavior. Actual expeimental simulation studies using the developed environment are currently being planned and results will be reported as they become available. ACKNOWLEDGMENTS This work is part of a project (No. 1/4/416/417) funded by the Research Center, College of Computer and Information Sciences, King Saud University, Riyadh, Saudi Arabia. REFERENCES [1] Soliman, H., Al-Fantookh, A. and Al-Mazyad, A., A Graphical Environment for Parallel Simulation of Queuing Networks. Progress Report 1/4/416/417, College of Computer and Information Sciences Research Center, King Saud University, Riyadh, Saudi Arabia, 1997. [2] Tanir, O. and Sevinc, S., Defining Requirements for a Standard Simulation Environment." IEEE COMPUTER, 28-34, 1994. [3] Zeigler, B. P., Object-Oriented Simulation with Hierarchical, Modular Models - Intelligent Agents and Endomorphic Systems. Academic Press, Boston, USA, 1990. [4] MODSIM II: The Object-Oriented Programming Language Reference Manual. CACI Products Co., La Jolla, California, 1995. [5] SIMGRAPHICS II User's Manual for MODSIM II. CACI Products Co., La Jolla, California, 1995. [6] Beaumariage, T. and Mize, J. H, "Object-Oriented Modeling: Concepts and Ongoing Research." Proceedings of the SCS Multiconference on Object-Oriented Simulation, 7-12, 1990.. [7] Hill, D. R. C., Object-Oriented Analysis and Simulation. Addison-Wesley Publishing Co., Reading, Mass., USA, 1996. [8] Fahmy, H. and Douligeris, C., "NAMS: Network Automated Modeler and Simulator." Proceedings of the 29th Annual Simulation Symposium, 65-70, 1996.