1 La RTI 1.3NG du DoD et les systèmes supports Patrice Torguet IRIT
2 1 – La RTI 1.3NG L’implémentation a pris en compte l’expérience acquise lors du développement des précédentes versions de la RTI du DoD (RTI 1.0, STOW RTI, RTI 1.3…) Mais, aucun code n’a été réutilisé Objectifs de l’implantation : –Etre compatible avec la norme –Haute performance –Configurable –Portable
3 1 – La RTI 1.3NG Compatibilité avec la norme –Un ensemble de test automatisé a été mis en place –Compatibilité au niveau du code avec la version précédente (il suffit de recompiler) Haute performance –Utilisation d’un outil de benchmark –Définition de « chemins de données critiques » pour les fonctionnalités les plus utilisées (exemple mise à jour d’attributs) => optimisation en évitant, par exemple, au maximum les copies mémoires
4 1 – La RTI 1.3NG Configurabilité –Abstractions => pour pouvoir changer les composants internes –Exemples : modèle de « threading », algorithmes d’adressage et de routage des données, type de communication à utiliser (reliable = TCP ou UDPmulticast, best effort = UDPmulticast ou TCP) –Configuration => Fichier RTI Initialization Data (RID) ou dynamiquement Portabilité –Windows 98, NT, 2K, Solaris, SGI IRIX, Linux, HP- UX, AIX, DEC Digital Unix et VxWorks –Utilise ACE (Adaptative Communication Environment) et TAO (The ACE ORB)
5 1 – La RTI 1.3NG
6 Paquetages (ensembles de classes) –Couche Présentation plusieurs fédérés et plusieurs fédérations dans un seul processus –Modèle de processus gère les différents modèles de « threading » –Gestion des données gère la publication, l’abonnement, la propriété et le routage des données des fédérations –Gestion du temps gère la synchronisation du traitement des événements par les fédérés d’une simulation –Couche d’abstraction Réseau sépare les composants internes de la RTI de tout ce qui concerne l’OS et les mécanismes d’interconnexion
7 1 – La RTI 1.3NG Gestion du « threading » –un seul thread => appel à une méthode « tick » qui fait du polling réseau –un seul thread + « tick » + thread asynchrone pour gérer la réception des données venant du réseau –multi-thread complet (pas encore disponible apparemment) => protection des données RTI par un sémaphore global : un seul appel à la fois => ceci pourra être amélioré par la suite
8 1 – La RTI 1.3NG Gestion des données –publication/abonnement => filtrage classe par classe –on définit dans le.fed la QoS (best effort/reliable et receive/timestamp order) pour chaque attribut d’objet et pour chaque interaction –espaces de routage (DDM : Data Distribution Management) => filtrage instance par instance –Le DDM permet de créer des régions qui sont mappées sur des canaux TCP et/ou des adresses multicast IP Gestion du temps –Les fédérés peuvent être contraint par rapport au temps ou non –L’algorithme utilisé pour gérer le temps est basé sur « Mattern’s Global Virtual Time »
9 2 – ACE (Adaptive Communication Environment) ACE est un environnement de programmation orienté objet, open source gratuit qui implémente de nombreux « design patterns » utilisés dans les applications réparties. Il offre un ensemble de wrappers C++ qui permettent de rester indépendant de l’OS Il propose : –La gestion d’événements ; Le traitement de signaux –La communication inter processus ; –La gestion de mémoire partagée ; La synchronisation –La gestion de threads ;Le routage de messages –La (re)configuration de services répartis
10 2 – ACE (Adaptive Communication Environment) Porté et testé sur les plate formes suivantes : –Win32 (NT, 9x et WinCE) –UNIX : Solaris, SGI IRIX, HP/UX, DEC Digital Unix, AIX, SCO, Linux, FreeBSD… –OS temps réels (LynxOS, VxWorks, Chorus, QNX Neutrino et PSoS) –CRAY UNICOS –Java
11 2 – ACE (Adaptive Communication Environment)
12 3 – TAO (The ACE ORB) TAO est une implémentation open source gratuite de la spécification 2.4 de CORBA. TAO propose en plus des services standards : –Un service temps-réel de gestion des événements qui offre un filtrage des événements en fonction de leur source ou de leur type, la corrélation des évènements, la distribution temps-réel des événements et l’échange d’événements avec le multicasting UDP. –Un service temps-réel d’ordonnancement de tâches qui offre un ordonnancement statique et/ou dynamique. Ils sont en train d’implémenter un service qui se conforme à la nouvelle spécification temps-réel de CORBA et à la future spécification de l’ordonnancement dynamique.
13 3 – TAO (The ACE ORB)
14 4 – RTI et Open Source ? Pour l’instant RTI 1.3NG n’est pas open source Mais elle est basée sur ACE et TAO qui eux le sont
15 5 – Autres RTI MÄK technologies propose une RTI qui est compatible avec celle du DoD et sensée être plus rapide (elle n’utilise pas de RTI exécutive ou d’autre serveur central et elle peut être configurée pour faire du broadcast ou du multicast) et est disponible gratuitement mais elle n’implante pas tout pRTI (portable RTI) de Pitch AB (société suédoise) est une RTI commerciale qui implante toute la norme et a été totalement certifiée