21
1 Office National d’Etudes et Recherches Aérospatiales (ONERA) Département Prospective et Synthèse (DPRS) Département Traitement de l'Information et Modélisation (DTIM) Introduction à GENESIS Atelier d’aide à la conception et au développement de fédérations HLA Partie 2 : principes constitutifs Copyright ONERA-DGA 2005. Ce document est la propriété conjointe de l’ONERA et de la DGA ; il ne peut être communiqué à des tiers ou reproduit sans son autorisation préalable et écrite de l’ONERA ou de la DGA. Contact : [email protected] PLAN 1) Fonctionnement de l’outil GENESIS a) Le « parser » b) Les classes de collecte c) Les actions de génération 2) Approfondissements sur les trois éléments de HLA a) Le formalisme : ajouts de GENESIS b) La méthodologie : lien entre le FEDEP et GENESIS c) Les principes de fonctionnement de la bibliothèque GENESIS 3) Conclusion

Introduction à GENESIS - onera.fr · PDF fileFormalisme niveau 2 : les ajouts de GENESIS (1) Mais les notions HLA présentes dans les normes ne suffisent pas à aller jusqu’à produire

Embed Size (px)

Citation preview

Page 1: Introduction à GENESIS - onera.fr · PDF fileFormalisme niveau 2 : les ajouts de GENESIS (1) Mais les notions HLA présentes dans les normes ne suffisent pas à aller jusqu’à produire

1

Office National d’Etudes et Recherches Aérospatiales (ONERA)Département Prospective et Synthèse (DPRS)Département Traitement de l'Information et Modélisation (DTIM)

Introduction à GENESISAtelier d’aide à la conception et au développement de fédérations HLA

Partie 2 : principes constitutifs

Cop

yrig

ht O

NER

A-D

GA

200

5. C

e do

cum

ent e

st la

pro

prié

té c

onjo

inte

de

l’ON

ERA

et d

e la

DG

A ;

il ne

peu

t être

com

mun

iqué

à d

es ti

ers

ou re

prod

uit

sans

son

aut

oris

atio

n pr

éala

ble

et é

crite

de

l’ON

ERA

ou d

e la

DG

A. C

onta

ct :

gene

sis@

oner

a.fr

PLAN

1) Fonctionnement de l’outil GENESIS

a) Le « parser »b) Les classes de collectec) Les actions de génération

2) Approfondissements sur les trois éléments de HLA

a) Le formalisme : ajouts de GENESISb) La méthodologie : lien entre le FEDEP et GENESISc) Les principes de fonctionnement de la bibliothèque GENESIS

3) Conclusion

Page 2: Introduction à GENESIS - onera.fr · PDF fileFormalisme niveau 2 : les ajouts de GENESIS (1) Mais les notions HLA présentes dans les normes ne suffisent pas à aller jusqu’à produire

2

Cop

yrig

ht O

NER

A-D

GA

200

5. C

e do

cum

ent e

st la

pro

prié

té c

onjo

inte

de

l’ON

ERA

et d

e la

DG

A ;

il ne

peu

t être

com

mun

iqué

à d

es ti

ers

ou re

prod

uit

sans

son

aut

oris

atio

n pr

éala

ble

et é

crite

de

l’ON

ERA

ou d

e la

DG

A. C

onta

ct :

gene

sis@

oner

a.fr

GENESIS : les éléments constitutifs (1)

On retrouve les 3 éléments fondateurs de HLA :

Langage de description (GenDL)

Outil logiciel (GENESIS) de traitement du langage et de

production

Bibliothèques logicielles, adaptations à différents RTI

Sert à exprimer le formalismeHLA et plus

Sert tout au long de la mise en application de la méthodologie

de développement

Liens avec les moyens supports de HLA (RTI)

Cop

yrig

ht O

NER

A-D

GA

200

5. C

e do

cum

ent e

st la

pro

prié

té c

onjo

inte

de

l’ON

ERA

et d

e la

DG

A ;

il ne

peu

t être

com

mun

iqué

à d

es ti

ers

ou re

prod

uit

sans

son

aut

oris

atio

n pr

éala

ble

et é

crite

de

l’ON

ERA

ou d

e la

DG

A. C

onta

ct :

gene

sis@

oner

a.fr

GENESIS : les éléments constitutifs (2)

Trois parties constituent l’outil GENESIS :1. Le « parser » : analyseur lexical et syntaxique.

Développé avec ANTLR (Another Tool for Language Recognition). Il est construit à partir d’une grammaire. Il est chargé de lire et vérifier les descriptions écrites en langage GenDL.

2. Les classes de collecte : environ 70 classes C++ pour enregistrer tout ce qui est lu dans le parser. Chaque notion HLA a sa propre classe de collecte.

3. Les actions de génération : sur les instances des classes de collectes, on peut produire du code ou de la documentation.

Outil GENESIS

Données collectées

Production de code et de documents

Analyseur lexical et

syntaxique

Page 3: Introduction à GENESIS - onera.fr · PDF fileFormalisme niveau 2 : les ajouts de GENESIS (1) Mais les notions HLA présentes dans les normes ne suffisent pas à aller jusqu’à produire

3

Cop

yrig

ht O

NER

A-D

GA

200

5. C

e do

cum

ent e

st la

pro

prié

té c

onjo

inte

de

l’ON

ERA

et d

e la

DG

A ;

il ne

peu

t être

com

mun

iqué

à d

es ti

ers

ou re

prod

uit

sans

son

aut

oris

atio

n pr

éala

ble

et é

crite

de

l’ON

ERA

ou d

e la

DG

A. C

onta

ct :

gene

sis@

oner

a.fr

Outil GENESIS GenDLTypes de données

Données collectées

Production de code et de documents

Analyseur lexical et

syntaxique

Sources C++ Types,Objets,

Interactions, Fédérés

GenDLObjets,

Interactions, ...

GenDLFédérés,

Fédération

Lecture

ProduitProduit

DocumentationHTML

FOM/SOM Makefiles

Configuration Files

.fed, .xml, .omt

RTI

