La notion de réactivité caractérise les systèmes informatiques dans lesquels,
contrairement aux systèmes transformationnels, un programme, tout au
long de son exécution, reçoit des données à traiter (sous la forme de signaux en
entrée) et élabore et fournit des résultats (sous la forme de signaux de commande
émis).
Dans cette classification qui distingue systèmes transformationnels et systèmes
réactifs, et qui repose sur le mode d’interactions entre l’environnement physique
et le système informatique, G. Berry a ajouté une catégorie intermédiaire
des systèmes dits interactifs, dans lesquels le rythme de ces interactions est
imposé par le système informatique, donc de façon moins prépondérante et critique
que dans les systèmes réactifs où ce sont les dynamiques de l’environnement
qui contraignent la temporalité de ces interactions.
Les systèmes réactifs sont donc fréquemment destinés au contrôle automatique
des applications dont le fonctionnement présente des fortes contraintes
physiques (systèmes embarqués, distribués, parallèles …) et des exigences de
fiabilité et de sûreté critiques. L’aspect critique tient au fait qu’une défaillance du
système peut avoir des conséquences graves.
Or, ces procédés physiques réels, contrôlés par ces systèmes réactifs, ont des
dynamiques propres (phénomènes continus, régis par des lois de comportement
qui peuvent être, par exemple, des équations différentielles complexes). Ces caractéristiques analogiques sont difficiles à coupler avec la logique de l’ordinateur.
Cet interfaçage est donc souvent réalisé par la matérialisation des manifestations
de cet environnement physique au travers de l’apparition d’événements
discrets, reçus par le système de contrôle, et qui provoquent sa réaction sous la
forme d’ordres de commande, également matérialisés par des événements discrets.
Cette dualité continu-discret confère ainsi à certaines applications un caractère hybride marqué qui rend la modélisation assez complexe.
Pour répondre aussi bien que possible aux difficultés – liées à ces particularités
– d’exprimer les comportements des processus, un certain nombre de
langages – dits réactifs – ont été conçus. Ils sont destinés à faciliter la programmation
de telles applications.
Dans cet article, nous nous attacherons à présenter les traits majeurs de ces
différentes solutions proposées.
Outre les difficultés que nous venons d’indiquer concernant la prise en compte
de l’environnement dans la mise au point des programmes de contrôle, les systèmes
réactifs présentent souvent, comme nous l’avons déjà mentionné, des
exigences en termes de déterminisme et de sûreté de fonctionnement, de distribution
et de parallélisme, ainsi que de maîtrise de la rapidité...