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
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
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
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)
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.
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)
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)
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
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);
}}
};
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)
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
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
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
. . .
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
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)
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
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.
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 »
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)
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
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