GenesisLib

VirtualRTI Lib

Fédérés Types, objets Lib

Compilation

Produit

« Métier » Lib

Cop

yrig

ht O

NER

A-D

GA

200

5. C

e do

cum

ent e

st la

pro

prié

té c

onjo

inte

de

l’ON

ERA

et d

e la

DG

A ;

il ne

peu

t être

com

mun

iqué

à d

es ti

ers

ou re

prod

uit

sans

son

aut

oris

atio

n pr

éala

ble

et é

crite

de

l’ON

ERA

ou d

e la

DG

A. C

onta

ct :

gene

sis@

oner

a.fr

Outil GENESIS : le « parser » (1)

ANTLR (Another Tool for Language Recognition) est lui-même un générateur de code que l’on configure en lui fournissant une description grammaticale :

Outil GENESIS

Données collectées

Production de code et de documents

Analyseur lexical et

syntaxique

+Grammaire

Fichier LD.G

PRODUIT

PRODUIT

Makefiles

DocumentationHTML

FOM/SOM Sources C++ Types,Objets,

Interactions , Fédérés

Configuration Files

.fed, .xml, .omt

Page 4: Introduction à GENESIS - onera.fr · PDF fileFormalisme niveau 2 : les ajouts de GENESIS (1) Mais les notions HLA présentes dans les normes ne suffisent pas à aller jusqu’à produire

4

Cop

yrig

ht O

NER

A-D

GA

200

5. C

e do

cum

ent e

st la

pro

prié

té c

onjo

inte

de

l’ON

ERA

et d

e la

DG

A ;

il ne

peu

t être

com

mun

iqué

à d

es ti

ers

ou re

prod

uit

sans

son

aut

oris

atio

n pr

éala

ble

et é

crite

de

l’ON

ERA

ou d

e la

DG

A. C

onta

ct :

gene

sis@

oner

a.fr

Outil GENESIS : le « parser » (2)

Le fichier de syntaxe LD.G contient les règles de la grammaire :

GRAMMAIRE LD.G

global[LdArg *arg]:(dieseInclude[arg]|specFederation[arg]| specFederate[arg]| specObjectClass[arg]| specInteraction[arg]| specPointSynchro[arg]| implicitSynchroPoint[arg]| temporalSynchroPoint[arg]| specType[arg]| specService[arg])* ENDF ;

valueByDefault[LdArg *arg]: << Code *code=NULL;

bool doit=(NULL!=arg->currentCPPCode());>>DEFAULTVALUE PARO codeCPP[arg]>[code] << if

(doit) arg->currentCPPCode(code);else

delete code;>>PARE SEMICOLON;

Entrecoupées d’actions de collecte :

Cop

yrig

ht O

NER

A-D

GA

200

5. C

e do

cum

ent e

st la

pro

prié

té c

onjo

inte

de

l’ON

ERA

et d

e la

DG

A ;

il ne

peu

t être

com

mun

iqué

à d

es ti

ers

ou re

prod

uit

sans

son

aut

oris

atio

n pr

éala

ble

et é

crite

de

l’ON

ERA

ou d

e la

DG

A. C

onta

ct :

gene

sis@

oner

a.fr

Outil GENESIS : le « parser » (3)

Pour l’utilisateur, dans le manuel d’utilisation, les règles sont fournies en écriture BNF ou sous forme graphique résumée :

note recordType : RECORDTYPE defType

{ semantic

} ;refType defNameField ;

ENCODING (

HLAFIXEDRECORD

) ;USERFIXEDRECORD

note

note semantic

Exemple : représentation de la règle de grammaire concernant les types structures”. (Record Types)

Page 5: Introduction à GENESIS - onera.fr · PDF fileFormalisme niveau 2 : les ajouts de GENESIS (1) Mais les notions HLA présentes dans les normes ne suffisent pas à aller jusqu’à produire

5

Cop

yrig

ht O

NER

A-D

GA

200

5. C

e do

cum

ent e

st la

pro

prié

té c

onjo

inte

de

l’ON

ERA

et d

e la

DG

A ;

il ne

peu

t être

com

mun

iqué

à d

es ti

ers

ou re

prod

uit

sans

son

aut

oris

atio

n pr

éala

ble

et é

crite

de

l’ON

ERA

ou d

e la

DG

A. C

onta

ct :

gene

sis@

oner

a.fr

Outil GENESIS : les classes de collecte

ObjectModel

_nameNotes : Notes

name() : const char*nameNotes() : Notes*nameNotes(n : Note*)

UpdateType

TypedObjectModel

datatype() : DataType*datatype(t : DataType*)

DataType#_datatype

0..11 0..11

Code

LowerObjectModel

_semantics : LDString_semanticsNotes : Notes

semantics() : LDString*semantics(value : const char*)semanticsNotes(n : Note*)semanticsNotes() : Notes*

Item

# _name : LDString

Attribute

_defaultTransportationNotes : Notes_defaultOrderNotes : Notes

defaultUpdateType() : UpdateType**defaultUpdateType(value : UpdateType*)defaultTransportation() : Transportation&defaultTransportationNotes() : Notes*defaultTransportationNotes(n : Note*)defaultOrder() : Order&defaultOrderNotes() : Notes*defaultOrderNotes(n : Note*)defaultValue() : Code**defaultValue(value : Code*)

0..1

1

#_defaultUpdateType

0..1

1

0..1

1 #_defaultValue

0..1

1

Transportation

11

#_defaultTransportation

11

TransportationValues(from Transportation)

#_val

11 11

Order1

1#_defaultOrder

1

1OrderValues(from Order)

#_val

11 11

Exemple : la classe “attribut” d’objets

Cop

yrig

ht O

NER

A-D

GA

200

5. C

e do

cum

ent e

st la

pro

prié

té c

onjo

inte

de

l’ON

ERA

et d

e la

DG

A ;

il ne

peu

t être

com

mun

iqué

à d

es ti

ers

ou re

prod

uit

sans

son

aut

oris

atio

n pr

éala

ble

et é

crite

de

l’ON

ERA

ou d

