Ben-Gurion University of the Negev

The Faculty of Natural Sciences

Department of Computer Science

 

SDMV Model:

A Control System for Distributed Simulation Implemented by a Distributed Object Architectures

 

 

 

A thesis for receiving a Masters degree in Natural Science.

 

By Reuven Yagel

 

 

 

 

 

 

 

 

 

 

 

 

 

November 19, 2000


ABSTRACT

 

     This work describes a model called SDMV – “Synchronized Distributed Mapped Values”, which was defined for a distributed system for management, control, and simulating an experimental field.

The model is based on the concept of a simulated object. This is an abstract object which represents a real world object which one wants to imitate. Since the system is distributed, it is necessary in the model, to define how values of that object are mimicked and synchronized throughout the entire system.

The model defines a system that has distributed values. The values are mapped into various objects which are synchronized between each other. This model provides an answer to the need for quick and efficient distributed simulation. For this purpose, a software framework was defined to implement such a model.

 

    The model is implemented by means of a distributed object software architecture. For the purpose of this work, the leading architectures were investigated, including COM, CORBA, and HLA – the distributed simulation architecture.

The research showed that the event service which these architectures provide is the most suited for realizing the model. The architectures are compared in order to determine which is best fit to implement the requirements of the model.

The research includes an analysis of the systems reqirements, and in light of this, the model and its implementation are programmed as a development framework for the system itself.

    In addition, the research investigates the implementation of the following topics concerning the model: simplicity of development and , independence of platforms and programming languages, withstanding time constraints, integrating outside factors in performing control system tasks, the ability to work in a wide network, and to meet the standards in the field of distributed simulation.

   An essential product of this work is a software library written in C++, which is the basis of the services of the development framework of the model. This framework is the basis for building distributed applications for control and simulation.

The performance of a distributed application, built by the model, was  also tested.


Contents

1.    Foreward

1.1. Introduction

1.2  The problem

1.3  The solution and contibution

2.    Background.

2.1. The current computerized control system

2.2  A distributed system

2.3  Distributed object architecture

3.     The present situation

3.1   The deficiencies of the existing system

3.2   Proposed solution

4.     A survey of distributed architectures

4.1   Introduction

4.1.1 Middleware

4.1.2 RPC

4.1.3 Calls between objects

4.1.4 Models based on events

            4.2    Event Service

                        4.2.1 A-synchronic calls

                        4.2.2 Models based on events

                        4.2.3 Distributed computing subjects

                        4.2.4 Relative service and models

4.3    General distributed architectures

4.3.1 CORBA - Common Object Request Broker Architecture

4.3.2 COM\DCOM - Distributed Component Object Model

4.3.3 Java RMI

4.4    Simulation architectures

4.4.1 DIS - Distributed Interactive Simulation

4.4.2 ALSP - Aggregate Level Simulation Protocol

4.4.3 HLA - High Level Architecture

4.5     Details on HLA

4.5.1  Terminology

4.5.2  Main components

4.5.3  Sequence diagrams

4.5.4  Details on HLA

5        Defining requirements.

5.1     An example of the system

5.2     System requirements

5.3     The goal

6.        A choice framework between distributed architectures

6.1      The participants in the comparison

6.1.1   Choosing the comparison factors

6.1.2   COM versus CORBA

6.1.3   HLA as opposed to its predecessors

6.2      Comparing the architectures in the light of the model requirements

6.2.1   Choosing a distributed object architecture

6.2.2  Distributing the systems functions, and minimal dependency between the systems components

6.2.3  Developing recording ability, and reconstruction of the states of the entire distributed system

6.2.4   The system must allow dynamic configuration

6.2.5   Fulfilling additional requirements

6.3      Conclusions.

7.        SDMV Model

7.1         The model

7.1.1          Definitions.

7.1.2          Static model

7.1.3          Dynamic model

7.1.4          Example

7.2      General software architecture

7.3      Choosing middleware service

7.4      Choosing a platform, and a programming language

7.5      Proposal for objects model

7.6      SDMV Framework

7.6.1   Concepts and mapping to the model

7.6.2  The main classes of the library

7.6.3   The actions of each participant

7.6.4          A sample program

7.6.5          Themes in mapping

8.        Results

8.1      Problems which arose using RTI

8.2      Bridging the previous system

8.3      The interfaces to outside factors

8.4      Synchronization between the participants.

8.5      Recording and playback

8.6      Measuring performance

9.        Topics in software development

9.1         Type conversions

9.2         Callback

9.3         Design patterns

9.3.1   Introduction

9.3.2   Singleton

9.3.3   Factory Method

9.3.4   Proxy

9.3.5   Observer

9.3.6   Facade

9.3.7   Detachable Inspector

9.3.8  Additional design patterns.

10.      Conclusions

10.1      Conclusions

10.1.1      SDMV Model

10.1.2      Requirements fullfilment

10.2    Summation

10.3    Continuation of development

11.       References

12.       Appendices

12.1   An example of implementing simulation by HLA

12.2   A sample program

12.3  How to use the library

12.3.1  The compiler and linker formation, for Microsoft VC++

12.3.2  Environment variables, and file slots.

12.3.3  How to add a new connector class