High Level Architecture

Slides:



Advertisements
Similar presentations
Network II.5 simulator ..
Advertisements

Construction process lasts until coding and testing is completed consists of design and implementation reasons for this phase –analysis model is not sufficiently.
COM vs. CORBA.
Open-DIS and XML DIS in Other Formats. Distributed Interactive Simulation DIS is an IEEE standard for simulations, primarily virtual worlds Binary protocol:
High Level Architecture (HLA) Don McGregor Research Associate MOVES Institute
Computer Monitoring System for EE Faculty By Yaroslav Ross And Denis Zakrevsky Supervisor: Viktor Kulikov.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. slide 1 CS 125 Introduction to Computers and Object- Oriented Programming.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. slide 1 CS 125 Introduction to Computers and Object- Oriented Programming.
Simulation concepts and architectures. Simulation Basics System: a collecting of entities that act and interact together toward the accomplishment of.
Building Parallel Time-Constrained HLA Federates: A Case Study with the Parsec Parallel Simulation Language Winter Simulation Conference (WSC’98), Washington.
© Copyright Eliyahu Brutman Programming Techniques Course.
Systems Architecture, Fourth Edition1 Internet and Distributed Application Services Chapter 13.
TENA Test and Training Enabling Architecture. TENA TENA is used in range environments, often in the L portion of LVC Slightly different emphasis; small.
HLA: RPR-FOM Real Time Reference Platform FOM and Interoperability with DIS.
Efficient XML Interchange. XML Why is XML good? A widely accepted standard for data representation Fairly simple format Flexible It’s not used by everyone,
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
What is Concurrent Programming? Maram Bani Younes.
Introduction To System Analysis and design
Design Patterns Discussion of pages: xi-11 Sections: Preface, Forward, Chapter
Wave Relay System and General Project Details. Wave Relay System Provides seamless multi-hop connectivity Operates at layer 2 of networking stack Seamless.
Adapting Legacy Computational Software for XMSF 1 © 2003 White & Pullen, GMU03F-SIW-112 Adapting Legacy Computational Software for XMSF Elizabeth L. White.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 8: Modelling Interactions and Behaviour.
16-1 The World Wide Web The Web An infrastructure of distributed information combined with software that uses networks as a vehicle to exchange that information.
CPS120: Introduction to Computer Science The World Wide Web Nell Dale John Lewis.
(C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.
Parallel Programming Models Jihad El-Sana These slides are based on the book: Introduction to Parallel Computing, Blaise Barney, Lawrence Livermore National.
An Introduction to Software Architecture
Military Simulation Case Study
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Unified Modeling Language, Version 2.0
High Level Architecture Overview and Rules Thanks to: Dr. Judith Dahmann, and others from: Defense Modeling and Simulation Office phone: (703)
A Web-based Distributed Simulation System Christopher Taewan Ryu Computer Science Department California State University, Fullerton.
The High Level Architecture Introduction. Outline High Level Architecture (HLA): Background Rules Interface Specification –Overview –Class Based Subscription.
Parallel and Distributed Simulation Data Distribution I.
Model-Driven Engineering of Behaviors in User Interfaces Efrem Mbaki & Jean Vanderdonckt Université catholique de Louvain (UCL) Louvain School of Management.
User Interfaces 4 BTECH: IT WIKI PAGE:
Parallel and Distributed Simulation Distributed Virtual Environments (DVE) & Software Introduction.
Framework of a Simulation Based Shop Floor Controller Using HLA Pramod Vijayakumar Systems and Industrial Engineering University of Arizona.
Jini Architecture Introduction System Overview An Example.
CSE 332: Design Patterns Review: Design Pattern Structure A design pattern has a name –So when someone says “Adapter” you know what they mean –So you can.
MDA & RM-ODP. Why? Warehouses, factories, and supply chains are examples of distributed systems that can be thought of in terms of objects They are all.
Slide 1 Service-centric Software Engineering. Slide 2 Objectives To explain the notion of a reusable service, based on web service standards, that provides.
Data Distribution. Outline Fundamental concepts –Name space –Description expressions –Interest expressions Static Data Distribution: HLA Declaration Management.
High Level Architecture Time Management. Time management is a difficult subject There is no real time management in DIS (usually); things happen as packets.
Test Enabled and Training Architecture (TENA) Don McGregor Research Associate MOVES Institute
Reading TCP/IP Protocol. Training target: Read the following reading materials and use the reading skills mentioned in the passages above. You may also.
Parallel and Distributed Simulation Data Distribution II.
Diistributed Data Management DDM in HLA. Distributed Data Management HLA by default does one sort of interest management: functional. Your federate can.
OOPS CONCEPT.  OOPS  Benefits of OOPs  OOPs Principles  Class  Object Objectives.
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
HLA OMT Fundamentals Alessandro Specchia Carnegie Mellon University.
Building Preservation Environments with Data Grid Technology Reagan W. Moore Presenter: Praveen Namburi.
Fall ‘99 Simulation Interoperability Workshop RTI Interoperability Study Group Final Report Michael D. Myjak, Chair.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
©MAK Technologies, Inc. The Dynamic-Link-Compatible C++ RTI API for IEEE 1516 Len Granowetter MÄK Technologies x121.
National Security Analysis Department HLA-E PDG Conform # 1 What is Conformance? u Specification of what it means when a piece of software claims to have.
Katherine L. Morse, PhD JHU/APL 9 October 2015
OPERATING SYSTEMS CS 3502 Fall 2017
Development of a Simulator for the HANARO Research Reactor (Communication Protocol) H.S. Jung.
Unified Modeling Language
BOMs – Base Object Models
High Level Architecture
Object Oriented Concepts -I
Service-centric Software Engineering
An Introduction to Software Architecture
Model, View, Controller design pattern
High Level Architecture Module 2 Advanced Topics
Presentation transcript:

High Level Architecture HLA

HLA DIS was the original standard for DoD M&S, but it was limited in some ways • Designed for virtual worlds, and that’s all • No concept of a clock So HLA was designed by DMSO and MIT in the early/mid 90’s. It was intended to be the One True Standard for DoD M&S, supplanting DIS. It has not quite worked out that way. 1996: HLA is the standard for DoD M&S, all simulations must comply with HLA by 2001 or receive a waiver Never Underestimate the Installed Base

HLA The original idea was to use HLA everywhere, particularly in a project called JSIM All services standardize on HLA, all services work with JSIM A tad bit ambitious given the technology and nature of M&S Problems arose with model granularity, semantic consistency, &c. Models are abstractions of reality, and getting consistent abstractions in a big problem space is very, very hard. “common plumbing” is only a small part of it. This isn’t a knock on HLA; just an observation that there’s more to simulation than common network plumbing

HLA Versions HLA has gone through several versions: • HLA was originally standardized by the Defense Modeling and Simulation Office (DMSO) and the final version of this tree was HLA 1.3 • HLA also entered the IEEE standards track and was standardized as IEEE 1516. This is considered the more current version • STANAG 4603 can refer to both 1.3 and 1516 • HLA Evolved is currently being agreed upon as a 1516 follow-on product HLA 1.3 is still widely used. IEEE 1516 is used a fair amount. HLA evolved is still somewhat rare, with the vendor Pitch being the leading implementor

HLA vs DIS What do you standardize on in your standard? DIS standardizes the packet format on the wire, but not the API DIS API A DIS API B DIS PDU

HLA vs DIS You need an API for reading and writing DIS PDUs, but this API is not standardized; if you change DIS library vendors you’ll have to change all the code that touches the DIS API Simulator DIS API Graphics API Physics API

HLA vs DIS On the other hand, the packets are in a standard format, so any application that reads the format can be used, including multiple languages (C, C++, Java, Objective-C, C#, ADA, etc)

HLA vs DIS HLA takes another approach--it standardizes the API, while remaining silent on the packet format. HLA API HLA API Opaque Packet Format

HLA vs DIS The benefit to this is that you can swap out HLA implementations without changing your code API. In fact, you can simply swap DLLs in Windows Simulator HLA API Graphics API Physics API

DIS vs HLA This allows vendors to innovate under the API. If someone comes up with a better Area of Interest scheme or a better way to reduce bandwidth use, they can do that within a common API The drawback to this is that a simulation running a Pitch HLA implementation will not be able to talk to a simulation running a MaK HLA implementation

DIS vs HLA The wire format incompatibility can be mitigated via the use of gateways In a multiplatform environment in can be a challenge to get all boxes on the same version of HLA from the same vendor Runs HLA From Both Vendors

HLA FOM HLA works via a standardized API, but because simulations are so diverse we can’t have a single semantic model for what is in the simulation What are we simulating? We need some sort of object model for the things in the world, what the attributes are, what the attributes mean, etc This is sometimes called “semantic information” DIS is a constrained problem space--3D virtual worlds--so they can get by with a single semantic model. But HLA is intended for all M&S tasks, so this isn’t really acceptable

HLA FOM The Federation Object Model (FOM) defines what the objects and attributes are in the world Example: we’re simulating tanks. We may have a FOM with a Tank class and attributes of fuel, ammo, and rations Or we might do a repair logistics simulation with very different objects and attributes

HLA FOM HLA, in addition to the API, requires a Federation Object Model (FOM). This may be different for different applications If you do physics simulations, you use a physics FOM for that If you do logistics simulations, you use a logistics FOM for that FOMs are difficult to do right; choosing to make your own FOM from scratch is a potentially expensive proposition

RPR FOM There were/are a lot of simulations out there that do DIS semantics • Entity Types • Entity IDs • Coordinate systems If you’re trying to port your DIS application to HLA, well, why not use the same semantics as DIS? They’re already pretty well thought out

RPR FOM This is the idea behind the Real-time Platform Reference Federation Object Model (RPR-FOM) Uses DIS semantics in an HLA FOM This minimizes the changes necessary to the upper levels of the simulation

HLA Rules HLA has ten basic rules that are actually very general. • Federations shall have an HLA Federation Object Model (FOM), documented in accordance with the HLA Object Model Template (OMT). •In a federation, all representation of objects in the FOM shall be in the federates, not in the run-time infrastructure (RTI). • During a federation execution, all exchange of FOM data among federates shall occur via the RTI. • During a federation execution, federates shall interact with the run-time infrastructure (RTI) in accordance with the HLA interface specification.

HLA Rules (cont) • During a federation execution, an attribute of an instance of an object shall be owned by only one federate at any given time • Federates shall have an HLA Simulation Object Model (SOM), documented in accordance with the HLA Object Model Template (OMT) • Federates shall be able to update and/or reflect any attributes of objects in their SOM and send and/or receive SOM object interactions externally, as specified in their SOM.

HLA Rules (cont) • Federates shall be able to transfer and/or accept ownership of an attribute dynamically during a federation execution, as specified in their SOM. • Federates shall be able to vary the conditions under which they provide updates of attributes of objects, as specified in their SOM • Federates shall be able to manage local time in a way that will allow them to coordinate data exchange with other members of a federation.

HLA Understanding HLA requires mastering some terminology first A federation is a related group of software components that cooperate with each other A federate is one cooperating element in a federation A federate execution is one run of a federation A Run Time Infrastructure (RTI) is how federates communicate with each other

HLA Federate A Federate B RTI Federate C

HLA One rule of HLA is that all federates must communicate with each other over the RTI. They can’t communicate federation data between federates in any other way. So you can’t open a socket between two federates and exchange federate data over that channel

FOM What data do they communicate? This is defined by the Federation Object Model (FOM). “Object” is defined a little differently than in programming languages. In HLA, an object describes only the data fields--there are no methods associated with objects Objects have attributes

FOM Vehicle (serial number) Tank (serial number) (Rounds main gun) Truck (serial number) (Gallons gas) Objects are defined in the FOM and have attributes that they may inherit in an inheritance hierarchy, but no methods

FOM A FOM describes • All public object classes • Specification of all object attributes for classes • All interaction types (events) and their parameters This is federation-wide, ie all objects and interactions that can exist in a federation

FOM & RTI The FOM is provided to the RTI when the simulation starts. This defines the messages that can be passed between federates The FOM defines what can be passed; the RTI passes it The RTI is also responsible for exposing things like time management

Time Management “Real time” simulations such as DIS don’t have much of a concept of time--everything just happens as packets arrive from the network But different types of simulations might need to manage time differently: discrete event simulations, time-stepped simulations, faster than real time simulations, etc.

FOM A FOM includes an enumeration of all the public classes, a description of all interaction types and parameters, and a specification of the attributes that characterize public objects “The objects in the world”, more or less

Object Ownership Federates “own” objects or attributes of objects. For example, we can create a tank object and assign ownership of the object to one of the federates. That federate has authoritative information about that tank object, and sends updates to other federates when the tank attributes change Other federates can subscribe to the object or object attributes, which means they are sent updates Objects and attributes can also have their ownership passed to another federate

Federates & Objects Federate A Federate B Tank A (gun rounds = 15) RTI Object attribute update sent via RTI to all federates that are subscribed Tank A (gun rounds = 15) Federate C

Simulation Object Model The SOM defines (more or less) the data that an individual federate shares with a federation. This may be a subset of the FOM. The FOM may define tanks, helos, and IFVs. A SOM for one federate may define only tanks

HLA Object attributes are owned by federates Federates cooperate in a federation A federate execution is one running simulation

Object Model Template The OMT is HLA’s way of describing and defining objects • Object class structure tables • Interaction class structure tables • Attribute tables • Parameter tables

OMT Roughly, object classes are permanent, while interaction classes are used only for transferring information and have an “instantaneous” lifespan. Interaction classes are essentially events Attributes are associated with each Objects: entities in the world that have some lifespan Interactions: events The FOM and SOM are defined using the OMT, a technique for formalizing the structure of classes and interactions

Management Object Model The MOM provides a way to learn about the federation. Essentially, this is the FOM for RTI; the same mechanism is used to interact with the federation execution as is used to interact with other federates • Federation execution operating information • Operations of joined federates and RTI • Control of the RTI and federates

Distributed Data Management DDM refers to area of interest management “Only distribute information about this class to federates who are interested in this geographic region” This is handled via the RTI

APIs Note that HLA does NOT specify the format of the data interchanges on the network wire. Different RTIs from different vendors may use completely different formats So what is standardized? The FOM specifies the object model--you should be able to carry these between RTIs The HLA standard also includes standardized APIs for the “RTI Ambassador” and “Federate Ambassador”, which is the interface of the federate to the RTI and vice versa

Ambassadors Federate RTI Ambassador Federate Ambassador RTI

Ambassadors The federate (your code) talks to the RTI via the RTI ambassador. If the RTI must talk to your code, it does so by executing “callbacks” in your code initiated by the federate ambassador These APIs are standardized This means you can take your federate code to an RTI from another vendor and (modulo version issues) have it run

Another Cycle Take another trip through the description: • HLA Rules • HLA federates, federation executions, RTIs, ambassadors, and objects • Reflection of object attributes • Ownership and ownership transfers 

HLA Vendors There are several vendors out there: Pitch: www.pitch.se Probably the most “modern”; deeply involved in the latest rev, HLA-Evolved MaK: http://www.mak.com/ Widely used; big user base from the HLA 1.3 days, promises to be compliant with the latest revs Portico: http://www.porticoproject.org Open source, java-based RTI; some support from the Australian MoD CERTI: http://www.cert.fr/CERTI/ There is an RTI certification process (which not all RTIs have been through)

HLA Resources CSU Chico has a good set of slides: http://www.ecst.csuchico.edu/~hla/courses.html#module1 http://www.ecst.csuchico.edu/~hla/courses.html#module2 Book (somewhat dated): Creating Computer Simulation Systems: An Introduction to the High Level Architecture, Kuhl, Weatherly, & Dahmann