e la

DG

A. C

onta

ct :

gene

sis@

oner

a.fr

Outil GENESIS : génération de documentation (1)

Format HTML pour de la documentation facile à consulter. Plusieurs pages, une par table du standard HLA OMT.

Format OMT-DIF utilisé avec le standard HLA NG 1.3. Syntaxe proche du Lisp, ces fichiers sont utiles par exemple pour la certification de fédérés.

Format FED respecte également une syntaxe définie par la norme NG 1.3. Indispensable au fonctionnement du RTI DMSO et des autres RTI qui lui sont compatibles.

Format XML a été introduit par la norme IEEE 1516. Il remplace à la fois les fichiers OMT-DIF et FED. Sera le plus utilisé àl'avenir pour représenter fédérés et fédérations.

Page 6: Introduction à GENESIS - onera.fr · PDF fileFormalisme niveau 2 : les ajouts de GENESIS (1) Mais les notions HLA présentes dans les normes ne suffisent pas à aller jusqu’à produire

6

Cop

yrig

ht O

NER

A-D

GA

200

5. C

e do

cum

ent e

st la

pro

prié

té c

onjo

inte

de

l’ON

ERA

et d

e la

DG

A ;

il ne

peu

t être

com

mun

iqué

à d

es ti

ers

ou re

prod

uit

sans

son

aut

oris

atio

n pr

éala

ble

et é

crite

de

l’ON

ERA

ou d

e la

DG

A. C

onta

ct :

gene

sis@

oner

a.fr

Outil GENESIS : génération de documentation (2)

La documentation peut être produite à différents niveaux, parmi les informations qui ont été collectées :

Modèle objet : fédération est "virtuelle", car aucun fédéré n'a encore étédéfini à ce niveau. Pas de fédéré, donc pas d'informations sur les publications et les souscriptions. Exemple : RPR-FOM.

Un fédéré : documentation SOM du fédéré (Simulation Object Model).

Une fédération, lorsque chaque fédéré a été explicité. La fédération est alors l'union des fédérés; elle fait la synthèse de leurs spécificités dans le FOM (Federation Object Model).

Cop

yrig

ht O

NER

A-D

GA

200

5. C

e do

cum

ent e

st la

pro

prié

té c

onjo

inte

de

l’ON

ERA

et d

e la

DG

A ;

il ne

peu

t être

com

mun

iqué

à d

es ti

ers

ou re

prod

uit

sans

son

aut

oris

atio

n pr

éala

ble

et é

crite

de

l’ON

ERA

ou d

e la

DG

A. C

onta

ct :

gene

sis@

oner

a.fr

Outil GENESIS : génération C++ (1)

La génération de code C++ se passe en deux temps :

1) Génération d’une bibliothèque de types de données

BasicType HLAfloat64BE{/@semantics Double-precision

floating-point number @/

bitssize(64);endian(big);encoding(HLAdefine);equivalentType(double);

};

• commune à tous les fédérés

• implémente l’encodage et le décodage des valeurs vers et via le RTI

• fait la correspondance avec les types “métier” définis par l’utilisateur (EquivalentType)

Page 7: Introduction à GENESIS - onera.fr · PDF fileFormalisme niveau 2 : les ajouts de GENESIS (1) Mais les notions HLA présentes dans les normes ne suffisent pas à aller jusqu’à produire

7

Cop

yrig

ht O

NER

A-D

GA

200

5. C

e do

cum

ent e

st la

pro

prié

té c

onjo

inte

de

l’ON

ERA

et d

e la

DG

A ;

il ne

peu

t être

com

mun

iqué

à d

es ti

ers

ou re

prod

uit

sans

son

aut

oris

atio

n pr

éala

ble

et é

crite

de

l’ON

ERA

ou d

e la

DG

A. C

onta

ct :

gene

sis@

oner

a.fr

Outil GENESIS : génération C++ (2)

2) Génération des classes C++ du fédéré

Pour chaque fédéré :

• La classe du fédéré : point de communication avec le RTI.• Deux classes pour chaque classe HLA d’objets publiés ou souscrits :

une pour stocker les valeurs (« Modèle »), l’autre pour les comportements (« Vue »).

• Idem, deux classes pour chaque classe HLA d’interactions ou chaque point de synchronisation.

• Un programme principal (main) standard, proposé et non imposé, avec un cycle de vie et des boucles d’évolution par défaut.

Cop

yrig

ht O

NER

A-D

GA

200

5. C

e do

cum

ent e

st la

pro

prié

té c

onjo

inte

de

l’ON

ERA

et d

e la

DG

A ;

il ne

peu

t être

com

mun

iqué

à d

es ti

ers

ou re

prod

uit

sans

son

aut

oris

atio

n pr

éala

ble

et é

crite

de

l’ON

ERA

ou d

e la

DG

A. C

onta

ct :

gene

sis@

oner

a.fr

GENESIS : le formalisme étendu

Langage de description (GenDL)

Outil logiciel (GENESIS) de traitement du langage et de

production

Bibliothèques logicielles, adaptations à différents RTI

Sert à exprimer le formalismeHLA et plus

Sert tout au long de la mise en application de la méthodologie

de développement

Liens avec les moyens supports de HLA (RTI)

Page 8: Introduction à GENESIS - onera.fr · PDF fileFormalisme niveau 2 : les ajouts de GENESIS (1) Mais les notions HLA présentes dans les normes ne suffisent pas à aller jusqu’à produire

8

Cop

yrig

ht O

NER

A-D

GA

200

5. C

e do

cum

ent e

st la

pro

prié

té c

onjo

inte

de

l’ON

ERA

et d

e la

DG

A ;

il ne

peu

t être

com

mun

iqué

à d

es ti

ers

ou re

prod

uit

sans

son

aut

oris

atio

n pr

éala

ble

et é

crite

de

l’ON

ERA

ou d

e la

DG

A. C

onta

ct :

gene

sis@

oner

a.fr

Formalisme niveau 1 : la norme HLA

