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