Cours 10 De l`entité autonomique - Master informatique

Transcription

Cours 10 De l`entité autonomique - Master informatique
—
Composition
Contractualisation
Simulation
Validation
—
—
Composition
Contractualisation
ALASCA — Architecture logicielles avancées
pour les systèmes complexes auto-adaptables
Simulation
Validation
—
Cours 10
c 2014–2016 Jacques Malenfant
De l’entité autonomique
Master informatique, spécialité STL – UFR 919 Ingénierie
Université Pierre et Marie Curie
[email protected]
1 / 58
—
Composition
Contractualisation
Simulation
Validation
—
Objectifs pédagogiques du cours 10
2 / 58
—
Composition
Contractualisation
Simulation
Validation
—
Plan
Comprendre les problématiques liés à la création d’une entité
autonomique par composition entre une entité adaptable et une
entité de contrôle.
Introduire la contractualisation comme moyen d’exprimer et de
vérifier les engagements réciproques entre entités adaptables et
entités de contrôle.
Étudier plus précisément la simulation comme moyen pour
supporter les tests, l’identification au déploiement des modèles
comportementaux, la détermination de la loi de contrôle et la
vérification dynamique des entités autonomiques.
3 / 58
1
Composition et déploiement
2
Contrats de contrôle
3
Techniques de simulation
4
Simulation et validation des systèmes autonomiques
4 / 58
—
Composition
Contractualisation
Auto-adaptabilité = contrôle
Simulation
Validation
—
adaptabilité
—
Composition
Contractualisation
Simulation
Validation
—
Principales activités à conduire pour la composition
Cours 6 à 9 : conception, implantation et tests fonctionnels
unitaires des entités adaptables et de contrôle individuellement.
Pour la composition, en phase de développement :
L’auto-adaptabilité est la composition verticale entre la fonction
de contrôle et les capacités d’introspection et d’adaptation d’un
système.
1
Recadrée dans le contexte des architectures logicielles, cette
composition conceptuelle devient la connexion d’une entité
adaptable avec une entité de contrôle.
2
3
Informatiquement parlant, cela revient à créer les liens entre les
deux entités, comment la connexion de ports via des connecteurs
dans une architecture à base de composants.
Vérification statique de la conformité des interfaces capteurs et
actionneurs requises et offertes et de leurs contrats.
Test d’intégration et vérification des contrats avec l’environnement.
Identification du domaine de fonctionnement correct.
Puis en phase de déploiement :
1
2
3
Sur le fond, la difficulté est moins dans l’établissement de ces
liens que dans l’obtention d’un bon comportement conjoint des
deux entités.
4
Détermination de la répartition sur l’architecture physique.
Connexion explicite entre les deux entités.
Identification des paramètres des modèles et des contrats.
Configuration des paramètres de fonctionnement des capteurs,
des actionneurs et du contrôleur.
Et enfin en phase d’exécution :
Note : la composition horizontale, entre contrôles, se réalise parfois par fusion,
1
mais plus généralement par coopération et coordination, sujets du cours 12.
2
Supervision et vérification dynamique des contrats.
Adaptation dynamique du contrôle (cours 13).
5 / 58
—
Composition
Contractualisation
Simulation
Validation
—
Tests et domaine de fonctionnement
6 / 58
—
Composition
Contractualisation
Simulation
Validation
—
Déploiement réparti et localisation
Ordinateur physique
Choix de localisation possibles :
Tests unitaires :
tester individuellement la fonctionnalité, avec des « bouchons »
pour remplacer les entités non-disponibles ;
compléter les « bouchons » fonctionnels déjà bien connus par des
« bouchons » de comportement plus rarement étudiés ;
les modèles de comportement fournissent des « bouchons » pour
générer des valeurs de capteurs réalistes.
contrôleur purement délibératif ou partie
délibérative d’un contrôleur hybride peut être
distant (a, b) de l’entité adaptable puisque ces
contrôleurs ne garantissent pas leurs délais de
réactions, donc les délais de communication
aléatoires sont absorbés dans la durée aléatoire
des calculs du contrôleur ;
il peut aussi être co-localisé (d, e) ;
contrôleur purement réactif ou encore partie
réactive d’un contrôleur hybride, généralement
co-localisé avec l’entité adaptable pour éviter les
délais aléatoires dans la communication par
réseau (a, c).
Tests d’intégration : les « bouchons » sont progressivement
retirés au profit des entités réelles, sauf qu’on en reste à des cas
génériques testés selon plusieurs hypothèses en modifiant les
paramètres des modèles.
Domaine de fonctionnement : une étude systématique faisant
varier les modèles de l’environnement et du contexte de
déploiement permet d’identifier les plages de valeurs de
paramètres pour lesquelles l’entité autonomique fonctionnera
correctement.
IP
IP
Contrôleur
réactif
Entité
adaptable
(b)
(a)
Ordinateur physique
Ordinateur physique
Contrôleur
purement
réactif
Contrôleur
délibératif
Entité
adaptable
Contrôleur
réactif
Entité
adaptable
(c)
Ordinateur physique
Contrôleur
purement
délibératif
l’entité adaptable est le sujet d’étude des systèmes de contrôle
7 / 58
Contrôleur
délibératif
Entité
adaptable
Note : la délocalisation des contrôleurs réactifs par rapport à
en réseau déjà évoqués.
Ordinateur physique
Contrôleur
délibératif
(d)
Entité
adaptable
(e)
8 / 58
—
Composition
Contractualisation
Simulation
Validation
—
Critères de choix du déploiement
—
Composition
Contractualisation
Simulation
Validation
Identification des modèles au déploiement
Le choix du bon déploiement dépend du contrôle employé, mais
aussi de considérations d’architecture physique :
Rappel : en phase de conception, les modèles de comportement
et de l’environnement demeurent génériques car contextes de
déploiement pas encore connus ou trop variés.
si la fréquence de contrôle est élevée et les ressources
disponibles limitées, les solutions purement réactives ou hybrides
à partie délibérative délocalisée s’imposent ;
si la fréquence de contrôle est élevée et les ressources
disponibles suffisantes, une solution hybride co-localisée pourra
être privilégiée ;
si la fréquence du contrôle est faible, une solution purement
délibérative peut être employée, co-localisée ou non selon les
resources disponibles.
La détermination des paramètres pour une loi de commande
correcte dépendent de modèles de comportement précis.
Idée : au déploiement, soumettre l’architecture logicielle à un jeu
scénarios simulant l’environnement pour
mesurer le comportement de l’entité adaptable,
puis estimer les paramètres du modèle de comportement.
Il s’agit donc d’orchestrer les fonctionnalités introduites à cette fin
dans les entités adaptable et de contrôle.
Dans le cas d’un contrôleur hybride, les interactions entre les
parties délibérative et réactive seront aussi impactés :
un contrôleur hybride en supervision hiérarchique suggère la
co-localisation des parties délibératives et réactives ;
symétriquement, des parties délibératives et réactives distantes
poussent plutôt vers une implantation en contrôle adaptatif.
Ensuite, pour le modèle de l’environnement, selon les cas il peut
devenir nécessaire de collecter des données pendant l’exécution
réelle du système pour l’identifier correctement.
9 / 58
—
Composition
Contractualisation
—
Simulation
Validation
—
Plan
10 / 58
—
Composition
Contractualisation
Simulation
Validation
—
Qu’est-ce que la programmation contractuelle ?
1
Composition et déploiement
2
Contrats de contrôle
3
Techniques de simulation
4
Simulation et validation des systèmes autonomiques
Idée : organiser la relation client/serveur autour d’engagements
réciproques et un raisonnement de type hypothèses/garanties.
Trois principaux types de contraintes :
pré-conditions : conditions devant être remplies par le requérant
lors d’un appel à l’offrant ;
post-conditions : garanties apportées par l’offrant si le requérant a
respecté ses pré-conditions ;
invariants : relations maintenues pendant son exécution, sauf
peut-être pendant ses changements d’états.
Raisonnement hypothèses/garanties :
Sous l’hypothèse que ses pré-conditions et l’invariant sont observés, le code
appelé garantit de rendre un résultat et un état de système respectant les
post-conditions et l’invariant.
Introduite principalement par B. Meyer en Eiffel, où ces
contraintes font partie intégrante du langage, à partir d’une
théorie appelée sémantique axiomatique.
11 / 58
12 / 58
—
Composition
Contractualisation
Simulation
Validation
—
Contrats dans les architectures logicielles
—
Composition
Contractualisation
Simulation
Validation
Contrats dans les architectures autonomiques
La programmation contractuelle peut être étendue au-delà de la
relation client/serveur à toute composition entre entités logicielles.
Engagements réciproques entre entités adaptable et de contrôle
pour couvrir :
Notion déclinée dans plusieurs contextes, dont par exemple :
1
modèles à composants, par extension de leur interprétation dans
le monde des objets aux interfaces offertes et requises, plutôt
orienté fonctionnel ;
architectures fondées sur les services : « service level
agreements, service level objectives » (SLA/SLO), plus QdS.
2
3
4
Contrats sur les interfaces :
interfaces requises : contrats requis R
interfaces offertes : contrats offerts O
connexion : conformité entre contrats
des aspects fonctionnels, comme les signatures et les pré- et
post-conditions sur les interfaces capteurs et actionneurs ;
des aspects non-fonctionnels, comme la précision des valeurs de
capteurs ;
des aspects de qualité de service, comme la durée d’exécution
des actionneurs ;
des aspects de qualité de contrôle, comme le domaine de stabilité
du contrôle, le délai de réglage, ou le taux de variation maximal
des valeurs de capteurs que le contrôleur peut traiter.
Avant d’aborder les derniers aspects, peu abordés jusqu’ici,
regardons brièvement ce qui s’est fait dans le domaine de la
qualité de service.
O =) R
Ex. : durée requise < 5 =) durée offerte < 10
13 / 58
—
Composition
Contractualisation
Simulation
Validation
—
Expression des contrats fonctionnels et de qualité de service
2
3
14 / 58
—
Composition
Contractualisation
Simulation
Validation
—
Exemple QML : serveur de taux de change
interface RateServiceI {
Rates latest(in Currency c1, in Currency c2) ;
Forecast analysis(in Currency c) ;
}
Besoin pour les contrats de QdS : langage permettant
1
—
d’exprimer les contraintes requises et offertes,
de vérifier la conformité d’un contrat offert avec un requis, et
d’assurer le respect des contrats à l’exécution.
type Reliability = contract {
numberOfFailures : decreasing numeric no / year ;
TimeToRepair : decreasing numeric sec ;
availability : increasing numeric ;
}
type Performance = contract {
delay : decreasing numeric msec ;
throughput : increasing numeric no / sec ;
}
systemReliability = Reliability contract {
numberOfFailures < 10 no / year ;
TimeToRepair { percentile 100 < 20000 ; mean < 500 ; variance < 0.3 }
availability > 0.8 ;
}
rateServerProfile for RateServiceI = profile {
require systemReliability ;
// apply to all operations
from latest require Performance contract {
// refinements
delay { percentile 50 < 10 msec ;
percentile 80 < 20 msec ;
percentile 100 < 40 msec ; }
} ;
from analysis require Performance contract { delay < 4000 msec ; } ;
}
Un exemple : QML (Quality of service Modeling Language), dont
les concepts fondamentaux sont :
dimension de QdS : propriété nommée, avec son type de valeurs
et autres informations ;
type de contrats : un ensemble de dimensions caractérisant une
catégorie de QdS comme la performance, la disponibilité, la
sécurité ou le temps ;
contrat : instantiation d’un type de contrats avec des contraintes
particulières pour une certaine catégorie de QdS ;
profil : association d’un contrat à une interface.
15 / 58
16 / 58
—
Composition
Contractualisation
Simulation
Validation
—
De la qualité de service au contrôle
—
2
3
4
Contractualisation
Simulation
Validation
Communication de données par réseau sans fil :
l’application de l’adaptation de compression des données résulte
dans une diminution correspondante de la consommation de
bande passante (selon le taux de compression) ;
la période entre les adaptations ne doit pas être inférieure à la
durée de l’adaptation (si elle n’est pas interruptible).
stabilité
précision (accuracy )
réactivité (short settling time)
économie des moyens (small/no overshoot)
Il est essentiel de pouvoir analyser ces propriétés, ce qui
demande d’identifier les opérations d’adaptation par leurs effets
sur ses propriétés contrôlables et d’en fixer les limites
acceptables pour garantir les propriétés SASO.
Dans le meilleur des cas, il est souhaitable qu’il existe une
relation déterministe simple entre l’ampleur d’une opération
d’adaptation et l’ampleur de son impact.
En pratique, cela peut devenir plus compliqué et supposer
l’expression complète des modèles de comportement et de
contrôle (hybrides) dans le contrat de contrôle.
Allocation de machines virtuelles à une applications :
à taux d’arrivée des requêtes constant, l’ajout de machines
virtuelles résulte dans une diminution quantifiable de la durée de
traitement des requêtes (attente plus service) ;
la plage de variation de la dérivée du taux d’arrivée des requêtes
contrôlable fixée à partir des taux maximaux d’allocation ou de
désallocation des machines virtuelles.
Mais, rappelons que l’effet des opérations d’adaptation peut aussi
être aléatoire, voire non-déterministe, au prix d’un contrôle plus
complexe.
17 / 58
—
Composition
Contractualisation
Simulation
—
Exemples de propriétés de contrôle à exprimer
En contrôle, quatre propriétés importantes en caractérisent la
qualité, les propriétés dîtes SASO :
1
Composition
Validation
—
Contrat de contrôle, côté entité adaptable
18 / 58
—
Composition
Contractualisation
Simulation
Validation
—
Contrats individuels sur les capteurs et actionneurs
Objectif : capturer les relations entre actionneurs et capteurs
permettant de caractériser le modèle de l’entité et de construire
un modèle de contrôle correct.
Les interfaces capteurs sont contractualisées sur leurs
méta-propriétés, incluant celles des mesures sous-jacentes.
Contrat logique : détermine quels actionneurs impactent quels
capteurs.
Contrat qualitatif : étend le contrat logique en donnant des relations
qualitatives entre les actions d’adaptation des
actionneurs et l’évolution des mesures observables sur
les capteurs (directions, ordres de grandeurs,
raisonnement dans l’imprécision).
Contrat quantitatif : étend le contrat qualitatif en donnant des relations
mathématiques entre les actions d’adaptation des
actionneurs et les mesures qui seront obtenues sur les
capteurs.
Les interfaces actionneurs peuvent être contractualisées sur leurs
méta-propriétés, incluant celles des opérations d’adaptation.
Pré-conditions : période d’appel.
Post-conditions : délai de mise en route, latence, fraîcheur des
données, cohérence temporelle, coût.
Invariants : mesures utilisées (qualitatif), portée des mesures,
réactivité, précision, biais, erreur, corrélation entre capteurs.
Pré-conditions : fonctionnelles (paramètres, état de l’entité) +
période minimale entre appels.
Post-conditions : fonctionnelles (résultats, état de l’entité) + durée,
coûts en ressources.
Invariants : fonctionnels (état de l’entité).
La notion de « relation » déborde des possibilités des contrats à
la QML, et sont beaucoup plus difficile à manier (conformité, ...).
19 / 58
20 / 58
—
Composition
Contractualisation
Simulation
Validation
—
Relations entre actionneurs et capteurs
—
3
4
Simulation
Validation
Côté entité de contrôle, il exprime
1
Propriétés adaptables affectées par chacun des actionneurs.
Délais entre le lancement d’une adaptation et la stabilisation des
valeurs des propriétés adaptables puis le moment où elles seront
lisibles via les capteurs.
Engagement quantitatif entre l’ampleur de l’adaptation et
l’ampleur de son impact sur les valeurs stabilisées des propriétés
adaptables touchées.
Mieux, évolution temporelle des valeurs des propriétés adaptables
entre la fin de l’opération d’adaptation et leur stabilisation.
2
les méta-propriétés des capteurs et des actionneurs attendues
selon les hypothèses du modèle de contrôle, et
les méta-propriétés de la loi de contrôle ou de commande réalisée
(amplitude des variations contrôlables en entrée, amplitude des
actions d’adaptation, et les relations entre les deux).
C’est-à-dire la partie requise du contrat de contrôle.
À la composition des deux entités, sous l’hypothèse de
conformité offert/requis, s’ajoute l’expression des conditions par
rapport à l’environnement et aux parties intéressées :
Objectif : à partir de l’identification du modèle de l’entité
adaptable, calibrer le modèle de contrôle de l’entité de contrôle.
1
des contraintes sur les propriétés de l’environnement (taux
d’arrivée des requêtes, ...),
21 / 58
—
Composition
Contractualisation
Simulation
Validation
—
Contractualisation de la relation de contrôle II
2
3
—
Du côté de l’entité adaptable, le contrat de contrôle exprime la
partie offerte du contrat de contrôle.
Nous avons indiqué que ces relations de causalité devraient être
explicitées de manière qualitatives et quantitatives :
2
Contractualisation
Contractualisation de la relation de contrôle I
Expliciter comment l’exécution des actionneurs affecte-t-elle la
lecture sur les capteurs.
1
Composition
22 / 58
—
Composition
Contractualisation
Simulation
Validation
—
Expression du contrat de contrôle
Il s’agit d’exprimer des contraintes sur des valeurs de
méta-propriétés, comme nous l’avons déjà vu au cours 7 pour les
entités adaptables, mais aussi sur les objectifs du contrôle et les
méta-propriétés du contrôle lui-même.
des engagements sur le maintien des propriétés adaptables sur
des cibles précise (durée de service fixée à 1s ± 0.1),
des méta-propriétés associées à la manière de réaliser ce
maintien (délais de réaction aux variations des entrées ; rapidité,
la précision et le coût des actions ramenant l’entité adaptable sur
sa cible.
Il est possible d’exprimer par documentation ou annotation de
telles contraintes en utilisant une syntaxe comme celle de QML.
Exemple : performance d’une application web où d¯s est la durée
moyenne de service des requêtes et d le délai entre détection
hors cible et retour à la cible,
Objectif de contrôle : 0.9  d¯s  1.1
Délai maximal : d  120s
attention, ce n’est pas une politique à seuil !
Pénalité au contrôleur :
si d¯s > 1.1 alors e ⇥ d2 ⇥ (1 + (d¯s 1.1))3 euros
si d¯s < 0.9 alors e+ ⇥ d2 ⇥ (0.9 d¯s )2 euros
où e , e+ : taux déterminés entre parties contractantes.
23 / 58
24 / 58
—
Composition
Contractualisation
Simulation
Validation
—
Vérification du contrat de contrôle
—
Composition
Contractualisation
Simulation
Validation
Supervision et vérification dynamique des contrats
Comme nous l’avons déjà indiqué en introduisant QML, la
vérification formelle de conformité entre offert et requis dépend
beaucoup des expressions (mathématiques) autorisées dans
l’expression du contrat.
Supervision et vérification dynamique suppose une
instrumentation supplémentaire pas nécessairement prévue pour
le contrôle.
Idée : collecter des données dynamiquement pour vérifier
Ex. : Comment vérifier la conformité entre deux fonctions ?
la bonne identification des modèles,
le respect des contrats offerts et leur conformité avec les contrats
requis,
le traitement adéquat des situations où les contrats ne sont plus
respectés par des mécanismes ad hoc (ex. : taux d’arrivée des
requêtes variant trop vite impliquant le rejet immédiat d’une partie
des requêtes).
Par ailleurs plusieurs des propriétés à contractualiser sont des
variables aléatoires dont la densité de probabilité sera imposée
par contrat, or la vérification de ce type de méta-propriétés
demande de faire des tests statistiques sur les valeurs
observées.
Comment vérifier que la densité de probabilité d’un échantillon est
conforme à la densité de la variable ?
Mais cette instrumentation et ces vérifications imposent un
surcoût à l’exécution.
Enfin, les modèles, contrats et leur identification ne sont jamais
parfaits.
Il faut trouver un équilibre entre l’importance de vérifier que les
entités respectent leurs engagements et le surcoût engendré par
cette vérification dynamique.
) Nécessité de la vérification et validation dynamique, plus simples
en pratique.
25 / 58
—
Composition
Contractualisation
—
Simulation
Validation
—
Plan
26 / 58
—
Composition
Contractualisation
Simulation
Validation
—
Fondements
1
Composition et déploiement
2
Contrats de contrôle
3
Techniques de simulation
4
Simulation et validation des systèmes autonomiques
La simulation s’intéresse à reproduire synthétiquement le
comportement des systèmes pour mieux les comprendre, les
concevoir, les valider et les optimiser.
Confrontés depuis longtemps à des systèmes modélisés par des
équations différentielles trop complexes pour être résolues
analytiquement, les ingénieurs se sont intéressés à la simulation
vue comme la résolution (intégration) numérique de leurs
équations : la simulation continue !
En parallèle, des concepteurs de systèmes discrets,
principalement stochastiques, se sont intéressés à des
techniques de simulation appropriées à ce genre de systèmes, ce
qui a donné la simulation par événements discrets !
L’apparition des modèles hybrides a justifié une étude conjointe
des deux approches précédentes pour donner la simulation
hybride.
27 / 58
28 / 58
—
Composition
Contractualisation
Simulation
Validation
—
Principes généraux
—
2
3
2
Simulation
Validation
Simulation continue
Simulation par événements discrets
Simulation hybride
Moteur de simulation continue : calcul numérique, et en
particulier l’intégration numérique qui, dans le cas le plus simple,
implante les équations différentielles en code exécutable,
adopte un pas d’intégration t représentant le temps qui avance
dans l’exécution du système (pouvant varier d’une étape à l’autre),
calcule les valeurs des variables à t0 , t0 + t, t0 + 2 t, ...
simulation déterministe versus stochastique
simulation centralisée versus répartie
Principaux concepts de mise en œuvre :
Cas stochastique :
horloge de simulation ;
modèle de simulation pour calculer l’état du système aux instants
utiles dans le temps simulé ;
collecter les mesures utiles comme résultats de la simulation ;
le simulations stochastiques échantillonnent les phénomènes
aléatoires ) répétitions pour obtenir des estimations précises.
variables aléatoires réalisées par leurs fonctions de distribution de
probabilité
) générateurs de nombres pseudo-aléatoires ;
mouvements browniens : équations différentielles stochastiques
et intégrale d’Itô numérique
) intégration numérique adaptée au cas stochastique.
29 / 58
—
Composition
Contractualisation
—
Systèmes d’équations trop complexes et trop difficiles pour être
résolus analytiquement ;
Mais aussi deux grandes modalités :
1
Contractualisation
Simulation continue, pourquoi ?
Donc, trois principales formes de simulation :
1
Composition
Simulation
Validation
—
Modèle d’un système à événements discrets
30 / 58
—
Composition
Contractualisation
Simulation
Validation
—
Moteur de simulation par événements discrets.
Un système est composé d’entités qui ont des propriétés
capturées par les valeurs de leurs attributs. La collection de tous
les attributs de toutes les entités dans le système forme l’état du
système.
Un événement est une occurence instantanée où l’état du
système est calculé. Les événements débutent ou terminent des
activités d’une certaine durée, mais pendant lesquelles rien de
significatif nécessite d’être observé.
Le comportement d’un système est simulé en calculant les
attributs des entités au fil du temps restreint aux occurrences
d’événements selon l’impact de ces événements et des activités
sur l’évolution des valeurs des attributs.
Un modèle peut être déterministe, si toutes les activités, leurs
relations causales et leurs impacts sur les entités sont
déterminstes, ou stochastique si certaines de ces relations ou de
ces impacts sont aléatoires.
File des événements à venir : ensemble des événements triés en
ordre croissant de leurs instants d’occurrence t1 , t2 , ....
Algorithme d’exécution :
1
2
3
4
Prendre le premier événement dans la file.
Calculer ou générer aléatoirement les modifications qu’il entraîne
sur l’état du système et appliquer ces valeurs pour modifier l’état
Générer les événements futurs causés par l’événement courant et
les insérer dans la file des événements.
Tant que la file des événements n’est pas vide, reprendre à 1.
Gestion du temps et horloge de simulation :
temps simulé discret = extraction des occurrences d’événements
du temps réel ;
simulation en temps réel : horloge = temps réel ;
temps réel accéléré : relation linéaire constante entre l’horloge de
simulation et le temps réel.
31 / 58
32 / 58
—
Composition
Contractualisation
Simulation
Validation
—
Exemple de système discret : guichets de banque
—
Composition
Contractualisation
Simulation
Validation
Exemple : cas particulier de la file d’attente M/M/1 I
n guichets de service permettant d’accueillir les clients.
m files d’attente, 1  m  n où les clients se mettent en attente
de service lorsque tous les guichets sont occupés.
Le système peut être modélisé par un ensemble de variables
comme la longueur des files d’attente à tout instant, les durées
de service de chaque client, leur durée d’attente, etc.
Dans un tel système, les changements d’état se produisent pour
l’essentiel à des instants précis : arrivée et mise en file d’un
client, début de service d’un client, fin de service d’un client.
Ces événements sont les seuls instants où il est nécessaire et
suffisant d’observer et faire évoluer le système pour en capturer
le comportement.
On s’intéresse à l’évaluation des propriétés, souvent selon
différents choix de conception : ici on peut s’intéresser à
déterminer le nombre de files permettant de minimiser le temps
total moyen que les clients passent dans la banque.
Entités : requête, serveur, file d’attente
Attributs :
requête : moment d’arrivée
serveur : libre ou occupé
file : suite des requêtes en ordre d’arrivée
événements : arrivée d’une requête, début de service d’une
requête, fin de service d’une requête.
arrivée : marque la requête par l’heure de son arrivée, et si le
serveur est libre, le change à occupé et provoque immédiatement
un début de service pour cette requête, sinon la requête est
ajoutée à la fin de la file d’attente.
début de service, passe le serveur à occupé et génère
l’événement de fin de service pour la requête correspondante.
33 / 58
—
Composition
Contractualisation
Simulation
Validation
—
—
Exemple : cas particulier de la file d’attente M/M/1 II
34 / 58
—
Composition
Contractualisation
Simulation
Validation
—
Animation du modèle
Horloge : 0
fin de service : calcule le temps de service de la requête, puis si la
file n’est pas vide, provoque immédiatement le début de service
de la prochaine requête, sinon passe le serveur à libre.
File des événements
Arrivée Requete1
t:2
Les arrivées engendrent les débuts de service qui engendrent les
fins de service, qui elles-mêmes peuvent engendrer un début de
service, mais comment gérer les arrivées ?
Requete1
arrivée :
générer à l’avance toutes les arrivées et les insérer dans la file
des événements ?
) long et coûteux en espace pour les simulations longues.
générer la première arrivée, et ajouter une relation causale
synthétique faisant que le traitement de l’évenemnt arrivée génère
l’arrivée suivante.
) beaucoup moins coûteux en espace, mais peut s’avérer
difficile voire impossible dans certains cas (plutôt rares ?).
File d’attente
Serveur
état : libre
Somme des temps :
nombre de requetes :
35 / 58
36 / 58
—
Composition
Contractualisation
Simulation
Validation
—
Animation du modèle
—
Composition
Contractualisation
Simulation
Validation
Animation du modèle
Horloge : 2
Horloge : 2
File des événements
File des événements
Début de service Requete1 Arrivée Requete2
t:2
t:3
Arrivée Requete2 Fin de service Requete1
t:3
t:5
Requete1
arrivée : 2
Requete1
arrivée : 2
Requete2
arrivée :
Requete2
arrivée :
File d’attente
File d’attente
Serveur
état : occupé
Serveur
état : libre
Somme des temps :
nombre de requetes :
Somme des temps :
nombre de requetes :
37 / 58
—
Composition
Contractualisation
Simulation
Validation
—
Animation du modèle
38 / 58
—
Composition
Contractualisation
Horloge : 5
File des événements
File des événements
Fin de service Requete1 Arrivée Requete3
t:5
t:6
Début de service Requete2
t:5
Requete2
arrivée : 3
Simulation
Validation
—
Animation du modèle
Horloge : 3
Requete1
arrivée : 2
—
Requete2
arrivée : 3
Requete3
arrivée :
File d’attente
Arrivée Requete3
t:6
Requete3
arrivée :
File d’attente
Serveur
état : occupé
Serveur
état : occupé
Somme des temps :
nombre de requetes :
Somme des temps : 3
nombre de requetes : 1
39 / 58
40 / 58
—
Composition
Contractualisation
Simulation
Validation
—
Animation du modèle
—
Composition
Contractualisation
Simulation
Validation
—
Animation du modèle
Horloge : 5
Et ainsi de suite jusqu’au temps de fin de simulation ou une liste
d’événements vide...
File des événements
Arrivée Requete3 Fin de service Requete2
t:6
t:9
Requete2
arrivée : 3
Requete3
arrivée :
File d’attente
Serveur
état : occupé
Somme des temps : 3
nombre de requetes : 1
41 / 58
—
Composition
Contractualisation
Simulation
Validation
—
Première formalisation d’un modèle axé événements
42 / 58
—
Composition
Contractualisation
Simulation
Validation
—
Comportement d’un modèle axé événements
L’algorithme générique du simulateur est :
Un modèle de simulation est un tuple M = (S , ⇥, E , Y , d, l, s, s0 ) où
1
2
S est l’ensemble des états et s0 2 S l’état initial.
⇥ = q1 [ ... [ qk est l’ensemble des types d’événements.
3
E = Eq1 [ ... [ Eqk , qi 2 ⇥ est l’ensemble des événements.
4
Y est l’ensemble des sorties.
5
d : S ⇥ E ⇥ R+ ! S est la fonction de transition.
6
l : S ⇥ R+ ! Y est la fonction de sortie.
7
s : ⇥ ⇥ S ⇥ R+ ! ⇧(Eq , R+ ) est l’ensemble des densités de probabilité
d’occurrence des événements de type q telle que P(e, t 0 |s, t ) est la probabilité
de la prochaine occurrence de l’événement e 2 Eq à l’instant t 0 t étant donné
8
Le système débute dans un état initial s0 au temps 0 d’horloge.
8q 2 ⇥, générer la prochaine occurrence de Eq selon la
probabilité s(q, s0 , 0) et l’insérer parmi les événements à traiter.
Extraire des événements à traiter l’occurrence e, t 0 dont t 0 est le
plus petit.
Calculer le prochain état s0 = d(s, e, t )
Avancer l’horloge à t 0
Calculer la sortie courante y = l(s0 , t 0 )
8q 2 ⇥, générer la prochaine occurrence de eq selon la
probabilité s(q, s0 , t 0 ) et l’insérer parmi les événements à traiter.
Si l’ensemble des événements à traiter n’est pas vide, aller à 3.
D’occurrences d’événements en occurrences d’événements, et de
sorties observées en sorties observées, la simulation produit une
trajectoire possible du système, et donc simuler revient à échantillonner
l’espace des trajectoires.
que le système est dans l’état s à l’instant t.
43 / 58
44 / 58
—
Composition
Contractualisation
Simulation
Validation
—
Modèle de la banque à guichet unique
i : état initial.
a(c) : arrivée du client c.
s : début de service d’un client.
d : départ d’un client après service.
f : fin de la simulation.
S = {i , a, s, d , f } ⇥ FilehClient i⇥
⇥ = {a, s, d , f }
Client ⇥ R+ ⇥ N
d(hi , q , c , 0, 0i, a(c ), t ) = ha, q .insere(c ), c , 0, 0i
0
d(ha, q , c , r , ni, a(c 0 ), t ) = ha, q .insere(c 0 ), c , r , ni
/ 0.0, 0i, 0i
hs0 , t0 i = hhi , [], 0,
/ r , ni, s, t ) = hs, q .retire(), q .premier (), r , ni
d(ha, q , 0,
/ r + (t 0
d(hha, q , c , r , ni, d , t ) = hd , q , 0,
d(hha, q , c , r , ni, f , t ) = hf , q , c , r , ni
/ 0.0, 0i, 2i
hs1 , t1 i = hha, [c0 ], 0,
c .arr ), n + 1i
hs2 , t2 i = hhs, [], c0 , 0.0, 0i, 2i
hs3 , t3 i = hha, [c1 ], c0 , 0.0, 0i, 4i
/ 3.0, 1i, 5i
hs4 , t4 i = hhd , [c1 ], 0,
d(hs, q , c , r , ni, a(c ), t ) = ha, q .insere(c ), c , r , ni
0
0
/ r + (t
d(hs, q , c , r , ni, d , t ) = hd , q , 0,
hs5 , t5 i = hhs, [], c1 , 3.0, 1i, 5i
c .arr ), n + 1i
hs6 , t6 i = hha, [c2 ], c1 , 3.0, 1i, 6i
/ 6.0, 2i, 7i
hs7 , t7 i = hhd , [c2 ], 0,
s(f , h·, q , c , r , ni, t ) =
0
hs8 , t8 i = hhs, [], c2 , 6.0, 2i, 7i
d(hd , q , c , r , ni, s, t ) = hs, q .retire(), q .premier (), r , ni
1.0 si t 0 = 10
0.0 si t 0 =
6 10
s(a, h{i , a}, q , c , r , ni, t ) = Exp[t 0
t ; ta ]
ta : taux d’arrivée des clients.
/ 8.0, 3i, 8i
hs9 , t9 i = hhd , [], 0,
d(hd , q , c , r , ni, f , t ) = hf , q , c , r , ni
(
1.0 si t 0 = t ^ q 6= 0/
/ r , ni, t ) =
s(s, h{a, d }, q , 0,
0.0 si t 0 6= t _ q = 0/
s(d , hs, q , c , r , ni, t ) = Exp[t 0
Simulation
Validation
/ 8.0, 3i, 9i
hs10 , t10 i = hha, [c3 ], 0,
hs11 , t11 i = hhs, [], c3 , 8.0, 3i, 9i
hs12 , t12 i = hhf , [], c3 , 8.0, 3i, 10i
t ; ts ]
EAT = {hf , 10i}
EAT = {ha(c0 ), 2i, hf , 10i}
EAT = {hs, 2i, ha(c1 ), 4i, hf , 10i}
EAT = {ha(c1 ), 4i, hd , 5i, hf , 10i}
EAT = {hd , 5i, ha(c2 ), 6i, hf , 10i}
EAT = {hs, 5i, ha(c2 ), 6i, hf , 10i}
EAT = {ha(c2 ), 6i, hd , 7i, hf , 10i}
EAT = {hd , 7i, ha(c3 ), 9i, hf , 10i}
EAT = {hs, 7i, ha(c3 ), 9i, hf , 10i}
EAT = {hd , 8i, ha(c3 ), 9i, hf , 10i}
EAT = {ha(c3 ), 9i, hf , 10i}
EAT = {hs, 9i, hf , 10i, ha(c4 ), 12i}
EAT = {hf , 10i, hd , 11i, ha(c4 ), 12i}
EAT = {hd , 11i, ha(c4 ), 12i}
l(hhf , [], c3 , 8.0, 3i, 10i) = 8.0/3
ts : taux de service des clients.
45 / 58
—
Composition
Contractualisation
Simulation
—
Exécution :
d(hd , q , c , r , ni, a(c ), t ) = ha, q .insere(c ), c , r , ni
(
Contractualisation
d(hi , q , c , 0, 0i, f , t ) = hf , q , c , 0, 0i
0
l(hf , q , c , r , ni) = r /n
Composition
Exécution du modèle de la banque à guichet unique
0
d(hs, q , c , r , ni, f , t ) = hf , q , c , r , ni
Y = R+
—
Validation
—
Vers la simulation des systèmes hybrides
46 / 58
—
Composition
Contractualisation
Simulation
Validation
—
Utilisation des simulations
Programmer une simulation n’est pas si difficile, mais plus difficile de bien
modéliser. Ne pas abuser des simplifications, en particulier lorsque des
activités ont des interactions restant implicites dans le modèle.
Ex. : modélisation de la communication par réseau par des événements
émission et réception, sans égard aux autres communications et à la
congestion éventuelle du réseau.
Couplent évolution continue et par événements discrets.
Principale technique : intégration pas-à-pas pour obtenir une
trajectoire du système continue par morceaux.
Interrompue par le traitement des événements discrets :
des événements se produisant selon leurs processus propres et
traités comme dans la simulation par événements discrets,
des événements générés par l’évolution continue du système
hybride et le franchissement de conditions aux frontières.
Dans le cas des modèles stochastiques, la disponibilité ou l’obtention des
données réelles pour estimer des lois de probabilités justes est souvent l’une
des plus grandes difficultés.
La génération de valeurs aléatoires est aussi cruciale. Évitez les mauvais
générateurs (ceux des bibliothèques standards de langages), préférez ceux des
bibliothèques spécialisées (comme common-math).
Grande difficulté : déterminer avec précision le moment où les
événements générés par l’évolution continue se produisent.
Aucun pas d’intégration t ne peut garantir une précision e
Une simulation sur des modèles pauvres avec des outils pauvres et des
données pauvres donnera des résultats pauvres (garbage in, garbage out...)
donnée sur l’évolution car les dérivées sont non-bornées.
Se fait généralement en deux temps : détection du franchissement
d’une frontière entre ti et ti +1 puis recherche du point de
franchissement précis à e près dans l’intervalle ] ti , ti +1 [.
Une seule exécution d’une simulation stochastique ne veut généralement rien
dire : il faut en faire un grand nombre, selon un plan d’expérimentation bien
défini et analyser scrupuleusement les résultats. L’aide d’un statisticien peut
s’avérer cruciale.
47 / 58
48 / 58
—
Composition
Contractualisation
Simulation
Validation
—
Plan
—
Composition
Contractualisation
Simulation
Validation
—
Formes de simulation pour la validation des systèmes
1
Composition et déploiement
2
Contrats de contrôle
3
Techniques de simulation
La simulation est utilisée dans la validation progressive des systèmes
depuis l’utilisation de modèles purs en phase de conception jusqu’à
l’intégraiton de tout ou partie du système réel en phase finale de
validation :
Model-in-the-loop (MIL) : simulation des
modèles pour valider leur adéquation au
système réel et leur exactitude interne dans
différentes conditions logicielles, matérielles
et d’environnement.
Software-in-the-loop (SIL) : intégration entre
modèles et logiciels pour valider le logiciel
par rapport aux modèles dans différentes
conditions matérielles et d’environnement.
Simulation et validation des systèmes autonomiques
4
Modèle de
contrôle hybride
validation
Logiciel de
l'entité de contrôle
MIL
SIL
Modèle comportemental
hybride
validation
Système réel
Logiciel de
L'entité adaptable
HIL
Matériel informatique
réel
Hardware-in-the-loop (HIL) : intégration
entre modèles, logiciels et matériels dans
différentes conditions d’environnement.
49 / 58
—
Composition
Contractualisation
Simulation
Validation
—
Simulation des grands systèmes
Décomposition des modèles.
Contractualisation
Simulation
Validation
—
Modèle DEVS déterministe atomique M = (X, Y, S, dint , dext , l, ta)
où X est l’ensemble des événements d’entrée, Y l’ensemble des
événements de sortie, S l’espace des états alors que la
dynamique du système est définie par les fonctions :
ta(s) : S ! R+ d’avancement du temps ;
dint (s) : S ! S de transition interne ;
l(s) : S ! Y produit un événement en sortie lors de la transition
Décentralisation des exécutions.
L’exécution conjointe de modèles et de parties réelles des
systèmes imposent une décentralisation, a fortiori pour les grands
systèmes répartis nécessitant de la simulation parallèle et
répartie.
3
Composition
DEVS est une approche de simulation par événements discrets
modulaire parallélisable et répartissable où un modèle est
décomposé en sous-modèles échangeant des événements dits
externes.
Pour être progressivement remplacés, les modèles doivent être
conçus de manière modulaire.
2
—
Modèles de simulation modulaire : DEVS
Cette approche de validation par la simulation impose trois besoins :
décomposition, décentralisation et gestion du temps.
1
50 / 58
Gestion du temps dédiée.
Parce qu’on ne contrôle pas le temps d’exécution des parties
réelles et parce que l’exécution est décentralisée, le temps simulé
doit pouvoir être contrôlé en fonction des formes de simulation.
Les simulations SIL et a fortiori HIL poussent à faire de la
simulation en temps réel.
depuis l’état s ;
définissant le comportement interne du modèle, et la fonction
dext (s, t , x ) : S ⇥ R+ ⇥ X ! S de transition externe appelée
lorsque ta(s) > t produisant un nouvel état s0 .
51 / 58
52 / 58
—
Composition
Contractualisation
Simulation
Validation
—
Modèle DEVS atomique
—
Composition
Contractualisation
Simulation
Validation
Modèle DEVS couplé
s2
Entrée
s2
transition
externe
s1
s2
Entrée
s1
s6
s4
transition
interne
transition
interne
transition
externe
s1
s6
s4
s3
s5
avancement
du temps
transition
interne
s5
avancement
du temps
sortie
Modèle DEVS atomique
s3
s6
s4
s3
transition
externe
—
Modèle DEVS atomique
sortie
Sortie
s5
s2
transition
externe
avancement
du temps
s6
s4
s3
Sortie
sortie
Modèle DEVS atomique
s1
transition
interne
s5
avancement
du temps
Modèle DEVS atomique
sortie
53 / 58
—
Composition
Contractualisation
Simulation
Validation
—
Simulation répartie et temps réel
2
3
—
Composition
Contractualisation
Simulation
Validation
—
Simulabilité des entités autonomiques
L’extension des simulations réparties DEVS aux modèles
hybrides pose des problèmes liés à l’échange de valeurs de
variables continues entre les modèles.
Approches actuelles :
L’exécution répartie de modèles DEVS couplés exige
(normalement) de synchroniser leurs horloges.
Trois approches :
1
54 / 58
synchronisation conservatrice : synchronisation totale de toutes
les horloges.
synchronisation optimiste (time warp) : les horloges avancent à
leur rythme mais si un événement arrivent dans le passé, un
retour général en arrière doit être fait.
aucune synchronisation : laisser les horloges évoluer à leurs
rythmes ce qui prduit des erreurs de simulation.
permettre le parallélisme mono-ordinateur mais pas la répartition ;
utiliser des modèles partitionnés où le partage des valeurs
continues est limité à l’intérieur des partitions, qui elles-mêmes
sont co-localisées.
Pour réaliser facilement les différentes formes de simulation (SIL,
HIL, ...), les composants autonomiques doivent être dotés d’une
capacité d’auto-simulation activée ou non en fonction de l’étape
de validation.
Dans un modèle à composants comme BCM, cela implique
l’intégration des modèles de simulation dans les composants et
l’introduction d’interfaces spécifiques pour les échanges
d’événements et de valeurs continues (lorsque nécessaire).
La synchronisation explicite utilisant des techniques classiques
(barrières cycliques, rendez-vous, ...) est coûteuse.
Techniques implicites fondées sur le temps :
synchronisation par temps réel (accéléré) : utilisation du temps
réel (horloges matérielles synchronisées) pour synchroniser
implicitement les modèles (avec un facteur d’accélération).
55 / 58
56 / 58
—
Composition
Contractualisation
Simulation
Validation
—
Récapitulons...
1
L’entité autonomique est la composition entre une entité adaptable et une
entité de contrôle pour former une entité auto-adaptable.
2
Parmi les activités à conduire lors de la composition et le déploiement des
entités autonomiques, il y a les tests et la validation où la simulation complète
les bouchons fonctionnels classiques par des bouchons comportementaux.
3
En plus de la technique de contrôle utilisée, le choix de la bonne architecture
d’entité de contrôle dépend également des facteurs de déploiement, dont la
nature répartie et les ressources disponibles sur les nœuds pour le contrôle.
4
La composition entre entité de contrôle et entité adaptable peut se formaliser
par un contrat de contrôle spécifiant les objectifs et les méta-propriétés du
contrôle.
5
La répartition sur plusieurs nœuds d’un système de contrôle soulève les
questions de la localité du temps et du caractère aléatoire des délais de
communication, incompatibles avec le contrôle en temps-réel.
6
Les techniques de simulation utilisables pour tester et valider les entités
autonomiques, on trouve principalement la simulation hybride modulaire
répartie en temps réel comme une extension des modèles DEVS de
simulation par événements discrets modulaires.
7
—
Composition
Contractualisation
Simulation
Validation
—
Pour aller plus loin : lectures recommandées
QML : A Language for Quality of Service Specification, S. Frølund
and J. Koistinen, Rapport de recherche HPL-98-10, Software
Technology Laboratory, Hewlett-Packard.
Contracts for Systems Design, A. Benveniste et al., rapport de
recherche INRIA n˚ 8147, novembre 2012, 64 p.
Guide to Modeling and Simulation of Systems of Systems, B.P.
Zeigler et H.S. Sarjoughian, Springer, 2013.
The split system approach to managing time in simulations of
hybrid systems having continuous and discrete event
components, J. Naturo et al., Trans. of the Society for Modeling
and Simulation, 88(3), 2012.
Simulation temps-réel distribuée de modèles numériques :
application au groupe motopropulseur, A. Ben Khaled, INRIA,
thèse de l’U. De Grenoble, 2014.
Pour faciliter les tests et la validation SIL puis HIL, les entités autonomiques
doivent avoir une capacité d’auto-simulation progressivement désactivable.
57 / 58
58 / 58