La grammaire du langage de description GenDL comprend environ 170 mots-clés et 130 règles. Tous les concepts des standards HLA NG 1.3 et IEEE 1516 sont représentés.

Name Representa-tion Units Resolu-

tion Accu-racy Semantics

HLAASCIIchar HLAoctet NA NA NA Standard ASCII character (see ANSI Std. X3.4-1986)

HLAunicodeChar HLAoctetPairBE NA NA NA

Unicode UTF-16 character (see The Unicode Standard, version 3.0)

HLAbyte HLAoctet NA NA NA Uninterpreted 8-bit byte

SimpleType HLAASCIIchar{/@semantic Standard ASCII character

(see ANSI Std. X3.4-1986)@/representation(HLAoctet);resolution(NA);accuracy(NA);units(NA);

};

La grammaire se déduit de la

norme

Cop

yrig

ht O

NER

A-D

GA

200

5. C

e do

cum

ent e

st la

pro

prié

té c

onjo

inte

de

l’ON

ERA

et d

e la

DG

A ;

il ne

peu

t être

com

mun

iqué

à d

es ti

ers

ou re

prod

uit

sans

son

aut

oris

atio

n pr

éala

ble

et é

crite

de

l’ON

ERA

ou d

e la

DG

A. C

onta

ct :

gene

sis@

oner

a.fr

Formalisme niveau 2 : les ajouts de GENESIS (1)

Mais les notions HLA présentes dans les normes ne suffisent pas à aller jusqu’à produire le code des fédérés, il faut ajouter d’autres notions :

BasicType HLAfloat64BE{bitssize(64);endian(big);encoding(HLAdefine);equivalentType(double);

};

1) Exemple : la notion de « type équivalent » pour les types de base

Processeur68XXX

« big endian »

ProcesseurX86

« little endian »

HLAfloat64BE

double double

Page 9: Introduction à GENESIS - onera.fr · PDF fileFormalisme niveau 2 : les ajouts de GENESIS (1) Mais les notions HLA présentes dans les normes ne suffisent pas à aller jusqu’à produire

9

Cop

yrig

ht O

NER

A-D

GA

200

5. C

e do

cum

ent e

st la

pro

prié

té c

onjo

inte

de

l’ON

ERA

et d

e la

DG

A ;

il ne

peu

t être

com

mun

iqué

à d

es ti

ers

ou re

prod

uit

sans

son

aut

oris

atio

n pr

éala

ble

et é

crite

de

l’ON

ERA

ou d

e la

DG

A. C

onta

ct :

gene

sis@

oner

a.fr

Formalisme niveau 2 : les ajouts de GENESIS (2)

2) La notion de modes « poussé » ou « tiré » pour les mises à jour d’attributs

La norme (partie OMT : FOM/SOM) HLA prévoit :

• Un fédéré peut souscrire ou publier un attribut de classe d’objets.• L’émission de l’attribut peut être static, periodic, conditional (at change)

La norme (spécification d’interface des RTI) permet :

• D’émettre une mise à jour (mode « poussé ») :UpdateAttributeValues / ReflectAttributeValues

• De demander une mise à jour (mode « tiré ») :RequestAttributeValues / ProvideAttributeValues

Cop

yrig

ht O

NER

A-D

GA

200

5. C

e do

cum

ent e

st la

pro

prié

té c

onjo

inte

de

l’ON

ERA

et d

e la

DG

A ;

il ne

peu

t être

com

mun

iqué

à d

es ti

ers

ou re

prod

uit

sans

son

aut

oris

atio

n pr

éala

ble

et é

crite

de

l’ON

ERA

ou d

e la

DG

A. C

onta

ct :

gene

sis@

oner

a.fr

Formalisme niveau 2 : les ajouts de GENESIS (3)

Pour cela nous avons fusionné ces notions dans le langage :

Federate SysAeronef{importedObjects :

Aeronef {nom {

sharing(publish);publishingsubmode(pushed);updatetype(static);

} position {

sharing(publish);updatetype(conditional, atChange);

}}

};

Page 10: Introduction à GENESIS - onera.fr · PDF fileFormalisme niveau 2 : les ajouts de GENESIS (1) Mais les notions HLA présentes dans les normes ne suffisent pas à aller jusqu’à produire

10

Cop

yrig

ht O

NER

A-D

GA

200

5. C

e do

cum

ent e

st la

pro

prié

té c

onjo

inte

de

l’ON

ERA

et d

e la

DG

A ;

il ne

peu

t être

com

mun

iqué

à d

es ti

ers

ou re

prod

uit

sans

son

aut

oris

atio

n pr

éala

ble

et é

crite

de

l’ON

ERA

ou d

e la

DG

A. C

onta

ct :

gene

sis@

oner

a.fr

Formalisme niveau 2 : les ajouts de GENESIS (4)

Ensuite il faut donner du « sens » aux différents modes et en tenir compte dans le code C++.

Le fédéré attend les demandespulled

Attribut émis périodiquementpushedperiodPeriodic

Le fédéré attend les demandespulled

Attribut émis quand une condition logique est vraiepushed

user define

Le fédéré attend les demandespulledAttribut réémis à chaque changementpushed

at change

Conditional

Le fédéré attend les demandespulledAttribut émis une fois, à l’initialisationpushed

at initStatic

P

SémantiquePoussé / Tiré

Update condition

Update typeP/S

Idem pour la souscription « S ».

Cop

yrig

ht O

NER

A-D

GA

200

5. C

e do

cum

ent e

st la

pro

prié

té c

onjo

inte

de

l’ON

ERA

et d

e la

DG

A ;

il ne

peu

t être

com

mun

iqué

à d

es ti

ers

ou re

prod

uit

sans

son

aut

oris

atio

n pr

éala

ble

et é

crite

de

l’ON

ERA

ou d

e la

DG

A. C

onta

ct :

gene

sis@

oner

a.fr

GENESIS : la méthodologie appliquée

Langage de description (GenDL)

Outil logiciel (GENESIS) de traitement du langage et de

production

Bibliothèques logicielles, adaptations à différents RTI

Sert à exprimer le formalismeHLA et plus

Sert tout au long de la mise en application de la méthodologie

de développement

Liens avec les moyens supports de HLA (RTI)

Page 11: Introduction à GENESIS - onera.fr · PDF fileFormalisme niveau 2 : les ajouts de GENESIS (1) Mais les notions HLA présentes dans les normes ne suffisent pas à aller jusqu’à produire

11

Cop

yrig

ht O

NER

A-D

GA

200

5. C

e do

cum

ent e

st la

pro

prié

té c

onjo

inte

de

l’ON

ERA

et d

e la

DG

A ;

il ne

peu

t être

com

mun

iqué

à d

es ti

ers

ou re

prod

uit

sans

son

aut

oris

atio

n pr

éala

ble

et é

crite

de

l’ON

ERA

ou d

e la

DG

A. C

onta

ct :

gene

sis@

oner

a.fr

FEDEP Federation Development and Execution Process

GENESIS est utilisable dans

toutes les phases de conception et

de développement (et une partie des

tests)

Cop

yrig

ht O

NER

A-D

GA

200

5. C

e do

cum

ent e

st la

pro

prié

té c

onjo

inte

de

l’ON

ERA

et d

e la

DG

A ;

il ne

peu

t être

com

mun

iqué

à d

es ti

ers

ou re

prod

uit

sans

son

aut

oris

atio

n pr

éala

ble

et é

crite

de

l’ON

ERA

ou d

e la

DG

A. C

onta

ct :

gene

sis@

oner

a.fr

FEDEP 1 : objectifs de la fédération

Pas d’aide de GENESIS

Page 12: Introduction à GENESIS - onera.fr · PDF fileFormalisme niveau 2 : les ajouts de GENESIS (1) Mais les notions HLA présentes dans les normes ne suffisent pas à aller jusqu’à produire

12

Cop

yrig

ht O

NER

A-D

GA

200

5. C

e do

cum

ent e

st la

pro

prié

té c

onjo

inte

de

l’ON

ERA

et d

e la

DG

A ;

il ne

peu

t être

com

mun

iqué

à d

es ti

ers

ou re

prod

uit

sans

son

aut

oris

atio

n pr

éala

ble

et é

crite

de

l’ON

ERA

ou d

e la

DG

A. C

onta

ct :

gene

sis@

oner

a.fr

FEDEP 2 : modèle conceptuel (1)

GENESIS : définition des objets, des

interactions, de leurs caractéristiques et types de données

GENESIS :possibilité de réutiliser des

scénarios existants

GENESIS : réutilisation de

modèles existants

Cop

yrig

ht O

NER

A-D

GA

200

5. C

e do

cum

ent e

st la

pro

prié

té c

onjo

inte

de

l’ON

ERA

et d

e la

DG

A ;

il ne

peu

t être

com

mun

iqué

à d

es ti

ers

ou re

prod

uit

sans

son

aut

oris

atio

n pr

éala

ble

et é

crite

de

l’ON

ERA

ou d

e la

DG

A. C

onta

ct :

gene

sis@

oner

a.fr

FEDEP 2 : modèle conceptuel (2)

1) Constitution de bibliothèques d'objets, interactions et types de données :2) Réutilisation de bibliothèques existantes :

Bibliothèque existanted'objets, d'interactions,

de typesExemple : RPR-FOM

GenDLTypes de données

Analyseur lexical et syntaxique

GenDLObjets,

Interactions, ...

LectureDonnées

collectées

Vérification

Production de code et de documents

Produit

DocumentationHTML

FOM/SOMCAPITALISATION

Page 13: Introduction à GENESIS - onera.fr · PDF fileFormalisme niveau 2 : les ajouts de GENESIS (1) Mais les notions HLA présentes dans les normes ne suffisent pas à aller jusqu’à produire

13

Cop

yrig

ht O

NER

A-D

GA

200

5. C

e do

cum

ent e

st la

pro

prié

té c

onjo

inte

de

l’ON

ERA

et d

e la

DG

A ;

il ne

peu

t être

com

mun

iqué

à d

es ti

ers

ou re

prod

uit

sans

son

aut

oris

atio

n pr

éala

ble

et é

crite

de

l’ON

ERA

ou d

e la

DG

A. C

onta

ct :

gene

sis@

oner

a.fr

FEDEP 2 : modèle conceptuel (3)

ObjectClass AggregateEntity : BaseEntity{/@semantics Un groupe d'objets qui fait

partie de la même organisation, ... @/

attributes:

AggregateMarkingStruct aggregateMarking {/@semantics Marque ou combinaison de ...@/UpdateType(static);

}AggregateStateEnum aggregateState {UpdateType(cond, AtChange);

}DimensionStruct dimensions {/@semantics Taille de la zone occupée par l'agrégat@/UpdateType(cond, AtChange);

}RTIObjectIdArrayStruct entityIdentifiers {/@semantics Il s'agit des identifications des entités qui sont contenues

dans l'agrégat.@/UpdateType(cond, AtChange);

}

...

Exemple : définition des classes d’objets (réutilisation d’un modèle existant, le RPR-FOM)

. . .

Cop

yrig

ht O

NER

A-D

GA

200

5. C

e do

cum

ent e

st la

pro

prié

té c

onjo

inte

de

l’ON

ERA

et d

e la

DG

A ;

il ne

peu

t être

com

mun

iqué

à d

es ti

ers

ou re

prod

uit

sans

son

aut

oris

atio

n pr

éala

ble

et é

crite

de

l’ON

ERA

ou d

e la

DG

A. C

onta

ct :

gene

sis@

oner

a.fr

FEDEP 2 : modèle conceptuel (4)

InteractionClass CreateSysObjectRequest: CreateObjectRequest

{parameters:HLAASCIIstring name;HLAASCIIstring techno;GeographicPositionStruct pos;HLAASCIIstring scenarioSysArme;

};

InteractionClass ConfigureMode: HLAinteractionRoot

{parameters:ModeSysArmeEnum mode;HLAboolean WRmemberOfFireUnit;HLAfloat64BE clockFactor;

};

...

Exemple : définition des interactions

. . .

Page 14: Introduction à GENESIS - onera.fr · PDF fileFormalisme niveau 2 : les ajouts de GENESIS (1) Mais les notions HLA présentes dans les normes ne suffisent pas à aller jusqu’à produire

14

Cop

yrig

ht O

NER

A-D

GA

200

5. C

e do

cum

ent e

st la

pro

prié

té c

onjo

inte

de

l’ON

ERA

et d

e la

DG

A ;

il ne

peu

t être

com

mun

iqué

à d

es ti

ers

ou re

prod

uit

sans

son

aut

oris

atio

n pr

éala

ble

et é

crite

de

l’ON

ERA

ou d

e la

DG

A. C

onta

ct :

gene

sis@

oner

a.fr

FEDEP 3 : conception de la fédération (1)

Federation Developmentand Execution Plan

List of selecting (existing) federates

GENESIS : conception détaillée des fédérés

GENESIS : réutilisation de fédérés existants

Cop

yrig

ht O

NER

A-D

GA

200

5. C

e do

cum

ent e

st la

pro

prié

té c

onjo

inte

de

l’ON

ERA

et d

e la

DG

A ;

il ne

peu

t être

com

mun

iqué

à d

es ti

ers

ou re

prod

uit

sans

son

aut

oris

atio

n pr

éala

ble

et é

crite

de

l’ON

ERA

ou d

e la

DG

A. C

onta

ct :

gene

sis@

oner

a.fr

Sources C++

Types

GenDLTypes de données

Données collectées

Production de code et de documents

Analyseur lexical et syntaxique

GenDLObjets,

Interactions, ...

Lecture

Produit

DocumentationHTML

FOM/SOM

Produit

Makefiles

Types LIB

Compilation

Produit

FEDEP 3 : conception de la fédération (2)

1) Version finale du modèle conceptuel (types de données et classes HLA) :

Production du modèle objet sous

forme de FOM

Production du code source des types

de données, compilation et tests

Page 15: Introduction à GENESIS - onera.fr · PDF fileFormalisme niveau 2 : les ajouts de GENESIS (1) Mais les notions HLA présentes dans les normes ne suffisent pas à aller jusqu’à produire

15

Cop

yrig

ht O

NER

A-D

GA

200

5. C

e do

cum

ent e

st la

pro

prié

té c

onjo

inte

de

l’ON

ERA

et d

e la

DG

A ;

il ne

peu

t être

com

mun

iqué

à d

es ti

ers

ou re

prod

uit

sans

son

aut

oris

atio

n pr

éala

ble

et é

crite

de

l’ON

ERA

ou d

e la

DG

A. C

onta

ct :

gene

sis@

oner

a.fr

FEDEP 3 : conception de la fédération (3)

BasicType HLAfloat64BE /@noteIEEE_1@/{/@semantics Double-precision

floating-point number @/

bitssize(64);endian(big);encoding(HLAdefine);equivalentType(double);

};

BasicType HLAoctetPairBE /@noteIEEE_1@/{/@semantics 16-bit value @/bitssize(16);endian(big);encoding(HLAdefine) /@Portable@/;equivalentType(short);

};...

Exemple : bibliothèque de types de base définis par la norme IEEE 1516

. . .

Cop

yrig

ht O

NER

A-D

GA

200

5. C

e do

cum

ent e

st la

pro

prié

té c

onjo

inte

de

l’ON

ERA

et d

e la

DG

A ;

il ne

peu

t être

com

mun

iqué

à d

es ti

ers

ou re

prod

uit

sans

son

aut

oris

atio

n pr

éala

ble

et é

crite

de

l’ON

ERA

ou d

e la

DG

A. C

onta

ct :

gene

sis@

oner

a.fr

Données collectées

Production de code et de documents

Analyseur lexical et syntaxique

Lecture

Produit

DocumentationHTML

FOM/SOM

GenDLFédérés(imports d’objets,

interactions,…)

FEDEP 3 : conception de la fédération (4)

2) Identification des fédérés : définitions de leurs rôles (publications, souscriptions aux classes d’objets, d’interactions et de points de synchronisation).

Vérification

CAPITALISATION

Fédérés nouveaux ou pré-existants

(rétro-engineering de leurs SOM)

Page 16: Introduction à GENESIS - onera.fr · PDF fileFormalisme niveau 2 : les ajouts de GENESIS (1) Mais les notions HLA présentes dans les normes ne suffisent pas à aller jusqu’à produire

16

Cop

yrig

ht O

NER

A-D

GA

200

5. C

e do

cum

ent e

st la

pro

prié

té c

onjo

inte

de

l’ON

ERA

et d

e la

DG

A ;

il ne

peu

t être

com

mun

iqué

à d

es ti

ers

ou re

prod

uit

sans

son

aut

oris

atio

n pr

éala

ble

et é

crite

de

l’ON

ERA

ou d

e la

DG

A. C

onta

ct :

gene

sis@

oner

a.fr

FEDEP 3 : conception de la fédération (2)

Federate FedTR{importedInteractions:

ConfigureMode {sharing(subscribe);order(timestamp);

}

CreateSysObjectRequest {sharing(subscribe);order(timestamp);

}

ChangeStatusRequest_TR {sharing(subscribe);order(timestamp);

}

MsgStatus_TR {sharing(publish);order(timestamp);

}

...

Exemple : définir les rôles de chaque fédéré en matière de publications - souscriptions

. . .

Cop

yrig

ht O

NER

A-D

GA

200

5. C

e do

cum

ent e

st la

pro

prié

té c

onjo

inte

de

l’ON

ERA

et d

e la

DG

A ;

il ne

peu

t être

com

mun

iqué

à d

es ti

ers

ou re

prod

uit

sans

son

aut

oris

atio

n pr

éala

ble

et é

crite

de

l’ON

ERA

ou d

e la

DG

A. C

onta

ct :

gene

sis@

oner

a.fr

FEDEP 4 : développement de la fédération (1)

Fed Devand Exec Plan

List of (existing) federates

GENESIS : réutilisation de modèles conceptuels

GENESIS : production de codes et de docs

Page 17: Introduction à GENESIS - onera.fr · PDF fileFormalisme niveau 2 : les ajouts de GENESIS (1) Mais les notions HLA présentes dans les normes ne suffisent pas à aller jusqu’à produire

17

Cop

yrig

ht O

NER

A-D

GA

200

5. C

e do

cum

ent e

st la

pro

prié

té c

onjo

inte

de

l’ON

ERA

et d

e la

DG

A ;

il ne

peu

t être

com

mun

iqué

à d

es ti

ers

ou re

prod

uit

sans

son

aut

oris

atio

n pr

éala

ble

et é

crite

de

l’ON

ERA

ou d

e la

DG

A. C

onta

ct :

gene

sis@

oner

a.fr

Données collectées

Production de code et de documents

Analyseur lexical et

syntaxique

Sources C++ Types,Objets ,

Interactions, Fédérés

GenDL« métier » dans les fédérésLecture

Produit

MakefilesRTI

GenesisLib

VirtualRTI Lib

Fédérés Types , objets Lib

Compilation

Produit

« Métier » Lib

FEDEP 4 : développement de la fédération (2)

Développement des fédérés : liens avec le « métier », description finale du scénario, politique de gestion du temps, procédures de démarrage et de fin ...

Vérification

Production de l’ensemble du code nécessaire aux

fédérés.Eléments pour le compiler

Cop

yrig

ht O

NER

A-D

GA

200

5. C

e do

cum

ent e

st la

pro

prié

té c

onjo

inte

de

l’ON

ERA

et d

e la

DG

A ;

il ne

peu

t être

com

mun

iqué

à d

es ti

ers

ou re

prod

uit

sans

son

aut

oris

atio

n pr

éala

ble

et é

crite

de

l’ON

ERA

ou d

e la

DG

A. C

onta

ct :

gene

sis@

oner

a.fr

FEDEP 4 : développement de la fédération (3)

Federate FedTR{importedInteractions:

ConfigureMode {

FactoryInclude /{#include "HLAToFactory.h"#include "FedTR.h"

}/

sharing(subscribe);order(timestamp);

triggerReceive DontCallSuper/{

FedTR* theFed = static_cast(getFederate());theFed->scheduler->setMode(HLA_to_Mode(thisInteraction->get_mode()));theFed->scheduler->setWRMOFU(thisInteraction->get_WRmemberOfFireUnit());theFed->scheduler->setClockFactor(thisInteraction->get_clockFactor());

}/}

...

Exemple : on ajoute le lien avec le « métier » dans une interaction nommée ConfigureMode.

Page 18: Introduction à GENESIS - onera.fr · PDF fileFormalisme niveau 2 : les ajouts de GENESIS (1) Mais les notions HLA présentes dans les normes ne suffisent pas à aller jusqu’à produire

18

Cop

yrig

ht O

NER

A-D

GA

200

5. C

e do

cum

ent e

st la

pro

prié

té c

onjo

inte

de

l’ON

ERA

et d

e la

DG

A ;

il ne

peu

t être

com

mun

iqué

à d

es ti

ers

ou re

prod

uit

sans

son

aut

oris

atio

n pr

éala

ble

et é

crite

de

l’ON

ERA

ou d

e la

DG

A. C

onta

ct :

gene

sis@

oner

a.fr

FEDEP 4 : développement de la fédération (4)

Production de fichiers de configuration, de documentation à

différents formats définis par les normes NG1.3 et

IEEE 1516

Données collectées

Production de code et de documents

Analyseur lexical et syntaxique

ProduitConfiguration

Files.fed, .xml,

.omt

GenDLTypes de données

GenDLObjets,

Interactions, ...GenDL

Fédérés,Fédération

Lecture

Cop

yrig

ht O

NER

A-D

GA

200

5. C

e do

cum

ent e

st la

pro

prié

té c

onjo

inte

de

l’ON

ERA

et d

e la

DG

A ;

il ne

peu

t être

com

mun

iqué

à d

es ti

ers

ou re

prod

uit

sans

son

aut

oris

atio

n pr

éala

ble

et é

crite

de

l’ON

ERA

ou d

e la

DG

A. C

onta

ct :

gene

sis@

oner

a.fr

FEDEP 4 : développement de la fédération (5)

...(class ConfigureMode reliable timestamp(parameter mode)(parameter WRmemberOfFireUnit)(parameter clockFactor)

)(class CreateObjectRequest reliable timestamp(parameter objectClassIdentifier)(parameter attributeValueSet)(parameter requestIdentifier)(class CreateSysObjectRequest reliable timestamp(parameter name)(parameter techno)(parameter pos)(parameter scenarioSysArme)

))

...

...<interactionClass name="ConfigureMode"

sharing="PublishSubscribe"transportation="HLA_reliable"order="TimeStamp"><parameter name="mode« dataType="ModeSysArmeEnum"/><parameter name="WRmemberOfFireUnit" dataType="HLAboolean"/><parameter name="clockFactor" dataType="HLAfloat64BE"/>

</interactionClass><interactionClass name="CreateEntity"

sharing="Neither"semantics="Une Interaction Simulation Management (SIMAN),

envoyée d'un Manager de Simulation Manager pour demander qu'une application (fédéré) crée une entité. En réponse, une interaction Acknowledge est envoyée. ">

<parameter name="originatingEntity" dataType="EntityIdentifierStruct"/><parameter name="receivingEntity" dataType="EntityIdentifierStruct"

semantics="Si le champ EntityNumber a pour valeur RQST_ASSIGN_ID, alors l'application qui reçoit l'interaction doit assigner le numéro de l'entité. "/>

...

Exemples : fichiers « FED » et « XML »

Page 19: Introduction à GENESIS - onera.fr · PDF fileFormalisme niveau 2 : les ajouts de GENESIS (1) Mais les notions HLA présentes dans les normes ne suffisent pas à aller jusqu’à produire

19

Cop

yrig

ht O

NER

A-D

GA

200

5. C

e do

cum

ent e

st la

pro

prié

té c

onjo

inte

de

l’ON

ERA

et d

e la

DG

A ;

il ne

peu

t être

com

mun

iqué

à d

es ti

ers

ou re

prod

uit

sans

son

aut

oris

atio

n pr

éala

ble

et é

crite

de

l’ON

ERA

ou d

e la

DG

A. C

onta

ct :

gene

sis@

oner

a.fr

FEDEP 5-7 : tests, exécution et résultats

Pas d’aide de GENESIS (sauf pour une partie des tests)

Cop

yrig

ht O

NER

A-D

GA

200

5. C

e do

cum

ent e

st la

pro

prié

té c

onjo

inte

de

l’ON

ERA

et d

e la

DG

A ;

il ne

peu

t être

com

mun

iqué

à d

es ti

ers

ou re

prod

uit

sans

son

aut

oris

atio

n pr

éala

ble

et é

crite

de

l’ON

ERA

ou d

e la

DG

A. C

onta

ct :

gene

sis@

oner

a.fr

GENESIS : les moyens supports (1)

Langage de description (GenDL)

Outil logiciel (GENESIS) de traitement du langage et de

production

Bibliothèques logicielles, adaptations à différents RTI

Sert à exprimer le formalismeHLA et plus

Sert tout au long de la mise en application de la méthodologie

de développement

Liens avec les moyens supports de HLA (RTI)

Page 20: Introduction à GENESIS - onera.fr · PDF fileFormalisme niveau 2 : les ajouts de GENESIS (1) Mais les notions HLA présentes dans les normes ne suffisent pas à aller jusqu’à produire

20

Cop

yrig

ht O

NER

A-D

GA

200

5. C

e do

cum

ent e

st la

pro

prié

té c

onjo

inte

de

l’ON

ERA

et d

e la

DG

A ;

il ne

peu

t être

com

mun

iqué

à d

es ti

ers

ou re

prod

uit

sans

son

aut

oris

atio

n pr

éala

ble

et é

crite

de

l’ON

ERA

ou d

e la

DG

A. C

onta

ct :

gene

sis@

oner

a.fr

GENESIS : les moyens supports (2)

Une bibliothèque logicielle implémente des actions standards dans des super-classes : types de données, objets, interactions, fédérés, …

Cette bibliothèque est indépendante des RTI et de la norme utilisée.

Une autre bibliothèque, assure le lien avec les RTI : pour utiliser un nouvel RTI, c’est le seul élément de GENESIS à modifier : le RTI Virtuel (VRTI)

La bibliothèque GENESIS, le RTI virtuel et le RTI sont « linkés »

avec le code C++ généré

RTI

GenesisLib

VirtualRTI Lib

Fédérés

Cop

yrig

ht O

NER

A-D

GA

200

5. C

e do

cum

ent e

st la

pro

prié

té c

onjo

inte

de

l’ON

ERA

et d

e la

DG

A ;

il ne

peu

t être

com

mun

iqué

à d

es ti

ers

ou re

prod

uit

sans

son

aut

oris

atio

n pr

éala

ble

et é

crite

de

l’ON

ERA

ou d

e la

DG

A. C

onta

ct :

gene

sis@

oner

a.fr

GENESIS : les moyens supports (3)

La connaissance de la bibliothèque GENESIS est nécessaire pour coder les actions « métier » qui permettent notamment :• les émissions d’interactions,• les actions à la réception d’interactions,• les actions à la découverte ou à la disparition d’une instance d’objet,• les mises à jour des attributs d’objets,• la pose d’un point de synchronisation et sa réalisation, etc.

Deux choses à connaître pour développer des

fédérés complets avec GENESIS

Le langageGenDL

Les principes d’utilisation de la

bibliothèque GENESIS

Page 21: Introduction à GENESIS - onera.fr · PDF fileFormalisme niveau 2 : les ajouts de GENESIS (1) Mais les notions HLA présentes dans les normes ne suffisent pas à aller jusqu’à produire

21

Cop

yrig

ht O

NER

A-D

GA

200

5. C

e do

cum

ent e

st la

pro

prié

té c

onjo

inte

de

l’ON

ERA

et d

e la

DG

A ;

il ne

peu

t être

com

mun

iqué

à d

es ti

ers

ou re

prod

uit

sans

son

aut

oris

atio

n pr

éala

ble

et é

crite

de

l’ON

ERA

ou d

e la

DG

A. C

onta

ct :

gene

sis@

oner

a.fr

GENESIS : les moyens supports (4)

Le principe MVC « Modèle – Vue – Contrôleur » a été adopté pour le fonctionnement interne des fédérés.

1. Le modèle : une classe C++ pour chaque classe HLA (d’objets, d’interactions). Stocke l’état (attributs).

2. La vue : une autre classe C++ pour chaque classe HLA (avec le code « métier » de l’utilisateur).

3. Le contrôleur : le fédéré. Il reçoit les messages et assure un décodage partiel pour les diriger vers la bonne « Vue ».

View (Behaviour)UserClasses

ModelHLA object

model classes

ControlFederateClass

get<Object/Interaction>()

getBehaviour()

Applycallback

getFederate()

ModifyModel

getFederate()

EVENT

Cop

yrig

ht O

NER

A-D

GA

200

5. C

e do

cum

ent e

st la

pro

prié

té c

onjo

inte

de

l’ON

ERA

et d

e la

DG

A ;

il ne

peu

t être

com

mun

iqué

à d

es ti

ers

ou re

prod

uit

sans

son

aut

oris

atio

n pr

éala

ble

et é

crite

de

l’ON

ERA

ou d

e la

DG

A. C

onta

ct :

gene

sis@

oner

a.fr

CONCLUSION

Questions ?

Formation à GENESIS

• Quatre jours de formation théorique / pratique

• Une fédération sert de « fil rouge » : Quatre fédérés, dont un est fourni et qu’il faut intégrer aux trois autresDomaine : détection Radar, objets « Avion », « Radar », interaction « Plot »Suivi du processus FEDEP, y compris exécution de la fédération